diff options
author | Chris Houser <chouser@gentoo.org> | 2001-12-23 22:46:34 +0000 |
---|---|---|
committer | Chris Houser <chouser@gentoo.org> | 2001-12-23 22:46:34 +0000 |
commit | 1e76db36b3f2145a45e342c87eb1daa1f24f176e (patch) | |
tree | bde87d7f9e3b14dd3d268c72c87a74a577d49b53 | |
parent | source for a shared library which portage.py adds to LD_PRELOAD to intercept (diff) | |
download | portage-cvs-v1-7-7-nrp.tar.gz portage-cvs-v1-7-7-nrp.tar.bz2 portage-cvs-v1-7-7-nrp.zip |
merge changes from v1-7-7 to v1-8-0v1-8-0-nrpv1-7-7-nrp
-rw-r--r-- | ChangeLog | 25 | ||||
-rw-r--r-- | man/make.conf.5 | 106 | ||||
-rw-r--r-- | pym/portage.py | 16 | ||||
-rw-r--r-- | sandbox/sandbox-0.2.3.ebuild | 73 | ||||
-rwxr-xr-x | tarball.sh | 2 |
5 files changed, 208 insertions, 14 deletions
@@ -2,6 +2,31 @@ # Copyright 2001 Gentoo Technologies, Inc.; Distributed under the GPL # Written by Daniel Robbins (drobbins@gentoo.org) +*portage 1.9.0_pre1 (23 Dec 2001) + + 23 Dec 2001; Initial set of non-root user features added, including + --stayroot. Building packages as non-root is still broken, and --stayroot + seems to not work for some operations. Based on portage 1.8.0. + +*portage 1.8.0 (22 Dec 2001) + + 22 Dec 2001; I messed up the "transparent .so library" update. Included + is the correct fix, which seems to allow glibc to update on my system + without any tricks. I just merged a new glibc while in X, without using + any of glibc's old pkg_postinst/pkg_preinst hacks. + + 21 Dec 2001; man/make.defaults.5, make.conf.5. Moved make.defaults.5 + to make.conf.5 and updated contents. + +*portage 1.7.8 (21 Dec 2001) + + 21 Dec 2001; portage.py: ebuild install doesn't throw away the compile + directory if ebuild has been changed and MAINTAINER is set; we now use + mv -f to move files into location on the filesystem, making our library + install method even more robust. It should now be totally safe to + upgrade glibc while in X and playing music with xmms and surfing the + Web and compiling 20 applications at once :) + * portage 1.7.7 (14 Dec 2001) 14 Dec 2001; Aron Griffis (agriffis@gentoo.org): portage.py: movefile() now diff --git a/man/make.conf.5 b/man/make.conf.5 new file mode 100644 index 0000000..a988cba --- /dev/null +++ b/man/make.conf.5 @@ -0,0 +1,106 @@ +.TH make.conf "5" "December 2001" "portage 1.7.8" +.SH NAME +ebuild \- manual page for make.defaults +.SH SYNOPSIS +.B /etc/make.conf +.SH DESCRIPTION +This file contains various variables that are used by Portage. +Portage will check the currently-defined environment variables +first for any settings. If no environment settings are found, +Portage then checks /etc/make.conf. If no setting is found +in /etc/make.conf, Portage checks /etc/make.profile/make.defaults. +If no setting is found there, the default setting is grabbed +from /etc/make.globals. Please note that all user settings +should be made in the environment or in /etc/make.conf, which +is intended to be customized by the user. +.PP +.SH VARIABLES +\fBROOT\fR = \fI[path]\fR +Use root to specify the target root filesystem to be used for +merging packages or ebuilds. If unset, ROOT defaults to /. +Typically, you should set this setting in the environment +rather than in /etc/make.conf itself. It's typically used +for creating new build images. +.TP +\fBMAINTAINER\fR = \fI[yes|no]\fR +If you have and developer cvs access at cvs.gentoo.org +and \fIMAINTAINER\fR is set to \fI"yes"\fR, the md5 checksum files +for the sources will be automatically added to the cvs tree. +This also tweaks various other Portage settings to be more +maintainer-friendly/appropriate. +.TP +\fBPROXY HTTP_PROXY FTP_PROXY\fR = \fI[host:port]\fR +These vars are used if the sources must be downloaded from the +internet by \fIwget(1)\fR. They are only required if you use a proxy server +for internet access. Eighter define \fIPROXY\fR or +\fIPROXY_FTP\fR and \fIPROXY_HTTP\fR +.TP +\fBGENTOO_MIRRORS\fR = \fI[url]\fR +Insert your nearest \fIIBIBLIO\fR mirror here. This location is tried for +source download before the ones listed in the \fIebuild scripts\fR. +.TP +\fBCHOST\fR +This variable gets passed by the \fIebuild scripts\fR to the \fIconfigure\fR +step as \fI--host=${CHOST}\fR. So you can force the build-host with that. +.TP +\fBMAKEOPTS\fR +Use this variable if you want to use parallel make. For example, if you +have a dual-processor system, set this variable to "-j2" or "-j3" for +enhanced build performance with many packages. +.TP +\fBCFLAGS CXXFLAGS\fR +Use these variables to set the desired optimization/CPU instruction settings +for applications that you compile. Nearly all ebuild files will take advantage +of your custom settings, resulting in a Gentoo Linux that is fully customized +to your specifications. +.TP +\fBDEBUG\fR +If defined binaries and libraries don't get stripped before \fImerge\fR +.TP +\fBUSE\fR +This variable contains options that controll the build behaviour of +several packages. More information in ebuild(5). +\fBFETCHCOMMAND\fR +This variable contains the command used for fetching package-sources from +the internet. +.TP +\fBPORTAGE_TMPDIR\fR = \fI[path]\fR +Defines the location of the temporary build directories. +.TP +\fBBUILD_PREFIX\fR = \fI[path]\fR +Defines the location of the package working directory. +.TP +\fBPKG_TMPDIR\fR = \fI[path]\fR +\fIemerge\fR uses this dir to extract a .tbz2 package before the +files get merged to the live filesystem. +.TP +\fBPORTDIR\fR = \fI[path]\fR +Defines the location of your Portage tree. Defaults to /usr/portage. +.TP +\fBDISTDIR\fR = \fI[path]\fR +Defines the location of your local source file repository. Defaults +to /usr/portage/distfiles. +.TP +\fBPKGDIR\fR = \fI[path]\fR +Defines the location where created .tbz2 binary packages will be stored. +Defaults to /usr/portage/packages. +.TP +\fBRPMDIR\fR = \fI[path]\fR +Defines the location where created RPM packages will be stored. +.TP +.SH AUTHOR +Daniel Robbins <drobbins@gentoo.org> +.SH "SEE ALSO" +ebuild(1) ebuild(5) +.TP +The \fI/usr/sbin/ebuild\fR script. +The helper apps in \fI/usr/lib/portage/bin\fR. +.SH FILES +\fB/etc/make.conf\fR +Contains variables for the build-process and +overwrites those in make.defaults +.TP +\fB/etc/make.globals\fR +Contains the default variables for the build-process, +You should edit \fI/etc/make.conf\fR instead. +.TP diff --git a/pym/portage.py b/pym/portage.py index 09725e0..13a23e8 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -731,6 +731,8 @@ def doebuild(myebuild,mydo,myroot,checkdeps=1,debug=0): elif mydo=="compile": return spawn("/usr/sbin/ebuild.sh fetch unpack compile") elif mydo=="install": + if settings["MAINTAINER"]=="yes": + return spawn("/usr/sbin/ebuild.sh install") return spawn("/usr/sbin/ebuild.sh fetch unpack compile install") elif mydo in ["config","touch","clean","fetch","digest","batchdigest"]: return spawn("/usr/sbin/ebuild.sh "+mydo) @@ -820,19 +822,7 @@ def movefile(src,dest,unlink=1): elif dest=="/bin/bash": a=getstatusoutput("rm /bin/bash; /bin/cp -a "+"'"+src+"' '"+dest+"'") else: - #Don't overwrite files... unlink them then copy in the new - # file. This prevents corrupting libraries and binaries that - # are currently mmap'd. - try: - os.unlink(dest) - except: - pass - a=getstatusoutput("/bin/cp -af "+"'"+src+"' '"+dest+"'") -# cp -a takes care of this -# mymode=os.lstat(src)[ST_MODE] -# os.chmod(dest,mymode) - if unlink: - os.unlink(src) + a=getstatusoutput("/bin/mv -f "+"'"+src+"' '"+dest+"'") if a[0]==0: return 1 else: diff --git a/sandbox/sandbox-0.2.3.ebuild b/sandbox/sandbox-0.2.3.ebuild new file mode 100644 index 0000000..abbbb08 --- /dev/null +++ b/sandbox/sandbox-0.2.3.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2001 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License, v2 or later +# Author: Martin Schlemmer <azarah@gentoo.org> +# $Header: /local/data/ulm/cvs/history/var/cvsroot/gentoo-src/portage/sandbox/Attic/sandbox-0.2.3.ebuild,v 1.1.2.1 2001/12/23 22:46:34 chouser Exp $ + +S=${WORKDIR}/sandbox +DESCRIPTION="Portage SandBox System" +SRC_URI="" +HOMEPAGE="" + +DEPEND="virtual/glibc + =sys-apps/portage-1.7.8" + + +src_unpack() { + + mkdir -p ${S} + cd ${S} + cp ${FILESDIR}/sandbox/*sandbox* . || die + cp ${FILESDIR}/sandbox/Makefile . || die + +} + +src_compile() { + + cp /usr/lib/portage/pym/portage.py . + cp portage.py portage.py.orig + cp /usr/lib/portage/bin/ebuild.sh . + cp ebuild.sh ebuild.sh.orig + + patch <${FILESDIR}/portage.py.diff || die + patch <${FILESDIR}/ebuild.sh.diff || die + + emake || die +} + +src_install() { + + dodir /usr/bin /usr/lib/sandbox + dodir /usr/lib/portage/{bin,pym} + + into /usr + dobin sandbox + exeinto /usr/lib/sandbox + doexe libsandbox.so + insinto /usr/lib/sandbox + doins sandbox.bashrc + insinto /usr/lib/portage/pym + doins portage.py portage.py.orig + exeinto /usr/lib/portage/bin + doexe ebuild.sh ebuild.sh.orig +} + +pkg_prerm() { + + # Restore the original portage files + cp -f /usr/lib/portage/pym/portage.py.orig /usr/lib/portage/pym/portage.py + cp -f /usr/lib/portage/bin/ebuild.sh.orig /usr/lib/portage/bin/ebuild.sh + # Make the current ebuild use bash instead of sandbox further on + rm -f /usr/bin/sandbox + echo '#!/bin/bash' > /usr/bin/sandbox + echo '/bin/bash -c "$@"' >> /usr/bin/sandbox + chmod 755 /usr/bin/sandbox + +} + +pkg_postrm() { + + # Remove the temporary sandbox script + rm -f /usr/bin/sandbox + +} + @@ -1,7 +1,7 @@ #!/bin/bash export PKG="portage" export TMP="/tmp" -export V="1.7.7" +export V="1.9.0_pre1" export DEST="${TMP}/${PKG}-${V}" rm -rf ${DEST} install -d -m0755 ${DEST} |