From f4744110e801e5fcbb1ee4af81882bc928982d03 Mon Sep 17 00:00:00 2001 From: James Meyer Date: Tue, 7 Aug 2012 12:49:21 -0500 Subject: pacman 4.0.3 --- ...flict-for-replacing-owned-empty-directory.patch | 152 +++++++++++++++++++++ .../0002-Check-empty-subdirectory-ownership.patch | 61 +++++++++ abs/core/pacman/PKGBUILD | 57 +++++--- abs/core/pacman/__changelog | 2 - abs/core/pacman/makepkg.conf | 31 +++-- ...lback-to-sane-defaults-for-library-stripp.patch | 32 ----- abs/core/pacman/old/PKGBUILD | 74 ---------- abs/core/pacman/old/makepkg.conf | 115 ---------------- abs/core/pacman/old/mirrorlist | 101 -------------- abs/core/pacman/old/pacman.conf | 84 ------------ abs/core/pacman/old/pacman.install | 53 ------- abs/core/pacman/pacman-3.4.1-1-i686.pkg.tar.gz | 1 - abs/core/pacman/pacman.conf | 72 ++++------ abs/core/pacman/pacman.conf.x86_64 | 27 +++- abs/core/pacman/pacman.install | 31 ++--- 15 files changed, 325 insertions(+), 568 deletions(-) create mode 100644 abs/core/pacman/0001-Add-conflict-for-replacing-owned-empty-directory.patch create mode 100644 abs/core/pacman/0002-Check-empty-subdirectory-ownership.patch delete mode 100644 abs/core/pacman/__changelog delete mode 100644 abs/core/pacman/old/0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch delete mode 100644 abs/core/pacman/old/PKGBUILD delete mode 100644 abs/core/pacman/old/makepkg.conf delete mode 100644 abs/core/pacman/old/mirrorlist delete mode 100644 abs/core/pacman/old/pacman.conf delete mode 100644 abs/core/pacman/old/pacman.install delete mode 120000 abs/core/pacman/pacman-3.4.1-1-i686.pkg.tar.gz diff --git a/abs/core/pacman/0001-Add-conflict-for-replacing-owned-empty-directory.patch b/abs/core/pacman/0001-Add-conflict-for-replacing-owned-empty-directory.patch new file mode 100644 index 0000000..85622aa --- /dev/null +++ b/abs/core/pacman/0001-Add-conflict-for-replacing-owned-empty-directory.patch @@ -0,0 +1,152 @@ +From 717fdb8ee0fd23cf72fc7d2832317f513caefa2c Mon Sep 17 00:00:00 2001 +From: Allan McRae +Date: Sun, 8 Jul 2012 21:36:36 +1000 +Subject: [PATCH 1/4] Add conflict for replacing owned empty directory + +When two packages own an empty directory, pacman finds no conflict when +one of those packages wants to replace the directory with a file or a +symlink. When it comes to actually extracting the new file/symlink, +pacman sees the directory is still there (we do not remove empty +directories if they are owned by a package) and refuses to extract. + +Detect this potential conflict early and bail. Note that it is a +_potential_ conflict and not a guaranteed one as the other package owning +the directory could be updated or removed first which would remove +the conflict. However, pacman currently can not sort package installation +order to ensure this, so this conflict requires manual upgrade ordering. + +Signed-off-by: Allan McRae +Signed-off-by: Dan McGee +--- + lib/libalpm/conflict.c | 32 ++++++++++++++++++++++++++------ + test/pacman/tests/fileconflict009.py | 20 ++++++++++++++++++++ + test/pacman/tests/fileconflict010.py | 20 ++++++++++++++++++++ + 3 files changed, 66 insertions(+), 6 deletions(-) + create mode 100644 test/pacman/tests/fileconflict009.py + create mode 100644 test/pacman/tests/fileconflict010.py + +diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c +index 32f6f30..efa1a87 100644 +--- a/lib/libalpm/conflict.c ++++ b/lib/libalpm/conflict.c +@@ -328,15 +328,35 @@ const alpm_file_t *_alpm_filelist_contains(alpm_filelist_t *filelist, + return NULL; + } + +-static int dir_belongsto_pkg(const char *root, const char *dirpath, ++static int dir_belongsto_pkg(alpm_handle_t *handle, const char *dirpath, + alpm_pkg_t *pkg) + { ++ alpm_list_t *i; + struct stat sbuf; + char path[PATH_MAX]; + char abspath[PATH_MAX]; +- struct dirent *ent = NULL; + DIR *dir; ++ struct dirent *ent = NULL; ++ const char *root = handle->root; ++ ++ /* TODO: this is an overly strict check but currently pacman will not ++ * overwrite a directory with a file (case 10/11 in add.c). Adjusting that ++ * is not simple as even if the directory is being unowned by a conflicting ++ * package, pacman does not sort this to ensure all required directory ++ * "removals" happen before installation of file/symlink */ ++ ++ /* check that no other _installed_ package owns the directory */ ++ for(i = _alpm_db_get_pkgcache(handle->db_local); i; i = i->next) { ++ if(pkg == i->data) { ++ continue; ++ } ++ ++ if(_alpm_filelist_contains(alpm_pkg_get_files(i->data), dirpath)) { ++ return 0; ++ } ++ } + ++ /* check all files in directory are owned by the package */ + snprintf(abspath, PATH_MAX, "%s%s", root, dirpath); + dir = opendir(abspath); + if(dir == NULL) { +@@ -349,13 +369,13 @@ static int dir_belongsto_pkg(const char *root, const char *dirpath, + if(strcmp(name, ".") == 0 || strcmp(name, "..") == 0) { + continue; + } +- snprintf(path, PATH_MAX, "%s/%s", dirpath, name); ++ snprintf(path, PATH_MAX, "%s%s", dirpath, name); + snprintf(abspath, PATH_MAX, "%s%s", root, path); + if(stat(abspath, &sbuf) != 0) { + continue; + } + if(S_ISDIR(sbuf.st_mode)) { +- if(dir_belongsto_pkg(root, path, pkg)) { ++ if(dir_belongsto_pkg(handle, path, pkg)) { + continue; + } else { + closedir(dir); +@@ -529,9 +549,9 @@ alpm_list_t *_alpm_db_find_fileconflicts(alpm_handle_t *handle, + sprintf(dir, "%s/", filestr); + if(_alpm_filelist_contains(alpm_pkg_get_files(dbpkg), dir)) { + _alpm_log(handle, ALPM_LOG_DEBUG, +- "check if all files in %s belongs to %s\n", ++ "check if all files in %s belong to %s\n", + dir, dbpkg->name); +- resolved_conflict = dir_belongsto_pkg(handle->root, filestr, dbpkg); ++ resolved_conflict = dir_belongsto_pkg(handle, dir, dbpkg); + } + free(dir); + } +diff --git a/test/pacman/tests/fileconflict009.py b/test/pacman/tests/fileconflict009.py +new file mode 100644 +index 0000000..904af4a +--- /dev/null ++++ b/test/pacman/tests/fileconflict009.py +@@ -0,0 +1,20 @@ ++self.description = "dir->symlink change during package upgrade (directory conflict)" ++ ++lp1 = pmpkg("pkg1") ++lp1.files = ["dir/"] ++self.addpkg2db("local", lp1) ++ ++lp2 = pmpkg("pkg2") ++lp2.files = ["dir/"] ++self.addpkg2db("local", lp2) ++ ++p = pmpkg("pkg1", "1.0-2") ++p.files = ["dir -> /usr/dir"] ++self.addpkg2db("sync", p) ++ ++self.args = "-S pkg1" ++ ++self.addrule("PACMAN_RETCODE=1") ++self.addrule("PKG_VERSION=pkg1|1.0-1") ++self.addrule("PKG_VERSION=pkg2|1.0-1") ++self.addrule("DIR_EXIST=dir/") +diff --git a/test/pacman/tests/fileconflict010.py b/test/pacman/tests/fileconflict010.py +new file mode 100644 +index 0000000..0a3ce83 +--- /dev/null ++++ b/test/pacman/tests/fileconflict010.py +@@ -0,0 +1,20 @@ ++self.description = "dir->file change during package upgrade (directory conflict)" ++ ++lp1 = pmpkg("pkg1") ++lp1.files = ["dir/"] ++self.addpkg2db("local", lp1) ++ ++lp2 = pmpkg("pkg2") ++lp2.files = ["dir/"] ++self.addpkg2db("local", lp2) ++ ++p = pmpkg("pkg1", "1.0-2") ++p.files = ["dir"] ++self.addpkg2db("sync", p) ++ ++self.args = "-S pkg1" ++ ++self.addrule("PACMAN_RETCODE=1") ++self.addrule("PKG_VERSION=pkg1|1.0-1") ++self.addrule("PKG_VERSION=pkg2|1.0-1") ++self.addrule("DIR_EXIST=dir/") +-- +1.7.11.1 + diff --git a/abs/core/pacman/0002-Check-empty-subdirectory-ownership.patch b/abs/core/pacman/0002-Check-empty-subdirectory-ownership.patch new file mode 100644 index 0000000..6cf496d --- /dev/null +++ b/abs/core/pacman/0002-Check-empty-subdirectory-ownership.patch @@ -0,0 +1,61 @@ +From 44e9fdd0e848382337edb97d41e7317638a67bac Mon Sep 17 00:00:00 2001 +From: Allan McRae +Date: Sun, 8 Jul 2012 23:58:37 +1000 +Subject: [PATCH 2/4] Check empty subdirectory ownership + +When checking if a package owns a directory, it is important to check +not only that all the files in the directory are part of the package, +but also if the directory is part of a package. This catches empty +subdirectories during conflict checking for directory to file/symlink +replacements. + +Signed-off-by: Allan McRae +Signed-off-by: Dan McGee +--- + lib/libalpm/conflict.c | 5 +++++ + test/pacman/tests/fileconflict012.py | 17 +++++++++++++++++ + 2 files changed, 22 insertions(+) + create mode 100644 test/pacman/tests/fileconflict012.py + +diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c +index efa1a87..d6e5d8c 100644 +--- a/lib/libalpm/conflict.c ++++ b/lib/libalpm/conflict.c +@@ -339,6 +339,11 @@ static int dir_belongsto_pkg(alpm_handle_t *handle, const char *dirpath, + struct dirent *ent = NULL; + const char *root = handle->root; + ++ /* check directory is actually in package - used for subdirectory checks */ ++ if(!_alpm_filelist_contains(alpm_pkg_get_files(pkg), dirpath)) { ++ return 0; ++ } ++ + /* TODO: this is an overly strict check but currently pacman will not + * overwrite a directory with a file (case 10/11 in add.c). Adjusting that + * is not simple as even if the directory is being unowned by a conflicting +diff --git a/test/pacman/tests/fileconflict012.py b/test/pacman/tests/fileconflict012.py +new file mode 100644 +index 0000000..421b739 +--- /dev/null ++++ b/test/pacman/tests/fileconflict012.py +@@ -0,0 +1,17 @@ ++self.description = "dir->file change during package upgrade (filesystem file conflict)" ++ ++lp1 = pmpkg("pkg1") ++lp1.files = ["dir/"] ++self.addpkg2db("local", lp1) ++ ++self.filesystem = ["dir/file"] ++ ++p = pmpkg("pkg1", "1.0-2") ++p.files = ["dir"] ++self.addpkg2db("sync", p) ++ ++self.args = "-S pkg1" ++ ++self.addrule("PACMAN_RETCODE=1") ++self.addrule("PKG_VERSION=pkg1|1.0-1") ++self.addrule("DIR_EXIST=dir/") +-- +1.7.11.1 + diff --git a/abs/core/pacman/PKGBUILD b/abs/core/pacman/PKGBUILD index 80dabe4..623f4cc 100644 --- a/abs/core/pacman/PKGBUILD +++ b/abs/core/pacman/PKGBUILD @@ -1,35 +1,52 @@ -# $Id$ +# vim: set ts=2 sw=2 et: +# $Id: PKGBUILD 163493 2012-07-13 12:31:08Z allan $ # Maintainer: Dan McGee +# Maintainer: Dave Reisner pkgname=pacman -pkgver=3.5.3 -pkgrel=5 +pkgver=4.0.3 +pkgrel=3 pkgdesc="A library-based package manager with dependency support" arch=('i686' 'x86_64') url="http://www.archlinux.org/pacman/" license=('GPL') groups=('base') -depends=('bash' 'libarchive>=2.8.4' 'libfetch>=2.28' 'pacman-mirrorlist') -optdepends=('fakeroot: for makepkg usage as normal user' - 'curl: for rankmirrors usage') +depends=('bash' 'glibc>=2.15' 'libarchive>=3.0.2' 'curl>=7.19.4' + 'gpgme' 'pacman-mirrorlist' 'archlinux-keyring') +makedepends=('asciidoc') +optdepends=('fakeroot: for makepkg usage as normal user') backup=(etc/pacman.conf etc/makepkg.conf) install=pacman.install options=(!libtool) -source=(ftp://ftp.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz +source=(ftp://ftp.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz{,.sig} + 0001-Add-conflict-for-replacing-owned-empty-directory.patch + 0002-Check-empty-subdirectory-ownership.patch pacman.conf pacman.conf.x86_64 makepkg.conf) - -# keep an upgrade path for older installations -PKGEXT='.pkg.tar.gz' +md5sums=('387965c7125e60e5f0b9ff3b427fe0f9' + '1a70392526c8768470da678b31905a6e' + '1a9b79788640907a2b34e8671cacc94a' + 'a9ddd43891bed364e1e97d27b2887bf1' + '99734ea46795f466d41c503e9e23b6d4' + '556d49489e82b5750cf026d3b18c8f4f' + '589cd34eb9d5b678455e8289394f523e') build() { cd $srcdir/$pkgname-$pkgver + + patch -p1 -i $srcdir/0001-Add-conflict-for-replacing-owned-empty-directory.patch + patch -p1 -i $srcdir/0002-Check-empty-subdirectory-ownership.patch + ./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var --enable-doc make } +check() { + make -C "$pkgname-$pkgver" check +} + package() { cd $srcdir/$pkgname-$pkgver make DESTDIR=$pkgdir install @@ -41,13 +58,13 @@ package() { install -m644 $srcdir/pacman.conf $pkgdir/etc/pacman.conf mycarch="i686" mychost="i686-pc-linux-gnu" - myflags="-march=i686 " + myflags="-march=i686" ;; x86_64) install -m644 $srcdir/pacman.conf.x86_64 $pkgdir/etc/pacman.conf mycarch="x86_64" mychost="x86_64-unknown-linux-gnu" - myflags="-march=x86-64 " + myflags="-march=x86-64" ;; esac install -m644 $srcdir/makepkg.conf $pkgdir/etc/ @@ -58,14 +75,10 @@ package() { -e "s|@CARCHFLAGS[@]|$myflags|g" # install completion files - mkdir -p $pkgdir/etc/bash_completion.d/ - install -m644 contrib/bash_completion $pkgdir/etc/bash_completion.d/pacman - mkdir -p $pkgdir/usr/share/zsh/site-functions/ - install -m644 contrib/zsh_completion $pkgdir/usr/share/zsh/site-functions/_pacman -} + install -Dm644 contrib/bash_completion "$pkgdir/usr/share/bash-completion/completions/pacman" + for f in makepkg pacman-key; do + ln -s pacman "$pkgdir/usr/share/bash-completion/completions/$f" + done -# vim: set ts=2 sw=2 et: -md5sums=('c36c18ed4d8ec69c0ecb4f9684266901' - '8ec73ab08305cdbe3671aedbbb4ceede' - 'ae905192b4bf71772173e8abbd53291e' - 'a8684989d3dfad5a6e1bcf95af3e571b') + install -Dm644 contrib/zsh_completion $pkgdir/usr/share/zsh/site-functions/_pacman +} diff --git a/abs/core/pacman/__changelog b/abs/core/pacman/__changelog deleted file mode 100644 index f028169..0000000 --- a/abs/core/pacman/__changelog +++ /dev/null @@ -1,2 +0,0 @@ -make cache dir /data/var/cache/pacman/pkg -add custom message to post_upgrade() of pacman.install diff --git a/abs/core/pacman/makepkg.conf b/abs/core/pacman/makepkg.conf index a655e93..25ca015 100644 --- a/abs/core/pacman/makepkg.conf +++ b/abs/core/pacman/makepkg.conf @@ -8,16 +8,16 @@ # #-- The download utilities that makepkg should use to acquire sources # Format: 'protocol::agent' -DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u' - 'http::/usr/bin/wget -c -t 3 --waitretry=3 -O %o %u' - 'https::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u' +DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u' + 'http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u' + 'https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u' 'rsync::/usr/bin/rsync -z %u %o' 'scp::/usr/bin/scp -C %u %o') # Other common tools: # /usr/bin/snarf # /usr/bin/lftpget -c -# /usr/bin/curl +# /usr/bin/wget ######################################################################### # ARCHITECTURE, COMPILE FLAGS @@ -26,12 +26,12 @@ DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u' CARCH="@CARCH@" CHOST="@CHOST@" -#-- Exclusive: will only run on @CARCH@ +#-- Compiler and Linker Flags # -march (or -mcpu) builds exclusively for an architecture # -mtune optimizes for an architecture, but builds for whole processor family -CFLAGS="@CARCHFLAGS@-mtune=generic -O2 -pipe" -CXXFLAGS="@CARCHFLAGS@-mtune=generic -O2 -pipe" -LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed" +CFLAGS="@CARCHFLAGS@ -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2" +CXXFLAGS="@CARCHFLAGS@ -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2" +LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro" #-- Make Flags: change this for DistCC/SMP systems #MAKEFLAGS="-j2" @@ -39,7 +39,7 @@ LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed" # BUILD ENVIRONMENT ######################################################################### # -# Defaults: BUILDENV=(fakeroot !distcc color !ccache check) +# Defaults: BUILDENV=(fakeroot !distcc color !ccache check !sign) # A negated environment option will do the opposite of the comments below. # #-- fakeroot: Allow building packages as a non-root user @@ -47,19 +47,23 @@ LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed" #-- color: Colorize output messages #-- ccache: Use ccache to cache compilation #-- check: Run the check() function if present in the PKGBUILD +#-- sign: Generate PGP signature file # -BUILDENV=(fakeroot !distcc color !ccache check) +BUILDENV=(fakeroot !distcc color !ccache check !sign) # #-- If using DistCC, your MAKEFLAGS will also need modification. In addition, #-- specify a space-delimited list of hosts running in the DistCC cluster. #DISTCC_HOSTS="" +# +#-- Specify a directory for package building. +#BUILDDIR=/tmp/makepkg ######################################################################### # GLOBAL PACKAGE OPTIONS # These are default values for the options=() settings ######################################################################### # -# Default: OPTIONS=(strip docs libtool emptydirs zipman purge) +# Default: OPTIONS=(strip docs libtool emptydirs zipman purge !upx) # A negated option will do the opposite of the comments below. # #-- strip: Strip symbols from binaries/libraries @@ -68,8 +72,9 @@ BUILDENV=(fakeroot !distcc color !ccache check) #-- emptydirs: Leave empty directories in packages #-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip #-- purge: Remove files specified by PURGE_TARGETS +#-- upx: Compress binary executable files using UPX # -OPTIONS=(strip docs libtool emptydirs zipman purge) +OPTIONS=(strip docs libtool emptydirs zipman purge !upx) #-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512 INTEGRITY_CHECK=(md5) @@ -100,6 +105,8 @@ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod) #SRCPKGDEST=/home/srcpackages #-- Packager: name/email of the person or organization building packages #PACKAGER="John Doe " +#-- Specify a key to use for package signing +#GPGKEY="" ######################################################################### # EXTENSION DEFAULTS diff --git a/abs/core/pacman/old/0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch b/abs/core/pacman/old/0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch deleted file mode 100644 index 8baa35e..0000000 --- a/abs/core/pacman/old/0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch +++ /dev/null @@ -1,32 +0,0 @@ -From dc817a2061699cd1f33ca93f0d93a1fbc2f33ea1 Mon Sep 17 00:00:00 2001 -From: Allan McRae -Date: Thu, 17 Jun 2010 14:32:08 +1000 -Subject: [PATCH] makepkg: fallback to sane defaults for library stripping - -If the library stripping variables are not defined in makepkg.conf, -libraries will be fully stripped and become broken. Fallback to a -sane default stripping level. - -Signed-off-by: Allan McRae -Signed-off-by: Dan McGee ---- - scripts/makepkg.sh.in | 3 +++ - 1 files changed, 3 insertions(+), 0 deletions(-) - -diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in -index d986701..e64b564 100644 ---- a/scripts/makepkg.sh.in -+++ b/scripts/makepkg.sh.in -@@ -864,6 +864,9 @@ tidy_install() { - - if [[ $(check_option strip) = y && -n ${STRIP_DIRS[*]} ]]; then - msg2 "$(gettext "Stripping unneeded symbols from binaries and libraries...")" -+ # make sure library stripping variables are defined to prevent excess stripping -+ [[ -z ${STRIP_SHARED+x} ]] && STRIP_SHARED="-S" -+ [[ -z ${STRIP_STATIC+x} ]] && STRIP_STATIC="-S" - local binary - find ${STRIP_DIRS[@]} -type f -perm -u+w 2>/dev/null | while read binary ; do - case "$(file -bi "$binary")" in --- -1.7.1 - diff --git a/abs/core/pacman/old/PKGBUILD b/abs/core/pacman/old/PKGBUILD deleted file mode 100644 index a138950..0000000 --- a/abs/core/pacman/old/PKGBUILD +++ /dev/null @@ -1,74 +0,0 @@ -# $Id: PKGBUILD 83376 2010-06-21 12:52:09Z dan $ -# Maintainer: Aaron Griffin -# Maintainer: Dan McGee - -pkgname=pacman -pkgver=3.4.0 -pkgrel=3 -pkgdesc="A library-based package manager with dependency support" -arch=('i686' 'x86_64') -url="http://www.archlinux.org/pacman/" -license=('GPL') -groups=('base') -depends=('bash' 'libarchive>=2.7.1' 'libfetch>=2.25' 'pacman-mirrorlist') -optdepends=('fakeroot: for makepkg usage as normal user') -backup=(etc/pacman.conf etc/makepkg.conf) -install=pacman.install -options=(!libtool) -source=(ftp://ftp.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz - pacman.conf - makepkg.conf - 0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch) -md5sums=('50ad71be1faaad84842c576e239d1bb5' - '80f5bb2a606553512d0db857f78d9ac2' - 'aef317285c7d16ac495b0e53deeb948d' - 'f8c4a3cc7702a7a70d177659441495c5') -sha256sums=('cd80e206ee653ce337555c73b7064088e672e9341245317fe09dc52d06bff3c3' - '97fb68536c1179a7de52dfb8a107c6e9bf3a71eaa6a98d6ae74dc224d4ca5838' - '3a60e1f895c90c8e74f5ca389fa05fb3328745e9873c5452b8cd1b2e68bee418' - '99f1d108f930b134cfb4c1ca8c86cd282fe9efb69de39cd747218f3d448dda44') - -# keep an upgrade path for older installations -PKGEXT='.pkg.tar.gz' - -build() { - cd $srcdir/$pkgname-$pkgver - patch -Np1 < $srcdir/0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch - ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-doc - make || return 1 -} - -package() { - cd $srcdir/$pkgname-$pkgver - make DESTDIR=$pkgdir install || return 1 - - # install Arch specific stuff - mkdir -p $pkgdir/etc - install -m644 $srcdir/pacman.conf $pkgdir/etc/ - install -m644 $srcdir/makepkg.conf $pkgdir/etc/ - # set things correctly in the default conf file - case "$CARCH" in - i686) - mycarch="i686" - mychost="i686-pc-linux-gnu" - myflags="-march=i686 " - ;; - x86_64) - mycarch="x86_64" - mychost="x86_64-unknown-linux-gnu" - myflags="-march=x86-64 " - ;; - esac - sed -i $pkgdir/etc/makepkg.conf \ - -e "s|@CARCH[@]|$mycarch|g" \ - -e "s|@CHOST[@]|$mychost|g" \ - -e "s|@CARCHFLAGS[@]|$myflags|g" - - # install completion files - mkdir -p $pkgdir/etc/bash_completion.d/ - install -m644 contrib/bash_completion $pkgdir/etc/bash_completion.d/pacman - mkdir -p $pkgdir/usr/share/zsh/site-functions/ - install -m644 contrib/zsh_completion $pkgdir/usr/share/zsh/site-functions/_pacman -} - -# vim: set ts=2 sw=2 et: diff --git a/abs/core/pacman/old/makepkg.conf b/abs/core/pacman/old/makepkg.conf deleted file mode 100644 index ff08a0f..0000000 --- a/abs/core/pacman/old/makepkg.conf +++ /dev/null @@ -1,115 +0,0 @@ -# -# /etc/makepkg.conf -# - -######################################################################### -# SOURCE ACQUISITION -######################################################################### -# -#-- The download utilities that makepkg should use to acquire sources -# Format: 'protocol::agent' -DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u' - 'http::/usr/bin/wget -c -t 3 --waitretry=3 -O %o %u' - 'https::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u' - 'rsync::/usr/bin/rsync -z %u %o' - 'scp::/usr/bin/scp -C %u %o') - -# Other common tools: -# /usr/bin/snarf -# /usr/bin/lftpget -c -# /usr/bin/curl - -######################################################################### -# ARCHITECTURE, COMPILE FLAGS -######################################################################### -# -CARCH="@CARCH@" -CHOST="@CHOST@" - -#-- Exclusive: will only run on @CARCH@ -# -march (or -mcpu) builds exclusively for an architecture -# -mtune optimizes for an architecture, but builds for whole processor family -CFLAGS="@CARCHFLAGS@-mtune=generic -O2 -pipe" -CXXFLAGS="@CARCHFLAGS@-mtune=generic -O2 -pipe" -LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed" -#-- Make Flags: change this for DistCC/SMP systems -#MAKEFLAGS="-j2" - -######################################################################### -# BUILD ENVIRONMENT -######################################################################### -# -# Defaults: BUILDENV=(fakeroot !distcc color !ccache) -# A negated environment option will do the opposite of the comments below. -# -#-- fakeroot: Allow building packages as a non-root user -#-- distcc: Use the Distributed C/C++/ObjC compiler -#-- color: Colorize output messages -#-- ccache: Use ccache to cache compilation -# -BUILDENV=(fakeroot !distcc color !ccache) -# -#-- If using DistCC, your MAKEFLAGS will also need modification. In addition, -#-- specify a space-delimited list of hosts running in the DistCC cluster. -#DISTCC_HOSTS="" - -######################################################################### -# GLOBAL PACKAGE OPTIONS -# These are default values for the options=() settings -######################################################################### -# -# Default: OPTIONS=(strip docs libtool emptydirs zipman purge) -# A negated option will do the opposite of the comments below. -# -#-- strip: Strip symbols from binaries/libraries in STRIP_DIRS -#-- docs: Save doc directories specified by DOC_DIRS -#-- libtool: Leave libtool (.la) files in packages -#-- emptydirs: Leave empty directories in packages -#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip -#-- purge: Remove files specified by PURGE_TARGETS -# -OPTIONS=(strip docs libtool emptydirs zipman purge) - -#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512 -INTEGRITY_CHECK=(md5) -#-- Options to be used when stripping binaries. See `man strip' for details. -STRIP_BINARIES="--strip-all" -#-- Options to be used when stripping shared libraries. See `man strip' for details. -STRIP_SHARED="--strip-unneeded" -#-- Options to be used when stripping static libraries. See `man strip' for details. -STRIP_STATIC="--strip-debug" -#-- Manual (man and info) directories to compress (if zipman is specified) -MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info}) -#-- Doc directories to remove (if !docs is specified) -DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc}) -#-- Directories to be searched for the strip option (if strip is specified) -STRIP_DIRS=(bin lib sbin usr/{bin,lib,sbin,local/{bin,lib,sbin}} opt/*/{bin,lib,sbin}) -#-- Files to be removed from all packages (if purge is specified) -PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod) - -######################################################################### -# PACKAGE OUTPUT -######################################################################### -# -# Default: put built package and cached source in build directory -# -#-- Destination: specify a fixed directory where all packages will be placed -#PKGDEST=/home/packages -#-- Source cache: specify a fixed directory where source files will be cached -#SRCDEST=/home/sources -#-- Source packages: specify a fixed directory where all src packages will be placed -#SRCPKGDEST=/home/srcpackages -#-- Packager: name/email of the person or organization building packages -#PACKAGER="John Doe " - -######################################################################### -# EXTENSION DEFAULTS -######################################################################### -# -# WARNING: Do NOT modify these variables unless you know what you are -# doing. -# -PKGEXT='.pkg.tar.xz' -SRCEXT='.src.tar.gz' - -# vim: set ft=sh ts=2 sw=2 et: diff --git a/abs/core/pacman/old/mirrorlist b/abs/core/pacman/old/mirrorlist deleted file mode 100644 index 83e75ae..0000000 --- a/abs/core/pacman/old/mirrorlist +++ /dev/null @@ -1,101 +0,0 @@ -# -# Arch Linux repository mirrorlist -# - -# North America -# - United States -Server = ftp://ftp.archlinux.org/$repo/os/@carch@ -Server = ftp://locke.suu.edu/linux/dist/archlinux/$repo/os/@carch@ -Server = http://archlinux.unixheads.org/$repo/os/@carch@ -Server = ftp://ftp.gtlib.gatech.edu/pub/linux/distributions/archlinux/$repo/os/@carch@ -Server = ftp://mirror.cs.vt.edu/pub/ArchLinux/$repo/os/@carch@ -Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/@carch@ -Server = ftp://ftp.ibiblio.org/pub/linux/distributions/archlinux/$repo/os/@carch@ -Server = http://holmes.umflint.edu/archlinux/$repo/os/@carch@ -Server = http://mirror.neotuli.net/arch/$repo/os/@carch@ -Server = http://mirror.rit.edu/archlinux/$repo/os/@carch@ -Server = http://mirror.umoss.org/archlinux/$repo/os/@carch@ -Server = http://schlunix.org/archlinux/$repo/os/@carch@ -# - Canada -Server = ftp://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/@carch - -# South America -# - Brazil -Server = http://archlinux.c3sl.ufpr.br/$repo/os/@carch@ -Server = ftp://archlinux.c3sl.ufpr.br/archlinux/$repo/os/@carch@ -Server = ftp://ftp.las.ic.unicamp.br/pub/archlinux/$repo/os/@carch@ - -# Europe -# - Austria -Server = ftp://gd.tuwien.ac.at/opsys/linux/archlinux/$repo/os/@carch@ -# - Belgium -Server = ftp://ftp.belnet.be/mirror/archlinux.org/$repo/os/@carch@ -# - Czech Republic -Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/$repo/os/@carch@ -# - Estonia -Server = ftp://ftp.estpak.ee/pub/archlinux/$repo/os/@carch@ -# - France -Server = ftp://mir1.archlinuxfr.org/archlinux/$repo/os/@carch@ -Server = ftp://mir2.archlinuxfr.org/archlinux/$repo/os/@carch@ -Server = ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/archlinux/$repo/os/@carch@ -Server = http://mir.archlinux.fr/$repo/os/@carch@ -Server = ftp://ftp.free.fr/mirrors/ftp.archlinux.org/$repo/os/@carch@ -Server = ftp://ftp.rez-gif.supelec.fr/Linux/archlinux/$repo/os/@carch@ -# - Germany -Server = ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/@carch@ -Server = ftp://ftp5.gwdg.de/pub/linux/archlinux/$repo/os/@carch@ -Server = ftp://ftp.uni-bayreuth.de/pub/linux/archlinux/$repo/os/@carch@ -Server = ftp://ftp.archlinuxppc.org/@carch@/$repo/os/@carch@ -Server = ftp://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/@carch@ -Server = http://ftp.uni-kl.de/pub/linux/archlinux/$repo/os/@carch@ -# - Great Britain -Server = http://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/@carch@ -Server = ftp://mirrors.uk2.net/pub/archlinux/$repo/os/@carch@ -Server = http://archlinux.mirrors.uk2.net/$repo/os/@carch@ -# - Greece -Server = ftp://ftp.ntua.gr/pub/linux/archlinux/$repo/os/@carch@ -# - Hungary -Server = ftp://ftp.mfa.kfki.hu/pub/mirrors/ftp.archlinux.org/$repo/os/@carch@ -# - Ireland -Server = ftp://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/os/@carch@ -# - Italy -Server = ftp://mi.mirror.garr.it/mirrors/archlinux/$repo/os/@carch@ -# - Netherlands -Server = ftp://ftp.nluug.nl/pub/metalab/distributions/archlinux/$repo/os/@carch@ -Server = ftp://ftp.surfnet.nl/pub/os/Linux/distr/archlinux/$repo/os/@carch@ -# - Norway -Server = http://arch.likbilen.com/$repo/os/@carch -# - Poland -Server = ftp://mirror.icis.pcz.pl/archlinux/$repo/os/@carch@ -Server = http://piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/@carch@ -Server = ftp://ftp.piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/@carch@ -Server = http://unix.net.pl/archlinux.org/$repo/os/@carch@ -# - Portugal -Server = ftp://cesium.di.uminho.pt/pub/archlinux/$repo/os/@carch@ -# - Romania -Server = ftp://ftp.iasi.roedu.net/mirrors/archlinux.org/$repo/os/@carch@ -# - Russia -Server = ftp://mirror.yandex.ru/archlinux/$repo/os/@carch@ -Server = http://archlinux.freeside.ru/$repo/os/@carch@ -# - Sweden -Server = ftp://ftp.ds.hj.se/pub/os/linux/archlinux/$repo/os/@carch@ -Server = ftp://ftp.gigabit.nu/$repo/os/@carch@ -# - Switzerland -Server = http://archlinux.puzzle.ch/$repo/os/@carch@ -# - Turkey -Server = http://server.elsistech.com/archlinux/$repo/os/@carch@ -# - Ukraine -Server = ftp://hell.org.ua/archlinux/$repo/os/@carch@ -Server = ftp://ftp.linux.kiev.ua/pub/Linux/ArchLinux/$repo/os/@carch@ - -# Asia -# - Israel -Server = http://mirror.isoc.org.il/pub/archlinux/$repo/os/@carch@ -# - Vietnam -# Domain name is ftp.indochinalinux.com but there are frequent DNS problems -Server = ftp://202.78.230.5/archlinux/$repo/os/@carch@ - -# Australia -Server = ftp://mirror.pacific.net.au/linux/archlinux/$repo/os/@carch@ -Server = ftp://mirror.aarnet.edu.au/pub/archlinux/$repo/os/@carch@ - diff --git a/abs/core/pacman/old/pacman.conf b/abs/core/pacman/old/pacman.conf deleted file mode 100644 index 911c23d..0000000 --- a/abs/core/pacman/old/pacman.conf +++ /dev/null @@ -1,84 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -HoldPkg = pacman glibc -# If upgrades are available for these packages they will be asked for first -SyncFirst = pacman -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#XferCommand = /usr/bin/curl -C - %u > %o -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options (all disabled by default) -#UseSyslog -#ShowSize -#UseDelta -#TotalDownload - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The testing repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -#[testing] -## Add your preferred servers here, they will be used first -#Include = /etc/pacman.d/mirrorlist - -[core] -# Add your preferred servers here, they will be used first -Include = /etc/pacman.d/mirrorlist - -[extra] -# Add your preferred servers here, they will be used first -Include = /etc/pacman.d/mirrorlist - -#[community-testing] -## Add your preferred servers here, they will be used first -#Include = /etc/pacman.d/mirrorlist - -[community] -# Add your preferred servers here, they will be used first -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#Server = file:///home/custompkgs - diff --git a/abs/core/pacman/old/pacman.install b/abs/core/pacman/old/pacman.install deleted file mode 100644 index 294222e..0000000 --- a/abs/core/pacman/old/pacman.install +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh -# arg 1: the new package version -# arg 2: the old package version -post_upgrade() { - # one time stuff for md5sum issue with older pacman versions - if [ "$(vercmp $2 3.0.2)" -lt 0 ]; then - _resetbackups - fi -} - -_resetbackups() { - echo ">>> Performing one-time reset of NoUpgrade md5sums. After this reset" - echo ">>> you are able to remove all NoUpgrade lines of already protected" - echo ">>> files from pacman.conf." - echo ">>>" - - # path variables - pacconf="/etc/pacman.conf" - dbpath="/var/lib/pacman/local" - - # get a list of NoUpgrade files from the user's pacman.conf - echo ">>> Retrieving pacman.conf NoUpgrade list..." - config=$(grep "^NoUpgrade" $pacconf | cut -d'=' -f2) - # add the standard list of files, even if they are already above - config="$config \ - etc/passwd etc/group etc/shadow etc/sudoers \ - etc/fstab etc/raidtab etc/ld.so.conf \ - etc/rc.conf etc/rc.local \ - etc/modprobe.conf etc/modules.conf \ - etc/lilo.conf boot/grub/menu.lst" - - # blank md5sum for use in sed expression - zeroes='00000000000000000000000000000000' - - for file in $config; do - echo ">>> -> finding owner of /$file..." - line=$(LC_ALL=C LANG=C pacman -Qo /$file 2>/dev/null) - # if file is owned by a package, go find its incorrectly stored sum - if [ ! -z "$line" ]; then - # get the name and version of the package owning file - name=$(echo $line | awk '{print $5}') - version=$(echo $line | awk '{print $6}') - # set the path to the backup array holding the md5sum - path="$dbpath/$name-$version/files" - # run a sed on the path to reset the line containing $file - # NOTE: literal tab characters in sed expression after $file - echo ">>> -> resetting sum of /$file..." - sed -i "s#$file [0-9a-fA-F]*#$file $zeroes#" $path - else - echo ">>> -> $file is unowned." - fi - done -} diff --git a/abs/core/pacman/pacman-3.4.1-1-i686.pkg.tar.gz b/abs/core/pacman/pacman-3.4.1-1-i686.pkg.tar.gz deleted file mode 120000 index 5d96387..0000000 --- a/abs/core/pacman/pacman-3.4.1-1-i686.pkg.tar.gz +++ /dev/null @@ -1 +0,0 @@ -/data/pkg_repo/packages/pacman-3.4.1-1-i686.pkg.tar.gz \ No newline at end of file diff --git a/abs/core/pacman/pacman.conf b/abs/core/pacman/pacman.conf index 25ab6b6..0596b7a 100644 --- a/abs/core/pacman/pacman.conf +++ b/abs/core/pacman/pacman.conf @@ -11,13 +11,14 @@ # If you wish to use different paths, uncomment and update the paths. #RootDir = / #DBPath = /var/lib/pacman/ -CacheDir = /data/var/cache/pacman/pkg/ +#CacheDir = /var/cache/pacman/pkg/ #LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ HoldPkg = pacman glibc # If upgrades are available for these packages they will be asked for first SyncFirst = pacman -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #XferCommand = /usr/bin/curl -C - -f %u > %o +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #CleanMethod = KeepInstalled Architecture = auto @@ -26,16 +27,22 @@ Architecture = auto #IgnoreGroup = #NoUpgrade = -NoUpgrade = data/srv/hobbit/etc/bb-hosts -NoUpgrade = etc/func/minion.conf #NoExtract = -# Misc options (all disabled by default) +# Misc options #UseSyslog -#ShowSize #UseDelta #TotalDownload -#CheckSpace +CheckSpace +#VerbosePkgLists + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +#SigLevel = Optional TrustedOnly + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. # # REPOSITORIES @@ -60,56 +67,29 @@ NoUpgrade = etc/func/minion.conf # repo name header and Include lines. You can add preferred servers immediately # after the header, and they will be used before the default mirrors. -[core] -Server = http://linhes.org/repo/$arch/$repo - -[extra] -Server = http://linhes.org/repo/$arch/$repo - -#[chroot-devel] -#Server = http://linhes.org/repo/$arch/$repo - -#[core-testing] -#Server = http://linhes.org/repo/$arch/$repo - -#[extra-testing] -#Server = http://linhes.org/repo/$arch/$repo - #[testing] +#SigLevel = PackageRequired #Include = /etc/pacman.d/mirrorlist -#[core] -#Include = /etc/pacman.d/mirrorlist +[core] +SigLevel = PackageRequired +Include = /etc/pacman.d/mirrorlist -#[extra] -#Include = /etc/pacman.d/mirrorlist +[extra] +SigLevel = PackageRequired +Include = /etc/pacman.d/mirrorlist #[community-testing] +#SigLevel = PackageRequired #Include = /etc/pacman.d/mirrorlist -#[community] -#Include = /etc/pacman.d/mirrorlist +[community] +SigLevel = PackageRequired +Include = /etc/pacman.d/mirrorlist # An example of a custom package repository. See the pacman manpage for # tips on creating your own repositories. #[custom] +#SigLevel = Optional TrustAll #Server = file:///home/custompkgs -########################ARCH DEFAULTS############# -#[ARCH-core] -# Add your preferred servers here, they will be used first -#Server = ftp://ftp.ibiblio.org/pub/linux/distributions/archlinux/$repo/os/i686 - -#[ARCH-extra] -# Add your preferred servers here, they will be used first -#Server = ftp://ftp.ibiblio.org/pub/linux/distributions/archlinux/$repo/os/i686 - -#[community] -# Add your preferred servers here, they will be used first -#Include = /etc/pacman.d/mirrorlist - -# Unstable is disabled by default. To enable, uncomment the following -# two lines. You can add preferred servers immediately after the header, -# and they will be used before the default mirrors. -#[unstable] -#Include = /etc/pacman.d/mirrorlist diff --git a/abs/core/pacman/pacman.conf.x86_64 b/abs/core/pacman/pacman.conf.x86_64 index f76dba2..42321bb 100644 --- a/abs/core/pacman/pacman.conf.x86_64 +++ b/abs/core/pacman/pacman.conf.x86_64 @@ -12,13 +12,13 @@ #RootDir = / #DBPath = /var/lib/pacman/ #CacheDir = /var/cache/pacman/pkg/ -CacheDir = /data/var/cache/pacman/pkg/ #LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ HoldPkg = pacman glibc # If upgrades are available for these packages they will be asked for first SyncFirst = pacman -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #XferCommand = /usr/bin/curl -C - -f %u > %o +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #CleanMethod = KeepInstalled Architecture = auto @@ -29,12 +29,20 @@ Architecture = auto #NoUpgrade = #NoExtract = -# Misc options (all disabled by default) +# Misc options #UseSyslog -#ShowSize #UseDelta #TotalDownload -#CheckSpace +CheckSpace +#VerbosePkgLists + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +#SigLevel = Optional TrustedOnly + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. # # REPOSITORIES @@ -60,30 +68,39 @@ Architecture = auto # after the header, and they will be used before the default mirrors. #[testing] +#SigLevel = PackageRequired #Include = /etc/pacman.d/mirrorlist [core] +SigLevel = PackageRequired Include = /etc/pacman.d/mirrorlist [extra] +SigLevel = PackageRequired Include = /etc/pacman.d/mirrorlist #[community-testing] +#SigLevel = PackageRequired #Include = /etc/pacman.d/mirrorlist [community] +SigLevel = PackageRequired Include = /etc/pacman.d/mirrorlist # If you want to run 32 bit applications on your x86_64 system, # enable the multilib repositories as required here. #[multilib-testing] +#SigLevel = PackageRequired #Include = /etc/pacman.d/mirrorlist #[multilib] +#SigLevel = PackageRequired #Include = /etc/pacman.d/mirrorlist # An example of a custom package repository. See the pacman manpage for # tips on creating your own repositories. #[custom] +#SigLevel = Optional TrustAll #Server = file:///home/custompkgs + diff --git a/abs/core/pacman/pacman.install b/abs/core/pacman/pacman.install index c066733..487819a 100644 --- a/abs/core/pacman/pacman.install +++ b/abs/core/pacman/pacman.install @@ -9,33 +9,22 @@ post_upgrade() { if [ "$(vercmp $2 3.5.0)" -lt 0 ]; then _warnupgrade fi - _updateconf - echo ">>>" - echo ">>> ATTENTION! ATTENTION! ATTENTION!" - echo ">>> /etc/pacman.conf has changed. If you have customized your" - echo ">>> pacman.conf file, please merge your changes into" - echo ">>> /etc/pacman.conf.pacnew. Backup your old pacman.conf and" - echo ">>> then move pacman.conf.pacnew to pacman.conf" - echo ">>>" -} - -_updateconf() { - pacconf="/etc/pacman.conf" - #add SyncFirst - grep -q SyncFirst $pacconf - if [ $? -eq 1 ] - then - sed -i '/\[options\]/ a\SyncFirst = pacman ' $pacconf + if [ ! -f "etc/pacman.d/gnupg/pubring.gpg" ] || [ "$(vercmp $2 4.0.3-2)" -lt 0 ]; then + _check_pubring fi - #remove larch - sed -i '/larch/d' $pacconf +} +post_install() { + _check_pubring } - +_check_pubring() { + echo " >>> Run \`pacman-key --init; pacman-key --populate archlinux\`" + echo " >>> to import the data required by pacman for package verification." + echo " >>> See: https://www.archlinux.org/news/having-pacman-verify-packages" +} _warnupgrade() { - echo ">>>" echo ">>> The pacman database format has changed as of pacman 3.5.0." echo ">>> You will need to run \`pacman-db-upgrade\` as root." echo ">>>" -- cgit v0.12