<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>168046</bug_id>
          
          <creation_ts>2007-02-22 21:57 0000</creation_ts>
          <short_desc>sys-* ebuilds abusing ROOT</short_desc>
          <delta_ts>2009-02-08 17:16:33 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Applications</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          
          
          
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>258096</blocked>
          
          <everconfirmed>1</everconfirmed>
          <reporter>ciaran.mccreesh@googlemail.com</reporter>
          <assigned_to>qa@gentoo.org</assigned_to>
          <cc>cardoe@gentoo.org</cc>
    
    <cc>embedded@gentoo.org</cc>
    
    <cc>hp-cluster@gentoo.org</cc>
    
    <cc>johnm@gentoo.org</cc>
    
    <cc>sbriesen@gentoo.org</cc>
    
    <cc>tantive@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>ciaran.mccreesh@googlemail.com</who>
            <bug_when>2007-02-22 21:57:24 0000</bug_when>
            <thetext>Some notes on ROOT:

* The idea behind ROOT is that one can build a system with ROOT=/somewhere and then chroot into it or tar up /somewhere as a system image. It is not designed to allow the user to run /somewhere/usr/bin/foo.

* ROOT can&apos;t be used correctly in src_*, since ROOT might be different when merging a binary package. For example, a binary package might be built with ROOT=/ and then installed onto a system using ROOT=/somewhere.

* ROOT isn&apos;t used for library dependencies. When building, libraries, headers etc. on / have to be used. Cross-compiling etc is done by configuring the toolchain correctly, not by hacking ebuilds in a way that breaks binary packages.

Summary of all mentioned herds:
  Java base-system bsd cluster cron embedded gentopia hppa no-herd toolchain

Summary of all mentioned maintainers:
  &lt;cardoe@gentoo.org&gt;
  &lt;gmsoft@gentoo.org&gt;
  &lt;johnm@gentoo.org&gt;
  &lt;solar@gentoo.org&gt;
  &lt;tantive@gentoo.org&gt;
  &lt;vapier@gentoo.org&gt;
  Saleem Abdulrasool &lt;compnerd@gentoo.org&gt;
  Stefan Briesenick &lt;sbriesen@gentoo.org&gt;
  Thilo Bangert &lt;bangert@gentoo.org&gt;</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ciaran.mccreesh@googlemail.com</who>
            <bug_when>2007-02-22 21:58:02 0000</bug_when>
            <thetext>
QA checks for package directory /sys-apps/baselayout:
/sys-apps/baselayout/baselayout-1.13.0_alpha10-r2.ebuild: root:
  src_install 153: if has_multilib_profile &amp;&amp; [[ -d ${ROOT}lib32 || -d ${ROOT}lib32 ]] &amp;&amp; ! hasq lib32 ${libdirs}; then
  src_install 163: # Remove the installed runlevels, as we don&apos;t know about $ROOT yet
/sys-apps/baselayout/baselayout-1.13.0_alpha11-r1.ebuild: root:
  src_install 148: if has_multilib_profile &amp;&amp; [[ -d ${ROOT}lib32 || -d ${ROOT}lib32 ]] &amp;&amp; ! hasq lib32 ${libdirs}; then
  src_install 158: # Remove the installed runlevels, as we don&apos;t know about $ROOT yet
/sys-apps/baselayout/baselayout-1.13.0_alpha11-r2.ebuild: root:
  src_install 149: if has_multilib_profile &amp;&amp; [[ -d ${ROOT}lib32 || -d ${ROOT}lib32 ]] &amp;&amp; ! hasq lib32 ${libdirs}; then
  src_install 159: # Remove the installed runlevels, as we don&apos;t know about $ROOT yet
/sys-apps/baselayout/baselayout-1.13.0_alpha12.ebuild: root:
  src_install 145: if has_multilib_profile &amp;&amp; [[ -d ${ROOT}lib32 || -d ${ROOT}lib32 ]] &amp;&amp; ! hasq lib32 ${libdirs}; then
  src_install 155: # Remove the installed runlevels, as we don&apos;t know about $ROOT yet
