mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-01-27 23:44:04 +00:00
New pacman
This commit is contained in:
parent
773c365ba8
commit
603d7de082
6 changed files with 71 additions and 273 deletions
BIN
core/pacman/.DS_Store
vendored
BIN
core/pacman/.DS_Store
vendored
Binary file not shown.
|
@ -0,0 +1,32 @@
|
||||||
|
From dc817a2061699cd1f33ca93f0d93a1fbc2f33ea1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Allan McRae <allan@archlinux.org>
|
||||||
|
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 <allan@archlinux.org>
|
||||||
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
||||||
|
---
|
||||||
|
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
|
||||||
|
|
53
core/pacman/PKGBUILD
Normal file → Executable file
53
core/pacman/PKGBUILD
Normal file → Executable file
|
@ -1,40 +1,44 @@
|
||||||
# Maintainer: Mike Staszel <mikestaszel@plugboxlinux.org>
|
# Maintainer: Mike Staszel <mikestaszel@plugboxlinux.org>
|
||||||
|
# Maintainer: Aaron Griffin <aaron@archlinux.org>
|
||||||
|
# Maintainer: Dan McGee <dan@archlinux.org>
|
||||||
|
|
||||||
|
# Plugbox changes:
|
||||||
|
# - pacman.conf
|
||||||
|
# - makepkg.conf with ARM stuff
|
||||||
|
|
||||||
pkgname=pacman
|
pkgname=pacman
|
||||||
pkgver=3.3.3
|
pkgver=3.4.0
|
||||||
pkgrel=5
|
pkgrel=2
|
||||||
pkgdesc="A library-based package manager with dependency support"
|
pkgdesc="A library-based package manager with dependency support"
|
||||||
arch=('arm')
|
arch=('arm')
|
||||||
url="http://www.archlinux.org/pacman/"
|
url="http://www.archlinux.org/pacman/"
|
||||||
license=('GPL')
|
license=('GPL')
|
||||||
groups=('base')
|
groups=('base')
|
||||||
depends=('bash' 'libarchive>=2.7.1' 'libfetch>=2.25' 'pacman-mirrorlist')
|
depends=('bash' 'libarchive>=2.7.1' 'libfetch>=2.25' 'pacman-mirrorlist')
|
||||||
optdepends=('fakeroot: for makepkg usage as normal user'
|
optdepends=('fakeroot: for makepkg usage as normal user')
|
||||||
'python: for rankmirrors script usage')
|
|
||||||
backup=(etc/pacman.conf etc/makepkg.conf)
|
backup=(etc/pacman.conf etc/makepkg.conf)
|
||||||
install=pacman.install
|
install=pacman.install
|
||||||
options=(!libtool)
|
options=(!libtool)
|
||||||
source=(ftp://ftp.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz
|
source=(ftp://ftp.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz
|
||||||
pacman.conf
|
pacman.conf
|
||||||
makepkg.conf
|
makepkg.conf
|
||||||
vercmp.patch
|
0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch)
|
||||||
completion.patch)
|
md5sums=('50ad71be1faaad84842c576e239d1bb5'
|
||||||
md5sums=('a8cef73d68e2a4c3a46fb46c33210719'
|
|
||||||
'8a1eea46c9af940a8812dfb4bbbd159d'
|
'8a1eea46c9af940a8812dfb4bbbd159d'
|
||||||
'ce00f190714c02ef26117ecfdf5fa296'
|
'ce00f190714c02ef26117ecfdf5fa296'
|
||||||
'84129116c61c8a7cad03a5ae5d80aee5'
|
'f8c4a3cc7702a7a70d177659441495c5')
|
||||||
'7eddda58bf55809e6bde14b446e41a15')
|
sha256sums=('cd80e206ee653ce337555c73b7064088e672e9341245317fe09dc52d06bff3c3'
|
||||||
|
'97fb68536c1179a7de52dfb8a107c6e9bf3a71eaa6a98d6ae74dc224d4ca5838'
|
||||||
|
'3a60e1f895c90c8e74f5ca389fa05fb3328745e9873c5452b8cd1b2e68bee418'
|
||||||
|
'99f1d108f930b134cfb4c1ca8c86cd282fe9efb69de39cd747218f3d448dda44')
|
||||||
|
|
||||||
# keep an upgrade path for older installations
|
# keep an upgrade path for older installations
|
||||||
PKGEXT='.pkg.tar.gz'
|
PKGEXT='.pkg.tar.gz'
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
cd $srcdir/$pkgname-$pkgver
|
cd $srcdir/$pkgname-$pkgver
|
||||||
# avoid linking vercmp against libalpm as this might be broken during a transaction
|
patch -Np1 < $srcdir/0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch
|
||||||
patch -p0 -i $srcdir/vercmp.patch || return 1
|
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-doc
|
||||||
# fix completion for .pkg.tar.xz pacakges (included in next upstream release)
|
|
||||||
patch -p1 -i $srcdir/completion.patch || return 1
|
|
||||||
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
|
|
||||||
make || return 1
|
make || return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,6 +51,27 @@ package() {
|
||||||
install -m644 $srcdir/pacman.conf $pkgdir/etc/
|
install -m644 $srcdir/pacman.conf $pkgdir/etc/
|
||||||
install -m644 $srcdir/makepkg.conf $pkgdir/etc/
|
install -m644 $srcdir/makepkg.conf $pkgdir/etc/
|
||||||
|
|
||||||
|
# Plugbox wants to be old-fashioned and just use their
|
||||||
|
# files instead of letting sed modify them, so skip the part below
|
||||||
|
|
||||||
|
# # 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
|
# install completion files
|
||||||
mkdir -p $pkgdir/etc/bash_completion.d/
|
mkdir -p $pkgdir/etc/bash_completion.d/
|
||||||
install -m644 contrib/bash_completion $pkgdir/etc/bash_completion.d/pacman
|
install -m644 contrib/bash_completion $pkgdir/etc/bash_completion.d/pacman
|
||||||
|
|
|
@ -1,68 +0,0 @@
|
||||||
From d85421ec62cdcd0b4b1f162b9908dc3eb0b704b4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pierre Schmitz <pierre@archlinux.de>
|
|
||||||
Date: Thu, 18 Feb 2010 04:18:10 +0000
|
|
||||||
Subject: contrib/*_completion: match *.pkg.tar.*
|
|
||||||
|
|
||||||
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
|
|
||||||
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
||||||
---
|
|
||||||
diff --git a/contrib/bash_completion b/contrib/bash_completion
|
|
||||||
index 62e5bc9..a231eb6 100644
|
|
||||||
--- a/contrib/bash_completion
|
|
||||||
+++ b/contrib/bash_completion
|
|
||||||
@@ -321,7 +321,7 @@ _pacman ()
|
|
||||||
case "${op}" in
|
|
||||||
U)
|
|
||||||
COMPREPLY=( $( compgen -d -- "$cur" ) \
|
|
||||||
- $( compgen -f -X '!*.pkg.tar.gz' -- "$cur" ) )
|
|
||||||
+ $( compgen -f -X '!*.pkg.tar.*' -- "$cur" ) )
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
h|V)
|
|
||||||
@@ -336,7 +336,7 @@ _pacman ()
|
|
||||||
$( compgen -f -- "$cur" ) )
|
|
||||||
elif _instring $mod p; then
|
|
||||||
COMPREPLY=( $( compgen -d -- "$cur" ) \
|
|
||||||
- $( compgen -f -X '!*.pkg.tar.gz' -- "$cur" ) )
|
|
||||||
+ $( compgen -f -X '!*.pkg.tar.*' -- "$cur" ) )
|
|
||||||
elif _instring $mod u; then
|
|
||||||
COMPREPLY=''
|
|
||||||
return 0
|
|
||||||
diff --git a/contrib/zsh_completion b/contrib/zsh_completion
|
|
||||||
index 2f43d9b..01b3c44 100644
|
|
||||||
--- a/contrib/zsh_completion
|
|
||||||
+++ b/contrib/zsh_completion
|
|
||||||
@@ -32,7 +32,7 @@ _pacman_opts_common=(
|
|
||||||
_pacman_opts_pkgfile=(
|
|
||||||
'-d[Skip dependency checks]'
|
|
||||||
'-f[Overwrite conflicting files]'
|
|
||||||
- '*:package file:_files -g "*.pkg.tar.gz(.)"'
|
|
||||||
+ '*:package file:_files -g "*.pkg.tar.*(.)"'
|
|
||||||
)
|
|
||||||
|
|
||||||
# options for passing to _arguments: subactions for --query command
|
|
||||||
@@ -120,7 +120,7 @@ _pacman_action_query() {
|
|
||||||
_arguments -s : \
|
|
||||||
"$_pacman_opts_common[@]" \
|
|
||||||
"$_pacman_opts_query_modifiers[@]" \
|
|
||||||
- '*:package file:_files -g "*.pkg.tar.gz"'
|
|
||||||
+ '*:package file:_files -g "*.pkg.tar.*"'
|
|
||||||
;;
|
|
||||||
query_group)
|
|
||||||
_arguments -s : \
|
|
||||||
@@ -295,11 +295,11 @@ _pacman() {
|
|
||||||
"$_pacman_opts_query_modifiers[@]" \
|
|
||||||
'*:package file:_files'
|
|
||||||
;;
|
|
||||||
- -Q*p*) # file *.pkg.tar.gz
|
|
||||||
+ -Q*p*) # file *.pkg.tar.*
|
|
||||||
_arguments -s : \
|
|
||||||
"$_pacman_opts_common[@]" \
|
|
||||||
"$_pacman_opts_query_modifiers[@]" \
|
|
||||||
- '*:package file:_files -g "*.pkg.tar.gz"'
|
|
||||||
+ '*:package file:_files -g "*.pkg.tar.*"'
|
|
||||||
;;
|
|
||||||
-Q*) _pacman_action_query ;;
|
|
||||||
-R*) _pacman_action_remove ;;
|
|
||||||
--
|
|
||||||
cgit v0.8.3.1-3-ga650
|
|
0
core/pacman/pacman.install
Normal file → Executable file
0
core/pacman/pacman.install
Normal file → Executable file
|
@ -1,191 +0,0 @@
|
||||||
--- src/util/vercmp.c 2009-09-30 03:38:22.000000000 +0200
|
|
||||||
+++ src/util/vercmp.c 2010-04-07 18:49:13.659173306 +0200
|
|
||||||
@@ -18,17 +18,184 @@
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
-#include "config.h"
|
|
||||||
-
|
|
||||||
#include <stdio.h> /* printf */
|
|
||||||
+#include <stdlib.h> /* malloc/free */
|
|
||||||
#include <string.h> /* strncpy */
|
|
||||||
|
|
||||||
-#include <alpm.h>
|
|
||||||
-
|
|
||||||
#define BASENAME "vercmp"
|
|
||||||
|
|
||||||
#define MAX_LEN 255
|
|
||||||
|
|
||||||
+/** Compare two version strings and determine which one is 'newer'.
|
|
||||||
+ * Returns a value comparable to the way strcmp works. Returns 1
|
|
||||||
+ * if a is newer than b, 0 if a and b are the same version, or -1
|
|
||||||
+ * if b is newer than a.
|
|
||||||
+ *
|
|
||||||
+ * This function has been adopted from the rpmvercmp function located
|
|
||||||
+ * at lib/rpmvercmp.c, and was most recently updated against rpm
|
|
||||||
+ * version 4.4.2.3. Small modifications have been made to make it more
|
|
||||||
+ * consistent with the libalpm coding style.
|
|
||||||
+ *
|
|
||||||
+ * Keep in mind that the pkgrel is only compared if it is available
|
|
||||||
+ * on both versions handed to this function. For example, comparing
|
|
||||||
+ * 1.5-1 and 1.5 will yield 0; comparing 1.5-1 and 1.5-2 will yield
|
|
||||||
+ * -1 as expected. This is mainly for supporting versioned dependencies
|
|
||||||
+ * that do not include the pkgrel.
|
|
||||||
+ */
|
|
||||||
+static int alpm_pkg_vercmp(const char *a, const char *b)
|
|
||||||
+{
|
|
||||||
+ char oldch1, oldch2;
|
|
||||||
+ char *str1, *str2;
|
|
||||||
+ char *ptr1, *ptr2;
|
|
||||||
+ char *one, *two;
|
|
||||||
+ int rc;
|
|
||||||
+ int isnum;
|
|
||||||
+ int ret = 0;
|
|
||||||
+
|
|
||||||
+ /* libalpm added code. ensure our strings are not null */
|
|
||||||
+ if(!a) {
|
|
||||||
+ if(!b) return(0);
|
|
||||||
+ return(-1);
|
|
||||||
+ }
|
|
||||||
+ if(!b) return(1);
|
|
||||||
+
|
|
||||||
+ /* easy comparison to see if versions are identical */
|
|
||||||
+ if(strcmp(a, b) == 0) return(0);
|
|
||||||
+
|
|
||||||
+ str1 = strdup(a);
|
|
||||||
+ str2 = strdup(b);
|
|
||||||
+
|
|
||||||
+ one = str1;
|
|
||||||
+ two = str2;
|
|
||||||
+
|
|
||||||
+ /* loop through each version segment of str1 and str2 and compare them */
|
|
||||||
+ while(*one && *two) {
|
|
||||||
+ while(*one && !isalnum((int)*one)) one++;
|
|
||||||
+ while(*two && !isalnum((int)*two)) two++;
|
|
||||||
+
|
|
||||||
+ /* If we ran to the end of either, we are finished with the loop */
|
|
||||||
+ if(!(*one && *two)) break;
|
|
||||||
+
|
|
||||||
+ ptr1 = one;
|
|
||||||
+ ptr2 = two;
|
|
||||||
+
|
|
||||||
+ /* grab first completely alpha or completely numeric segment */
|
|
||||||
+ /* leave one and two pointing to the start of the alpha or numeric */
|
|
||||||
+ /* segment and walk ptr1 and ptr2 to end of segment */
|
|
||||||
+ if(isdigit((int)*ptr1)) {
|
|
||||||
+ while(*ptr1 && isdigit((int)*ptr1)) ptr1++;
|
|
||||||
+ while(*ptr2 && isdigit((int)*ptr2)) ptr2++;
|
|
||||||
+ isnum = 1;
|
|
||||||
+ } else {
|
|
||||||
+ while(*ptr1 && isalpha((int)*ptr1)) ptr1++;
|
|
||||||
+ while(*ptr2 && isalpha((int)*ptr2)) ptr2++;
|
|
||||||
+ isnum = 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* save character at the end of the alpha or numeric segment */
|
|
||||||
+ /* so that they can be restored after the comparison */
|
|
||||||
+ oldch1 = *ptr1;
|
|
||||||
+ *ptr1 = '\0';
|
|
||||||
+ oldch2 = *ptr2;
|
|
||||||
+ *ptr2 = '\0';
|
|
||||||
+
|
|
||||||
+ /* this cannot happen, as we previously tested to make sure that */
|
|
||||||
+ /* the first string has a non-null segment */
|
|
||||||
+ if (one == ptr1) {
|
|
||||||
+ ret = -1; /* arbitrary */
|
|
||||||
+ goto cleanup;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* take care of the case where the two version segments are */
|
|
||||||
+ /* different types: one numeric, the other alpha (i.e. empty) */
|
|
||||||
+ /* numeric segments are always newer than alpha segments */
|
|
||||||
+ /* XXX See patch #60884 (and details) from bugzilla #50977. */
|
|
||||||
+ if (two == ptr2) {
|
|
||||||
+ ret = isnum ? 1 : -1;
|
|
||||||
+ goto cleanup;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (isnum) {
|
|
||||||
+ /* this used to be done by converting the digit segments */
|
|
||||||
+ /* to ints using atoi() - it's changed because long */
|
|
||||||
+ /* digit segments can overflow an int - this should fix that. */
|
|
||||||
+
|
|
||||||
+ /* throw away any leading zeros - it's a number, right? */
|
|
||||||
+ while (*one == '0') one++;
|
|
||||||
+ while (*two == '0') two++;
|
|
||||||
+
|
|
||||||
+ /* whichever number has more digits wins */
|
|
||||||
+ if (strlen(one) > strlen(two)) {
|
|
||||||
+ ret = 1;
|
|
||||||
+ goto cleanup;
|
|
||||||
+ }
|
|
||||||
+ if (strlen(two) > strlen(one)) {
|
|
||||||
+ ret = -1;
|
|
||||||
+ goto cleanup;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* strcmp will return which one is greater - even if the two */
|
|
||||||
+ /* segments are alpha or if they are numeric. don't return */
|
|
||||||
+ /* if they are equal because there might be more segments to */
|
|
||||||
+ /* compare */
|
|
||||||
+ rc = strcmp(one, two);
|
|
||||||
+ if (rc) {
|
|
||||||
+ ret = rc < 1 ? -1 : 1;
|
|
||||||
+ goto cleanup;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* restore character that was replaced by null above */
|
|
||||||
+ *ptr1 = oldch1;
|
|
||||||
+ one = ptr1;
|
|
||||||
+ *ptr2 = oldch2;
|
|
||||||
+ two = ptr2;
|
|
||||||
+
|
|
||||||
+ /* libalpm added code. check if version strings have hit the pkgrel
|
|
||||||
+ * portion. depending on which strings have hit, take correct action.
|
|
||||||
+ * this is all based on the premise that we only have one dash in
|
|
||||||
+ * the version string, and it separates pkgver from pkgrel. */
|
|
||||||
+ if(*ptr1 == '-' && *ptr2 == '-') {
|
|
||||||
+ /* no-op, continue comparing since we are equivalent throughout */
|
|
||||||
+ } else if(*ptr1 == '-') {
|
|
||||||
+ /* ptr1 has hit the pkgrel and ptr2 has not. continue version
|
|
||||||
+ * comparison after stripping the pkgrel from ptr1. */
|
|
||||||
+ *ptr1 = '\0';
|
|
||||||
+ } else if(*ptr2 == '-') {
|
|
||||||
+ /* ptr2 has hit the pkgrel and ptr1 has not. continue version
|
|
||||||
+ * comparison after stripping the pkgrel from ptr2. */
|
|
||||||
+ *ptr2 = '\0';
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* this catches the case where all numeric and alpha segments have */
|
|
||||||
+ /* compared identically but the segment separating characters were */
|
|
||||||
+ /* different */
|
|
||||||
+ if ((!*one) && (!*two)) {
|
|
||||||
+ ret = 0;
|
|
||||||
+ goto cleanup;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* the final showdown. we never want a remaining alpha string to
|
|
||||||
+ * beat an empty string. the logic is a bit weird, but:
|
|
||||||
+ * - if one is empty and two is not an alpha, two is newer.
|
|
||||||
+ * - if one is an alpha, two is newer.
|
|
||||||
+ * - otherwise one is newer.
|
|
||||||
+ * */
|
|
||||||
+ if ( ( !*one && !isalpha((int)*two) )
|
|
||||||
+ || isalpha((int)*one) ) {
|
|
||||||
+ ret = -1;
|
|
||||||
+ } else {
|
|
||||||
+ ret = 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+cleanup:
|
|
||||||
+ free(str1);
|
|
||||||
+ free(str2);
|
|
||||||
+ return(ret);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
static void usage()
|
|
||||||
{
|
|
||||||
fprintf(stderr, "usage: %s <ver1> <ver2>\n\n", BASENAME);
|
|
Loading…
Reference in a new issue