* sync with archlinux 2010-05-16-17:00

This commit is contained in:
Phil Miller 2010-05-16 15:08:55 +00:00
parent ce47e0227b
commit 2a0fc0483a
148 changed files with 6583 additions and 1421 deletions

View File

@ -1,20 +1,19 @@
# $Id: PKGBUILD 60792 2009-12-07 05:18:18Z eric $
# $Id: PKGBUILD 77205 2010-04-11 13:15:21Z thomas $
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=acl
pkgver=2.2.48
pkgver=2.2.49
pkgrel=1
pkgdesc="Library for filesystem ACL support"
arch=('i686' 'x86_64')
url="http://oss.sgi.com/projects/xfs/"
url="http://savannah.nongnu.org/projects/acl"
license=('LGPL')
groups=('base')
depends=('attr>=2.4.41')
replaces=('xfsacl')
provides=('xfsacl')
conflicts=('xfsacl')
options=('!libtool')
source=(http://konnektion.ath.cx/sources/core/acl/acl-${pkgver}.src.tar.gz)
sha256sums=('b45e21549c9752ad9b99862cce79d7ec5ef4b32c3e95a39f79f0a8442b86476e')
source=(http://mirrors.zerg.biz/nongnu/${pkgname}/${pkgname}-${pkgver}.src.tar.gz)
sha256sums=('b9c7f4752e4ef4930a62fa5aa0d7efe1cba2b5a3a2d6ee2b45c0a70c72b7e5d5')
build() {
cd $srcdir/acl-$pkgver

View File

@ -9,7 +9,7 @@ pkgdesc="Firmware for the AR9170 wireless drivers"
arch=('any')
url="http://wireless.kernel.org/en/users/Drivers/ar9170"
license=('custom')
source=(http://konnektion.ath.cx/sources/core/${pkgname}/${pkgname}.tar.gz)
source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}.tar.gz)
md5sums=('258fb8056e7522a44e07fa2172153893')
build() {

View File

@ -14,7 +14,7 @@ replaces=('xfsattr')
provides=('xfsattr')
conflicts=('xfsattr')
options=('!libtool')
source=(http://konnektion.ath.cx/sources/core/attr/attr-${pkgver}.src.tar.gz)
source=(ftp://ftp.archlinux.org/other/attr/attr-${pkgver}.src.tar.gz)
sha256sums=('e01fa00686072a02dddf994e6217be950f51c1dc0852ad2e210c48b6e8de793a')
build() {

36
aufs2-util/PKGBUILD Normal file
View File

@ -0,0 +1,36 @@
#
# KDEmod, mod[ded|ular] KDE packages for Arch Linux, part of chakra-project.org
#
# maintainer (i686): Jan Mette (funkyou) <funkyou @ kdemod.ath.cx>
# maintainer (x86_64): Martin Sandsmark (PhinnFort) <sandsmark @ kdemod.ath.cx>
# maintainer (x86_64): Phil Miller (Amnnon82) <philm @ chakra-project.org>
# include global config
source ../_buildsystem/${current_repo}-${_arch}_cfg.conf
pkgname=aufs2-util
pkgver=20100514
pkgrel=1chakra
pkgdesc="Another Unionfs Implementation that supports NFS branches"
arch=('i686' 'x86_64')
url="http://aufs.sourceforge.net/"
license=('GPL2')
depends=('glibc')
makedepends=('aufs2>=2.6.33_20100514' 'kernel26-headers')
replaces=('aufs-utils')
source=($pkgname-$pkgver.tar.gz)
md5sums=('411d4e94420d7b8c9a9bca620957292a')
options=('!splithdr' '!splitdbg')
build() {
cd $srcdir/$pkgname-$pkgver || return 1
# build
make || return 1
# install
#mkdir -p $pkgdir/{sbin,usr/bin,etc/default/aufs}
make DESTDIR=$pkgdir install || return 1
rm $pkgdir/usr/lib/libau.so.2
rm $pkgdir/usr/lib/libau.so
ln -sf libau.so.2.2 $pkgdir/usr/lib/libau.so.2
ln -sf libau.so.2.2 $pkgdir/usr/lib/libau.so
}

Binary file not shown.

17
aufs2-util/create-tarball.sh Executable file
View File

@ -0,0 +1,17 @@
#!/bin/sh
#AUFS2VERSION=""
#KERNELVERSION=2.6.33
GITSNAPSHOT=20100514
# aufs2 (no -xx) for the latest -rc version.
if [ ! -d aufs2-util.git/.git ]; then
git clone http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-util.git aufs2-util.git
else
git pull
fi
cd aufs2-util.git
#git checkout origin/aufs2${AUFS2VERSION}
#*** apply "aufs2-base.patch" and "aufs2-standalone.patch" to your kernel source files.
cd ..
rm -rf aufs2-util-${GITSNAPSHOT}
cp -a aufs2-util.git aufs2-util-${GITSNAPSHOT}
tar -czf aufs2-util-${GITSNAPSHOT}.tar.gz --exclude=.git aufs2-util-${GITSNAPSHOT}

66
aufs2/PKGBUILD Normal file
View File

@ -0,0 +1,66 @@
#
# KDEmod, mod[ded|ular] KDE packages for Arch Linux, part of chakra-project.org
#
# maintainer (i686): Jan Mette (funkyou) <funkyou @ kdemod.ath.cx>
# maintainer (x86_64): Martin Sandsmark (PhinnFort) <sandsmark @ kdemod.ath.cx>
# maintainer (x86_64): Phil Miller (Amnnon82) <philm @ chakra-project.org>
# include global config
source ../_buildsystem/${current_repo}-${_arch}_cfg.conf
pkgname=aufs2
pkgver=2.6.33_20100514
pkgrel=1chakra
_kernver=${pkgver%_*}-ARCH
pkgdesc="Another Unionfs Implementation"
arch=('i686' 'x86_64')
url="http://aufs.sourceforge.net/"
license=('GPL2')
depends=('kernel26>=2.6.33.4' 'kernel26<2.6.34')
makedepends=('kernel26-headers>=2.6.33' 'kernel26-headers<2.6.34')
replaces=('aufs')
install=${pkgname}.install
source=("${pkgname}-${pkgver}.tar.gz" 'writefix.patch')
options=(!makeflags)
md5sums=('0bf267301bd89f9d64a104b722da9cec'
'a31931b296cb37d5c9bec1ffd31e7fc1')
build() {
cd ${srcdir}/${pkgname}-${pkgver} || return 1
msg "add patches"
patch -Np1 -i $startdir/writefix.patch || return 1
msg "start config"
sed -i 's|CONFIG_AUFS_HNOTIFY =.*|CONFIG_AUFS_HNOTIFY = y|' \
config.mk || return 1
sed -i 's|CONFIG_AUFS_HFSNOTIFY =.*|CONFIG_AUFS_HFSNOTIFY = y|' \
config.mk || return 1
sed -i 's|CONFIG_AUFS_EXPORT =.*|CONFIG_AUFS_EXPORT = y|' \
config.mk || return 1
sed -i 's|CONFIG_AUFS_SHWH =.*|CONFIG_AUFS_SHWH = y|' \
config.mk || return 1
sed -i 's|CONFIG_AUFS_BDEV_LOOP =.*|CONFIG_AUFS_BDEV_LOOP = y|' \
config.mk || return 1
sed -i 's|CONFIG_AUFS_BR_RAMFS =.*|CONFIG_AUFS_BR_RAMFS = y|' \
config.mk || return 1
sed -i 's|CONFIG_AUFS_DEBUG =.*|CONFIG_AUFS_DEBUG =|' \
config.mk || return 1
if [ "${CARCH}" = "x86_64" ]; then
inot64=" y"
else
inot64=""
fi
sed -i "s|CONFIG_AUFS_INO_T_64 =.*|CONFIG_AUFS_INO_T_64 =${inot64}|" \
config.mk || return 1
# build
make KDIR=/usr/src/linux-${_kernver} || return 1
# install
install -D -m644 fs/aufs/aufs.ko \
$pkgdir/lib/modules/${_kernver}/kernel/fs/aufs/aufs.ko || return 1
# tweak the install script for the right kernel version
sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
$startdir/$pkgname.install || return 1
# install include files
install -D -m 644 include/linux/aufs_type.h $pkgdir/usr/src/linux-$_kernver/include/linux/aufs_type.h || return 1
}

Binary file not shown.

18
aufs2/aufs2.install Normal file
View File

@ -0,0 +1,18 @@
post_install() {
KERNEL_VERSION=2.6.33-ARCH
depmod $KERNEL_VERSION
}
post_upgrade() {
KERNEL_VERSION=2.6.33-ARCH
depmod $KERNEL_VERSION
}
post_remove() {
KERNEL_VERSION=2.6.33-ARCH
depmod $KERNEL_VERSION
}
op=$1
shift
$op $*

14
aufs2/create-tarball.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/sh
AUFS2VERSION="-33"
KERNELVERSION=2.6.33
GITSNAPSHOT=20100420
# aufs2 (no -xx) for the latest -rc version.
git clone http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-standalone.git aufs2-standalone.git
cd aufs2-standalone.git
git checkout origin/aufs2${AUFS2VERSION}
#*** apply "aufs2-base.patch" and "aufs2-standalone.patch" to your kernel source files.
cd ..
rm -rf aufs2-${KERNELVERSIN}_${GITSNAPSHOT}
cp -a aufs2-standalone.git aufs2-${KERNELVERSION}_${GITSNAPSHOT}
tar -czf aufs2-${KERNELVERSION}_${GITSNAPSHOT}.tar.gz --exclude=.git aufs2-${KERNELVERSION}_${GITSNAPSHOT}

43
aufs2/writefix.patch Normal file
View File

@ -0,0 +1,43 @@
diff --git a/fs/aufs/dynop.c b/fs/aufs/dynop.c
index 73c6195..a59aff0 100644
--- a/fs/aufs/dynop.c
+++ b/fs/aufs/dynop.c
@@ -176,22 +176,22 @@ static void dy_fop(struct au_dykey *key, const void *h_op,
AuDbg("%s\n", au_sbtype(h_sb));
- DySetFopForce(owner); /* force */
+ DySetFopForce(owner); /* force */
DySetFop(llseek);
DySetFop(read);
- DySetFop(write);
+ DySetFopForce(write); /* force */
DySetFop(aio_read);
- DySetFop(aio_write);
+ DySetFopForce(aio_write); /* force */
DySetFop(readdir);
DySetFop(poll);
DySetFop(ioctl);
- DySetFop(unlocked_ioctl);
+ DySetFopForce(unlocked_ioctl); /* force */
DySetFop(compat_ioctl);
DySetFop(mmap);
- DySetFopForce(open); /* force */
+ DySetFopForce(open); /* force */
DySetFop(flush);
- DySetFopForce(release); /* force */
- DySetFop(fsync);
+ DySetFopForce(release); /* force */
+ DySetFopForce(fsync); /* force */
DySetFop(aio_fsync);
DySetFop(fasync);
DySetFop(lock);
@@ -199,7 +199,7 @@ static void dy_fop(struct au_dykey *key, const void *h_op,
DySetFop(get_unmapped_area);
DySetFop(check_flags);
DySetFop(flock);
- DySetFop(splice_write);
+ DySetFopForce(splice_write); /* force */
DySetFop(splice_read);
DySetFop(setlease);

View File

@ -1,10 +1,10 @@
# $Id: PKGBUILD 59490 2009-11-24 04:57:35Z allan $
# $Id: PKGBUILD 77795 2010-04-18 03:56:24Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
pkgname=autoconf
pkgver=2.65
pkgrel=1
pkgrel=2
pkgdesc="A GNU tool for automatically configuring source code"
arch=('any')
license=('GPL2' 'GPL3' 'custom')
@ -19,6 +19,10 @@ build() {
cd ${srcdir}/${pkgname}-${pkgver}
./configure --prefix=/usr
make || return 1
}
package() {
cd ${srcdir}/${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install || return 1
# license exception

View File

@ -2,6 +2,7 @@ infodir=/usr/share/info
filelist=(autoconf.info)
post_install() {
[ -x usr/bin/install-info ] || return 0
for file in ${filelist[@]}; do
install-info $infodir/$file.gz $infodir/dir 2> /dev/null
done
@ -12,9 +13,8 @@ post_upgrade() {
}
pre_remove() {
[ -x usr/bin/install-info ] || return 0
for file in ${filelist[@]}; do
install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
done
}
# vim:set ts=2 sw=2 et:

View File

@ -2,7 +2,7 @@
# Maintainer: Thomas Baechler <thomas@archlinux.org>
pkgname=b43-fwcutter
pkgver=012
pkgver=013
pkgrel=1
pkgdesc="firmware extractor for the bcm43xx kernel module"
url="http://linuxwireless.org/en/users/Drivers/b43"
@ -10,7 +10,7 @@ depends=('glibc')
license=('GPL')
arch=('i686' 'x86_64')
source=(http://bu3sch.de/b43/fwcutter/${pkgname}-${pkgver}.tar.bz2)
md5sums=('69eadf67b459f313a8d6b37aaabef96c')
md5sums=('3547ec6c474ac1bc2c4a5bb765b791a4')
build()
{

View File

@ -1,10 +1,10 @@
# $Id: PKGBUILD 66503 2010-01-31 12:15:27Z allan $
# $Id: PKGBUILD 76037 2010-04-06 14:44:45Z allan $
# Maintainer: Aaron Griffin <aaron@archlinux.org>
pkgname=bash
_patchlevel=002 #prepare for some patches
_patchlevel=005 #prepare for some patches
pkgver=4.1.$_patchlevel
pkgrel=2
pkgrel=1
pkgdesc="The GNU Bourne Again shell"
arch=('i686' 'x86_64')
license=('GPL')
@ -34,7 +34,7 @@ build() {
patch -Np0 -i ${p} || return 1
done
patch -Np0 -i ../enable-system-config-files.patch || return 1
patch -Np0 -i $srcdir/enable-system-config-files.patch || return 1
./configure --prefix=/usr --with-curses --enable-readline \
--without-bash-malloc --with-installed-readline \
@ -60,4 +60,7 @@ md5sums=('9800d8724815fd84994d9be65ab5e7b8'
'51725defa4c2dec49c1bc15883e0bee2'
'196697769f1667a8a1aed608811129c6'
'582dea5671b557f783e18629c2f77b68'
'118d465095d4a4706eb1d34696a2666a')
'118d465095d4a4706eb1d34696a2666a'
'120f7cf039a40d35fe375e59d6f17adc'
'336ee037fc2cc1e2350b05097fbdc87c'
'9471e666797f0b03eb2175ed752a9550')

View File

@ -1,21 +1,21 @@
# $Id: PKGBUILD 72655 2010-03-19 03:19:22Z allan $
# $Id: PKGBUILD 77602 2010-04-16 11:58:22Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
pkgname=binutils
pkgver=2.20.1
pkgrel=1
pkgrel=2
_date=20100318
pkgdesc="A set of programs to assemble and manipulate binary and object files"
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/binutils/"
license=('GPL')
groups=('base')
depends=('glibc>=2.11.1-2' 'zlib')
depends=('glibc>=2.11.1-3' 'zlib')
options=('!libtool' '!distcc' '!ccache')
install=binutils.install
source=(http://konnektion.ath.cx/sources/core/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2)
source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2)
md5sums=('c153213a20a5075bd98d7f12fbd38a51')
mksource() {
@ -46,19 +46,23 @@ build() {
make configure-host || return 1
make tooldir=${pkgdir}/usr || return 1
}
package() {
cd ${srcdir}/build
make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install
install -m644 ${srcdir}/include/libiberty.h ${pkgdir}/usr/include
if [ "${CARCH}" = "x86_64" ]; then
# Rebuild libiberty.a with -fPIC
make -C libiberty clean
make CFLAGS="$CFLAGS -fPIC" -C libiberty
install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib
# Rebuild libbfd.a with -fPIC
make -C bfd clean
make CFLAGS="$CFLAGS -fPIC" -C bfd
install -m644 bfd/libbfd.a ${pkgdir}/usr/lib
fi
# Rebuild libiberty.a with -fPIC
make -C libiberty clean
make CFLAGS="$CFLAGS -fPIC" -C libiberty
install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib
# Rebuild libbfd.a with -fPIC
make -C bfd clean
# hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd
install -m644 bfd/libbfd.a ${pkgdir}/usr/lib
rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}*

View File

@ -1,17 +1,20 @@
# $Id: PKGBUILD 13092 2008-09-25 22:04:38Z ronald $
# $Id: PKGBUILD 77956 2010-04-19 06:57:14Z allan $
# Maintainer:
# Contributor: Judd Vinet <judd@archlinux.org>
pkgname=bridge-utils
pkgver=1.4
pkgrel=2
pkgdesc="Layer2 ethernet bridging for Linux"
arch=(i686 x86_64)
pkgrel=3
pkgdesc="Utilities for configuring the Linux ethernet bridge"
arch=('i686' 'x86_64')
url="http://www.linuxfoundation.org/en/Net:Bridge"
license=('GPL2')
backup=('etc/conf.d/bridges')
depends=('glibc')
source=(http://downloads.sourceforge.net/bridge/bridge-utils-$pkgver.tar.gz \
bridges.conf.d)
md5sums=('0182fcac3a2b307113bbec34e5f1c673'
'f5d691282653580dd5fd4a1092ef365b')
build() {
cd $srcdir/$pkgname-$pkgver
@ -19,11 +22,12 @@ build() {
autoconf
./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man
make || return 1
}
package() {
cd $srcdir/$pkgname-$pkgver
make DESTDIR=$pkgdir install || return 1
# install config file
install -D -m644 ../bridges.conf.d $startdir/pkg/etc/conf.d/bridges
install -Dm644 $srcdir/bridges.conf.d $pkgdir/etc/conf.d/bridges
}
md5sums=('0182fcac3a2b307113bbec34e5f1c673'
'f5d691282653580dd5fd4a1092ef365b')

View File

@ -2,14 +2,14 @@
pkgname=broadcom-wl
pkgver=5.60.48.36
pkgrel=1
pkgrel=2
pkgdesc="Broadcom 802.11abg Networking Drivers"
arch=('i686' 'x86_64')
[ "$CARCH" = "i686" ] && ARCH=x86_32
[ "$CARCH" = "x86_64" ] && ARCH=x86_64
url="http://www.broadcom.com/support/802.11/linux_sta.php"
license=('MIXED/Proprietary')
depends=('kernel26>=2.6.29' 'kernel26<2.6.33')
depends=('kernel26>=2.6.33' 'kernel26<2.6.34')
makedepends=(kernel26-headers)
install=broadcom-wl.install
source=("http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-${ARCH}-v${pkgver}.tar.gz")
@ -19,8 +19,10 @@ md5sums=(0466d863405e1ab99d5e288fe886e852)
build() {
# Adding line license
sed -i '190i\MODULE_LICENSE("Mixed/Proprietary"); \n' ${srcdir}/src/wl/sys/wl_linux.c
sed -i 's/linux\/autoconf.h/generated\/autoconf.h/' ${srcdir}/src/include/linuxver.h
# Building
KBUILD_NOPEDANTIC=1 make -C /lib/modules/$(uname -r)/build M=`pwd` || return 1
install -D -m 755 wl.ko ${pkgdir}/lib/modules/$(uname -r)/kernel/drivers/net/wireless/wl.ko || return 1
}

View File

@ -1,16 +1,16 @@
# $Id: PKGBUILD 57442 2009-10-31 15:25:46Z pierre $
# $Id: PKGBUILD 76140 2010-04-07 22:28:05Z pierre $
# Maintainer: Pierre Schmitz <pierre@archlinux.de>
pkgname=ca-certificates
pkgver=20090814
pkgrel=2
pkgrel=3
pkgdesc='Common CA certificates'
arch=('any')
url='http://packages.qa.debian.org/c/ca-certificates.html'
license=('MPL' 'GPL')
source=("http://ftp.debian.org/debian/pool/main/c/${pkgname}/${pkgname}_${pkgver}.tar.gz")
depends=('bash' 'run-parts' 'openssl' 'findutils' 'coreutils' 'sed')
makedepends=('ruby')
makedepends=('ruby' 'python')
install=ca-certificates.install
backup=('etc/ca-certificates.conf')
md5sums=('307052c985bec7f9a00eb84293eef779')

View File

@ -3,7 +3,7 @@ post_install() {
}
post_upgrade() {
usr/sbin/update-ca-certificates
usr/sbin/update-ca-certificates --fresh
}
pre_remove() {
@ -18,4 +18,4 @@ pre_remove() {
post_remove() {
# remove the cert file if it is empty
[[ -s etc/ssl/certs/ca-certificates.crt ]] || rm -f etc/ssl/certs/ca-certificates.crt
}
}

View File

@ -1,25 +1,29 @@
# $Id: PKGBUILD 72643 2010-03-19 03:05:11Z allan $
# $Id: PKGBUILD 78357 2010-04-22 02:43:20Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: ezzetabi <ezzetabi at gawab dot com>
pkgname=cloog-ppl
pkgver=0.15.8
pkgver=0.15.9
pkgrel=1
pkgdesc="Library that generates loops for scanning polyhedra"
arch=('i686' 'x86_64')
url="http://www.cloog.org/"
license=('GPL')
depends=('ppl>=0.10.2-3')
depends=('ppl')
options=('!libtool')
source=(ftp://gcc.gnu.org/pub/gcc/infrastructure/${pkgname}-${pkgver}.tar.gz)
md5sums=('b27bc188e3e99dca2923ce9323b8fb63')
md5sums=('806e001d1b1a6b130069ff6274900af5')
build() {
cd $srcdir/$pkgname-$pkgver
./configure --prefix=/usr --infodir=/usr/share/info \
--with-bits=gmp --with-ppl=/usr
make || return 1
make
make check
}
package() {
cd $srcdir/$pkgname-$pkgver
make DESTDIR=$pkgdir/ install
}

View File

@ -1,4 +1,4 @@
# $Id: PKGBUILD 73375 2010-03-25 12:23:27Z andrea $
# $Id: PKGBUILD 76967 2010-04-09 10:09:44Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Contributor: damir <damir@archlinux.org>
@ -6,17 +6,17 @@
pkgname=cmake
pkgver=2.8.1
pkgrel=1
pkgrel=2
pkgdesc="A cross-platform open-source make system"
arch=('i686' 'x86_64')
license=('custom')
url="http://www.cmake.org"
depends=('expat' 'curl' 'gcc-libs' 'shared-mime-info')
# makedepends=('qt')
# optdepends=('qt: cmake-gui')
makedepends=('qt')
optdepends=('qt: cmake-gui')
install=${pkgname}.install
source=("http://www.cmake.org/files/v2.8/${pkgname}-${pkgver}.tar.gz")
md5sums=('a92ad653f9ccc1595d16cd9707f49acc')
md5sums=('feadc2e5ebbfed0efc90178583503725')
build() {
cd $srcdir/$pkgname-$pkgver
@ -24,11 +24,9 @@ build() {
--mandir=/share/man \
--docdir=/share/doc/cmake \
--system-libs \
--qt-gui \
--parallel=2
make || return 1
# --qt-gui \
}
package() {

View File

@ -1,10 +1,10 @@
# $Id: PKGBUILD 72649 2010-03-19 03:09:56Z allan $
# $Id: PKGBUILD 78872 2010-04-29 10:18:00Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=coreutils
pkgver=8.4
pkgrel=2
pkgver=8.5
pkgrel=1
pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system"
arch=('i686' 'x86_64')
license=('GPL3')
@ -17,19 +17,17 @@ replaces=('sh-utils' 'fileutils' 'textutils' 'mktemp')
backup=('etc/pam.d/su')
install=${pkgname}.install
options=('!emptydirs')
source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz
source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz
coreutils-i18n.patch
coreutils-uname.patch
coreutils-pam.patch
coreutils-6.10-configuration.patch
advcopy-0.2b-8.4.patch
su)
md5sums=('56f549854d723d9dcebb77919019df55'
'f88e6b4ce09e6d453f595d46d2a153b2'
md5sums=('55170ed640e300f5b81640c6f4641513'
'f92a989319c4c741d7c28d8fa6e01616'
'c4fcca138b6abf6d443d48a6f0cd8833'
'7efee4d5b3653711f9e229493316841c'
'dd4f472de8380104af3ac0ef920fae8b'
'57e881e7968d6747dba774128a830350'
'aad79a2aa6d566c375d7bdd1b0767278'
'12ef00fbc3a8c9594fea6aa55daff2aa'
'fa85e5cce5d723275b14365ba71a8aad')
build() {
@ -43,9 +41,6 @@ build() {
# from gentoo portage
patch -Np1 -i $srcdir/coreutils-uname.patch || return 1
# add progress bar to 'cp'
patch -Np1 -i $srcdir/advcopy-0.2b-8.4.patch || return 1
autoreconf -v
./configure --prefix=/usr \
--enable-install-program=su \
@ -74,6 +69,5 @@ build() {
ln -sf /bin/sleep ${pkgdir}/usr/bin/sleep
mv chroot $pkgdir/usr/sbin
ln -sf test [
install -Dm644 $srcdir/su ${pkgdir}/etc/pam.d/su
}

View File

@ -79,28 +79,14 @@ diff -urNp coreutils-8.4-orig/tests/Makefile.am coreutils-8.4/tests/Makefile.am
tail-2/inotify-hash-abuse2 \
tail-2/F-vs-rename \
tail-2/inotify-rotate \
diff -urNp coreutils-8.4-orig/tests/test-lib.sh coreutils-8.4/tests/test-lib.sh
--- coreutils-8.4-orig/tests/test-lib.sh 2010-01-03 18:06:20.000000000 +0100
+++ coreutils-8.4/tests/test-lib.sh 2010-01-14 10:28:17.000000000 +0100
@@ -218,8 +218,8 @@ skip_if_()
require_selinux_()
{
- case `ls -Zd .` in
- '? .'|'unlabeled .')
+ case `ls --scontext -d . | cut -f1 -d" "` in
+ '?'|'unlabeled')
skip_test_ "this system (or maybe just" \
"the current file system) lacks SELinux support"
;;
diff -urNp coreutils-8.4-orig/tests/touch/no-dereference coreutils-8.4/tests/touch/no-dereference
--- coreutils-8.4-orig/tests/touch/no-dereference 2010-01-12 15:36:17.000000000 +0100
+++ coreutils-8.4/tests/touch/no-dereference 2010-01-14 10:28:17.000000000 +0100
@@ -46,6 +46,8 @@ test -f nowhere && fail=1
grep '^#define HAVE_UTIMENSAT' "$CONFIG_HEADER" > /dev/null ||
grep '^#define HAVE_LUTIMES' "$CONFIG_HEADER" > /dev/null ||
grep '^#define HAVE_UTIMENSAT 1' "$CONFIG_HEADER" > /dev/null ||
grep '^#define HAVE_LUTIMES 1' "$CONFIG_HEADER" > /dev/null ||
skip_test_ 'this system lacks the utimensat function'
+grep '^#define HAVE_WORKINGKOJI' "$CONFIG_HEADER" > /dev/null ||
+grep '^#define HAVE_WORKINGKOJI 1' "$CONFIG_HEADER" > /dev/null ||
+ skip_test_ 'rest of the test disabled due to koji lack of utimensat function'
# Changing time of dangling symlink is okay.

View File

@ -1,6 +1,6 @@
diff -urNp coreutils-8.0-orig/lib/linebuffer.h coreutils-8.0/lib/linebuffer.h
--- coreutils-8.0-orig/lib/linebuffer.h 2009-10-06 10:59:48.000000000 +0200
+++ coreutils-8.0/lib/linebuffer.h 2009-10-07 10:07:16.000000000 +0200
diff -urNp coreutils-8.5-orig/lib/linebuffer.h coreutils-8.5/lib/linebuffer.h
--- coreutils-8.5-orig/lib/linebuffer.h 2010-04-23 15:44:00.000000000 +0200
+++ coreutils-8.5/lib/linebuffer.h 2010-04-26 14:24:33.000000000 +0200
@@ -21,6 +21,11 @@
# include <stdio.h>
@ -23,9 +23,9 @@ diff -urNp coreutils-8.0-orig/lib/linebuffer.h coreutils-8.0/lib/linebuffer.h
};
/* Initialize linebuffer LINEBUFFER for use. */
diff -urNp coreutils-8.0-orig/src/cut.c coreutils-8.0/src/cut.c
--- coreutils-8.0-orig/src/cut.c 2009-09-23 10:25:44.000000000 +0200
+++ coreutils-8.0/src/cut.c 2009-10-07 10:07:16.000000000 +0200
diff -urNp coreutils-8.5-orig/src/cut.c coreutils-8.5/src/cut.c
--- coreutils-8.5-orig/src/cut.c 2010-04-20 21:52:04.000000000 +0200
+++ coreutils-8.5/src/cut.c 2010-04-26 14:24:33.000000000 +0200
@@ -28,6 +28,11 @@
#include <assert.h>
#include <getopt.h>
@ -489,7 +489,7 @@ diff -urNp coreutils-8.0-orig/src/cut.c coreutils-8.0/src/cut.c
@@ -757,6 +1075,8 @@ main (int argc, char **argv)
bool ok;
bool delim_specified = false;
char *spec_list_string IF_LINT(= NULL);
char *spec_list_string IF_LINT (= NULL);
+ char mbdelim[MB_LEN_MAX + 1];
+ size_t delimlen = 0;
@ -616,10 +616,10 @@ diff -urNp coreutils-8.0-orig/src/cut.c coreutils-8.0/src/cut.c
}
if (optind == argc)
diff -urNp coreutils-8.0-orig/src/expand.c coreutils-8.0/src/expand.c
--- coreutils-8.0-orig/src/expand.c 2009-09-29 15:27:54.000000000 +0200
+++ coreutils-8.0/src/expand.c 2009-10-07 10:07:16.000000000 +0200
@@ -37,11 +37,28 @@
diff -urNp coreutils-8.5-orig/src/expand.c coreutils-8.5/src/expand.c
--- coreutils-8.5-orig/src/expand.c 2010-01-01 14:06:47.000000000 +0100
+++ coreutils-8.5/src/expand.c 2010-04-26 14:24:33.000000000 +0200
@@ -38,11 +38,28 @@
#include <stdio.h>
#include <getopt.h>
#include <sys/types.h>
@ -648,7 +648,7 @@ diff -urNp coreutils-8.0-orig/src/expand.c coreutils-8.0/src/expand.c
/* The official name of this program (e.g., no `g' prefix). */
#define PROGRAM_NAME "expand"
@@ -357,6 +374,142 @@ expand (void)
@@ -358,6 +375,142 @@ expand (void)
}
}
@ -791,7 +791,7 @@ diff -urNp coreutils-8.0-orig/src/expand.c coreutils-8.0/src/expand.c
int
main (int argc, char **argv)
{
@@ -421,7 +574,12 @@ main (int argc, char **argv)
@@ -422,7 +575,12 @@ main (int argc, char **argv)
file_list = (optind < argc ? &argv[optind] : stdin_argv);
@ -805,9 +805,9 @@ diff -urNp coreutils-8.0-orig/src/expand.c coreutils-8.0/src/expand.c
if (have_read_stdin && fclose (stdin) != 0)
error (EXIT_FAILURE, errno, "-");
diff -urNp coreutils-8.0-orig/src/fold.c coreutils-8.0/src/fold.c
--- coreutils-8.0-orig/src/fold.c 2009-09-23 10:25:44.000000000 +0200
+++ coreutils-8.0/src/fold.c 2009-10-07 10:07:16.000000000 +0200
diff -urNp coreutils-8.5-orig/src/fold.c coreutils-8.5/src/fold.c
--- coreutils-8.5-orig/src/fold.c 2010-01-01 14:06:47.000000000 +0100
+++ coreutils-8.5/src/fold.c 2010-04-26 14:24:33.000000000 +0200
@@ -22,11 +22,33 @@
#include <getopt.h>
#include <sys/types.h>
@ -1205,9 +1205,9 @@ diff -urNp coreutils-8.0-orig/src/fold.c coreutils-8.0/src/fold.c
break;
case 's': /* Break at word boundaries. */
diff -urNp coreutils-8.0-orig/src/join.c coreutils-8.0/src/join.c
--- coreutils-8.0-orig/src/join.c 2009-09-23 10:25:44.000000000 +0200
+++ coreutils-8.0/src/join.c 2009-10-07 10:07:16.000000000 +0200
diff -urNp coreutils-8.5-orig/src/join.c coreutils-8.5/src/join.c
--- coreutils-8.5-orig/src/join.c 2010-04-20 21:52:04.000000000 +0200
+++ coreutils-8.5/src/join.c 2010-04-26 14:24:33.000000000 +0200
@@ -22,17 +22,31 @@
#include <sys/types.h>
#include <getopt.h>
@ -1258,7 +1258,7 @@ diff -urNp coreutils-8.0-orig/src/join.c coreutils-8.0/src/join.c
/* If nonzero, check that the input is correctly ordered. */
static enum
@@ -239,10 +255,11 @@ xfields (struct line *line)
@@ -248,10 +264,11 @@ xfields (struct line *line)
if (ptr == lim)
return;
@ -1272,7 +1272,7 @@ diff -urNp coreutils-8.0-orig/src/join.c coreutils-8.0/src/join.c
extract_field (line, ptr, sep - ptr);
}
else
@@ -269,6 +286,148 @@ xfields (struct line *line)
@@ -278,6 +295,148 @@ xfields (struct line *line)
extract_field (line, ptr, lim - ptr);
}
@ -1421,7 +1421,7 @@ diff -urNp coreutils-8.0-orig/src/join.c coreutils-8.0/src/join.c
static void
freeline (struct line *line)
{
@@ -287,56 +446,115 @@ keycmp (struct line const *line1, struct
@@ -299,56 +458,115 @@ keycmp (struct line const *line1, struct
size_t jf_1, size_t jf_2)
{
/* Start of field to compare in each file. */
@ -1560,7 +1560,7 @@ diff -urNp coreutils-8.0-orig/src/join.c coreutils-8.0/src/join.c
}
/* Check that successive input lines PREV and CURRENT from input file
@@ -417,6 +635,11 @@ get_line (FILE *fp, struct line **linep,
@@ -429,6 +647,11 @@ get_line (FILE *fp, struct line **linep,
return false;
}
@ -1572,7 +1572,7 @@ diff -urNp coreutils-8.0-orig/src/join.c coreutils-8.0/src/join.c
xfields (line);
if (prevline[which - 1])
@@ -518,11 +741,18 @@ prfield (size_t n, struct line const *li
@@ -528,11 +751,18 @@ prfield (size_t n, struct line const *li
/* Print the join of LINE1 and LINE2. */
@ -1592,7 +1592,7 @@ diff -urNp coreutils-8.0-orig/src/join.c coreutils-8.0/src/join.c
outlist = outlist_head.next;
if (outlist)
@@ -557,7 +787,7 @@ prjoin (struct line const *line1, struct
@@ -567,7 +797,7 @@ prjoin (struct line const *line1, struct
o = o->next;
if (o == NULL)
break;
@ -1601,7 +1601,7 @@ diff -urNp coreutils-8.0-orig/src/join.c coreutils-8.0/src/join.c
}
putchar ('\n');
}
@@ -575,23 +805,23 @@ prjoin (struct line const *line1, struct
@@ -585,23 +815,23 @@ prjoin (struct line const *line1, struct
prfield (join_field_1, line1);
for (i = 0; i < join_field_1 && i < line1->nfields; ++i)
{
@ -1629,17 +1629,13 @@ diff -urNp coreutils-8.0-orig/src/join.c coreutils-8.0/src/join.c
prfield (i, line2);
}
putchar ('\n');
@@ -1022,20 +1252,41 @@ main (int argc, char **argv)
@@ -1039,21 +1269,46 @@ main (int argc, char **argv)
case 't':
{
- unsigned char newtab = optarg[0];
- if (! newtab)
+ char *newtab;
+ size_t newtablen;
+ if (! optarg[0])
error (EXIT_FAILURE, 0, _("empty tab"));
- if (optarg[1])
+ newtab = xstrdup (optarg);
+#if HAVE_MBRTOWC
+ if (MB_CUR_MAX > 1)
@ -1658,32 +1654,40 @@ diff -urNp coreutils-8.0-orig/src/join.c coreutils-8.0/src/join.c
+ else
+#endif
+ newtablen = 1;
+
+ if (newtablen == 1 && newtab[1])
+ {
+ if (STREQ (newtab, "\\0"))
+ newtab[0] = '\0';
+ }
+ if (tab != NULL && strcmp (tab, newtab))
if (! newtab)
+ {
newtab = '\n'; /* '' => process the whole line. */
+ }
else if (optarg[1])
{
- if (STREQ (optarg, "\\0"))
- newtab = '\0';
- else
- error (EXIT_FAILURE, 0, _("multi-character tab %s"),
- quote (optarg));
+ if (newtablen == 1 && newtab[1])
+ {
+ if (STREQ (newtab, "\\0"))
+ newtab[0] = '\0';
+ }
+ }
+ if (tab != NULL && strcmp (tab, newtab))
+ {
+ free (newtab);
+ error (EXIT_FAILURE, 0, _("incompatible tabs"));
}
- if (0 <= tab && tab != newtab)
- error (EXIT_FAILURE, 0, _("incompatible tabs"));
tab = newtab;
- }
+ tablen = newtablen;
}
+ }
break;
diff -urNp coreutils-8.0-orig/src/pr.c coreutils-8.0/src/pr.c
--- coreutils-8.0-orig/src/pr.c 2009-09-29 15:27:54.000000000 +0200
+++ coreutils-8.0/src/pr.c 2009-10-07 10:07:16.000000000 +0200
case NOCHECK_ORDER_OPTION:
diff -urNp coreutils-8.5-orig/src/pr.c coreutils-8.5/src/pr.c
--- coreutils-8.5-orig/src/pr.c 2010-03-13 16:14:09.000000000 +0100
+++ coreutils-8.5/src/pr.c 2010-04-26 14:24:33.000000000 +0200
@@ -312,6 +312,32 @@
#include <getopt.h>
@ -2406,9 +2410,9 @@ diff -urNp coreutils-8.0-orig/src/pr.c coreutils-8.0/src/pr.c
/* We've just printed some files and need to clean up things before
looking for more options and printing the next batch of files.
diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
--- coreutils-8.0-orig/src/sort.c 2009-09-29 15:27:54.000000000 +0200
+++ coreutils-8.0/src/sort.c 2009-10-07 10:07:16.000000000 +0200
diff -urNp coreutils-8.5-orig/src/sort.c coreutils-8.5/src/sort.c
--- coreutils-8.5-orig/src/sort.c 2010-04-21 09:06:17.000000000 +0200
+++ coreutils-8.5/src/sort.c 2010-04-26 14:24:33.000000000 +0200
@@ -22,10 +22,19 @@
#include <config.h>
@ -2429,7 +2433,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
#include "system.h"
#include "argmatch.h"
#include "error.h"
@@ -122,14 +131,38 @@ static int decimal_point;
@@ -124,14 +133,38 @@ static int decimal_point;
/* Thousands separator; if -1, then there isn't one. */
static int thousands_sep;
@ -2469,7 +2473,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
/* The kind of blanks for '-b' to skip in various options. */
enum blanktype { bl_start, bl_end, bl_both };
@@ -268,13 +301,11 @@ static bool reverse;
@@ -270,13 +303,11 @@ static bool reverse;
they were read if all keys compare equal. */
static bool stable;
@ -2486,7 +2490,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
/* Flag to remove consecutive duplicate lines from the output.
Only the last of a sequence of equal lines will be output. */
@@ -712,6 +743,44 @@ reap_some (void)
@@ -714,6 +745,44 @@ reap_some (void)
update_proc (pid);
}
@ -2531,7 +2535,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
/* Clean up any remaining temporary files. */
static void
@@ -1093,7 +1162,7 @@ zaptemp (const char *name)
@@ -1158,7 +1227,7 @@ zaptemp (const char *name)
free (node);
}
@ -2540,7 +2544,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
static int
struct_month_cmp (const void *m1, const void *m2)
@@ -1108,7 +1177,7 @@ struct_month_cmp (const void *m1, const
@@ -1173,7 +1242,7 @@ struct_month_cmp (const void *m1, const
/* Initialize the character class tables. */
static void
@ -2549,7 +2553,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
{
size_t i;
@@ -1120,7 +1189,7 @@ inittables (void)
@@ -1185,7 +1254,7 @@ inittables (void)
fold_toupper[i] = toupper (i);
}
@ -2558,7 +2562,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
/* If we're not in the "C" locale, read different names for months. */
if (hard_LC_TIME)
{
@@ -1202,6 +1271,64 @@ specify_nmerge (int oi, char c, char con
@@ -1268,6 +1337,64 @@ specify_nmerge (int oi, char c, char con
xstrtol_fatal (e, oi, c, long_options, s);
}
@ -2623,7 +2627,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
/* Specify the amount of main memory to use when sorting. */
static void
specify_sort_size (int oi, char c, char const *s)
@@ -1412,7 +1539,7 @@ buffer_linelim (struct buffer const *buf
@@ -1478,7 +1605,7 @@ buffer_linelim (struct buffer const *buf
by KEY in LINE. */
static char *
@ -2632,7 +2636,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
{
char *ptr = line->text, *lim = ptr + line->length - 1;
size_t sword = key->sword;
@@ -1421,10 +1548,10 @@ begfield (const struct line *line, const
@@ -1487,10 +1614,10 @@ begfield (const struct line *line, const
/* The leading field separator itself is included in a field when -t
is absent. */
@ -2645,7 +2649,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
++ptr;
if (ptr < lim)
++ptr;
@@ -1450,11 +1577,70 @@ begfield (const struct line *line, const
@@ -1516,11 +1643,70 @@ begfield (const struct line *line, const
return ptr;
}
@ -2717,7 +2721,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
{
char *ptr = line->text, *lim = ptr + line->length - 1;
size_t eword = key->eword, echar = key->echar;
@@ -1469,10 +1655,10 @@ limfield (const struct line *line, const
@@ -1535,10 +1721,10 @@ limfield (const struct line *line, const
`beginning' is the first character following the delimiting TAB.
Otherwise, leave PTR pointing at the first `blank' character after
the preceding field. */
@ -2730,7 +2734,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
++ptr;
if (ptr < lim && (eword || echar))
++ptr;
@@ -1518,10 +1704,10 @@ limfield (const struct line *line, const
@@ -1584,10 +1770,10 @@ limfield (const struct line *line, const
*/
/* Make LIM point to the end of (one byte past) the current field. */
@ -2743,7 +2747,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
if (newlim)
lim = newlim;
}
@@ -1552,6 +1738,113 @@ limfield (const struct line *line, const
@@ -1618,6 +1804,113 @@ limfield (const struct line *line, const
return ptr;
}
@ -2857,7 +2861,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
/* Fill BUF reading from FP, moving buf->left bytes from the end
of buf->buf to the beginning first. If EOF is reached and the
file wasn't terminated by a newline, supply one. Set up BUF's line
@@ -1634,8 +1927,24 @@ fillbuf (struct buffer *buf, FILE *fp, c
@@ -1700,8 +1993,24 @@ fillbuf (struct buffer *buf, FILE *fp, c
else
{
if (key->skipsblanks)
@ -2884,7 +2888,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
line->keybeg = line_start;
}
}
@@ -1673,7 +1982,7 @@ fillbuf (struct buffer *buf, FILE *fp, c
@@ -1739,7 +2048,7 @@ fillbuf (struct buffer *buf, FILE *fp, c
hideously fast. */
static int
@ -2893,7 +2897,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
{
while (blanks[to_uchar (*a)])
a++;
@@ -1782,6 +2091,25 @@ human_numcompare (const char *a, const c
@@ -1848,6 +2157,25 @@ human_numcompare (const char *a, const c
: strnumcmp (a, b, decimal_point, thousands_sep));
}
@ -2919,7 +2923,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
static int
general_numcompare (const char *sa, const char *sb)
{
@@ -1815,7 +2143,7 @@ general_numcompare (const char *sa, cons
@@ -1881,7 +2209,7 @@ general_numcompare (const char *sa, cons
Return 0 if the name in S is not recognized. */
static int
@ -2928,7 +2932,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
{
size_t lo = 0;
size_t hi = MONTHS_PER_YEAR;
@@ -1996,11 +2324,79 @@ compare_version (char *restrict texta, s
@@ -2062,11 +2390,79 @@ compare_version (char *restrict texta, s
return diff;
}
@ -3009,7 +3013,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
{
struct keyfield *key = keylist;
@@ -2180,6 +2576,179 @@ keycompare (const struct line *a, const
@@ -2246,6 +2642,179 @@ keycompare (const struct line *a, const
return key->reverse ? -diff : diff;
}
@ -3189,7 +3193,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
/* Compare two lines A and B, returning negative, zero, or positive
depending on whether A compares less than, equal to, or greater than B. */
@@ -3178,7 +3747,7 @@ main (int argc, char **argv)
@@ -3244,7 +3813,7 @@ main (int argc, char **argv)
initialize_exit_failure (SORT_FAILURE);
hard_LC_COLLATE = hard_locale (LC_COLLATE);
@ -3198,7 +3202,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
hard_LC_TIME = hard_locale (LC_TIME);
#endif
@@ -3199,6 +3768,27 @@ main (int argc, char **argv)
@@ -3265,6 +3834,27 @@ main (int argc, char **argv)
thousands_sep = -1;
}
@ -3226,7 +3230,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
have_read_stdin = false;
inittables ();
@@ -3459,13 +4049,35 @@ main (int argc, char **argv)
@@ -3536,13 +4126,35 @@ main (int argc, char **argv)
case 't':
{
@ -3266,7 +3270,7 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
else
{
/* Provoke with `sort -txx'. Complain about
@@ -3476,9 +4088,12 @@ main (int argc, char **argv)
@@ -3553,9 +4165,12 @@ main (int argc, char **argv)
quote (optarg));
}
}
@ -3281,10 +3285,10 @@ diff -urNp coreutils-8.0-orig/src/sort.c coreutils-8.0/src/sort.c
}
break;
diff -urNp coreutils-8.0-orig/src/unexpand.c coreutils-8.0/src/unexpand.c
--- coreutils-8.0-orig/src/unexpand.c 2009-09-29 15:27:54.000000000 +0200
+++ coreutils-8.0/src/unexpand.c 2009-10-07 10:07:16.000000000 +0200
@@ -38,11 +38,28 @@
diff -urNp coreutils-8.5-orig/src/unexpand.c coreutils-8.5/src/unexpand.c
--- coreutils-8.5-orig/src/unexpand.c 2010-01-01 14:06:47.000000000 +0100
+++ coreutils-8.5/src/unexpand.c 2010-04-26 14:24:33.000000000 +0200
@@ -39,11 +39,28 @@
#include <stdio.h>
#include <getopt.h>
#include <sys/types.h>
@ -3313,7 +3317,7 @@ diff -urNp coreutils-8.0-orig/src/unexpand.c coreutils-8.0/src/unexpand.c
/* The official name of this program (e.g., no `g' prefix). */
#define PROGRAM_NAME "unexpand"
@@ -102,6 +119,208 @@ static struct option const longopts[] =
@@ -103,6 +120,208 @@ static struct option const longopts[] =
{NULL, 0, NULL, 0}
};
@ -3522,7 +3526,7 @@ diff -urNp coreutils-8.0-orig/src/unexpand.c coreutils-8.0/src/unexpand.c
void
usage (int status)
{
@@ -523,7 +742,12 @@ main (int argc, char **argv)
@@ -524,7 +743,12 @@ main (int argc, char **argv)
file_list = (optind < argc ? &argv[optind] : stdin_argv);
@ -3536,10 +3540,10 @@ diff -urNp coreutils-8.0-orig/src/unexpand.c coreutils-8.0/src/unexpand.c
if (have_read_stdin && fclose (stdin) != 0)
error (EXIT_FAILURE, errno, "-");
diff -urNp coreutils-8.0-orig/src/uniq.c coreutils-8.0/src/uniq.c
--- coreutils-8.0-orig/src/uniq.c 2009-09-23 10:25:44.000000000 +0200
+++ coreutils-8.0/src/uniq.c 2009-10-07 10:07:16.000000000 +0200
@@ -22,6 +22,16 @@
diff -urNp coreutils-8.5-orig/src/uniq.c coreutils-8.5/src/uniq.c
--- coreutils-8.5-orig/src/uniq.c 2010-03-13 16:14:09.000000000 +0100
+++ coreutils-8.5/src/uniq.c 2010-04-26 14:24:33.000000000 +0200
@@ -21,6 +21,16 @@
#include <getopt.h>
#include <sys/types.h>
@ -3905,18 +3909,18 @@ diff -urNp coreutils-8.0-orig/src/uniq.c coreutils-8.0/src/uniq.c
skip_chars = 0;
skip_fields = 0;
check_chars = SIZE_MAX;
diff -urNp coreutils-8.0-orig/tests/Makefile.am coreutils-8.0/tests/Makefile.am
--- coreutils-8.0-orig/tests/Makefile.am 2009-09-29 16:25:44.000000000 +0200
+++ coreutils-8.0/tests/Makefile.am 2009-10-07 10:07:16.000000000 +0200
@@ -208,6 +208,7 @@ TESTS = \
diff -urNp coreutils-8.5-orig/tests/Makefile.am coreutils-8.5/tests/Makefile.am
--- coreutils-8.5-orig/tests/Makefile.am 2010-04-26 14:24:10.000000000 +0200
+++ coreutils-8.5/tests/Makefile.am 2010-04-26 14:24:33.000000000 +0200
@@ -224,6 +224,7 @@ TESTS = \
misc/sort-compress \
misc/sort-continue \
misc/sort-files0-from \
+ misc/sort-mb-tests \
misc/sort-merge \
misc/sort-merge-fdlimit \
misc/sort-rand \
@@ -452,6 +453,10 @@ TESTS = \
misc/sort-month \
@@ -475,6 +476,10 @@ TESTS = \
$(root_tests)
pr_data = \
@ -3927,9 +3931,9 @@ diff -urNp coreutils-8.0-orig/tests/Makefile.am coreutils-8.0/tests/Makefile.am
pr/0F \
pr/0FF \
pr/0FFnt \
diff -urNp coreutils-8.0-orig/tests/misc/cut coreutils-8.0/tests/misc/cut
--- coreutils-8.0-orig/tests/misc/cut 2009-09-21 14:29:33.000000000 +0200
+++ coreutils-8.0/tests/misc/cut 2009-10-07 10:07:16.000000000 +0200
diff -urNp coreutils-8.5-orig/tests/misc/cut coreutils-8.5/tests/misc/cut
--- coreutils-8.5-orig/tests/misc/cut 2010-01-01 14:06:47.000000000 +0100
+++ coreutils-8.5/tests/misc/cut 2010-04-26 14:24:33.000000000 +0200
@@ -26,7 +26,7 @@ use strict;
my $prog = 'cut';
my $try = "Try \`$prog --help' for more information.\n";
@ -3948,41 +3952,41 @@ diff -urNp coreutils-8.0-orig/tests/misc/cut coreutils-8.0/tests/misc/cut
['inval2', qw(-f -), {IN=>''}, {OUT=>''}, {EXIT=>1}, {ERR=>$no_endpoint}],
['inval3', '-f', '4,-', {IN=>''}, {OUT=>''}, {EXIT=>1}, {ERR=>$no_endpoint}],
['inval4', '-f', '1-2,-', {IN=>''}, {OUT=>''}, {EXIT=>1}, {ERR=>$no_endpoint}],
diff -urNp coreutils-8.0-orig/tests/misc/mb1.I coreutils-8.0/tests/misc/mb1.I
--- coreutils-8.0-orig/tests/misc/mb1.I 1970-01-01 01:00:00.000000000 +0100
+++ coreutils-8.0/tests/misc/mb1.I 2009-10-07 10:07:16.000000000 +0200
diff -urNp coreutils-8.5-orig/tests/misc/mb1.I coreutils-8.5/tests/misc/mb1.I
--- coreutils-8.5-orig/tests/misc/mb1.I 1970-01-01 01:00:00.000000000 +0100
+++ coreutils-8.5/tests/misc/mb1.I 2010-04-26 14:24:33.000000000 +0200
@@ -0,0 +1,4 @@
+Apple10
+Banana5
+Citrus20
+Cherry30
diff -urNp coreutils-8.0-orig/tests/misc/mb1.X coreutils-8.0/tests/misc/mb1.X
--- coreutils-8.0-orig/tests/misc/mb1.X 1970-01-01 01:00:00.000000000 +0100
+++ coreutils-8.0/tests/misc/mb1.X 2009-10-07 10:07:16.000000000 +0200
diff -urNp coreutils-8.5-orig/tests/misc/mb1.X coreutils-8.5/tests/misc/mb1.X
--- coreutils-8.5-orig/tests/misc/mb1.X 1970-01-01 01:00:00.000000000 +0100
+++ coreutils-8.5/tests/misc/mb1.X 2010-04-26 14:24:33.000000000 +0200
@@ -0,0 +1,4 @@
+Banana5
+Apple10
+Citrus20
+Cherry30
diff -urNp coreutils-8.0-orig/tests/misc/mb2.I coreutils-8.0/tests/misc/mb2.I
--- coreutils-8.0-orig/tests/misc/mb2.I 1970-01-01 01:00:00.000000000 +0100
+++ coreutils-8.0/tests/misc/mb2.I 2009-10-07 10:07:16.000000000 +0200
diff -urNp coreutils-8.5-orig/tests/misc/mb2.I coreutils-8.5/tests/misc/mb2.I
--- coreutils-8.5-orig/tests/misc/mb2.I 1970-01-01 01:00:00.000000000 +0100
+++ coreutils-8.5/tests/misc/mb2.I 2010-04-26 14:24:33.000000000 +0200
@@ -0,0 +1,4 @@
+Apple1020
+Banana530
+Citrus205
+Cherry3010
diff -urNp coreutils-8.0-orig/tests/misc/mb2.X coreutils-8.0/tests/misc/mb2.X
--- coreutils-8.0-orig/tests/misc/mb2.X 1970-01-01 01:00:00.000000000 +0100
+++ coreutils-8.0/tests/misc/mb2.X 2009-10-07 10:07:16.000000000 +0200
diff -urNp coreutils-8.5-orig/tests/misc/mb2.X coreutils-8.5/tests/misc/mb2.X
--- coreutils-8.5-orig/tests/misc/mb2.X 1970-01-01 01:00:00.000000000 +0100
+++ coreutils-8.5/tests/misc/mb2.X 2010-04-26 14:24:33.000000000 +0200
@@ -0,0 +1,4 @@
+Citrus205
+Cherry3010
+Apple1020
+Banana530
diff -urNp coreutils-8.0-orig/tests/misc/sort-mb-tests coreutils-8.0/tests/misc/sort-mb-tests
--- coreutils-8.0-orig/tests/misc/sort-mb-tests 1970-01-01 01:00:00.000000000 +0100
+++ coreutils-8.0/tests/misc/sort-mb-tests 2009-10-07 10:07:16.000000000 +0200
diff -urNp coreutils-8.5-orig/tests/misc/sort-mb-tests coreutils-8.5/tests/misc/sort-mb-tests
--- coreutils-8.5-orig/tests/misc/sort-mb-tests 1970-01-01 01:00:00.000000000 +0100
+++ coreutils-8.5/tests/misc/sort-mb-tests 2010-04-26 14:24:33.000000000 +0200
@@ -0,0 +1,58 @@
+#! /bin/sh
+case $# in

View File

@ -1,6 +1,6 @@
diff -urNp coreutils-8.1-orig/configure.ac coreutils-8.1/configure.ac
--- coreutils-8.1-orig/configure.ac 2009-11-14 15:01:44.000000000 +0100
+++ coreutils-8.1/configure.ac 2009-11-20 13:00:10.000000000 +0100
diff -urNp coreutils-8.4-orig/configure.ac coreutils-8.4/configure.ac
--- coreutils-8.4-orig/configure.ac 2010-01-11 18:20:42.000000000 +0100
+++ coreutils-8.4/configure.ac 2010-02-12 10:17:46.000000000 +0100
@@ -126,6 +126,13 @@ if test "$gl_gcc_warnings" = yes; then
AC_SUBST([GNULIB_WARN_CFLAGS])
fi
@ -15,10 +15,10 @@ diff -urNp coreutils-8.1-orig/configure.ac coreutils-8.1/configure.ac
AC_FUNC_FORK
optional_bin_progs=
diff -urNp coreutils-8.1-orig/doc/coreutils.texi coreutils-8.1/doc/coreutils.texi
--- coreutils-8.1-orig/doc/coreutils.texi 2009-11-10 13:57:56.000000000 +0100
+++ coreutils-8.1/doc/coreutils.texi 2009-11-20 13:00:10.000000000 +0100
@@ -15070,8 +15070,11 @@ to certain shells, etc.).
diff -urNp coreutils-8.4-orig/doc/coreutils.texi coreutils-8.4/doc/coreutils.texi
--- coreutils-8.4-orig/doc/coreutils.texi 2010-01-03 18:06:20.000000000 +0100
+++ coreutils-8.4/doc/coreutils.texi 2010-02-12 10:17:46.000000000 +0100
@@ -15081,8 +15081,11 @@ to certain shells, etc.).
@findex syslog
@command{su} can optionally be compiled to use @code{syslog} to report
failed, and optionally successful, @command{su} attempts. (If the system
@ -32,7 +32,7 @@ diff -urNp coreutils-8.1-orig/doc/coreutils.texi coreutils-8.1/doc/coreutils.tex
The program accepts the following options. Also see @ref{Common options}.
@@ -15113,6 +15116,8 @@ environment variables except @env{TERM},
@@ -15124,6 +15127,8 @@ environment variables except @env{TERM},
@env{PATH} to a compiled-in default value. Change to @var{user}'s home
directory. Prepend @samp{-} to the shell's name, intended to make it
read its login startup file(s).
@ -41,7 +41,7 @@ diff -urNp coreutils-8.1-orig/doc/coreutils.texi coreutils-8.1/doc/coreutils.tex
@item -m
@itemx -p
@@ -15152,33 +15157,6 @@ Exit status:
@@ -15163,33 +15168,6 @@ Exit status:
the exit status of the subshell otherwise
@end display
@ -75,10 +75,10 @@ diff -urNp coreutils-8.1-orig/doc/coreutils.texi coreutils-8.1/doc/coreutils.tex
@node timeout invocation
@section @command{timeout}: Run a command with a time limit
diff -urNp coreutils-8.1-orig/src/Makefile.am coreutils-8.1/src/Makefile.am
--- coreutils-8.1-orig/src/Makefile.am 2009-11-06 18:04:10.000000000 +0100
+++ coreutils-8.1/src/Makefile.am 2009-11-20 13:00:10.000000000 +0100
@@ -359,7 +359,7 @@ factor_LDADD += $(LIB_GMP)
diff -urNp coreutils-8.4-orig/src/Makefile.am coreutils-8.4/src/Makefile.am
--- coreutils-8.4-orig/src/Makefile.am 2010-01-03 18:06:20.000000000 +0100
+++ coreutils-8.4/src/Makefile.am 2010-02-12 10:17:46.000000000 +0100
@@ -361,7 +361,7 @@ factor_LDADD += $(LIB_GMP)
uptime_LDADD += $(GETLOADAVG_LIBS)
# for crypt
@ -87,9 +87,9 @@ diff -urNp coreutils-8.1-orig/src/Makefile.am coreutils-8.1/src/Makefile.am
# for various ACL functions
copy_LDADD += $(LIB_ACL)
diff -urNp coreutils-8.1-orig/src/su.c coreutils-8.1/src/su.c
--- coreutils-8.1-orig/src/su.c 2009-11-20 12:59:39.000000000 +0100
+++ coreutils-8.1/src/su.c 2009-11-20 13:00:10.000000000 +0100
diff -urNp coreutils-8.4-orig/src/su.c coreutils-8.4/src/su.c
--- coreutils-8.4-orig/src/su.c 2010-02-12 10:15:15.000000000 +0100
+++ coreutils-8.4/src/su.c 2010-02-12 10:24:29.000000000 +0100
@@ -37,6 +37,16 @@
restricts who can su to UID 0 accounts. RMS considers that to
be fascist.
@ -339,7 +339,7 @@ diff -urNp coreutils-8.1-orig/src/su.c coreutils-8.1/src/su.c
shell_basename = last_component (shell);
arg0 = xmalloc (strlen (shell_basename) + 2);
arg0[0] = '-';
@@ -344,6 +496,66 @@ run_shell (char const *shell, char const
@@ -344,6 +496,67 @@ run_shell (char const *shell, char const
error (0, errno, "%s", shell);
exit (exit_status);
}
@ -377,12 +377,12 @@ diff -urNp coreutils-8.1-orig/src/su.c coreutils-8.1/src/su.c
+
+ pid = waitpid(-1, &status, WUNTRACED);
+
+ if (WIFSTOPPED(status)) {
+ kill(getpid(), SIGSTOP);
+ if (((pid_t)-1 != pid) && (0 != WIFSTOPPED (status))) {
+ kill(getpid(), WSTOPSIG(status));
+ /* once we get here, we must have resumed */
+ kill(pid, SIGCONT);
+ }
+ } while (WIFSTOPPED(status));
+ } while (0 != WIFSTOPPED(status));
+ }
+
+ if (caught) {
@ -401,12 +401,13 @@ diff -urNp coreutils-8.1-orig/src/su.c coreutils-8.1/src/su.c
+ fprintf(stderr, " ...killed.\n");
+ exit(-1);
+ }
+ exit (WEXITSTATUS(status));
+ exit ((0 != WIFEXITED (status)) ? WEXITSTATUS (status)
+ : WTERMSIG (status) + 128);
+#endif /* USE_PAM */
}
/* Return true if SHELL is a restricted shell (one not returned by
@@ -511,9 +723,9 @@ main (int argc, char **argv)
@@ -511,9 +724,9 @@ main (int argc, char **argv)
shell = xstrdup (shell ? shell : pw->pw_shell);
modify_environment (pw, shell);
@ -418,7 +419,7 @@ diff -urNp coreutils-8.1-orig/src/su.c coreutils-8.1/src/su.c
/* error() flushes stderr, but does not check for write failure.
Normally, we would catch this via our atexit() hook of
@@ -523,5 +735,5 @@ main (int argc, char **argv)
@@ -523,5 +736,5 @@ main (int argc, char **argv)
if (ferror (stderr))
exit (EXIT_CANCELED);

View File

@ -1,17 +1,16 @@
# $Id: PKGBUILD 48163 2009-07-31 20:55:39Z tpowa $
# $Id: PKGBUILD 76085 2010-04-07 18:00:10Z tpowa $
# Maintainer: judd <jvinet@zeroflux.org>
pkgname=cpio
pkgver=2.10
pkgrel=1
pkgver=2.11
pkgrel=2
pkgdesc="A tool to copy files into or out of a cpio or tar archive"
arch=(i686 x86_64)
license=('GPL')
url="http://www.gnu.org/software/cpio"
groups=('base')
depends=('glibc')
source=(ftp://ftp.gnu.org/gnu/cpio/cpio-${pkgver}.tar.gz)
install=cpio.install
md5sums=('351ab3d38d8949913e478cc23b9d6ad4')
md5sums=('1112bb6c45863468b5496ba128792f6c')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
@ -26,4 +25,3 @@ build() {
# remove infodir
rm $pkgdir/usr/share/info/dir
}

View File

@ -1,27 +1,29 @@
# $Id: PKGBUILD 30702 2009-03-21 13:49:50Z hugo $
# $Id: PKGBUILD 79080 2010-04-30 07:02:25Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com>
pkgname=cracklib
pkgver=2.8.13
pkgrel=2
pkgver=2.8.16
pkgrel=1
pkgdesc="Password Checking Library"
arch=(i686 x86_64)
arch=('i686' 'x86_64')
license=('GPL')
url="http://sourceforge.net/projects/cracklib"
groups=('base')
depends=('glibc' 'zlib')
options=('!libtool')
source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
md5sums=('5beb4c6b3c31c83fc98c4c225b25cd94')
build() {
cd $startdir/src/$pkgname-$pkgver
./configure --prefix=/usr --without-python
make || return 1
mkdir -p $startdir/pkg/usr/share/dict
make DESTDIR=$startdir/pkg install
cp dicts/cracklib-small $startdir/pkg/usr/share/dict
sh ./util/cracklib-format dicts/cracklib-small \
| sh ./util/cracklib-packer $startdir/pkg/usr/share/cracklib/pw_dict
}
package() {
cd $startdir/src/$pkgname-$pkgver
make DESTDIR=$pkgdir install
install -Dm644 dicts/cracklib-small $pkgdir/usr/share/dict/cracklib-small
sh ./util/cracklib-format dicts/cracklib-small \
| sh ./util/cracklib-packer $pkgdir/usr/share/cracklib/pw_dict
}
md5sums=('3bfb22db8fcffd019463ee415a1b25b7')

View File

@ -1,40 +1,44 @@
# $Id: PKGBUILD 75217 2010-04-01 02:35:37Z pierre $
# Maintainer: Eric Belanger <eric@archlinux.org>
# $Id: PKGBUILD 77510 2010-04-15 02:24:30Z dgriffiths $
# Contributor: Eric Belanger <eric@archlinux.org>
# Contributor: Lucien Immink <l.immink@student.fnt.hvu.nl>
# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=curl
pkgver=7.20.0
pkgrel=2
pkgver=7.20.1
pkgrel=1
pkgdesc="An URL retrival utility and library"
arch=('i686' 'x86_64')
url="http://curl.haxx.se"
license=('MIT')
depends=('zlib' 'openssl' 'bash' 'ca-certificates')
options=('!libtool')
source=(http://curl.haxx.se/download/${pkgname}-${pkgver}.tar.bz2)
md5sums=('3dda78c4a808d9a779dc3a2ae81b47d8')
sha1sums=('89215fc4c4cd1e42134d6117255c401372e628de')
source=("http://curl.haxx.se/download/${pkgname}-${pkgver}.tar.bz2")
md5sums=('244b16b2a38c70e47130c8494b7371b9')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
./configure \
--with-random=/dev/urandom \
--prefix=/usr \
--mandir=/usr/share/man \
--disable-dependency-tracking \
--enable-ipv6 \
--disable-ldaps \
--disable-ldap \
--enable-manual \
--enable-versioned-symbols \
--with-ca-path=/etc/ssl/certs \
--without-libidn || return 1
make || return 1
cd ${srcdir}/${pkgname}-${pkgver}
./configure \
--with-random=/dev/urandom \
--prefix=/usr \
--mandir=/usr/share/man \
--disable-dependency-tracking \
--enable-ipv6 \
--disable-ldaps \
--disable-ldap \
--enable-manual \
--enable-versioned-symbols \
--with-ca-path=/etc/ssl/certs \
--without-libidn || return 1
make || return 1
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install || return 1
install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" || return 1
install -D -m644 docs/libcurl/libcurl.m4 "${pkgdir}/usr/share/aclocal/libcurl.m4" || return 1
cd ${srcdir}/${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install || return 1
install -Dm644 COPYING \
${pkgdir}/usr/share/licenses/${pkgname}/COPYING || return 1
install -Dm644 docs/libcurl/libcurl.m4 \
${pkgdir}/usr/share/aclocal/libcurl.m4 || return 1
}

13
curl/m4-typo.patch Normal file
View File

@ -0,0 +1,13 @@
diff --git a/docs/libcurl/libcurl.m4 b/docs/libcurl/libcurl.m4
index ce8e476..50dc20d 100644
--- a/docs/libcurl/libcurl.m4
+++ b/docs/libcurl/libcurl.m4
@@ -198,7 +198,7 @@ x=CURLOPT_VERBOSE;
# We don't have --protocols, so just assume that all
# protocols are available
- _libcurl_protocols="HTTP FTP FILE TELNET LDAP DICT TFTP
+ _libcurl_protocols="HTTP FTP FILE TELNET LDAP DICT TFTP"
if test x$libcurl_feature_SSL = xyes ; then
_libcurl_protocols="$_libcurl_protocols HTTPS"

View File

@ -1,18 +1,18 @@
# $Id: PKGBUILD 62814 2010-01-12 14:36:20Z allan $
# $Id: PKGBUILD 76949 2010-04-09 08:14:30Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
pkgname=db
pkgver=4.8.26
_basever=4.8.26
pkgrel=1
pkgrel=2
pkgdesc="The Berkeley DB embedded database system"
arch=('i686' 'x86_64')
url="http://www.oracle.com/technology/software/products/berkeley-db/index.html"
license=('custom')
groups=('base')
depends=('gcc-libs' 'sh')
options=('!libtool')
conflicts=('db4')
options=('!libtool' 'force')
install=db.install
source=(http://download-uk.oracle.com/berkeley-db/db-${_basever}.tar.gz)
md5sums=('3476bac9ec0f3c40729c8a404151d5e3')
@ -22,6 +22,10 @@ build() {
../dist/configure --prefix=/usr --enable-compat185 \
--enable-shared --enable-static --enable-cxx
make LIBSO_LIBS=-lpthread || return 1
}
package() {
cd ${srcdir}/$pkgname-${_basever}/build_unix
make DESTDIR=${pkgdir} install
rm -rf ${pkgdir}/usr/docs
install -Dm644 ${srcdir}/${pkgname}-${_basever}/LICENSE \

View File

@ -1,5 +1,5 @@
post_upgrade() {
echo "ATTENTION DB PACKAGE:"
echo "Please consider to run db_upgrade on Berkeley DB databases with a major db version number update."
if [ "$(vercmp $2 4.8)" -lt 0 ]; then
echo " >> Major version update. Consider running db_upgrade on Berkeley DB databases."
fi
}

View File

@ -1,10 +1,10 @@
# $Id: PKGBUILD 71152 2010-03-04 21:15:41Z ronald $
# $Id: PKGBUILD 77161 2010-04-11 11:22:03Z ronald $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Contributor: Tom Killian <tom.archlinux.org>
# Contributor: Judd Vinet <jvinet.zeroflux.org>
pkgname=dhcpcd
pkgver=5.2.1
pkgver=5.2.2
pkgrel=1
pkgdesc="RFC2131 compliant DHCP client daemon"
url="http://roy.marples.name/dhcpcd/"
@ -16,7 +16,7 @@ backup=('etc/conf.d/dhcpcd' 'etc/dhcpcd.conf')
options=('emptydirs') # We Need the Empty /var/lib/dhcpcd Directory
source=("http://roy.marples.name/downloads/$pkgname/$pkgname-$pkgver.tar.bz2" \
'dhcpcd.conf.d')
md5sums=('e3bf901c54553673c376b7bcc63b2ff3'
md5sums=('30a161c93bd4548a28d97041329bf335'
'372d33485556982b64a97f301e17c5dd')
build() {

View File

@ -1,24 +1,28 @@
# $Id: PKGBUILD 66443 2010-01-31 09:13:49Z allan $
# $Id: PKGBUILD 80291 2010-05-14 23:41:28Z eric $
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
pkgname=dialog
pkgver=1.1_20100119
_pkgver=1.1-20100119
pkgrel=1
pkgrel=2
pkgdesc="A tool to display dialog boxes from shell scripts"
arch=('i686' 'x86_64')
url="http://invisible-island.net/dialog/"
license=('GPL')
groups=('base')
depends=('ncurses>=5.6-8')
source=(ftp://invisible-island.net/${pkgname}/${pkgname}-$_pkgver.tgz)
md5sums=('3d62219658fdddf3c6247fb45831a5d0')
sha1sums=('ebf5fa7419601425a10446215cc477d92c191c5a')
build() {
cd ${srcdir}/$pkgname-$_pkgver
./configure --prefix=/usr --mandir=/usr/share/man \
--with-ncursesw --enable-nls
make || return 1
}
package() {
cd ${srcdir}/$pkgname-$_pkgver
make DESTDIR=${pkgdir} install
}

View File

@ -1,23 +1,23 @@
# $Id: PKGBUILD 68712 2010-02-14 00:29:45Z allan $
# $Id: PKGBUILD 79537 2010-05-04 12:05:07Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
pkgname=diffutils
pkgver=2.9
pkgver=3.0
pkgrel=1
pkgdesc="Utility programs used for creating patch files"
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/diffutils"
license=('GPL3')
groups=('base')
depends=('glibc')
depends=('glibc' 'sh')
install=diffutils.install
source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
md5sums=('d6bc1bdc874ddb14cfed4d1655a0dbbe')
source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz)
md5sums=('7624eb7e6b53ea3ce38958a092d2216e')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
./configure --prefix=/usr
make || return 1
}

View File

@ -1,40 +1,35 @@
# $Id: PKGBUILD 72536 2010-03-18 08:59:58Z tpowa $
# $Id: PKGBUILD 77425 2010-04-12 20:48:57Z thomas $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
#Contributor: Urs Wolfer <uwolfer @ fwo.ch>
pkgname=dmraid
pkgver=1.0.0.rc16
pkgrel=3
pkgver=1.0.0.rc16+CVS
pkgrel=2
pkgdesc="Device mapper RAID interface"
url="http://people.redhat.com/~heinzm/sw/dmraid/"
depends=('device-mapper>=2.0.54')
arch=('i686' 'x86_64')
license=('GPL')
source=(http://people.redhat.com/~heinzm/sw/dmraid/src/$pkgname-$pkgver.tar.bz2
source=(ftp://ftp.archlinux.org/other/dmraid/$pkgname-$pkgver.tar.bz2
#http://people.redhat.com/~heinzm/sw/dmraid/src/$pkgname-$pkgver.tar.bz2
dmraid_install
dmraid_hook)
install=dmraid.install
md5sums=('32832c1dfd7e72cd4355490322fca68a'
'72b9ea8cf90fb8b6a3f3147fb7777fb4'
'b1fcca57a711be68b57c5ec8614d87cb')
md5sums=('c0de87073de96b311d26ab0170b2a753'
'd01908b414e1686c0f3233ff37de78a5'
'0a748b6e78b156f2f9dda45fc629651f')
build() {
cd $srcdir/$pkgname/$pkgver
cd "$srcdir"/$pkgname/$pkgver
# create static bin
./configure --enable-static_link --prefix=/usr --enable-led --enable-intel_led
make || return 1
make DESTDIR=$pkgdir exec_prefix=$pkgdir/usr install
mv $pkgdir/usr/sbin/dmraid $pkgdir/usr/sbin/dmraid.static
make clean
./configure --enable-led --enable-intel_led
make || return 1
make DESTDIR=$pkgdir exec_prefix=$pkgdir/ mandir=$pkgdir/usr/share/man includedir=$pkgdir/usr/include install || return 1
mkdir -p $pkgdir/var/lock/dmraid
chmod 1777 $pkgdir/var/lock/
install -D -m644 $srcdir/dmraid_install $pkgdir/lib/initcpio/install/dmraid
install -D -m644 $srcdir/dmraid_hook $pkgdir/lib/initcpio/hooks/dmraid
# fix .a file
chmod 644 $pkgdir/lib/libdmraid.a
make DESTDIR="$pkgdir" mandir=/usr/share/man includedir=/usr/include install || return 1
mkdir -p "$pkgdir"/var/lock/dmraid
chmod 1777 "$pkgdir"/var/lock/
install -D -m644 "$srcdir"/dmraid_install "$pkgdir"/lib/initcpio/install/dmraid
install -D -m644 "$srcdir"/dmraid_hook "$pkgdir"/lib/initcpio/hooks/dmraid
# fix permissions
chmod 644 "$pkgdir"/lib/libdmraid.a
chmod 644 "$pkgdir"/usr/include/dmraid/*
}

View File

@ -3,14 +3,16 @@ run_hook ()
{
/sbin/modprobe -q dm-mod >/dev/null 2>&1
/sbin/modprobe -q dm-mirror >/dev/null 2>&1
#fix for udev creating /dev/mapper/control
sleep 0.5
if [ -e "/sys/class/misc/device-mapper" ]; then
if [ ! -e "/dev/mapper/control" ]; then
/bin/mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
fi
[ "${quiet}" = "y" ] && DMRAIDQUIET=">/dev/null"
msg ":: Activating dmraid arrays..."
/sbin/dmraid -ay -Z $DMRAIDQUIET
# prevent any event monitoring calls with -I
if [ "${quiet}" = "y" ]; then
/sbin/dmraid -ay -I -Z >/dev/null
else
/sbin/dmraid -ay -I -Z
fi
fi
}

View File

@ -3,12 +3,10 @@
install ()
{
MODULES=" dm-mod dm-mirror "
BINARIES="dmsetup"
BINARIES="/sbin/dmraid /sbin/dmsetup"
FILES=""
SCRIPT="dmraid"
add_file "/usr/sbin/dmraid.static" "/sbin/dmraid"
add_dir "/dev/mapper"
add_binary "/lib/libdmraid-events-isw.so"
add_file "/lib/udev/rules.d/10-dm.rules"
add_file "/lib/udev/rules.d/13-dm-disk.rules"
add_file "/lib/udev/rules.d/95-dm-notify.rules"

View File

@ -1,16 +1,16 @@
# $Id: PKGBUILD 47762 2009-07-26 18:57:16Z andyrtr $
# $Id: PKGBUILD 77800 2010-04-18 04:12:20Z allan $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgname=ed
pkgver=1.4
pkgrel=1
pkgrel=2
pkgdesc="A POSIX-compliant line editor"
arch=('i686' 'x86_64')
license=('GPL')
url="http://www.gnu.org/software/ed/ed.html"
install=ed.install
groups=('base-devel')
depends=('glibc')
depends=('glibc' 'sh')
options=('!emptydirs')
source=(ftp://ftp.gnu.org/gnu/ed/${pkgname}-${pkgver}.tar.gz)
md5sums=('da0ddc0e0b0bec2da4b13b0d0d1bce2b')
@ -19,10 +19,12 @@ build() {
cd ${srcdir}/${pkgname}-${pkgver}
./configure --prefix=/ --mandir=/usr/share/man --infodir=/usr/share/info
make || return 1
}
package() {
cd ${srcdir}/${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install || return 1
cd ${pkgdir}/usr/share/info
ln ed.info red.info
rm ${pkgdir}/usr/share/info/dir
}

View File

@ -3,9 +3,8 @@ filelist=(ed.info red.info)
post_install() {
[ -x usr/bin/install-info ] || return 0
for file in ${filelist[@]}; do
install-info $infodir/$file $infodir/dir 2> /dev/null
install-info $infodir/$file.gz $infodir/dir 2> /dev/null
done
}
@ -16,7 +15,7 @@ post_upgrade() {
pre_remove() {
[ -x usr/bin/install-info ] || return 0
for file in ${filelist[@]}; do
install-info --delete $infodir/$file $infodir/dir 2> /dev/null
install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
done
}

View File

@ -1,32 +1,32 @@
# $Id: PKGBUILD 42593 2009-06-16 13:49:59Z tpowa $
# Maintainer: judd <jvinet@zeroflux.org>
# $Id: PKGBUILD 77807 2010-04-18 04:29:16Z allan $
# Maintainer:
pkgname=findutils
pkgver=4.4.2
pkgrel=1
pkgrel=2
pkgdesc="GNU utilities to locate files"
arch=(i686 x86_64)
arch=('i686' 'x86_64')
license=('GPL3')
groups=('base')
depends=('glibc>=2.8')
depends=('glibc' 'sh')
url="http://www.gnu.org/software/findutils"
source=(ftp://ftp.gnu.org/pub/gnu/findutils/findutils-$pkgver.tar.gz)
install=findutils.install
md5sums=('351cc4adb07d54877fa15f75fb77d39f')
build() {
cd $startdir/src/$pkgname-$pkgver
cd $srcdir/$pkgname-$pkgver
./configure --prefix=/usr
make || return 1
# believe it or not, the Makefile really wants to remove /usr/var, so
# we let it...
mkdir -p $startdir/pkg/usr/var
make DESTDIR=$startdir/pkg install
rm -rf $startdir/pkg/usr/libexec
# remove locate utils (we use slocate instead)
rm -f $startdir/pkg/usr/bin/{locate,updatedb}
rm -f $startdir/pkg/usr/share/man/man1/{updatedb.1,locate.1}
rm -f $startdir/pkg/usr/share/man/man5/locatedb.5
rmdir $startdir/pkg/usr/var
rm -f $pkgdir/usr/share/info/dir
}
package() {
cd $srcdir/$pkgname-$pkgver
make DESTDIR=$pkgdir install
rm -rf $pkgdir/usr/{libexec,var}
# remove locate utils (we use mlocate instead)
rm -f $pkgdir/usr/bin/{locate,updatedb}
rm -f $pkgdir/usr/share/man/man1/{updatedb.1,locate.1}
rm -f $pkgdir/usr/share/man/man5/locatedb.5
}

View File

@ -4,7 +4,7 @@ filelist=(find-maint.info find.info)
post_install() {
[ -x usr/bin/install-info ] || return 0
for file in ${filelist[@]}; do
install-info $infodir/$file $infodir/dir 2> /dev/null
install-info $infodir/$file.gz $infodir/dir 2> /dev/null
done
}
@ -15,7 +15,7 @@ post_upgrade() {
pre_remove() {
[ -x usr/bin/install-info ] || return 0
for file in ${filelist[@]}; do
install-info --delete $infodir/$file $infodir/dir 2> /dev/null
install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
done
}

View File

@ -1,9 +1,9 @@
# $Id: PKGBUILD 48262 2009-08-01 10:10:27Z tpowa $
# $Id: PKGBUILD 80261 2010-05-14 07:26:51Z tpowa $
# Maintainer: dorphell <dorphell@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=gawk
pkgver=3.1.7
pkgver=3.1.8
pkgrel=1
pkgdesc="Gnu version of awk"
arch=(i686 x86_64)
@ -14,7 +14,7 @@ provides=('awk')
install=gawk.install
source=(ftp://ftp.gnu.org/pub/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
depends=('sh' 'glibc')
md5sums=('a38d5dec19320ace01f1d16c8beb1363')
md5sums=('35937a0f83f0efe7a8c2dee635624784')
build() {
cd $srcdir/$pkgname-$pkgver

View File

@ -1,4 +1,4 @@
# $Id: PKGBUILD 72661 2010-03-19 03:26:44Z allan $
# $Id: PKGBUILD 77608 2010-04-16 12:07:46Z allan $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Maintainer: Allan McRae <allan@archlinux.org>
@ -6,27 +6,27 @@
# NOTE: libtool requires rebuilt with each new gcc version
pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada')
pkgver=4.4.3
pkgrel=2
_snapshot=4.4-20100316
_libstdcppmanver=4.4.0
pkgver=4.5.0
pkgrel=1
#_snapshot=4.4-20100316
_libstdcppmanver=20100312 # Note: check source directory name when updating this
pkgdesc="The GNU Compiler Collection"
arch=('i686' 'x86_64')
license=('GPL' 'LGPL' 'custom')
url="http://gcc.gnu.org"
makedepends=('binutils>=2.20.1' 'mpfr>=2.4.2-2' 'cloog-ppl>=0.15.8' 'gcc-ada')
makedepends=('binutils>=2.20.1' 'libmpc>=0.8.1-2' 'cloog-ppl>=0.15.8' 'libelf' 'gcc-ada')
options=('!libtool' '!emptydirs')
source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,objc,ada}-${pkgver}.tar.bz2
ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc,ada}-${_snapshot}.tar.bz2
source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,objc,ada}-${pkgver}.tar.bz2
#ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc,ada}-${_snapshot}.tar.bz2
ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-man.${_libstdcppmanver}.tar.bz2
gcc_pure64.patch
gcc-hash-style-both.patch)
md5sums=('4839ab19502e14645ba83e95bee48ad1'
'354b66cc2fdd99eb7bc1cc8d5fd2d790'
'5ce1135dbba3c76c03805f3abaa920f1'
'6a4155847d6d5bae2b95ea4f4a26e3c3'
'f4c535692f67a691495d552ad4133b4b'
'3b94fe4a3cd49819bf57ecc407851b9b'
md5sums=('58eda33c3184303628f91c42a7ab15b5'
'5ab93605af40def4844eda09ca769c2d'
'670c35720f9a599ae7b469da95152552'
'8d8c01b6631b020cc6c167860fde2398'
'ff1555171b615d9dddc8001eeec42bfc'
'f9a21b9dfc174f49a09ddaacfd3ac78f'
'4030ee1c08dd1e843c0225b772360e76'
'6fd395bacbd7b6e47c7b74854b478363')
@ -57,13 +57,14 @@ build() {
echo ${pkgver} > gcc/BASE-VER
mkdir build && cd build
../configure --prefix=/usr --enable-shared \
--enable-languages=c,c++,fortran,objc,obj-c++,ada \
--enable-threads=posix --mandir=/usr/share/man --infodir=/usr/share/info \
--enable-__cxa_atexit --disable-multilib --libdir=/usr/lib \
--libexecdir=/usr/lib --enable-clocale=gnu --disable-libstdcxx-pch \
--with-tune=generic
mkdir build && cd build
../configure --prefix=/usr --enable-languages=c,c++,fortran,objc,obj-c++,ada \
--enable-shared --enable-threads=posix --enable-__cxa_atexit \
--enable-clocale=gnu --enable-lto --enable-gnu-unique-object \
--disable-multilib --disable-libstdcxx-pch \
--with-system-zlib --with-ppl --with-cloog \
--libdir=/usr/lib --libexecdir=/usr/lib \
--mandir=/usr/share/man --infodir=/usr/share/info
make || return 1
}
@ -98,7 +99,7 @@ package_gcc-libs()
package_gcc()
{
depends=('binutils>=2.20.1' 'mpfr>=2.4.2-2' 'cloog-ppl>=0.15.8')
depends=('binutils>=2.20.1' 'libmpc>=0.8.1-2' 'cloog-ppl>=0.15.8' 'libelf')
groups=('base-devel')
install=gcc.install
@ -120,9 +121,38 @@ package_gcc()
ln -sf gcc ${pkgdir}/usr/bin/cc
ln -sf g++ ${pkgdir}/usr/bin/c++
# POSIX conformance launcher scripts for c89 and c99
cat > $pkgdir/usr/bin/c89 <<"EOF"
#!/bin/sh
fl="-std=c89"
for opt; do
case "$opt" in
-ansi|-std=c89|-std=iso9899:1990) fl="";;
-std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
exit 1;;
esac
done
exec gcc $fl ${1+"$@"}
EOF
cat > $pkgdir/usr/bin/c99 <<"EOF"
#!/bin/sh
fl="-std=c99"
for opt; do
case "$opt" in
-std=c99|-std=iso9899:1999) fl="";;
-std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
exit 1;;
esac
done
exec gcc $fl ${1+"$@"}
EOF
chmod 755 $pkgdir/usr/bin/c{8,9}9
# install the libstdc++ man pages
install -dm755 ${pkgdir}/usr/share/man/man3
install -m644 ${srcdir}/libstdc++-man-${_libstdcppmanver}/man3/* \
install -m644 ${srcdir}/libstdc++-man.${_libstdcppmanver}/man3/* \
${pkgdir}/usr/share/man/man3/
# deal with conflicts...
rm -f ${pkgdir}/usr/share/man/man3/{ctime,queue,random,regex,string}.3

View File

@ -1,14 +1,15 @@
# $Id: PKGBUILD 30624 2009-03-21 03:28:13Z allan $
# Maintainer: judd <jvinet@zeroflux.org>
# $Id: PKGBUILD 77824 2010-04-18 10:04:36Z allan $
# Maintainer:
pkgname=gettext
pkgver=0.17
pkgrel=3
pkgrel=4
pkgdesc="GNU internationalization library"
arch=(i686 x86_64)
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/gettext"
license=('GPL')
groups=('base')
depends=('gcc-libs' 'acl')
depends=('gcc-libs' 'acl' 'sh')
optdepends=('cvs: for autopoint tool')
options=(!libtool)
install=gettext.install
@ -20,8 +21,9 @@ build() {
sed -i -e 's/libexpat.so.0/libexpat.so.1/' gettext-tools/src/x-glade.c
./configure --prefix=/usr --enable-csharp
make || return 1
make DESTDIR=$pkgdir install
rm -f $pkgdir/usr/share/info/dir
gzip -9 $pkgdir/usr/share/info/*
}
package() {
cd $srcdir/${pkgname}-${pkgver}
make DESTDIR=$pkgdir install
}

View File

@ -1,8 +1,8 @@
# $Id: PKGBUILD 73728 2010-03-27 10:22:17Z jgc $
# $Id: PKGBUILD 79346 2010-05-03 10:44:26Z ibiru $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=glib2
pkgver=2.24.0
pkgver=2.24.1
pkgrel=1
pkgdesc="Common C routines used by GTK+ 2.4 and other libs"
url="http://www.gtk.org/"
@ -14,7 +14,7 @@ options=('!libtool' '!docs')
source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.24/glib-${pkgver}.tar.bz2
glib2.sh
glib2.csh)
sha256sums=('7b6aa2cf21e734a6092a711bf196b8d2ddc589b971f93337610c10fa4f23400d'
sha256sums=('014c3da960bf17117371075c16495f05f36501db990851ceea658f15d2ea6d04'
'9456872cdedcc639fb679448d74b85b0facf81033e27157d2861b991823b5a2a'
'8d5626ffa361304ad3696493c0ef041d0ab10c857f6ef32116b3e2878ecf89e3')
@ -28,4 +28,6 @@ build() {
install -d "${pkgdir}/etc/profile.d"
install -m755 "${srcdir}/glib2.sh" "${pkgdir}/etc/profile.d/" || return 1
install -m755 "${srcdir}/glib2.csh" "${pkgdir}/etc/profile.d/" || return 1
chmod 755 ${pkgdir}/usr/bin/gtester-report || return 1
}

View File

@ -1,4 +1,4 @@
# $Id: PKGBUILD 72658 2010-03-19 03:22:17Z allan $
# $Id: PKGBUILD 77605 2010-04-16 12:02:10Z allan $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Maintainer: Allan McRae <allan@archlinux.org>
@ -7,7 +7,7 @@
pkgname=glibc
pkgver=2.11.1
pkgrel=2
pkgrel=3
_glibcdate=20100318
pkgdesc="GNU C Library"
arch=('i686' 'x86_64')
@ -20,15 +20,17 @@ replaces=('glibc-xen')
backup=(etc/locale.gen
etc/nscd.conf)
install=glibc.install
source=(http://konnektion.ath.cx/sources/core/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.bz2
source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.bz2
glibc-2.10-dont-build-timezone.patch
glibc-2.10-bz4781.patch
glibc-__i686.patch
nscd
locale.gen.txt
locale-gen)
md5sums=('4b7f8ed5a0ea946bd40318855449b570'
'4dadb9203b69a3210d53514bb46f41c3'
'0c5540efc51c0b93996c51b57a8540ae'
'40cd342e21f71f5e49e32622b25acc52'
'b587ee3a70c9b3713099295609afde49'
'07ac979b6ab5eeb778d55f041529d623'
'476e9113489f93b348b21e144b6a8fcf')
@ -52,6 +54,10 @@ build() {
# http://sources.redhat.com/bugzilla/show_bug.cgi?id=4781
patch -Np1 -i ${srcdir}/glibc-2.10-bz4781.patch || return 1
# http://sources.redhat.com/bugzilla/show_bug.cgi?id=411
# http://sourceware.org/ml/libc-alpha/2009-07/msg00072.html
patch -Np1 -i ${srcdir}/glibc-__i686.patch || return 1
install -dm755 ${pkgdir}/etc
touch ${pkgdir}/etc/ld.so.conf
@ -73,12 +79,16 @@ build() {
--libdir=/usr/lib --without-gd
make || return 1
}
package() {
cd ${srcdir}/glibc/glibc-build
make install_root=${pkgdir} install || return 1
# provided by kernel-headers
rm ${pkgdir}/usr/include/scsi/scsi.h
rm ${pkgdir}/etc/ld.so.cache ${pkgdir}/etc/ld.so.conf ${pkgdir}/etc/localtime
rm ${pkgdir}/etc/ld.so.cache ${pkgdir}/etc/ld.so.conf
install -dm755 ${pkgdir}/etc/rc.d
install -dm755 ${pkgdir}/usr/sbin

13
glibc/glibc-__i686.patch Normal file
View File

@ -0,0 +1,13 @@
diff -Naur glibc-old//sysdeps/i386/Makefile glibc//sysdeps/i386/Makefile
--- glibc-old//sysdeps/i386/Makefile 2010-03-18 11:52:30.000000000 +1000
+++ glibc//sysdeps/i386/Makefile 2010-04-16 15:05:50.000000000 +1000
@@ -1,6 +1,7 @@
# The mpn functions need a #define for asm syntax flavor.
-# Every i386 port in use uses gas syntax (I think).
-asm-CPPFLAGS += -DGAS_SYNTAX
+# Every i386 port in use uses gas syntax (I think). Don't replace
+# __i686 in __i686.get_pc_thunk.bx.
+asm-CPPFLAGS += -DGAS_SYNTAX -U __i686
# The i386 `long double' is a distinct type we support.
long-double-fcts = yes

View File

@ -1,16 +1,16 @@
# $Id: PKGBUILD 72907 2010-03-21 15:29:35Z ibiru $
# $Id: PKGBUILD 77865 2010-04-18 19:50:51Z ibiru $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=gobject-introspection
pkgver=0.6.9
pkgver=0.6.10
pkgrel=1
pkgdesc="Introspection system for GObject-based libraries"
url="http://live.gnome.org/GObjectInstrospection"
arch=('x86_64' 'i686')
license=('LGPL' 'GPL')
depends=('libffi>=3.0.8' 'glib2>=2.23.5' 'python')
depends=('libffi>=3.0.8' 'glib2>=2.24.0' 'python' 'cairo>=1.8.10')
options=('!libtool')
source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.6/${pkgname}-${pkgver}.tar.bz2)
sha256sums=('12ea075fdb90780b047382bc7acf4896c34dad49276f6c8513045a3f584d5ac6')
sha256sums=('36bd511a4d45967f95526f94708b3f4367e9d344aa11f3206fe6edb7fc3a8d4b')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"

View File

@ -17,8 +17,7 @@ depends=('db>=4.8' 'openssl' 'sqlite3' 'e2fsprogs')
backup=(etc/krb5.conf)
options=('!libtool' '!emptydirs')
install=heimdal.install
source=(#http://www.h5l.org/dist/src/${pkgname}-${pkgver}.tar.gz
http://www.sfr-fresh.com/unix/misc/${pkgname}-${pkgver}.tar.gz
source=(http://www.h5l.org/dist/src/${pkgname}-${pkgver}.tar.gz
001_all_heimdal-no_libedit.patch
002_all_heimal-fPIC.patch
003_all_heimdal-rxapps.patch

View File

@ -1,20 +1,28 @@
# $Id: PKGBUILD 12836 2008-09-21 14:41:26Z dan $
# Maintainer: Judd Vinet <jvinet@zeroflux.org>
# $Id: PKGBUILD 77953 2010-04-19 06:47:41Z allan $
# Maintainer:
# Contributor: Judd Vinet <jvinet@zeroflux.org>
pkgname=ifenslave
pkgver=1.1.0
pkgrel=4
pkgrel=5
pkgdesc="Utility for bonding ethernet interfaces"
license=('GPL2')
arch=(i686 x86_64)
arch=('i686' 'x86_64')
url="http://www.linuxfoundation.org/en/Net:Bonding"
license=('GPL2')
depends=('glibc')
source=(http://konnektion.ath.cx/sources/core/ifenslave/ifenslave.c bonding.conf.d)
makedepends=('kernel26-headers')
backup=('etc/conf.d/bonding')
source=(ftp://ftp.archlinux.org/other/ifenslave/ifenslave.c bonding.conf.d)
md5sums=('b0d8e4c97094155747cc9238f762c7aa'
'397fccbf574d5082c7a3c8d3793dc000')
build() {
cd $startdir/src
gcc $CFLAGS -I/usr/src/linux/include ifenslave.c -o ifenslave || return 1
install -D -m755 ifenslave $startdir/pkg/sbin/ifenslave
install -D -m644 bonding.conf.d $startdir/pkg/etc/conf.d/bonding
cd $srcdir
gcc $CFLAGS -I/usr/src/linux-$(uname -r)/include ifenslave.c -o ifenslave
}
package() {
cd $srcdir
install -Dm755 ifenslave $pkgdir/sbin/ifenslave
install -Dm644 bonding.conf.d $pkgdir/etc/conf.d/bonding
}

View File

@ -1,10 +1,10 @@
# $Id: PKGBUILD 65346 2010-01-28 03:48:04Z eric $
# $Id: PKGBUILD 77841 2010-04-18 13:06:59Z allan $
# Maintainer: Eric Belanger <eric@archlinux.org>
# Contributor: Eric Belanger <eric@archlinux.org>
pkgname=inetutils
pkgver=1.7
pkgrel=2
pkgrel=3
pkgdesc="A collection of common network programs"
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/inetutils/"
@ -47,6 +47,10 @@ build() {
--disable-uucpd --disable-hostname \
--disable-ifconfig --disable-traceroute || return 1
make || return 1
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install || return 1
install -D -m755 "${srcdir}/ftpd.rc" "${pkgdir}/etc/rc.d/ftpd" || return 1

View File

@ -2,6 +2,7 @@ infodir=/usr/share/info
filelist=(inetutils.info.gz)
post_install() {
[ -x usr/bin/install-info ] || return 0
for file in ${filelist[@]}; do
install-info $infodir/$file $infodir/dir 2> /dev/null
done
@ -12,6 +13,7 @@ post_upgrade() {
}
pre_remove() {
[ -x usr/bin/install-info ] || return 0
for file in ${filelist[@]}; do
install-info --delete $infodir/$file $infodir/dir 2> /dev/null
done

View File

@ -1,10 +1,10 @@
# $Id: PKGBUILD 65141 2010-01-24 14:36:41Z thomas $
# $Id: PKGBUILD 79825 2010-05-08 10:51:56Z thomas $
# Maintainer: Thomas Bächler <thomas@archlinux.org>
# Maintainer: Aaron Griffin <aaron@archlinux.org>
pkgname=initscripts
pkgver=2010.01
pkgrel=1
pkgver=2010.05
pkgrel=3
pkgdesc="System initialization/bootup scripts"
arch=('i686' 'x86_64')
url="http://www.archlinux.org"
@ -17,9 +17,8 @@ optdepends=('bridge-utils: Network bridging support'
'dhcpcd: DHCP network configuration'
'wireless_tools: Wireless networking')
install=initscripts.install
source=(http://konnektion.ath.cx/sources/core/initscripts/${pkgname}-${pkgver}-${pkgrel}.tar.xz)
sha256sums=('90b8ce0c235dd74423adc2174f23c1a0776a050f782c3b338c5407dfc8c70410')
md5sums=('0d61c132e916010c51c85d561102e098')
source=(ftp://ftp.archlinux.org/other/initscripts/${pkgname}-${pkgver}-${pkgrel}.tar.xz)
sha256sums=('85b6fd599b2b8cae1d3d0e0c270ab2f89c9318d24cea048dcc22d1df15155437')
build() {
cd ${srcdir}/${pkgname}-${pkgver}-${pkgrel}/

View File

@ -1,9 +1,10 @@
# $Id: PKGBUILD 51483 2009-09-09 00:24:07Z eric $
# Maintainer: Eric Belanger <eric@archlinux.org>
# $Id: PKGBUILD 77335 2010-04-12 02:06:41Z dgriffiths $
# Contributor: Eric Belanger <eric@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=intltool
pkgver=0.41.0
pkgver=0.41.1
pkgrel=1
pkgdesc="The internationalization tool collection"
arch=('any')
@ -11,13 +12,20 @@ url="https://edge.launchpad.net/intltool"
license=('GPL')
depends=('perlxml')
source=(http://edge.launchpad.net/intltool/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz)
md5sums=('8a6e4afd3fc93637dcd70e36ab899364')
sha1sums=('6a42075e8ef23d171882c43d68081420d5be6798')
md5sums=('d6c91bf06681919ccfdf3624035b75dc')
sha1sums=('20b2bf222395cf1711fee1f1b7b7650b9e0f2fc2')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
./configure --prefix=/usr || return 1
make || return 1
make DESTDIR="${pkgdir}" install || return 1
install -D -m644 doc/I18N-HOWTO ${pkgdir}/usr/share/doc/${pkgname}/I18N-HOWTO || return 1
cd ${srcdir}/${pkgname}-${pkgver}
./configure --prefix=/usr || return 1
make || return 1
}
package() {
cd ${srcdir}/${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install || return 1
install -Dm644 doc/I18N-HOWTO \
${pkgdir}/usr/share/doc/${pkgname}/I18N-HOWTO || return 1
}

View File

@ -11,11 +11,10 @@ license=('GPL')
url="http://www.linuxfoundation.org/en/Net:Iputils"
groups=('base')
depends=('glibc')
makedepends=('libxslt') # 'opensp' 'docbook-xsl'
makedepends=('opensp' 'libxslt' 'docbook-xsl')
conflicts=('netkit-base' 'arping' 'netkit-tftpd' 'traceroute')
replaces=('netkit-base' 'traceroute')
source=(#http://www.skbuff.net/iputils/$pkgname-s$pkgver.tar.bz2
http://borkware.net/~mark/sources/$pkgname-s$pkgver.tar.bz2
source=(http://www.skbuff.net/iputils/$pkgname-s$pkgver.tar.bz2
ftp://ftp.ee.lbl.gov/traceroute-$_traceroutever.tar.gz
permission-fix.patch)
options=(!makeflags)

View File

@ -1,17 +1,16 @@
# $Id: PKGBUILD 55463 2009-10-12 23:14:34Z roman $
# $Id: PKGBUILD 77418 2010-04-12 18:05:20Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
pkgname=kbd
pkgver=1.15.1
pkgver=1.15.2
pkgrel=1
pkgdesc="Keytable files and keyboard utilities"
arch=('i686' 'x86_64')
url="ftp://ftp.altlinux.org/pub/people/legion/kbd/"
license=('GPL')
groups=('base')
depends=('glibc')
source=(ftp://ftp.altlinux.org/pub/people/legion/kbd/${pkgname}-${pkgver}.tar.gz)
md5sums=('f997c490fe5ede839aacf31da6c4eb06')
md5sums=('77d0b51454522bc6c170bbdc6e31202a')
build() {
cd ${startdir}/src/${pkgname}-${pkgver}
@ -26,9 +25,6 @@ build() {
mv data/keymaps/i386/dvorak/no{,-dvorak}.map
mv data/keymaps/i386/fgGIod/trf{,-fgGIod}.map
aclocal
autoconf
automake --add-missing
./configure --prefix=/usr --datadir=/usr/share/kbd --mandir=/usr/share/man
make KEYCODES_PROGS=yes RESIZECONS_PROGS=yes || return 1
make KEYCODES_PROGS=yes RESIZECONS_PROGS=yes DESTDIR=${startdir}/pkg install

View File

@ -1,27 +1,27 @@
# $Id: PKGBUILD 72469 2010-03-16 16:57:13Z thomas $
# $Id: PKGBUILD 60356 2009-12-03 23:38:44Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Maintainer: Thomas Baechler <thomas@archlinux.org>
pkgbase="kernel26"
pkgname=('kernel26' 'kernel26-firmware' 'kernel26-headers') # Build stock -ARCH kernel
# pkgname=kernel26-custom # Build kernel with a different name
_kernelname=${pkgname#kernel26}
_basekernel=2.6.32
pkgver=${_basekernel}.10
pkgrel=1
_patchname="patch-${pkgver}-${pkgrel}-ARCH"
_basekernel=2.6.33
pkgver=${_basekernel}.4
pkgrel=1chakra
_patchname="patch-${pkgver}-1-CHAKRA"
arch=(i686 x86_64)
license=('GPL2')
url="http://www.kernel.org"
source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2
http://konnektion.ath.cx/sources/core/kernel26/${_patchname}.bz2
${_patchname}.bz2
# the main kernel config files
config config.x86_64
# standard config files for mkinitcpio ramdisk
kernel26.preset)
md5sums=('260551284ac224c3a43c4adac7df4879'
'c7f79503ea903b7d8f659c88badd00cb'
'c114c5d89622a93165bb948d62d966b5'
'5c91374d56f115ba4324978d5b002711'
md5sums=('c3883760b18d50e8d78819c54d579b00'
'4985965d86a3858cab635c7eb1660d41'
'0149294fda983d0a4658b9e1a21e8956'
'1f24529018de11b9a9f4f30041bd9c0f'
'25584700a0a679542929c4bed31433b6')
build() {
@ -29,7 +29,6 @@ build() {
# Add -ARCH patches
# See http://projects.archlinux.org/linux-2.6-ARCH.git/
patch -Np1 -i ${srcdir}/${_patchname} || return 1
if [ "$CARCH" = "x86_64" ]; then
cat ../config.x86_64 >./.config
else
@ -61,7 +60,7 @@ package_kernel26() {
pkgdesc="The Linux Kernel and modules"
groups=('base')
backup=(etc/mkinitcpio.d/${pkgname}.preset)
depends=('coreutils' 'kernel26-firmware>=2.6.32' 'module-init-tools' 'mkinitcpio>=0.5.20')
depends=('coreutils' 'kernel26-firmware>=2.6.33' 'module-init-tools' 'mkinitcpio>=0.6.3')
# pwc, ieee80211 and hostap-driver26 modules are included in kernel26 now
# nforce package support was abandoned by nvidia, kernel modules should cover everything now.
# kernel24 support is dropped since glibc24
@ -75,7 +74,6 @@ package_kernel26() {
KARCH=x86
cd ${srcdir}/linux-$_basekernel
# get kernel version
_kernver="$(make kernelrelease)"
mkdir -p ${pkgdir}/{lib/modules,boot}
make INSTALL_MOD_PATH=${pkgdir} modules_install || return 1
@ -106,6 +104,8 @@ package_kernel26() {
package_kernel26-headers() {
pkgdesc="Header files and scripts for building modules for kernel26"
cd ${srcdir}/linux-${_basekernel}/
make oldconfig && make prepare || return 1
mkdir -p ${pkgdir}/lib/modules/${_kernver}
cd ${pkgdir}/lib/modules/${_kernver}
ln -sf ../../../usr/src/linux-${_kernver} build
@ -117,11 +117,11 @@ package_kernel26-headers() {
install -D -m644 .config \
${pkgdir}/usr/src/linux-${_kernver}/.config
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include
for i in acpi asm-{generic,x86} config linux math-emu media net pcmcia scsi sound trace video; do
for i in acpi asm-generic config generated linux math-emu media net pcmcia scsi sound trace video; do
cp -a include/$i ${pkgdir}/usr/src/linux-${_kernver}/include/
done
# copy arch includes for external modules
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/x86
cp -a arch/x86/include ${pkgdir}/usr/src/linux-${_kernver}/arch/x86/
@ -180,7 +180,7 @@ package_kernel26-headers() {
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/mm
cp fs/xfs/xfs_sb.h ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h
# add headers vor virtualbox
# add headers for virtualbox
# in reference to:
# http://bugs.archlinux.org/task/14568
cp -a include/drm $pkgdir/usr/src/linux-${_kernver}/include/
@ -194,9 +194,10 @@ package_kernel26-headers() {
cp $i ${pkgdir}/usr/src/linux-${_kernver}/$i
done
cd ${pkgdir}/usr/src/linux-${_kernver}/include && ln -s asm-$KARCH asm
#cd ${pkgdir}/usr/src/linux-${_kernver}/include && ln -s asm-$KARCH asm
# add header for aufs2-util
cp -a ${srcdir}/linux-$_basekernel/include/asm-generic/bitsperlong.h ${pkgdir}/usr/src/linux-${_kernver}/include/asm/
#mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/asm
#cp -a ${srcdir}/linux-$_basekernel/include/asm-generic/bitsperlong.h ${pkgdir}/usr/src/linux-${_kernver}/include/asm/
chown -R root.root ${pkgdir}/usr/src/linux-${_kernver}
find ${pkgdir}/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \;
@ -204,6 +205,7 @@ package_kernel26-headers() {
rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
}
package_kernel26-firmware() {
pkgdesc="The included firmware files of the Linux Kernel"
groups=('base')

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=
KERNEL_VERSION=2.6.32-ARCH
KERNEL_VERSION=2.6.33-ARCH
post_install () {
# updating module dependencies
@ -140,8 +140,3 @@ if [ "`vercmp $2 2.6.21`" -lt 0 ]; then
echo ">>> 'http://wiki.archlinux.org/index.php/ACPI_modules'"
fi
}
post_remove() {
rm -f /boot/kernel26${KERNEL_NAME}.img
rm -f /boot/kernel26${KERNEL_NAME}-fallback.img
}

Binary file not shown.

View File

@ -17,7 +17,7 @@ md5sums=('fe8d917e101d4b37580124030842a1d0')
options=(libtool)
# keep an upgrade path for older installations
# PKGEXT='.pkg.tar.gz'
PKGEXT='.pkg.tar.gz'
build() {
cd $startdir/src/$pkgname-$pkgver

View File

@ -11,12 +11,12 @@ license=('BSD')
depends=('openssl>=1.0.0')
url="http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/net/libfetch/"
source=(Makefile
http://konnektion.ath.cx/sources/core/$pkgname/$pkgname-$pkgver.tar.gz)
ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz)
md5sums=('cea609a8d6fd97761e364f7203e6d609'
'ffa85bc269144d5e86ca6f81c5dc5ca5')
# keep an upgrade path for older installations
# PKGEXT='.pkg.tar.gz'
PKGEXT='.pkg.tar.gz'
# source PKGBUILD && mksource
mksource() {

View File

@ -1,14 +1,13 @@
# $Id: PKGBUILD 61662 2009-12-21 16:23:22Z andyrtr $
# $Id: PKGBUILD 80074 2010-05-10 21:13:12Z thomas $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgname=libgcrypt
pkgver=1.4.5
pkgrel=1
pkgrel=2
pkgdesc="a general purpose crypto library based on the code used"
arch=(i686 x86_64)
url="http://www.gnupg.org"
license=('LGPL')
groups=('base')
depends=('libgpg-error>=1.7')
options=(!libtool)
source=(#ftp://ftp.gnupg.org/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2
@ -21,4 +20,9 @@ build() {
./configure --prefix=/usr --disable-padlock-support
make || return 1
make DESTDIR=${pkgdir} install || return 1
# Move dynamic libraries to /lib
install -d -m755 "${pkgdir}"/lib/ || return 1
mv "${pkgdir}"/usr/lib/libgcrypt.so* "${pkgdir}"/lib/ || return 1
ln -sf /lib/libgcrypt.so "${pkgdir}"/usr/lib/libgcrypt.so || return 1
}

View File

@ -1,14 +1,13 @@
# $Id: PKGBUILD 55985 2009-10-17 06:51:24Z andyrtr $
# $Id: PKGBUILD 80074 2010-05-10 21:13:12Z thomas $
# Maintainer: judd <jvinet@zeroflux.org>
pkgname=libgpg-error
pkgver=1.7
pkgrel=2
pkgrel=3
pkgdesc="Support library for libgcrypt"
arch=(i686 x86_64)
url="http://www.gnupg.org"
license=('LGPL')
groups=('base')
depends=('glibc' 'sh')
options=(!libtool)
source=(#ftp://ftp.gnupg.org/gcrypt/libgpg-error/${pkgname}-${pkgver}.tar.bz2
@ -16,9 +15,14 @@ source=(#ftp://ftp.gnupg.org/gcrypt/libgpg-error/${pkgname}-${pkgver}.tar.bz2
md5sums=('62c0d09d1e76c5b6da8fff92314c4665')
build() {
cd ${startdir}/src/${pkgname}-${pkgver}
cd "${srcdir}"/${pkgname}-${pkgver}
# keep static lib for crypsetup
./configure --prefix=/usr
make || return 1
make DESTDIR=${startdir}/pkg install
make DESTDIR="${pkgdir}/" install || return 1
# Move dynamic libraries to /lib
install -d -m755 "${pkgdir}"/lib/ || return 1
mv "${pkgdir}"/usr/lib/libgpg-error.so* "${pkgdir}"/lib/ || return 1
ln -sf /lib/libgpg-error.so "${pkgdir}"/usr/lib/libgpg-error.so || return 1
}

View File

@ -1,23 +1,28 @@
# $Id: PKGBUILD 44932 2009-07-05 14:37:17Z jgc $
# $Id: PKGBUILD 77938 2010-04-19 05:37:53Z allan $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: William Rea <sillywilly@gmail.com>
pkgname=libnl
pkgver=1.1
pkgrel=1
pkgrel=2
pkgdesc="Library for applications dealing with netlink sockets"
arch=('i686' 'x86_64')
url="http://people.suug.ch/~tgr/libnl"
url="http://www.infradead.org/~tgr/libnl/"
license=('GPL')
depends=('glibc')
source=(http://konnektion.ath.cx/sources/core/libnl/${pkgname}-${pkgver}.tar.gz
source=(ftp://ftp.archlinux.org/other/libnl/${pkgname}-${pkgver}.tar.gz
fix-compilation.patch)
md5sums=('ae970ccd9144e132b68664f98e7ceeb1'
'e1f5e82c8aa1b3ad025c7b588178de1e')
build() {
cd ${startdir}/src/libnl-${pkgver}
cd ${srcdir}/libnl-${pkgver}
patch -Np1 -i ${srcdir}/fix-compilation.patch || return 1
./configure --prefix=/usr || return 1
make || return 1
make DESTDIR=${startdir}/pkg install || return 1
}
package() {
cd ${srcdir}/libnl-${pkgver}
make DESTDIR=${pkgdir} install || return 1
}

View File

@ -1,18 +1,17 @@
# $Id: PKGBUILD 20200 2008-12-01 17:56:56Z thomas $
# $Id: PKGBUILD 77149 2010-04-11 11:02:48Z thomas $
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=libpcap
pkgver=1.0.0
pkgver=1.1.1
pkgrel=1
pkgdesc="A system-independent interface for user-level packet capture"
arch=('i686' 'x86_64')
url="http://www.tcpdump.org/"
license=('BSD')
groups=('base')
depends=('glibc')
depends=('glibc' 'libnl')
makedepends=('flex')
source=(http://www.tcpdump.org/release/libpcap-${pkgver}.tar.gz)
md5sums=('9ad1358c5dec48456405eac197a46d3d')
sha256sums=('508cca15547e55d1318498b838456a21770c450beb2dc7d7d4a96d90816e5a85')
build() {
cd ${srcdir}/${pkgname}-${pkgver}

View File

@ -1,15 +1,16 @@
# $Id: PKGBUILD 53088 2009-09-26 02:08:25Z allan $
# $Id: PKGBUILD 78109 2010-04-19 11:02:50Z allan $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=libsasl
pkgver=2.1.23
pkgrel=2
pkgrel=4
pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library"
arch=('i686' 'x86_64')
url="http://cyrusimap.web.cmu.edu/downloads.html#sasl"
license=('custom')
depends=('db>=4.8')
install=libsasl.install
optdepends=('cyrus-sasl: saslauthd'
'cyrus-sasl-plugins: authentication plugins other than sasldb')
source=(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-${pkgver}.tar.gz
cyrus-sasl-2.1.19-checkpw.c.patch db-4.7.patch)
options=('!makeflags')
@ -18,7 +19,7 @@ md5sums=('2eb0e48106f0e9cd8001e654f267ecbc'
'71a3b7454f4d7cc2966b347bdf03f2fc')
build() {
cd ${srcdir}/cyrus-sasl-${pkgver}
cd "${srcdir}/cyrus-sasl-${pkgver}"
patch -Np0 -i ${srcdir}/cyrus-sasl-2.1.19-checkpw.c.patch || return 1
patch -Np0 -i ${srcdir}/db-4.7.patch || return 1
./configure --prefix=/usr \
@ -31,14 +32,22 @@ build() {
--enable-login \
--disable-otp \
--enable-plain \
--mandir=/usr/share/man
--mandir=/usr/share/man || return 1
for dir in include lib sasldb plugins utils; do
pushd ${dir} || return 1
make || return 1
make DESTDIR=${pkgdir} install || return 1
popd
done
}
package() {
cd "${srcdir}/cyrus-sasl-${pkgver}"
for dir in include lib sasldb plugins utils; do
pushd ${dir} || return 1
make DESTDIR="${pkgdir}" install || return 1
popd
done
# install license
install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING || return 1
install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" || return 1
}

View File

@ -1,9 +1,9 @@
# $Id: PKGBUILD 72967 2010-03-21 16:56:05Z jgc $
# $Id: PKGBUILD 79844 2010-05-08 11:48:57Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=libtasn1
pkgver=2.5
pkgver=2.6
pkgrel=1
pkgdesc="The ASN.1 library used in GNUTLS"
arch=(i686 x86_64)
@ -13,7 +13,7 @@ depends=('glibc' 'texinfo')
options=('!libtool')
install=libtasn1.install
source=(ftp://ftp.gnu.org/gnu/libtasn1/${pkgname}-${pkgver}.tar.gz)
md5sums=('e60b863697713c3d6a59b1e8c6f9b0d1')
md5sums=('d410671e13038324336917ceed7470a5')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"

View File

@ -1,4 +1,4 @@
# $Id: PKGBUILD 66438 2010-01-31 09:01:56Z allan $
# $Id: PKGBUILD 78530 2010-04-25 08:25:03Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
@ -6,7 +6,7 @@
pkgname=libtool
pkgver=2.2.6b
pkgrel=2
pkgrel=3
pkgdesc="A generic library support script"
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/libtool"
@ -22,5 +22,9 @@ build() {
cd ${srcdir}/${pkgname}-${pkgver}
./configure --prefix=/usr
make || return 1
}
package() {
cd ${srcdir}/${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install
}

View File

@ -1,15 +1,15 @@
# $Id: PKGBUILD 40984 2009-06-02 02:38:43Z dan $
# $Id: PKGBUILD 79789 2010-05-07 13:49:02Z dan $
# Maintainer: Dan McGee <dan@archlinux.org>
pkgname=licenses
pkgver=2.5
pkgver=2.6
pkgrel=1
pkgdesc="The standard licenses distribution package"
arch=('i686' 'x86_64')
arch=('any')
license=('custom:none')
url="http://archlinux.org"
groups=('base')
source=(http://www.apache.org/licenses/LICENSE-2.0.txt
source=(apache-2.0.txt::http://www.apache.org/licenses/LICENSE-2.0.txt
cc-by-3.0.txt
cc-by-nc-3.0.txt
cc-by-nc-nd-3.0.txt
@ -19,17 +19,17 @@ source=(http://www.apache.org/licenses/LICENSE-2.0.txt
cc-readme.txt
cddl-1.0.txt
eclipse-1.0.txt
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
http://www.gnu.org/licenses/gpl-2.0.txt
http://www.gnu.org/licenses/gpl-3.0.txt
http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
http://www.gnu.org/licenses/lgpl.txt
http://www.gnu.org/licenses/old-licenses/fdl-1.2.html
http://www.gnu.org/licenses/fdl.txt
http://www.gnu.org/licenses/lgpl-2.1.txt
http://www.gnu.org/licenses/lgpl-3.0.txt
http://www.gnu.org/licenses/fdl-1.2.txt
http://www.gnu.org/licenses/fdl-1.3.txt
http://www.latex-project.org/lppl.txt
http://www.mozilla.org/MPL/MPL-1.1.txt
perlartistic.txt
http://www.php.net/license/3_0.txt
http://www.ruby-lang.org/en/LICENSE.txt
php-3.0.txt::http://www.php.net/license/3_0.txt
ruby-license.txt::http://www.ruby-lang.org/en/LICENSE.txt
cpl-1.0.txt
python-2.txt
LICENSE.ralink-firmware.txt
@ -48,7 +48,7 @@ md5sums=('3b83ef96387f14655fc854ddc3c6bd57'
'd32239bcb673463ab874e80d47fae504'
'4fbd65380cdd255951079008b364516c'
'e6a600fd5e1d9cbde2d983680233ad02'
'98b09df3362b1594d4c953ee10ce6ba1'
'24ea4c7092233849b4394699333b5c56'
'10b9de612d532fdeeb7fe8fcd1435cc6'
'9f4337828d782bdea41f03dd2ad1b808'
'bfe1f75d606912a4111c90743d6c7325'
@ -56,7 +56,7 @@ md5sums=('3b83ef96387f14655fc854ddc3c6bd57'
'a45bb1bbeed9e26b26c5763df1d3913d'
'68d59ff8306e3a9f5f1c01462c77a317'
'f083e41c43db25e18f36c91e57750b64'
'614f4f550910d90428a567cfaafe62a9'
'a055911c32fb4ed6e96c453ceaeba857'
'682eac07428a4e8f138bc082f090ecac'
'dc8502850eab9e1ff330a12d7ca18a19')
@ -66,7 +66,7 @@ build() {
cd usr/share/licenses/common
mkdir APACHE
cp $startdir/src/LICENSE-2.0.txt APACHE/license.txt
cp $startdir/src/apache-2.0.txt APACHE/license.txt
mkdir CCPL
cp $startdir/src/cc-by-3.0.txt CCPL/
@ -92,12 +92,13 @@ build() {
ln -s GPL2 GPL
mkdir {FDL1.2,FDL1.3}
cp $startdir/src/fdl.txt FDL1.3/license.txt
cp $startdir/src/fdl-1.2.txt FDL1.2/license.txt
cp $startdir/src/fdl-1.3.txt FDL1.3/license.txt
ln -s FDL1.2 FDL
mkdir {LGPL2.1,LGPL3}
cp $startdir/src/lgpl-2.1.txt LGPL2.1/license.txt
cp $startdir/src/lgpl.txt LGPL3/license.txt
cp $startdir/src/lgpl-3.0.txt LGPL3/license.txt
ln -s LGPL2.1 LGPL
mkdir LPPL
@ -110,7 +111,7 @@ build() {
cp $startdir/src/perlartistic.txt PerlArtistic/license.txt
mkdir PHP
cp $startdir/src/3_0.txt PHP/license.txt
cp $startdir/src/php-3.0.txt PHP/license.txt
mkdir PSF
cp $startdir/src/python-2.txt PSF/license.txt
@ -119,7 +120,7 @@ build() {
cp $startdir/src/LICENSE.ralink-firmware.txt RALINK/license.txt
mkdir RUBY
cp $startdir/src/LICENSE.txt RUBY/license.txt
cp $startdir/src/ruby-license.txt RUBY/license.txt
mkdir ZPL
cp $startdir/src/ZopePublicLicense.txt ZPL/license.txt

View File

@ -1,80 +1,3 @@
A. HISTORY OF THE SOFTWARE
==========================
Python was created in the early 1990s by Guido van Rossum at Stichting
Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
as a successor of a language called ABC. Guido remains Python's
principal author, although it includes many contributions from others.
In 1995, Guido continued his work on Python at the Corporation for
National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
in Reston, Virginia where he released several versions of the
software.
In May 2000, Guido and the Python core development team moved to
BeOpen.com to form the BeOpen PythonLabs team. In October of the same
year, the PythonLabs team moved to Digital Creations (now Zope
Corporation, see http://www.zope.com). In 2001, the Python Software
Foundation (PSF, see http://www.python.org/psf/) was formed, a
non-profit organization created specifically to own Python-related
Intellectual Property. Zope Corporation is a sponsoring member of
the PSF.
All Python releases are Open Source (see http://www.opensource.org for
the Open Source Definition). Historically, most, but not all, Python
releases have also been GPL-compatible; the table below summarizes
the various releases.
Release Derived Year Owner GPL-
from compatible? (1)
0.9.0 thru 1.2 1991-1995 CWI yes
1.3 thru 1.5.2 1.2 1995-1999 CNRI yes
1.6 1.5.2 2000 CNRI no
2.0 1.6 2000 BeOpen.com no
1.6.1 1.6 2001 CNRI yes (2)
2.1 2.0+1.6.1 2001 PSF no
2.0.1 2.0+1.6.1 2001 PSF yes
2.1.1 2.1+2.0.1 2001 PSF yes
2.2 2.1.1 2001 PSF yes
2.1.2 2.1.1 2002 PSF yes
2.1.3 2.1.2 2002 PSF yes
2.2.1 2.2 2002 PSF yes
2.2.2 2.2.1 2002 PSF yes
2.2.3 2.2.2 2003 PSF yes
2.3 2.2.2 2002-2003 PSF yes
2.3.1 2.3 2002-2003 PSF yes
2.3.2 2.3.1 2002-2003 PSF yes
2.3.3 2.3.2 2002-2003 PSF yes
2.3.4 2.3.3 2004 PSF yes
2.3.5 2.3.4 2005 PSF yes
2.4 2.3 2004 PSF yes
2.4.1 2.4 2005 PSF yes
2.4.2 2.4.1 2005 PSF yes
2.4.3 2.4.2 2006 PSF yes
2.5 2.4 2006 PSF yes
2.5.1 2.5 2007 PSF yes
Footnotes:
(1) GPL-compatible doesn't mean that we're distributing Python under
the GPL. All Python licenses, unlike the GPL, let you distribute
a modified version without making your changes open source. The
GPL-compatible licenses make it possible to combine Python with
other software that is released under the GPL; the others don't.
(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
because its license has a choice of law clause. According to
CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
is "not incompatible" with the GPL.
Thanks to the many outside volunteers who have worked under Guido's
direction to make these releases possible.
B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
===============================================================
PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
--------------------------------------------

55
linux-2.6-ARCH/PATCHCFG Normal file
View File

@ -0,0 +1,55 @@
# Kernel source file
SRC="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.tar.bz2"
# Original source directory
SRCORIG="linux-2.6.33"
# Our source directory
SRCNAME="linux-2.6.33-ARCH"
# Patches:
# URL%patchlevel
# or
# filename%patchlevel (file must be in patches/ subdirectory)
PATCHES=(
# add upstream patch from 2.6.33 series
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-2.6.33.4.bz2%1
# add latest fixes from stable queue, if needed
# http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
# add aufs2 support, in reference to:
# http://aufs.sourceforge.net
aufs2-base.patch%1
aufs2-standalone.patch%1
# squashfs with lzma
0001-Squashfs-move-zlib-decompression-wrapper-code-into.patch%1
0002-Squashfs-Factor-out-remaining-zlib-dependencies-int.patch%1
0003-Squashfs-add-a-decompressor-framework.patch%1
0004-Squashfs-add-decompressor-entries-for-lzma-and-lzo.patch%1
0005-Squashfs-add-LZMA-compression.patch%1
0006-Squashfs-Make-unlzma-available-to-non-initramfs-ini.patch%1
0007-Squashfs-select-decompress-lzma-needed.patch%1
0008-Squashfs-lzma-make-lzma-reentrant.patch%1
0009-Squashfs-force-lzma-wrapper-to-be-retained.patch%1
)
# Name of the resulting patch (will be bzipped afterwards)
PATCHNAME="patch-2.6.33.4-1-CHAKRA"
# Run this before applying patches
pre_apply() {
:
}
# Run this after applying patches
post_apply() {
# remove the extraversion from Makefile
# this ensures our kernel version is always 2.6.XX-ARCH
# this way, minor kernel updates will not break external modules
sed -i 's|^EXTRAVERSION = .*$|EXTRAVERSION = |g' Makefile
# Add Arch logo!
cp ${startdir}/patches/logo_linux_clut224.ppm drivers/video/logo/
cp ${startdir}/patches/logo_linux_mono.pbm drivers/video/logo/
cp ${startdir}/patches/logo_linux_vga16.ppm drivers/video/logo/
# Kill some files
find . -name '*~' -exec rm -f {} \; 2>/dev/null
}

21
linux-2.6-ARCH/README Normal file
View File

@ -0,0 +1,21 @@
README - 2010-03-04
To generate a kernel-patch change in your chakra-buildsys with:
cd ~/DEV/KDEmod
./enter* chakra-i686 or ./enter* chakra-x86_64
check if aufs2 and linux-2.6-ARCH/patches has same DATE
cd ../linux-2.6-ARCH
rm -Rv src
rm -v patch-2.6*
./gen_kernel_patch
copy generated patch archive to kernel26 folder in same repo
update kernel26 PKGBUILD
update svn with new changes of aufs2, kernel26 and linux-2.6-ARCH

59
linux-2.6-ARCH/gen_kernel_patch Executable file
View File

@ -0,0 +1,59 @@
#!/bin/bash
cat_patch() {
file=${startdir}/src/$(basename ${1})
ftype=$(file -bizL "${file}")
case "$ftype" in
*application/x-gzip*)
zcat ${file} ;;
*application/x-bzip*)
bzcat ${file} ;;
*)
cat ${file} ;;
esac
}
get_file() {
file=$(basename ${1})
OPWD=${PWD}
if [ "${file}" != "${1}" ]; then
cd ${SRCDEST}
[ ! -f ${file} ] && wget -c ${1}
cd ${startdir}/src
ln -s ${SRCDEST}/${file} .
else
cd ${startdir}/src
ln -s ../patches/${file} .
fi
cd ${OPWD}
}
source ../_buildsystem/chakra-${_arch}_makepkg.conf
source PATCHCFG
export SRCNAME
export startdir=${PWD}
mkdir ${startdir}/src
cd ${startdir}/src
get_file ${SRC}
bsdtar -xf $(basename ${SRC})
cp -a ${SRCORIG} ${SRCNAME}
cd ${SRCNAME}
pre_apply
for p in ${PATCHES[@]}; do
patchname=$(echo ${p} | cut -d% -f1)
patchstrip=$(echo ${p} | cut -d% -f2)
get_file ${patchname}
cat_patch ${patchname} | patch -Np${patchstrip} || exit 1
done
post_apply
cd ${startdir}/src
diff -Nur ${SRCORIG} ${SRCNAME} > $startdir/${PATCHNAME}
bzip2 --best $startdir/${PATCHNAME}

View File

@ -0,0 +1,256 @@
From e6a6d3795565b8ccb957afc6ca0e50db40b2d899 Mon Sep 17 00:00:00 2001
From: Phillip Lougher <phillip@lougher.demon.co.uk>
Date: Tue, 22 Sep 2009 19:25:24 +0100
Subject: [PATCH] Squashfs: move zlib decompression wrapper code into a separate file
Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
---
fs/squashfs/Makefile | 2 +-
fs/squashfs/block.c | 74 ++----------------------------
fs/squashfs/squashfs.h | 4 ++
fs/squashfs/zlib_wrapper.c | 109 ++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 118 insertions(+), 71 deletions(-)
create mode 100644 fs/squashfs/zlib_wrapper.c
diff --git a/fs/squashfs/Makefile b/fs/squashfs/Makefile
index 70e3244..a397e6f 100644
--- a/fs/squashfs/Makefile
+++ b/fs/squashfs/Makefile
@@ -4,4 +4,4 @@
obj-$(CONFIG_SQUASHFS) += squashfs.o
squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o
-squashfs-y += namei.o super.o symlink.o
+squashfs-y += namei.o super.o symlink.o zlib_wrapper.o
diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c
index 2a79603..b8addfd 100644
--- a/fs/squashfs/block.c
+++ b/fs/squashfs/block.c
@@ -29,7 +29,6 @@
#include <linux/fs.h>
#include <linux/vfs.h>
#include <linux/slab.h>
-#include <linux/mutex.h>
#include <linux/string.h>
#include <linux/buffer_head.h>
#include <linux/zlib.h>
@@ -153,72 +152,10 @@ int squashfs_read_data(struct super_block *sb, void **buffer, u64 index,
}
if (compressed) {
- int zlib_err = 0, zlib_init = 0;
-
- /*
- * Uncompress block.
- */
-
- mutex_lock(&msblk->read_data_mutex);
-
- msblk->stream.avail_out = 0;
- msblk->stream.avail_in = 0;
-
- bytes = length;
- do {
- if (msblk->stream.avail_in == 0 && k < b) {
- avail = min(bytes, msblk->devblksize - offset);
- bytes -= avail;
- wait_on_buffer(bh[k]);
- if (!buffer_uptodate(bh[k]))
- goto release_mutex;
-
- if (avail == 0) {
- offset = 0;
- put_bh(bh[k++]);
- continue;
- }
-
- msblk->stream.next_in = bh[k]->b_data + offset;
- msblk->stream.avail_in = avail;
- offset = 0;
- }
-
- if (msblk->stream.avail_out == 0 && page < pages) {
- msblk->stream.next_out = buffer[page++];
- msblk->stream.avail_out = PAGE_CACHE_SIZE;
- }
-
- if (!zlib_init) {
- zlib_err = zlib_inflateInit(&msblk->stream);
- if (zlib_err != Z_OK) {
- ERROR("zlib_inflateInit returned"
- " unexpected result 0x%x,"
- " srclength %d\n", zlib_err,
- srclength);
- goto release_mutex;
- }
- zlib_init = 1;
- }
-
- zlib_err = zlib_inflate(&msblk->stream, Z_SYNC_FLUSH);
-
- if (msblk->stream.avail_in == 0 && k < b)
- put_bh(bh[k++]);
- } while (zlib_err == Z_OK);
-
- if (zlib_err != Z_STREAM_END) {
- ERROR("zlib_inflate error, data probably corrupt\n");
- goto release_mutex;
- }
-
- zlib_err = zlib_inflateEnd(&msblk->stream);
- if (zlib_err != Z_OK) {
- ERROR("zlib_inflate error, data probably corrupt\n");
- goto release_mutex;
- }
- length = msblk->stream.total_out;
- mutex_unlock(&msblk->read_data_mutex);
+ length = squashfs_zlib_uncompress(msblk, buffer, bh, b, offset,
+ length, srclength, pages);
+ if (length < 0)
+ goto read_failure;
} else {
/*
* Block is uncompressed.
@@ -255,9 +192,6 @@ int squashfs_read_data(struct super_block *sb, void **buffer, u64 index,
kfree(bh);
return length;
-release_mutex:
- mutex_unlock(&msblk->read_data_mutex);
-
block_release:
for (; k < b; k++)
put_bh(bh[k]);
diff --git a/fs/squashfs/squashfs.h b/fs/squashfs/squashfs.h
index 0e9feb6..ba87db6 100644
--- a/fs/squashfs/squashfs.h
+++ b/fs/squashfs/squashfs.h
@@ -70,6 +70,10 @@ extern struct inode *squashfs_iget(struct super_block *, long long,
unsigned int);
extern int squashfs_read_inode(struct inode *, long long);
+/* zlib_wrapper.c */
+extern int squashfs_zlib_uncompress(struct squashfs_sb_info *, void **,
+ struct buffer_head **, int, int, int, int, int);
+
/*
* Inodes and files operations
*/
diff --git a/fs/squashfs/zlib_wrapper.c b/fs/squashfs/zlib_wrapper.c
new file mode 100644
index 0000000..3be9964
--- /dev/null
+++ b/fs/squashfs/zlib_wrapper.c
@@ -0,0 +1,109 @@
+/*
+ * Squashfs - a compressed read only filesystem for Linux
+ *
+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ * Phillip Lougher <phillip@lougher.demon.co.uk>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * zlib_wrapper.c
+ */
+
+
+#include <linux/mutex.h>
+#include <linux/buffer_head.h>
+#include <linux/zlib.h>
+
+#include "squashfs_fs.h"
+#include "squashfs_fs_sb.h"
+#include "squashfs_fs_i.h"
+#include "squashfs.h"
+
+int squashfs_zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
+ struct buffer_head **bh, int b, int offset, int length, int srclength,
+ int pages)
+{
+ int zlib_err = 0, zlib_init = 0;
+ int avail, bytes, k = 0, page = 0;
+
+ mutex_lock(&msblk->read_data_mutex);
+
+ msblk->stream.avail_out = 0;
+ msblk->stream.avail_in = 0;
+
+ bytes = length;
+ do {
+ if (msblk->stream.avail_in == 0 && k < b) {
+ avail = min(bytes, msblk->devblksize - offset);
+ bytes -= avail;
+ wait_on_buffer(bh[k]);
+ if (!buffer_uptodate(bh[k]))
+ goto release_mutex;
+
+ if (avail == 0) {
+ offset = 0;
+ put_bh(bh[k++]);
+ continue;
+ }
+
+ msblk->stream.next_in = bh[k]->b_data + offset;
+ msblk->stream.avail_in = avail;
+ offset = 0;
+ }
+
+ if (msblk->stream.avail_out == 0 && page < pages) {
+ msblk->stream.next_out = buffer[page++];
+ msblk->stream.avail_out = PAGE_CACHE_SIZE;
+ }
+
+ if (!zlib_init) {
+ zlib_err = zlib_inflateInit(&msblk->stream);
+ if (zlib_err != Z_OK) {
+ ERROR("zlib_inflateInit returned unexpected "
+ "result 0x%x, srclength %d\n",
+ zlib_err, srclength);
+ goto release_mutex;
+ }
+ zlib_init = 1;
+ }
+
+ zlib_err = zlib_inflate(&msblk->stream, Z_SYNC_FLUSH);
+
+ if (msblk->stream.avail_in == 0 && k < b)
+ put_bh(bh[k++]);
+ } while (zlib_err == Z_OK);
+
+ if (zlib_err != Z_STREAM_END) {
+ ERROR("zlib_inflate error, data probably corrupt\n");
+ goto release_mutex;
+ }
+
+ zlib_err = zlib_inflateEnd(&msblk->stream);
+ if (zlib_err != Z_OK) {
+ ERROR("zlib_inflate error, data probably corrupt\n");
+ goto release_mutex;
+ }
+
+ mutex_unlock(&msblk->read_data_mutex);
+ return msblk->stream.total_out;
+
+release_mutex:
+ mutex_unlock(&msblk->read_data_mutex);
+
+ for (; k < b; k++)
+ put_bh(bh[k]);
+
+ return -EIO;
+}
--
1.7.0

View File

@ -0,0 +1,348 @@
From f1a40359f8d8ba073257ed31a513e492621bcbc5 Mon Sep 17 00:00:00 2001
From: Phillip Lougher <phillip@lougher.demon.co.uk>
Date: Wed, 23 Sep 2009 19:04:49 +0100
Subject: [PATCH] Squashfs: factor out remaining zlib dependencies into separate wrapper file
Move zlib buffer init/destroy code into separate wrapper file. Also
make zlib z_stream field a void * removing the need to include zlib.h
for most files.
Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
---
fs/squashfs/block.c | 1 -
fs/squashfs/cache.c | 1 -
fs/squashfs/dir.c | 1 -
fs/squashfs/export.c | 1 -
fs/squashfs/file.c | 1 -
fs/squashfs/fragment.c | 1 -
fs/squashfs/id.c | 1 -
fs/squashfs/inode.c | 1 -
fs/squashfs/namei.c | 1 -
fs/squashfs/squashfs.h | 2 +
fs/squashfs/squashfs_fs_sb.h | 2 +-
fs/squashfs/super.c | 14 +++------
fs/squashfs/symlink.c | 1 -
fs/squashfs/zlib_wrapper.c | 56 ++++++++++++++++++++++++++++++++---------
14 files changed, 51 insertions(+), 33 deletions(-)
diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c
index b8addfd..3f836e1 100644
--- a/fs/squashfs/block.c
+++ b/fs/squashfs/block.c
@@ -31,7 +31,6 @@
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/buffer_head.h>
-#include <linux/zlib.h>
#include "squashfs_fs.h"
#include "squashfs_fs_sb.h"
diff --git a/fs/squashfs/cache.c b/fs/squashfs/cache.c
index 40c98fa..57314be 100644
--- a/fs/squashfs/cache.c
+++ b/fs/squashfs/cache.c
@@ -51,7 +51,6 @@
#include <linux/sched.h>
#include <linux/spinlock.h>
#include <linux/wait.h>
-#include <linux/zlib.h>
#include <linux/pagemap.h>
#include "squashfs_fs.h"
diff --git a/fs/squashfs/dir.c b/fs/squashfs/dir.c
index 566b0ea..12b933a 100644
--- a/fs/squashfs/dir.c
+++ b/fs/squashfs/dir.c
@@ -30,7 +30,6 @@
#include <linux/fs.h>
#include <linux/vfs.h>
#include <linux/slab.h>
-#include <linux/zlib.h>
#include "squashfs_fs.h"
#include "squashfs_fs_sb.h"
diff --git a/fs/squashfs/export.c b/fs/squashfs/export.c
index 2b1b8fe..7f93d5a 100644
--- a/fs/squashfs/export.c
+++ b/fs/squashfs/export.c
@@ -39,7 +39,6 @@
#include <linux/vfs.h>
#include <linux/dcache.h>
#include <linux/exportfs.h>
-#include <linux/zlib.h>
#include <linux/slab.h>
#include "squashfs_fs.h"
diff --git a/fs/squashfs/file.c b/fs/squashfs/file.c
index 717767d..a25c506 100644
--- a/fs/squashfs/file.c
+++ b/fs/squashfs/file.c
@@ -47,7 +47,6 @@
#include <linux/string.h>
#include <linux/pagemap.h>
#include <linux/mutex.h>
-#include <linux/zlib.h>
#include "squashfs_fs.h"
#include "squashfs_fs_sb.h"
diff --git a/fs/squashfs/fragment.c b/fs/squashfs/fragment.c
index b5a2c15..7c90bbd 100644
--- a/fs/squashfs/fragment.c
+++ b/fs/squashfs/fragment.c
@@ -36,7 +36,6 @@
#include <linux/fs.h>
#include <linux/vfs.h>
#include <linux/slab.h>
-#include <linux/zlib.h>
#include "squashfs_fs.h"
#include "squashfs_fs_sb.h"
diff --git a/fs/squashfs/id.c b/fs/squashfs/id.c
index 3795b83..b7f64bc 100644
--- a/fs/squashfs/id.c
+++ b/fs/squashfs/id.c
@@ -34,7 +34,6 @@
#include <linux/fs.h>
#include <linux/vfs.h>
#include <linux/slab.h>
-#include <linux/zlib.h>
#include "squashfs_fs.h"
#include "squashfs_fs_sb.h"
diff --git a/fs/squashfs/inode.c b/fs/squashfs/inode.c
index 9101dbd..49daaf6 100644
--- a/fs/squashfs/inode.c
+++ b/fs/squashfs/inode.c
@@ -40,7 +40,6 @@
#include <linux/fs.h>
#include <linux/vfs.h>
-#include <linux/zlib.h>
#include "squashfs_fs.h"
#include "squashfs_fs_sb.h"
diff --git a/fs/squashfs/namei.c b/fs/squashfs/namei.c
index 9e39865..5266bd8 100644
--- a/fs/squashfs/namei.c
+++ b/fs/squashfs/namei.c
@@ -57,7 +57,6 @@
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/dcache.h>
-#include <linux/zlib.h>
#include "squashfs_fs.h"
#include "squashfs_fs_sb.h"
diff --git a/fs/squashfs/squashfs.h b/fs/squashfs/squashfs.h
index ba87db6..9c2f76a 100644
--- a/fs/squashfs/squashfs.h
+++ b/fs/squashfs/squashfs.h
@@ -71,6 +71,8 @@ extern struct inode *squashfs_iget(struct super_block *, long long,
extern int squashfs_read_inode(struct inode *, long long);
/* zlib_wrapper.c */
+extern void *squashfs_zlib_init(void);
+extern void squashfs_zlib_free(void *);
extern int squashfs_zlib_uncompress(struct squashfs_sb_info *, void **,
struct buffer_head **, int, int, int, int, int);
diff --git a/fs/squashfs/squashfs_fs_sb.h b/fs/squashfs/squashfs_fs_sb.h
index c8c6561..23a67fa 100644
--- a/fs/squashfs/squashfs_fs_sb.h
+++ b/fs/squashfs/squashfs_fs_sb.h
@@ -64,7 +64,7 @@ struct squashfs_sb_info {
struct mutex read_data_mutex;
struct mutex meta_index_mutex;
struct meta_index *meta_index;
- z_stream stream;
+ void *stream;
__le64 *inode_lookup_table;
u64 inode_table;
u64 directory_table;
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
index 6c197ef..b9f8c6a 100644
--- a/fs/squashfs/super.c
+++ b/fs/squashfs/super.c
@@ -35,7 +35,6 @@
#include <linux/pagemap.h>
#include <linux/init.h>
#include <linux/module.h>
-#include <linux/zlib.h>
#include <linux/magic.h>
#include "squashfs_fs.h"
@@ -87,12 +86,9 @@ static int squashfs_fill_super(struct super_block *sb, void *data, int silent)
}
msblk = sb->s_fs_info;
- msblk->stream.workspace = kmalloc(zlib_inflate_workspacesize(),
- GFP_KERNEL);
- if (msblk->stream.workspace == NULL) {
- ERROR("Failed to allocate zlib workspace\n");
+ msblk->stream = squashfs_zlib_init();
+ if (msblk->stream == NULL)
goto failure;
- }
sblk = kzalloc(sizeof(*sblk), GFP_KERNEL);
if (sblk == NULL) {
@@ -292,17 +288,17 @@ failed_mount:
squashfs_cache_delete(msblk->block_cache);
squashfs_cache_delete(msblk->fragment_cache);
squashfs_cache_delete(msblk->read_page);
+ squashfs_zlib_free(msblk->stream);
kfree(msblk->inode_lookup_table);
kfree(msblk->fragment_index);
kfree(msblk->id_table);
- kfree(msblk->stream.workspace);
kfree(sb->s_fs_info);
sb->s_fs_info = NULL;
kfree(sblk);
return err;
failure:
- kfree(msblk->stream.workspace);
+ squashfs_zlib_free(msblk->stream);
kfree(sb->s_fs_info);
sb->s_fs_info = NULL;
return -ENOMEM;
@@ -346,10 +342,10 @@ static void squashfs_put_super(struct super_block *sb)
squashfs_cache_delete(sbi->block_cache);
squashfs_cache_delete(sbi->fragment_cache);
squashfs_cache_delete(sbi->read_page);
+ squashfs_zlib_free(sbi->stream);
kfree(sbi->id_table);
kfree(sbi->fragment_index);
kfree(sbi->meta_index);
- kfree(sbi->stream.workspace);
kfree(sb->s_fs_info);
sb->s_fs_info = NULL;
}
diff --git a/fs/squashfs/symlink.c b/fs/squashfs/symlink.c
index 83d8788..e80be20 100644
--- a/fs/squashfs/symlink.c
+++ b/fs/squashfs/symlink.c
@@ -36,7 +36,6 @@
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/pagemap.h>
-#include <linux/zlib.h>
#include "squashfs_fs.h"
#include "squashfs_fs_sb.h"
diff --git a/fs/squashfs/zlib_wrapper.c b/fs/squashfs/zlib_wrapper.c
index 3be9964..c814594 100644
--- a/fs/squashfs/zlib_wrapper.c
+++ b/fs/squashfs/zlib_wrapper.c
@@ -31,21 +31,51 @@
#include "squashfs_fs_i.h"
#include "squashfs.h"
+void *squashfs_zlib_init()
+{
+ z_stream *stream = kmalloc(sizeof(z_stream), GFP_KERNEL);
+ if (stream == NULL)
+ goto failed;
+ stream->workspace = kmalloc(zlib_inflate_workspacesize(),
+ GFP_KERNEL);
+ if (stream->workspace == NULL)
+ goto failed;
+
+ return stream;
+
+failed:
+ ERROR("Failed to allocate zlib workspace\n");
+ kfree(stream);
+ return NULL;
+}
+
+
+void squashfs_zlib_free(void *strm)
+{
+ z_stream *stream = strm;
+
+ if (stream)
+ kfree(stream->workspace);
+ kfree(stream);
+}
+
+
int squashfs_zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
struct buffer_head **bh, int b, int offset, int length, int srclength,
int pages)
{
int zlib_err = 0, zlib_init = 0;
int avail, bytes, k = 0, page = 0;
+ z_stream *stream = msblk->stream;
mutex_lock(&msblk->read_data_mutex);
- msblk->stream.avail_out = 0;
- msblk->stream.avail_in = 0;
+ stream->avail_out = 0;
+ stream->avail_in = 0;
bytes = length;
do {
- if (msblk->stream.avail_in == 0 && k < b) {
+ if (stream->avail_in == 0 && k < b) {
avail = min(bytes, msblk->devblksize - offset);
bytes -= avail;
wait_on_buffer(bh[k]);
@@ -58,18 +88,18 @@ int squashfs_zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
continue;
}
- msblk->stream.next_in = bh[k]->b_data + offset;
- msblk->stream.avail_in = avail;
+ stream->next_in = bh[k]->b_data + offset;
+ stream->avail_in = avail;
offset = 0;
}
- if (msblk->stream.avail_out == 0 && page < pages) {
- msblk->stream.next_out = buffer[page++];
- msblk->stream.avail_out = PAGE_CACHE_SIZE;
+ if (stream->avail_out == 0 && page < pages) {
+ stream->next_out = buffer[page++];
+ stream->avail_out = PAGE_CACHE_SIZE;
}
if (!zlib_init) {
- zlib_err = zlib_inflateInit(&msblk->stream);
+ zlib_err = zlib_inflateInit(stream);
if (zlib_err != Z_OK) {
ERROR("zlib_inflateInit returned unexpected "
"result 0x%x, srclength %d\n",
@@ -79,9 +109,9 @@ int squashfs_zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
zlib_init = 1;
}
- zlib_err = zlib_inflate(&msblk->stream, Z_SYNC_FLUSH);
+ zlib_err = zlib_inflate(stream, Z_SYNC_FLUSH);
- if (msblk->stream.avail_in == 0 && k < b)
+ if (stream->avail_in == 0 && k < b)
put_bh(bh[k++]);
} while (zlib_err == Z_OK);
@@ -90,14 +120,14 @@ int squashfs_zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
goto release_mutex;
}
- zlib_err = zlib_inflateEnd(&msblk->stream);
+ zlib_err = zlib_inflateEnd(stream);
if (zlib_err != Z_OK) {
ERROR("zlib_inflate error, data probably corrupt\n");
goto release_mutex;
}
mutex_unlock(&msblk->read_data_mutex);
- return msblk->stream.total_out;
+ return stream->total_out;
release_mutex:
mutex_unlock(&msblk->read_data_mutex);
--
1.7.0

View File

@ -0,0 +1,444 @@
From 4c0f0bb2351bee3de8dd7715ee199454a59f1230 Mon Sep 17 00:00:00 2001
From: Phillip Lougher <phillip@lougher.demon.co.uk>
Date: Tue, 6 Oct 2009 04:04:15 +0100
Subject: [PATCH] Squashfs: add a decompressor framework
This adds a decompressor framework which allows multiple compression
algorithms to be cleanly supported.
Also update zlib wrapper and other code to use the new framework.
Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
---
fs/squashfs/Makefile | 2 +-
fs/squashfs/block.c | 3 +-
fs/squashfs/decompressor.c | 58 ++++++++++++++++++++++++++++++++++++++++++
fs/squashfs/decompressor.h | 55 +++++++++++++++++++++++++++++++++++++++
fs/squashfs/squashfs.h | 14 +++++-----
fs/squashfs/squashfs_fs_sb.h | 41 +++++++++++++++--------------
fs/squashfs/super.c | 45 ++++++++++++++++++-------------
fs/squashfs/zlib_wrapper.c | 17 ++++++++++--
8 files changed, 184 insertions(+), 51 deletions(-)
create mode 100644 fs/squashfs/decompressor.c
create mode 100644 fs/squashfs/decompressor.h
diff --git a/fs/squashfs/Makefile b/fs/squashfs/Makefile
index a397e6f..df8a19e 100644
--- a/fs/squashfs/Makefile
+++ b/fs/squashfs/Makefile
@@ -4,4 +4,4 @@
obj-$(CONFIG_SQUASHFS) += squashfs.o
squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o
-squashfs-y += namei.o super.o symlink.o zlib_wrapper.o
+squashfs-y += namei.o super.o symlink.o zlib_wrapper.o decompressor.o
diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c
index 3f836e1..1cb0d81 100644
--- a/fs/squashfs/block.c
+++ b/fs/squashfs/block.c
@@ -36,6 +36,7 @@
#include "squashfs_fs_sb.h"
#include "squashfs_fs_i.h"
#include "squashfs.h"
+#include "decompressor.h"
/*
* Read the metadata block length, this is stored in the first two
@@ -151,7 +152,7 @@ int squashfs_read_data(struct super_block *sb, void **buffer, u64 index,
}
if (compressed) {
- length = squashfs_zlib_uncompress(msblk, buffer, bh, b, offset,
+ length = squashfs_decompress(msblk, buffer, bh, b, offset,
length, srclength, pages);
if (length < 0)
goto read_failure;
diff --git a/fs/squashfs/decompressor.c b/fs/squashfs/decompressor.c
new file mode 100644
index 0000000..0072ccd
--- /dev/null
+++ b/fs/squashfs/decompressor.c
@@ -0,0 +1,58 @@
+/*
+ * Squashfs - a compressed read only filesystem for Linux
+ *
+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ * Phillip Lougher <phillip@lougher.demon.co.uk>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * decompressor.c
+ */
+
+#include <linux/types.h>
+#include <linux/mutex.h>
+#include <linux/buffer_head.h>
+
+#include "squashfs_fs.h"
+#include "squashfs_fs_sb.h"
+#include "squashfs_fs_i.h"
+#include "decompressor.h"
+#include "squashfs.h"
+
+/*
+ * This file (and decompressor.h) implements a decompressor framework for
+ * Squashfs, allowing multiple decompressors to be easily supported
+ */
+
+static const struct squashfs_decompressor squashfs_unknown_comp_ops = {
+ NULL, NULL, NULL, 0, "unknown", 0
+};
+
+static const struct squashfs_decompressor *decompressor[] = {
+ &squashfs_zlib_comp_ops,
+ &squashfs_unknown_comp_ops
+};
+
+
+const struct squashfs_decompressor *squashfs_lookup_decompressor(int id)
+{
+ int i;
+
+ for (i = 0; decompressor[i]->id; i++)
+ if (id == decompressor[i]->id)
+ break;
+
+ return decompressor[i];
+}
diff --git a/fs/squashfs/decompressor.h b/fs/squashfs/decompressor.h
new file mode 100644
index 0000000..7425f80
--- /dev/null
+++ b/fs/squashfs/decompressor.h
@@ -0,0 +1,55 @@
+#ifndef DECOMPRESSOR_H
+#define DECOMPRESSOR_H
+/*
+ * Squashfs - a compressed read only filesystem for Linux
+ *
+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ * Phillip Lougher <phillip@lougher.demon.co.uk>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * decompressor.h
+ */
+
+struct squashfs_decompressor {
+ void *(*init)(struct squashfs_sb_info *);
+ void (*free)(void *);
+ int (*decompress)(struct squashfs_sb_info *, void **,
+ struct buffer_head **, int, int, int, int, int);
+ int id;
+ char *name;
+ int supported;
+};
+
+static inline void *squashfs_decompressor_init(struct squashfs_sb_info *msblk)
+{
+ return msblk->decompressor->init(msblk);
+}
+
+static inline void squashfs_decompressor_free(struct squashfs_sb_info *msblk,
+ void *s)
+{
+ if (msblk->decompressor)
+ msblk->decompressor->free(s);
+}
+
+static inline int squashfs_decompress(struct squashfs_sb_info *msblk,
+ void **buffer, struct buffer_head **bh, int b, int offset, int length,
+ int srclength, int pages)
+{
+ return msblk->decompressor->decompress(msblk, buffer, bh, b, offset,
+ length, srclength, pages);
+}
+#endif
diff --git a/fs/squashfs/squashfs.h b/fs/squashfs/squashfs.h
index 9c2f76a..fe2587a 100644
--- a/fs/squashfs/squashfs.h
+++ b/fs/squashfs/squashfs.h
@@ -51,6 +51,9 @@ extern struct squashfs_cache_entry *squashfs_get_datablock(struct super_block *,
u64, int);
extern int squashfs_read_table(struct super_block *, void *, u64, int);
+/* decompressor.c */
+extern const struct squashfs_decompressor *squashfs_lookup_decompressor(int);
+
/* export.c */
extern __le64 *squashfs_read_inode_lookup_table(struct super_block *, u64,
unsigned int);
@@ -70,14 +73,8 @@ extern struct inode *squashfs_iget(struct super_block *, long long,
unsigned int);
extern int squashfs_read_inode(struct inode *, long long);
-/* zlib_wrapper.c */
-extern void *squashfs_zlib_init(void);
-extern void squashfs_zlib_free(void *);
-extern int squashfs_zlib_uncompress(struct squashfs_sb_info *, void **,
- struct buffer_head **, int, int, int, int, int);
-
/*
- * Inodes and files operations
+ * Inodes, files and decompressor operations
*/
/* dir.c */
@@ -94,3 +91,6 @@ extern const struct inode_operations squashfs_dir_inode_ops;
/* symlink.c */
extern const struct address_space_operations squashfs_symlink_aops;
+
+/* zlib_wrapper.c */
+extern const struct squashfs_decompressor squashfs_zlib_comp_ops;
diff --git a/fs/squashfs/squashfs_fs_sb.h b/fs/squashfs/squashfs_fs_sb.h
index 23a67fa..7533350 100644
--- a/fs/squashfs/squashfs_fs_sb.h
+++ b/fs/squashfs/squashfs_fs_sb.h
@@ -52,25 +52,26 @@ struct squashfs_cache_entry {
};
struct squashfs_sb_info {
- int devblksize;
- int devblksize_log2;
- struct squashfs_cache *block_cache;
- struct squashfs_cache *fragment_cache;
- struct squashfs_cache *read_page;
- int next_meta_index;
- __le64 *id_table;
- __le64 *fragment_index;
- unsigned int *fragment_index_2;
- struct mutex read_data_mutex;
- struct mutex meta_index_mutex;
- struct meta_index *meta_index;
- void *stream;
- __le64 *inode_lookup_table;
- u64 inode_table;
- u64 directory_table;
- unsigned int block_size;
- unsigned short block_log;
- long long bytes_used;
- unsigned int inodes;
+ const struct squashfs_decompressor *decompressor;
+ int devblksize;
+ int devblksize_log2;
+ struct squashfs_cache *block_cache;
+ struct squashfs_cache *fragment_cache;
+ struct squashfs_cache *read_page;
+ int next_meta_index;
+ __le64 *id_table;
+ __le64 *fragment_index;
+ unsigned int *fragment_index_2;
+ struct mutex read_data_mutex;
+ struct mutex meta_index_mutex;
+ struct meta_index *meta_index;
+ void *stream;
+ __le64 *inode_lookup_table;
+ u64 inode_table;
+ u64 directory_table;
+ unsigned int block_size;
+ unsigned short block_log;
+ long long bytes_used;
+ unsigned int inodes;
};
#endif
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
index b9f8c6a..3550aec 100644
--- a/fs/squashfs/super.c
+++ b/fs/squashfs/super.c
@@ -41,27 +41,35 @@
#include "squashfs_fs_sb.h"
#include "squashfs_fs_i.h"
#include "squashfs.h"
+#include "decompressor.h"
static struct file_system_type squashfs_fs_type;
static const struct super_operations squashfs_super_ops;
-static int supported_squashfs_filesystem(short major, short minor, short comp)
+static const struct squashfs_decompressor *supported_squashfs_filesystem(short
+ major, short minor, short id)
{
+ const struct squashfs_decompressor *decompressor;
+
if (major < SQUASHFS_MAJOR) {
ERROR("Major/Minor mismatch, older Squashfs %d.%d "
"filesystems are unsupported\n", major, minor);
- return -EINVAL;
+ return NULL;
} else if (major > SQUASHFS_MAJOR || minor > SQUASHFS_MINOR) {
ERROR("Major/Minor mismatch, trying to mount newer "
"%d.%d filesystem\n", major, minor);
ERROR("Please update your kernel\n");
- return -EINVAL;
+ return NULL;
}
- if (comp != ZLIB_COMPRESSION)
- return -EINVAL;
+ decompressor = squashfs_lookup_decompressor(id);
+ if (!decompressor->supported) {
+ ERROR("Filesystem uses \"%s\" compression. This is not "
+ "supported\n", decompressor->name);
+ return NULL;
+ }
- return 0;
+ return decompressor;
}
@@ -86,10 +94,6 @@ static int squashfs_fill_super(struct super_block *sb, void *data, int silent)
}
msblk = sb->s_fs_info;
- msblk->stream = squashfs_zlib_init();
- if (msblk->stream == NULL)
- goto failure;
-
sblk = kzalloc(sizeof(*sblk), GFP_KERNEL);
if (sblk == NULL) {
ERROR("Failed to allocate squashfs_super_block\n");
@@ -116,25 +120,25 @@ static int squashfs_fill_super(struct super_block *sb, void *data, int silent)
goto failed_mount;
}
+ err = -EINVAL;
+
/* Check it is a SQUASHFS superblock */
sb->s_magic = le32_to_cpu(sblk->s_magic);
if (sb->s_magic != SQUASHFS_MAGIC) {
if (!silent)
ERROR("Can't find a SQUASHFS superblock on %s\n",
bdevname(sb->s_bdev, b));
- err = -EINVAL;
goto failed_mount;
}
- /* Check the MAJOR & MINOR versions and compression type */
- err = supported_squashfs_filesystem(le16_to_cpu(sblk->s_major),
+ /* Check the MAJOR & MINOR versions and lookup compression type */
+ msblk->decompressor = supported_squashfs_filesystem(
+ le16_to_cpu(sblk->s_major),
le16_to_cpu(sblk->s_minor),
le16_to_cpu(sblk->compression));
- if (err < 0)
+ if (msblk->decompressor == NULL)
goto failed_mount;
- err = -EINVAL;
-
/*
* Check if there's xattrs in the filesystem. These are not
* supported in this version, so warn that they will be ignored.
@@ -201,6 +205,10 @@ static int squashfs_fill_super(struct super_block *sb, void *data, int silent)
err = -ENOMEM;
+ msblk->stream = squashfs_decompressor_init(msblk);
+ if (msblk->stream == NULL)
+ goto failed_mount;
+
msblk->block_cache = squashfs_cache_init("metadata",
SQUASHFS_CACHED_BLKS, SQUASHFS_METADATA_SIZE);
if (msblk->block_cache == NULL)
@@ -288,7 +296,7 @@ failed_mount:
squashfs_cache_delete(msblk->block_cache);
squashfs_cache_delete(msblk->fragment_cache);
squashfs_cache_delete(msblk->read_page);
- squashfs_zlib_free(msblk->stream);
+ squashfs_decompressor_free(msblk, msblk->stream);
kfree(msblk->inode_lookup_table);
kfree(msblk->fragment_index);
kfree(msblk->id_table);
@@ -298,7 +306,6 @@ failed_mount:
return err;
failure:
- squashfs_zlib_free(msblk->stream);
kfree(sb->s_fs_info);
sb->s_fs_info = NULL;
return -ENOMEM;
@@ -342,7 +349,7 @@ static void squashfs_put_super(struct super_block *sb)
squashfs_cache_delete(sbi->block_cache);
squashfs_cache_delete(sbi->fragment_cache);
squashfs_cache_delete(sbi->read_page);
- squashfs_zlib_free(sbi->stream);
+ squashfs_decompressor_free(sbi, sbi->stream);
kfree(sbi->id_table);
kfree(sbi->fragment_index);
kfree(sbi->meta_index);
diff --git a/fs/squashfs/zlib_wrapper.c b/fs/squashfs/zlib_wrapper.c
index c814594..4dd70e0 100644
--- a/fs/squashfs/zlib_wrapper.c
+++ b/fs/squashfs/zlib_wrapper.c
@@ -30,8 +30,9 @@
#include "squashfs_fs_sb.h"
#include "squashfs_fs_i.h"
#include "squashfs.h"
+#include "decompressor.h"
-void *squashfs_zlib_init()
+static void *zlib_init(struct squashfs_sb_info *dummy)
{
z_stream *stream = kmalloc(sizeof(z_stream), GFP_KERNEL);
if (stream == NULL)
@@ -50,7 +51,7 @@ failed:
}
-void squashfs_zlib_free(void *strm)
+static void zlib_free(void *strm)
{
z_stream *stream = strm;
@@ -60,7 +61,7 @@ void squashfs_zlib_free(void *strm)
}
-int squashfs_zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
+static int zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
struct buffer_head **bh, int b, int offset, int length, int srclength,
int pages)
{
@@ -137,3 +138,13 @@ release_mutex:
return -EIO;
}
+
+const struct squashfs_decompressor squashfs_zlib_comp_ops = {
+ .init = zlib_init,
+ .free = zlib_free,
+ .decompress = zlib_uncompress,
+ .id = ZLIB_COMPRESSION,
+ .name = "zlib",
+ .supported = 1
+};
+
--
1.7.0

View File

@ -0,0 +1,61 @@
From dc3256782f88602953676c447b243dedb1be99ad Mon Sep 17 00:00:00 2001
From: Phillip Lougher <phillip@lougher.demon.co.uk>
Date: Wed, 14 Oct 2009 03:58:11 +0100
Subject: [PATCH] Squashfs: add decompressor entries for lzma and lzo
Add knowledge of lzma/lzo compression formats to the decompressor
framework. For now these are added as unsupported. Without
these entries lzma/lzo compressed filesystems will be flagged as
having unknown compression which is undesirable.
Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
---
fs/squashfs/decompressor.c | 10 ++++++++++
fs/squashfs/squashfs_fs.h | 4 +++-
2 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/fs/squashfs/decompressor.c b/fs/squashfs/decompressor.c
index 0072ccd..157478d 100644
--- a/fs/squashfs/decompressor.c
+++ b/fs/squashfs/decompressor.c
@@ -36,12 +36,22 @@
* Squashfs, allowing multiple decompressors to be easily supported
*/
+static const struct squashfs_decompressor squashfs_lzma_unsupported_comp_ops = {
+ NULL, NULL, NULL, LZMA_COMPRESSION, "lzma", 0
+};
+
+static const struct squashfs_decompressor squashfs_lzo_unsupported_comp_ops = {
+ NULL, NULL, NULL, LZO_COMPRESSION, "lzo", 0
+};
+
static const struct squashfs_decompressor squashfs_unknown_comp_ops = {
NULL, NULL, NULL, 0, "unknown", 0
};
static const struct squashfs_decompressor *decompressor[] = {
&squashfs_zlib_comp_ops,
+ &squashfs_lzma_unsupported_comp_ops,
+ &squashfs_lzo_unsupported_comp_ops,
&squashfs_unknown_comp_ops
};
diff --git a/fs/squashfs/squashfs_fs.h b/fs/squashfs/squashfs_fs.h
index 283daaf..36e1604 100644
--- a/fs/squashfs/squashfs_fs.h
+++ b/fs/squashfs/squashfs_fs.h
@@ -211,7 +211,9 @@ struct meta_index {
/*
* definitions for structures on disk
*/
-#define ZLIB_COMPRESSION 1
+#define ZLIB_COMPRESSION 1
+#define LZMA_COMPRESSION 2
+#define LZO_COMPRESSION 3
struct squashfs_super_block {
__le32 s_magic;
--
1.7.0

View File

@ -0,0 +1,227 @@
From 372a4e915b0d06c5fc33750ee8457f6e589362da Mon Sep 17 00:00:00 2001
From: Phillip Lougher <phillip@lougher.demon.co.uk>
Date: Tue, 20 Oct 2009 10:54:36 +0100
Subject: [PATCH] Squashfs: add support for LZMA compressed filesystems
Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
---
fs/squashfs/Kconfig | 5 ++
fs/squashfs/Makefile | 1 +
fs/squashfs/decompressor.c | 4 +
fs/squashfs/lzma_wrapper.c | 151 ++++++++++++++++++++++++++++++++++++++++++++
fs/squashfs/squashfs.h | 3 +
5 files changed, 164 insertions(+), 0 deletions(-)
create mode 100644 fs/squashfs/lzma_wrapper.c
diff --git a/fs/squashfs/Kconfig b/fs/squashfs/Kconfig
index 25a00d1..0294aa2 100644
--- a/fs/squashfs/Kconfig
+++ b/fs/squashfs/Kconfig
@@ -26,6 +26,11 @@ config SQUASHFS
If unsure, say N.
+config SQUASHFS_LZMA
+ bool "Include support for LZMA compressed file systems"
+ depends on SQUASHFS
+ select DECOMPRESS_LZMA
+
config SQUASHFS_EMBEDDED
bool "Additional option for memory-constrained systems"
diff --git a/fs/squashfs/Makefile b/fs/squashfs/Makefile
index df8a19e..45aaefd 100644
--- a/fs/squashfs/Makefile
+++ b/fs/squashfs/Makefile
@@ -5,3 +5,4 @@
obj-$(CONFIG_SQUASHFS) += squashfs.o
squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o
squashfs-y += namei.o super.o symlink.o zlib_wrapper.o decompressor.o
+squashfs-$(CONFIG_SQUASHFS_LZMA) += lzma_wrapper.o
diff --git a/fs/squashfs/decompressor.c b/fs/squashfs/decompressor.c
index 157478d..0b6ad9b 100644
--- a/fs/squashfs/decompressor.c
+++ b/fs/squashfs/decompressor.c
@@ -50,7 +50,11 @@ static const struct squashfs_decompressor squashfs_unknown_comp_ops = {
static const struct squashfs_decompressor *decompressor[] = {
&squashfs_zlib_comp_ops,
+#ifdef CONFIG_SQUASHFS_LZMA
+ &squashfs_lzma_comp_ops,
+#else
&squashfs_lzma_unsupported_comp_ops,
+#endif
&squashfs_lzo_unsupported_comp_ops,
&squashfs_unknown_comp_ops
};
diff --git a/fs/squashfs/lzma_wrapper.c b/fs/squashfs/lzma_wrapper.c
new file mode 100644
index 0000000..cef06d6
--- /dev/null
+++ b/fs/squashfs/lzma_wrapper.c
@@ -0,0 +1,151 @@
+/*
+ * Squashfs - a compressed read only filesystem for Linux
+ *
+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ * Phillip Lougher <phillip@lougher.demon.co.uk>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * lzma_wrapper.c
+ */
+
+#include <asm/unaligned.h>
+#include <linux/buffer_head.h>
+#include <linux/mutex.h>
+#include <linux/vmalloc.h>
+#include <linux/decompress/unlzma.h>
+
+#include "squashfs_fs.h"
+#include "squashfs_fs_sb.h"
+#include "squashfs_fs_i.h"
+#include "squashfs.h"
+#include "decompressor.h"
+
+struct squashfs_lzma {
+ void *input;
+ void *output;
+};
+
+/* decompress_unlzma.c is currently non re-entrant... */
+DEFINE_MUTEX(lzma_mutex);
+
+/* decompress_unlzma.c doesn't provide any context in its callbacks... */
+static int lzma_error;
+
+static void error(char *m)
+{
+ ERROR("unlzma error: %s\n", m);
+ lzma_error = 1;
+}
+
+
+static void *lzma_init(struct squashfs_sb_info *msblk)
+{
+ struct squashfs_lzma *stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ if (stream == NULL)
+ goto failed;
+ stream->input = vmalloc(msblk->block_size);
+ if (stream->input == NULL)
+ goto failed;
+ stream->output = vmalloc(msblk->block_size);
+ if (stream->output == NULL)
+ goto failed2;
+
+ return stream;
+
+failed2:
+ vfree(stream->input);
+failed:
+ ERROR("failed to allocate lzma workspace\n");
+ kfree(stream);
+ return NULL;
+}
+
+
+static void lzma_free(void *strm)
+{
+ struct squashfs_lzma *stream = strm;
+
+ if (stream) {
+ vfree(stream->input);
+ vfree(stream->output);
+ }
+ kfree(stream);
+}
+
+
+static int lzma_uncompress(struct squashfs_sb_info *msblk, void **buffer,
+ struct buffer_head **bh, int b, int offset, int length, int srclength,
+ int pages)
+{
+ struct squashfs_lzma *stream = msblk->stream;
+ void *buff = stream->input;
+ int avail, i, bytes = length, res;
+
+ mutex_lock(&lzma_mutex);
+
+ for (i = 0; i < b; i++) {
+ wait_on_buffer(bh[i]);
+ if (!buffer_uptodate(bh[i]))
+ goto block_release;
+
+ avail = min(bytes, msblk->devblksize - offset);
+ memcpy(buff, bh[i]->b_data + offset, avail);
+ buff += avail;
+ bytes -= avail;
+ offset = 0;
+ put_bh(bh[i]);
+ }
+
+ lzma_error = 0;
+ res = unlzma(stream->input, length, NULL, NULL, stream->output, NULL,
+ error);
+ if (res || lzma_error)
+ goto failed;
+
+ /* uncompressed size is stored in the LZMA header (5 byte offset) */
+ res = bytes = get_unaligned_le32(stream->input + 5);
+ for (i = 0, buff = stream->output; bytes && i < pages; i++) {
+ avail = min_t(int, bytes, PAGE_CACHE_SIZE);
+ memcpy(buffer[i], buff, avail);
+ buff += avail;
+ bytes -= avail;
+ }
+ if (bytes)
+ goto failed;
+
+ mutex_unlock(&lzma_mutex);
+ return res;
+
+block_release:
+ for (; i < b; i++)
+ put_bh(bh[i]);
+
+failed:
+ mutex_unlock(&lzma_mutex);
+
+ ERROR("lzma decompression failed, data probably corrupt\n");
+ return -EIO;
+}
+
+const struct squashfs_decompressor squashfs_lzma_comp_ops = {
+ .init = lzma_init,
+ .free = lzma_free,
+ .decompress = lzma_uncompress,
+ .id = LZMA_COMPRESSION,
+ .name = "lzma",
+ .supported = 1
+};
+
diff --git a/fs/squashfs/squashfs.h b/fs/squashfs/squashfs.h
index fe2587a..d094886 100644
--- a/fs/squashfs/squashfs.h
+++ b/fs/squashfs/squashfs.h
@@ -94,3 +94,6 @@ extern const struct address_space_operations squashfs_symlink_aops;
/* zlib_wrapper.c */
extern const struct squashfs_decompressor squashfs_zlib_comp_ops;
+
+/* lzma wrapper.c */
+extern const struct squashfs_decompressor squashfs_lzma_comp_ops;
--
1.7.0

View File

@ -0,0 +1,215 @@
From ec38dee499ad19e1284c983fea1a7311f4e09ece Mon Sep 17 00:00:00 2001
From: Phillip Lougher <phillip@lougher.demon.co.uk>
Date: Mon, 11 Jan 2010 16:15:00 +0100
Subject: [PATCH] lzma: Make lzma available to non initramfs/initrd code
Add a config option DECOMPRESS_LZMA_NEEDED which allows subsystems to
specify they need the unlzma code. Normally decompress_unlzma.c is
compiled with __init and unlzma is not exported to modules.
Move INIT definition into separate header files for bzip2/lzma/inflate/lzo
so it can be defined differently for each decompressor.
Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
---
include/linux/decompress/bunzip2_mm.h | 12 ++++++++++++
include/linux/decompress/inflate_mm.h | 12 ++++++++++++
include/linux/decompress/mm.h | 3 ---
include/linux/decompress/unlzma_mm.h | 20 ++++++++++++++++++++
include/linux/decompress/unlzo_mm.h | 12 ++++++++++++
lib/Kconfig | 3 +++
lib/decompress_bunzip2.c | 1 +
lib/decompress_inflate.c | 1 +
lib/decompress_unlzma.c | 6 +++++-
lib/decompress_unlzo.c | 1 +
10 files changed, 67 insertions(+), 4 deletions(-)
create mode 100644 include/linux/decompress/bunzip2_mm.h
create mode 100644 include/linux/decompress/inflate_mm.h
create mode 100644 include/linux/decompress/unlzma_mm.h
create mode 100644 include/linux/decompress/unlzo_mm.h
diff --git a/include/linux/decompress/bunzip2_mm.h b/include/linux/decompress/bunzip2_mm.h
new file mode 100644
index 0000000..cac6fef
--- /dev/null
+++ b/include/linux/decompress/bunzip2_mm.h
@@ -0,0 +1,12 @@
+#ifndef BUNZIP2_MM_H
+#define BUNZIP2_MM_H
+
+#ifdef STATIC
+/* Code active when included from pre-boot environment: */
+#define INIT
+#else
+/* Compile for initramfs/initrd code only */
+#define INIT __init
+#endif
+
+#endif
diff --git a/include/linux/decompress/inflate_mm.h b/include/linux/decompress/inflate_mm.h
new file mode 100644
index 0000000..ca4a2ae
--- /dev/null
+++ b/include/linux/decompress/inflate_mm.h
@@ -0,0 +1,12 @@
+#ifndef INFLATE_MM_H
+#define INFLATE_MM_H
+
+#ifdef STATIC
+/* Code active when included from pre-boot environment: */
+#define INIT
+#else
+/* Compile for initramfs/initrd code only */
+#define INIT __init
+#endif
+
+#endif
diff --git a/include/linux/decompress/mm.h b/include/linux/decompress/mm.h
index 5032b9a..93dd574 100644
--- a/include/linux/decompress/mm.h
+++ b/include/linux/decompress/mm.h
@@ -53,8 +53,6 @@ static void free(void *where)
#define set_error_fn(x)
-#define INIT
-
#else /* STATIC */
/* Code active when compiled standalone for use when loading ramdisk: */
@@ -77,7 +75,6 @@ static void free(void *where)
static void(*error)(char *m);
#define set_error_fn(x) error = x;
-#define INIT __init
#define STATIC
#include <linux/init.h>
diff --git a/include/linux/decompress/unlzma_mm.h b/include/linux/decompress/unlzma_mm.h
new file mode 100644
index 0000000..859287e
--- /dev/null
+++ b/include/linux/decompress/unlzma_mm.h
@@ -0,0 +1,20 @@
+#ifndef UNLZMA_MM_H
+#define UNLZMA_MM_H
+
+#ifdef STATIC
+
+/* Code active when included from pre-boot environment: */
+#define INIT
+
+#elif defined(CONFIG_DECOMPRESS_LZMA_NEEDED)
+
+/* Make it available to non initramfs/initrd code */
+#define INIT
+#include <linux/module.h>
+#else
+
+/* Compile for initramfs/initrd code only */
+#define INIT __init
+#endif
+
+#endif
diff --git a/include/linux/decompress/unlzo_mm.h b/include/linux/decompress/unlzo_mm.h
new file mode 100644
index 0000000..e3f1573
--- /dev/null
+++ b/include/linux/decompress/unlzo_mm.h
@@ -0,0 +1,12 @@
+#ifndef UNLZO_MM_H
+#define UNLZO_MM_H
+
+#ifdef STATIC
+/* Code active when included from pre-boot environment: */
+#define INIT
+#else
+/* Compile for initramfs/initrd code only */
+#define INIT __init
+#endif
+
+#endif
diff --git a/lib/Kconfig b/lib/Kconfig
index 97b136f..40e92e2 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -121,6 +121,9 @@ config DECOMPRESS_LZO
select LZO_DECOMPRESS
tristate
+config DECOMPRESS_LZMA_NEEDED
+ boolean
+
#
# Generic allocator support is selected if needed
#
diff --git a/lib/decompress_bunzip2.c b/lib/decompress_bunzip2.c
index a4e971d..04386b3 100644
--- a/lib/decompress_bunzip2.c
+++ b/lib/decompress_bunzip2.c
@@ -52,6 +52,7 @@
#include <linux/slab.h>
#endif /* STATIC */
+#include <linux/decompress/bunzip2_mm.h>
#include <linux/decompress/mm.h>
#ifndef INT_MAX
diff --git a/lib/decompress_inflate.c b/lib/decompress_inflate.c
index fc686c7..cb6bcab 100644
--- a/lib/decompress_inflate.c
+++ b/lib/decompress_inflate.c
@@ -23,6 +23,7 @@
#endif /* STATIC */
+#include <linux/decompress/inflate_mm.h>
#include <linux/decompress/mm.h>
#define GZIP_IOBUF_SIZE (16*1024)
diff --git a/lib/decompress_unlzma.c b/lib/decompress_unlzma.c
index ca82fde..a614b26 100644
--- a/lib/decompress_unlzma.c
+++ b/lib/decompress_unlzma.c
@@ -36,6 +36,7 @@
#include <linux/slab.h>
#endif /* STATIC */
+#include <linux/decompress/unlzma_mm.h>
#include <linux/decompress/mm.h>
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
@@ -531,7 +532,7 @@ static inline void INIT process_bit1(struct writer *wr, struct rc *rc,
-STATIC inline int INIT unlzma(unsigned char *buf, int in_len,
+STATIC int INIT unlzma(unsigned char *buf, int in_len,
int(*fill)(void*, unsigned int),
int(*flush)(void*, unsigned int),
unsigned char *output,
@@ -652,6 +653,9 @@ exit_1:
exit_0:
return ret;
}
+#if defined(CONFIG_DECOMPRESS_LZMA_NEEDED) && !defined(PREBOOT)
+EXPORT_SYMBOL(unlzma);
+#endif
#ifdef PREBOOT
STATIC int INIT decompress(unsigned char *buf, int in_len,
diff --git a/lib/decompress_unlzo.c b/lib/decompress_unlzo.c
index db521f4..edd82c3 100644
--- a/lib/decompress_unlzo.c
+++ b/lib/decompress_unlzo.c
@@ -39,6 +39,7 @@
#include <linux/types.h>
#include <linux/lzo.h>
+#include <linux/decompress/unlzo_mm.h>
#include <linux/decompress/mm.h>
#include <linux/compiler.h>
--
1.7.0

View File

@ -0,0 +1,25 @@
From 414b9c8588df246f34a5f3bc896a11ee72ba8557 Mon Sep 17 00:00:00 2001
From: Phillip Lougher <phillip@lougher.demon.co.uk>
Date: Sun, 6 Dec 2009 02:15:08 +0000
Subject: [PATCH] Squashfs: select DECOMPRESS_LZMA_NEEDED when including support for lzma
Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
---
fs/squashfs/Kconfig | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/fs/squashfs/Kconfig b/fs/squashfs/Kconfig
index 0294aa2..7ec5d7e 100644
--- a/fs/squashfs/Kconfig
+++ b/fs/squashfs/Kconfig
@@ -30,6 +30,7 @@ config SQUASHFS_LZMA
bool "Include support for LZMA compressed file systems"
depends on SQUASHFS
select DECOMPRESS_LZMA
+ select DECOMPRESS_LZMA_NEEDED
config SQUASHFS_EMBEDDED
--
1.7.0

View File

@ -0,0 +1,368 @@
From c8b2ca419338ca50836c1f9dcd80072307f0952c Mon Sep 17 00:00:00 2001
From: Phillip Lougher <phillip@lougher.demon.co.uk>
Date: Mon, 11 Jan 2010 16:45:50 +0000
Subject: [PATCH] lzma: make lzma reentrant
The error function pointer used by lzma is global (file scope) which
prevents it being used concurrently. This patch removes the global
error pointer use, and instead passes it to all functions that need it.
The error function pointer is still used by bunzip2, inflate and unlzo.
This patch moves the definition into the separate bunzip2, inflate
and unlzo header files. This prevents gcc from complaining about an
unused definition compiling lzma.
Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
---
include/linux/decompress/bunzip2_mm.h | 1 +
include/linux/decompress/inflate_mm.h | 1 +
include/linux/decompress/mm.h | 1 -
include/linux/decompress/unlzo_mm.h | 1 +
lib/decompress_unlzma.c | 82 +++++++++++++++++----------------
5 files changed, 45 insertions(+), 41 deletions(-)
diff --git a/include/linux/decompress/bunzip2_mm.h b/include/linux/decompress/bunzip2_mm.h
index cac6fef..863efd0 100644
--- a/include/linux/decompress/bunzip2_mm.h
+++ b/include/linux/decompress/bunzip2_mm.h
@@ -7,6 +7,7 @@
#else
/* Compile for initramfs/initrd code only */
#define INIT __init
+static void(*error)(char *m);
#endif
#endif
diff --git a/include/linux/decompress/inflate_mm.h b/include/linux/decompress/inflate_mm.h
index ca4a2ae..87a742b 100644
--- a/include/linux/decompress/inflate_mm.h
+++ b/include/linux/decompress/inflate_mm.h
@@ -7,6 +7,7 @@
#else
/* Compile for initramfs/initrd code only */
#define INIT __init
+static void(*error)(char *m);
#endif
#endif
diff --git a/include/linux/decompress/mm.h b/include/linux/decompress/mm.h
index 93dd574..44f6e14 100644
--- a/include/linux/decompress/mm.h
+++ b/include/linux/decompress/mm.h
@@ -72,7 +72,6 @@ static void free(void *where)
#define large_malloc(a) vmalloc(a)
#define large_free(a) vfree(a)
-static void(*error)(char *m);
#define set_error_fn(x) error = x;
#define STATIC
diff --git a/include/linux/decompress/unlzo_mm.h b/include/linux/decompress/unlzo_mm.h
index e3f1573..27fe0ab 100644
--- a/include/linux/decompress/unlzo_mm.h
+++ b/include/linux/decompress/unlzo_mm.h
@@ -7,6 +7,7 @@
#else
/* Compile for initramfs/initrd code only */
#define INIT __init
+static void(*error)(char *m);
#endif
#endif
diff --git a/lib/decompress_unlzma.c b/lib/decompress_unlzma.c
index a614b26..3e85763 100644
--- a/lib/decompress_unlzma.c
+++ b/lib/decompress_unlzma.c
@@ -89,7 +89,7 @@ static int nofill(void *buffer, unsigned int len)
}
/* Called twice: once at startup and once in rc_normalize() */
-static void INIT rc_read(struct rc *rc)
+static void INIT rc_read(struct rc *rc, void(*error)(char *x))
{
rc->buffer_size = rc->fill((char *)rc->buffer, LZMA_IOBUF_SIZE);
if (rc->buffer_size <= 0)
@@ -116,13 +116,13 @@ static inline void INIT rc_init(struct rc *rc,
rc->range = 0xFFFFFFFF;
}
-static inline void INIT rc_init_code(struct rc *rc)
+static inline void INIT rc_init_code(struct rc *rc, void(*error)(char *x))
{
int i;
for (i = 0; i < 5; i++) {
if (rc->ptr >= rc->buffer_end)
- rc_read(rc);
+ rc_read(rc, error);
rc->code = (rc->code << 8) | *rc->ptr++;
}
}
@@ -135,32 +135,33 @@ static inline void INIT rc_free(struct rc *rc)
}
/* Called twice, but one callsite is in inline'd rc_is_bit_0_helper() */
-static void INIT rc_do_normalize(struct rc *rc)
+static void INIT rc_do_normalize(struct rc *rc, void(*error)(char *x))
{
if (rc->ptr >= rc->buffer_end)
- rc_read(rc);
+ rc_read(rc, error);
rc->range <<= 8;
rc->code = (rc->code << 8) | *rc->ptr++;
}
-static inline void INIT rc_normalize(struct rc *rc)
+static inline void INIT rc_normalize(struct rc *rc, void(*error)(char *x))
{
if (rc->range < (1 << RC_TOP_BITS))
- rc_do_normalize(rc);
+ rc_do_normalize(rc, error);
}
/* Called 9 times */
/* Why rc_is_bit_0_helper exists?
*Because we want to always expose (rc->code < rc->bound) to optimizer
*/
-static inline uint32_t INIT rc_is_bit_0_helper(struct rc *rc, uint16_t *p)
+static inline uint32_t INIT rc_is_bit_0_helper(struct rc *rc, uint16_t *p,
+ void (*error)(char *x))
{
- rc_normalize(rc);
+ rc_normalize(rc, error);
rc->bound = *p * (rc->range >> RC_MODEL_TOTAL_BITS);
return rc->bound;
}
-static inline int INIT rc_is_bit_0(struct rc *rc, uint16_t *p)
+static inline int INIT rc_is_bit_0(struct rc *rc, uint16_t *p, void(*error)(char *x))
{
- uint32_t t = rc_is_bit_0_helper(rc, p);
+ uint32_t t = rc_is_bit_0_helper(rc, p, error);
return rc->code < t;
}
@@ -178,9 +179,9 @@ static inline void rc_update_bit_1(struct rc *rc, uint16_t *p)
}
/* Called 4 times in unlzma loop */
-static int INIT rc_get_bit(struct rc *rc, uint16_t *p, int *symbol)
+static int INIT rc_get_bit(struct rc *rc, uint16_t *p, int *symbol, void(*error)(char *x))
{
- if (rc_is_bit_0(rc, p)) {
+ if (rc_is_bit_0(rc, p, error)) {
rc_update_bit_0(rc, p);
*symbol *= 2;
return 0;
@@ -192,9 +193,9 @@ static int INIT rc_get_bit(struct rc *rc, uint16_t *p, int *symbol)
}
/* Called once */
-static inline int INIT rc_direct_bit(struct rc *rc)
+static inline int INIT rc_direct_bit(struct rc *rc , void(*error)(char *x))
{
- rc_normalize(rc);
+ rc_normalize(rc, error);
rc->range >>= 1;
if (rc->code >= rc->range) {
rc->code -= rc->range;
@@ -205,13 +206,14 @@ static inline int INIT rc_direct_bit(struct rc *rc)
/* Called twice */
static inline void INIT
-rc_bit_tree_decode(struct rc *rc, uint16_t *p, int num_levels, int *symbol)
+rc_bit_tree_decode(struct rc *rc, uint16_t *p, int num_levels, int *symbol,
+ void(*error)(char *x))
{
int i = num_levels;
*symbol = 1;
while (i--)
- rc_get_bit(rc, p + *symbol, symbol);
+ rc_get_bit(rc, p + *symbol, symbol, error);
*symbol -= 1 << num_levels;
}
@@ -348,7 +350,8 @@ static inline void INIT copy_bytes(struct writer *wr,
static inline void INIT process_bit0(struct writer *wr, struct rc *rc,
struct cstate *cst, uint16_t *p,
int pos_state, uint16_t *prob,
- int lc, uint32_t literal_pos_mask) {
+ int lc, uint32_t literal_pos_mask,
+ void(*error)(char *x)) {
int mi = 1;
rc_update_bit_0(rc, prob);
prob = (p + LZMA_LITERAL +
@@ -366,7 +369,7 @@ static inline void INIT process_bit0(struct writer *wr, struct rc *rc,
match_byte <<= 1;
bit = match_byte & 0x100;
prob_lit = prob + 0x100 + bit + mi;
- if (rc_get_bit(rc, prob_lit, &mi)) {
+ if (rc_get_bit(rc, prob_lit, &mi, error)) {
if (!bit)
break;
} else {
@@ -377,7 +380,7 @@ static inline void INIT process_bit0(struct writer *wr, struct rc *rc,
}
while (mi < 0x100) {
uint16_t *prob_lit = prob + mi;
- rc_get_bit(rc, prob_lit, &mi);
+ rc_get_bit(rc, prob_lit, &mi, error);
}
write_byte(wr, mi);
if (cst->state < 4)
@@ -390,7 +393,8 @@ static inline void INIT process_bit0(struct writer *wr, struct rc *rc,
static inline void INIT process_bit1(struct writer *wr, struct rc *rc,
struct cstate *cst, uint16_t *p,
- int pos_state, uint16_t *prob) {
+ int pos_state, uint16_t *prob,
+ void(*error)(char *x)) {
int offset;
uint16_t *prob_len;
int num_bits;
@@ -398,7 +402,7 @@ static inline void INIT process_bit1(struct writer *wr, struct rc *rc,
rc_update_bit_1(rc, prob);
prob = p + LZMA_IS_REP + cst->state;
- if (rc_is_bit_0(rc, prob)) {
+ if (rc_is_bit_0(rc, prob, error)) {
rc_update_bit_0(rc, prob);
cst->rep3 = cst->rep2;
cst->rep2 = cst->rep1;
@@ -408,13 +412,13 @@ static inline void INIT process_bit1(struct writer *wr, struct rc *rc,
} else {
rc_update_bit_1(rc, prob);
prob = p + LZMA_IS_REP_G0 + cst->state;
- if (rc_is_bit_0(rc, prob)) {
+ if (rc_is_bit_0(rc, prob, error)) {
rc_update_bit_0(rc, prob);
prob = (p + LZMA_IS_REP_0_LONG
+ (cst->state <<
LZMA_NUM_POS_BITS_MAX) +
pos_state);
- if (rc_is_bit_0(rc, prob)) {
+ if (rc_is_bit_0(rc, prob, error)) {
rc_update_bit_0(rc, prob);
cst->state = cst->state < LZMA_NUM_LIT_STATES ?
@@ -429,13 +433,13 @@ static inline void INIT process_bit1(struct writer *wr, struct rc *rc,
rc_update_bit_1(rc, prob);
prob = p + LZMA_IS_REP_G1 + cst->state;
- if (rc_is_bit_0(rc, prob)) {
+ if (rc_is_bit_0(rc, prob, error)) {
rc_update_bit_0(rc, prob);
distance = cst->rep1;
} else {
rc_update_bit_1(rc, prob);
prob = p + LZMA_IS_REP_G2 + cst->state;
- if (rc_is_bit_0(rc, prob)) {
+ if (rc_is_bit_0(rc, prob, error)) {
rc_update_bit_0(rc, prob);
distance = cst->rep2;
} else {
@@ -453,7 +457,7 @@ static inline void INIT process_bit1(struct writer *wr, struct rc *rc,
}
prob_len = prob + LZMA_LEN_CHOICE;
- if (rc_is_bit_0(rc, prob_len)) {
+ if (rc_is_bit_0(rc, prob_len, error)) {
rc_update_bit_0(rc, prob_len);
prob_len = (prob + LZMA_LEN_LOW
+ (pos_state <<
@@ -463,7 +467,7 @@ static inline void INIT process_bit1(struct writer *wr, struct rc *rc,
} else {
rc_update_bit_1(rc, prob_len);
prob_len = prob + LZMA_LEN_CHOICE_2;
- if (rc_is_bit_0(rc, prob_len)) {
+ if (rc_is_bit_0(rc, prob_len, error)) {
rc_update_bit_0(rc, prob_len);
prob_len = (prob + LZMA_LEN_MID
+ (pos_state <<
@@ -479,7 +483,7 @@ static inline void INIT process_bit1(struct writer *wr, struct rc *rc,
}
}
- rc_bit_tree_decode(rc, prob_len, num_bits, &len);
+ rc_bit_tree_decode(rc, prob_len, num_bits, &len, error);
len += offset;
if (cst->state < 4) {
@@ -494,7 +498,7 @@ static inline void INIT process_bit1(struct writer *wr, struct rc *rc,
<< LZMA_NUM_POS_SLOT_BITS);
rc_bit_tree_decode(rc, prob,
LZMA_NUM_POS_SLOT_BITS,
- &pos_slot);
+ &pos_slot, error);
if (pos_slot >= LZMA_START_POS_MODEL_INDEX) {
int i, mi;
num_bits = (pos_slot >> 1) - 1;
@@ -507,7 +511,7 @@ static inline void INIT process_bit1(struct writer *wr, struct rc *rc,
num_bits -= LZMA_NUM_ALIGN_BITS;
while (num_bits--)
cst->rep0 = (cst->rep0 << 1) |
- rc_direct_bit(rc);
+ rc_direct_bit(rc, error);
prob = p + LZMA_ALIGN;
cst->rep0 <<= LZMA_NUM_ALIGN_BITS;
num_bits = LZMA_NUM_ALIGN_BITS;
@@ -515,7 +519,7 @@ static inline void INIT process_bit1(struct writer *wr, struct rc *rc,
i = 1;
mi = 1;
while (num_bits--) {
- if (rc_get_bit(rc, prob + mi, &mi))
+ if (rc_get_bit(rc, prob + mi, &mi, error))
cst->rep0 |= i;
i <<= 1;
}
@@ -537,7 +541,7 @@ STATIC int INIT unlzma(unsigned char *buf, int in_len,
int(*flush)(void*, unsigned int),
unsigned char *output,
int *posp,
- void(*error_fn)(char *x)
+ void(*error)(char *x)
)
{
struct lzma_header header;
@@ -553,8 +557,6 @@ STATIC int INIT unlzma(unsigned char *buf, int in_len,
unsigned char *inbuf;
int ret = -1;
- set_error_fn(error_fn);
-
if (buf)
inbuf = buf;
else
@@ -577,7 +579,7 @@ STATIC int INIT unlzma(unsigned char *buf, int in_len,
for (i = 0; i < sizeof(header); i++) {
if (rc.ptr >= rc.buffer_end)
- rc_read(&rc);
+ rc_read(&rc, error);
((unsigned char *)&header)[i] = *rc.ptr++;
}
@@ -622,17 +624,17 @@ STATIC int INIT unlzma(unsigned char *buf, int in_len,
for (i = 0; i < num_probs; i++)
p[i] = (1 << RC_MODEL_TOTAL_BITS) >> 1;
- rc_init_code(&rc);
+ rc_init_code(&rc, error);
while (get_pos(&wr) < header.dst_size) {
int pos_state = get_pos(&wr) & pos_state_mask;
uint16_t *prob = p + LZMA_IS_MATCH +
(cst.state << LZMA_NUM_POS_BITS_MAX) + pos_state;
- if (rc_is_bit_0(&rc, prob))
+ if (rc_is_bit_0(&rc, prob, error))
process_bit0(&wr, &rc, &cst, p, pos_state, prob,
- lc, literal_pos_mask);
+ lc, literal_pos_mask, error);
else {
- process_bit1(&wr, &rc, &cst, p, pos_state, prob);
+ process_bit1(&wr, &rc, &cst, p, pos_state, prob, error);
if (cst.rep0 == 0)
break;
}
--
1.7.0

View File

@ -0,0 +1,35 @@
From 2a55046d9ce9b3bbebd36315481e0a0f7b8cffdb Mon Sep 17 00:00:00 2001
From: Randy Dunlap <randy.dunlap@oracle.com>
Date: Tue, 5 Jan 2010 17:15:37 +0000
Subject: [PATCH] libs: force lzma_wrapper to be retained
When CONFIG_SQUASHFS=m and CONFIG_DECOMPRESS_LZMA=m, decompress_lzma
is built but then discarded from the library because no built-in code
uses it, so change it from a lib- to an obj- to force it to be kept
in the library.
ERROR: "unlzma" [fs/squashfs/squashfs.ko] undefined!
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: Phillip Lougher <phillip@lougher.demon.co.uk>
Cc: Michal Marek <mmarek@suse.cz>
---
lib/Makefile | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/lib/Makefile b/lib/Makefile
index 3b0b4a6..94a5f4c 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -68,7 +68,7 @@ obj-$(CONFIG_LZO_DECOMPRESS) += lzo/
lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o
lib-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o
-lib-$(CONFIG_DECOMPRESS_LZMA) += decompress_unlzma.o
+obj-$(CONFIG_DECOMPRESS_LZMA) += decompress_unlzma.o
lib-$(CONFIG_DECOMPRESS_LZO) += decompress_unlzo.o
obj-$(CONFIG_TEXTSEARCH) += textsearch.o
--
1.7.0

View File

@ -0,0 +1,81 @@
aufs2 base patch for linux-2.6.33
diff --git a/fs/namei.c b/fs/namei.c
index a4855af..1d12d37 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1207,7 +1207,7 @@ out:
* needs parent already locked. Doesn't follow mounts.
* SMP-safe.
*/
-static struct dentry *lookup_hash(struct nameidata *nd)
+struct dentry *lookup_hash(struct nameidata *nd)
{
int err;
@@ -1217,7 +1217,7 @@ static struct dentry *lookup_hash(struct nameidata *nd)
return __lookup_hash(&nd->last, nd->path.dentry, nd);
}
-static int __lookup_one_len(const char *name, struct qstr *this,
+int __lookup_one_len(const char *name, struct qstr *this,
struct dentry *base, int len)
{
unsigned long hash;
diff --git a/fs/splice.c b/fs/splice.c
index 3920866..b13a9a2 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -1053,8 +1053,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
/*
* Attempt to initiate a splice from pipe to file.
*/
-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
- loff_t *ppos, size_t len, unsigned int flags)
+long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ loff_t *ppos, size_t len, unsigned int flags)
{
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
loff_t *, size_t, unsigned int);
@@ -1081,9 +1081,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
/*
* Attempt to initiate a splice from a file to a pipe.
*/
-static long do_splice_to(struct file *in, loff_t *ppos,
- struct pipe_inode_info *pipe, size_t len,
- unsigned int flags)
+long do_splice_to(struct file *in, loff_t *ppos,
+ struct pipe_inode_info *pipe, size_t len,
+ unsigned int flags)
{
ssize_t (*splice_read)(struct file *, loff_t *,
struct pipe_inode_info *, size_t, unsigned int);
diff --git a/include/linux/namei.h b/include/linux/namei.h
index 05b441d..91bc74e 100644
--- a/include/linux/namei.h
+++ b/include/linux/namei.h
@@ -73,6 +73,9 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
int (*open)(struct inode *, struct file *));
+extern struct dentry *lookup_hash(struct nameidata *nd);
+extern int __lookup_one_len(const char *name, struct qstr *this,
+ struct dentry *base, int len);
extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
extern int follow_down(struct path *);
diff --git a/include/linux/splice.h b/include/linux/splice.h
index 18e7c7c..8393b5c 100644
--- a/include/linux/splice.h
+++ b/include/linux/splice.h
@@ -82,4 +82,10 @@ extern ssize_t splice_to_pipe(struct pipe_inode_info *,
extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *,
splice_direct_actor *);
+extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ loff_t *ppos, size_t len, unsigned int flags);
+extern long do_splice_to(struct file *in, loff_t *ppos,
+ struct pipe_inode_info *pipe, size_t len,
+ unsigned int flags);
+
#endif

View File

@ -0,0 +1,272 @@
aufs2 standalone patch for linux-2.6.33
diff --git a/fs/namei.c b/fs/namei.c
index 1d12d37..7cb8e5d 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -349,6 +349,7 @@ int deny_write_access(struct file * file)
return 0;
}
+EXPORT_SYMBOL(deny_write_access);
/**
* path_get - get a reference to a path
@@ -1216,6 +1217,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
return ERR_PTR(err);
return __lookup_hash(&nd->last, nd->path.dentry, nd);
}
+EXPORT_SYMBOL(lookup_hash);
int __lookup_one_len(const char *name, struct qstr *this,
struct dentry *base, int len)
@@ -1238,6 +1240,7 @@ int __lookup_one_len(const char *name, struct qstr *this,
this->hash = end_name_hash(hash);
return 0;
}
+EXPORT_SYMBOL(__lookup_one_len);
/**
* lookup_one_len - filesystem helper to lookup single pathname component
diff --git a/fs/namespace.c b/fs/namespace.c
index c768f73..0fd78c3 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -39,6 +39,7 @@
/* spinlock for vfsmount related operations, inplace of dcache_lock */
__cacheline_aligned_in_smp DEFINE_SPINLOCK(vfsmount_lock);
+EXPORT_SYMBOL(vfsmount_lock);
static int event;
static DEFINE_IDA(mnt_id_ida);
diff --git a/fs/notify/group.c b/fs/notify/group.c
index 0e16771..3fab10a 100644
--- a/fs/notify/group.c
+++ b/fs/notify/group.c
@@ -22,6 +22,7 @@
#include <linux/srcu.h>
#include <linux/rculist.h>
#include <linux/wait.h>
+#include <linux/module.h>
#include <linux/fsnotify_backend.h>
#include "fsnotify.h"
@@ -169,6 +170,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
fsnotify_recalc_global_mask();
fsnotify_destroy_group(group);
}
+EXPORT_SYMBOL(fsnotify_put_group);
/*
* Simply run the fsnotify_groups list and find a group which matches
@@ -252,3 +254,4 @@ struct fsnotify_group *fsnotify_obtain_group(unsigned int group_num, __u32 mask,
return group;
}
+EXPORT_SYMBOL(fsnotify_obtain_group);
diff --git a/fs/notify/inode_mark.c b/fs/notify/inode_mark.c
index 3165d85..4586162 100644
--- a/fs/notify/inode_mark.c
+++ b/fs/notify/inode_mark.c
@@ -106,6 +106,7 @@ void fsnotify_put_mark(struct fsnotify_mark_entry *entry)
if (atomic_dec_and_test(&entry->refcnt))
entry->free_mark(entry);
}
+EXPORT_SYMBOL(fsnotify_put_mark);
/*
* Recalculate the mask of events relevant to a given inode locked.
@@ -216,6 +217,7 @@ void fsnotify_destroy_mark_by_entry(struct fsnotify_mark_entry *entry)
if (unlikely(atomic_dec_and_test(&group->num_marks)))
fsnotify_final_destroy_group(group);
}
+EXPORT_SYMBOL(fsnotify_destroy_mark_by_entry);
/*
* Given a group, destroy all of the marks associated with that group.
@@ -282,6 +284,7 @@ struct fsnotify_mark_entry *fsnotify_find_mark_entry(struct fsnotify_group *grou
}
return NULL;
}
+EXPORT_SYMBOL(fsnotify_find_mark_entry);
/*
* Nothing fancy, just initialize lists and locks and counters.
@@ -298,6 +301,7 @@ void fsnotify_init_mark(struct fsnotify_mark_entry *entry,
entry->inode = NULL;
entry->free_mark = free_mark;
}
+EXPORT_SYMBOL(fsnotify_init_mark);
/*
* Attach an initialized mark entry to a given group and inode.
@@ -353,6 +357,7 @@ int fsnotify_add_mark(struct fsnotify_mark_entry *entry,
return ret;
}
+EXPORT_SYMBOL(fsnotify_add_mark);
/**
* fsnotify_unmount_inodes - an sb is unmounting. handle any watched inodes.
diff --git a/fs/open.c b/fs/open.c
index 040cef7..453b782 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -226,6 +226,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
mutex_unlock(&dentry->d_inode->i_mutex);
return ret;
}
+EXPORT_SYMBOL(do_truncate);
static long do_sys_truncate(const char __user *pathname, loff_t length)
{
diff --git a/fs/splice.c b/fs/splice.c
index b13a9a2..3931ee0 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -1077,6 +1077,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
return splice_write(pipe, out, ppos, len, flags);
}
+EXPORT_SYMBOL(do_splice_from);
/*
* Attempt to initiate a splice from a file to a pipe.
@@ -1103,6 +1104,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
return splice_read(in, ppos, pipe, len, flags);
}
+EXPORT_SYMBOL(do_splice_to);
/**
* splice_direct_to_actor - splices data directly between two non-pipes
diff --git a/security/commoncap.c b/security/commoncap.c
index f800fdb..ea457bc 100644
--- a/security/commoncap.c
+++ b/security/commoncap.c
@@ -946,3 +946,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
}
return ret;
}
+EXPORT_SYMBOL(cap_file_mmap);
diff --git a/security/device_cgroup.c b/security/device_cgroup.c
index 6cf8fd2..008e0d8 100644
--- a/security/device_cgroup.c
+++ b/security/device_cgroup.c
@@ -514,6 +514,7 @@ found:
return -EPERM;
}
+EXPORT_SYMBOL(devcgroup_inode_permission);
int devcgroup_inode_mknod(int mode, dev_t dev)
{
diff --git a/security/security.c b/security/security.c
index 122b748..a4a3d99 100644
--- a/security/security.c
+++ b/security/security.c
@@ -404,6 +404,7 @@ int security_path_mkdir(struct path *path, struct dentry *dentry, int mode)
return 0;
return security_ops->path_mkdir(path, dentry, mode);
}
+EXPORT_SYMBOL(security_path_mkdir);
int security_path_rmdir(struct path *path, struct dentry *dentry)
{
@@ -411,6 +412,7 @@ int security_path_rmdir(struct path *path, struct dentry *dentry)
return 0;
return security_ops->path_rmdir(path, dentry);
}
+EXPORT_SYMBOL(security_path_rmdir);
int security_path_unlink(struct path *path, struct dentry *dentry)
{
@@ -418,6 +420,7 @@ int security_path_unlink(struct path *path, struct dentry *dentry)
return 0;
return security_ops->path_unlink(path, dentry);
}
+EXPORT_SYMBOL(security_path_unlink);
int security_path_symlink(struct path *path, struct dentry *dentry,
const char *old_name)
@@ -426,6 +429,7 @@ int security_path_symlink(struct path *path, struct dentry *dentry,
return 0;
return security_ops->path_symlink(path, dentry, old_name);
}
+EXPORT_SYMBOL(security_path_symlink);
int security_path_link(struct dentry *old_dentry, struct path *new_dir,
struct dentry *new_dentry)
@@ -434,6 +438,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
return 0;
return security_ops->path_link(old_dentry, new_dir, new_dentry);
}
+EXPORT_SYMBOL(security_path_link);
int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
struct path *new_dir, struct dentry *new_dentry)
@@ -444,6 +449,7 @@ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
return security_ops->path_rename(old_dir, old_dentry, new_dir,
new_dentry);
}
+EXPORT_SYMBOL(security_path_rename);
int security_path_truncate(struct path *path, loff_t length,
unsigned int time_attrs)
@@ -452,6 +458,7 @@ int security_path_truncate(struct path *path, loff_t length,
return 0;
return security_ops->path_truncate(path, length, time_attrs);
}
+EXPORT_SYMBOL(security_path_truncate);
int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
mode_t mode)
@@ -460,6 +467,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
return 0;
return security_ops->path_chmod(dentry, mnt, mode);
}
+EXPORT_SYMBOL(security_path_chmod);
int security_path_chown(struct path *path, uid_t uid, gid_t gid)
{
@@ -467,6 +475,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
return 0;
return security_ops->path_chown(path, uid, gid);
}
+EXPORT_SYMBOL(security_path_chown);
int security_path_chroot(struct path *path)
{
@@ -543,6 +552,7 @@ int security_inode_readlink(struct dentry *dentry)
return 0;
return security_ops->inode_readlink(dentry);
}
+EXPORT_SYMBOL(security_inode_readlink);
int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
{
@@ -557,6 +567,7 @@ int security_inode_permission(struct inode *inode, int mask)
return 0;
return security_ops->inode_permission(inode, mask);
}
+EXPORT_SYMBOL(security_inode_permission);
int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
{
@@ -657,6 +668,7 @@ int security_file_permission(struct file *file, int mask)
{
return security_ops->file_permission(file, mask);
}
+EXPORT_SYMBOL(security_file_permission);
int security_file_alloc(struct file *file)
{
@@ -684,6 +696,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
return ret;
return ima_file_mmap(file, prot);
}
+EXPORT_SYMBOL(security_file_mmap);
int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
unsigned long prot)

View File

@ -0,0 +1,883 @@
P3
80 80
255
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 32 44
9 36 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34 98 130
51 116 148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 13 19 43 149 202
77 164 208 12 23 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 14 66 93 70 168 217
73 170 219 46 89 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 46 133 178 72 170 218
71 169 219 91 165 202 1 6 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 36 51 70 168 217 73 170 219
71 169 219 91 178 222 27 58 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 34 98 130 74 171 219 73 170 219
73 170 219 82 175 221 71 136 167 3 6 8 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 3 16 22 67 158 204 75 171 219 74 171 219
74 171 219 75 171 219 105 185 225 20 41 51 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 29 73 94 74 171 219 75 171 219 76 172 219
75 171 219 75 171 219 95 181 223 62 117 146 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 3 6 7 46 133 178 78 172 220 77 172 220 77 172 220
77 172 220 76 172 219 88 177 222 95 170 207 12 24 31 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 12 46 63 76 170 216 79 173 220 78 173 220 78 172 220
78 172 220 78 172 220 81 174 221 105 185 225 46 89 110 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 51 116 148 80 174 220 80 174 220 79 173 220 79 173 220
78 173 220 78 173 220 78 172 220 99 182 224 91 165 202 2 8 11 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 8 27 36 72 166 212 81 174 221 81 174 221 80 174 220 80 174 220
80 174 220 79 173 220 79 173 220 88 177 222 105 185 225 29 73 94 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 2 3 39 93 119 83 175 221 83 175 221 82 175 221 82 175 221 81 174 221
81 174 221 80 174 220 80 174 220 84 174 220 108 186 226 73 152 191 2 4 5 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 3 12 16 67 158 204 85 176 221 84 175 221 83 175 221 83 175 221 83 175 221
82 175 221 82 175 221 81 174 221 81 174 221 99 182 224 108 186 226 22 48 61 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 29 73 94 87 176 221 86 176 221 85 176 221 85 176 221 84 175 221 84 175 221
83 175 221 83 175 221 83 175 221 82 175 221 87 176 221 110 187 226 71 136 167 1 3 4
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 8 11 68 147 187 85 176 221 86 176 221 86 176 221 86 176 221 86 176 221 85 176 221
85 176 221 84 175 221 84 175 221 83 175 221 84 175 221 103 184 225 102 182 223 19 37 46
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27 58 72 84 174 220 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 85 176 221 85 176 221 84 175 221 91 178 222 110 188 227 62 117 146
0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2
61 131 166 83 175 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 110 187 226 97 173 211
11 26 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 41 51
83 172 216 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 99 182 224 113 189 227
50 102 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 93 119
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 89 177 222 111 188 227
97 173 211 6 14 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 16 21
65 134 168 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 102 182 223
112 189 227 42 89 113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 3 6 8 0 0 0
6 14 19 65 134 168 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 89 177 222
111 188 227 95 170 207 5 14 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 26 33 73 152 191 22 48 61
0 1 1 5 12 15 65 134 168 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
99 182 224 113 189 227 42 89 113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 50 104 131 86 176 221 82 169 212
42 89 113 5 12 15 5 12 15 59 124 156 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
89 177 222 111 188 227 91 165 202 6 17 23 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 11 26 33 77 164 208 86 176 221 86 176 221
87 176 221 68 147 187 22 48 61 5 10 13 50 104 131 85 175 219 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 99 182 224 112 188 227 42 89 113 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 50 104 131 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 85 175 219 59 124 156 20 41 51 29 73 94 83 169 213 87 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 88 177 222 111 188 227 91 165 202 6 16 21 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 14 28 34 83 168 211 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 83 169 213 59 124 156 40 85 109 73 152 191
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 99 182 224 112 188 227 42 89 113 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 50 104 131 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 87 176 221 83 172 216 73 152 191
82 169 212 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 88 177 221 110 187 226 93 168 206 3 12 16 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 12 23 29 83 169 213 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 95 181 223 112 189 227 40 85 109 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 55 107 134 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 87 176 221 105 185 225 93 168 206 6 14 19 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 14 28 34 83 168 211 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 91 178 222 112 188 227 42 89 113 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 2 2 55 107 134 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 102 182 223 91 165 202 6 17 23
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19 37 46 83 169 213 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 88 177 222 110 187 226 46 89 110
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
62 117 146 85 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 86 176 221 86 176 221 86 176 221 82 174 220 71 169 219 59 164 216 46 158 213
42 156 213 37 153 212 33 152 211 32 151 211 32 151 211 33 152 211 39 155 212 46 158 213
54 161 215 63 165 217 72 170 218 84 174 220 86 176 221 86 176 221 95 181 223 95 170 207
7 16 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 41 51
83 169 213 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221
86 176 221 78 173 220 59 164 216 39 155 212 28 149 210 24 147 209 23 147 209 24 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 24 148 209 28 149 210 39 155 212 54 161 215 74 170 219 105 185 225
47 93 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 63 128 161
86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 86 176 221 83 175 221 66 167 217
42 156 213 26 149 210 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 24 148 209 38 154 212
72 166 212 6 17 23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 41 51 85 175 219
86 176 221 86 176 221 86 176 221 86 176 221 83 175 221 59 164 216 32 151 211 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
37 153 212 34 98 130 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 4 5 61 131 166 87 176 221
86 176 221 86 176 221 82 174 220 54 161 215 29 150 210 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 43 149 202 8 27 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 22 48 61 85 175 219 86 176 221
84 175 221 63 165 217 32 151 211 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 26 149 210 34 98 130 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 3 6 7 65 134 168 88 177 222 71 169 219
38 154 212 24 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 29 150 210 8 32 44 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 27 58 72 76 170 216 46 158 213 24 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 146 207 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 24 147 209 23 146 207 17 106 151 0 1 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 6 8 46 133 178 24 148 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 22 144 204 15 94 133 6 37 53 2 12 16
1 8 11 6 37 53 15 94 133 22 144 204 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 24 147 209 23 144 204 9 36 51 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 9 59 84 23 146 208 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 21 135 192 7 44 62 0 2 2 0 0 0 0 0 0
0 0 0 0 0 0 0 2 2 7 44 62 21 135 192 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 17 110 156 0 2 2 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 8 11 20 131 186 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 22 140 198 6 38 54 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 6 38 54 22 140 198 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 146 208 7 42 60 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 11 73 105 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 146 208 10 66 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 66 94 23 146 208 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 18 116 165 1 5 7 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 3 18 26 21 135 193 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 18 116 166 0 3 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 4 18 116 166 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 146 208 8 51 72 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 14 86 123 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 146 207 8 50 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 50 71 23 146 207
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 19 120 171 1 7 11
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4 27 39 22 140 198 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
20 127 180 1 6 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 6 8 20 127 180
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 146 208 9 59 84
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
16 101 144 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
13 85 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 85 121
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 20 129 184
1 8 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 38 54
22 144 204 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
7 42 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 42 60
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 146 208
11 70 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 4 17 111 157
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 22 142 202
3 18 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 18 25
22 142 202 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 146 208 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
21 133 189 2 12 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 48 68 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 20 127 181
1 9 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 9 12
20 127 181 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 22 142 202 17 106 151 17 110 156 22 143 203 23 147 209 23 147 209 23 147 209
23 147 209 12 75 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 7 11 19 122 173 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 18 116 165
0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2
18 116 165 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 146 207 16 101 144 5 34 49 9 59 84 17 108 154 22 143 203
23 147 209 21 136 193 3 19 27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 63 89 23 146 208 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 17 111 157
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17 111 157 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 22 140 198 12 80 113 2 13 19 4 25 35
13 85 121 21 135 192 13 85 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 2 13 19 20 129 184 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 17 107 152
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17 107 152 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 19 119 169 5 34 49
0 1 1 3 18 26 12 75 107 3 17 25 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 12 76 107 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 17 110 156
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17 110 156 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 22 142 202
12 75 107 1 3 5 0 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 3 18 25 22 140 198 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 18 118 167
0 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 3
18 118 167 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 17 107 152 3 17 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 2 14 89 127 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 20 129 183
1 9 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 9 13
20 129 183 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 20 127 180 5 34 49 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 4 27 39 22 142 202 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 145 207 21 135 192
3 17 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 17 24
21 135 192 23 145 207 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 22 139 198 9 57 81 0 2 2 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 2 3 16 101 144 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 22 143 203 17 111 157 11 71 102 6 38 54 2 10 14
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 10 14 6 38 54 11 71 102 17 108 154 22 142 202 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 146 207 13 83 118 1 3 5 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 6 41 58 23 145 206 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
22 139 198 16 101 144 8 51 72 2 12 16 0 2 2 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 2 2 12 16 8 50 71 15 100 141 22 138 196
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 146 207 8 50 71 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 4 6 17 113 161 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 144 204 19 121 172 10 66 94
3 19 27 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 18 25
10 65 92 19 120 171 23 144 204 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 19 120 171 1 6 9
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
8 52 74 23 145 207 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 21 137 195 14 89 127 6 36 52 1 4 6 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 3 5 6 36 52 14 89 127 21 137 195 23 147 209 23 147 209 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 146 207 9 59 84
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 5 7
20 127 180 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
23 147 209 20 130 185 11 70 100 2 10 15 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 2 10 14 11 70 100 20 129 183 23 147 209
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 20 131 186
1 7 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 66 94
23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 19 125 178
10 63 89 1 9 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 9 12 10 63 89
19 125 178 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209 23 147 209
11 71 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 13 19 21 133 189
23 147 209 23 147 209 23 147 209 23 147 209 23 146 207 19 122 173 9 57 81 1 9 12
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 8 11 9 57 81 19 122 173 23 146 207 23 147 209 23 147 209 23 147 209 23 147 209
21 135 192 3 16 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 80 113 23 147 209
23 147 209 23 147 209 23 146 208 19 125 178 8 52 74 1 6 8 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 6 9 8 52 74 19 125 178 23 146 208 23 147 209 23 147 209
23 147 209 13 83 118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 21 31 22 138 196 23 147 209
23 147 209 20 130 185 10 63 89 1 4 6 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 4 6 10 63 89 20 130 185 23 147 209
23 147 209 22 139 198 4 25 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 15 94 133 23 147 209 21 137 195
12 76 107 2 12 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 12 17 12 76 107
21 137 195 23 147 209 15 94 133 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 5 32 45 21 135 193 14 92 130 3 21 31
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3 21 31 14 92 130 21 136 193 5 32 45 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 10 64 91 5 31 44 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 5 31 44 10 65 92 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

View File

@ -0,0 +1,323 @@
P2
80 80
255
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255
255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 255 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0
0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 0 0 0 0
0 0
0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 0 0 0
0 0
0 0 0 0 0 0 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0
0 0
0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0
0 0
0 0 0 0 0 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 0
0 0
0 0 0 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0

View File

@ -0,0 +1,323 @@
P2
80 80
255
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 85 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 85 255 170 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255 85 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 170 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 85 255 255 255 255 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 170 255 255 255 255 85 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 85 255 255 255 255 255 170 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 170 255 255 255 255 255 255 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 85 255 255 255 255 255 255 255 170 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 170 255 255 255 255 255 255 255 170 85 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 170 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 85 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 85 170 255 255 255 255 255 255 255 255 255 255 85 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 170 255 255 255 255 255 255 255 255 255 255 255 170 85 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 85 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 85 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 85 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 85 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 85 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 85 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 85 85 0 0 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 85
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 170 255 170 0 0 85 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 85 255 255 255 170 85 0 85 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 255 255 255 255 255 170 170 0 85 170 255 255 255 255 255 255 255 255 255 255 255 255 255
170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 85 255 255 255 255 255 255 255 255 170 85 170 255 255 255 255 255 255 255 255 255 255 255 255
255 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 170 255 255 255 255 255 255 255 255 255 170 170 170 255 255 255 255 255 255 255 255 255 255 255
255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 85 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
85 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 170 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 170 255 170 170 255 170 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 170 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 170 85 0 85 85 0 85 170 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 170 0 0 0 0 0 0 0 0 170 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 170 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 170 0 0 0 0 0 0 0 0 0 0 170 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 170 85 0 0 0 0 0 0 0 0 0 0 85 170 255 255 255 255
255 255 255 255 255 255 255 255 255 255 170 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 85 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 170 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 170 85 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 170 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255
255 255 255 255 255 255 255 170 255 255 255 255 255 255 85 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255
255 255 255 255 255 255 255 255 170 85 170 170 170 255 170 85 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 85 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 255 255
255 255 255 255 255 255 255 255 255 255 85 0 85 170 255 170 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255
255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 85 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 85 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 170 85 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 170 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 85 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 85 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 85 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 85 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 85 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 170
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 85 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 85 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
170 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 85 170 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 85 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 85 170 255 255 255 255 255 255 255 255 255 255 255 255 255 170 85 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 85 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 85 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 170 170 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 85 170 255 255 255 255 255 255 255 255 255 255 255 170 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 170 255 255 255 255 255 255 255 255 255 255 85 85 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 85 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0
0 0
0 0 0 0 0 0 0 85 255 255 255 255 255 255 255 255 170 85 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 170 255 255 255 255 255 255 255 255 170 0 0 0 0
0 0
0 0 0 0 0 0 85 170 255 255 255 255 255 255 170 85 85 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 255 255 255 255 255 255 255 85 0 0 0
0 0
0 0 0 0 0 0 170 255 255 255 255 255 170 85 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 255 255 255 255 255 170 0 0 0
0 0
0 0 0 0 0 0 255 255 255 255 255 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 255 255 255 255 85 0 0
0 0
0 0 0 0 0 85 255 255 170 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 170 255 255 170 0 0
0 0
0 0 0 0 85 170 255 170 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 255 255 85 0
0 0
0 0 0 0 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 170 0
0 0
0 0 0 0 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0

View File

@ -1,11 +1,11 @@
# $Id: PKGBUILD 72652 2010-03-19 03:16:01Z allan $
# $Id: PKGBUILD 77599 2010-04-16 11:53:32Z allan $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Maintainer: Allan McRae <allan@archlinux.org>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
pkgname=linux-api-headers
pkgver=2.6.33.1
pkgver=2.6.33.2
_basever=2.6.33
pkgrel=1
pkgdesc="Kernel headers sanitized for use in userspace"
@ -19,7 +19,7 @@ source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${_basever}.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/patch-${pkgver}.bz2
scsi.patch)
md5sums=('c3883760b18d50e8d78819c54d579b00'
'745fd1355c630e163e40c40d4c9b79f9'
'617be5b4c92be6e4f2ed66349c77d3c2'
'b6d05566fcfe07770d9386f0588f8758')
build() {
@ -31,6 +31,10 @@ build() {
make mrproper
make headers_check || return 1
}
package() {
cd ${srcdir}/linux-${_basever}
make INSTALL_HDR_PATH=${pkgdir}/usr headers_install
rm -rf ${pkgdir}/usr/include/drm

View File

@ -1,25 +1,23 @@
# $Id: PKGBUILD 13520 2008-09-27 14:40:44Z tpowa $
# $Id: PKGBUILD 79085 2010-04-30 07:29:32Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Surain Mallawa Arachchi <mas@crc32.net>
pkgname=linux-atm
pkgver=2.5.0
pkgver=2.5.1
pkgrel=1
pkgdesc="Drivers and tools to support ATM networking under Linux."
arch=('i686' 'x86_64')
depends=('glibc')
source=(http://heanet.dl.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz \
linux-atm-2.5.0-glibc28.patch)
source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tgz)
url="http://linux-atm.sourceforge.net/"
license=(GPL)
options=(!libtool)
md5sums=('0b45a0e801fac7093ce4b0cadf419965'
'2e195df66995d2feb9ccc602cbf399b2')
options=(!libtool !makeflags)
md5sums=('9560b0e1f410a05b849dfdab465dd758')
build() {
cd $startdir/src/$pkgname-$pkgver
patch -Np1 -i ../linux-atm-2.5.0-glibc28.patch || return 1
cd $srcdir/$pkgname-$pkgver
./configure --prefix=/usr --sysconfdir=/etc || return 1
make || return 1
make DESTDIR=$startdir/pkg install
make DESTDIR=$pkgdir install
}

View File

@ -14,8 +14,7 @@ depends=('popt' 'cron' 'gzip')
backup=('etc/logrotate.conf')
#WTF are you doing, Fedora?
_pkgmd5=b3589bea6d8d5afc8a84134fddaae973
source=(#http://cvs.fedora.redhat.com/repo/pkgs/$pkgname/$pkgname-$pkgver.tar.gz/$_pkgmd5/$pkgname-$pkgver.tar.gz
http://www.sfr-fresh.com/unix/privat/$pkgname-$pkgver.tar.gz
source=( http://cvs.fedora.redhat.com/repo/pkgs/$pkgname/$pkgname-$pkgver.tar.gz/$_pkgmd5/$pkgname-$pkgver.tar.gz
logrotate.conf logrotate.cron.daily)
md5sums=($_pkgmd5
'462a5f364717461537eb2ae6394ad23e'

View File

@ -1,3 +1,9 @@
2010-04-05 Eric Belanger <eric@archlinux.org>
* lvm2/device-mapper 2.02.62-1
* Upstream update
* Fixed license
2010-02-27 Eric Belanger <eric@archlinux.org>
* lvm2/device-mapper 2.02.61-1

View File

@ -1,23 +1,23 @@
# $Id: PKGBUILD 70661 2010-02-28 08:38:45Z eric $
# $Id: PKGBUILD 76014 2010-04-06 04:43:37Z eric $
# Maintainer: Eric Belanger <eric@archlinux.org>
pkgbase=lvm2
pkgname=('lvm2' 'device-mapper')
pkgver=2.02.61
_pkgverdm=1.02.44
pkgver=2.02.62
_pkgverdm=1.02.45
_pkgverlvm=${pkgver}
pkgrel=1
arch=('i686' 'x86_64')
url="http://sourceware.org/lvm2/"
license=('GPL')
license=('GPL2' 'LGPL2.1')
groups=('base')
conflicts=('mkinitcpio<0.5.99')
source=(ftp://sources.redhat.com/pub/lvm2/LVM2.${_pkgverlvm}.tgz
lvm2_install
lvm2_hook)
md5sums=('0fdac768c78d96525d47b5a3df4c67de' 'f781c9f5dd4f9934952c687b73d26a18'\
md5sums=('72e3d66dc42aaf67dca475196a113528' 'f781c9f5dd4f9934952c687b73d26a18'\
'95bed25bdbc2c2d8500e7a07aeff7f65')
sha1sums=('a699c9497db438227c552f1821281ce583b9ea5b' '583424bb0a6f89ffe4e4ea446b912f0fedac7050'\
sha1sums=('0b179b599324c5d3607b29bb0b07b8723e1e4070' '583424bb0a6f89ffe4e4ea446b912f0fedac7050'\
'0dc0c0d620f634c4d078afdb78e3bae15ccf957b')
build() {

View File

@ -12,7 +12,7 @@ groups=('base')
depends=('glibc')
optdepends=('smtp-forwarder: for sending mail')
backup=('etc/mail.rc')
source=(http://konnektion.ath.cx/sources/core/mailx/$pkgname-$pkgver-fixed.tar.gz \
source=(ftp://ftp.archlinux.org/other/mailx/$pkgname-$pkgver-fixed.tar.gz \
mailx-$pkgver.patch mailx-gcc4.patch)
md5sums=('63cad526ac64b57bcba2c0daaa1f3048' '905cfa35b5131524bfec0c677d456bd3'\
'8716c7c7b3f5d348443230e2fe543bf6')

View File

@ -1,17 +1,17 @@
# $Id: PKGBUILD 30197 2009-03-17 11:43:22Z andyrtr $
# Maintainer: Andreas Radke <andyrtr at archlinux.org>
# $Id: PKGBUILD 77792 2010-04-18 03:42:45Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=make
pkgver=3.81
pkgrel=4
pkgrel=5
pkgdesc="GNU make utility to maintain groups of programs"
arch=(i686 x86_64)
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/make"
license=('GPL')
groups=('base-devel')
depends=('glibc' 'sh')
install=$pkgname.install
depends=('glibc' 'bash')
source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
md5sums=('a4e9494ac6dc3f6b0c5ff75c5d52abba')
@ -19,8 +19,10 @@ build() {
cd ${srcdir}/${pkgname}-${pkgver}
./configure --prefix=/usr \
--mandir=/usr/share/man --infodir=/usr/share/info
make || return 1
make DESTDIR=${pkgdir} install || return 1
rm -f ${pkgdir}/usr/share/info/dir
make
}
package() {
cd ${srcdir}/${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install
}

View File

@ -4,7 +4,7 @@ filelist=(make.info make.info-1 make.info-2)
post_install() {
[ -x usr/bin/install-info ] || return 0
for file in ${filelist[@]}; do
install-info $infodir/$file $infodir/dir 2> /dev/null
install-info $infodir/$file.gz $infodir/dir 2> /dev/null
done
}
@ -15,8 +15,6 @@ post_upgrade() {
pre_remove() {
[ -x usr/bin/install-info ] || return 0
for file in ${filelist[@]}; do
install-info --delete $infodir/$file $infodir/dir 2> /dev/null
install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
done
}
# vim:set ts=2 sw=2 et:

View File

@ -1,26 +1,35 @@
# $Id: PKGBUILD 68222 2010-02-11 19:10:44Z thomas $
# $Id: PKGBUILD 79944 2010-05-09 17:50:54Z thomas $
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=mkinitcpio-busybox
pkgver=1.15.3
pkgrel=5
pkgver=1.16.1
pkgrel=3
pkgdesc="base initramfs tools"
arch=('i686' 'x86_64')
url="http://www.busybox.net/"
license=('GPL')
depends=('glibc')
source=(http://busybox.net/downloads/busybox-${pkgver}.tar.bz2
config)
sha256sums=('d74020ad2cc5a4dcc5109c44dbd0e22582d6ce42954b0f1ff29763c8c0ff03cb'
'abd66b978171447c20532ea23dd0a474c2c083d88658665fb1b7e2c3503a9bfe')
config
loadfont-setfont-optional-psf2-font-support.patch)
sha256sums=('6d45ec8e72ca85516c8669f81267e0fbe11881435983e32532a56b44651dd6c5'
'd629e936941c854e7aa5e1b564d74bde3a1d328f1e0dd30c86a958d2724685ce'
'624d21345cd869c174a3ae1b9cfe23a461ce8b463c7ac4c052726430890c4eb1')
build() {
cd "${srcdir}/busybox-${pkgver}"
# Backport http://git.busybox.net/busybox/commit/?id=8ce1dc03c1b2b61e51527b987579c09c991cc4b2
# to busybox 1.16 to fix https://bugs.archlinux.org/task/19109
patch -p1 -i ../loadfont-setfont-optional-psf2-font-support.patch || return 1
unset CFLAGS CXXFLAGS
# -fno-tree-pta is required to work around a bug in gcc 4.5.0
# A patch is scheduled to be backported to 4.5.1, so we can remove it
# once that is released. Reference: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43987
if [ ${CARCH} = "x86_64" ]; then
sed 's|^CONFIG_EXTRA_CFLAGS=.*|CONFIG_EXTRA_CFLAGS="-march=x86-64 -mtune=generic -Os -pipe -fno-strict-aliasing"|' "${srcdir}/config" > .config
sed 's|^CONFIG_EXTRA_CFLAGS=.*|CONFIG_EXTRA_CFLAGS="-march=x86-64 -mtune=generic -O0 -pipe -fno-strict-aliasing"|' "${srcdir}/config" > .config
else
sed 's|^CONFIG_EXTRA_CFLAGS=.*|CONFIG_EXTRA_CFLAGS="-march=i686 -mtune=generic -Os -pipe -fno-strict-aliasing"|' "${srcdir}/config" > .config
sed 's|^CONFIG_EXTRA_CFLAGS=.*|CONFIG_EXTRA_CFLAGS="-march=i686 -mtune=generic -O0 -pipe -fno-strict-aliasing"|' "${srcdir}/config" > .config
fi
make || return 1
}

View File

@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.15.3
# Sat Feb 6 00:07:28 2010
# Busybox version: 1.16.1
# Sun Apr 11 13:13:36 2010
#
CONFIG_HAVE_DOT_CONFIG=y
@ -14,6 +14,8 @@ CONFIG_HAVE_DOT_CONFIG=y
#
# CONFIG_DESKTOP is not set
# CONFIG_EXTRA_COMPAT is not set
# CONFIG_INCLUDE_SUSv2 is not set
# CONFIG_USE_PORTABLE_CODE is not set
CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
@ -59,7 +61,6 @@ CONFIG_EXTRA_CFLAGS=""
CONFIG_NO_DEBUG_LIB=y
# CONFIG_DMALLOC is not set
# CONFIG_EFENCE is not set
# CONFIG_INCLUDE_SUSv2 is not set
#
# Installation Options
@ -120,6 +121,7 @@ CONFIG_IOCTL_HEX2STR_ERROR=y
# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
# CONFIG_GUNZIP is not set
# CONFIG_GZIP is not set
# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
# CONFIG_LZOP is not set
# CONFIG_LZOP_COMPR_HIGH is not set
# CONFIG_RPM2CPIO is not set
@ -133,6 +135,7 @@ CONFIG_IOCTL_HEX2STR_ERROR=y
# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set
# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set
# CONFIG_UNCOMPRESS is not set
# CONFIG_UNLZMA is not set
# CONFIG_FEATURE_LZMA_FAST is not set
@ -148,15 +151,19 @@ CONFIG_CAT=y
CONFIG_CHGRP=y
CONFIG_CHMOD=y
CONFIG_CHOWN=y
# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
CONFIG_CHROOT=y
# CONFIG_CKSUM is not set
# CONFIG_COMM is not set
CONFIG_CP=y
# CONFIG_FEATURE_CP_LONG_OPTIONS is not set
CONFIG_CUT=y
# CONFIG_DATE is not set
# CONFIG_FEATURE_DATE_ISOFMT is not set
# CONFIG_FEATURE_DATE_COMPAT is not set
CONFIG_DD=y
# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
# CONFIG_FEATURE_DD_IBS_OBS is not set
CONFIG_DF=y
# CONFIG_FEATURE_DF_FANCY is not set
@ -294,6 +301,12 @@ CONFIG_DEFAULT_SETFONT_DIR=""
# CONFIG_SETLOGCONS is not set
# CONFIG_SHOWKEY is not set
#
# Common options for loadfont and setfont
#
CONFIG_FEATURE_LOADFONT_PSF2=y
CONFIG_FEATURE_LOADFONT_RAW=y
#
# Debian Utilities
#
@ -314,9 +327,8 @@ CONFIG_AWK=y
# CONFIG_FEATURE_AWK_LIBM is not set
# CONFIG_CMP is not set
# CONFIG_DIFF is not set
# CONFIG_FEATURE_DIFF_BINARY is not set
# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
# CONFIG_FEATURE_DIFF_DIR is not set
# CONFIG_FEATURE_DIFF_MINIMAL is not set
# CONFIG_ED is not set
# CONFIG_PATCH is not set
CONFIG_SED=y
@ -360,6 +372,7 @@ CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
# CONFIG_FEATURE_FIND_PATH is not set
# CONFIG_FEATURE_FIND_REGEX is not set
# CONFIG_FEATURE_FIND_CONTEXT is not set
# CONFIG_FEATURE_FIND_LINKS is not set
CONFIG_GREP=y
CONFIG_FEATURE_GREP_EGREP_ALIAS=y
# CONFIG_FEATURE_GREP_FGREP_ALIAS is not set
@ -449,6 +462,7 @@ CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
# Options common to multiple modutils
#
# CONFIG_FEATURE_2_4_MODULES is not set
# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
@ -484,8 +498,10 @@ CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
# CONFIG_FINDFS is not set
# CONFIG_FREERAMDISK is not set
# CONFIG_FSCK_MINIX is not set
# CONFIG_MKFS_EXT2 is not set
# CONFIG_MKFS_MINIX is not set
# CONFIG_FEATURE_MINIX2 is not set
# CONFIG_MKFS_REISER is not set
# CONFIG_MKFS_VFAT is not set
CONFIG_GETOPT=y
CONFIG_FEATURE_GETOPT_LONG=y
@ -498,6 +514,8 @@ CONFIG_HEXDUMP=y
# CONFIG_IPCRM is not set
# CONFIG_IPCS is not set
CONFIG_LOSETUP=y
# CONFIG_LSPCI is not set
# CONFIG_LSUSB is not set
# CONFIG_MDEV is not set
# CONFIG_FEATURE_MDEV_CONF is not set
# CONFIG_FEATURE_MDEV_RENAME is not set
@ -510,6 +528,7 @@ CONFIG_LOSETUP=y
# CONFIG_FEATURE_USE_TERMIOS is not set
CONFIG_VOLUMEID=y
# CONFIG_FEATURE_VOLUMEID_EXT is not set
# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
# CONFIG_FEATURE_VOLUMEID_FAT is not set
# CONFIG_FEATURE_VOLUMEID_HFS is not set
@ -587,6 +606,7 @@ CONFIG_FEATURE_CROND_DIR=""
# CONFIG_EJECT is not set
# CONFIG_FEATURE_EJECT_SCSI is not set
# CONFIG_FBSPLASH is not set
# CONFIG_FLASHCP is not set
# CONFIG_FLASH_LOCK is not set
# CONFIG_FLASH_UNLOCK is not set
# CONFIG_FLASH_ERASEALL is not set
@ -630,6 +650,7 @@ CONFIG_STRINGS=y
# CONFIG_TIMEOUT is not set
# CONFIG_TTYSIZE is not set
# CONFIG_VOLNAME is not set
# CONFIG_WALL is not set
# CONFIG_WATCHDOG is not set
#
@ -649,6 +670,7 @@ CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
# CONFIG_FAKEIDENTD is not set
# CONFIG_FTPD is not set
# CONFIG_FEATURE_FTP_WRITE is not set
# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set
# CONFIG_FTPGET is not set
# CONFIG_FTPPUT is not set
# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
@ -714,6 +736,8 @@ CONFIG_NETSTAT=y
CONFIG_FEATURE_NETSTAT_WIDE=y
CONFIG_FEATURE_NETSTAT_PRG=y
CONFIG_NSLOOKUP=y
# CONFIG_NTPD is not set
# CONFIG_FEATURE_NTPD_SERVER is not set
CONFIG_PING=y
CONFIG_PING6=y
CONFIG_FEATURE_FANCY_PING=y
@ -725,28 +749,31 @@ CONFIG_TELNET=y
# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
# CONFIG_TELNETD is not set
# CONFIG_FEATURE_TELNETD_STANDALONE is not set
# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
CONFIG_TFTP=y
# CONFIG_TFTPD is not set
CONFIG_FEATURE_TFTP_GET=y
# CONFIG_FEATURE_TFTP_PUT is not set
# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
# CONFIG_TFTP_DEBUG is not set
# CONFIG_TRACEROUTE is not set
# CONFIG_TRACEROUTE6 is not set
# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
# CONFIG_APP_UDHCPD is not set
# CONFIG_APP_DHCPRELAY is not set
# CONFIG_APP_DUMPLEASES is not set
# CONFIG_UDHCPD is not set
# CONFIG_DHCPRELAY is not set
# CONFIG_DUMPLEASES is not set
# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
CONFIG_DHCPD_LEASES_FILE=""
CONFIG_APP_UDHCPC=y
CONFIG_FEATURE_UDHCPC_ARPING=y
# CONFIG_UDHCPC is not set
# CONFIG_FEATURE_UDHCPC_ARPING is not set
# CONFIG_FEATURE_UDHCP_PORT is not set
CONFIG_UDHCP_DEBUG=0
# CONFIG_FEATURE_UDHCP_RFC3397 is not set
CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
CONFIG_UDHCPC_DEFAULT_SCRIPT=""
CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
# CONFIG_VCONFIG is not set
CONFIG_WGET=y
@ -805,6 +832,7 @@ CONFIG_FEATURE_PS_WIDE=y
# CONFIG_FEATURE_TOP_DECIMALS is not set
# CONFIG_FEATURE_TOP_SMP_PROCESS is not set
# CONFIG_FEATURE_TOPMEM is not set
# CONFIG_FEATURE_SHOW_THREADS is not set
CONFIG_UPTIME=y
# CONFIG_WATCH is not set
@ -847,8 +875,6 @@ CONFIG_FEATURE_SH_IS_ASH=y
CONFIG_ASH=y
CONFIG_ASH_BASH_COMPAT=y
CONFIG_ASH_JOB_CONTROL=y
CONFIG_ASH_READ_NCHARS=y
CONFIG_ASH_READ_TIMEOUT=y
CONFIG_ASH_ALIAS=y
CONFIG_ASH_GETOPTS=y
CONFIG_ASH_BUILTIN_ECHO=y
@ -871,6 +897,7 @@ CONFIG_ASH_EXPAND_PRMT=y
# CONFIG_HUSH_FUNCTIONS is not set
# CONFIG_HUSH_LOCAL is not set
# CONFIG_HUSH_EXPORT_N is not set
# CONFIG_HUSH_RANDOM_SUPPORT is not set
# CONFIG_LASH is not set
# CONFIG_MSH is not set
CONFIG_SH_MATH_SUPPORT=y

Some files were not shown because too many files have changed in this diff Show More