Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 168046 - sys-* ebuilds abusing ROOT
Summary: sys-* ebuilds abusing ROOT
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Quality Assurance Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 258096
  Show dependency tree
 
Reported: 2007-02-22 21:57 UTC by Ciaran McCreesh
Modified: 2015-06-11 15:56 UTC (History)
6 users (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 Ciaran McCreesh 2007-02-22 21:57:24 UTC
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'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'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:
  <cardoe@gentoo.org>
  <gmsoft@gentoo.org>
  <johnm@gentoo.org>
  <solar@gentoo.org>
  <tantive@gentoo.org>
  <vapier@gentoo.org>
  Saleem Abdulrasool <compnerd@gentoo.org>
  Stefan Briesenick <sbriesen@gentoo.org>
  Thilo Bangert <bangert@gentoo.org>
Comment 1 Ciaran McCreesh 2007-02-22 21:58:02 UTC
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 && [[ -d ${ROOT}lib32 || -d ${ROOT}lib32 ]] && ! hasq lib32 ${libdirs}; then
  src_install 163: # Remove the installed runlevels, as we don't know about $ROOT yet
/sys-apps/baselayout/baselayout-1.13.0_alpha11-r1.ebuild: root:
  src_install 148: if has_multilib_profile && [[ -d ${ROOT}lib32 || -d ${ROOT}lib32 ]] && ! hasq lib32 ${libdirs}; then
  src_install 158: # Remove the installed runlevels, as we don't know about $ROOT yet
/sys-apps/baselayout/baselayout-1.13.0_alpha11-r2.ebuild: root:
  src_install 149: if has_multilib_profile && [[ -d ${ROOT}lib32 || -d ${ROOT}lib32 ]] && ! hasq lib32 ${libdirs}; then
  src_install 159: # Remove the installed runlevels, as we don't know about $ROOT yet
/sys-apps/baselayout/baselayout-1.13.0_alpha12.ebuild: root:
  src_install 145: if has_multilib_profile && [[ -d ${ROOT}lib32 || -d ${ROOT}lib32 ]] && ! hasq lib32 ${libdirs}; then
  src_install 155: # Remove the installed runlevels, as we don'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: [ "${ROOT}" = "/" ] && rm -rf ${D}/proc
  src_install 27: [ "${ROOT}" = "" ] && 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 "${PORTAGE_CONFIGROOT}" "${ROOT}" / ; do
/sys-apps/busybox/busybox-1.3.1.ebuild: root:
  src_unpack 133: for root in "${PORTAGE_CONFIGROOT}" "${ROOT}" / ; do
/sys-apps/busybox/busybox-1.4.1-r1.ebuild: root:
  src_unpack 132: for root in "${PORTAGE_CONFIGROOT}" "${ROOT}" / ; do
/sys-apps/busybox/busybox-1.4.1-r2.ebuild: root:
  src_unpack 133: for root in "${PORTAGE_CONFIGROOT}" "${ROOT}" / ; 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 "${ROOT}/usr/share/misc/pci.ids.gz" ] ; then
  src_compile 133: hwdata="${ROOT}/usr/share/misc/pci.ids.gz"
  src_compile 134: elif [ -r "${ROOT}/usr/share/misc/pci.ids" ] ; then
  src_compile 135: hwdata="${ROOT}/usr/share/misc/pci.ids"
/sys-apps/hal/hal-0.5.7.1-r4.ebuild: root:
  src_compile 139: if [ -r "${ROOT}/usr/share/misc/pci.ids.gz" ] ; then
  src_compile 140: hwdata="${ROOT}/usr/share/misc/pci.ids.gz"
  src_compile 141: elif [ -r "${ROOT}/usr/share/misc/pci.ids" ] ; then
  src_compile 142: hwdata="${ROOT}/usr/share/misc/pci.ids"
herds: gentopia
maintainer: <cardoe@gentoo.org>

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

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 <sbriesen@gentoo.org>

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

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

QA checks for package directory /sys-cluster/torque:
/sys-cluster/torque/torque-2.1.6.ebuild: root:
  src_install 120: if [[ -f "${ROOT}etc/pbs_environment" ]]; then
  src_install 121: cp "${ROOT}etc/pbs_environment" "${D}"/etc/pbs_environment
  src_install 126: if [ -f "${ROOT}var/spool/PBS/server_name" ]; then
  src_install 127: cp "${ROOT}var/spool/PBS/server_name" "${D}/var/spool/PBS/server_name"
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="${ROOT}/usr/bin" \
herds: hppa

QA checks for package directory /sys-devel/gcc:
/sys-devel/gcc/gcc-3.3.2-r7.ebuild: root:
  src_install 495: [ -f "${ROOT}/etc/env.d/99glibc_ssp" ]
/sys-devel/gcc/gcc-3.4.1-r3.ebuild: root:
  src_install 734: [ -f "${ROOT}/etc/env.d/99glibc_ssp" ]
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 "Failed to chdir to root: $ROOT"
herds: base-system

