core/pacman to 4.2.0-5

This commit is contained in:
Kevin Mihelich 2014-12-29 05:11:59 +00:00
parent cbdb22c623
commit 0de64ad34e
5 changed files with 270 additions and 45 deletions

View file

@ -1,4 +1,4 @@
From f1f7a14e173822fb075576c69f8bd4476f5263da Mon Sep 17 00:00:00 2001
From d78f14170b2950fd3a252bec1ecc808a6de433b1 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Sat, 13 Sep 2014 18:58:16 -0600
Subject: [PATCH] Sychronize filesystem
@ -14,10 +14,10 @@ Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org>
1 file changed, 3 insertions(+)
diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c
index 8d4e0e7..886f87b 100644
index e680feb..1e103f2 100644
--- a/lib/libalpm/trans.c
+++ b/lib/libalpm/trans.c
@@ -175,6 +175,9 @@ int SYMEXPORT alpm_trans_commit(alpm_handle_t *handle, alpm_list_t **data)
@@ -211,6 +211,9 @@ int SYMEXPORT alpm_trans_commit(alpm_handle_t *handle, alpm_list_t **data)
trans->state = STATE_COMMITED;
@ -28,5 +28,5 @@ index 8d4e0e7..886f87b 100644
}
--
2.1.0
2.2.1

View file

@ -1,27 +0,0 @@
From 41c8263ba289dac191d7f74faaa62476baf41c28 Mon Sep 17 00:00:00 2001
From: Tobias Powalowski <tpowa@archlinux.org>
Date: Fri, 21 Nov 2014 20:54:58 +1000
Subject: [PATCH] pacman-key: compatibility with gnupg-2.1
GnuPG 2.1 no longer allow empty passphrases by default.
Signed-off-by: Allan McRae <allan@archlinux.org>
---
scripts/pacman-key.sh.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/scripts/pacman-key.sh.in b/scripts/pacman-key.sh.in
index ba8d02e..5ba0ad8 100644
--- a/scripts/pacman-key.sh.in
+++ b/scripts/pacman-key.sh.in
@@ -151,6 +151,7 @@ Key-Usage: sign
Name-Real: Pacman Keyring Master Key
Name-Email: pacman@localhost
Expire-Date: 0
+%no-protection
%commit
%echo Done
EOF
--
2.1.3

View file

