Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 167271 - dev-* ebuilds abusing ROOT
Summary: dev-* 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: 167273
Blocks:
  Show dependency tree
 
Reported: 2007-02-16 21:12 UTC by Ciaran McCreesh
Modified: 2007-06-25 10:59 UTC (History)
3 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-16 21:12:43 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.

Ebuilds in dev-* that appear to get this wrong will be pasted into comments, since the list is too long for a single place and attachments just make things harder to read.

Summary of all mentioned herds:
  cpp crypto gnome-mm java kde mozilla net-mail no-herd postgresql python
  qt ruby scheme sci-geosciences tcltk

Summary of all mentioned maintainers:
  <azarah@gentoo.org>
  <hkBst@gentoo.org>
  <tcltk@gentoo.org>
  Daniel Black <dragonheart@gentoo.org>
  Marijn Schouten <hkBst@gentoo.org>
  Tiziano Müller <dev-zero@gentoo.org>
Comment 1 Ciaran McCreesh 2007-02-16 21:12:58 UTC
QA checks for package directory /dev-cpp/gconfmm:
/dev-cpp/gconfmm/gconfmm-2.16.0.ebuild
   38: cd "${ROOT}"/"${S}"/docs/reference
herds:      gnome-mm


QA checks for package directory /dev-cpp/libglademm:
/dev-cpp/libglademm/libglademm-2.6.3.ebuild
   41: cd "${ROOT}"/"${S}"/docs/reference
herds:      gnome-mm


QA checks for package directory /dev-cpp/libgnomecanvasmm:
/dev-cpp/libgnomecanvasmm/libgnomecanvasmm-2.16.0.ebuild
   37: cd "${ROOT}"/"${S}"/docs/reference
herds:      gnome-mm
Done dev-cpp


QA checks for package directory /dev-db/postgis:
/dev-db/postgis/postgis-1.1.6.ebuild
   52: myconf="${myconf} --with-xsl=$(ls "${ROOT}"usr/share/sgml/docbook/* | \
/dev-db/postgis/postgis-1.2.0.ebuild
   52: myconf="${myconf} --with-xsl=$(ls "${ROOT}"usr/share/sgml/docbook/* | \
herds:      postgresql, sci-geosciences


QA checks for package directory /dev-java/jss:
/dev-java/jss/jss-3.4-r1.ebuild
   34: echo "INCLUDES += -I${ROOT}usr/include/nss -I${ROOT}usr/include/nspr" \
/dev-java/jss/jss-3.4.ebuild
   33: echo "INCLUDES += -I${ROOT}usr/include/nss -I${ROOT}usr/include/nspr" \
/dev-java/jss/jss-4.2.ebuild
   39: echo "INCLUDES += -I${ROOT}usr/include/nss -I${ROOT}usr/include/nspr" \
herds:      java


QA checks for package directory /dev-lang/ruby:
/dev-lang/ruby/ruby-1.8.4-r3.ebuild
  112: dodir ${ROOT}usr/share/doc/${PF}
  113: cp -pPR sample ${D}/${ROOT}usr/share/doc/${PF}
/dev-lang/ruby/ruby-1.8.5_p12.ebuild
  112: dodir ${ROOT}usr/share/doc/${PF}
  113: cp -pPR sample ${D}/${ROOT}usr/share/doc/${PF}
/dev-lang/ruby/ruby-1.8.5_p2.ebuild
  105: dodir ${ROOT}usr/share/doc/${PF}
  106: cp -pPR sample ${D}/${ROOT}usr/share/doc/${PF}
herds:      ruby


QA checks for package directory /dev-lang/tcl:
/dev-lang/tcl/tcl-8.4.11-r1.ebuild
   71: [[ ${ROOT:0-1} != "/" ]] && ROOT=${ROOT}/
   74: -e "s,^TCL_BUILD_LIB_SPEC='-L.*/unix,TCL_BUILD_LIB_SPEC='-L${ROOT}usr/${mylibdir}," \
   75: -e "s,^TCL_SRC_DIR='.*',TCL_SRC_DIR='${ROOT}usr/${mylibdir}/tcl${v1}/include'," \
   76: -e "s,^TCL_BUILD_STUB_LIB_SPEC='-L.*/unix,TCL_BUILD_STUB_LIB_SPEC='-L${ROOT}usr/${mylibdir}," \
   77: -e "s,^TCL_BUILD_STUB_LIB_PATH='.*/unix,TCL_BUILD_STUB_LIB_PATH='${ROOT}usr/${mylibdir}," \
