Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 19538 - Stand-alone ebuild for libstdc++
Summary: Stand-alone ebuild for libstdc++
Status: RESOLVED LATER
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 44481
  Show dependency tree
 
Reported: 2003-04-18 06:47 UTC by Michael Boman
Modified: 2004-10-02 17:35 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Boman 2003-04-18 06:47:39 UTC
I am trying to build Gentoo systems that doesn't have GCC installed (for
security and maintainence reasons). However too many applications depends on
libstdc++

Reproducible: Always
Steps to Reproduce:
1. emerge -C gcc
2. env-update
Actual Results:  
/usr/bin/python2.2: error while loading shared libraries: libstdc++.so.5: cannot
open shared object file: No such file or directory

Expected Results:  
Scanning Configuration files...
Exiting: No files to work on!
Comment 1 Jon Portnoy (RETIRED) gentoo-dev 2003-04-18 09:59:39 UTC
We don't really want to split ebuilds up into a bunch of little ebuilds - that's unnecessary and creates a serious nightmare to manage in addition to being more painful in most situations for the end-user.

Save a copy of libstdc++ and put it and symlinks in manually. emerge inject sys-devel/gcc-<version> if you don't want gcc to be pulled in as a dependency of something else.
Comment 2 Seemant Kulleen (RETIRED) gentoo-dev 2003-04-18 10:10:06 UTC
you could also just emerge gcc and then rm the stuff you don't want

cd /usr/portage/sys-devel/gcc
the nice way is to ebuild gcc-blahblahb.ebuild install
then cd /var/tmp/portage/gcc-blahblah/image
rm the cruft you don't want need
cd /usr/portage/sys-devel/gcc
ebuild gcc-blahblah qmerge

et voila

even nicer - make a copy of the gcc ebuild into your PORTDIR_OVERLAY, and have it remove the cruft, that way on version bump, you can just diff against the latest to keep things sane
Comment 3 Seemant Kulleen (RETIRED) gentoo-dev 2003-04-18 13:13:34 UTC
closing
Comment 4 Zach Welch (RETIRED) gentoo-dev 2003-04-24 00:43:41 UTC
I actually have some ideas for implementing this as a side-car to the gcc 
ebuild. My immediate plan of attack will be to write an ebuild that does this:

- gcc ebuild - RDEPENDS on same major version of libstdc++
- libstdc++ ebuild - DEPENDS on gcc, copies the portions of the live filesystem
  as its "source" files, "installs" them into the temp tree, which then gives
  you the opportunity to package just those files into their own tbz2 package.

This, or something with the same effect, is a critical packaging trick that
will need to be adopted by other ebuilds in order to scale the distribution
down into handhelds or other embedded devices.  It allows the toolchain
to be unmerged safely, and the libstdc++ files will remain installed because of 
their newer mtimes.  Further, I think there is *tremendous* reason to want
to remove a compiler from some systems; one of those rare cases where we are 
fully justified in splitting the ebuild.

If this won't fly, I am very curious to understand what the problems are; 
otherwise, assign this bug to me, I asked the reporter to submit this bug
in a thread on the gentoo-dev mailing list.
Comment 5 Jon Portnoy (RETIRED) gentoo-dev 2003-04-24 08:11:57 UTC
My primary concern is that I don't particularly want to split up everything in the tree. That just gets messy - you end up with a RH-ish situation where you have abc, abc-server, abc-dev, abc-xyz, abc-123... In fact, I'd be a lot happier if a USE var or something like that was used to split packages.
Comment 6 Zach Welch (RETIRED) gentoo-dev 2003-04-24 13:06:57 UTC
If you can propose a solution that uses USE flags and that doesn't cause undue
work for our users (or thier computers), then I would happily endorse that.

In the future, I think we will also want a USE="embedded" or somthing similar
in order to strip things even further.  I am *not* asking to "split up 
everything in the tree".  At the moment, I think only this ebuild deserves this 
special consideration, and the USE flag may be more appropriate for creating a 
really reduced C compiler (or something similar).

Again, a finer granularity package system will eventally be required for us to
move Gentoo into the embedded realm, and I agree that (local) USE flags can be used solve the majority of cases.  I just strongly feel that this is a case
where we should consider a split ebuild as the Right Solution. 

If this still doesn't justify it, then i'm going to go re-merge the perl and libperl ebuilds, because that situation is a lot less clear cut than this one.
;)

Comment 7 Martin Schlemmer (RETIRED) gentoo-dev 2003-04-24 15:06:24 UTC
> If this still doesn't justify it, then i'm going to go re-merge the perl and
> libperl ebuilds, because that situation is a lot less clear cut than this
> one. ;)

No, you won't.


As for having libstdc++ seperate ... it might be a good thing (tm) to do,
although I think the better idea will be to split off all the libs (stdc++,
g2c,objc..).  It should also make compile upgrades less of a pain in the butt,
as they will then be SLOT'd, and old things can depend on them until they
are rebuild with the new gcc.

I'll have a look, and get back about this at some stage.
Comment 8 Michael Boman 2003-06-28 19:26:15 UTC
I am just wondering what the status is on this bug. Any ideas how to solve this?
Comment 9 solar (RETIRED) gentoo-dev 2004-09-06 13:18:01 UTC
This ebuild is sorta resolved. 

We don;t quite have all the atoms to keep parts of gcc (gcc-core, gcc-g77, gcc-java, and most importantly libgcc ) install yet but lv is working on a toolchain eclass which should simplify that.

But as of >=gcc-3.4 libstd++ is it's own ebuild.
Comment 10 SpanKY gentoo-dev 2004-09-06 14:59:28 UTC
sort of bot not really

libstdc++-v3 needs to become libstdc++ with its own SLOTing
Comment 11 Travis Tilley (RETIRED) gentoo-dev 2004-09-06 21:00:36 UTC
it's been libstdc++-v3 since it was integrated into gcc 3.0... i dont really see a problem unless you want to start adding the old crap used with gcc 2.95. i dont think many of the binaries included in lib-compat compile anymore...

the current ebuilds are slotted to "3.3.3", which is kinda silly when i think about it. 3.2.3->3.3.4 all include .so.5, so i should have slotted it to "5". gcc 3.4 provides .so.6, so if an ebuild for that is included it should be slotted to "6".

...does it make sense to change a slot after an ebuild has already been in the tree?
Comment 12 Travis Tilley (RETIRED) gentoo-dev 2004-10-02 17:35:18 UTC
this is almost but not really fixed... so... later