herds: base-system

QA checks for package directory /sys-apps/baselayout-lite:
/sys-apps/baselayout-lite/baselayout-lite-1.0_pre1.ebuild: root:
  src_install 26: [ &quot;${ROOT}&quot; = &quot;/&quot; ] &amp;&amp; rm -rf ${D}/proc
  src_install 27: [ &quot;${ROOT}&quot; = &quot;&quot; ] &amp;&amp; rm -rf ${D}/proc
herds: embedded

QA checks for package directory /sys-apps/busybox:
/sys-apps/busybox/busybox-1.2.2.1.ebuild: root:
  src_unpack 117: for root in &quot;${PORTAGE_CONFIGROOT}&quot; &quot;${ROOT}&quot; / ; do
/sys-apps/busybox/busybox-1.3.1.ebuild: root:
  src_unpack 133: for root in &quot;${PORTAGE_CONFIGROOT}&quot; &quot;${ROOT}&quot; / ; do
/sys-apps/busybox/busybox-1.4.1-r1.ebuild: root:
  src_unpack 132: for root in &quot;${PORTAGE_CONFIGROOT}&quot; &quot;${ROOT}&quot; / ; do
/sys-apps/busybox/busybox-1.4.1-r2.ebuild: root:
  src_unpack 133: for root in &quot;${PORTAGE_CONFIGROOT}&quot; &quot;${ROOT}&quot; / ; do
herds: embedded

QA checks for package directory /sys-apps/hal:
/sys-apps/hal/hal-0.5.7.1-r3.ebuild: root:
  src_compile 132: if [ -r &quot;${ROOT}/usr/share/misc/pci.ids.gz&quot; ] ; then
  src_compile 133: hwdata=&quot;${ROOT}/usr/share/misc/pci.ids.gz&quot;
  src_compile 134: elif [ -r &quot;${ROOT}/usr/share/misc/pci.ids&quot; ] ; then
  src_compile 135: hwdata=&quot;${ROOT}/usr/share/misc/pci.ids&quot;
/sys-apps/hal/hal-0.5.7.1-r4.ebuild: root:
  src_compile 139: if [ -r &quot;${ROOT}/usr/share/misc/pci.ids.gz&quot; ] ; then
  src_compile 140: hwdata=&quot;${ROOT}/usr/share/misc/pci.ids.gz&quot;
  src_compile 141: elif [ -r &quot;${ROOT}/usr/share/misc/pci.ids&quot; ] ; then
  src_compile 142: hwdata=&quot;${ROOT}/usr/share/misc/pci.ids&quot;
herds: gentopia
maintainer: &lt;cardoe@gentoo.org&gt;

QA checks for package directory /sys-apps/netboot-base:
/sys-apps/netboot-base/netboot-base-20041007.ebuild: root:
  src_install 31: [[ ${ROOT} = &quot;/&quot; ]] &amp;&amp; die &quot;refusing to install to /&quot;
herds: base-system
maintainer: &lt;gmsoft@gentoo.org&gt;
maintainer: &lt;vapier@gentoo.org&gt;

QA checks for package directory /sys-apps/pcfclock:
/sys-apps/pcfclock/pcfclock-0.44-r2.ebuild: root:
  src_install 48: if [ -e ${ROOT}dev/.udev ]; then
/sys-apps/pcfclock/pcfclock-0.44-r3.ebuild: root:
  src_install 49: if [ -e ${ROOT}dev/.udev ]; then
herds: no-herd
maintainer: Stefan Briesenick &lt;sbriesen@gentoo.org&gt;

QA checks for package directory /sys-apps/ucspi-proxy:
/sys-apps/ucspi-proxy/ucspi-proxy-0.96.ebuild: root:
  src_compile 22: echo &quot;${ROOT}/usr/include/bglibs/&quot; &gt; conf-bgincs
  src_compile 23: echo &quot;${ROOT}/usr/lib/bglibs/&quot; &gt; conf-bglibs
