Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 384 - libsig++-1.0.4.ebuild sandbox violation
Summary: libsig++-1.0.4.ebuild sandbox violation
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Geert Bevin
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-01-28 08:23 UTC by Tod M. Neidt (RETIRED)
Modified: 2003-02-04 19:42 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
sandbox-libsigc++-1.0.4-16570.log (sandbox-libsigc++-1.0.4-16570.log,112 bytes, text/plain)
2002-01-28 08:24 UTC, Tod M. Neidt (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tod M. Neidt (RETIRED) gentoo-dev 2002-01-28 08:23:26 UTC
Hi!

Got a sandbox violation when merging libsig++-1.0.4.ebuild.  Haven't had a
chance to look into it.  Sandbox log is attached.
Comment 1 Tod M. Neidt (RETIRED) gentoo-dev 2002-01-28 08:24:16 UTC
Created attachment 94 [details]
sandbox-libsigc++-1.0.4-16570.log
Comment 2 Geert Bevin 2002-01-28 13:15:16 UTC
I don't get this violation, I'll try on another machine too
Comment 3 Geert Bevin 2002-01-28 17:29:53 UTC
Verified on second machine and still don't get this error, marking as WORKSFORME.
Comment 4 Tod M. Neidt (RETIRED) gentoo-dev 2002-01-28 17:59:17 UTC
Hi!

This occured on my machin at work which is admittedly not as up to date as my
machine at home.
  
1. Noticed that I wasn't running the latest portage, so I upgraded to
portage-1.8.6-r1 and tried to merge libsig++ but got the same sandbox error.  

2.Checked the package database and noticed I had several stale versions of
portage in there and unmerged them, but got the same sandbox error again.

Don't know what's going on, I'll check my machine at home in a few hours.
Perhaps there is someother package that is stale on my work machine.

Sorry for the bother Geert, its probably something screwed with my system here.

tod
Comment 5 Geert Bevin 2002-01-28 18:06:22 UTC
Since it occurs on your system, please track it down and post a fix. It's true
that other people can be affected. It's a pity I can't check.
Comment 6 Tod M. Neidt (RETIRED) gentoo-dev 2002-01-28 19:00:37 UTC
Hi!

Just tried this and didn't get the sandbox violation on my home computer.  Don't
know what's up with my work machine.  Maybe I'll hit it with a hammer :)
Comment 7 Tod M. Neidt (RETIRED) gentoo-dev 2002-01-29 09:37:51 UTC
Hi!

I figured out what the problem was.  It is in the sig++ source subdirectory
Makefile.  It performs a check for an old header install location, and if old
headers are found it attempts to delete them. I guess the libsig++ developers
are trying transition to a parallel lib version install scheme and think they
are helping by removing the old headers automagically for you.

Note: This only happens when you have an older version of libsig++ already
installed. In my case, it is libsig++-1.0.3.



The relevant section of the ${P}/sig++/Makefile is below:
*****************************snip**************************
install-data-hook:
	@if test -d "$(includedir)/sigc++" ; then \
	  echo ;\
	  echo "*** WARNING ***:" ;\
	  echo "You seem to have old libsigc++ header files installed in:" ;\
	  echo ;\
	  echo "  \"$(includedir)/sigc++\"" ;\
	  echo ;\
	  echo "The entire directory will be removed now." ;\
	  echo "To allow parallel installation of sigc++-1.0 and sigc++-1.2," ;\
	  echo "the header files are now installed in a version specific subdirectory:" ;\
	  echo ;\
	  echo "  \"$(libsigcincludedir)\"" ;\
	  echo ;\
	  rm -rf "$(includedir)/sigc++" ;\
	fi

********************end snip*******************************************

A quick fix would be just to comment out that 'rm -rf' and then echo a message
to the user in pkg_postinst to be sure to unmerge any old versions of libsig++

 
Comment 8 Tod M. Neidt (RETIRED) gentoo-dev 2002-01-29 10:50:01 UTC
Ok here's a patch to fix this.

Note: one thing I'm not sure of is if in the case of a 'emerge --world update'
and the person has libsig++-1.0.3 installed, whether there might be header
confusion in subsequent builds against libsig++, if libsig++-1.0.3 hasn't been
unmerged first.

Can't attach so I'll paste.

I can apply if you like.  If there is a better way of handling this, I would be
interested in knowing (I'm always trying to learn something new :)

***************patch*********************************

--- libsigc++-1.0.4.ebuild.orig	Tue Jan 29 09:47:45 2002
+++ libsigc++-1.0.4.ebuild	Tue Jan 29 10:34:49 2002
@@ -26,6 +26,18 @@
 	  	    --infodir=/usr/share/info				\
 
	    --mandir=/usr/share/man		
	\
 
	    ${myconf} || die
+
+
#Fix sandbox violation when old libsig++ is already installed,
+
#hopefully this will go away after the header location settles down
+
#Comment out the remove old header directory line
+
cp sigc++/Makefile sigc++/Makefile.orig
+
sed -e 's:\(@if\):#\1:' \
+
	sigc++/Makefile.orig > sigc++/Makefile
+

+
#This occurs in two places
+
cp sigc++/config/Makefile sigc++/config/Makefile.orig
+
sed -e 's:\(@if\):#\1:' \
+
	sigc++/config/Makefile.orig > sigc++/config/Makefile
 	
 	emake || die
 }
@@ -36,3 +48,17 @@
     
 	dodoc AUTHORS ChangeLog COPYING README* INSTALL NEWS
 }
+
+pkg_postinst() {
+

+
echo ""
+
echo "********************* WARNING ********************"
+
echo ""
+
echo "To allow parallel installation of sig++-1.0 and sig++-1.2,"
+
echo "the header files are now installed in a version specific"
+
echo "subdirectory.  Be sure to unmerge any libsig++ versions"
+
echo "< 1.0.4 that you may have previously installed."
+
echo ""
+
echo "**************************************************"
+
+}
Comment 9 Geert Bevin 2002-01-29 11:10:12 UTC
Fixed ebuild and commited to cvs, checked with a previously installed version of
v1.0.3 and it seems to work now.