diff --git a/core/filesystem/PKGBUILD b/core/filesystem/PKGBUILD index 83cf39542..13b4aa048 100644 --- a/core/filesystem/PKGBUILD +++ b/core/filesystem/PKGBUILD @@ -2,7 +2,7 @@ pkgname=filesystem pkgver=2010.02 -pkgrel=2 +pkgrel=4 pkgdesc="Base filesystem" arch=('arm') license=('GPL') @@ -24,13 +24,13 @@ md5sums=('75c7e1770305e1f3b75c52785c137611' '6e488ffecc8ba142c0cf7e2d7aeb832e' '8a9042a2cedf6b6b47eb8973f14289cb' '46bc1c4b941f19c1505102bb5bbddb8c' - 'b8e469965028271eeb533d723b028cf0' + 'ef40305da5803ca69d22e428ffc2ab9b' 'e5d8323a4dbee7a6d0d2a19cbf4b819f' '81b3cb42a6ddabc2ed2310511ee9c859' 'd41d8cd98f00b204e9800998ecf8427e' '6f48288b6fcaf0065fcb7b0e525413e0' '40dac0de4c6b99c8ca97effbd7527c84' - 'ab9c2a40eba287b2918589ab8e0b2fbf' + '5340b9287b71ffe9d4d99510bffe933f' 'f436d2e0ed02b7b73bd10c6693e95ac3' '65d78e621ed69eed69f854c3ee2e5942' 'f7ba22b78c5d2b53f86227aa2447e7ea' @@ -90,4 +90,8 @@ build() # Add ld.so.conf.d mkdir -p $pkgdir/etc/ld.so.conf.d + + # Prevent pacman from removing directory (FS#16886) + mkdir ${pkgdir}/var/empty + touch ${pkgdir}/var/empty/.keep } diff --git a/core/filesystem/filesystem.install b/core/filesystem/filesystem.install index 92b336f23..88b2012ae 100644 --- a/core/filesystem/filesystem.install +++ b/core/filesystem/filesystem.install @@ -57,4 +57,11 @@ post_upgrade() { echo "adding new group: scanner" usr/sbin/groupadd -g 96 scanner >/dev/null fi + if [ ! "`grep ^rfkill: etc/group`" ]; then + echo "adding new group: rfkill" + usr/sbin/groupadd -g 24 rfkill >/dev/null + fi + + grep -q '^include /etc/ld.so.conf.d/\*.conf$' etc/ld.so.conf \ + || echo 'include /etc/ld.so.conf.d/*.conf' >> etc/ld.so.conf } diff --git a/core/filesystem/fstab b/core/filesystem/fstab index 4d00c9235..a23e7955b 100644 --- a/core/filesystem/fstab +++ b/core/filesystem/fstab @@ -2,5 +2,5 @@ # /etc/fstab: static file system information # # -none /dev/pts devpts defaults 0 0 -none /dev/shm tmpfs nodev,nosuid 0 0 +devpts /dev/pts devpts defaults 0 0 +shm /dev/shm tmpfs nodev,nosuid 0 0 diff --git a/core/filesystem/gshadow b/core/filesystem/gshadow index 30733e3ab..a6d78a33f 100644 --- a/core/filesystem/gshadow +++ b/core/filesystem/gshadow @@ -11,7 +11,9 @@ kmem::: wheel:::root ftp::: mail::: +uucp::: log:::root +locate::: smmsp::: http::: games::: diff --git a/core/pacman/PKGBUILD b/core/pacman/PKGBUILD index 7167e0632..725030f44 100644 --- a/core/pacman/PKGBUILD +++ b/core/pacman/PKGBUILD @@ -1,9 +1,8 @@ -# Maintainer: Aaron Griffin -# Maintainer: Dan McGee +# Maintainer: Mike Staszel pkgname=pacman pkgver=3.3.3 -pkgrel=2 +pkgrel=5 pkgdesc="A library-based package manager with dependency support" arch=('arm') url="http://www.archlinux.org/pacman/" @@ -12,19 +11,29 @@ groups=('base') depends=('bash' 'libarchive>=2.7.1' 'libfetch>=2.25' 'pacman-mirrorlist') optdepends=('fakeroot: for makepkg usage as normal user' 'python: for rankmirrors script usage') -backup=(etc/makepkg.conf) +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) + makepkg.conf + vercmp.patch + completion.patch) md5sums=('a8cef73d68e2a4c3a46fb46c33210719' '8a1eea46c9af940a8812dfb4bbbd159d' - 'ce00f190714c02ef26117ecfdf5fa296') + 'ce00f190714c02ef26117ecfdf5fa296' + '84129116c61c8a7cad03a5ae5d80aee5' + '7eddda58bf55809e6bde14b446e41a15') + +# keep an upgrade path for older installations +PKGEXT='.pkg.tar.gz' build() { cd $srcdir/$pkgname-$pkgver - + # avoid linking vercmp against libalpm as this might be broken during a transaction + patch -p0 -i $srcdir/vercmp.patch || return 1 + # 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 } diff --git a/core/pacman/completion.patch b/core/pacman/completion.patch new file mode 100644 index 000000000..6ff04c046 --- /dev/null +++ b/core/pacman/completion.patch @@ -0,0 +1,68 @@ +From d85421ec62cdcd0b4b1f162b9908dc3eb0b704b4 Mon Sep 17 00:00:00 2001 +From: Pierre Schmitz +Date: Thu, 18 Feb 2010 04:18:10 +0000 +Subject: contrib/*_completion: match *.pkg.tar.* + +Signed-off-by: Pierre Schmitz +Signed-off-by: Dan McGee +--- +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 diff --git a/core/pacman/vercmp.patch b/core/pacman/vercmp.patch new file mode 100644 index 000000000..e6cae4d1a --- /dev/null +++ b/core/pacman/vercmp.patch @@ -0,0 +1,191 @@ +--- 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 . + */ + +-#include "config.h" +- + #include /* printf */ ++#include /* malloc/free */ + #include /* strncpy */ + +-#include +- + #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 \n\n", BASENAME); diff --git a/core/uboot-pogo/PKGBUILD b/core/uboot-pogo/PKGBUILD index 43c2f023b..324c2bc65 100644 --- a/core/uboot-pogo/PKGBUILD +++ b/core/uboot-pogo/PKGBUILD @@ -1,22 +1,12 @@ -# Maintainer: Ian Botley +# Maintainer: Ian Botley pkgname=u-boot pkgver=2010.03 pkgrel=1 -pkgdesc="" +pkgdesc="u-Boot for Pogoplug devices" arch=('arm') url="ftp://ftp.denx.de/pub/u-boot/" license=('GPL') -groups=() -depends=() -makedepends=() -optdepends=() -provides=() -conflicts=() -replaces=() -backup=() -options=() -install= source=(ftp://ftp.denx.de/pub/u-boot/$pkgname-$pkgver.tar.bz2 0001-DockStar-Change-RAM-definitions-to-one-bank-128-MB.patch 0002-DockStar-environment-is-at-0xa0000.patch @@ -32,7 +22,6 @@ source=(ftp://ftp.denx.de/pub/u-boot/$pkgname-$pkgver.tar.bz2 0012-DockStar-Boot-from-USB-and-netconsole.-CHANGE-THIS-T.patch 0013-DockStar-Workaround-to-get-the-kernel-loaded-after-a.patch ) -noextract=() md5sums=('2bf5ebf497dddc52440b1ea386cc1332' 'ec91fd91674c43f87d8495bb6ecc60f3' '2f1002f146b2bdf971ddac8de89136ad' @@ -50,31 +39,18 @@ md5sums=('2bf5ebf497dddc52440b1ea386cc1332' build() { cd $srcdir/$pkgname-$pkgver -echo 1 patch -p1 -i $srcdir/0001-DockStar-Change-RAM-definitions-to-one-bank-128-MB.patch || return 1 -echo 2 patch -p1 -i $srcdir/0002-DockStar-environment-is-at-0xa0000.patch || return 1 -echo 3 patch -p1 -i $srcdir/0003-DockStar-MTD-partitions.patch || return 1 -echo 4 patch -p1 -i $srcdir/0004-DockStar-Change-prompt-and-ident-string.patch || return 1 -echo 5 patch -p1 -i $srcdir/0005-DockStar-Disable-environment-in-NAND.-We-don-t-want-.patch || return 1 -echo 6 patch -p1 -i $srcdir/0006-DockStar-Add-support-for-ext2.patch || return 1 -echo 7 patch -p1 -i $srcdir/0007-DockStar-Include-long-help-messages.patch || return 1 -echo 8 patch -p1 -i $srcdir/0008-DockStar-Change-TEXT_BASE-from-0x600000-to-0xc00000-.patch || return 1 -echo 9 patch -p1 -i $srcdir/0009-DockStar-Small-build-script.patch || return 1 -echo 10 patch -p1 -i $srcdir/0010-DockStar-Definition-for-the-MAC.-CHANGE-THIS-TO-THE-.patch || return 1 -echo 11 patch -p1 -i $srcdir/0011-DockStar-CONFIG_PREBOOT-kernel-and-netconsole-CHANGE.patch || return 1 -echo 12 patch -p1 -i $srcdir/0012-DockStar-Boot-from-USB-and-netconsole.-CHANGE-THIS-T.patch || return 1 -echo 13 patch -p1 -i $srcdir/0013-DockStar-Workaround-to-get-the-kernel-loaded-after-a.patch || return 1 make sheevaplug_config || return 1