herds: base-system
maintainer: Thilo Bangert &lt;bangert@gentoo.org&gt;

QA checks for package directory /sys-apps/ucspi-unix:
/sys-apps/ucspi-unix/ucspi-unix-0.36-r1.ebuild: root:
  src_compile 25: echo &quot;$(tc-getCC) ${CFLAGS} -I${ROOT}/usr/lib/bglibs/include&quot; &gt; conf-cc
  src_compile 26: echo &quot;$(tc-getCC) -s -L${ROOT}/usr/lib/bglibs/lib&quot; &gt; conf-ld
/sys-apps/ucspi-unix/ucspi-unix-0.36-r2.ebuild: root:
  src_compile 26: echo &quot;$(tc-getCC) ${CFLAGS} -I${ROOT}/usr/lib/bglibs/include ${PEERCRED}&quot; &gt; conf-cc
  src_compile 27: echo &quot;$(tc-getCC) ${LDFLAGS} -L${ROOT}/usr/lib/bglibs/lib&quot; &gt; conf-ld
herds: base-system
maintainer: Thilo Bangert &lt;bangert@gentoo.org&gt;

QA checks for package directory /sys-cluster/torque:
/sys-cluster/torque/torque-2.1.6.ebuild: root:
  src_install 120: if [[ -f &quot;${ROOT}etc/pbs_environment&quot; ]]; then
  src_install 121: cp &quot;${ROOT}etc/pbs_environment&quot; &quot;${D}&quot;/etc/pbs_environment
  src_install 126: if [ -f &quot;${ROOT}var/spool/PBS/server_name&quot; ]; then
  src_install 127: cp &quot;${ROOT}var/spool/PBS/server_name&quot; &quot;${D}/var/spool/PBS/server_name&quot;
herds: cluster

QA checks for package directory /sys-devel/binutils-hppa64:
/sys-devel/binutils-hppa64/binutils-hppa64-2.16.1.ebuild: root:
  src_compile 87: emake tooldir=&quot;${ROOT}/usr/bin&quot; \
herds: hppa

QA checks for package directory /sys-devel/gcc:
/sys-devel/gcc/gcc-3.3.2-r7.ebuild: root:
  src_install 495: [ -f &quot;${ROOT}/etc/env.d/99glibc_ssp&quot; ]
/sys-devel/gcc/gcc-3.4.1-r3.ebuild: root:
  src_install 734: [ -f &quot;${ROOT}/etc/env.d/99glibc_ssp&quot; ]
herds: toolchain

QA checks for package directory /sys-devel/gcc-compat:
/sys-devel/gcc-compat/gcc-compat-1.4.ebuild: root:
  src_install 27: cd $ROOT || die &quot;Failed to chdir to root: $ROOT&quot;
herds: base-system

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ciaran.mccreesh@googlemail.com</who>
            <bug_when>2007-02-22 21:58:18 0000</bug_when>
            <thetext>
QA checks for package directory /sys-devel/gettext:
/sys-devel/gettext/gettext-0.14.1-r1.ebuild: root:
  src_install 66: if [ -e &quot;${ROOT}&quot;/usr/$(get_libdir)/libintl.so.2 ] ; then
  src_install 67: cp -pPR ${ROOT}/usr/$(get_libdir)/libintl.so.2* ${D}/usr/$(get_libdir)/
/sys-devel/gettext/gettext-0.14.2.ebuild: root:
  src_install 78: if [ -e &quot;${ROOT}&quot;/usr/$(get_libdir)/libintl.so.2 ] ; then
  src_install 79: cp -pPR ${ROOT}/usr/$(get_libdir)/libintl.so.2* ${D}/usr/$(get_libdir)/
