mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-01-24 10:32:15 +08:00
Merge branch 'testing' of gitorious.org:chakra-packages/core into testing
This commit is contained in:
commit
d1d8277391
@ -9,7 +9,7 @@ source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
|
||||
|
||||
pkgname=aufs2
|
||||
pkgver=2.6.33_20100514
|
||||
pkgrel=5
|
||||
pkgrel=5.1
|
||||
_kernver=${pkgver%_*}-CHAKRA
|
||||
pkgdesc="Another Unionfs Implementation"
|
||||
arch=('i686' 'x86_64')
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
pkgname=broadcom-wl
|
||||
pkgver=5.60.48.36
|
||||
pkgrel=6.1
|
||||
pkgrel=6.2
|
||||
|
||||
# Find the kernel name inside the chroot
|
||||
_kernver=`pacman -Qf kernel26 | cut -c10-15 | sed 's/kernel26 //g'`-CHAKRA
|
||||
|
4
build.sh
4
build.sh
@ -36,7 +36,7 @@ current_repo="$_cur_repo"
|
||||
build_it()
|
||||
{
|
||||
_mkpkg_flags=$1
|
||||
if [ "$MODE" = "" ] ; then
|
||||
if [ "$MODE" = "" ] ; then
|
||||
error "you need to specify a package list defined in _/buildscripts/${_cur_repo}-${_build_arch}-pkgs.conf\n -> ${_available_pkglists}" && exit
|
||||
fi
|
||||
|
||||
@ -124,7 +124,7 @@ build_it()
|
||||
# done
|
||||
# sudo pacman -Uf $_packages_to_install || exit 1
|
||||
|
||||
sudo pacman -U ../_repo/local/${module}-*.pkg.*
|
||||
sudo pacman -U --noconfirm ../_repo/local/${module}-*.pkg.*
|
||||
fi
|
||||
|
||||
popd &>/dev/null
|
||||
|
@ -10,22 +10,22 @@ source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
|
||||
_origname=initscripts
|
||||
pkgname=chakra-initscripts
|
||||
pkgver=2010.07
|
||||
pkgrel=1
|
||||
pkgrel=1.1
|
||||
pkgdesc="System initialization/bootup scripts"
|
||||
arch=('any')
|
||||
arch=(i686 x86_64)
|
||||
url="http://www.chakra-project.org"
|
||||
license=('GPL')
|
||||
groups=('base')
|
||||
depends=('glibc' 'bash' 'awk' 'grep' 'coreutils' 'sed' 'udev>=157-1'
|
||||
'net-tools' 'ncurses' 'kbd' 'findutils' 'sysvinit')
|
||||
install=initscripts.install
|
||||
source=(http://chakra-project.org/sources/initscripts/initscripts-${pkgver}-${pkgrel}.tar.gz)
|
||||
source=(http://chakra-project.org/sources/initscripts/initscripts-${pkgver}-1.tar.gz)
|
||||
md5sums=('69cd2fe4de9cf606145c7449abf72171')
|
||||
provides=('initscripts=2010.06')
|
||||
provides=("initscripts=${pkgver}")
|
||||
conflicts=('initscripts')
|
||||
|
||||
build() {
|
||||
cd ${srcdir}/${_origname}-${pkgver}-${pkgrel}/
|
||||
cd ${srcdir}/${_origname}-${pkgver}-1/
|
||||
|
||||
DESTDIR=$startdir/pkg ./install.sh
|
||||
cp -rf ${startdir}/etc ${startdir}/pkg
|
||||
|
@ -13,7 +13,7 @@ source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
|
||||
|
||||
pkgname=glibc
|
||||
pkgver=2.11.1
|
||||
pkgrel=4
|
||||
pkgrel=4.1
|
||||
_glibcdate=20100318
|
||||
pkgdesc="GNU C Library"
|
||||
arch=('i686' 'x86_64')
|
||||
@ -72,8 +72,7 @@ build() {
|
||||
|
||||
if [ "${CARCH}" = "i686" ]; then
|
||||
# Hack to fix NPTL issues with Xen, only required on 32bit platforms
|
||||
# Plus add sse settings for xbmc
|
||||
export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs -msse -msse2"
|
||||
export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
|
||||
fi
|
||||
|
||||
echo "slibdir=/lib" >> configparms
|
||||
|
@ -9,7 +9,7 @@ source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
|
||||
|
||||
pkgname=initscripts
|
||||
pkgver=2010.07
|
||||
pkgrel=1
|
||||
pkgrel=1.1
|
||||
pkgdesc="System initialization/bootup scripts"
|
||||
arch=('i686' 'x86_64')
|
||||
url="http://www.chakra-project.org"
|
||||
@ -23,10 +23,10 @@ optdepends=('bridge-utils: Network bridging support'
|
||||
'wireless_tools: Wireless networking')
|
||||
provides=("initscripts=${pkgver}")
|
||||
install=initscripts.install
|
||||
source=(http://chakra-project.org/sources/initscripts/initscripts-${pkgver}-${pkgrel}.tar.gz)
|
||||
source=(http://chakra-project.org/sources/initscripts/initscripts-${pkgver}-1.tar.gz)
|
||||
md5sums=('69cd2fe4de9cf606145c7449abf72171')
|
||||
|
||||
build() {
|
||||
cd ${srcdir}/initscripts-${pkgver}-${pkgrel}/
|
||||
cd ${srcdir}/initscripts-${pkgver}-1/
|
||||
DESTDIR=${pkgdir} ./install.sh
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ pkgname=('kernel26' 'kernel26-firmware' 'kernel26-headers') # Build stock -CHAKR
|
||||
_kernelname=${pkgname#kernel26}
|
||||
_basekernel=2.6.33
|
||||
pkgver=${_basekernel}.6
|
||||
pkgrel=1
|
||||
pkgrel=1.1
|
||||
_patchname="patch-${pkgver}-1-CHAKRA"
|
||||
arch=(i686 x86_64)
|
||||
license=('GPL2')
|
||||
|
@ -12,7 +12,7 @@ pkgname=('lvm2' 'device-mapper')
|
||||
pkgver=2.02.70
|
||||
_pkgverdm=1.02.52
|
||||
_pkgverlvm=${pkgver}
|
||||
pkgrel=1
|
||||
pkgrel=1.1
|
||||
arch=('i686' 'x86_64')
|
||||
url="http://sourceware.org/lvm2/"
|
||||
license=('GPL2' 'LGPL2.1')
|
||||
|
@ -9,7 +9,7 @@ source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
|
||||
|
||||
pkgname=ndiswrapper
|
||||
pkgver=1.56
|
||||
pkgrel=5.1
|
||||
pkgrel=5.2
|
||||
|
||||
# Find the kernel name inside the chroot
|
||||
_kernver=`pacman -Qf kernel26 | cut -c10-15 | sed 's/kernel26 //g'`-CHAKRA
|
||||
|
@ -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
|
||||
|
@ -1,42 +1,41 @@
|
||||
# $Id: PKGBUILD 76102 2010-04-07 18:42:35Z pierre $
|
||||
# Maintainer: Aaron Griffin <aaron@archlinux.org>
|
||||
# Maintainer: Dan McGee <dan@archlinux.org>
|
||||
#
|
||||
# Chakra Packages for Chakra, part of chakra-project.org
|
||||
#
|
||||
# maintainer (i686): Phil Miller <philm[at]chakra-project[dog]org>
|
||||
# maintainer (x86_64): Manuel Tortosa <manutortosa[at]chakra-project[dot]org>
|
||||
|
||||
# include global config
|
||||
source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
|
||||
|
||||
pkgname=pacman
|
||||
pkgver=3.3.3
|
||||
pkgrel=5
|
||||
pkgver=3.4.0
|
||||
pkgrel=1
|
||||
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'
|
||||
'python: for rankmirrors script usage')
|
||||
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
|
||||
vercmp.patch
|
||||
completion.patch)
|
||||
md5sums=('a8cef73d68e2a4c3a46fb46c33210719'
|
||||
'abe70dabacee7036368c7afeb686eb10'
|
||||
'4d2f2f2ac74cba7bd2d336db9135ab16'
|
||||
'84129116c61c8a7cad03a5ae5d80aee5'
|
||||
'7eddda58bf55809e6bde14b446e41a15')
|
||||
0001-makepkg-fallback-to-sane-defaults-for-library-stripp.patch)
|
||||
md5sums=('50ad71be1faaad84842c576e239d1bb5'
|
||||
'78bd7ff2abd68a8e854441cfd26ad3d2'
|
||||
'aef317285c7d16ac495b0e53deeb948d'
|
||||
'f8c4a3cc7702a7a70d177659441495c5')
|
||||
|
||||
# keep an upgrade path for older installations
|
||||
#PKGEXT='.pkg.tar.gz'
|
||||
# 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
|
||||
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
|
||||
}
|
||||
|
||||
@ -44,7 +43,7 @@ package() {
|
||||
cd $srcdir/$pkgname-$pkgver
|
||||
make DESTDIR=$pkgdir install || return 1
|
||||
|
||||
# install Arch specific stuff
|
||||
# install Chakra specific stuff
|
||||
mkdir -p $pkgdir/etc
|
||||
install -m644 $srcdir/pacman.conf $pkgdir/etc/
|
||||
install -m644 $srcdir/makepkg.conf $pkgdir/etc/
|
||||
|
@ -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
|
@ -72,6 +72,12 @@ 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)
|
||||
@ -91,6 +97,8 @@ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
|
||||
#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 <john@doe.com>"
|
||||
|
||||
|
@ -17,8 +17,9 @@ 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 %u > %o
|
||||
#XferCommand = /usr/bin/curl -C - %u > %o
|
||||
#CleanMethod = KeepInstalled
|
||||
Architecture = auto
|
||||
|
||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
||||
#IgnorePkg =
|
||||
@ -41,6 +42,7 @@ SyncFirst = pacman
|
||||
# - 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]
|
||||
@ -55,26 +57,26 @@ SyncFirst = pacman
|
||||
# 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
|
||||
|
||||
|
||||
[core-testing]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[desktop]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[desktop-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[core]
|
||||
# Add your preferred servers here, they will be used first
|
||||
[platform-testing]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[extra]
|
||||
# Add your preferred servers here, they will be used first
|
||||
[apps]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[community-testing]
|
||||
## Add your preferred servers here, they will be used first
|
||||
#[apps-testing]
|
||||
#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]
|
||||
|
@ -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);
|
@ -9,7 +9,7 @@ source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
|
||||
|
||||
pkgname=pkgconfig
|
||||
pkgver=0.25
|
||||
pkgrel=1
|
||||
pkgrel=1.1
|
||||
pkgdesc="A system for managing library compile/link flags"
|
||||
arch=('i686' 'x86_64')
|
||||
url="http://pkgconfig.freedesktop.org/wiki/"
|
||||
|
@ -9,7 +9,7 @@ source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
|
||||
|
||||
pkgname=tiacx
|
||||
pkgver=20080210
|
||||
pkgrel=17.1
|
||||
pkgrel=17.2
|
||||
pkgdesc="OpenSource module for Texas Instruments ACX100/ACX111 wireless chips. For stock arch 2.6 kernel"
|
||||
arch=(i686 x86_64)
|
||||
url="http://acx100.sourceforge.net/"
|
||||
|
@ -10,7 +10,7 @@ source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
|
||||
pkgbase="udev"
|
||||
pkgname=('udev' 'udev-compat')
|
||||
pkgver=160
|
||||
pkgrel=1.1
|
||||
pkgrel=1.2
|
||||
arch=(i686 x86_64)
|
||||
url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
|
||||
license=('GPL')
|
||||
|
@ -10,7 +10,7 @@ source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
|
||||
pkgname=vhba-module
|
||||
pkgver=1.2.1
|
||||
_kernver='2.6.33-CHAKRA'
|
||||
pkgrel=10.1
|
||||
pkgrel=10.2
|
||||
pkgdesc="Kernel module that emulates SCSI devices"
|
||||
arch=('i686' 'x86_64')
|
||||
url="http://cdemu.sourceforge.net/"
|
||||
|
@ -10,7 +10,7 @@ source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
|
||||
pkgname=xz
|
||||
pkgver=4.999.9beta
|
||||
_snapshot=143-g3e49
|
||||
pkgrel=3
|
||||
pkgrel=3.1
|
||||
pkgdesc='Library and command line tools for XZ and LZMA compressed files'
|
||||
arch=('i686' 'x86_64')
|
||||
url='http://tukaani.org/xz/'
|
||||
|
Loading…
Reference in New Issue
Block a user