/dev-lang/tcl/tcl-8.4.12.ebuild
   71: [[ ${ROOT:0-1} != "/" ]] && ROOT=${ROOT}/
   74: -e "s,^TCL_BUILD_LIB_SPEC='-L.*/unix,TCL_BUILD_LIB_SPEC='-L${ROOT}usr/${mylibdir}," \
   75: -e "s,^TCL_SRC_DIR='.*',TCL_SRC_DIR='${ROOT}usr/${mylibdir}/tcl${v1}/include'," \
   76: -e "s,^TCL_BUILD_STUB_LIB_SPEC='-L.*/unix,TCL_BUILD_STUB_LIB_SPEC='-L${ROOT}usr/${mylibdir}," \
   77: -e "s,^TCL_BUILD_STUB_LIB_PATH='.*/unix,TCL_BUILD_STUB_LIB_PATH='${ROOT}usr/${mylibdir}," \
/dev-lang/tcl/tcl-8.4.13.ebuild
   73: [[ ${ROOT:0-1} != "/" ]] && ROOT=${ROOT}/
   76: -e "s,^TCL_BUILD_LIB_SPEC='-L.*/unix,TCL_BUILD_LIB_SPEC='-L${ROOT}usr/${mylibdir}," \
   77: -e "s,^TCL_SRC_DIR='.*',TCL_SRC_DIR='${ROOT}usr/${mylibdir}/tcl${v1}/include'," \
   78: -e "s,^TCL_BUILD_STUB_LIB_SPEC='-L.*/unix,TCL_BUILD_STUB_LIB_SPEC='-L${ROOT}usr/${mylibdir}," \
   79: -e "s,^TCL_BUILD_STUB_LIB_PATH='.*/unix,TCL_BUILD_STUB_LIB_PATH='${ROOT}usr/${mylibdir}," \
/dev-lang/tcl/tcl-8.4.14.ebuild
   73: [[ ${ROOT:0-1} != "/" ]] && ROOT=${ROOT}/
   76: -e "s,^TCL_BUILD_LIB_SPEC='-L.*/unix,TCL_BUILD_LIB_SPEC='-L${ROOT}usr/${mylibdir}," \
   77: -e "s,^TCL_SRC_DIR='.*',TCL_SRC_DIR='${ROOT}usr/${mylibdir}/tcl${v1}/include'," \
   78: -e "s,^TCL_BUILD_STUB_LIB_SPEC='-L.*/unix,TCL_BUILD_STUB_LIB_SPEC='-L${ROOT}usr/${mylibdir}," \
   79: -e "s,^TCL_BUILD_STUB_LIB_PATH='.*/unix,TCL_BUILD_STUB_LIB_PATH='${ROOT}usr/${mylibdir}," \
/dev-lang/tcl/tcl-8.4.9.ebuild
   70: [[ ${ROOT:0-1} != "/" ]] && ROOT=${ROOT}/
   73: -e "s,^TCL_BUILD_LIB_SPEC='-L.*/unix,TCL_BUILD_LIB_SPEC='-L${ROOT}usr/${mylibdir}," \
   74: -e "s,^TCL_SRC_DIR='.*',TCL_SRC_DIR='${ROOT}usr/${mylibdir}/tcl${v1}/include'," \
   75: -e "s,^TCL_BUILD_STUB_LIB_SPEC='-L.*/unix,TCL_BUILD_STUB_LIB_SPEC='-L${ROOT}usr/${mylibdir}," \
   76: -e "s,^TCL_BUILD_STUB_LIB_PATH='.*/unix,TCL_BUILD_STUB_LIB_PATH='${ROOT}usr/${mylibdir}," \
herds:      tcltk
maintainer: <tcltk@gentoo.org>


QA checks for package directory /dev-libs/STLport:
/dev-libs/STLport/STLport-5.0.3.ebuild
   53: myconf="${myconf} --with-boost=${ROOT}usr/include"
/dev-libs/STLport/STLport-5.1.0.ebuild
   51: myconf="${myconf} --with-boost=${ROOT}usr/include"
herds:      cpp
Comment 2 Ciaran McCreesh 2007-02-16 21:13:13 UTC
QA checks for package directory /dev-libs/boost:
/dev-libs/boost/boost-1.34_pre20061214.ebuild
   89: export BOOST_BUILD_PATH=${ROOT}/usr/share/boost-build
  126: export BOOST_BUILD_PATH=${ROOT}/usr/share/boost-build