/sys-devel/gettext/gettext-0.14.4.ebuild: root:
  src_install 79: if [ -e &quot;${ROOT}&quot;/usr/$(get_libdir)/libintl.so.2 ] ; then
  src_install 80: cp -pPR ${ROOT}/usr/$(get_libdir)/libintl.so.2* ${D}/usr/$(get_libdir)/
/sys-devel/gettext/gettext-0.14.5.ebuild: root:
  src_install 86: if [ -e &quot;${ROOT}&quot;/usr/$(get_libdir)/libintl.so.2 ] ; then
  src_install 87: cp -pPR ${ROOT}/usr/$(get_libdir)/libintl.so.2* ${D}/usr/$(get_libdir)/
/sys-devel/gettext/gettext-0.14.6.ebuild: root:
  src_install 86: if [ -e &quot;${ROOT}&quot;/usr/$(get_libdir)/libintl.so.2 ] ; then
  src_install 87: cp -pPR ${ROOT}/usr/$(get_libdir)/libintl.so.2* ${D}/usr/$(get_libdir)/
/sys-devel/gettext/gettext-0.15-r1.ebuild: root:
  src_install 78: if [[ -e ${ROOT}/usr/$(get_libdir)/${libname} ]] ; then
  src_install 79: cp -pPR ${ROOT}/usr/$(get_libdir)/${libname}* &quot;${D}&quot;/usr/$(get_libdir)/
  src_install 82: if [[ -e ${ROOT}/$(get_libdir)/${libname} ]] ; then
  src_install 84: cp -pPR ${ROOT}/$(get_libdir)/${libname}* &quot;${D}&quot;/$(get_libdir)/
/sys-devel/gettext/gettext-0.15.ebuild: root:
  src_install 83: if [[ -e ${ROOT}/usr/$(get_libdir)/${libname} ]] ; then
  src_install 84: cp -pPR ${ROOT}/usr/$(get_libdir)/${libname}* &quot;${D}&quot;/usr/$(get_libdir)/
  src_install 87: if [[ -e ${ROOT}/$(get_libdir)/${libname} ]] ; then
  src_install 89: cp -pPR ${ROOT}/$(get_libdir)/${libname}* &quot;${D}&quot;/$(get_libdir)/
/sys-devel/gettext/gettext-0.16.1.ebuild: root:
  src_install 78: if [[ -e ${ROOT}/usr/$(get_libdir)/${libname} ]] ; then
  src_install 79: cp -pPR ${ROOT}/usr/$(get_libdir)/${libname}* &quot;${D}&quot;/usr/$(get_libdir)/
  src_install 82: if [[ -e ${ROOT}/$(get_libdir)/${libname} ]] ; then
  src_install 84: cp -pPR ${ROOT}/$(get_libdir)/${libname}* &quot;${D}&quot;/$(get_libdir)/
herds: base-system

QA checks for package directory /sys-fs/e2fsprogs:
/sys-fs/e2fsprogs/e2fsprogs-1.39-r1.ebuild: root:
  src_unpack 66: ln -s &quot;${ROOT}&quot;/usr/$(get_libdir)/libcom_err.a lib/libcom_err.a
  src_unpack 67: ln -s &quot;${ROOT}&quot;/$(get_libdir)/libcom_err.so lib/libcom_err.so
  src_unpack 69: ln -s &quot;${ROOT}&quot;/usr/include/ss/ss_err.h lib/ss/
  src_unpack 70: ln -s &quot;${ROOT}&quot;/$(get_libdir)/libss.so lib/libss.so
/sys-fs/e2fsprogs/e2fsprogs-1.39.ebuild: root:
  src_unpack 62: ln -s &quot;${ROOT}&quot;/usr/$(get_libdir)/libcom_err.a lib/libcom_err.a
  src_unpack 63: ln -s &quot;${ROOT}&quot;/$(get_libdir)/libcom_err.so lib/libcom_err.so
  src_unpack 65: ln -s &quot;${ROOT}&quot;/usr/include/ss/ss_err.h lib/ss/
  src_unpack 66: ln -s &quot;${ROOT}&quot;/$(get_libdir)/libss.so lib/libss.so
