summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Houser <chouser@gentoo.org>2001-12-23 22:46:34 +0000
committerChris Houser <chouser@gentoo.org>2001-12-23 22:46:34 +0000
commit1e76db36b3f2145a45e342c87eb1daa1f24f176e (patch)
treebde87d7f9e3b14dd3d268c72c87a74a577d49b53
parentsource for a shared library which portage.py adds to LD_PRELOAD to intercept (diff)
downloadportage-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--ChangeLog25
-rw-r--r--man/make.conf.5106
-rw-r--r--pym/portage.py16
-rw-r--r--sandbox/sandbox-0.2.3.ebuild73
-rwxr-xr-xtarball.sh2
5 files changed, 208 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index eaa5f0b..335866a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
+
+}
+
diff --git a/tarball.sh b/tarball.sh
index 24c2076..feeee2f 100755
--- a/tarball.sh
+++ b/tarball.sh
@@ -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}