@ -4,20 +4,20 @@
# Maintainer: Dave Reisner <dreisner@archlinux.org>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - arch/host/flags for arm and armv7h
# - pacman.conf: architecture=arm/armv7h, added our aur and alarm repos
# - arch/host/flags for arm, armv6h, and armv7h
# - pacman.conf: architecture=arm/armv6h/armv7h, added our aur and alarm repos
# - makepkg.conf: adjusted C/CXX/LDFLAGS
# - patch to sync filesystem after install/remove
pkgname=pacman
pkgver=4.1.2
pkgrel=7
pkgver=4.2.0
pkgrel=5
pkgdesc="A library-based package manager with dependency support"
arch=('i686' 'x86_64')
url="http://www.archlinux.org/pacman/"
license=('GPL')
groups=('base' 'base-devel')
depends=('bash>=4.2.042-2' 'glibc>=2.17-2' 'libarchive>=3.1.2' 'curl>=7.19.4'
depends=('bash' 'glibc' 'libarchive>=3.1.2' 'curl>=7.39.0'
'gpgme' 'pacman-mirrorlist')
checkdepends=('python2' 'fakechroot')
optdepends=('fakeroot: for makepkg usage as normal user')
@ -27,22 +27,24 @@ replaces=('pacman-contrib')
backup=(etc/pacman.conf etc/makepkg.conf)
options=('strip' 'debug')
source=(ftp://ftp.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz{,.sig}
0001-pacman-key-compatibility-with-gnupg-2.1.patch
0001-Sychronize-filesystem.patch
pacman.conf
makepkg.conf)
md5sums=('063c8b0ff6bdf903dc235445525627cd'
makepkg.conf
pacman-4.2.0-roundup.patch)
md5sums=('184ce14f1f326fede72012cca51bba51'
'SKIP'
'd0e015b1bf78cbf9762d9c44ea5f77a9'
'f7f7bd5bdd5f7973955f3af8bbceae61'
'291123878ec33ca8a3020ac85f2e91d1'
'5c491b27bae54d93d6ba972ce0fccfa7'
'1f8d6efc76a395956fdae71927698666')
'c88c41076f26e97c6915d8b967df96e7'
'8b8e478e3b6f785f6fb0029f792cea38')
validpgpkeys=('6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD') # Allan McRae <allan@archlinux.org>
prepare() {
cd $srcdir/$pkgname-$pkgver
patch -p1 -i ../0001-Sychronize-filesystem.patch
patch -p1 -i $srcdir/0001-pacman-key-compatibility-with-gnupg-2.1.patch
# v4.2.0-13-gacc639a
patch -p1 -i $srcdir/pacman-4.2.0-roundup.patch
}
build() {

View file

@ -19,6 +19,13 @@ DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %
# /usr/bin/lftpget -c
# /usr/bin/wget
#-- The the package required by makepkg to download VCS sources
# Format: 'protocol::package'
VCSCLIENTS=('bzr::bzr'
'git::git'
'hg::mercurial'
'svn::subversion')
#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
@ -43,7 +50,7 @@ DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
# BUILD ENVIRONMENT
#########################################################################
#
# Defaults: BUILDENV=(fakeroot !distcc color !ccache check !sign)
# Defaults: BUILDENV=(!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
@ -53,7 +60,7 @@ DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
#-- check: Run the check() function if present in the PKGBUILD
#-- sign: Generate PGP signature file
#
BUILDENV=(fakeroot !distcc color !ccache check !sign)
BUILDENV=(!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.

View file

@ -0,0 +1,243 @@
diff --git a/contrib/paclist.sh.in b/contrib/paclist.sh.in
index 1c10b32..f4fd540 100644
--- a/contrib/paclist.sh.in
+++ b/contrib/paclist.sh.in
@@ -31,7 +31,7 @@ if ! type gettext &>/dev/null; then
fi
usage() {
- printf "%s (pacman) v%s\n" "${myname}" "myver"
+ printf "%s (pacman) v%s\n" "${myname}" "${myver}"
echo
printf "List all packages installed from a given repository\n" "${myname}"
echo
diff --git a/etc/makepkg.conf.in b/etc/makepkg.conf.in
index 712ca60..9ed7ef9 100644
--- a/etc/makepkg.conf.in
+++ b/etc/makepkg.conf.in
@@ -19,6 +19,13 @@ DLAGENTS=('ftp::/usr/bin/curl -qfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o
# /usr/bin/lftpget -c
# /usr/bin/wget
+#-- The the package required by makepkg to download VCS sources
+# Format: 'protocol::package'
+VCSCLIENTS=('bzr::bzr'
+ 'git::git'
+ 'hg::mercurial'
+ 'svn::subversion')
+
#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
diff --git a/lib/libalpm/log.c b/lib/libalpm/log.c
index d232bcc..9af5e84 100644
--- a/lib/libalpm/log.c
+++ b/lib/libalpm/log.c
@@ -52,7 +52,7 @@ int SYMEXPORT alpm_logaction(alpm_handle_t *handle, const char *prefix,
int fd;
do {
fd = open(handle->logfile, O_WRONLY | O_APPEND | O_CREAT | O_CLOEXEC,
- 0000);
+ 0644);
} while(fd == -1 && errno == EINTR);
if(fd >= 0) {
handle->logstream = fdopen(fd, "a");
diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c
index e2997f6..d9ed3d3 100644
--- a/lib/libalpm/package.c
+++ b/lib/libalpm/package.c
@@ -574,7 +574,7 @@ int _alpm_pkg_dup(alpm_pkg_t *pkg, alpm_pkg_t **new_ptr)
newpkg->installdate = pkg->installdate;
STRDUP(newpkg->packager, pkg->packager, goto cleanup);
STRDUP(newpkg->md5sum, pkg->md5sum, goto cleanup);
- STRDUP(newpkg->sha256sum, pkg->md5sum, goto cleanup);
+ STRDUP(newpkg->sha256sum, pkg->sha256sum, goto cleanup);
STRDUP(newpkg->arch, pkg->arch, goto cleanup);
newpkg->size = pkg->size;
newpkg->isize = pkg->isize;
diff --git a/scripts/makepkg-template.pl.in b/scripts/makepkg-template.pl.in
index 6e6d944..d9da167 100755
--- a/scripts/makepkg-template.pl.in
+++ b/scripts/makepkg-template.pl.in
@@ -70,7 +70,7 @@ sub parse_template_line {
foreach my $element (@elements) {
my ($key, $val) = ($element =~ /^([a-z0-9]+)=(.*)$/);
unless ($key and $val) {
- die gettext("invalid key/value pair\n%s:%s: %s"),
+ die gettext("invalid key/value pair\n"),
"$filename:$linenumber: $line";
}
$values{$key} = $val;
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 33dff24..18b2822 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1317,47 +1317,41 @@ verify_integrity_sums() {
fi
}
-have_sources() {
- local a
-
- (( ${#source[*]} )) && return 0
+check_checksums() {
+ local integ a
+ declare -A correlation
+ (( SKIPCHECKSUMS )) && return 0
+ # Initialize a map which we'll use to verify that every source array has at
+ # least some kind of checksum array associated with it.
+ (( ${#source[*]} )) && correlation['source']=1
case $1 in
all)
for a in "${arch[@]}"; do
- array_build _ source_"$a" && return 0
+ array_build _ source_"$a" && correlation["source_$a"]=1
done
;;
*)
- array_build _ source_"$CARCH" && return 0
+ array_build _ source_"$CARCH" && correlation["source_$CARCH"]=1
;;
esac
- return 1
-}
-
-check_checksums() {
- (( SKIPCHECKSUMS )) && return 0
- have_sources "$1" || return 0
-
- local correlation=0
- local integ a
for integ in "${known_hash_algos[@]}"; do
- verify_integrity_sums "$integ" && correlation=1
+ verify_integrity_sums "$integ" && unset "correlation[source]"
case $1 in
all)
for a in "${arch[@]}"; do
- verify_integrity_sums "$integ" "$a" && correlation=1
+ verify_integrity_sums "$integ" "$a" && unset "correlation[source_$a]"
done
;;
*)
- verify_integrity_sums "$integ" "$CARCH" && correlation=1
+ verify_integrity_sums "$integ" "$CARCH" && unset "correlation[source_$CARCH]"
;;
esac
done
- if (( ! correlation )); then
+ if (( ${#correlation[*]} )); then
error "$(gettext "Integrity checks are missing.")"
exit 1 # TODO: error code
fi
@@ -1627,7 +1621,10 @@ merge_arch_attrs() {
source_buildfile() {
source_safe "$@"
- merge_arch_attrs
+
+ if (( !SOURCEONLY )); then
+ merge_arch_attrs
+ fi
}
run_function_safe() {
@@ -2142,8 +2139,6 @@ write_pkginfo() {
local size="$(@DUPATH@ @DUFLAGS@)"
size="$(( ${size%%[^0-9]*} * 1024 ))"
- merge_arch_attrs
-
msg2 "$(gettext "Generating %s file...")" ".PKGINFO"
printf "# Generated by makepkg %s\n" "$makepkg_version"
printf "# using %s\n" "$(fakeroot -v)"
@@ -2896,7 +2891,7 @@ get_vcsclient() {
}
check_vcs_software() {
- local ret=0
+ local all_sources all_deps deps ret=0
if (( SOURCEONLY == 1 )); then
# we will not download VCS sources
@@ -2908,7 +2903,17 @@ check_vcs_software() {
return $ret
fi
- for netfile in ${source[@]}; do
+ # we currently only use global depends/makedepends arrays for --syncdeps
+ for attr in depends makedepends; do
+ pkgbuild_get_attribute "$pkg" "$attr" 1 'deps'
+ all_deps+=("${deps[@]}")
+
+ pkgbuild_get_attribute "$pkg" "${attr}_$CARCH" 1 'deps'
+ all_deps+=("${deps[@]}")
+ done
+
+ get_all_sources_for_arch 'all_sources'
+ for netfile in ${all_sources[@]}; do
local proto=$(get_protocol "$netfile")
case $proto in
@@ -2921,7 +2926,7 @@ check_vcs_software() {
uninstalled="$(set +E; check_deps $client)" || exit 1
# if not installed, check presence in depends or makedepends
if [[ -n "$uninstalled" ]] && (( ! NODEPS || ( VERIFYSOURCE && !DEP_BIN ) )); then
- if ! in_array "$client" ${depends[@]} ${makedepends[@]}; then
+ if ! in_array "$client" ${all_deps[@]}; then
error "$(gettext "Cannot find the %s package needed to handle %s sources.")" \
"$client" "${proto%%+*}"
ret=1
@@ -3435,7 +3440,7 @@ CARCH=${_CARCH:-$CARCH}
if (( ! INFAKEROOT )); then
if (( EUID == 0 )); then
error "$(gettext "Running %s as root is not allowed as it can cause permanent,\n\
-catastrophic damage to your system.")"
+catastrophic damage to your system.")" "makepkg"
exit 1 # $E_USER_ABORT
fi
else
@@ -3597,7 +3602,7 @@ if (( SOURCEONLY )); then
download_sources allarch
elif ( (( ! SKIPCHECKSUMS )) || \
( (( ! SKIPPGPCHECK )) && source_has_signatures ) ); then
- download_sources novcs
+ download_sources allarch novcs
fi
check_source_integrity all
cd_safe "$startdir"
diff --git a/scripts/pacman-db-upgrade.sh.in b/scripts/pacman-db-upgrade.sh.in
index 7bb277b..7d01bce 100644
--- a/scripts/pacman-db-upgrade.sh.in
+++ b/scripts/pacman-db-upgrade.sh.in
@@ -19,6 +19,9 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
+# Avoid creating world-unreadable files
+umask 022
+
# gettext initialization
export TEXTDOMAIN='pacman-scripts'
export TEXTDOMAINDIR='@localedir@'
@@ -167,6 +170,8 @@ if [[ -z "$db_version" ]]; then
fi
# pacman 4.1 to 4.2 upgrade - remove directory symlink support
+ msg "$(gettext "Pre-4.2 database format detected - upgrading...")"
+
dirlist=()
unset GREP_OPTIONS
@@ -180,8 +185,6 @@ if [[ -z "$db_version" ]]; then
done)
if [[ ${#dirlist[@]} != 0 ]]; then
- msg "$(gettext "Pre-4.2 database format detected - upgrading...")"
-
pacroot="$(resolve_dir "$pacroot")"
for dir in "${dirlist[@]}"; do