Comment 2 Ciaran McCreesh 2007-02-22 21:58:18 UTC
QA checks for package directory /sys-devel/gettext:
/sys-devel/gettext/gettext-0.14.1-r1.ebuild: root:
  src_install 66: if [ -e "${ROOT}"/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 "${ROOT}"/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 "${ROOT}"/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 "${ROOT}"/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 "${ROOT}"/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}* "${D}"/usr/$(get_libdir)/
  src_install 82: if [[ -e ${ROOT}/$(get_libdir)/${libname} ]] ; then
  src_install 84: cp -pPR ${ROOT}/$(get_libdir)/${libname}* "${D}"/$(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}* "${D}"/usr/$(get_libdir)/
  src_install 87: if [[ -e ${ROOT}/$(get_libdir)/${libname} ]] ; then
  src_install 89: cp -pPR ${ROOT}/$(get_libdir)/${libname}* "${D}"/$(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}* "${D}"/usr/$(get_libdir)/
  src_install 82: if [[ -e ${ROOT}/$(get_libdir)/${libname} ]] ; then
  src_install 84: cp -pPR ${ROOT}/$(get_libdir)/${libname}* "${D}"/$(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 "${ROOT}"/usr/$(get_libdir)/libcom_err.a lib/libcom_err.a
  src_unpack 67: ln -s "${ROOT}"/$(get_libdir)/libcom_err.so lib/libcom_err.so
  src_unpack 69: ln -s "${ROOT}"/usr/include/ss/ss_err.h lib/ss/
  src_unpack 70: ln -s "${ROOT}"/$(get_libdir)/libss.so lib/libss.so
/sys-fs/e2fsprogs/e2fsprogs-1.39.ebuild: root:
  src_unpack 62: ln -s "${ROOT}"/usr/$(get_libdir)/libcom_err.a lib/libcom_err.a
  src_unpack 63: ln -s "${ROOT}"/$(get_libdir)/libcom_err.so lib/libcom_err.so
  src_unpack 65: ln -s "${ROOT}"/usr/include/ss/ss_err.h lib/ss/
  src_unpack 66: ln -s "${ROOT}"/$(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 "${ROOT}/usr/include/fuse/fuse_kernel.h" 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 <compnerd@gentoo.org>

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: <solar@gentoo.org>

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: <johnm@gentoo.org>

QA checks for package directory /sys-fs/trustees:
/sys-fs/trustees/trustees-2.10.ebuild: root:
  src_compile 22: if [ ! -e "${ROOT}/usr/src/linux/include/linux/trustee_struct.h" ] ; 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="${ROOT}/usr" || 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: #			&& myconf="${myconf} --with-headers=${ROOT}usr/include"
  src_compile 549: myconf="${myconf} --with-headers=${ROOT}usr/include"
  src_compile 551: # If kernel version and headers in ${ROOT}/usr/include are ok,
  src_compile 554: -n "$(get_KHV "`KV_to_int ${MIN_KV}`" "${ROOT}/usr/include")" ]
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: <solar@gentoo.org>
maintainer: <vapier@gentoo.org>

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

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

(that's them all)
Comment 3 SpanKY gentoo-dev 2007-02-26 01:37:52 UTC
i'm really not worried about the old versions as they'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
Comment 4 Thilo Bangert (RETIRED) (RETIRED) gentoo-dev 2007-02-26 21:22:02 UTC
sys-process/bcron
sys-apps/ucspi-proxy
sys-apps/ucspi-unix
fixed!

thanks.
Comment 5 Petteri Räty (RETIRED) gentoo-dev 2007-02-26 21:22:30 UTC
I don't see anything java listed in this bug. Please add us bug if there is something for us to fix.
Comment 6 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2007-02-27 15:50:46 UTC
(In reply to comment #5)
> I don't see anything java listed in this bug. Please add us bug if there is
> something for us to fix.

sys-fs/jdiskreport-bin is in java herd
Comment 7 Guy Martin (RETIRED) gentoo-dev 2007-02-27 19:41:44 UTC
Removed binutils-hppa64-2.16.1.
Comment 8 Petteri Räty (RETIRED) gentoo-dev 2007-02-27 20:26:55 UTC
(In reply to comment #6)
> (In reply to comment #5)
> > I don't see anything java listed in this bug. Please add us bug if there is
> > something for us to fix.
> 
> sys-fs/jdiskreport-bin is in java herd
> 

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.
Comment 9 Timothy Redaelli (RETIRED) gentoo-dev 2007-03-02 12:43:48 UTC
bsd fixed
Comment 10 Thilo Bangert (RETIRED) (RETIRED) gentoo-dev 2009-02-08 13:36:07 UTC
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
Comment 11 Alex Xu (Hello71) 2015-06-11 15:56:58 UTC
(In reply to Thilo Bangert (RETIRED) (RETIRED) from comment #10)
> individual reports for:
> pcfclock (bug #258119), static-dev (bug #258121), ocfs2-tools (bug #258122)
> 
> the ones still left to check:
> baselayout,

looks ok

> busybox,

looks ok

> gcc, glibc,

toolchain.eclass looks ok

> gettext,

does not use ROOT

> uclibc

looks ok