herds:      cpp
maintainer: Tiziano Müller <dev-zero@gentoo.org>


QA checks for package directory /dev-libs/cyrus-sasl:
/dev-libs/cyrus-sasl/cyrus-sasl-2.1.22.ebuild
  220: exeinto "${ROOT}/usr/sbin"
herds:      net-mail


QA checks for package directory /dev-libs/log4c:
/dev-libs/log4c/log4c-1.0.11.ebuild
   42: use doc && addwrite "${ROOT}/var/cache/fonts"
/dev-libs/log4c/log4c-1.0.12.ebuild
   30: use doc && addwrite "${ROOT}/var/cache/fonts"
herds:      no-herd
maintainer: Daniel Black <dragonheart@gentoo.org>


QA checks for package directory /dev-libs/nss:
/dev-libs/nss/nss-3.11.3-r1.ebuild
   26: echo 'INCLUDES += -I${ROOT}/usr/include/nspr -I$(DIST)/include/dbm' \
   30: sed -e 's:$(DIST)/lib:${ROOT}/usr/'"$(get_libdir)"/nspr':' \
/dev-libs/nss/nss-3.11.3.ebuild
   26: echo 'INCLUDES += -I${ROOT}/usr/include/nspr -I$(DIST)/include/dbm' \
   30: sed -e 's:$(DIST)/lib:${ROOT}/usr/'"$(get_libdir)"/nspr':' \
/dev-libs/nss/nss-3.11.4.ebuild
   26: echo 'INCLUDES += -I${ROOT}/usr/include/nspr -I$(DIST)/include/dbm' \
   30: sed -e 's:$(DIST)/lib:${ROOT}/usr/'"$(get_libdir)"/nspr':' \
herds:      mozilla


QA checks for package directory /dev-python/PyQt:
/dev-python/PyQt/PyQt-3.14.1-r1.ebuild
   36: local myconf="-d ${ROOT}/usr/$(get_libdir)/python${PYVER}/site-packages \
   37: -b ${ROOT}/usr/bin \
   38: -v ${ROOT}/usr/share/sip \
   39: -n ${ROOT}/usr/include \
   40: -o ${ROOT}/usr/$(get_libdir)"
/dev-python/PyQt/PyQt-3.14.1-r2.ebuild
   38: local myconf="-d ${ROOT}/usr/$(get_libdir)/python${PYVER}/site-packages \
   39: -b ${ROOT}/usr/bin \
   40: -v ${ROOT}/usr/share/sip \
   41: -n ${ROOT}/usr/include \
   42: -o ${ROOT}/usr/$(get_libdir)"
/dev-python/PyQt/PyQt-3.17.ebuild
   37: local myconf="-d ${ROOT}/usr/$(get_libdir)/python${PYVER}/site-packages \
   38: -b ${ROOT}/usr/bin \
   39: -v ${ROOT}/usr/share/sip \
   40: -n ${ROOT}/usr/include \
   41: -o ${ROOT}/usr/$(get_libdir) \
herds:      python, qt


QA checks for package directory /dev-python/PyQt4:
/dev-python/PyQt4/PyQt4-4.0.ebuild
   39: local myconf="-d ${ROOT}/usr/$(get_libdir)/python${PYVER}/site-packages/PyQt4 \
   40: -b ${ROOT}/usr/bin \
   41: -v ${ROOT}/usr/share/sip" #\
   42: #                 -n ${ROOT}/usr/include \
   43: #                 -o ${ROOT}/usr/$(get_libdir) \
/dev-python/PyQt4/PyQt4-4.1.1.ebuild
   39: local myconf="-d ${ROOT}/usr/$(get_libdir)/python${PYVER}/site-packages/PyQt4 \
   40: -b ${ROOT}/usr/bin \
   41: -v ${ROOT}/usr/share/sip" #\
   42: #                 -n ${ROOT}/usr/include \
   43: #                 -o ${ROOT}/usr/$(get_libdir) \
herds:      python, qt


QA checks for package directory /dev-python/astng:
/dev-python/astng/astng-0.16.0.ebuild
   45: cp -r "${ROOT}${spath}/logilab/common" "${T}/test/${spath}/logilab" \
/dev-python/astng/astng-0.16.1.ebuild
   47: cp -r "${ROOT}${spath}/logilab/common" "${T}/test/${spath}/logilab" \
/dev-python/astng/astng-0.16.3.ebuild
   47: cp -r "${ROOT}${spath}/logilab/common" "${T}/test/${spath}/logilab" \