herds: base-system

QA checks for package directory /sys-fs/fuse4bsd:
/sys-fs/fuse4bsd/fuse4bsd-0.3.0.ebuild: root:
  src_unpack 26: cp &quot;${ROOT}/usr/include/fuse/fuse_kernel.h&quot; fuse_module/
herds: bsd

QA checks for package directory /sys-fs/jdiskreport-bin:
/sys-fs/jdiskreport-bin/jdiskreport-bin-1.2.2.ebuild: root:
  src_install 30: local INSTROOT=${ROOT}opt/${MY_PN}
/sys-fs/jdiskreport-bin/jdiskreport-bin-1.2.3.ebuild: root:
  src_install 30: local INSTROOT=${ROOT}opt/${MY_PN}
/sys-fs/jdiskreport-bin/jdiskreport-bin-1.2.5.ebuild: root:
  src_install 30: local INSTROOT=${ROOT}opt/${MY_PN}
herds: Java
maintainer: Saleem Abdulrasool &lt;compnerd@gentoo.org&gt;

QA checks for package directory /sys-fs/mtd:
/sys-fs/mtd/mtd-20040825.ebuild: root:
  src_compile 25: emake LINUXDIR=${ROOT}/usr/src/linux/ || die
/sys-fs/mtd/mtd-20050519.ebuild: root:
  src_compile 25: emake LINUXDIR=${ROOT}/usr/src/linux/ || die
herds: base-system
maintainer: &lt;solar@gentoo.org&gt;

QA checks for package directory /sys-fs/ocfs2-tools:
/sys-fs/ocfs2-tools/ocfs2-tools-1.2.1.ebuild: root:
  src_compile 28: econf --prefix=${ROOT} \
herds: cluster

QA checks for package directory /sys-fs/static-dev:
/sys-fs/static-dev/static-dev-0.1.ebuild: root:
  src_install 58: export PATH=${ROOT}/dev:/dev:${PATH}
herds: no-herd
maintainer: &lt;johnm@gentoo.org&gt;

QA checks for package directory /sys-fs/trustees:
/sys-fs/trustees/trustees-2.10.ebuild: root:
  src_compile 22: if [ ! -e &quot;${ROOT}/usr/src/linux/include/linux/trustee_struct.h&quot; ] ; then
  src_compile 30: append-flags -I${ROOT}/usr/src/linux/include -include errno.h
herds: no-herd

QA checks for package directory /sys-libs/detect:
/sys-libs/detect/detect-0.9.72.ebuild: root:
  src_compile 30: econf --with-kernel-source=&quot;${ROOT}/usr&quot; || die
herds: base-system

QA checks for package directory /sys-libs/glibc:
/sys-libs/glibc/glibc-2.3.2-r12.ebuild: root:
  src_compile 548: #			&amp;&amp; myconf=&quot;${myconf} --with-headers=${ROOT}usr/include&quot;
  src_compile 549: myconf=&quot;${myconf} --with-headers=${ROOT}usr/include&quot;
  src_compile 551: # If kernel version and headers in ${ROOT}/usr/include are ok,
  src_compile 554: -n &quot;$(get_KHV &quot;`KV_to_int ${MIN_KV}`&quot; &quot;${ROOT}/usr/include&quot;)&quot; ]
herds: toolchain

QA checks for package directory /sys-libs/uclibc:
/sys-libs/uclibc/uclibc-0.9.28-r1.ebuild: root:
  src_unpack 320: configfile=${ROOT}/etc/${PN}/${CTARGET}/${conf}.config
/sys-libs/uclibc/uclibc-0.9.28-r2.ebuild: root:
  src_unpack 320: configfile=${ROOT}/etc/${PN}/${CTARGET}/${conf}.config
/sys-libs/uclibc/uclibc-0.9.28.1.ebuild: root:
  src_unpack 321: configfile=${ROOT}/etc/${PN}/${CTARGET}/${conf}.config
