From diy-linux-dev@diy-linux.org Wed Apr 23 01:53:49 2008 From: diy-linux-dev@diy-linux.org (Greg Schafer) Date: Wed, 23 Apr 2008 11:53:49 +1000 Subject: findutils-4.4.0 Message-ID: <20080423015349.GA26003@eyo32.local> Hi List, While looking at getting at newest package updates tested and added to the Refbuild, I noticed a testsuite failure in the `locate' section of latest findutils: FAIL: old_prefix: locate failed, /home/pkgmgr/src/findutils-4.4.0/locate/testsuite/../locate: `tmp/locatedb': No such file or directory The testsuite had prevously passed when I ran it in an already completed chroot, which suggests the problem is a build order issue. This ended up being a tough one to crack. I eventually figured out with the help of strace that it was looking for `awk' but for some strange reason it refuses to pick up the one in $TT_PFX/bin. Therfore the solution is to bring gawk forward in the build order before findutils. ICA is happy with this change. Regards Greg From diy-linux-dev@diy-linux.org Wed Apr 23 03:44:34 2008 From: diy-linux-dev@diy-linux.org (Greg Schafer) Date: Wed, 23 Apr 2008 13:44:34 +1000 Subject: file-4.24 Message-ID: <20080423034434.GA5646@eyo32.local> Hi List, Just a minor note. Latest file package has gained the beginnings of a testsuite. But it currently fails to compile when the package is not yet installed. Upstream have acknowledged the problem and it'll be fixed in the next release. I'll enable `make check' at that time. Regards Greg From diy-linux-dev@diy-linux.org Thu Apr 24 17:34:04 2008 From: diy-linux-dev@diy-linux.org (Rich Edelman) Date: Thu, 24 Apr 2008 12:34:04 -0500 Subject: Pacman 3.1.4 Message-ID: <200804241234.04501.rcedelman@comcast.net> --Boundary-00=_MSMEISb/duEWeX2 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi list. I promised this to Greg in a private email a couple months ago, but never got around to it.... I've been diligently working on upgrading pacman from 2.9.8 to 3.1.4 for the reference build, and I'm posting now to announce my work. :) Attached are the couple of patches you'll need, the instructions, and a tarball of the new scriptlets (which are also included in the instructions). They can all also be found on my site at http://www.quokworld.com/diy/pacman-3.1.4/ A couple things to note: I've only tested this with GCC 4.2.3, Glibc 2.7, and binutils 2.18 on a pure64 host. Early next week I plan on testing with i386 and biarch, and gcc 4.3. There's no fake_install() anymore, I've documented the reasons why in the hint instructions. Hopefully that won't be too big a sticking point here. I had to make some changes to gsbuild to get it to work with the new pacman version. Those changes are also documented in the hint, and the patch is attached here. I'd appreciate any and all feedback. Thanks, Rich --Boundary-00=_MSMEISb/duEWeX2 Content-Type: text/plain; charset="us-ascii"; name="Pacman 3.1.4 Installation Notes" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="Pacman 3.1.4 Installation Notes" Pacman 3.1.4 Installation Hint =============================== Author: Rich Edelman Date: 2008-04-28 This hint covers installing pacman 3.1.4 INSTEAD of 2.9.8 DURING the reference build. Because of the many dependencies of this new version of pacman, we do the absolute bare minimum to keep the reference build light. This means any features that rely on the sudo command will not work, but the base featureset (that which is used in gsbuild's pacman_build() function) is there. WARNING: I have only tested these instructions using the next-gen build method on a pure-64 host. That is, I have set BIARCH=N. WARNING: Use this hint on BIARCH at your own risk. I plan to have BIARCH and i386 versions tested in the next few days. WARNING: I have only tested this with linux 2.6.25, gcc 4.2.3, glibc 2.7, and binutils 2.18. It may or may not work for you. Below are the new packages needed for pacman 3.1.4. They're in the proper format for placement into gsbuild's package-base.list file. If you are a gsbuild user, simply apply gsbuild-pacman.patch and this will be taken care of for you. For the details on that patch, see the "GSBUILD PATCH" section. libarchive 2.5.1b e7778d1ae617e2719db562f9ffd26d6b libarchive-2.5.1b.tar.gz http://people.freebsd.org/~kientzle/libarchive/src/ libdownload 1.3 77e10293fd4262745110eb423a10490c libdownload-1.3.tar.gz http://code.phraktured.net/?p=libdownload.git;a=blob;f=dist/ pacman 3.1.4 dfba385a6675db39938c8cc7581c6325 pacman-3.1.4.tar.gz ftp://ftp.archlinux.org/other/pacman/ About the fake_install() function: I have dropped this patch, because as it exists for 2.9.8, it will not apply to 3.1.4. There are various patches for pacman 3.1.x floating around that will implement fake_install() again, but they all seem to buildon other patches. I have not found one that will apply to stock pacman 3.1.x. I hope to have some time in the coming weeks to massage one of the fake_install() patches into shape for current pacman versions. The current reference build states that it is not recommended to build glibc in a fakeroot environment, however we will be doing just that. Note that you may see an error about failure to open ld.so.conf. This is because we run make -k check in a fakeroot environment as well, and at the point make check is run, /etc/ld.so.conf does not exist. A simple fix is to touch that file before running make check. One final note. You'll notice that in temptools we build all of pacman and it's dependencies as static libs. This is because several of them want to link with bzip2, which at this point is only available as a static archive. It may perhaps be easier to just modify the temptools bzip2 installation to also build the shared lib as is done in the chroot stage. Optional dependencies for libarchive (not yet covered): libacl libxattr Optional dependencies for Pacman (not yet covered): sudo (and it's dependency on pam) Note that libtar is no longer needed for current versions of Pacman. Patches needed: libdownload-1.3-fixed-Makefile.patch gsbuild-pacman.patch pacman-3.1.4-custom-mods-1.patch GSBUILD PATCH ============= This patch fixes several areas in gsbuild that rely on the older pacman version. * As of pacman 3, the build arch is part of the filename, so we add that in. * Pacman 3 exits of the 'arch' line is missing from a PKGBUILD, so we add that in, based off $DIY_TARGET. * Pacman 3 complains about the lack of a 'license' in a PKGBUILD, so we add an 'unknown' one. * updatesync is deprecated, and should be replaced by repo-add, so we now use that. * No more fake_install(), as explained above. * Added the additional packages to PACMAN_PKGS. * To build a package as root, you must specify --asroot to makepkg. Apply the patch with the args -Np1 to patch. I created it against gsbuild cvs. pacman-scriptlets.tar ===================== This file contains the scriptlets below. Drop them in your gsbuild/ directory. STATUS OF OLD PATCHES ===================== * pacman-2.9.6-temptools-1.patch This patch was dropped, with no need to port it to pacman3. It has been mostly merged as the makepkg script has its own makepkg.in which correctly handles the case of having /temptools as the prefix. We'll use configure switches where necessary to get the same behavior we received from parts of this patch. * pacman-2.9.8-sep_install-1.patch Dropped. * pacman-2.9.6-custom-mods-2.patch Ported forward where necessary, it is now pacman-3.1.4-custom-mods-1.patch. See that patch for details. TEMPTOOLS PHASE =============== Install file: ./configure make make install Install libarchive: ./configure --enable-shared=no make make install Rationale: We build libarchive as a static archive only to avoid a linking error related to libbz2. Install libdownload: NOTE: You MUST use "-O libdownload-1.3.tar.gz" when downloading using wget, and you MUST have single quotes around the URL! example: wget -O libdownload-1.3.tar.gz 'http://code.phraktured.net/?p=libdownload.git;a=blob;f=dist/libdownload-1.3.tar.gz' Apply our patch so the shared object compiles correctly on X86_64 systems: patch -Np1 -i ${TT_PFX}/src/patches/libdownload-1.3-fixed-Makefile.patch sed -i.bak 's/ENABLE_HTTPS = true/ENABLE_HTTPS = false/' Makefile make make install prefix=$TT_PFX Install pacman: patch -Np1 -i ${TT_PFX}/src/patches/pacman-3.1.4-custom-mods-1.patch ./configure --enable-shared=no make make install CHROOT PHASE ============ Install libarchive: ./configure make make DESTDIR=$PM_DEST install Install libdownload: patch -Np1 -i ${TT_PFX}/src/patches/libdownload-1.3-fixed-Makefile.patch sed -i.bak 's/ENABLE_HTTPS = true/ENABLE_HTTPS = false/' Makefile make make DESTDIR=$PM_DEST install Install pacman: patch -Np1 -i ${TT_PFX}/src/patches/pacman-3.1.4-custom-mods-1.patch ./configure --prefix= --exec-prefix=/usr make make DESTDIR=$PM_DEST install Rationale: /etc/config.site overrides the default prefix of /usr/local, making it /usr. In most cases this is correct, however in the case of pacman it will put the config files in /usr/etc/ and the repo and cache files in /usr/var. We undefine the prefix but set the exec-prefix to /usr to cause all executables to go into /usr/bin and /usr/sbin, while the config files go to /etc, and the repo and cache files go in /var/lib. That's it! Any feedback would be welcome. I'll gladly attempt to help with any problems you may encounter while using this hint, or answer any questions you may have. --Boundary-00=_MSMEISb/duEWeX2 Content-Type: application/x-tbz; name="pacman-scriptlets.tar.bz2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pacman-scriptlets.tar.bz2" QlpoOTFBWSZTWU4QzzwABRB/lMawAEBcj/+a//9ebv///8oCAgALAAhQA9nqkQgoAHGTJo0Bo0xG RoYhgTRpiDEaDCAAw4yZNGgNGmIyNDEMCaNMQYjQYQAGCRERpNCj1MQNqaA000aAAGgAHpAaDQ4y ZNGgNGmIyNDEMCaNMQYjQYQAGBUoimaNJgmmITTIT0mnqZBpp6BojRp6jJkGTNT2gt/0aoj4zEbH E2+UBpTnO0XgoCGmhA8ghIW1tGzpwIinOyIW0hFym+91pNHW81mXUtDpR3WiYpE1koBUl8+FPJTN +9VOmUOrXrmvqYaODJfhfcP6X/WZJhNp8TOMC44K4F7MM4aVguw8xtMsvJ2/SYDe7rF/G7hwfpjZ 1mF9lXqUoo2X1zQmtxnxjX2ICXuURtm9C6ZwazuoHZcaxU5JBQLzR2kbhRLMp5BlI++rTgtmuud3 okNxmOYHQVlBumvINs9tYuk3Jp5KlqijObOYsTbhbId+Jl59HOSJzE6PL0+Py2ebzdPV+vqvEyEz Ey+O0lpLaE70laKrWnT7z3xzORRdiJgw4yY8a/z1s5MRXASkCrQq3Fi/TutsbbeM2xm5vGhFOoXX TnM5N1cWTgzMrShFLixcFyL2EXsFVBmoSyVpWF94YWBRamW0lVWSYwdhwWpMsrv1rBM1pqNCCNss orky2ripCLgVlT1eTVw6EPgB+NdiHB1lkWo9scsWfUUmsvOk+L+Y85zi3GXeyPdFb4vMKWWRzx4C x0MtFxVzMZ36mC+PYZT3FaMRZ4YxQ2DDaV9xdvlsY+LRGZKtheYI299cToPuOo556ZDGYZHoWFSW vTMJPRPDKDF2v6KWGk8XdOVkFtCxgjcwlZPxJyknrCq9JJBi1vGgWc4SyplbYmDBtKAq174N14NV squlxQzZ0wVMBKlmIluWuibZL84wPE0LpN4Y8krWiVpG3DJkkmbftk0lI16tCf3Q1E+0+Otcm7PU 3icM0dhWSNPZpI1yZyjWTbo4DvZalLKZ7r5HEZkq1Ktt1IUUKNBX1426lzNWqtS6TfNUtkZJpN3U o4CXJqZpKJbJZJsO0b5wmneosN5qps7DSTOnASzYS1WihVpkpOU3ievJZL+KOriJsfBtJxnt4G5V SMBROJPlt6Kdfz5uS3rW3LORwE1HMq2GbuSLEnck4xOMmCTs9vjJuKJViJwuE6ydiT5kxusnbZGn MVL6PwT83yO6B/4u5IpwoSCcIZ54 --Boundary-00=_MSMEISb/duEWeX2 Content-Type: text/x-diff; charset="us-ascii"; name="gsbuild-pacman.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="gsbuild-pacman.patch" # DIY Linux Patch Date: 2008-04-24 Author: Rich Edelman Origin: See Author Maker: See Author Upstream Status: Submitted :) Description: This patch updates gsbuild to work with pacman 3.1.4 * Pacman 3.1.x requires an 'arch' line in the PKGBUILD. * Pacman 3.1.x will warn if a PKGBUILD does not contain a 'license' line, so we create one with a license of 'unknown' to get rid of that warning. * Pacman 3.1.x does not have a fake_install() patch that will apply to a stock pacman tarball, so the code that deals with creating the fake_install() function is commented out. * Pacman 3.1.x now contains the arch in the filename, so the code is updated to reflect that. * Updatesync and gensync are deprecated. We use repo-add instead. * To build a package as root, you now must specify the --asroot option to makepkg. * Added the new dependencies of pacman to PACMAN_PKGS. diff -wu gsbuild.orig/common-sh.functions gsbuild/common-sh.functions --- gsbuild.orig/common-sh.functions 2008-04-23 11:28:21.000000000 -0500 +++ gsbuild/common-sh.functions 2008-04-24 06:12:53.000000000 -0500 @@ -497,6 +497,9 @@ # hyphens". Replace any occurrence with an underscore. PKG_VER=${PKG_VER//-/_} + # As of pacman3, the 'arch' line is required + PKG_ARCH=`echo $DIY_TARGET | awk -F"-" '{print $1}'` + cat > PKGBUILD <<- EOF pkgname=$1 pkgver=$PKG_VER @@ -517,9 +520,10 @@ fi cat >> PKGBUILD <<- EOF - source=(`get_pkg_field $BASE_PKG 5`$TARBALL) + source=('`get_pkg_field $BASE_PKG 5`$TARBALL') md5sums=('$MD5SUM') - + arch=('$PKG_ARCH') + license=('unknown') build() { eval PM_DEST=\$MY_DEST cd \$startdir/src/${PKG_DIR} @@ -534,21 +538,24 @@ echo "}" >> PKGBUILD + # Get rid of the "#:install" line used by the fake_install code below. + # We're not using that for now, so we clean up the PKGBUILD some. + sed -i '/^#:install/d' PKGBUILD # Create the fake_install func. - if grep "^#:install" PKGBUILD >/dev/null 2>&1 && [ ! -r ${PKG_SCRIPTS_DIR}/${1}.nofakeroot ]; then +# if grep "^#:install" PKGBUILD >/dev/null 2>&1 && [ ! -r ${PKG_SCRIPTS_DIR}/${1}.nofakeroot ]; then # These 3 lines delete the empty line above the marker. Utterly unnecessary cosmetics.. - D=$(sed -n '/^#:install/=' PKGBUILD) - ((D -= 1)) - sed -i "${D}d" PKGBUILD +# D=$(sed -n '/^#:install/=' PKGBUILD) +# ((D -= 1)) +# sed -i "${D}d" PKGBUILD # Determine if we need to cd back to somewhere special. - WD=$(grep "^cd " PKGBUILD | grep -v startdir | tail -n 1) +# WD=$(grep "^cd " PKGBUILD | grep -v startdir | tail -n 1) # Do the real work. - sed -i '/^#:install/i }\n\nfake_install() {\neval PM_DEST=$MY_DEST' PKGBUILD - sed -i "/^#:install/i `grep startdir PKGBUILD`" PKGBUILD - test "$WD" && sed -i "/^#:install/i $WD" PKGBUILD +# sed -i '/^#:install/i }\n\nfake_install() {\neval PM_DEST=$MY_DEST' PKGBUILD +# sed -i "/^#:install/i `grep startdir PKGBUILD`" PKGBUILD +# test "$WD" && sed -i "/^#:install/i $WD" PKGBUILD # Some cleanup. More unnecessary cosmetics. - sed -i -e '/^build/{n;d}' -e 's/^#:install//' PKGBUILD - fi +# sed -i -e '/^build/{n;d}' -e 's/^#:install//' PKGBUILD +# fi # Make archive, install it, then store it (with spec). local START_TIME=$(date +%s) @@ -556,20 +563,20 @@ ln -sv ${TARBALLS_DIR}/${TARBALL} if [ -r ${PKG_SCRIPTS_DIR}/${1}.nofakeroot ]; then - makepkg + makepkg --asroot else su pkgmgr -c makepkg fi test -r ${PKG_SCRIPTS_DIR}/${1}.pmhack && . ${PKG_SCRIPTS_DIR}/${1}.pmhack - pacman -U ${1}-${PKG_VER}-1.pkg.tar.gz + pacman -U ${1}-${PKG_VER}-1-${PKG_ARCH}.pkg.tar.gz mkdir -p ${ARC_DIR}/specfiles/${1} mv PKGBUILD ${ARC_DIR}/specfiles/${1} - mv ${1}-${PKG_VER}-1.pkg.tar.gz ${ARC_DIR} - test -r ${ARC_DIR}/custom.db.tar.gz && \ - updatesync upd ${ARC_DIR}/custom.db.tar.gz \ - ${ARC_DIR}/specfiles/${1}/PKGBUILD ${ARC_DIR} + mv ${1}-${PKG_VER}-1-${PKG_ARCH}.pkg.tar.gz ${ARC_DIR} + #test -r ${ARC_DIR}/custom.db.tar.gz && \ + repo-add ${ARC_DIR}/custom.db.tar.gz \ + ${ARC_DIR}/${1}-${PKG_VER}-1-${PKG_ARCH}.pkg.tar.gz rm -rf /home/pkgmgr/* } 2>&1 | tee ${LOGS_DIR}/${1}-${PKG_VER}.log test "${PIPESTATUS[*]}" = "0 0" || do_exit $1 diff -wu gsbuild.orig/gsbuild.sh gsbuild/gsbuild.sh --- gsbuild.orig/gsbuild.sh 2008-04-23 11:28:21.000000000 -0500 +++ gsbuild/gsbuild.sh 2008-04-24 05:14:21.000000000 -0500 @@ -351,7 +351,7 @@ X86_PKGS="grub" PPC_PKGS="yaboot mac-fdisk hfsutils" KH_PKGS="linux-libc-headers linux-kernel-headers" -PACMAN_PKGS="fakeroot zlib libtar pacman" +PACMAN_PKGS="fakeroot file zlib libarchive libdownload pacman" BPM_PKGS="fakeroot ogdlutils cpio bpm" # Handle the "--prep" argument. diff -wu gsbuild.orig/package-base.list gsbuild/package-base.list --- gsbuild.orig/package-base.list 2008-04-23 11:28:21.000000000 -0500 +++ gsbuild/package-base.list 2008-04-24 06:22:19.000000000 -0500 @@ -75,8 +75,11 @@ yaboot 1.3.14 9b1246c474eeb37f61081ad762563b35 yaboot-1.3.14.tar.gz http://yaboot.ozlabs.org/releases/ zlib 1.2.3 dee233bf288ee795ac96a98cc2e369b6 zlib-1.2.3.tar.bz2 http://www.zlib.net/ -libtar 1.2.11 604238e8734ce6e25347a58c4f1a1d7e libtar-1.2.11.tar.gz ftp://ftp.feep.net/pub/software/libtar/ -pacman 2.9.8 5d5e19c159d1fba7c7a6bb93b5bc14bd pacman-2.9.8.tar.gz ftp://ftp.archlinux.org/other/pacman/ +#libtar 1.2.11 604238e8734ce6e25347a58c4f1a1d7e libtar-1.2.11.tar.gz ftp://ftp.feep.net/pub/software/libtar/ +#pacman 2.9.8 5d5e19c159d1fba7c7a6bb93b5bc14bd pacman-2.9.8.tar.gz ftp://ftp.archlinux.org/other/pacman/ +libarchive 2.5.1b e7778d1ae617e2719db562f9ffd26d6b libarchive-2.5.1b.tar.gz http://people.freebsd.org/~kientzle/libarchive/src/ +libdownload 1.3 77e10293fd4262745110eb423a10490c libdownload-1.3.tar.gz http://code.phraktured.net/?p=libdownload.git;a=blob;f=dist/ +pacman 3.1.4 dfba385a6675db39938c8cc7581c6325 pacman-3.1.4.tar.gz ftp://ftp.archlinux.org/other/pacman/ ogdlutils 20041124 45c7c81805480698c8c86881ab9be65c ogdlutils-20041124.tgz http://osdn.dl.sf.net/sourceforge/ogdl/ cpio 2.9 e387abfdae3a0b9a8a5f762db653a96d cpio-2.9.tar.bz2 http://ftp.gnu.org/gnu/cpio/ --Boundary-00=_MSMEISb/duEWeX2 Content-Type: text/x-diff; charset="us-ascii"; name="libdownload-1.3-fixed-Makefile.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="libdownload-1.3-fixed-Makefile.patch" # DIY Linux Patch Date: 2008-04-24 Author: Rich Edelman Origin: See Author Maker: See Author Upstream Status: Not submitted. Description: This patch fixes the Makefile for libdownload-1.3 so that the shared library compiles on X86_64 systems. * Add -fPIC to CFLAGS so the shared library will link on 64-bit systems. * Fix the check for the ENABLE_HTTPS variable so that works correctly. * Remove the empty DESTDIR variable so installation to a DESTDIR works correctly. Created-by: Rich Edelman diff -u libdownload-1.3.orig/Makefile libdownload-1.3/Makefile --- libdownload-1.3.orig/Makefile 2007-11-28 06:28:27.000000000 +0000 +++ libdownload-1.3/Makefile 2008-04-23 15:26:51.000000000 +0000 @@ -1,9 +1,8 @@ prefix = /usr -DESTDIR = DEBUG = false ENABLE_HTTPS = true -CFLAGS = -O2 -pipe -I. -DINET6 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 +CFLAGS = -O2 -pipe -I. -DINET6 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC WARNINGS = -Wall -Wstrict-prototypes -Wsign-compare -Wchar-subscripts \ -Wpointer-arith -Wcast-align -Wsign-compare CFLAGS += $(WARNINGS) @@ -14,7 +13,7 @@ CFLAGS += -UDEBUG endif -ifeq ($(strip $(ENALE_HTTPS)),true) +ifeq ($(strip $(ENABLE_HTTPS)),true) CFLAGS += -DWITH_SSL LDFLAGS += -lssl -lcrypto endif --Boundary-00=_MSMEISb/duEWeX2 Content-Type: text/x-diff; charset="us-ascii"; name="pacman-3.1.4-custom-mods-1.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="pacman-3.1.4-custom-mods-1.patch" # DIY Linux Patch Date: 2008-04-24 Author: Rich Edelman Origin: See Author Maker: See Author Upstream Status: Not submitted. Not suitable for upstream. Description: This patch sets some custom mods for DIY-Linux. * Disables color output. * Disables stripping of binaries and libraries. * Disables removing of doc files. * Sets a default packager of "DIY Linux". * Creates a custom repository. * Sets -e before building packages. diff -rwu pacman-3.1.4.orig/etc/makepkg.conf.in pacman-3.1.4/etc/makepkg.conf.in --- pacman-3.1.4.orig/etc/makepkg.conf.in 2008-02-17 20:40:41.000000000 -0600 +++ pacman-3.1.4/etc/makepkg.conf.in 2008-04-24 10:55:39.000000000 -0500 @@ -47,7 +47,7 @@ #-- ccache: Use ccache to cache compilation #-- xdelta: Generate delta patch from previous to current package # -BUILDENV=(fakeroot !distcc color !ccache !xdelta) +BUILDENV=(fakeroot !distcc !color !ccache !xdelta) # #-- If using DistCC, your MAKEFLAGS will also need modification. In addition, #-- specify a space-delimited list of hosts running in the DistCC cluster. @@ -66,7 +66,7 @@ #-- libtool: Leave libtool (.la) files in packages #-- emptydirs: Leave empty directories in packages # -OPTIONS=(strip !docs libtool emptydirs) +OPTIONS=(!strip docs libtool emptydirs) #-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512 INTEGRITY_CHECK=(md5) @@ -86,7 +86,7 @@ #-- Source root: specify location where PKGBUILDs are located for '--builddeps' #SRCROOT=/home/pkgbuilds #-- Packager: name/email of the person or organization building packages -#PACKAGER="John Doe " +PACKAGER="DIY Linux (http://www.diy-linux.org)" ######################################################################### # BUILDSCRIPT/EXTENSION DEFAULTS diff -rwu pacman-3.1.4.orig/etc/pacman.conf.in pacman-3.1.4/etc/pacman.conf.in --- pacman-3.1.4.orig/etc/pacman.conf.in 2008-03-10 19:39:48.000000000 -0500 +++ pacman-3.1.4/etc/pacman.conf.in 2008-04-24 10:55:27.000000000 -0500 @@ -59,6 +59,6 @@ # An example of a custom package repository. See the pacman manpage for # tips on creating your own repositories. -#[custom] -#Server = file:///home/custompkgs +[custom] +Server = file:///var/lib/pacman/repo diff -rwu pacman-3.1.4.orig/scripts/makepkg.sh.in pacman-3.1.4/scripts/makepkg.sh.in --- pacman-3.1.4.orig/scripts/makepkg.sh.in 2008-02-27 13:14:02.000000000 -0600 +++ pacman-3.1.4/scripts/makepkg.sh.in 2008-04-24 09:44:44.000000000 -0500 @@ -693,9 +693,9 @@ mv "$BUILDLOG" "$BUILDLOG.$i" fi - build 2>&1 | tee "$BUILDLOG"; ret=${PIPESTATUS[0]} + (set -e; build 2>&1) | tee "$BUILDLOG"; ret=${PIPESTATUS[0]} else - build 2>&1 || ret=$? + (set -e; build 2>&1) || ret=$? fi if [ $ret -gt 0 ]; then --Boundary-00=_MSMEISb/duEWeX2-- From diy-linux-dev@diy-linux.org Fri Apr 25 00:53:02 2008 From: diy-linux-dev@diy-linux.org (Greg Schafer) Date: Fri, 25 Apr 2008 10:53:02 +1000 Subject: Pacman 3.1.4 In-Reply-To: <200804241234.04501.rcedelman@comcast.net> References: <200804241234.04501.rcedelman@comcast.net> Message-ID: <20080425005302.GA12071@eyo32.local> On Thu, Apr 24, 2008 at 12:34:04PM -0500, Rich Edelman wrote: > I promised this to Greg in a private email a couple months ago, but never got > around to it.... > > I've been diligently working on upgrading pacman from 2.9.8 to 3.1.4 for the > reference build, and I'm posting now to announce my work. :) Wow! Thank you Rich, this looks awesome! I can't wait to try it out.. > About the fake_install() function: I have dropped this patch, because as > it exists for 2.9.8, it will not apply to 3.1.4. There are various patches > for pacman 3.1.x floating around that will implement fake_install() again, > but they all seem to buildon other patches. I have not found one that will > apply to stock pacman 3.1.x. I hope to have some time in the coming weeks > to massage one of the fake_install() patches into shape for current pacman > versions. Personally, I find fake_install() a killer feature and would hate to lose it. I'd be very interested in pointers to those patches floating around. I honestly don't understand why the Pacman dev's haven't implemented it.. > That's it! Any feedback would be welcome. I'll gladly attempt to help with > any problems you may encounter while using this hint, or answer any > questions you may have. I'll gladly send you some feedback as soon as I can test it out. But time has been scarce lately, as can be deduced from the lack of recent Refbuild updates :-( Regards Greg From diy-linux-dev@diy-linux.org Sun Apr 27 22:53:58 2008 From: diy-linux-dev@diy-linux.org (Rich Edelman) Date: Sun, 27 Apr 2008 17:53:58 -0500 Subject: Pacman 3.1.4 In-Reply-To: <20080425005302.GA12071@eyo32.local> References: <200804241234.04501.rcedelman@comcast.net> <20080425005302.GA12071@eyo32.local> Message-ID: <200804271753.58743.rcedelman@comcast.net> On Thursday 24 April 2008 07:53:02 pm Greg Schafer wrote: > > About the fake_install() function: I have dropped this patch, because as > > it exists for 2.9.8, it will not apply to 3.1.4. There are various > > patches for pacman 3.1.x floating around that will implement > > fake_install() again, but they all seem to buildon other patches. I have > > not found one that will apply to stock pacman 3.1.x. I hope to have some > > time in the coming weeks to massage one of the fake_install() patches > > into shape for current pacman versions. > > Personally, I find fake_install() a killer feature and would hate to lose > it. I'd be very interested in pointers to those patches floating around. I > honestly don't understand why the Pacman dev's haven't implemented it.. I've re-diffed Alex's original patch that added the fake_install() function, and I believe that given a couple hours work I can add this all back in to a vanilla pacman 3.1.4 scenario. I'll work on that later tonight after my kids are in bed. :) I have to admit, at first I didn't really understand the purpose of having fake_install(), but I get it perfectly now after reading past mailing list archives both here and for pacman itself. This is definitely something that we should get added back in as soon as we can. > > That's it! Any feedback would be welcome. I'll gladly attempt to help > > with any problems you may encounter while using this hint, or answer any > > questions you may have. > > I'll gladly send you some feedback as soon as I can test it out. But time > has been scarce lately, as can be deduced from the lack of recent Refbuild > updates :-( Do you have any notes on using GCC 4.3.0 with the refbuild yet? I'd be interested in taking a look at those and testing things out. Rich From diy-linux-dev@diy-linux.org Mon Apr 28 15:01:41 2008 From: diy-linux-dev@diy-linux.org (Rich Edelman) Date: Mon, 28 Apr 2008 10:01:41 -0500 Subject: Pacman 3.1.4 In-Reply-To: <200804271753.58743.rcedelman@comcast.net> References: <200804241234.04501.rcedelman@comcast.net> <20080425005302.GA12071@eyo32.local> <200804271753.58743.rcedelman@comcast.net> Message-ID: <200804281001.41475.rcedelman@comcast.net> --Boundary-00=_VbeFIQvF2IYHxcH Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline On Sunday 27 April 2008 05:53:58 pm Rich Edelman wrote: > > Personally, I find fake_install() a killer feature and would hate to lose > > it. I'd be very interested in pointers to those patches floating around. > > I honestly don't understand why the Pacman dev's haven't implemented it.. > > I've re-diffed Alex's original patch that added the fake_install() > function, and I believe that given a couple hours work I can add this all > back in to a vanilla pacman 3.1.4 scenario. I'll work on that later tonight > after my kids are in bed. :) I have to admit, at first I didn't really > understand the purpose of having fake_install(), but I get it perfectly now > after reading past mailing list archives both here and for pacman itself. > This is definitely something that we should get added back in as soon as we > can. > Well that was a lot easier than I thought. Here's the updated version, which includes support for fake_install() in Pacman 3.1.4. I plan on maintaining the patch until the pacman devs pick it up. The attached files are also available on my website at http://www.quokworld.com/diy/pacman-3.1.4/2008-04-28 I've tested this once so far, I'm currently re-building the refbuild with different options. As always, comments are appreciated. Rich --Boundary-00=_VbeFIQvF2IYHxcH Content-Type: text/x-diff; charset="iso-8859-1"; name="gsbuild-pacman-3.1-r2.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="gsbuild-pacman-3.1-r2.patch" # DIY Linux Patch Date: 2008-04-27 Author: Rich Edelman Origin: See Author Maker: See Author Upstream Status: Submitted :) Description: This patch updates gsbuild to work with pacman 3.1.4 * Pacman 3.1.x requires an 'arch' line in the PKGBUILD. * Pacman 3.1.x will warn if a PKGBUILD does not contain a 'license' line, so we create one with a license of 'unknown' to get rid of that warning. * Pacman 3.1.x now contains the arch in the filename, so the code is updated to reflect that. * Updatesync and gensync are deprecated. We use repo-add instead. * To build a package as root, you now must specify the --asroot option to makepkg. * Added the new dependencies of pacman to PACMAN_PKGS. diff -rwu gsbuild.orig/common-sh.functions gsbuild/common-sh.functions --- gsbuild.orig/common-sh.functions 2008-04-23 11:28:21.000000000 -0500 +++ gsbuild/common-sh.functions 2008-04-27 16:56:55.000000000 -0500 @@ -497,6 +497,9 @@ # hyphens". Replace any occurrence with an underscore. PKG_VER=${PKG_VER//-/_} + # As of pacman3, the 'arch' line is required + PKG_ARCH=`echo $DIY_TARGET | awk -F"-" '{print $1}'` + cat > PKGBUILD <<- EOF pkgname=$1 pkgver=$PKG_VER @@ -517,9 +520,10 @@ fi cat >> PKGBUILD <<- EOF - source=(`get_pkg_field $BASE_PKG 5`$TARBALL) + source=('`get_pkg_field $BASE_PKG 5`$TARBALL') md5sums=('$MD5SUM') - + arch=('$PKG_ARCH') + license=('unknown') build() { eval PM_DEST=\$MY_DEST cd \$startdir/src/${PKG_DIR} @@ -556,20 +560,19 @@ ln -sv ${TARBALLS_DIR}/${TARBALL} if [ -r ${PKG_SCRIPTS_DIR}/${1}.nofakeroot ]; then - makepkg + makepkg --asroot else su pkgmgr -c makepkg fi test -r ${PKG_SCRIPTS_DIR}/${1}.pmhack && . ${PKG_SCRIPTS_DIR}/${1}.pmhack - pacman -U ${1}-${PKG_VER}-1.pkg.tar.gz + pacman -U ${1}-${PKG_VER}-1-${PKG_ARCH}.pkg.tar.gz mkdir -p ${ARC_DIR}/specfiles/${1} mv PKGBUILD ${ARC_DIR}/specfiles/${1} - mv ${1}-${PKG_VER}-1.pkg.tar.gz ${ARC_DIR} - test -r ${ARC_DIR}/custom.db.tar.gz && \ - updatesync upd ${ARC_DIR}/custom.db.tar.gz \ - ${ARC_DIR}/specfiles/${1}/PKGBUILD ${ARC_DIR} + mv ${1}-${PKG_VER}-1-${PKG_ARCH}.pkg.tar.gz ${ARC_DIR} + repo-add ${ARC_DIR}/custom.db.tar.gz \ + ${ARC_DIR}/${1}-${PKG_VER}-1-${PKG_ARCH}.pkg.tar.gz rm -rf /home/pkgmgr/* } 2>&1 | tee ${LOGS_DIR}/${1}-${PKG_VER}.log test "${PIPESTATUS[*]}" = "0 0" || do_exit $1 diff -rwu gsbuild.orig/gsbuild.sh gsbuild/gsbuild.sh --- gsbuild.orig/gsbuild.sh 2008-04-23 11:28:21.000000000 -0500 +++ gsbuild/gsbuild.sh 2008-04-24 05:14:21.000000000 -0500 @@ -351,7 +351,7 @@ X86_PKGS="grub" PPC_PKGS="yaboot mac-fdisk hfsutils" KH_PKGS="linux-libc-headers linux-kernel-headers" -PACMAN_PKGS="fakeroot zlib libtar pacman" +PACMAN_PKGS="fakeroot file zlib libarchive libdownload pacman" BPM_PKGS="fakeroot ogdlutils cpio bpm" # Handle the "--prep" argument. diff -rwu gsbuild.orig/package-base.list gsbuild/package-base.list --- gsbuild.orig/package-base.list 2008-04-23 11:28:21.000000000 -0500 +++ gsbuild/package-base.list 2008-04-24 06:22:19.000000000 -0500 @@ -75,8 +75,11 @@ yaboot 1.3.14 9b1246c474eeb37f61081ad762563b35 yaboot-1.3.14.tar.gz http://yaboot.ozlabs.org/releases/ zlib 1.2.3 dee233bf288ee795ac96a98cc2e369b6 zlib-1.2.3.tar.bz2 http://www.zlib.net/ -libtar 1.2.11 604238e8734ce6e25347a58c4f1a1d7e libtar-1.2.11.tar.gz ftp://ftp.feep.net/pub/software/libtar/ -pacman 2.9.8 5d5e19c159d1fba7c7a6bb93b5bc14bd pacman-2.9.8.tar.gz ftp://ftp.archlinux.org/other/pacman/ +#libtar 1.2.11 604238e8734ce6e25347a58c4f1a1d7e libtar-1.2.11.tar.gz ftp://ftp.feep.net/pub/software/libtar/ +#pacman 2.9.8 5d5e19c159d1fba7c7a6bb93b5bc14bd pacman-2.9.8.tar.gz ftp://ftp.archlinux.org/other/pacman/ +libarchive 2.5.1b e7778d1ae617e2719db562f9ffd26d6b libarchive-2.5.1b.tar.gz http://people.freebsd.org/~kientzle/libarchive/src/ +libdownload 1.3 77e10293fd4262745110eb423a10490c libdownload-1.3.tar.gz http://code.phraktured.net/?p=libdownload.git;a=blob;f=dist/ +pacman 3.1.4 dfba385a6675db39938c8cc7581c6325 pacman-3.1.4.tar.gz ftp://ftp.archlinux.org/other/pacman/ ogdlutils 20041124 45c7c81805480698c8c86881ab9be65c ogdlutils-20041124.tgz http://osdn.dl.sf.net/sourceforge/ogdl/ cpio 2.9 e387abfdae3a0b9a8a5f762db653a96d cpio-2.9.tar.bz2 http://ftp.gnu.org/gnu/cpio/ --Boundary-00=_VbeFIQvF2IYHxcH Content-Type: text/x-diff; charset="iso-8859-1"; name="libdownload-1.3-fixed-Makefile.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="libdownload-1.3-fixed-Makefile.patch" # DIY Linux Patch Date: 2008-04-24 Author: Rich Edelman Origin: See Author Maker: See Author Upstream Status: Not submitted. Description: This patch fixes the Makefile for libdownload-1.3 so that the shared library compiles on X86_64 systems. * Add -fPIC to CFLAGS so the shared library will link on 64-bit systems. * Fix the check for the ENABLE_HTTPS variable so that works correctly. * Remove the empty DESTDIR variable so installation to a DESTDIR works correctly. Created-by: Rich Edelman diff -u libdownload-1.3.orig/Makefile libdownload-1.3/Makefile --- libdownload-1.3.orig/Makefile 2007-11-28 06:28:27.000000000 +0000 +++ libdownload-1.3/Makefile 2008-04-23 15:26:51.000000000 +0000 @@ -1,9 +1,8 @@ prefix = /usr -DESTDIR = DEBUG = false ENABLE_HTTPS = true -CFLAGS = -O2 -pipe -I. -DINET6 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 +CFLAGS = -O2 -pipe -I. -DINET6 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC WARNINGS = -Wall -Wstrict-prototypes -Wsign-compare -Wchar-subscripts \ -Wpointer-arith -Wcast-align -Wsign-compare CFLAGS += $(WARNINGS) @@ -14,7 +13,7 @@ CFLAGS += -UDEBUG endif -ifeq ($(strip $(ENALE_HTTPS)),true) +ifeq ($(strip $(ENABLE_HTTPS)),true) CFLAGS += -DWITH_SSL LDFLAGS += -lssl -lcrypto endif --Boundary-00=_VbeFIQvF2IYHxcH Content-Type: text/x-diff; charset="iso-8859-1"; name="pacman-3.1.4-custom-mods-3.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="pacman-3.1.4-custom-mods-3.patch" diff -rwu pacman-3.1.4.orig/etc/makepkg.conf.in pacman-3.1.4/etc/makepkg.conf.in --- pacman-3.1.4.orig/etc/makepkg.conf.in 2008-02-17 20:40:41.000000000 -0600 +++ pacman-3.1.4/etc/makepkg.conf.in 2008-04-28 04:13:51.000000000 -0500 @@ -47,7 +47,7 @@ #-- ccache: Use ccache to cache compilation #-- xdelta: Generate delta patch from previous to current package # -BUILDENV=(fakeroot !distcc color !ccache !xdelta) +BUILDENV=(fakeroot !distcc !color !ccache !xdelta) # #-- If using DistCC, your MAKEFLAGS will also need modification. In addition, #-- specify a space-delimited list of hosts running in the DistCC cluster. @@ -66,7 +66,7 @@ #-- libtool: Leave libtool (.la) files in packages #-- emptydirs: Leave empty directories in packages # -OPTIONS=(strip !docs libtool emptydirs) +OPTIONS=(!strip !docs libtool emptydirs) #-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512 INTEGRITY_CHECK=(md5) @@ -86,7 +86,7 @@ #-- Source root: specify location where PKGBUILDs are located for '--builddeps' #SRCROOT=/home/pkgbuilds #-- Packager: name/email of the person or organization building packages -#PACKAGER="John Doe " +PACKAGER="DIY Linux (http://www.diy-linux.org)" ######################################################################### # BUILDSCRIPT/EXTENSION DEFAULTS diff -rwu pacman-3.1.4.orig/etc/pacman.conf.in pacman-3.1.4/etc/pacman.conf.in --- pacman-3.1.4.orig/etc/pacman.conf.in 2008-03-10 19:39:48.000000000 -0500 +++ pacman-3.1.4/etc/pacman.conf.in 2008-04-28 04:13:31.000000000 -0500 @@ -59,6 +59,6 @@ # An example of a custom package repository. See the pacman manpage for # tips on creating your own repositories. -#[custom] -#Server = file:///home/custompkgs +[custom] +Server = file:///var/lib/pacman/repo --Boundary-00=_VbeFIQvF2IYHxcH Content-Type: application/x-tbz; name="pacman-scriptlets-r3.tar.bz2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pacman-scriptlets-r3.tar.bz2" QlpoOTFBWSZTWRM/ZbsABVP/lMawAIBdj/+a//9ebv//38oCAAALAAhQA/ngEIAADmE0BoDRowjQ YjTEyYmgwjQMgGTA5hNAaA0aMI0GI0xMmJoMI0DIBkwEppNNRPUp6h6IYZJoGRpowCDBAA2o0NDQ 5hNAaA0aMI0GI0xMmJoMI0DIBkwEUSRkymaAJPSZTxGpp6T0E0PRHpqaZGJmRD0T1OQG6lzZnpT6 w79whaAGVlTEgvBnZ0CYYFgGGYbJkLtTLqORW10gNLBc1aNWj0USY0THddRhiaA2COoGAAJBueyP 6/TTNH0sh7tGt1+4rqiS2vFXhI+PXNlCJCII7cRJeDlBrB9duQepteaLR2DkbgeP1BhDR4DF8Mde H+LTKUrPJJ7Ihg2XTelMGEyXTp1SFI8FS5+Q8VHvHXpiuoPHE6S82BWUMA2GfyJJyFSF7ViNwn59 Xdte7g1Hm4iYicYbR4Wx5Sog0UCDZ1Sli4HPwyFRBAZR2cg0HdrNiG7l5svKAh5+f0fr0x0dHT7/ X/PKCG4A3gyDIDfAOVMvnAaqREz8x+ad84Aw2g2g12+gu6JoNBIQR1nAa+t8kljJsJISSVe8Kqs+ ET308REzNuuYRoxTIWeyxSWuaIYFQwBdVig6lMF7uZWVAwgMoVouCKtWKKLPRogctE15KwVtSCIu muYdsbBrGCjVETc6hodANLWw+z1ZunGwusI8798xJ9zc9QdSfYlOUIDWFwekPodadAeECq0LPiny WbkuCsaUTwp4wpzmSCwJOQtDmkcNy/AMgfIJgxBT8ExIbAK6gn5BZqGpbd7Mt4ybAuDCu7zFgPOH lH3B4X9lC0OksRgoMg1H7NYh0vmYAxcX9hFAxg9YOgPz8A8RkBqgaFiYMQyvODxHrBqIAMD6ihJj h8RoHKdhY1bkRAwEBELIYILjsMZ49dTJY2BAQX5RwyEDOIGmSZMztW7KBUfkZixdANt7MwBMJtrQ 3Fcmqpc4LCbunMP+QZSDSD5Q+msxDkfYbXNwEoOcXUq3hBqBvv3Q5dyQikZLLUdodwZNBJsshCCA gyjPttMY2F8yEyFi6Q0NSO45wx6CCsdBkWBotF1BxjpHdHNnggoOc0Rr3jMDeM6gaEwQMm1YeIM4 Ptuo27U9/e1n0N8OrYVSQnAMDvDvbezb9e2eeO2qLCnAaA75tNg38aNBeNd8R3xDCvBxb4OAgZMQ Oo7gLtWw7QeEtMuMJDFB5gPUfUeFVf/F3JFOFCQEz9luwA== --Boundary-00=_VbeFIQvF2IYHxcH Content-Type: text/x-diff; charset="iso-8859-1"; name="pacman-3.1.4-fakeinstall-2.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="pacman-3.1.4-fakeinstall-2.patch" diff -rwu pacman-3.1.4.orig/scripts/makepkg.sh.in pacman-3.1.4/scripts/makepkg.sh.in --- pacman-3.1.4.orig/scripts/makepkg.sh.in 2008-02-27 13:14:02.000000000 -0600 +++ pacman-3.1.4/scripts/makepkg.sh.in 2008-04-28 04:29:02.000000000 -0500 @@ -144,7 +144,9 @@ rm -rf pkg src if [ "$pkgname" != "" ]; then # Can't do this unless the BUILDSCRIPT has been sourced. - rm -f "${pkgname}-${pkgver}-${pkgrel}-${CARCH}.log*" + rm -f "${pkgname}-${pkgver}-${pkgrel}-${CARCH}-build.log*" + [ "$(type -t fake_install)" = "function" ] && + rm -f "${pkgname}-${pkgver}-${pkgrel}-${CARCH}-fake_install.log*" fi fi @@ -653,6 +655,12 @@ } run_build() { + if [ "$(type -t $1)" != "function" ]; then + error "$(gettext "Unknown function '%s'.")" ${1} + error "$(gettext "Aborting...")" + exit 1 + fi + # use distcc if it is requested (check buildenv and PKGBUILD opts) if [ "$(check_buildenv distcc)" = "y" -a "$(check_option distcc)" != "n" ]; then [ -d /usr/lib/distcc/bin ] && export PATH="/usr/lib/distcc/bin:$PATH" @@ -672,7 +680,7 @@ MAKEFLAGS="" fi - msg "$(gettext "Starting build()...")" + msg "$(gettext "Starting %s()...")" ${1} cd "$srcdir" # ensure all necessary build variables are exported @@ -680,7 +688,7 @@ local ret=0 if [ "$LOGGING" = "1" ]; then - BUILDLOG="${startdir}/${pkgname}-${pkgver}-${pkgrel}-${CARCH}.log" + BUILDLOG="${startdir}/${pkgname}-${pkgver}-${pkgrel}-${CARCH}-${1}.log" if [ -f "$BUILDLOG" ]; then local i=1 while true; do @@ -693,9 +701,9 @@ mv "$BUILDLOG" "$BUILDLOG.$i" fi - build 2>&1 | tee "$BUILDLOG"; ret=${PIPESTATUS[0]} + (set -e; $1) 2>&1 | tee "$BUILDLOG"; ret=${PIPESTATUS[0]} else - build 2>&1 || ret=$? + (set -e; $1) 2>&1 || ret=$? fi if [ $ret -gt 0 ]; then @@ -1371,7 +1379,12 @@ if [ "$REPKG" = "1" ]; then warning "$(gettext "Skipping build.")" else - run_build + if [ "$(type -t fake_install)" != "function" ]; then + run_build build + else + run_build fake_install + fi + tidy_install fi @@ -1474,13 +1487,19 @@ warning "$(gettext "Skipping build.")" else devel_update - run_build + run_build build + [ "$(type -t fake_install)" = "function" ] && run_build fake_install tidy_install fi create_package else + if [ "$REPKG" = "0" -a "$(type -t fake_install)" = "function" ]; then + run_build build + fi + msg "$(gettext "Entering fakeroot environment...")" + cd "$startdir" if [ "$newpkgver" != "" ]; then fakeroot -- $0 --forcever $newpkgver -F $ARGLIST || exit $? --Boundary-00=_VbeFIQvF2IYHxcH Content-Type: text/plain; charset="iso-8859-1"; name="MD5SUMS" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="MD5SUMS" 1bda746104c096ea69a5f1f8853e1de4 gsbuild-pacman-3.1-r2.patch 9d40fc00e003979862af8e25f9ddda9a libdownload-1.3-fixed-Makefile.patch 1caf02d7c642d1a9ab2aea794507697c pacman-3.1.4-custom-mods-3.patch 4ce2694736be8e204b098d693a42064e pacman-3.1.4-fakeinstall-2.patch 968c0ddeda563ad386b657deb2238c62 Pacman 3.1.4 Installation Notes 9f0d88e428cd2978ccb9640970059a52 pacman-scriptlets-r3.tar.bz2 --Boundary-00=_VbeFIQvF2IYHxcH Content-Type: text/plain; charset="iso-8859-1"; name="Pacman 3.1.4 Installation Notes" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="Pacman 3.1.4 Installation Notes" Pacman 3.1.4 Installation Hint =============================== Author: Rich Edelman Revision: 3 Last Updated: 2008-04-28 This hint covers installing pacman 3.1.4 INSTEAD of 2.9.8 DURING the reference build. Because of the many dependencies of this new version of pacman, we do the absolute bare minimum to keep the reference build light. This means any features that rely on the sudo command will not work, but the base featureset (that which is used in gsbuild's pacman_build() function) is there. WARNING: I have only tested these instructions using the next-gen build method on a pure-64 host. That is, I have set BIARCH=N. WARNING: Use this hint on BIARCH at your own risk. I plan to have BIARCH and i386 versions tested in the next few days. WARNING: I have only tested this with linux 2.6.25, gcc 4.2.3, glibc 2.7, and binutils 2.18. It may or may not work for you. Below are the new packages needed for pacman 3.1.4. They're in the proper format for placement into gsbuild's package-base.list file. If you are a gsbuild user, simply apply gsbuild-pacman-3.1-r2.patch and this will be taken care of for you. For the details on that patch, see the "GSBUILD PATCH" section. libarchive 2.5.1b e7778d1ae617e2719db562f9ffd26d6b libarchive-2.5.1b.tar.gz http://people.freebsd.org/~kientzle/libarchive/src/ libdownload 1.3 77e10293fd4262745110eb423a10490c libdownload-1.3.tar.gz http://code.phraktured.net/?p=libdownload.git;a=blob;f=dist/ pacman 3.1.4 dfba385a6675db39938c8cc7581c6325 pacman-3.1.4.tar.gz ftp://ftp.archlinux.org/other/pacman/ About the fake_install() function: There are various patches for pacman 3.1.x floating around that will implement fake_install() again, but they all seem to build on other patches. I took a couple of hours to port one of them over to pacman 3.1.4 and plan on maintaining that until the pacman devs pick it up (if they ever do). One final note. You'll notice that in temptools we build all of pacman and it's dependencies as static libs. This is because several of them want to link with bzip2, which at this point is only available as a static archive. It may perhaps be easier to just modify the temptools bzip2 installation to also build the shared lib as is done in the chroot stage. Optional dependencies for libarchive (not yet covered): libacl libxattr Optional dependencies for Pacman (not yet covered): sudo (and it's dependency on pam) Note that libtar is no longer needed for current versions of Pacman. Patches needed: libdownload-1.3-fixed-Makefile.patch gsbuild-pacman-3.1-r2.patch pacman-3.1.4-custom-mods-3.patch pacman-3.1.4-fakeinstall-2.patch GSBUILD PATCH ============= This patch fixes several areas in gsbuild that rely on the older pacman version. * As of pacman 3, the build arch is part of the filename, so we add that in. * Pacman 3 exits of the 'arch' line is missing from a PKGBUILD, so we add that in, based off $DIY_TARGET. * Pacman 3 complains about the lack of a 'license' in a PKGBUILD, so we add an 'unknown' one. * updatesync is deprecated, and should be replaced by repo-add, so we now use that. * Added the additional packages to PACMAN_PKGS. * To build a package as root, you must specify --asroot to makepkg. Apply the patch with the args -Np1 to patch. I created it against gsbuild cvs. pacman-scriptlets-r3.tar.bz2 ============================ This file contains the scriptlets below. Drop them in your gsbuild/ directory. STATUS OF OLD PATCHES ===================== * pacman-2.9.6-temptools-1.patch This patch was dropped, with no need to port it to pacman3. It has been mostly merged as the makepkg script has its own makepkg.in which correctly handles the case of having /temptools as the prefix. We'll use configure switches where necessary to get the same behavior we received from parts of this patch. * pacman-2.9.8-sep_install-1.patch Dropped as it did not apply. Superceded by pacman-3.1.4-fakeinstall-2.patch. * pacman-2.9.6-custom-mods-2.patch Ported forward where necessary, it is now pacman-3.1.4-custom-mods-3.patch. See that patch for details. TEMPTOOLS PHASE =============== Install file: ./configure make make install Install libarchive: ./configure --enable-shared=no make make install Rationale: We build libarchive as a static archive only to avoid a linking error related to libbz2. Install libdownload: NOTE: You MUST use "-O libdownload-1.3.tar.gz" when downloading using wget, and you MUST have single quotes around the URL! example: wget -O libdownload-1.3.tar.gz 'http://code.phraktured.net/?p=libdownload.git;a=blob;f=dist/libdownload-1.3.tar.gz' Apply our patch so the shared object compiles correctly on X86_64 systems: patch -Np1 -i ${TT_PFX}/src/patches/libdownload-1.3-fixed-Makefile.patch sed -i.bak 's/ENABLE_HTTPS = true/ENABLE_HTTPS = false/' Makefile make make install prefix=$TT_PFX Install pacman: patch -Np1 -i ${TT_PFX}/src/patches/pacman-3.1.4-custom-mods-2.patch patch -Np1 -i ${TT_PFX}/src/patches/pacman-3.1.4-fakeinstall-2.patch ./configure --enable-shared=no make make install CHROOT PHASE ============ Install libarchive: ./configure make make DESTDIR=$PM_DEST install Install libdownload: patch -Np1 -i ${TT_PFX}/src/patches/libdownload-1.3-fixed-Makefile.patch sed -i.bak 's/ENABLE_HTTPS = true/ENABLE_HTTPS = false/' Makefile make make DESTDIR=$PM_DEST install Install pacman: patch -Np1 -i ${TT_PFX}/src/patches/pacman-3.1.4-custom-mods-3.patch patch -Np1 -i ${TT_PFX}/src/patches/pacman-3.1.4-fakeinstall-2.patch ./configure --prefix= --exec-prefix=/usr make make DESTDIR=$PM_DEST install Rationale: /etc/config.site overrides the default prefix of /usr/local, making it /usr. In most cases this is correct, however in the case of pacman it will put the config files in /usr/etc/ and the repo and cache files in /usr/var. We undefine the prefix but set the exec-prefix to /usr to cause all executables to go into /usr/bin and /usr/sbin, while the config files go to /etc, and the repo and cache files go in /var/lib. That's it! Any feedback would be welcome. I'll gladly attempt to help with any problems you may encounter while using this hint, or answer any questions you may have. Changelog ========= 2008-04-28 * Upgraded to pacman-3.1.4-custom-mods-3.patch. We now use !docs in the build options. * Upgraded to pacman-3.1.4-fakeinstall-2.patch. Added a missing 'cd "$startdir"' after entering the fakeroot. 2008-04-27 * Revised to add pacman-3.1.4-fakeinstall-1.patch. * Upgraded to pacman-3.1.4-custom-mods-2.patch. * Patch gsbuild-pacman.patch replaced by gsbuild-pacman-3.1-r2.patch. * Scriptlets upgraded to pacman-scriplets-r2.tar.bz2. * Added 'revision' line because of above problem. Added Changelog. 2008-04-24 * Original version. Mistakenly labelled with date '2008-04-28'. --Boundary-00=_VbeFIQvF2IYHxcH-- From diy-linux-dev@diy-linux.org Tue Apr 29 00:48:31 2008 From: diy-linux-dev@diy-linux.org (Greg Schafer) Date: Tue, 29 Apr 2008 10:48:31 +1000 Subject: Pacman 3.1.4 In-Reply-To: <200804271753.58743.rcedelman@comcast.net> References: <200804241234.04501.rcedelman@comcast.net> <20080425005302.GA12071@eyo32.local> <200804271753.58743.rcedelman@comcast.net> Message-ID: <20080429004831.GA604@eyo32.local> On Sun, Apr 27, 2008 at 05:53:58PM -0500, Rich Edelman wrote: > Do you have any notes on using GCC 4.3.0 with the refbuild yet? I'd be > interested in taking a look at those and testing things out. I've had it basically ready for ages but haven't committed due to a) lack of time and b) it was blocked by the switch over to the next gen build and the deprecation of the old method. I now have the switch over ready to commit and will start adding GCC 4.3 after that. Just to clarify, the old build method will not be updated for GCC 4.3. Regards Greg From diy-linux-dev@diy-linux.org Tue Apr 29 01:04:27 2008 From: diy-linux-dev@diy-linux.org (Greg Schafer) Date: Tue, 29 Apr 2008 11:04:27 +1000 Subject: Pacman 3.1.4 In-Reply-To: <200804281001.41475.rcedelman@comcast.net> References: <200804241234.04501.rcedelman@comcast.net> <20080425005302.GA12071@eyo32.local> <200804271753.58743.rcedelman@comcast.net> <200804281001.41475.rcedelman@comcast.net> Message-ID: <20080429010427.GA666@eyo32.local> On Mon, Apr 28, 2008 at 10:01:41AM -0500, Rich Edelman wrote: > Well that was a lot easier than I thought. Here's the updated version, which > includes support for fake_install() in Pacman 3.1.4. I plan on maintaining > the patch until the pacman devs pick it up. Cool!! I have no excuses now :-) Thanks again for your work. Regards Greg From diy-linux-dev@diy-linux.org Tue Apr 29 21:49:34 2008 From: diy-linux-dev@diy-linux.org (Andrew Fyfe) Date: Tue, 29 Apr 2008 22:49:34 +0100 Subject: Pacman 3.1.4 In-Reply-To: <200804281001.41475.rcedelman@comcast.net> References: <200804241234.04501.rcedelman@comcast.net> <20080425005302.GA12071@eyo32.local> <200804271753.58743.rcedelman@comcast.net> <200804281001.41475.rcedelman@comcast.net> Message-ID: <481797EE.4030504@neptune-one.net> Rich Edelman wrote: > On Sunday 27 April 2008 05:53:58 pm Rich Edelman wrote: >>> Personally, I find fake_install() a killer feature and would hate to lose >>> it. I'd be very interested in pointers to those patches floating around. >>> I honestly don't understand why the Pacman dev's haven't implemented it.. >> I've re-diffed Alex's original patch that added the fake_install() >> function, and I believe that given a couple hours work I can add this all >> back in to a vanilla pacman 3.1.4 scenario. I'll work on that later tonight >> after my kids are in bed. :) I have to admit, at first I didn't really >> understand the purpose of having fake_install(), but I get it perfectly now >> after reading past mailing list archives both here and for pacman itself. >> This is definitely something that we should get added back in as soon as we >> can. >> > > Well that was a lot easier than I thought. Here's the updated version, which > includes support for fake_install() in Pacman 3.1.4. I plan on maintaining > the patch until the pacman devs pick it up. > > The attached files are also available on my website at > http://www.quokworld.com/diy/pacman-3.1.4/2008-04-28 > > I've tested this once so far, I'm currently re-building the refbuild with > different options. > > As always, comments are appreciated. > > Rich > You can find my original patch for adding fake_install to pacman 3 here (http://www.archlinux.org/pipermail/pacman-dev/2007-April/007927.html) Note sure how cleanly it still applies to makepkg, but it shouldn't be to difficult to edit it by hand. Andrew From diy-linux-dev@diy-linux.org Tue Apr 29 22:37:13 2008 From: diy-linux-dev@diy-linux.org (Rich Edelman) Date: Tue, 29 Apr 2008 17:37:13 -0500 Subject: Pacman 3.1.4 In-Reply-To: <481797EE.4030504@neptune-one.net> References: <200804241234.04501.rcedelman@comcast.net> <200804281001.41475.rcedelman@comcast.net> <481797EE.4030504@neptune-one.net> Message-ID: <200804291737.13339.rcedelman@comcast.net> On Tuesday 29 April 2008 04:49:34 pm Andrew Fyfe wrote: > You can find my original patch for adding fake_install to pacman 3 here > (http://www.archlinux.org/pipermail/pacman-dev/2007-April/007927.html) > > Note sure how cleanly it still applies to makepkg, but it shouldn't be > to difficult to edit it by hand. > > Andrew That's the patch I ended up following actually. It didn't apply cleanly and I wanted to familiarize myself a bit more with pacman anyway, so I did it all by hand. What I can't find though is a reason why the pacman dev's didn't pick it up, when it looks like they picked up a bunch of your other patches that were submitted. It's definitely a really nice feature to have and is a lot more in line with the fakeroot docs. Rich