herds:      python


QA checks for package directory /dev-python/imaging:
/dev-python/imaging/imaging-1.1.5.ebuild
   57: insinto "${ROOT}/usr/include/python${PYVER}"
   62: insinto "${ROOT}/usr/share/doc/${PF}"
herds:      python


QA checks for package directory /dev-python/pykde:
/dev-python/pykde/pykde-3.16.0.ebuild
   29: local myconf="-d ${ROOT}/usr/$(get_libdir)/python${PYVER}/site-packages \
   30: -v ${ROOT}/usr/share/sip \
herds:      kde, python


QA checks for package directory /dev-python/python-ldap:
/dev-python/python-ldap/python-ldap-2.0.11.ebuild
   31: sed -e "s:^library_dirs =.*:library_dirs = ${ROOT}/usr/lib ${ROOT}/usr/lib/sasl2:" \
   32: -e "s:^include_dirs =.*:include_dirs = ${ROOT}/usr/include:" \
/dev-python/python-ldap/python-ldap-2.2.1.ebuild
   30: -e "s:^include_dirs =.*:include_dirs = ${ROOT}usr/include:" \
   31: -e "s:\(extra_compile_args =\).*:\1\nextra_link_args = -Wl,-rpath=${ROOT}usr/lib -Wl,-rpath=${ROOT}usr/lib/sasl2:" \
herds:      python

Comment 3 Ciaran McCreesh 2007-02-16 21:13:30 UTC
QA checks for package directory /dev-python/qscintilla:
/dev-python/qscintilla/qscintilla-1.7.1.ebuild
   51: dodir ${ROOT}/usr/{include,$(get_libdir),share/qscintilla/translations}
herds:      python, qt


QA checks for package directory /dev-python/sip:
/dev-python/sip/sip-3.10.2.ebuild
   23: -b ${ROOT}/usr/bin \
   24: -d ${ROOT}/usr/lib/python${PYVER}/site-packages \
   25: -e ${ROOT}/usr/include/python${PYVER} \
/dev-python/sip/sip-3.11.1.ebuild
   23: -b ${ROOT}/usr/bin \
   24: -d ${ROOT}/usr/lib/python${PYVER}/site-packages \
   25: -e ${ROOT}/usr/include/python${PYVER} \
/dev-python/sip/sip-4.1.1.ebuild
   26: local myconf="-l qt-mt -b ${ROOT}usr/bin -d ${ROOT}usr/$(get_libdir)/python${PYVER}/site-packages -e ${ROOT}usr/include/python${PYVER}"
/dev-python/sip/sip-4.2.1-r1.ebuild
   35: local myconf="-l qt-mt -b ${ROOT}usr/bin -d ${ROOT}usr/$(get_libdir)/python${PYVER}/site-packages -e ${ROOT}usr/include/python${PYVER}"
/dev-python/sip/sip-4.2.1.ebuild
   29: local myconf="-l qt-mt -b ${ROOT}usr/bin -d ${ROOT}usr/$(get_libdir)/python${PYVER}/site-packages -e ${ROOT}usr/include/python${PYVER}"
/dev-python/sip/sip-4.3.2.ebuild
   29: local myconf="-l qt-mt -b ${ROOT}usr/bin -d ${ROOT}usr/$(get_libdir)/python${PYVER}/site-packages -e ${ROOT}usr/include/python${PYVER}"
/dev-python/sip/sip-4.5.2-r1.ebuild
   32: -b "${ROOT}usr/bin" \
   33: -d "${ROOT}usr/$(get_libdir)/python${PYVER}/site-packages" \
   34: -e "${ROOT}usr/include/python${PYVER}" \
   35: -v "${ROOT}usr/share/sip" \
herds:      python, qt


QA checks for package directory /dev-scheme/guile:
/dev-scheme/guile/guile-1.6.8.ebuild
   60: # dosym ${ROOT}/usr/lib/slib/ ${ROOT}/usr/share/guile/slib
herds:      scheme
maintainer: <hkBst@gentoo.org>


QA checks for package directory /dev-scheme/scm:
/dev-scheme/scm/scm-5.5.3.ebuild
   33: echo "srcdir=${ROOT}/usr/share/scm/" > srcdir.mk
herds:      scheme
maintainer: Marijn Schouten <hkBst@gentoo.org>