/sys-libs/uclibc/uclibc-0.9.28.ebuild: root:
  src_unpack 320: configfile=${ROOT}/etc/${PN}/${CTARGET}/${conf}.config
herds: embedded
maintainer: &lt;solar@gentoo.org&gt;
maintainer: &lt;vapier@gentoo.org&gt;

QA checks for package directory /sys-power/apcupsd:
/sys-power/apcupsd/apcupsd-3.10.18-r2.ebuild: root:
  src_install 85: einfo &quot;The configuration file ${ROOT}/etc/lighttpd/apcupsd.conf should&quot;
/sys-power/apcupsd/apcupsd-3.12.2-r1.ebuild: root:
  src_install 88: einfo &quot;The configuration file ${ROOT}/etc/lighttpd/apcupsd.conf should&quot;
/sys-power/apcupsd/apcupsd-3.12.2.ebuild: root:
  src_install 88: einfo &quot;The configuration file ${ROOT}/etc/lighttpd/apcupsd.conf should&quot;
herds: base-system
maintainer: &lt;tantive@gentoo.org&gt;

QA checks for package directory /sys-process/bcron:
/sys-process/bcron/bcron-0.09.ebuild: root:
  src_compile 28: echo &quot;${ROOT}/usr/include/bglibs&quot; &gt; conf-bgincs
  src_compile 29: echo &quot;${ROOT}/usr/lib/bglibs&quot; &gt; conf-bglibs
herds: cron
maintainer: Thilo Bangert &lt;bangert@gentoo.org&gt;

(that&apos;s them all)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2007-02-26 01:37:52 0000</bug_when>
            <thetext>i&apos;m really not worried about the old versions as they&apos;ll get trimmed in due time:
 - gcc glibc gettext etc...

netboot is fixed in stable version already
gcc-compat is punted
stable gettext is fixed
busybox/uclibc will be fixed when moved to savedconfig.eclass</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>bangert@gentoo.org</who>
            <bug_when>2007-02-26 21:22:02 0000</bug_when>
            <thetext>sys-process/bcron
sys-apps/ucspi-proxy
sys-apps/ucspi-unix
fixed!

thanks.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>betelgeuse@gentoo.org</who>
            <bug_when>2007-02-26 21:22:30 0000</bug_when>
            <thetext>I don&apos;t see anything java listed in this bug. Please add us bug if there is something for us to fix.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>caster@gentoo.org</who>
            <bug_when>2007-02-27 15:50:46 0000</bug_when>
            <thetext>(In reply to comment #5)
&gt; I don&apos;t see anything java listed in this bug. Please add us bug if there is
&gt; something for us to fix.

sys-fs/jdiskreport-bin is in java herd</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gmsoft@gentoo.org</who>
            <bug_when>2007-02-27 19:41:44 0000</bug_when>
            <thetext>Removed binutils-hppa64-2.16.1.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>betelgeuse@gentoo.org</who>
            <bug_when>2007-02-27 20:26:55 0000</bug_when>
            <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; I don&apos;t see anything java listed in this bug. Please add us bug if there is
&gt; &gt; something for us to fix.
&gt; 
&gt; sys-fs/jdiskreport-bin is in java herd
&gt; 

Which is now fixed by switching to use your eclasses. I did not catch that one before because the herd was written as Java not java as usual.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>drizzt@gentoo.org</who>
            <bug_when>2007-03-02 12:43:48 0000</bug_when>
            <thetext>bsd fixed</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>bangert@gentoo.org</who>
            <bug_when>2009-02-08 13:36:07 0000</bug_when>
            <thetext>individual reports for:
pcfclock (bug #258119), static-dev (bug #258121), ocfs2-tools (bug #258122)

the ones still left to check:
baselayout, busybox, gcc, gettext, glibc and uclibc</thetext>
          </long_desc>
      
    </bug>

</bugzilla>