Monday, September 22, 2008

Gentoo: Two Bug for this week

One of Gentoo advantages is by regularly syncing the portage tree, Gentoo users are able to use the most up to date packages available, rather than remaining fixed at a particular release date. This typically results in newer versions of software being available within the package manager than are available for other Linux distributions at any given time, particularly those which are fixed at a particular release (albeit with security updates). This is also a drawback; when updating a Gentoo system, no guarantees are made on the backwards-compatibility of any package updates, whereas distributions which only make a limited release set of packages available are able to better maintain compatibility within each release. - source: wikipedia.org

And this is the Two Bug that i found and solved within last weekend,

1.GCC installs .la files containing broken paths
I hate to admit it, but this bug has a (very) long journey, the age of this reported bug is almost about two years, and only one working patch are produced (altough symlinks wont kill the cat), and i dont know why nobody is maintaining the bug or at least put this patch into portage tree. Yet, this bug isnt so critical but very annoying when you run the "revdep-rebuild", yes, we need to recompile GCC again, and just imagine if you have more than one GCC installed on your machine (well, i do have 3). Here are (my) the preview..
venom ~ # revdep-rebuild
* Configuring search environment for revdep-rebuild

* Checking reverse dependencies
* Packages containing binaries and libraries broken by a package update
* will be emerged.

* Collecting system binaries and libraries
* Generated new 1_files.rr
* Collecting complete LD_LIBRARY_PATH
* Generated new 2_ldpath.rr
* Checking dynamic linking consistency
[ 38% ] * broken /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcjawt.la (requires /usr/lib/lib-gnu-java-awt-peer-gtk.la)
* broken /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgij.la (requires /usr/lib/libgcj.la)
* broken /usr/lib/gcc/i686-pc-linux-gnu/4.2.4/libgij.la (requires /usr/lib/libgcj.la)
* broken /usr/lib/gcc/i686-pc-linux-gnu/4.3.1/libgij.la (requires /usr/lib/libgcj.la)
* broken /usr/lib/gcj-4.2.4/libjvm.la (requires /usr/lib/libgcj.la)
* broken /usr/lib/gcj-4.3.1-9/libjvm.la (requires /usr/lib/libgcj.la)
[ 100% ]
* Generated new 3_broken.rr
* Assigning files to packages
* /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcjawt.la -> sys-devel/gcc
* /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgij.la -> sys-devel/gcc
* /usr/lib/gcc/i686-pc-linux-gnu/4.2.4/libgij.la -> sys-devel/gcc
* /usr/lib/gcc/i686-pc-linux-gnu/4.3.1/libgij.la -> sys-devel/gcc
* /usr/lib/gcj-4.2.4/libjvm.la -> sys-devel/gcc
* /usr/lib/gcj-4.3.1-9/libjvm.la -> sys-devel/gcc
* Generated new 4_raw.rr and 4_owners.rr
* Cleaning list of packages to rebuild
* Generated new 4_pkgs.rr
* Assigning packages to ebuilds
* Generated new 4_ebuilds.rr
* Evaluating package order
* Generated new 5_order.rr
* All prepared. Starting rebuild
emerge --oneshot sys-devel/gcc:4.1
sys-devel/gcc:4.2
sys-devel/gcc:4.3
.......^C
Altough Symlinking is a harmless solution, but (yet) it doesnt solve the bug/problem anyway. AFAIK, i`ve already symlinking this when i install GCC 4.2, and after i upgraded it to 4.3, i broke and will meet this problem again.(n.. again?)
ln -s /usr/lib/gcc/i686-pc-linux-gnu/x.x.x/lib-gnu-java-awt-peer-gtk.la lib-gnu-java-awt-peer-gtk.la
ln -s /usr/lib/gcc/i686-pc-linux-gnu/x.x.x/libgcj.la libgcj.la
and here are the patch, if u hate to do symlinking.


2. svgalib fails to build on kernel 2.6.26
This Problem Occurs when im trying to install svgalib (needed by mplayer also vlc) into kernel 2.6.25-26, to resolve this problem, im also using this fedora guys patch, off course we need to tweak it and put it into the svgalib ebuild files, but when its done, it will solve the "revdep-rebuild" process.

This is my short instruction for patching it and adding it into svgalib ebuild file (but, if you arent sure, dont follow this :))

#go to svgalib directory
cd /usr/portage/media-libs/svgalib/files/

#download and get the pacth (for example,file svgalib-1.9.25-kernel-2.6.patch)
#edit the ebuild, and add the bold one (make sure your filename format)into the src_unpack routine


26 src_unpack() {
27 unpack ${A}
28 cd "${S}"
29 epatch "${FILESDIR}"/${PN}-1.9.25-linux2.6.patch
30 epatch "${FILESDIR}"/${PN}-1.9.19-pic.patch #51698
31 epatch "${FILESDIR}"/${PN}-1.9.25-build.patch
32 epatch "${FILESDIR}"/${PN}-1.9.25-kernel-2.6.patch
33 }
34

#re-create the manifest
ebuild svgalib-1.9.25.ebuild manifest

#re-emerge svgalib
emerge svgalib
Ok,The Two Bug are solved. Gentoo always teach me (many) new things, hope this article help.
Enjoy(tm)

images are property of gentoo.org and junauza.com

No comments:

Post a Comment