QA checks for package directory /dev-tcltk/snack:
/dev-tcltk/snack/snack-2.2.10.ebuild
   33: myconf="${myconf} --with-ogg-include=${ROOT}/usr/include"
   34: myconf="${myconf} --with-ogg-lib=${ROOT}/usr/$(get_libdir)"
/dev-tcltk/snack/snack-2.2.9.ebuild
   31: myconf="${myconf} --with-ogg-include=${ROOT}/usr/include"
   32: myconf="${myconf} --with-ogg-lib=${ROOT}/usr/$(get_libdir)"
herds:      tcltk


QA checks for package directory /dev-tcltk/tclgpgme:
/dev-tcltk/tclgpgme/tclgpgme-1.0-r1.ebuild
   26: export GPGME_CONFIG=${ROOT}/usr/bin/gpgme3-config
/dev-tcltk/tclgpgme/tclgpgme-1.0-r2.ebuild
   27: export GPGME_CONFIG=${ROOT}/usr/bin/gpgme3-config
herds:      crypto
maintainer: <dragonheart@gentoo.org>


QA checks for package directory /dev-util/eric:
/dev-util/eric/eric-3.7.2-r1.ebuild
   40: -b ${ROOT}usr/bin \
   42: -d ${ROOT}usr/$(get_libdir)/python${PYVER}/site-packages \
   48: "${ROOT}usr/$(get_libdir)/python${PYVER}/site-packages/icons/default/eric.png" \
/dev-util/eric/eric-3.9.4.ebuild
   32: -b "${ROOT}usr/bin" \
   34: -d "${ROOT}usr/$(get_libdir)/python${PYVER}/site-packages" \
   40: "${ROOT}usr/$(get_libdir)/python${PYVER}/site-packages/eric3/icons/default/eric.png" \
herds:      python, qt


QA checks for package directory /dev-util/kdevelop:
/dev-util/kdevelop/kdevelop-3.3.5.ebuild
   55: myconf="${myconf} --with-db-includedir=${ROOT}$(db_includedir)
/dev-util/kdevelop/kdevelop-3.3.6.ebuild
   55: myconf="${myconf} --with-db-includedir=${ROOT}$(db_includedir)
/dev-util/kdevelop/kdevelop-3.4.0-r2.ebuild
   60: myconf="${myconf} --with-db-includedir=${ROOT}$(db_includedir)
herds:      kde


QA checks for package directory /dev-util/rhide:
/dev-util/rhide/rhide-1.5.20050823.ebuild
  126: --x-include="${ROOT}/usr/include" \
  127: --x-lib="${ROOT}/usr/$(get_libdir)" \
herds:      no-herd
maintainer: <azarah@gentoo.org>


(and that's them all)
Comment 4 Petteri Räty (RETIRED) gentoo-dev 2007-02-16 21:23:23 UTC
dev-java/jss fixed in ~arch and requested stable so java is done
Comment 5 Alexander Færøy 2007-02-16 21:32:11 UTC
Since Jakub refused to do his job I am CC'ing the involved parts.
Comment 6 Saleem Abdulrasool (RETIRED) gentoo-dev 2007-02-16 21:45:55 UTC
gnome-mm done
Comment 7 Torsten Veller (RETIRED) gentoo-dev 2007-02-18 19:57:05 UTC
net-mail done
Comment 8 Luca Longinotti (RETIRED) gentoo-dev 2007-04-11 14:48:14 UTC
dev-db/postgis fixed.
Best regards, CHTEKK.
Comment 9 Daniel Black (RETIRED) gentoo-dev 2007-04-13 23:41:23 UTC
dev-tcltk/tclgpgme and dev-libs/log4c happy and $ROOTless
Comment 10 Tiziano Müller (RETIRED) gentoo-dev 2007-06-24 19:18:15 UTC
STLport and boost fixed a long time ago
Comment 11 Tiziano Müller (RETIRED) gentoo-dev 2007-06-24 21:57:33 UTC
dev-python/PyQt
dev-python/PyQt4
dev-python/imaging
dev-python/pykde
dev-python/astng
dev-python/python-ldap
dev-python/qscintilla
dev-python/sip
dev-util/eric

... all done. Next time please CC python.
Comment 12 Marijn Schouten (RETIRED) gentoo-dev 2007-06-25 09:25:19 UTC
dev-scheme/{scm,guile} done.

Note that the ROOT abuse in guile was in a comment, but I fixed it anyway.
Comment 13 Piotr Jaroszyński (RETIRED) gentoo-dev 2007-06-25 10:59:49 UTC
I have fixed the rest.