diff options
Diffstat (limited to 'testing')
43 files changed, 2667 insertions, 106 deletions
diff --git a/testing/archboot/PKGBUILD b/testing/archboot/PKGBUILD new file mode 100644 index 000000000..238f6b3b1 --- /dev/null +++ b/testing/archboot/PKGBUILD @@ -0,0 +1,48 @@ +# $Id: PKGBUILD 133661 2011-07-30 09:38:54Z tpowa $ +# Maintainer : Tobias Powalowski <tpowa@archlinux.org> + +pkgname=archboot +pkgver=2011.08 +pkgrel=1 +pkgdesc="Advanced, modular arch boot/install image creation utility" +arch=(i686 x86_64) +license=('GPL') +url="http://www.archlinux.org/" +depends=('mkinitcpio>=0.7.2-1' 'mksyslinux>=2010.08-1' 'mkpxelinux>=2010.08-1' 'mkisolinux>=2010.08-1' 'initscripts>=2011.07.3-1' 'subversion>=1.6.17-6' 'wget>=1.12-7' 'bash>=4.2.010-1' 'coreutils>=8.12-3' 'cryptsetup>=1.3.1-2' 'dialog>=1.1_20110707-1' 'e2fsprogs>=1.41.14-1' 'findutils>=4.4.2-3' 'gawk>=4.0.0-1' 'grep>=2.9-1' 'iputils>=20101006-1' 'jfsutils>=1.1.15-2' 'less>=444-1' 'lvm2>=2.02.86-1' 'mdadm>=3.2.2-2' 'module-init-tools>=3.16-1' 'nano>=2.2.6-1' 'ncurses>=5.9-1' 'net-tools>=1.60-18' 'gnu-netcat>=0.7.1-3' 'ntfsprogs>=2011.4.12-1' 'pcmciautils>=017-2' 'procps>=3.2.8-4' 'psmisc>=22.14-1' 'reiserfsprogs>=3.6.21-3' 'sed>=4.2.1-3' 'snarf>=7.0-4' 'syslog-ng>=3.2.4-3' 'sysvinit>=2.88-2' 'tar>=1.26-1' 'util-linux>=2.19.1-2' 'which>=2.20-4' 'kbd>=1.15.3-1' 'wireless_tools>=29-4' 'xfsprogs>=3.1.5-1' 'dnsutils>=9.8.0.P4-1' 'hdparm>=9.37-1' 'memtest86+>=4.20-1' 'inetutils>=1.8-3' 'openssh>=5.8p2-9' 'hwdetect>=2011.06-1' 'shadow>=4.1.4.3-2' 'bridge-utils>=1.4-4' 'ifenslave>=1.1.0-6' 'cpufrequtils>=008-1' 'links>=2.3pre2-1' 'dosfstools>=3.0.11-1' 'glibc>=2.14-4' 'linux-api-headers>=2.6.39.1-1' 'linux>=3.0-2' 'kernel26-lts>=2.6.32.43-1' 'xinetd>=2.3.14-7' 'kexec-tools>=2.0.2-3' 'ppp>=2.4.5-2' 'rp-pppoe>=3.10-7' 'lilo>=23.2-1' 'iptables>=1.4.12-2' 'capi4k-utils>=050718-7' 'isdn4k-utils>=3.2p1-6' 'ntfs-3g>=2011.4.12-1' 'pciutils>=3.1.7-4' 'usbutils>=003-1' 'vpnc>=0.5.3-3' 'openvpn>=2.2.0-1' 'b43-fwcutter>=014-1' 'wpa_supplicant>=0.7.3-3' 'rsync>=3.0.8-2' 'gzip>=1.4-2' 'libarchive>=2.8.4-2' 'device-mapper>=2.02.86-1' 'screen>=4.0.3-12' 'elfutils>=0.152-1' 'pam>=1.1.3-2' 'cracklib>=2.8.18-1' 'nfs-utils>=1.2.4-1' 'nfsidmap>=0.24-2' 'readline>=6.2.001-2' 'acl>=2.2.51-1' 'attr>=2.4.46-1' 'pcre>=8.12-1' 'cpio>=2.11-2' 'fuse>=2.8.5-1' 'libusb>=1.0.8-1' 'vim>=7.3.266-1' 'lzo2>=2.05-1' 'libsasl>=2.1.23-6' 'libldap>=2.4.26-3' 'gpm>=1.20.6-6' 'libevent>=2.0.12-1' 'gcc-libs>=4.6.1-2' 'sdparm>=1.06-1' 'licenses>=2.8-1' 'pptpclient>=1.7.2-3' 'zd1211-firmware>=1.4-4' 'ipw2100-fw>=1.3-5' 'ipw2200-fw>=3.1-3' 'smbclient>=3.5.10-1' 'bittorrent>=5.2.2-4' 'dhcpcd>=5.2.12-1' 'openssl>=1.0.0.d-1' 'git>=1.7.6-1' 'dmraid>=1.0.0.rc16.3-2' 'linux-atm>=2.5.1-2' 'netcfg>=2.6.5-1' 'parted>=3.0-3' 'tzdata>=2011h-1' 'ntp>=4.2.6.p3-3' 'libgcrypt>=1.5.0-1' 'iw>=0.9.22-1' 'crda>=1.1.1-3' 'libnl>=1.1-2' 'iproute2>=2.6.39-1' 'wireless-regdb>=2010.11.24-1' 'v86d>=0.1.10-2' 'dhclient>=4.2.1.1-1' 'syslinux>=4.04-1' 'mtools>=4.0.17-1' 'fsarchiver>=0.6.12-1' 'xz>=5.0.3-1' 'libtirpc>=0.2.2-2' 'librpcsecgss>=0.19-5' 'rpcbind>=0.2.0-3' 'testdisk>=6.12-1' 'wipe>=2.3.1-1' 'ddrescue>=1.14-1' 'udev>=172-2' 'ifplugd>=0.28-7' 'wpa_actiond>=1.1-2' 'nouveau-firmware>=20091212-4' 'rfkill>=0.4-2' 'libgssglue>=0.3-1' 'mkinitcpio-nfs-utils>=0.2-1' 'gptfdisk>=0.7.2-1' 'nilfs-utils>=2.0.23-1' 'btrfs-progs-unstable>=0.19.20101006-1' 'nouveau-drm-lts>=0.0.16_20100313-6' 'linux-firmware>=20110727-1' 'iana-etc>=2.30-2' 'libusb-compat>=0.1.3-1' 'eject>=2.1.5-5' 'keyutils>=1.5.2-1' 'libisoburn>=1.1.2-1' 'squashfs-tools>=4.2-1') +optdepends=('grub2-bios: for grub2 support' + 'grub2-efi-i386: for grub2 support' + 'grub2-efi-x86_64: for grub2 support' + 'efibootmgr: for grub2 support' +) +source=(ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver-$pkgrel.tar.bz2 vmware-detect.c) +backup=('etc/archboot/allinone.conf' + 'etc/archboot/allinone-lts.conf' + 'etc/archboot/default.conf' + 'etc/archboot/default-ftp.conf' + 'etc/archboot/default-pxelinux.conf' + 'etc/archboot/default-ftp-pxelinux.conf' + 'etc/archboot/presets/allinone' + 'etc/archboot/presets/allinone-lts' + 'etc/archboot/presets/isolinux' + 'etc/archboot/presets/isolinux-ftp' + 'etc/archboot/presets/syslinux' + 'etc/archboot/presets/syslinux-ftp' + 'etc/archboot/presets/pxelinux' + 'etc/archboot/presets/pxelinux-ftp' +) +install=archboot.install + +### to bump the depends list use this: +#for i in $(grep ^depends= PKGBUILD | sed -e 's/depends=(//g' -e 's/)//g'); do sed -i -e "s/$(echo $i)/$(echo $i | sed -e "s/>=.*/>=$(pacman -Qi $(echo $i | sed -e "s/'//g" -e 's/>=.*//g') | grep ^Version | sed -e 's/.*: //g')'/g")/g" PKGBUILD; done + +build() +{ + cd $srcdir/$pkgname-$pkgver-$pkgrel + mv * $pkgdir/ + # vmware-detect + cd $startdir/src + gcc -o vmware-detect vmware-detect.c + install -D -m 755 vmware-detect $startdir/pkg/usr/bin/vmware-detect +} +md5sums=('4b71827d6767c99c1144df9215108349' + '7e2b03463747cb22ab388e79a09fa0cb') diff --git a/testing/archboot/archboot.install b/testing/archboot/archboot.install new file mode 100644 index 000000000..315f97d7e --- /dev/null +++ b/testing/archboot/archboot.install @@ -0,0 +1,20 @@ +# This is a default template for a post-install scriptlet. You can +# remove any functions you don't need (and this header). + +# arg 1: the new package version +post_install() { + cat << EOF +ARCHBOOT usage: +--------------- +--> Main config files were installed to '/etc/archboot/'. + Preset files were installed to '/etc/archboot/presets'. + Modify them to your needs. +--> Use the preset files as config file of your build tool: + mkisolinux, mksyslinux or mkpxelinux +--> For Allinone ISOs use archboot-allinone.sh +EOF +} + +post_upgrade() { + post_install $1 +} diff --git a/testing/archboot/vmware-detect.c b/testing/archboot/vmware-detect.c new file mode 100644 index 000000000..d242a388d --- /dev/null +++ b/testing/archboot/vmware-detect.c @@ -0,0 +1,13 @@ +#include <stdio.h> +int main() { + unsigned char idtr[6]; + asm("sidt %0" : "=m" (idtr)); + if(0xff==idtr[5]) + { + return 0; + } + else + { + return 1; + } +} diff --git a/testing/dialog/PKGBUILD b/testing/dialog/PKGBUILD new file mode 100644 index 000000000..6870e3d94 --- /dev/null +++ b/testing/dialog/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 133064 2011-07-27 11:49:01Z stephane $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Contributor: Andreas Radke <andyrtr@archlinux.org> + +pkgname=dialog +pkgver=1.1_20110707 +pkgrel=1 +pkgdesc="A tool to display dialog boxes from shell scripts" +arch=('i686' 'x86_64') +url="http://invisible-island.net/dialog/" +license=('LGPL2.1') +depends=('ncurses') +source=(ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver/_/-}.tgz) +md5sums=('34d01aaacbb2932b77774e6c1eec8d2a') +sha1sums=('31e0e3c40cd51629cc802d7ee0b1a4e1ada90f00') + +build() { + cd "${srcdir}/$pkgname-${pkgver/_/-}" + ./configure --prefix=/usr --mandir=/usr/share/man \ + --with-ncursesw --enable-nls + make +} + +package() { + cd "${srcdir}/$pkgname-${pkgver/_/-}" + make DESTDIR="${pkgdir}" install install-lib +} diff --git a/testing/keyutils/PKGBUILD b/testing/keyutils/PKGBUILD index c533d134e..ec50d99c8 100644 --- a/testing/keyutils/PKGBUILD +++ b/testing/keyutils/PKGBUILD @@ -1,7 +1,7 @@ -# $Id: PKGBUILD 132103 2011-07-20 10:53:54Z stephane $ +# $Id: PKGBUILD 133067 2011-07-27 11:57:16Z stephane $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> pkgname=keyutils -pkgver=1.5.1 +pkgver=1.5.2 pkgrel=1 pkgdesc="Linux Key Management Utilities" arch=(i686 x86_64) @@ -10,6 +10,7 @@ license=('GPL2' 'LGPL2.1') depends=('glibc' 'sh') backup=(etc/request-key.conf) source=(http://people.redhat.com/~dhowells/${pkgname}/${pkgname}-${pkgver}.tar.bz2) +md5sums=('19811ee31f683058a9aae3e6a3a23a7f') build() { cd "${srcdir}/${pkgname}-${pkgver}" @@ -21,4 +22,3 @@ package() { cd "${srcdir}/${pkgname}-${pkgver}" make DESTDIR="${pkgdir}" install } -md5sums=('3ab62455a37a20f73b2d6cc794aaba13') diff --git a/testing/libcap/PKGBUILD b/testing/libcap/PKGBUILD new file mode 100644 index 000000000..6afa61fee --- /dev/null +++ b/testing/libcap/PKGBUILD @@ -0,0 +1,26 @@ +#$Id: PKGBUILD 132720 2011-07-25 12:05:15Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Contributor: Hugo Doria <hugo@archlinux.org> + +pkgname=libcap +pkgver=2.22 +pkgrel=1 +pkgdesc="POSIX 1003.1e capabilities" +arch=('i686' 'x86_64') +url="http://sites.google.com/site/fullycapable/" +license=('GPL2') +depends=('glibc' 'attr') +source=(http://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${pkgname}-${pkgver}.tar.gz) +md5sums=('b4896816b626bea445f0b3849bdd4077') + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + make +} + +package() { + cd ${srcdir}/${pkgname}-${pkgver} + make prefix=/usr DESTDIR=${pkgdir} LIBDIR=${pkgdir}/lib RAISE_SETFCAP=no install + rm ${pkgdir}/lib/*.a + chmod 755 ${pkgdir}/lib/libcap.so.${pkgver} +} diff --git a/testing/libgssglue/PKGBUILD b/testing/libgssglue/PKGBUILD new file mode 100644 index 000000000..d651bf612 --- /dev/null +++ b/testing/libgssglue/PKGBUILD @@ -0,0 +1,34 @@ +# $Id: PKGBUILD 133594 2011-07-29 21:01:43Z tpowa $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> + +pkgname=libgssglue +pkgver=0.3 +pkgrel=1 +pkgdesc="Exports a gssapi interface which calls other random gssapi libraries" +arch=('i686' 'x86_64') +url="http://www.citi.umich.edu/projects/nfsv4/linux/" +license=('BSD') +depends=('glibc') +makedepends=('pkgconfig' 'autoconf') +backup=(etc/gssapi_mech.conf) +options=('!libtool') +source=(http://www.citi.umich.edu/projects/nfsv4/linux/$pkgname/$pkgname-$pkgver.tar.gz + gssapi_mech.conf) +md5sums=('48aaad11b7371ba3270faa322202c038' + '080be866717e4e06fa6f7d6f43cb395a') + +build() { + cd "$srcdir"/$pkgname-$pkgver + ./configure --prefix=/usr + make +} + +package() { + cd "$srcdir"/$pkgname-$pkgver + make DESTDIR="$pkgdir/" install + + # Configuration + install -Dm644 "$srcdir"/gssapi_mech.conf "$pkgdir/"etc/gssapi_mech.conf + # install license + install -Dm644 COPYING "$pkgdir"/usr/share/licenses/libgssglue/COPYING +} diff --git a/testing/libgssglue/gssapi_mech.conf b/testing/libgssglue/gssapi_mech.conf new file mode 100644 index 000000000..9a832ee1b --- /dev/null +++ b/testing/libgssglue/gssapi_mech.conf @@ -0,0 +1,22 @@ +# Example /etc/gssapi_mech.conf file +# +# GSSAPI Mechanism Definitions +# +# This configuration file determines which GSS-API mechanisms +# the gssd code should use +# +# NOTE: +# The initiaiization function "mechglue_internal_krb5_init" +# is used for the MIT krb5 gssapi mechanism. This special +# function name indicates that an internal function should +# be used to determine the entry points for the MIT gssapi +# mechanism funtions. +# +# library initialization function +# ================================ ========================== +# The MIT K5 gssapi library, use special function for initialization. +/usr/lib/libgssapi_krb5.so mechglue_internal_krb5_init +#/usr/lib/libgssapi.so mechglue_internal_krb5_init +# +# The SPKM3 gssapi library function. Use the function spkm3_gss_initialize. +# /usr/local/gss_mechs/spkm/spkm3/libgssapi_spkm3.so spkm3_gss_initialize diff --git a/testing/libreoffice/PKGBUILD b/testing/libreoffice/PKGBUILD index 067a5654e..96155e9b3 100644 --- a/testing/libreoffice/PKGBUILD +++ b/testing/libreoffice/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 132066 2011-07-19 19:12:28Z andyrtr $ +# $Id: PKGBUILD 134107 2011-08-01 16:13:27Z stephane $ # Maintainer: AndyRTR <andyrtr@archlinux.org> pkgbase="libreoffice" @@ -35,8 +35,8 @@ pkgname=('libreoffice-common' 'libreoffice-extension-validator' 'libreoffice-extension-watch-window' 'libreoffice-extension-wiki-publisher') -_LOver=3.4.2.2 -pkgver=3.4.2rc2 +_LOver=3.4.2.3 +pkgver=3.4.2 pkgrel=1 arch=('i686' 'x86_64') #_LO_tree="3.4" @@ -58,8 +58,8 @@ makedepends=( # makedepends # translate-toolkit - todo move them to extra to allow --with-system-foo builds # http://download.documentfoundation.org/mirrors/all.html # http://wiki.documentfoundation.org/Mirrors -#_mirror="http://download.documentfoundation.org/libreoffice/src" -_mirror="http://dev-builds.libreoffice.org/pre-releases/src/" +_mirror="http://download.documentfoundation.org/libreoffice/src" +#_mirror="http://dev-builds.libreoffice.org/pre-releases/src" _additional_source_url="http://hg.services.openoffice.org/binaries" source=(${_mirror}/${pkgbase}-{artwork,base,bootstrap,calc,components,extensions,extras,filters,help,impress,libs-core,libs-extern,libs-extern-sys,libs-gui,postprocess,sdk,testing,ure,writer}-${_LOver}.tar.bz2 #,translations ${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz @@ -92,7 +92,7 @@ source=(${_mirror}/${pkgbase}-{artwork,base,bootstrap,calc,components,extensions http://download.go-oo.org/src/f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2 http://ooo.itc.hu/oxygenoffice/download/libreoffice/7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt http://ooo.itc.hu/oxygenoffice/download/libreoffice/41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt - http://ooo.itc.hu/oxygenoffice/download/libreoffice/451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt + http://ooo.itc.hu/oxygenoffice/download/libreoffice/451ccf439a36a568653b024534669971-ConvertTextToNumber_1.3.2.oxt http://ooo.itc.hu/oxygenoffice/download/libreoffice/bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt http://ooo.itc.hu/oxygenoffice/download/libreoffice/23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt http://ooo.itc.hu/oxygenoffice/download/libreoffice/b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt @@ -142,67 +142,69 @@ noextract=(185d60944ea767075d27247c3162b3bc-unowinreg.dll b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt 90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2 f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2) -md5sums=('65371f11bcd48b5d4aed68c429784747' - '566b7a01605517acd3d0e302614ce22d' - '4becc4d081d59a68355cadf8a2dbfd38' - 'a426818aee9927d09e26d951594e2d2b' - '609633d4b6c94b14c53f28a7cdf822e5' - '31d9f27c33fd60764941a80715aaedde' - '86a3cb09af51802ce1856db7cd9977cc' - '8296feb6f6583b7247ef0345e2ac0e8e' - '610661f26b8997b858dec836cb6b638d' - '2aa17ecc635f94e647c487ca826431ac' - 'c802f43a5a099106b2833d27fb0e1324' - 'b1306ffbd5aafa2ff3e03ce4932b33d7' - '439816b03287e0c4b3c3175f2bf9bcee' - '61f45fe2c82439543fc5b39ce9868c77' - '3b0c3300c90f50983042de7d704078eb' - '01f0f8ae20201eb08889ebd14a14af79' - '95245eb754a75a4912ceaeaf9b69a00c' - '4af50ce86fd2ad3eca30ef2e93c59988' - 'eaa63fc295b57c834db1b839d215027c' - '1f24ab1d39f4a51faf22244c94a6203f' - '35c94d2df8893241173de1d16b6034c0' - '798b2ffdc8bcfe7bca2cf92b62caf685' - 'fdb27bfe2dbe2e7b57ae194d9bf36bab' - 'ada24d37d8d638b3d8a9985e80bc2978' - '2a177023f9ea8ec8bd00837605c5df1b' - 'a7983f859eafb2677d7ff386a023bc40' - '3c219630e4302863a9a83d0efde889db' - '2ae988b339daec234019a7066f96733e' - '2c9b0f83ed5890af02c0df1c1776f39b' - 'af3c3acf618de6108d65fcdc92b492e1' - 'eeb2c7ddf0d302fba4bfc6e97eac9624' - '39bb3fcea1514f1369fcfc87542390fd' - '3404ab6b1792ae5f16bbd603bd1e1d03' - '97b2d4dba862397f446b217e2b623e71' - 'f94d9870737518e3b597f9265f4e9803' - '8ce2fcd72becf06c41f7201d15373ed9' - 'd8bd5eed178db6e2b18eeed243f85aa8' - '3bdf40c0d199af31923e900d082ca2dd' - 'ace6ab49184e329db254e454a010f56d' - 'db60e4fde8dd6d6807523deb71ee34dc' - 'ba2930200c9f019c2d93a8c88c651a0f' - '18f577b374d60b3c760a3a3350407632' - '0ff7d225d087793c8c2c680d77aac3e7' - '185d60944ea767075d27247c3162b3bc' - 'b4cae0700aa1c2aef7eb7f345365e6f1' - '90401bca927835b6fbae4a707ed187c8' - 'f02578f5218f217a9f20e9c30e119c6a' - '7e7efc5d4a03126bb9ae3ae9aa2c4e87' - '41c9b65ad60af4b3255bbecdfef11736' - '451ccf439a36a568653b024534669971' - 'bbdd5639ada63e3130761daaecae1a10' - '23bd75552206dfcd8fd4e29137dcac84' - 'b8cbca7b3363e6ca2d02bc0ba2b63904' - 'b632bdd25649cc4067bcb410bae23d2b' - '9d60b6cfa3ef1926848710bbcd11115b' - 'dbaafd21de055e582d92d7d32fe9da13' - 'b7b2d0e04e142f26dd96119c80757d1f' - 'bc228237108cab7745897a9f466b6d39' - 'eee273f501ff45dc5f1365e78c6d57c0' - '43b145db28e6c0d73578ae6fd35e510d' - '37638431e7e40baf2e47966ebb9bc0e9') + +md5sums=('1600ebf998ec7075bd0e96e7a49513dc' #libreoffice-artwork-3.4.2.3.tar.bz2 + '0e12b4a03d14645dac1f073eb2f67423' #libreoffice-base-3.4.2.3.tar.bz2 + 'f106511220a2a0b2a45571cf7605953a' #libreoffice-bootstrap-3.4.2.3.tar.bz2 + '20854b5961b8b0b38219376a93ecf362' #libreoffice-calc-3.4.2.3.tar.bz2 + '5799be1571289b7c17bd8fd2020c00f6' #libreoffice-components-3.4.2.3.tar.bz2 + '75ca9da214abe072e37fb4d19fc2c34f' #libreoffice-extensions-3.4.2.3.tar.bz2 + '73aa766053ea8f4c84dd0a76c0888f18' #libreoffice-extras-3.4.2.3.tar.bz2 + '4416cc18cfa84f61eae905ff441a18d0' #libreoffice-filters-3.4.2.3.tar.bz2 + 'ecfd57a3dfd0ce230e5837b5099a0d5a' #libreoffice-help-3.4.2.3.tar.bz2 + '40e23531e95617c7fe91e7025f007a91' #libreoffice-impress-3.4.2.3.tar.bz2 + 'bd2027fc2160798728e49d0fd331d163' #libreoffice-libs-core-3.4.2.3.tar.bz2 + '9a948012496fcd27c31f755314ff98e3' #libreoffice-libs-extern-3.4.2.3.tar.bz2 + 'a5a8d9080492968eef001314093cd82d' #libreoffice-libs-extern-sys-3.4.2.3.tar.bz2 + '810aa9e69b96af0f4de2e6d74b7b1847' #libreoffice-libs-gui-3.4.2.3.tar.bz2 + '45de04dcbb6f6ff7474110ee982da7b8' #libreoffice-postprocess-3.4.2.3.tar.bz2 + '545d65e92b674d354dd6511ee552d23f' #libreoffice-sdk-3.4.2.3.tar.bz2 + '99e306957e38ce5e68deed9568874be6' #libreoffice-testing-3.4.2.3.tar.bz2 + '2e7277588ef610b7a06953c59dc77c9b' #libreoffice-ure-3.4.2.3.tar.bz2 + '281973e517d3b5626f5eedd746378fcc' #libreoffice-writer-3.4.2.3.tar.bz2 + '1f24ab1d39f4a51faf22244c94a6203f' #1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz + '35c94d2df8893241173de1d16b6034c0' #35c94d2df8893241173de1d16b6034c0-swingExSrc.zip + '798b2ffdc8bcfe7bca2cf92b62caf685' #798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip + 'fdb27bfe2dbe2e7b57ae194d9bf36bab' #fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz + 'ada24d37d8d638b3d8a9985e80bc2978' #ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip + '2a177023f9ea8ec8bd00837605c5df1b' #2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz + 'a7983f859eafb2677d7ff386a023bc40' #a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip + '3c219630e4302863a9a83d0efde889db' #3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz + '2ae988b339daec234019a7066f96733e' #2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz + '2c9b0f83ed5890af02c0df1c1776f39b' #2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz + 'af3c3acf618de6108d65fcdc92b492e1' #af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz + 'eeb2c7ddf0d302fba4bfc6e97eac9624' #eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip + '39bb3fcea1514f1369fcfc87542390fd' #39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip + '3404ab6b1792ae5f16bbd603bd1e1d03' #3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip + '97b2d4dba862397f446b217e2b623e71' #97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip + 'f94d9870737518e3b597f9265f4e9803' #f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip + '8ce2fcd72becf06c41f7201d15373ed9' #8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip + 'd8bd5eed178db6e2b18eeed243f85aa8' #d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip + '3bdf40c0d199af31923e900d082ca2dd' #3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip + 'ace6ab49184e329db254e454a010f56d' #ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip + 'db60e4fde8dd6d6807523deb71ee34dc' #db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip + 'ba2930200c9f019c2d93a8c88c651a0f' #ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip + '18f577b374d60b3c760a3a3350407632' #18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz + '0ff7d225d087793c8c2c680d77aac3e7' #0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2 + '185d60944ea767075d27247c3162b3bc' #185d60944ea767075d27247c3162b3bc-unowinreg.dll + 'b4cae0700aa1c2aef7eb7f345365e6f1' #b4cae0700aa1c2aef7eb7f345365e6f1-translate-toolkit-1.8.1.tar.bz2 + '90401bca927835b6fbae4a707ed187c8' #90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2 + 'f02578f5218f217a9f20e9c30e119c6a' #f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2 + '7e7efc5d4a03126bb9ae3ae9aa2c4e87' #7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt + '41c9b65ad60af4b3255bbecdfef11736' #41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt + '451ccf439a36a568653b024534669971' #451ccf439a36a568653b024534669971-ConvertTextToNumber_1.3.2.oxt + 'bbdd5639ada63e3130761daaecae1a10' #bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt + '23bd75552206dfcd8fd4e29137dcac84' #23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt + 'b8cbca7b3363e6ca2d02bc0ba2b63904' #b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt + 'b632bdd25649cc4067bcb410bae23d2b' #b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt + '9d60b6cfa3ef1926848710bbcd11115b' #9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt + 'dbaafd21de055e582d92d7d32fe9da13' #dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt + 'b7b2d0e04e142f26dd96119c80757d1f' #b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt + 'bc228237108cab7745897a9f466b6d39' #buildfix_boost.diff + 'eee273f501ff45dc5f1365e78c6d57c0' #buildfix_ct2n.diff + '43b145db28e6c0d73578ae6fd35e510d' #vbahelper.visibility.patch + '37638431e7e40baf2e47966ebb9bc0e9' #scp2-more-reasonable-file-access-rights.diff + ) build() { @@ -233,6 +235,9 @@ build() { patch -Np0 -i ${srcdir}/vbahelper.visibility.patch patch -Np0 -i ${srcdir}/scp2-more-reasonable-file-access-rights.diff + # Temporary workaround to avoid build failure in ct2n + mv ${srcdir}/451ccf439a36a568653b024534669971-ConvertTextToNumber{_,-}1.3.2.oxt + # unset C(XX)FLAGS # http://www.openoffice.org/issues/show_bug.cgi?id=103205 # unset CFLAGS diff --git a/testing/libtirpc/PKGBUILD b/testing/libtirpc/PKGBUILD index 80ae3d14c..6035cdb2c 100644 --- a/testing/libtirpc/PKGBUILD +++ b/testing/libtirpc/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 132087 2011-07-20 00:51:34Z eric $ +# $Id: PKGBUILD 133597 2011-07-29 21:03:33Z tpowa $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> pkgname=libtirpc pkgver=0.2.2 -pkgrel=1 +pkgrel=2 pkgdesc="Transport Independent RPC library (SunRPC replacement)" arch=('i686' 'x86_64') url="http://libtirpc.sourceforge.net/" @@ -12,17 +12,26 @@ depends=('libgssglue') backup=('etc/netconfig') options=('!libtool') source=(http://downloads.sourceforge.net/sourceforge/libtirpc/${pkgname}-${pkgver}.tar.bz2 - libtirpc-0.2.1-fortify.patch) + libtirpc-0.2.1-fortify.patch + libtirpc-0.2.3rc1.patch + libtirpc-fix-segfault-0.2.2.patch) md5sums=('74c41c15c2909f7d11d9c7bfa7db6273' - '2e5c067f1651469dfbbdc91d3c9c60e8') + '2e5c067f1651469dfbbdc91d3c9c60e8' + 'ac2a1657b44f4a99c37d8265b05b9133' + '5a3ab55934cad4e8b38fc90c54756472') build() { cd "${srcdir}/${pkgname}-${pkgver}" # fix http://bugs.gentoo.org/293593 # https://bugs.archlinux.org/task/20082 patch -Np1 -i ../libtirpc-0.2.1-fortify.patch + # add patches from fedora git to make nfs-utils compile again + patch -Np1 -i ../libtirpc-0.2.3rc1.patch + patch -Np1 -i ../libtirpc-fix-segfault-0.2.2.patch + sh autogen.sh + autoreconf -fisv ./configure --prefix=/usr --enable-gss - make + make } package() { diff --git a/testing/libtirpc/libtirpc-0.2.3rc1.patch b/testing/libtirpc/libtirpc-0.2.3rc1.patch new file mode 100644 index 000000000..d57a59e1f --- /dev/null +++ b/testing/libtirpc/libtirpc-0.2.3rc1.patch @@ -0,0 +1,637 @@ +diff --git a/src/Makefile.am b/src/Makefile.am +index 7ee8cbc..6731ff9 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -50,7 +50,7 @@ libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c bindresvport.c cln + rpc_callmsg.c rpc_generic.c rpc_soc.c rpcb_clnt.c rpcb_prot.c \ + rpcb_st_xdr.c svc.c svc_auth.c svc_dg.c svc_auth_unix.c svc_generic.c \ + svc_raw.c svc_run.c svc_simple.c svc_vc.c getpeereid.c \ +- auth_time.c auth_des.c authdes_prot.c des_crypt.c ++ auth_time.c auth_des.c authdes_prot.c + + ## XDR + libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c xdr_reference.c xdr_stdio.c +diff --git a/src/auth_des.c b/src/auth_des.c +index 37e7667..f0c8b8c 100644 +--- a/src/auth_des.c ++++ b/src/auth_des.c +@@ -223,6 +223,7 @@ authdes_pk_seccreate(const char *servername, netobj *pkey, u_int window, + goto failed; + } + ad->ad_nis_srvr = NULL; /* not needed any longer */ ++ auth_get(auth); /* Reference for caller */ + return (auth); + + failed: +@@ -472,6 +473,12 @@ authdes_destroy(AUTH *auth) + FREE(auth, sizeof(AUTH)); + } + ++static bool_t ++authdes_wrap(AUTH *auth, XDR *xdrs, xdrproc_t xfunc, caddr_t xwhere) ++{ ++ return ((*xfunc)(xdrs, xwhere)); ++} ++ + static struct auth_ops * + authdes_ops(void) + { +@@ -487,6 +494,8 @@ authdes_ops(void) + ops.ah_validate = authdes_validate; + ops.ah_refresh = authdes_refresh; + ops.ah_destroy = authdes_destroy; ++ ops.ah_wrap = authdes_wrap; ++ ops.ah_unwrap = authdes_wrap; + } + mutex_unlock(&authdes_ops_lock); + return (&ops); +diff --git a/src/auth_gss.c b/src/auth_gss.c +index df3017a..a992049 100644 +--- a/src/auth_gss.c ++++ b/src/auth_gss.c +@@ -200,6 +200,8 @@ authgss_create(CLIENT *clnt, gss_name_t name, struct rpc_gss_sec *sec) + + if (!authgss_refresh(auth)) + auth = NULL; ++ else ++ auth_get(auth); /* Reference for caller */ + + clnt->cl_auth = save_auth; + +@@ -555,9 +557,20 @@ authgss_destroy_context(AUTH *auth) + + if (gd->gc.gc_ctx.length != 0) { + if (gd->established) { ++ AUTH *save_auth = NULL; ++ ++ /* Make sure we use the right auth_ops */ ++ if (gd->clnt->cl_auth != auth) { ++ save_auth = gd->clnt->cl_auth; ++ gd->clnt->cl_auth = auth; ++ } ++ + gd->gc.gc_proc = RPCSEC_GSS_DESTROY; + clnt_call(gd->clnt, NULLPROC, (xdrproc_t)xdr_void, NULL, + (xdrproc_t)xdr_void, NULL, AUTH_TIMEOUT); ++ ++ if (save_auth != NULL) ++ gd->clnt->cl_auth = save_auth; + } + gss_release_buffer(&min_stat, &gd->gc.gc_ctx); + /* XXX ANDROS check size of context - should be 8 */ +diff --git a/src/auth_none.c b/src/auth_none.c +index a439ec6..008c589 100644 +--- a/src/auth_none.c ++++ b/src/auth_none.c +@@ -155,6 +155,12 @@ authnone_destroy(AUTH *client) + { + } + ++static bool_t ++authnone_wrap(AUTH *auth, XDR *xdrs, xdrproc_t xfunc, caddr_t xwhere) ++{ ++ return ((*xfunc)(xdrs, xwhere)); ++} ++ + static struct auth_ops * + authnone_ops() + { +@@ -170,6 +176,8 @@ authnone_ops() + ops.ah_validate = authnone_validate; + ops.ah_refresh = authnone_refresh; + ops.ah_destroy = authnone_destroy; ++ ops.ah_wrap = authnone_wrap; ++ ops.ah_unwrap = authnone_wrap; + } + mutex_unlock(&ops_lock); + return (&ops); +diff --git a/src/auth_unix.c b/src/auth_unix.c +index c2469da..4b9b13f 100644 +--- a/src/auth_unix.c ++++ b/src/auth_unix.c +@@ -162,6 +162,7 @@ authunix_create(machname, uid, gid, len, aup_gids) + */ + auth->ah_cred = au->au_origcred; + marshal_new_auth(auth); ++ auth_get(auth); /* Reference for caller */ + return (auth); + #ifndef _KERNEL + cleanup_authunix_create: +@@ -396,6 +397,12 @@ marshal_new_auth(auth) + XDR_DESTROY(xdrs); + } + ++static bool_t ++authunix_wrap(AUTH *auth, XDR *xdrs, xdrproc_t xfunc, caddr_t xwhere) ++{ ++ return ((*xfunc)(xdrs, xwhere)); ++} ++ + static struct auth_ops * + authunix_ops() + { +@@ -411,6 +418,8 @@ authunix_ops() + ops.ah_validate = authunix_validate; + ops.ah_refresh = authunix_refresh; + ops.ah_destroy = authunix_destroy; ++ ops.ah_wrap = authunix_wrap; ++ ops.ah_unwrap = authunix_wrap; + } + mutex_unlock(&ops_lock); + return (&ops); +diff --git a/src/authgss_prot.c b/src/authgss_prot.c +index 9d7fa09..0168318 100644 +--- a/src/authgss_prot.c ++++ b/src/authgss_prot.c +@@ -161,6 +161,7 @@ xdr_rpc_gss_wrap_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr, + databuflen = end - start - 4; + XDR_SETPOS(xdrs, start + 4); + databuf.value = XDR_INLINE(xdrs, databuflen); ++ databuf.length = databuflen; + + xdr_stat = FALSE; + +@@ -169,7 +170,6 @@ xdr_rpc_gss_wrap_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr, + XDR_SETPOS(xdrs, start); + if (!xdr_u_int(xdrs, (u_int *)&databuflen)) + return (FALSE); +- databuf.length = databuflen; + + /* Checksum rpc_gss_data_t. */ + maj_stat = gss_get_mic(&min_stat, ctx, qop, +diff --git a/src/clnt_dg.c b/src/clnt_dg.c +index 79fed5d..4a1f60a 100644 +--- a/src/clnt_dg.c ++++ b/src/clnt_dg.c +@@ -366,7 +366,7 @@ call_again: + + if ((! XDR_PUTINT32(xdrs, (int32_t *)&proc)) || + (! AUTH_MARSHALL(cl->cl_auth, xdrs)) || +- (! (*xargs)(xdrs, argsp))) { ++ (! AUTH_WRAP(cl->cl_auth, xdrs, xargs, argsp))) { + cu->cu_error.re_status = RPC_CANTENCODEARGS; + goto out; + } +@@ -400,8 +400,8 @@ get_reply: + * (We assume that this is actually only executed once.) + */ + reply_msg.acpted_rply.ar_verf = _null_auth; +- reply_msg.acpted_rply.ar_results.where = resultsp; +- reply_msg.acpted_rply.ar_results.proc = xresults; ++ reply_msg.acpted_rply.ar_results.where = NULL; ++ reply_msg.acpted_rply.ar_results.proc = (xdrproc_t)xdr_void; + + fd.fd = cu->cu_fd; + fd.events = POLLIN; +@@ -512,6 +512,10 @@ get_reply: + &reply_msg.acpted_rply.ar_verf)) { + cu->cu_error.re_status = RPC_AUTHERROR; + cu->cu_error.re_why = AUTH_INVALIDRESP; ++ } else if (! AUTH_UNWRAP(cl->cl_auth, &reply_xdrs, ++ xresults, resultsp)) { ++ if (cu->cu_error.re_status == RPC_SUCCESS) ++ cu->cu_error.re_status = RPC_CANTDECODERES; + } + if (reply_msg.acpted_rply.ar_verf.oa_base != NULL) { + xdrs->x_op = XDR_FREE; +diff --git a/src/clnt_vc.c b/src/clnt_vc.c +index 359063c..097cae8 100644 +--- a/src/clnt_vc.c ++++ b/src/clnt_vc.c +@@ -364,7 +364,7 @@ call_again: + if ((! XDR_PUTBYTES(xdrs, ct->ct_u.ct_mcallc, ct->ct_mpos)) || + (! XDR_PUTINT32(xdrs, (int32_t *)&proc)) || + (! AUTH_MARSHALL(cl->cl_auth, xdrs)) || +- (! (*xdr_args)(xdrs, args_ptr))) { ++ (! AUTH_WRAP(cl->cl_auth, xdrs, xdr_args, args_ptr))) { + if (ct->ct_error.re_status == RPC_SUCCESS) + ct->ct_error.re_status = RPC_CANTENCODEARGS; + (void)xdrrec_endofrecord(xdrs, TRUE); +@@ -420,7 +420,8 @@ call_again: + &reply_msg.acpted_rply.ar_verf)) { + ct->ct_error.re_status = RPC_AUTHERROR; + ct->ct_error.re_why = AUTH_INVALIDRESP; +- } else if (! (*xdr_results)(xdrs, results_ptr)) { ++ } else if (! AUTH_UNWRAP(cl->cl_auth, xdrs, ++ xdr_results, results_ptr)) { + if (ct->ct_error.re_status == RPC_SUCCESS) + ct->ct_error.re_status = RPC_CANTDECODERES; + } +diff --git a/src/svc.c b/src/svc.c +index b4a63d0..08cd6c9 100644 +--- a/src/svc.c ++++ b/src/svc.c +@@ -77,9 +77,6 @@ static struct svc_callout + + extern rwlock_t svc_lock; + extern rwlock_t svc_fd_lock; +-#ifdef HAVE_LIBGSSAPI +-extern struct svc_auth_ops svc_auth_gss_ops; +-#endif + + static struct svc_callout *svc_find (rpcprog_t, rpcvers_t, + struct svc_callout **, char *); +@@ -717,11 +714,9 @@ svc_getreq_common (fd) + SVC_DESTROY (xprt); + break; + } +- else if ((xprt->xp_auth != NULL) +-#ifdef HAVE_LIBGSSAPI +- && (xprt->xp_auth->svc_ah_ops != &svc_auth_gss_ops) +-#endif +- ) { ++ else if ((xprt->xp_auth != NULL) && ++ (xprt->xp_auth->svc_ah_private == NULL)) ++ { + xprt->xp_auth = NULL; + } + } +diff --git a/src/svc_auth.c b/src/svc_auth.c +index c6b3a0b..e80d5f9 100644 +--- a/src/svc_auth.c ++++ b/src/svc_auth.c +@@ -98,8 +98,8 @@ _authenticate(rqst, msg) + rqst->rq_xprt->xp_verf.oa_length = 0; + cred_flavor = rqst->rq_cred.oa_flavor; + switch (cred_flavor) { +- case AUTH_NULL: +- dummy = _svcauth_null(rqst, msg); ++ case AUTH_NONE: ++ dummy = _svcauth_none(rqst, msg); + return (dummy); + case AUTH_SYS: + dummy = _svcauth_unix(rqst, msg); +@@ -132,15 +132,6 @@ _authenticate(rqst, msg) + return (AUTH_REJECTEDCRED); + } + +-/*ARGSUSED*/ +-enum auth_stat +-_svcauth_null(rqst, msg) +- struct svc_req *rqst; +- struct rpc_msg *msg; +-{ +- return (AUTH_OK); +-} +- + /* + * Allow the rpc service to register new authentication types that it is + * prepared to handle. When an authentication flavor is registered, +diff --git a/src/svc_auth_unix.c b/src/svc_auth_unix.c +index ce83859..9585069 100644 +--- a/src/svc_auth_unix.c ++++ b/src/svc_auth_unix.c +@@ -43,6 +43,8 @@ + + #include <rpc/rpc.h> + ++extern SVCAUTH svc_auth_none; ++ + /* + * Unix longhand authenticator + */ +@@ -67,6 +69,8 @@ _svcauth_unix(rqst, msg) + assert(rqst != NULL); + assert(msg != NULL); + ++ rqst->rq_xprt->xp_auth = &svc_auth_none; ++ + area = (struct area *) rqst->rq_clntcred; + aup = &area->area_aup; + aup->aup_machname = area->area_machname; +@@ -142,5 +146,6 @@ _svcauth_short(rqst, msg) + struct svc_req *rqst; + struct rpc_msg *msg; + { ++ rqst->rq_xprt->xp_auth = &svc_auth_none; + return (AUTH_REJECTEDCRED); + } +diff --git a/src/svc_dg.c b/src/svc_dg.c +index 66a56ee..5ef9df2 100644 +--- a/src/svc_dg.c ++++ b/src/svc_dg.c +@@ -134,6 +134,7 @@ svc_dg_create(fd, sendsize, recvsize) + su->su_cache = NULL; + xprt->xp_fd = fd; + xprt->xp_p2 = su; ++ xprt->xp_auth = NULL; + xprt->xp_verf.oa_base = su->su_verfbody; + svc_dg_ops(xprt); + xprt->xp_rtaddr.maxlen = sizeof (struct sockaddr_storage); +@@ -234,10 +235,27 @@ svc_dg_reply(xprt, msg) + bool_t stat = FALSE; + size_t slen; + ++ xdrproc_t xdr_results; ++ caddr_t xdr_location; ++ bool_t has_args; ++ ++ if (msg->rm_reply.rp_stat == MSG_ACCEPTED && ++ msg->rm_reply.rp_acpt.ar_stat == SUCCESS) { ++ has_args = TRUE; ++ xdr_results = msg->acpted_rply.ar_results.proc; ++ xdr_location = msg->acpted_rply.ar_results.where; ++ ++ msg->acpted_rply.ar_results.proc = (xdrproc_t)xdr_void; ++ msg->acpted_rply.ar_results.where = NULL; ++ } else ++ has_args = FALSE; ++ + xdrs->x_op = XDR_ENCODE; + XDR_SETPOS(xdrs, 0); + msg->rm_xid = su->su_xid; +- if (xdr_replymsg(xdrs, msg)) { ++ if (xdr_replymsg(xdrs, msg) && ++ (!has_args || ++ (SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) { + struct msghdr *msg = &su->su_msghdr; + struct iovec iov; + +@@ -264,7 +282,12 @@ svc_dg_getargs(xprt, xdr_args, args_ptr) + xdrproc_t xdr_args; + void *args_ptr; + { +- return (*xdr_args)(&(su_data(xprt)->su_xdrs), args_ptr); ++ if (! SVCAUTH_UNWRAP(xprt->xp_auth, &(su_data(xprt)->su_xdrs), ++ xdr_args, args_ptr)) { ++ (void)svc_freeargs(xprt, xdr_args, args_ptr); ++ return FALSE; ++ } ++ return TRUE; + } + + static bool_t +@@ -288,6 +311,10 @@ svc_dg_destroy(xprt) + xprt_unregister(xprt); + if (xprt->xp_fd != -1) + (void)close(xprt->xp_fd); ++ if (xprt->xp_auth != NULL) { ++ SVCAUTH_DESTROY(xprt->xp_auth); ++ xprt->xp_auth = NULL; ++ } + XDR_DESTROY(&(su->su_xdrs)); + (void) mem_free(rpc_buffer(xprt), su->su_iosz); + (void) mem_free(su, sizeof (*su)); +diff --git a/src/svc_vc.c b/src/svc_vc.c +index aaaf2d7..74632e2 100644 +--- a/src/svc_vc.c ++++ b/src/svc_vc.c +@@ -172,6 +172,7 @@ svc_vc_create(fd, sendsize, recvsize) + xprt->xp_p1 = r; + xprt->xp_p2 = NULL; + xprt->xp_p3 = NULL; ++ xprt->xp_auth = NULL; + xprt->xp_verf = _null_auth; + svc_vc_rendezvous_ops(xprt); + xprt->xp_port = (u_short)-1; /* It is the rendezvouser */ +@@ -283,6 +284,7 @@ makefd_xprt(fd, sendsize, recvsize) + xdrrec_create(&(cd->xdrs), sendsize, recvsize, + xprt, read_vc, write_vc); + xprt->xp_p1 = cd; ++ xprt->xp_auth = NULL; + xprt->xp_verf.oa_base = cd->verf_body; + svc_vc_ops(xprt); /* truely deals with calls */ + xprt->xp_port = 0; /* this is a connection, not a rendezvouser */ +@@ -412,6 +414,10 @@ __svc_vc_dodestroy(xprt) + XDR_DESTROY(&(cd->xdrs)); + mem_free(cd, sizeof(struct cf_conn)); + } ++ if (xprt->xp_auth != NULL) { ++ SVCAUTH_DESTROY(xprt->xp_auth); ++ xprt->xp_auth = NULL; ++ } + if (xprt->xp_rtaddr.buf) + mem_free(xprt->xp_rtaddr.buf, xprt->xp_rtaddr.maxlen); + if (xprt->xp_ltaddr.buf) +@@ -610,7 +616,11 @@ svc_vc_recv(xprt, msg) + } + + xdrs->x_op = XDR_DECODE; +- (void)xdrrec_skiprecord(xdrs); ++ /* ++ * No need skip records with nonblocking connections ++ */ ++ if (cd->nonblock == FALSE) ++ (void)xdrrec_skiprecord(xdrs); + if (xdr_callmsg(xdrs, msg)) { + cd->x_id = msg->rm_xid; + return (TRUE); +@@ -628,8 +638,13 @@ svc_vc_getargs(xprt, xdr_args, args_ptr) + + assert(xprt != NULL); + /* args_ptr may be NULL */ +- return ((*xdr_args)(&(((struct cf_conn *)(xprt->xp_p1))->xdrs), +- args_ptr)); ++ ++ if (! SVCAUTH_UNWRAP(xprt->xp_auth, ++ &(((struct cf_conn *)(xprt->xp_p1))->xdrs), ++ xdr_args, args_ptr)) { ++ return FALSE; ++ } ++ return TRUE; + } + + static bool_t +@@ -658,15 +673,35 @@ svc_vc_reply(xprt, msg) + XDR *xdrs; + bool_t rstat; + ++ xdrproc_t xdr_results; ++ caddr_t xdr_location; ++ bool_t has_args; ++ + assert(xprt != NULL); + assert(msg != NULL); + + cd = (struct cf_conn *)(xprt->xp_p1); + xdrs = &(cd->xdrs); + ++ if (msg->rm_reply.rp_stat == MSG_ACCEPTED && ++ msg->rm_reply.rp_acpt.ar_stat == SUCCESS) { ++ has_args = TRUE; ++ xdr_results = msg->acpted_rply.ar_results.proc; ++ xdr_location = msg->acpted_rply.ar_results.where; ++ ++ msg->acpted_rply.ar_results.proc = (xdrproc_t)xdr_void; ++ msg->acpted_rply.ar_results.where = NULL; ++ } else ++ has_args = FALSE; ++ + xdrs->x_op = XDR_ENCODE; + msg->rm_xid = cd->x_id; +- rstat = xdr_replymsg(xdrs, msg); ++ rstat = FALSE; ++ if (xdr_replymsg(xdrs, msg) && ++ (!has_args || ++ (SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) { ++ rstat = TRUE; ++ } + (void)xdrrec_endofrecord(xdrs, TRUE); + return (rstat); + } +diff --git a/src/xdr_rec.c b/src/xdr_rec.c +index 4e815d7..2aca623 100644 +--- a/src/xdr_rec.c ++++ b/src/xdr_rec.c +@@ -64,7 +64,6 @@ + #include <rpc/clnt.h> + #include <stddef.h> + #include "rpc_com.h" +-#include <unistd.h> + static bool_t xdrrec_getlong(XDR *, long *); + static bool_t xdrrec_putlong(XDR *, const long *); + static bool_t xdrrec_getbytes(XDR *, char *, u_int); +@@ -330,22 +329,22 @@ xdrrec_getpos(xdrs) + RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private; + off_t pos; + +- pos = lseek((int)(u_long)rstrm->tcp_handle, (off_t)0, 1); +- if (pos != -1) +- switch (xdrs->x_op) { ++ switch (xdrs->x_op) { + +- case XDR_ENCODE: +- pos += rstrm->out_finger - rstrm->out_base; +- break; ++ case XDR_ENCODE: ++ pos = rstrm->out_finger - rstrm->out_base ++ - BYTES_PER_XDR_UNIT; ++ break; + +- case XDR_DECODE: +- pos -= rstrm->in_boundry - rstrm->in_finger; +- break; ++ case XDR_DECODE: ++ pos = rstrm->in_boundry - rstrm->in_finger ++ - BYTES_PER_XDR_UNIT; ++ break; + +- default: +- pos = (off_t) -1; +- break; +- } ++ default: ++ pos = (off_t) -1; ++ break; ++ } + return ((u_int) pos); + } + +diff --git a/tirpc/rpc/auth.h b/tirpc/rpc/auth.h +index 734e6b9..5f66e67 100644 +--- a/tirpc/rpc/auth.h ++++ b/tirpc/rpc/auth.h +@@ -203,8 +203,22 @@ typedef struct __auth { + + } *ah_ops; + void *ah_private; ++ int ah_refcnt; + } AUTH; + ++static __inline int ++auth_get(AUTH *auth) ++{ ++ return __sync_add_and_fetch(&auth->ah_refcnt, 1); ++} ++ ++static __inline int ++auth_put(AUTH *auth) ++{ ++ return __sync_sub_and_fetch(&auth->ah_refcnt, 1); ++} ++ ++ + + /* + * Authentication ops. +@@ -234,10 +248,23 @@ typedef struct __auth { + #define auth_refresh(auth, msg) \ + ((*((auth)->ah_ops->ah_refresh))(auth, msg)) + +-#define AUTH_DESTROY(auth) \ +- ((*((auth)->ah_ops->ah_destroy))(auth)) +-#define auth_destroy(auth) \ +- ((*((auth)->ah_ops->ah_destroy))(auth)) ++#define AUTH_DESTROY(auth) \ ++ do { \ ++ int refs; \ ++ if ((refs = auth_put((auth))) == 0) \ ++ ((*((auth)->ah_ops->ah_destroy))(auth));\ ++ log_debug("%s: auth_put(), refs %d\n", \ ++ __func__, refs); \ ++ } while (0) ++ ++#define auth_destroy(auth) \ ++ do { \ ++ int refs; \ ++ if ((refs = auth_put((auth))) == 0) \ ++ ((*((auth)->ah_ops->ah_destroy))(auth));\ ++ log_debug("%s: auth_put(), refs %d\n", \ ++ __func__, refs); \ ++ } while (0) + + #define AUTH_WRAP(auth, xdrs, xfunc, xwhere) \ + ((*((auth)->ah_ops->ah_wrap))(auth, xdrs, \ +@@ -373,7 +400,7 @@ __END_DECLS + __BEGIN_DECLS + struct svc_req; + struct rpc_msg; +-enum auth_stat _svcauth_null (struct svc_req *, struct rpc_msg *); ++enum auth_stat _svcauth_none (struct svc_req *, struct rpc_msg *); + enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *); + enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *); + __END_DECLS +diff --git a/tirpc/rpc/des.h b/tirpc/rpc/des.h +index e3d6897..d2881ad 100644 +--- a/tirpc/rpc/des.h ++++ b/tirpc/rpc/des.h +@@ -33,6 +33,9 @@ + * Copyright (c) 1986 by Sun Microsystems, Inc. + */ + ++#ifndef _RPC_DES_H_ ++#define _RPC_DES_H_ ++ + #define DES_MAXLEN 65536 /* maximum # of bytes to encrypt */ + #define DES_QUICKLEN 16 /* maximum # of bytes to encrypt quickly */ + +@@ -80,3 +83,5 @@ struct desparams { + * Software DES. + */ + extern int _des_crypt( char *, int, struct desparams * ); ++ ++#endif +diff --git a/tirpc/rpc/svc_auth.h b/tirpc/rpc/svc_auth.h +index 659e90c..14269d1 100644 +--- a/tirpc/rpc/svc_auth.h ++++ b/tirpc/rpc/svc_auth.h +@@ -44,17 +44,23 @@ + /* + * Interface to server-side authentication flavors. + */ +-typedef struct { ++typedef struct SVCAUTH { + struct svc_auth_ops { +- int (*svc_ah_wrap)(void); +- int (*svc_ah_unwrap)(void); +- int (*svc_ah_destroy)(void); ++ int (*svc_ah_wrap)(struct SVCAUTH *, XDR *, xdrproc_t, ++ caddr_t); ++ int (*svc_ah_unwrap)(struct SVCAUTH *, XDR *, xdrproc_t, ++ caddr_t); ++ int (*svc_ah_destroy)(struct SVCAUTH *); + } *svc_ah_ops; + caddr_t svc_ah_private; + } SVCAUTH; + +-#define SVCAUTH_DESTROY(cred) ((*(cred)->svc_ah_ops->svc_ah_destroy)()) +-#define svcauth_destroy(cred) ((*(cred)->svc_ah_ops->svc_ah_destroy)()) ++#define SVCAUTH_WRAP(auth, xdrs, xfunc, xwhere) \ ++ ((*((auth)->svc_ah_ops->svc_ah_wrap))(auth, xdrs, xfunc, xwhere)) ++#define SVCAUTH_UNWRAP(auth, xdrs, xfunc, xwhere) \ ++ ((*((auth)->svc_ah_ops->svc_ah_unwrap))(auth, xdrs, xfunc, xwhere)) ++#define SVCAUTH_DESTROY(auth) \ ++ ((*((auth)->svc_ah_ops->svc_ah_destroy))(auth)) + + /* + * Server side authenticator diff --git a/testing/libtirpc/libtirpc-fix-segfault-0.2.2.patch b/testing/libtirpc/libtirpc-fix-segfault-0.2.2.patch new file mode 100644 index 000000000..8a04c16de --- /dev/null +++ b/testing/libtirpc/libtirpc-fix-segfault-0.2.2.patch @@ -0,0 +1,28 @@ +diff -up libtirpc-0.2.2/src/svc_dg.c.orig libtirpc-0.2.2/src/svc_dg.c +--- libtirpc-0.2.2/src/svc_dg.c.orig 2011-07-19 15:02:41.087631000 -0400 ++++ libtirpc-0.2.2/src/svc_dg.c 2011-07-19 15:04:43.154243000 -0400 +@@ -254,8 +254,8 @@ svc_dg_reply(xprt, msg) + XDR_SETPOS(xdrs, 0); + msg->rm_xid = su->su_xid; + if (xdr_replymsg(xdrs, msg) && +- (!has_args || +- (SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) { ++ (!has_args || (xprt->xp_auth && ++ SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) { + struct msghdr *msg = &su->su_msghdr; + struct iovec iov; + +diff -up libtirpc-0.2.2/src/svc_vc.c.orig libtirpc-0.2.2/src/svc_vc.c +--- libtirpc-0.2.2/src/svc_vc.c.orig 2011-07-19 15:05:28.577588000 -0400 ++++ libtirpc-0.2.2/src/svc_vc.c 2011-07-19 15:05:40.058928000 -0400 +@@ -698,8 +698,8 @@ svc_vc_reply(xprt, msg) + msg->rm_xid = cd->x_id; + rstat = FALSE; + if (xdr_replymsg(xdrs, msg) && +- (!has_args || +- (SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) { ++ (!has_args || (xprt->xp_auth && ++ SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_results, xdr_location)))) { + rstat = TRUE; + } + (void)xdrrec_endofrecord(xdrs, TRUE); diff --git a/testing/lirc/PKGBUILD b/testing/lirc/PKGBUILD new file mode 100644 index 000000000..c5525ea12 --- /dev/null +++ b/testing/lirc/PKGBUILD @@ -0,0 +1,103 @@ +# $Id: PKGBUILD 133620 2011-07-30 06:46:23Z ibiru $ +# Maintainer: Paul Mattal <paul@archlinux.org> + +pkgbase=lirc +pkgname=('lirc' 'lirc-utils') +pkgver=0.9.0 +pkgrel=6 +epoch=1 +_kernver=3.0-ARCH +arch=('i686' 'x86_64') +url="http://www.lirc.org/" +license=('GPL') +makedepends=('help2man' 'linux-headers>=3.0' 'linux-headers<3.1' 'alsa-lib' 'libx11' 'libftdi' 'libirman' 'python') +options=('!makeflags' '!strip') +source=(http://prdownloads.sourceforge.net/${pkgbase}/${pkgbase}-${pkgver}.tar.bz2 + lirc_wpc8769l.patch + lircd-handle-large-config.patch + lirc_atiusb-kfifo.patch + kernel-2.6.39.patch + lircd lircmd lirc.logrotate lircd.conf irexec.conf irexecd) +md5sums=('b232aef26f23fe33ea8305d276637086' + '1cce37e18e3f6f46044abab29016d18f' + 'b70cc9640505205446ec47b7d4779f38' + '1f8b104a2365d9f93404b143f499059b' + '087a7d102e1c96bf1179f38db2b0b237' + '8d0e238dc0eda95e340fe570605da492' + '85f7fdac55e5256967241864049bf5e9' + '3deb02604b37811d41816e9b4385fcc3' + '5b1f8c9cd788a39a6283f93302ce5c6e' + 'f0c0ac930326168035f0c8e24357ae55' + '69d099e6deedfa3c1ee2b6e82d9b8bfb') + +build() { + cd "${srcdir}/lirc-${pkgver}" + patch -Np1 -i "${srcdir}/lirc_wpc8769l.patch" + patch -Np1 -i "${srcdir}/lircd-handle-large-config.patch" + patch -Np1 -i "${srcdir}/lirc_atiusb-kfifo.patch" + patch -Np1 -i "${srcdir}/kernel-2.6.39.patch" + + sed -i '/AC_PATH_XTRA/d' configure.ac + sed -e 's/@X_CFLAGS@//g' \ + -e 's/@X_LIBS@//g' \ + -e 's/@X_PRE_LIBS@//g' \ + -e 's/@X_EXTRA_LIBS@//g' -i Makefile.am tools/Makefile.am + libtoolize + autoreconf + + PYTHON=python2 ./configure --enable-sandboxed --prefix=/usr \ + --with-driver=all --with-kerneldir=/usr/src/linux-${_kernver}/ \ + --with-moduledir=/lib/modules/${_kernver}/kernel/drivers/misc \ + --with-transmitter + + # Remove drivers already in kernel + sed -e "s:lirc_dev::" -e "s:lirc_bt829::" -e "s:lirc_igorplugusb::" \ + -e "s:lirc_imon::" -e "s:lirc_parallel::" -e "s:lirc_sasem::" \ + -e "s:lirc_serial::" -e "s:lirc_sir::" -e "s:lirc_ttusbir::" \ + -i Makefile drivers/Makefile drivers/*/Makefile tools/Makefile + make +} + +package_lirc() { + pkgdesc="Linux Infrared Remote Control kernel modules for stock arch kernel" + depends=('lirc-utils' 'linux>=3.0' 'linux<3.1') + replaces=('lirc+pctv') + install=lirc.install + + cd "${srcdir}/lirc-${pkgver}/drivers" + make DESTDIR="${pkgdir}" install + + # set the kernel we've built for inside the install script + sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" "${startdir}/lirc.install" + # gzip -9 modules + find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \; +} + +package_lirc-utils() { + pkgdesc="Linux Infrared Remote Control utils" + depends=('alsa-lib' 'libx11' 'libftdi' 'libirman') + optdepends=('python2: pronto2lirc utility') + options=('strip' '!libtool') + backup=('etc/conf.d/lircd.conf' 'etc/conf.d/irexec.conf') + + cd "${srcdir}/lirc-${pkgver}" + make DESTDIR="${pkgdir}" install + install -d "${pkgdir}/usr/share/lirc" "${pkgdir}/etc/rc.d" + cp "${srcdir}"/{lircd,lircmd,irexecd} "${pkgdir}/etc/rc.d" + cp -rp remotes "${pkgdir}/usr/share/lirc" + chmod -R go-w "${pkgdir}/usr/share/lirc/" + + # install the logrotate config + install -Dm644 "${srcdir}/lirc.logrotate" "${pkgdir}/etc/logrotate.d/lirc" + + # install conf.d file + install -Dm644 "${srcdir}/lircd.conf" "${pkgdir}/etc/conf.d/lircd.conf" + + # install conf.d file + install -Dm644 "${srcdir}/irexec.conf" "${pkgdir}/etc/conf.d/irexec.conf" + + install -d "${pkgdir}/etc/lirc" + + # remove built modules + rm -r "${pkgdir}/lib/" +} diff --git a/testing/lirc/irexec.conf b/testing/lirc/irexec.conf new file mode 100644 index 000000000..f911c7515 --- /dev/null +++ b/testing/lirc/irexec.conf @@ -0,0 +1,5 @@ +# +# Parameters for irexec daemon (path to lircrc) +# + +IREXEC_OPTS=""
\ No newline at end of file diff --git a/testing/lirc/irexecd b/testing/lirc/irexecd new file mode 100755 index 000000000..a64b033a5 --- /dev/null +++ b/testing/lirc/irexecd @@ -0,0 +1,38 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/irexec.conf + +PID=`pidof -o %PPID /usr/bin/irexec` +case "$1" in + start) + stat_busy "Starting IREXEC Daemon" + [ -z "$PID" ] && /usr/bin/irexec --daemon $IREXEC_OPTS + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon irexecd + stat_done + fi + ;; + stop) + stat_busy "Stopping IREXEC Daemon" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon irexecd + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 + diff --git a/testing/lirc/kernel-2.6.39.patch b/testing/lirc/kernel-2.6.39.patch new file mode 100644 index 000000000..7353d61ca --- /dev/null +++ b/testing/lirc/kernel-2.6.39.patch @@ -0,0 +1,54 @@ +diff -ru lirc-0.9.0/drivers//lirc_atiusb/lirc_atiusb.c lirc-0.9.0.new/drivers//lirc_atiusb/lirc_atiusb.c +--- lirc-0.9.0/drivers//lirc_atiusb/lirc_atiusb.c 2011-03-25 23:28:18.000000000 +0100 ++++ lirc-0.9.0.new/drivers//lirc_atiusb/lirc_atiusb.c 2011-06-07 17:02:20.356580306 +0200 +@@ -48,7 +48,6 @@ + #include <linux/slab.h> + #include <linux/module.h> + #include <linux/kmod.h> +-#include <linux/smp_lock.h> + #include <linux/completion.h> + #include <linux/uaccess.h> + #include <linux/usb.h> +diff -ru lirc-0.9.0/drivers//lirc_i2c/lirc_i2c.c lirc-0.9.0.new/drivers//lirc_i2c/lirc_i2c.c +--- lirc-0.9.0/drivers//lirc_i2c/lirc_i2c.c 2011-03-25 23:28:18.000000000 +0100 ++++ lirc-0.9.0.new/drivers//lirc_i2c/lirc_i2c.c 2011-06-07 17:04:19.725933627 +0200 +@@ -555,8 +555,8 @@ + kfree(ir); + return -EINVAL; + } +- printk(KERN_INFO "lirc_i2c: chip 0x%x found @ 0x%02x (%s)\n", +- adap->id, addr, ir->c.name); ++ printk(KERN_INFO "lirc_i2c: chip found @ 0x%02x (%s)\n", ++ addr, ir->c.name); + + #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31) + /* register device */ +diff -ru lirc-0.9.0/drivers//lirc_wpc8769l/lirc_wpc8769l.c lirc-0.9.0.new/drivers//lirc_wpc8769l/lirc_wpc8769l.c +--- lirc-0.9.0/drivers//lirc_wpc8769l/lirc_wpc8769l.c 2011-03-25 23:28:18.000000000 +0100 ++++ lirc-0.9.0.new/drivers//lirc_wpc8769l/lirc_wpc8769l.c 2011-06-07 17:07:23.984935411 +0200 +@@ -361,14 +361,14 @@ + size = count << 3; + + ldata = (unsigned long *) data_buf; +- next_one = generic_find_next_le_bit(ldata, size, 0); ++ next_one = find_next_zero_bit_le(ldata, size, 0); + + if (next_one > 0) + put_pulse_bit(next_one + * WPC8769L_USECS_PER_BIT); + + while (next_one < size) { +- next_zero = generic_find_next_zero_le_bit(ldata, ++ next_zero = find_next_zero_bit_le(ldata, + size, next_one + 1); + + put_space_bit( +@@ -376,7 +376,7 @@ + * WPC8769L_USECS_PER_BIT); + + if (next_zero < size) { +- next_one = generic_find_next_le_bit(ldata, ++ next_one = find_next_bit_le(ldata, + size, next_zero + 1); + + put_pulse_bit( diff --git a/testing/lirc/lirc.install b/testing/lirc/lirc.install new file mode 100644 index 000000000..0d42e8a5c --- /dev/null +++ b/testing/lirc/lirc.install @@ -0,0 +1,16 @@ +KERNEL_VERSION=3.0-ARCH + +post_install() { + # updating module dependencies + echo ">>> Updating module dependencies. Please wait ..." + depmod $KERNEL_VERSION > /dev/null 2>&1 +} + +post_upgrade() { + post_install +} + +# arg 1: the old package version +post_remove() { + post_install +} diff --git a/testing/lirc/lirc.logrotate b/testing/lirc/lirc.logrotate new file mode 100644 index 000000000..623c4f328 --- /dev/null +++ b/testing/lirc/lirc.logrotate @@ -0,0 +1,5 @@ +/var/log/lircd { + missingok + notifempty + delaycompress +} diff --git a/testing/lirc/lirc_atiusb-kfifo.patch b/testing/lirc/lirc_atiusb-kfifo.patch new file mode 100644 index 000000000..a64984dce --- /dev/null +++ b/testing/lirc/lirc_atiusb-kfifo.patch @@ -0,0 +1,31 @@ +From ec3c5660e67c122e2d5eb9cfa838c9709fccf8e0 Mon Sep 17 00:00:00 2001 +From: Jason Martin <publicmsu@gmail.com> +Date: Fri, 3 Jun 2011 00:12:51 -0400 +Subject: [PATCH] lirc_atiusb: fix buffer alloc to work with new kfifo + +I came across posts with regards to lirc_atiusb and its compatibility +with newer kernels, and their use of kfifo.I spent a little bit of time +this evening, and was able to correct the issues with the driver, and +now have a functioning lirc_atiusb device under the 2.6.38 kernel. + +Signed-off-by: Jarod Wilson <jarod@redhat.com> +--- + drivers/lirc_atiusb/lirc_atiusb.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/drivers/lirc_atiusb/lirc_atiusb.c b/drivers/lirc_atiusb/lirc_atiusb.c +index 52080de..bf2b631 100644 +--- a/drivers/lirc_atiusb/lirc_atiusb.c ++++ b/drivers/lirc_atiusb/lirc_atiusb.c +@@ -1048,7 +1048,7 @@ static struct atirf_dev *new_irctl(struct usb_interface *intf) + goto new_irctl_failure_check; + } + +- if (lirc_buffer_init(driver->rbuf, dclen, 1)) { ++ if (lirc_buffer_init(driver->rbuf, dclen, 2)) { + mem_failure = 4; + goto new_irctl_failure_check; + } +-- +1.7.0.1 + diff --git a/testing/lirc/lirc_wpc8769l.patch b/testing/lirc/lirc_wpc8769l.patch new file mode 100644 index 000000000..e4e2a049b --- /dev/null +++ b/testing/lirc/lirc_wpc8769l.patch @@ -0,0 +1,88 @@ +From 413e83bf504fe9a9a177f27742220cfcb184b034 Mon Sep 17 00:00:00 2001 +From: =?utf8?q?Juan=20Jes=C3=BAs=20Garc=C3=ADa=20de=20Soria=20Lucena?= <skandalfo@gmail.com> +Date: Wed, 30 Mar 2011 16:46:35 -0400 +Subject: [PATCH] Make lirc_wpc8769l functional again + +Signed-off-by: Jarod Wilson <jarod@redhat.com> +--- + drivers/lirc_wpc8769l/lirc_wpc8769l.c | 28 +++++++++++++++++----------- + 1 files changed, 17 insertions(+), 11 deletions(-) + +diff --git a/drivers/lirc_wpc8769l/lirc_wpc8769l.c b/drivers/lirc_wpc8769l/lirc_wpc8769l.c +index f820d11..4d04063 100644 +--- a/drivers/lirc_wpc8769l/lirc_wpc8769l.c ++++ b/drivers/lirc_wpc8769l/lirc_wpc8769l.c +@@ -816,10 +816,6 @@ static int set_use_inc(void *data) + /* Reset last timeout value. */ + lastus = 0; + +- /* Init the read buffer. */ +- if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0) +- return -ENOMEM; +- + /* Acquire the IRQ. */ + result = request_irq(irq, irq_handler, + IRQF_DISABLED | IRQF_SHARED, +@@ -863,9 +859,6 @@ static void set_use_dec(void *data) + /* Free the IRQ. */ + free_irq(irq, THIS_MODULE); + dprintk("Freed IRQ %d\n", irq); +- +- /* Free the RX buffer. */ +- lirc_buffer_free(&rbuf); + } + + static struct lirc_driver driver = { +@@ -1065,19 +1058,29 @@ static int __init lirc_wpc8769l_module_init(void) + /* Do load-time checks. */ + wpc8769l_power_up_and_check_if_we_woke_us_up(); + ++ /* Init the read buffer. */ ++ if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0) { ++ rc = -ENOMEM; ++ goto exit_platform_exit; ++ } ++ + /* Configure the driver hooks. */ + driver.features = LIRC_CAN_REC_MODE2; ++ driver.dev = &lirc_wpc8769l_platform_dev->dev; + driver.minor = lirc_register_driver(&driver); + if (driver.minor < 0) { + eprintk("lirc_register_driver failed!\n"); + rc = -EIO; +- goto exit_platform_exit; ++ goto exit_release_buffer; + } + + iprintk("Driver loaded.\n"); + + return 0; /* Everything OK. */ + ++exit_release_buffer: ++ lirc_buffer_free(&rbuf); ++ + exit_platform_exit: + lirc_wpc8769l_platform_exit(); + +@@ -1095,12 +1098,15 @@ module_init(lirc_wpc8769l_module_init); + + static void __exit lirc_wpc8769l_module_exit(void) + { +- /* Unregister the platform driver and device. */ +- lirc_wpc8769l_platform_exit(); +- + /* Unregister the LIRC driver. */ + lirc_unregister_driver(driver.minor); + ++ /* Free the buffer. */ ++ lirc_buffer_free(&rbuf); ++ ++ /* Unregister the platform driver and device. */ ++ lirc_wpc8769l_platform_exit(); ++ + /* Release the second range. */ + if (baseport2) + release_region(baseport2, WPC8769L_IO_REGION_2_SIZE); +-- +1.7.0.1 + diff --git a/testing/lirc/lircd b/testing/lirc/lircd new file mode 100755 index 000000000..e9739b36e --- /dev/null +++ b/testing/lirc/lircd @@ -0,0 +1,52 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/lircd.conf + +PID=$(pidof -o %PPID /usr/sbin/lircd) +LIRCD_SYMLINKFILE=/dev/lircd +LIRCD_SOCKET=/var/run/lirc/lircd +case "$1" in + start) + stat_busy "Starting LIRC Daemon" + [ ! -d /var/run/lirc ] && install -d /var/run/lirc &>/dev/null + rm -f $LIRCD_SOCKET && ln -s $LIRCD_SOCKET $LIRCD_SYMLINKFILE + if [ $? -ne 0 ]; then + stat_fail + exit 0 + fi + [ -n "$LIRC_DRIVER" ] && LIRC_EXTRAOPTS="-H $LIRC_DRIVER $LIRC_EXTRAOPTS" + [ -z "$PID" ] && + if [ -n "$LIRC_DEVICE" ] ; then + eval /usr/sbin/lircd -d "$LIRC_DEVICE" $LIRC_EXTRAOPTS $LIRC_CONFIGFILE + else + /usr/sbin/lircd $LIRC_EXTRAOPTS $LIRC_CONFIGFILE + fi + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon lircd + stat_done + fi + ;; + stop) + stat_busy "Stopping LIRC Daemon" + rm -f $LIRCD_SYMLINKFILE + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon lircd + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 start|stop|restart" +esac +exit 0 diff --git a/testing/lirc/lircd-handle-large-config.patch b/testing/lirc/lircd-handle-large-config.patch new file mode 100644 index 000000000..85bc20518 --- /dev/null +++ b/testing/lirc/lircd-handle-large-config.patch @@ -0,0 +1,39 @@ +From 5efb56bf22a5077db564c766ba7cc37bc269231d Mon Sep 17 00:00:00 2001 +From: Jarod Wilson <jarod@redhat.com> +Date: Wed, 6 Apr 2011 11:04:12 -0400 +Subject: [PATCH] lircd: handle larger config files in write_socket better + +Pointed out by Michael Zanetti on list, irsend LIST has issues with long +config files, which didn't exist in maintainer mode, as we were using a +do while loop to make sure we spit out everything. Just use that loop +all the time. + +Signed-off-by: Jarod Wilson <jarod@redhat.com> +--- + daemons/lircd.c | 8 ++------ + 1 files changed, 2 insertions(+), 6 deletions(-) + +diff --git a/daemons/lircd.c b/daemons/lircd.c +index 6c21a3a..ddcca05 100644 +--- a/daemons/lircd.c ++++ b/daemons/lircd.c +@@ -231,14 +231,10 @@ inline int write_socket(int fd, const char *buf, int len) + int done, todo = len; + + while (todo) { +-#ifdef SIM_REC + do { + done = write(fd, buf, todo); +- } +- while (done < 0 && errno == EAGAIN); +-#else +- done = write(fd, buf, todo); +-#endif ++ } while (done < 0 && errno == EAGAIN); ++ + if (done <= 0) + return (done); + buf += done; +-- +1.7.0.1 + diff --git a/testing/lirc/lircd.conf b/testing/lirc/lircd.conf new file mode 100644 index 000000000..760dab065 --- /dev/null +++ b/testing/lirc/lircd.conf @@ -0,0 +1,8 @@ +# +# Parameters for lirc daemon +# + +LIRC_DEVICE="/dev/lirc0" +LIRC_DRIVER="" +LIRC_EXTRAOPTS="" +LIRC_CONFIGFILE="" diff --git a/testing/lirc/lircmd b/testing/lirc/lircmd new file mode 100755 index 000000000..220c47c9c --- /dev/null +++ b/testing/lirc/lircmd @@ -0,0 +1,36 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/lircmd` +case "$1" in + start) + stat_busy "Starting lircmd Daemon" + [ -z "$PID" ] && /usr/sbin/lircmd + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon lircmd + stat_done + fi + ;; + stop) + stat_busy "Stopping lircmd Daemon" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon lircmd + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/testing/mesa/PKGBUILD b/testing/mesa/PKGBUILD index e6fedf350..dbc313875 100644 --- a/testing/mesa/PKGBUILD +++ b/testing/mesa/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 132095 2011-07-20 07:12:09Z andyrtr $ +# $Id: PKGBUILD 134098 2011-08-01 12:57:59Z ibiru $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Maintainer: Andreas Radke <andyrtr@archlinux.org> @@ -10,9 +10,9 @@ _git=false if [ "${_git}" = "true" ]; then #pkgver=7.10.99.git20110709 - pkgver=7.11rc2 + pkgver=7.11 else - pkgver=7.11rc2 + pkgver=7.11 fi pkgrel=1 arch=('i686' 'x86_64') @@ -20,27 +20,22 @@ makedepends=('glproto>=1.4.14' 'libdrm>=2.4.26' 'libxxf86vm>=1.1.1' 'libxdamage> 'gcc-libs>=4.6.1' 'dri2proto>=2.6' 'python2' 'libxml2' 'imake' 'llvm' 'udev') url="http://mesa3d.sourceforge.net" license=('custom') -source=(LICENSE - #git_fixes.patch - linking_fix.patch) +source=(LICENSE) if [ "${_git}" = "true" ]; then # mesa git shot from 7.11 branch - see for state: http://cgit.freedesktop.org/mesa/mesa/commit/?h=7.11&id=1ae00c5960af83bea9545a18a1754bad83d5cbd0 #source=(${source[@]} 'ftp://ftp.archlinux.org/other/mesa/mesa-1ae00c5960af83bea9545a18a1754bad83d5cbd0.tar.bz2') source=(${source[@]} "MesaLib-${pkgver}.zip"::"http://cgit.freedesktop.org/mesa/mesa/snapshot/mesa-ef9f16f6322a89fb699fbe3da868b10f9acaef98.tar.bz2") else - source=(${source[@]} "ftp://ftp.freedesktop.org/pub/mesa/${pkgver/rc2/}/MesaLib-${pkgver/rc/-rc}.tar.bz2" + source=(${source[@]} "ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2" ) fi md5sums=('5c65a0fe315dd347e09b1f2826a1df5a' - '887be83c01d126c2a4cb372af7d3b067' - 'caf5f553a4a3f98207bd3b30b3c7eb2e') + 'ff03aca82d0560009a076a87c888cf13') build() { cd ${srcdir}/?esa-* - + if [ "${_git}" = "true" ]; then - #patch -Np1 -i ${srcdir}/git_fixes.patch - patch -Np1 -i ${srcdir}/linking_fix.patch autoreconf -vfi ./autogen.sh --prefix=/usr \ --with-dri-driverdir=/usr/lib/xorg/modules/dri \ @@ -60,7 +55,7 @@ if [ "${_git}" = "true" ]; then # --enable-gallium-svga \ else - autoreconf -vfi + autoreconf -vfi ./configure --prefix=/usr \ --with-dri-driverdir=/usr/lib/xorg/modules/dri \ --with-gallium-drivers=r300,r600,nouveau,swrast \ @@ -84,7 +79,7 @@ package_libgl() { depends=('libdrm>=2.4.26' 'libxxf86vm>=1.1.1' 'libxdamage>=1.1.3' 'expat>=2.0.1' 'libglapi' 'gcc-libs') pkgdesc="Mesa 3-D graphics library and DRI software rasterizer" - cd ${srcdir}/?esa-* + cd ${srcdir}/?esa-* install -m755 -d "${pkgdir}/usr/lib" install -m755 -d "${pkgdir}/usr/lib/xorg/modules/extensions" diff --git a/testing/nfs-utils/PKGBUILD b/testing/nfs-utils/PKGBUILD new file mode 100644 index 000000000..69ee72ca5 --- /dev/null +++ b/testing/nfs-utils/PKGBUILD @@ -0,0 +1,75 @@ +# $Id: PKGBUILD 134117 2011-08-01 17:55:07Z tpowa $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> +# Contributor: John Proctor <jproctor@prium.net> +# Contributor: dibblethewrecker <dibblethewrecker.at.jiwe.org> +# Contributor: abelstr <abel@pinklf.eu> +# Contributor: Marco Lima <cipparello gmail com> + +pkgname=nfs-utils +pkgver=1.2.4 +pkgrel=2 +pkgdesc="Support programs for Network File Systems" +arch=('i686' 'x86_64') +url='http://nfs.sourceforge.net' +license=('GPL') +backup=(etc/{exports,idmapd.conf} etc/conf.d/{nfs-common.conf,nfs-server.conf}) +depends=('glibc' 'e2fsprogs' 'rpcbind' 'libtirpc>=0.2.1' 'librpcsecgss>=0.19-2' 'nfsidmap' 'libevent>=2.0.10' 'libgssglue') +makedepends=('pkgconfig' 'autoconf' 'automake') +source=(http://downloads.sourceforge.net/project/nfs/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2 + nfs-common + nfs-common.conf + nfs-server + nfs-server.conf + exports + idmapd.conf + start-statd.patch + nfs-utils-1.1.4-mtab-sym.patch + nfs-utils-1.1.4-no-exec.patch + kernel-3.0-segfault.patch) +install=nfs-utils.install +md5sums=('938dc0574f3eb9891a8ed4746f806277' + 'fc508e10cdf5e8ddd80373b1b2bc99a1' + 'f73f197a16b02c3e248488ec35c4cf43' + '5ae080f6117cef3140f02bc162bdc755' + '2bf71def3263325643a09458635520f0' + 'ff585faf410a62c4333a027c50b56bae' + 'eb4f4027fab6fc1201f1ca04f5954c76' + 'e24f81a8c8657672e262c61235d34b4a' + '7674106eaaa4c149bccd4f05fe3604e9' + '4f4827dfc93008dfadd0a530ad0872b2' + 'ab92e67f3d0ee2935faab9cdabef8003') + +build() { + cd $srcdir/${pkgname}-${pkgver} + patch -Np1 -i ../nfs-utils-1.1.4-mtab-sym.patch + #patch -Np1 -i ../nfs-utils-1.1.4-no-exec.patch + patch -Np1 -i ../kernel-3.0-segfault.patch + # arch specific patch + patch -Np0 -i $srcdir/start-statd.patch + + ./configure --prefix=/usr --enable-nfsv3 --enable-nfsv4 --enable-gss \ + --without-tcp-wrappers --with-statedir=/var/lib/nfs --enable-ipv6 --sysconfdir=/etc + + make +} + +package() { + cd $srcdir/${pkgname}-${pkgver} + make DESTDIR=$pkgdir install + + # support python2 (FS#25120) + sed -i '1s/python$/python2/' "$pkgdir"/usr/sbin/{nfsiostat,mountstats} + + # NFS & NFSv4 init scripts + install -D -m 755 ../nfs-common "$pkgdir/"etc/rc.d/nfs-common + install -D -m 755 ../nfs-server "$pkgdir/"etc/rc.d/nfs-server + # Configuration + install -D -m 644 ../exports "$pkgdir/"etc/exports + install -D -m 644 ../idmapd.conf "$pkgdir/"etc/idmapd.conf + install -D -m 644 ../nfs-common.conf "$pkgdir/"etc/conf.d/nfs-common.conf + install -D -m 644 ../nfs-server.conf "$pkgdir/"etc/conf.d/nfs-server.conf + # directories + mkdir "$pkgdir/"etc/exports.d + mkdir "$pkgdir/"var/lib/nfs/rpc_pipefs + mkdir "$pkgdir/"var/lib/nfs/v4recovery +} diff --git a/testing/nfs-utils/exports b/testing/nfs-utils/exports new file mode 100644 index 000000000..8f4aac598 --- /dev/null +++ b/testing/nfs-utils/exports @@ -0,0 +1,15 @@ +# /etc/exports +# +# List of directories exported to NFS clients. See exports(5). +# Use exportfs -arv to reread. +# +# Example for NFSv2 and NFSv3: +# /srv/home hostname1(rw,sync) hostname2(ro,sync) +# +# Example for NFSv4: +# /srv/nfs4 hostname1(rw,sync,fsid=0) +# /srv/nfs4/home hostname1(rw,sync,nohide) +# Using Kerberos and integrity checking: +# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt) +# /srv/nfs4/home gss/krb5i(rw,sync,nohide) +# diff --git a/testing/nfs-utils/idmapd.conf b/testing/nfs-utils/idmapd.conf new file mode 100644 index 000000000..b1b23afe9 --- /dev/null +++ b/testing/nfs-utils/idmapd.conf @@ -0,0 +1,14 @@ +[General] + +Verbosity = 0 +Pipefs-Directory = /var/lib/nfs/rpc_pipefs +Domain = localdomain + +[Mapping] + +Nobody-User = nobody +Nobody-Group = nobody + +[Translation] + +Method = nsswitch diff --git a/testing/nfs-utils/kernel-3.0-segfault.patch b/testing/nfs-utils/kernel-3.0-segfault.patch new file mode 100644 index 000000000..3dba94a05 --- /dev/null +++ b/testing/nfs-utils/kernel-3.0-segfault.patch @@ -0,0 +1,53 @@ +mount.nfs segfaults if kernel version number does not contain +at least 3 components delimited with a dot. + +Avoid this by matching up to three unsigned integers inialised +to zero, separated by dots. + +A version that does not start with an integer is probably a future +version where the versioning evolved to another scheme. +Return UINT_MAX which is guaranteed to be higher than existing +versions. This would also make it possible to easily identify +versions that do not start with an integer. + +Signed-off-by: Luk Claes <luk@...> +--- + utils/mount/version.h | 16 +++++++++------- + 1 files changed, 9 insertions(+), 7 deletions(-) + +diff --git a/utils/mount/version.h b/utils/mount/version.h +index af61a6f..531cf68 100644 +--- a/utils/mount/version.h ++++ b/utils/mount/version.h +@@ -23,8 +23,8 @@ + #ifndef _NFS_UTILS_MOUNT_VERSION_H + #define _NFS_UTILS_MOUNT_VERSION_H + +-#include <stdlib.h> +-#include <string.h> ++#include <stdio.h> ++#include <limits.h> + + #include <sys/utsname.h> + +@@ -37,14 +37,16 @@ static inline unsigned int MAKE_VERSION(unsigned int p, unsigned int q, + static inline unsigned int linux_version_code(void) + { + struct utsname my_utsname; +- unsigned int p, q, r; ++ unsigned int p, q = 0, r = 0; + ++ /* UINT_MAX as backward compatibility code should not be run */ + if (uname(&my_utsname)) +- return 0; ++ return UINT_MAX; + +- p = (unsigned int)atoi(strtok(my_utsname.release, ".")); +- q = (unsigned int)atoi(strtok(NULL, ".")); +- r = (unsigned int)atoi(strtok(NULL, ".")); ++ /* UINT_MAX as future versions might not start with an integer */ ++ if (sscanf(my_utsname.release, "%u.%u.%u", &p, &q, &r) < 1) ++ return UINT_MAX; ++ + return MAKE_VERSION(p, q, r); + } diff --git a/testing/nfs-utils/nfs-common b/testing/nfs-utils/nfs-common new file mode 100644 index 000000000..13742bde3 --- /dev/null +++ b/testing/nfs-utils/nfs-common @@ -0,0 +1,319 @@ +#!/bin/bash + +daemon_name=nfs-common + +# daemon dependencies +DAEMON_DEPENDS=('rpcbind') + +NEED_STATD= +STATD_OPTS= +NEED_IDMAPD= +IDMAPD_OPTS= +NEED_GSSD= +GSSD_OPTS= +PIPEFS_MOUNTPOINT= +PIPEFS_MOUNTOPTS= + +# rpc.statd daemon & binary location +STATD_DAEMON_NAME=rpc.statd +STATD="/usr/sbin/rpc.statd" + +# rpc.idmapd daemon & binary location +IDMAPD_DAEMON_NAME=rpc.idmapd +IDMAPD="/usr/sbin/rpc.idmapd" + +# rpc.gssd daemon & binary location +GSSD_DAEMON_NAME=rpc.gssd +GSSD="/usr/sbin/rpc.gssd" + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/$daemon_name.conf + +# Default mountpoint and options for rpc_pipefs filesystem +[ -z "$PIPEFS_MOUNTPOINT" ] && PIPEFS_MOUNTPOINT="/var/lib/nfs/rpc_pipefs" +[ -z "$PIPEFS_MOUNTOPTS" ] && PIPEFS_MOUNTOPTS="defaults" + +# Parse the fstab file, and determine whether we need idmapd and gssd. (The +# /etc/conf.d/nfs-common settings, if any, will override our autodetection.) +AUTO_NEED_IDMAPD=no +AUTO_NEED_GSSD=no + +if [ -f /etc/fstab ]; then + exec 9<&0 </etc/fstab + + while read DEV MTPT FSTYPE OPTS REST; do + if [ "$FSTYPE" = "nfs4" ]; then + AUTO_NEED_IDMAPD=yes + fi + case "$OPTS" in + sec=krb5|*,sec=krb5|sec=krb5,*|*,sec=krb5i,*|sec=krb5i|*,sec=krb5i|sec=krb5i,*|*,sec=krb5i,*|sec=krb5p|*,sec=krb5p|sec=krb5p,*|*,sec=krb5p,*) + AUTO_NEED_GSSD=yes + ;; + esac + done + + exec 0<&9 9<&- +fi + +# We also need idmapd if we run an NFSv4 server. It's fairly difficult +# to autodetect whether there are NFSv4 exports or not, and idmapd is not a +# particularily heavy daemon, so we auto-enable it if we find an /etc/exports +# file. This does not mean that there are NFSv4 or other mounts active (or +# even that nfs-kernel-server is installed), but it matches what the "start" +# condition in nfs-kernel-server's init script does, which has a value in +# itself. +if [ -f /etc/exports ] && grep -q '^[[:space:]]*[^#]*/' /etc/exports; then + AUTO_NEED_IDMAPD=yes +fi + +case "$NEED_STATD" in + yes|no) + ;; + *) + NEED_STATD=yes + ;; +esac + +case "$NEED_IDMAPD" in + yes|no) + ;; + *) + NEED_IDMAPD=$AUTO_NEED_IDMAPD + ;; +esac + +case "$NEED_GSSD" in + yes|no) + ;; + *) + NEED_GSSD=$AUTO_NEED_GSSD + ;; +esac + +do_modprobe() { + if [ -x /sbin/modprobe -a -f /proc/modules ]; then + modprobe -q "$1" || true + fi +} + +do_mount() { + if ! grep -E "$1\$" /proc/filesystems &> /dev/null ; then + return 1 + fi + + if grep -vw "$1" /proc/mounts &> /dev/null ; then + if ! mountpoint -q "$2" ; then + mount -t "$1" "$1" "$2" -o "$3" + return + fi + fi + return 0 +} + +do_umount() { + if mountpoint -q "$1" ; then + umount "$1" + fi + return 0 +} + +get_pid() { + pidof -o %PPID "$1" +} + +case "$1" in + start) + ck_depends ${DAEMON_DEPENDS[@]} + + rc=0 + if [ "$NEED_STATD" = yes ]; then + stat_busy "Starting $STATD_DAEMON_NAME daemon" + PID=$(get_pid $STATD) + if [ -z "$PID" ]; then + [ -f /var/run/$STATD_DAEMON_NAME.pid ] && rm -f /var/run/$STATD_DAEMON_NAME.pid + # RUN + $STATD $STATD_OPTS + # + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + echo $(get_pid $STATD) > /var/run/$STATD_DAEMON_NAME.pid + stat_done + fi + else + stat_fail + exit 1 + fi + # Run sm-notify + /usr/sbin/sm-notify $SMNOTIFY_OPTS + fi + + if [ "$NEED_IDMAPD" = yes ] || [ "$NEED_GSSD" = yes ]; then + stat_busy "Mounting pipefs filesystem" + do_modprobe sunrpc + do_modprobe nfs + do_modprobe nfsd + do_mount rpc_pipefs "$PIPEFS_MOUNTPOINT" "$PIPEFS_MOUNTOPTS" + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + stat_done + fi + + if [ "$NEED_IDMAPD" = yes ]; then + stat_busy "Starting $IDMAPD_DAEMON_NAME daemon" + PID=$(get_pid $IDMAPD) + if [ -z "$PID" ]; then + [ -f /var/run/$IDMAPD_DAEMON_NAME.pid ] && rm -f /var/run/$IDMAPD_DAEMON_NAME.pid + # RUN + $IDMAPD $IDMAPD_OPTS + # + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + echo $(get_pid $IDMAPD) > /var/run/$IDMAPD_DAEMON_NAME.pid + stat_done + fi + else + stat_fail + exit 1 + fi + fi + + if [ "$NEED_GSSD" = yes ]; then + do_modprobe rpcsec_gss_krb5 + stat_busy "Starting $GSSD_DAEMON_NAME daemon" + PID=$(get_pid $GSSD) + if [ -z "$PID" ]; then + [ -f /var/run/$GSSD_DAEMON_NAME.pid ] && rm -f /var/run/$GSSD_DAEMON_NAME.pid + # RUN + $GSSD $GSSD_OPTS + # + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + echo $(get_pid $GSSD) > /var/run/$GSSD_DAEMON_NAME.pid + stat_done + fi + else + stat_fail + exit 1 + fi + fi + fi + + add_daemon $daemon_name + ;; + + stop) + rc=0 + if [ "$NEED_IDMAPD" = yes ] || [ "$NEED_GSSD" = yes ]; then + + if [ "$NEED_GSSD" = yes ]; then + stat_busy "Stopping $GSSD_DAEMON_NAME daemon" + PID=$(get_pid $GSSD) + # KILL + [ ! -z "$PID" ] && kill $PID &> /dev/null + # + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + rm -f /var/run/$GSSD_DAEMON_NAME.pid &> /dev/null + stat_done + fi + fi + + if [ "$NEED_IDMAPD" = yes ]; then + stat_busy "Stopping $IDMAPD_DAEMON_NAME daemon" + PID=$(get_pid $IDMAPD) + # KILL + [ ! -z "$PID" ] && kill $PID &> /dev/null + # + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + rm -f /var/run/$IDMAPD_DAEMON_NAME.pid &> /dev/null + stat_done + fi + fi + do_umount "$PIPEFS_MOUNTPOINT" 2>/dev/null || true + fi + + if [ "$NEED_STATD" = yes ]; then + stat_busy "Stopping $STATD_DAEMON_NAME daemon" + PID=$(get_pid $STATD) + # KILL + [ ! -z "$PID" ] && kill $PID &> /dev/null + # + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + rm -f /var/run/$STATD_DAEMON_NAME.pid &> /dev/null + stat_done + fi + fi + + rm_daemon $daemon_name + ;; + + status) + stat_busy "Checking $daemon_name status"; + ck_status $daemon_name + + if [ "$NEED_STATD" = yes ]; then + stat_busy "Daemon $STATD_DAEMON_NAME running" + PID=$(get_pid $STATD) + if [ -z "$PID" ]; then + stat_fail + else + stat_done + fi + fi + + if [ "$NEED_GSSD" = yes ]; then + stat_busy "Daemon $GSSD_DAEMON_NAME running" + PID=$(get_pid $GSSD) + if [ -z "$PID" ]; then + stat_fail + else + stat_done + fi + fi + + if [ "$NEED_IDMAPD" = yes ]; then + stat_busy "Daemon $IDMAPD_DAEMON_NAME running" + PID=$(get_pid $IDMAPD) + if [ -z "$PID" ]; then + stat_fail + else + stat_done + fi + fi + echo + ;; + + restart) + $0 stop + sleep 3 + $0 start + ;; + *) + echo "usage: $0 {start|stop|status|restart}" +esac +exit 0 + diff --git a/testing/nfs-utils/nfs-common.conf b/testing/nfs-utils/nfs-common.conf new file mode 100644 index 000000000..12466b3e5 --- /dev/null +++ b/testing/nfs-utils/nfs-common.conf @@ -0,0 +1,40 @@ +# Parameters to be passed to nfs-common (nfs clients & server) init script. +# + +# If you do not set values for the NEED_ options, they will be attempted +# autodetected; this should be sufficient for most people. Valid alternatives +# for the NEED_ options are "yes" and "no". + +# Do you want to start the statd daemon? It is not needed for NFSv4. +NEED_STATD="" + +# Options to pass to rpc.statd. +# See rpc.statd(8) for more details. +# N.B. statd normally runs on both client and server, and run-time +# options should be specified accordingly. +# STATD_OPTS="-p 32765 -o 32766" +STATD_OPTS="" + +# Options to pass to sm-notify +# e.g. SMNOTIFY_OPTS="-p 32764" +SMNOTIFY_OPTS="" + +# Do you want to start the idmapd daemon? It is only needed for NFSv4. +NEED_IDMAPD="" + +# Options to pass to rpc.idmapd. +# See rpc.idmapd(8) for more details. +IDMAPD_OPTS="" + +# Do you want to start the gssd daemon? It is required for Kerberos mounts. +NEED_GSSD="" + +# Options to pass to rpc.gssd. +# See rpc.gssd(8) for more details. +GSSD_OPTS="" + +# Where to mount rpc_pipefs filesystem; the default is "/var/lib/nfs/rpc_pipefs". +PIPEFS_MOUNTPOINT="" + +# Options used to mount rpc_pipefs filesystem; the default is "defaults". +PIPEFS_MOUNTOPTS="" diff --git a/testing/nfs-utils/nfs-server b/testing/nfs-utils/nfs-server new file mode 100644 index 000000000..9574cbc12 --- /dev/null +++ b/testing/nfs-utils/nfs-server @@ -0,0 +1,303 @@ +#!/bin/bash + +daemon_name=nfs-server + +# daemon dependencies +DAEMON_DEPENDS=('nfs-common') + +NFSD_COUNT= +NFSD_OPTS= +NEED_SVCGSSD= +SVCGSSD_OPTS= +MOUNTD_OPTS= +PROCNFSD_MOUNTPOINT= +PROCNFSD_MOUNTOPTS= + +# rpc.nfsd daemon & binary location +NFSD_PROCESS_NAME=nfsd +NFSD_DAEMON_NAME=rpc.nfsd +NFSD="/usr/sbin/rpc.nfsd" + +# rpc.svcgssd daemon & binary location +SVCGSSD_DAEMON_NAME=rpc.svcgssd +SVCGSSD="/usr/sbin/rpc.svcgssd" + +# rpc.idmapd daemon & binary location +IDMAPD_DAEMON_NAME=rpc.idmapd +IDMAPD="/usr/sbin/rpc.idmapd" + +# rpc.mountd daemon & binary location +MOUNTD_DAEMON_NAME=rpc.mountd +MOUNTD="/usr/sbin/rpc.mountd" + +# exortfs binary location +EXPORTFS="/usr/sbin/exportfs" + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/$daemon_name.conf + +# Default number of nfsd servers +[ -z "$NFSD_COUNT" ] && NFSD_COUNT=8 + +# Default mountpoint and options for nfsd filesystem +[ -z "$PROCNFSD_MOUNTPOINT" ] && PROCNFSD_MOUNTPOINT="/proc/fs/nfsd" +[ -z "$PROCNFSD_MOUNTOPTS" ] && PROCNFSD_MOUNTOPTS="rw,nodev,noexec,nosuid" + +case "$NEED_SVCGSSD" in + yes|no) + ;; + *) + NEED_SVCGSSD=no + ;; +esac + +do_modprobe() { + if [ -x /sbin/modprobe -a -f /proc/modules ]; then + modprobe -q "$1" || true + fi +} + +do_mount() { + if ! grep -E "$1\$" /proc/filesystems &> /dev/null ; then + return 1 + fi + + if grep -vw "$1" /proc/mounts &> /dev/null ; then + if ! mountpoint -q "$2" ; then + mount -t "$1" "$1" "$2" -o "$3" + return + fi + fi + return 0 +} + +do_umount() { + if mountpoint -q "$1" ; then + umount "$1" + fi + return 0 +} + +get_pid() { + pidof -o %PPID "$1" +} + +case "$1" in + start) + ck_depends ${DAEMON_DEPENDS[@]} + + rc=0 + stat_busy "Mounting nfsd filesystem" + do_modprobe nfsd + do_mount nfsd "$PROCNFSD_MOUNTPOINT" "$PROCNFSD_MOUNTOPTS" + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + stat_done + fi + + stat_busy "Exporting all directories" + $EXPORTFS -r + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + stat_done + fi + + stat_busy "Starting $NFSD_DAEMON_NAME daemon" + PID=$(get_pid $NFSD_PROCESS_NAME) + if [ -z "$PID" ]; then + [ -f /var/run/$NFSD_DAEMON_NAME.pid ] && rm -f /var/run/$NFSD_DAEMON_NAME.pid + # RUN + $NFSD $NFSD_OPTS $NFSD_COUNT + # + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + echo $(get_pid $NFSD_PROCESS_NAME) > /var/run/$NFSD_DAEMON_NAME.pid + stat_done + fi + else + stat_fail + exit 1 + fi + + if [ "$NEED_SVCGSSD" = yes ]; then + do_modprobe rpcsec_gss_krb5 + stat_busy "Starting $SVCGSSD_DAEMON_NAME daemon" + PID=$(get_pid $SVCGSSD) + if [ -z "$PID" ]; then + [ -f /var/run/$SVCGSSD_DAEMON_NAME.pid ] && rm -f /var/run/$SVCGSSD_DAEMON_NAME.pid + # RUN + $SVCGSSD $SVCGSSD_OPTS + # + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + echo $(get_pid $SVCGSSD) > /var/run/$SVCGSSD_DAEMON_NAME.pid + stat_done + fi + else + stat_fail + exit 1 + fi + fi + + PID=$(get_pid $IDMAPD) + [ ! -z "$PID" ] && kill -SIGHUP $IDMAPD_DAEMON_NAME &> /dev/null + + stat_busy "Starting $MOUNTD_DAEMON_NAME daemon" + PID=$(get_pid $MOUNTD) + if [ -z "$PID" ]; then + [ -f /var/run/$MOUNTD_DAEMON_NAME.pid ] && rm -f /var/run/$MOUNTD_DAEMON_NAME.pid + # RUN + $MOUNTD $MOUNTD_OPTS + # + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + echo $(get_pid $MOUNTD) > /var/run/$MOUNTD_DAEMON_NAME.pid + stat_done + fi + else + stat_fail + exit 1 + fi + + add_daemon $daemon_name + ;; + + stop) + rc=0 + stat_busy "Stopping $MOUNTD_DAEMON_NAME daemon" + PID=$(get_pid $MOUNTD) + # KILL + [ ! -z "$PID" ] && kill $PID &> /dev/null + # + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + rm -f /var/run/$MOUNTD_DAEMON_NAME.pid &> /dev/null + stat_done + fi + + if [ "$NEED_SVCGSSD" = yes ]; then + stat_busy "Stopping $SVCGSSD_DAEMON_NAME daemon" + PID=$(get_pid $SVCGSSD) + # KILL + [ ! -z "$PID" ] && kill $PID &> /dev/null + # + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + rm -f /var/run/$SVCGSSD_DAEMON_NAME.pid &> /dev/null + stat_done + fi + fi + + stat_busy "Stopping $NFSD_DAEMON_NAME daemon" + PID=$(get_pid $NFSD_PROCESS_NAME) + # KILL (SIGINT) + [ ! -z "$PID" ] && kill -2 $PID &> /dev/null + # + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + sleep 1 + PID=$(get_pid $NFSD_PROCESS_NAME) + # KILL (KILL) - just to be sure + [ ! -z "$PID" ] && kill -9 $PID &> /dev/null + # + rm -f /var/run/$NFSD_DAEMON_NAME.pid &> /dev/null + stat_done + fi + + stat_busy "Unexporting all directories" + $EXPORTFS -au + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + stat_done + fi + + # flush everything out of the kernels export table + if mountpoint -q "$PROCNFSD_MOUNTPOINT" ; then + $EXPORTFS -f + fi + do_umount "$PROCNFSD_MOUNTPOINT" 2>/dev/null || true + rm_daemon $daemon_name + ;; + + status) + stat_busy "Checking $daemon_name status"; + ck_status $daemon_name + + stat_busy "Daemon $NFSD_DAEMON_NAME running" + PID=$(get_pid $NFSD_PROCESS_NAME) + if [ -z "$PID" ]; then + stat_fail + else + stat_done + fi + + stat_busy "Daemon $MOUNTD_DAEMON_NAME running" + PID=$(get_pid $MOUNTD) + if [ -z "$PID" ]; then + stat_fail + else + stat_done + fi + + if [ "$NEED_SVCGSSD" = yes ]; then + stat_busy "Daemon $SVCGSSD_DAEMON_NAME running" + PID=$(get_pid $SVCGSSD) + if [ -z "$PID" ]; then + stat_fail + else + stat_done + fi + fi + echo + ;; + + reload) + rc=0 + stat_busy "Re-exporting all directories" + $EXPORTFS -r + rc=$(($rc+$?)) + if [ $rc -gt 0 ]; then + stat_fail + exit $rc + else + stat_done + fi + ;; + + restart) + $0 stop + sleep 3 + $0 start + ;; + *) + echo "usage: $0 {start|stop|status|reload|restart}" +esac +exit 0 diff --git a/testing/nfs-utils/nfs-server.conf b/testing/nfs-utils/nfs-server.conf new file mode 100644 index 000000000..4054d6b88 --- /dev/null +++ b/testing/nfs-utils/nfs-server.conf @@ -0,0 +1,29 @@ +# Parameters to be passed to nfs-server init script. +# + +# Options to pass to rpc.nfsd. +# See rpc.nfsd(8) for more details. +NFSD_OPTS="" + +# Number of servers to start up; the default is 8 servers. +NFSD_COUNT="" + +# Where to mount nfsd filesystem; the default is "/proc/fs/nfsd". +PROCNFSD_MOUNTPOINT="" + +# Options used to mount nfsd filesystem; the default is "rw,nodev,noexec,nosuid". +PROCNFSD_MOUNTOPTS="" + +# Options for rpc.mountd. +# If you have a port-based firewall, you might want to set up +# a fixed port here using the --port option. +# See rpc.mountd(8) for more details. +MOUNTD_OPTS="--no-nfs-version 2" + +# Do you want to start the svcgssd daemon? It is only required for Kerberos +# exports. Valid alternatives are "yes" and "no"; the default is "no". +NEED_SVCGSSD="" + +# Options to pass to rpc.svcgssd. +# See rpc.svcgssd(8) for more details. +SVCGSSD_OPTS="" diff --git a/testing/nfs-utils/nfs-utils-1.1.2-kerberos-ac.patch b/testing/nfs-utils/nfs-utils-1.1.2-kerberos-ac.patch new file mode 100644 index 000000000..4a5a138e7 --- /dev/null +++ b/testing/nfs-utils/nfs-utils-1.1.2-kerberos-ac.patch @@ -0,0 +1,138 @@ +diff -NaurwB nfs-utils-1.1.2.orig/aclocal/kerberos5.m4 nfs-utils-1.1.2/aclocal/kerberos5.m4 +--- nfs-utils-1.1.2.orig/aclocal/kerberos5.m4 2008-03-14 16:46:29.000000000 +0100 ++++ nfs-utils-1.1.2/aclocal/kerberos5.m4 2008-06-12 17:13:51.000000000 +0200 +@@ -1,112 +1,48 @@ +-dnl Checks for Kerberos +-dnl NOTE: while we intend to do generic gss-api, currently we +-dnl have a requirement to get an initial Kerberos machine +-dnl credential. Thus, the requirement for Kerberos. +-dnl The Kerberos gssapi library will be dynamically loaded? + AC_DEFUN([AC_KERBEROS_V5],[ ++ K5CONFIG="krb5-config" + AC_MSG_CHECKING(for Kerberos v5) +- AC_ARG_WITH(krb5, +- [AC_HELP_STRING([--with-krb5=DIR], [use Kerberos v5 installation in DIR])], ++ AC_ARG_WITH(krb5-config, ++ [AC_HELP_STRING([--with-krb5-config=PATH], [Full Path to krb5-config.])], + [ case "$withval" in + yes|no) +- krb5_with="" ++ K5CONFIG="krb5-config" + ;; + *) +- krb5_with="$withval" ++ K5CONFIG="$withval" + ;; + esac ] + ) + +- for dir in $krb5_with /usr /usr/kerberos /usr/local /usr/local/krb5 \ +- /usr/krb5 /usr/heimdal /usr/local/heimdal /usr/athena ; do +- dnl This ugly hack brought on by the split installation of +- dnl MIT Kerberos on Fedora Core 1 +- K5CONFIG="" +- if test -f $dir/bin/krb5-config; then +- K5CONFIG=$dir/bin/krb5-config +- elif test -f "/usr/kerberos/bin/krb5-config"; then +- K5CONFIG="/usr/kerberos/bin/krb5-config" +- elif test -f "/usr/lib/mit/bin/krb5-config"; then +- K5CONFIG="/usr/lib/mit/bin/krb5-config" +- fi + if test "$K5CONFIG" != ""; then + KRBCFLAGS=`$K5CONFIG --cflags` + KRBLIBS=`$K5CONFIG --libs gssapi` +- K5VERS=`$K5CONFIG --version | head -n 1 | awk '{split($(4),v,"."); if (v@<:@"3"@:>@ == "") v@<:@"3"@:>@ = "0"; print v@<:@"1"@:>@v@<:@"2"@:>@v@<:@"3"@:>@ }'` +- AC_DEFINE_UNQUOTED(KRB5_VERSION, $K5VERS, [Define this as the Kerberos version number]) +- if test -f $dir/include/gssapi/gssapi_krb5.h -a \ +- \( -f $dir/lib/libgssapi_krb5.a -o \ +- -f $dir/lib64/libgssapi_krb5.a -o \ +- -f $dir/lib64/libgssapi_krb5.so -o \ +- -f $dir/lib/libgssapi_krb5.so \) ; then ++ if $K5CONFIG --version | grep -q -e heimdal; then ++ K5VERS=`$K5CONFIG --version | head -n 1 | cut -f2 -d ' ' | tr -d '.'` ++ AC_DEFINE(HAVE_HEIMDAL, 1, [Define this if you have Heimdal Kerberos libraries]) ++ gssapi_lib=gssapi ++ KRBIMPL="heimdal" ++ elif $K5CONFIG --version | grep -q -e mit; then ++ K5VERS=`$K5CONFIG --version | head -n 1 | cut -f4 -d ' ' | tr -d '.'` + AC_DEFINE(HAVE_KRB5, 1, [Define this if you have MIT Kerberos libraries]) +- KRBDIR="$dir" +- dnl If we are using MIT K5 1.3.1 and before, we *MUST* use the +- dnl private function (gss_krb5_ccache_name) to get correct +- dnl behavior of changing the ccache used by gssapi. +- dnl Starting in 1.3.2, we *DO NOT* want to use +- dnl gss_krb5_ccache_name, instead we want to set KRB5CCNAME +- dnl to get gssapi to use a different ccache + if test $K5VERS -le 131; then + AC_DEFINE(USE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the private function, gss_krb5_cache_name, must be used to tell the Kerberos library which credentials cache to use. Otherwise, this is done by setting the KRB5CCNAME environment variable]) + fi + gssapi_lib=gssapi_krb5 +- break +- dnl The following ugly hack brought on by the split installation +- dnl of Heimdal Kerberos on SuSe +- elif test \( -f $dir/include/heim_err.h -o\ +- -f $dir/include/heimdal/heim_err.h \) -a \ +- -f $dir/lib/libroken.a; then +- AC_DEFINE(HAVE_HEIMDAL, 1, [Define this if you have Heimdal Kerberos libraries]) +- KRBDIR="$dir" +- gssapi_lib=gssapi +- break +- fi +- fi +- done +- dnl We didn't find a usable Kerberos environment +- if test "x$KRBDIR" = "x"; then +- if test "x$krb5_with" = "x"; then +- AC_MSG_ERROR(Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=) ++ KRBIMPL="mit-krb5" + else +- AC_MSG_ERROR(Kerberos v5 with GSS support not found at $krb5_with) +- fi ++ AC_MSG_ERROR(Unknown Kerberos 5 Implementation. Is neither heimdal or mit-krb5.) ++ KRBIMPL="unknown" + fi +- AC_MSG_RESULT($KRBDIR) +- +- dnl Check if -rpath=$(KRBDIR)/lib is needed +- echo "The current KRBDIR is $KRBDIR" +- if test "$KRBDIR/lib" = "/lib" -o "$KRBDIR/lib" = "/usr/lib" \ +- -o "$KRBDIR/lib" = "//lib" -o "$KRBDIR/lib" = "/usr//lib" ; then +- KRBLDFLAGS=""; +- elif /sbin/ldconfig -p | grep > /dev/null "=> $KRBDIR/lib/"; then +- KRBLDFLAGS=""; +- else +- KRBLDFLAGS="-Wl,-rpath=$KRBDIR/lib" ++ AC_DEFINE_UNQUOTED(KRB5_VERSION, $K5VERS, [Define this as the Kerberos version number]) + fi ++ AC_MSG_RESULT($KRBIMPL) + +- dnl Now check for functions within gssapi library +- AC_CHECK_LIB($gssapi_lib, gss_krb5_export_lucid_sec_context, +- AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT, 1, [Define this if the Kerberos GSS library supports gss_krb5_export_lucid_sec_context]), ,$KRBLIBS) +- AC_CHECK_LIB($gssapi_lib, gss_krb5_set_allowable_enctypes, +- AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES, 1, [Define this if the Kerberos GSS library supports gss_krb5_set_allowable_enctypes]), ,$KRBLIBS) +- AC_CHECK_LIB($gssapi_lib, gss_krb5_ccache_name, +- AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the Kerberos GSS library supports gss_krb5_ccache_name]), ,$KRBLIBS) +- +- dnl Check for newer error message facility +- AC_CHECK_LIB($gssapi_lib, krb5_get_error_message, +- AC_DEFINE(HAVE_KRB5_GET_ERROR_MESSAGE, 1, [Define this if the function krb5_get_error_message is available]), ,$KRBLIBS) ++ AC_CHECK_LIB($gssapi_lib, gss_krb5_export_lucid_sec_context, AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT, 1, [Define this if the Kerberos GSS library supports gss_krb5_export_lucid_sec_context]), ,$KRBLIBS) ++ AC_CHECK_LIB($gssapi_lib, gss_krb5_set_allowable_enctypes, AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES, 1, [Define this if the Kerberos GSS library supports gss_krb5_set_allowable_enctypes]), ,$KRBLIBS) ++ AC_CHECK_LIB($gssapi_lib, gss_krb5_ccache_name, AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the Kerberos GSS library supports gss_krb5_ccache_name]), ,$KRBLIBS) ++ AC_CHECK_LIB($gssapi_lib, krb5_get_error_message, AC_DEFINE(HAVE_KRB5_GET_ERROR_MESSAGE, 1, [Define this if the function krb5_get_error_message is available]), ,$KRBLIBS) ++ AC_CHECK_LIB($gssapi_lib, krb5_get_init_creds_opt_set_addressless, AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_SET_ADDRESSLESS, 1, [Define this if the function krb5_get_init_creds_opt_set_addressless is available]), ,$KRBLIBS) + +- dnl Check for function to specify addressless tickets +- AC_CHECK_LIB($gssapi_lib, krb5_get_init_creds_opt_set_addressless, +- AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_SET_ADDRESSLESS, 1, [Define this if the function krb5_get_init_creds_opt_set_addressless is available]), ,$KRBLIBS) +- +- dnl If they specified a directory and it didn't work, give them a warning +- if test "x$krb5_with" != "x" -a "$krb5_with" != "$KRBDIR"; then +- AC_MSG_WARN(Using $KRBDIR instead of requested value of $krb5_with for Kerberos!) +- fi +- +- AC_SUBST([KRBDIR]) + AC_SUBST([KRBLIBS]) + AC_SUBST([KRBCFLAGS]) + AC_SUBST([KRBLDFLAGS]) diff --git a/testing/nfs-utils/nfs-utils-1.1.4-mtab-sym.patch b/testing/nfs-utils/nfs-utils-1.1.4-mtab-sym.patch new file mode 100644 index 000000000..c9e60afc7 --- /dev/null +++ b/testing/nfs-utils/nfs-utils-1.1.4-mtab-sym.patch @@ -0,0 +1,39 @@ +ripped from Debian + +--- nfs-utils-1.1.4/utils/mount/fstab.c ++++ nfs-utils-1.1.4/utils/mount/fstab.c +@@ -57,7 +57,7 @@ mtab_does_not_exist(void) { + return var_mtab_does_not_exist; + } + +-static int ++int + mtab_is_a_symlink(void) { + get_mtab_info(); + return var_mtab_is_a_symlink; +--- nfs-utils-1.1.4/utils/mount/fstab.h ++++ nfs-utils-1.1.4/utils/mount/fstab.h +@@ -7,6 +7,7 @@ + #define _PATH_FSTAB "/etc/fstab" + #endif + ++int mtab_is_a_symlink(void); + int mtab_is_writable(void); + int mtab_does_not_exist(void); + void reset_mtab_info(void); +--- nfs-utils-1.1.4/utils/mount/mount.c ++++ nfs-utils-1.1.4/utils/mount/mount.c +@@ -230,6 +230,13 @@ create_mtab (void) { + int flags; + mntFILE *mfp; + ++ /* Avoid writing if the mtab is a symlink to /proc/mounts, since ++ that would create a file /proc/mounts in case the proc filesystem ++ is not mounted, and the fchmod below would also fail. */ ++ if (mtab_is_a_symlink()) { ++ return EX_SUCCESS; ++ } ++ + lock_mtab(); + + mfp = nfs_setmntent (MOUNTED, "a+"); diff --git a/testing/nfs-utils/nfs-utils-1.1.4-no-exec.patch b/testing/nfs-utils/nfs-utils-1.1.4-no-exec.patch new file mode 100644 index 000000000..ea50a21d8 --- /dev/null +++ b/testing/nfs-utils/nfs-utils-1.1.4-no-exec.patch @@ -0,0 +1,15 @@ +ripped from Debian + +--- nfs-utils-1.1.2/utils/mount/mount.c ++++ nfs-utils-1.1.2/utils/mount/mount.c +@@ -381,10 +381,6 @@ + mount_error(NULL, mount_point, ENOTDIR); + return 1; + } +- if (access(mount_point, X_OK) < 0) { +- mount_error(NULL, mount_point, errno); +- return 1; +- } + + return 0; + } diff --git a/testing/nfs-utils/nfs-utils-1.1.6-heimdal_functions.patch b/testing/nfs-utils/nfs-utils-1.1.6-heimdal_functions.patch new file mode 100644 index 000000000..7f6c7a751 --- /dev/null +++ b/testing/nfs-utils/nfs-utils-1.1.6-heimdal_functions.patch @@ -0,0 +1,69 @@ +diff -Naur nfs-utils-1.1.6.orig/utils/gssd/krb5_util.c nfs-utils-1.1.6/utils/gssd/krb5_util.c +--- utils/gssd/krb5_util.c 2009-04-20 19:32:50.000000000 +0200 ++++ utils/gssd/krb5_util.c 2009-04-20 20:57:31.000000000 +0200 +@@ -940,9 +940,37 @@ + { + krb5_error_code ret; + krb5_creds creds; +- krb5_cc_cursor cur; + int found = 0; + ++#ifdef HAVE_HEIMDAL ++ krb5_creds pattern; ++ krb5_realm *client_realm; ++ ++ krb5_cc_clear_mcred(&pattern); ++ ++ client_realm = krb5_princ_realm (context, principal); ++ ++ ret = krb5_make_principal (context, &pattern.server, ++ *client_realm, KRB5_TGS_NAME, *client_realm, ++ NULL); ++ if (ret) ++ krb5_err (context, 1, ret, "krb5_make_principal"); ++ pattern.client = principal; ++ ++ ret = krb5_cc_retrieve_cred (context, ccache, 0, &pattern, &creds); ++ krb5_free_principal (context, pattern.server); ++ if (ret) { ++ if (ret == KRB5_CC_END) ++ return 1; ++ krb5_err (context, 1, ret, "krb5_cc_retrieve_cred"); ++ } ++ ++ found = creds.times.endtime > time(NULL); ++ ++ krb5_free_cred_contents (context, &creds); ++#else ++ krb5_cc_cursor cur; ++ + ret = krb5_cc_start_seq_get(context, ccache, &cur); + if (ret) + return 0; +@@ -962,6 +990,7 @@ + krb5_free_cred_contents(context, &creds); + } + krb5_cc_end_seq_get(context, ccache, &cur); ++#endif + + return found; + } +@@ -1008,6 +1037,9 @@ + } + krb5_free_principal(context, principal); + err_princ: ++#ifdef HAVE_HEIMDAL ++#define KRB5_TC_OPENCLOSE 0x00000001 ++#endif + krb5_cc_set_flags(context, ccache, KRB5_TC_OPENCLOSE); + krb5_cc_close(context, ccache); + err_cache: +@@ -1262,7 +1294,7 @@ + if (context != NULL) { + origmsg = krb5_get_error_message(context, code); + msg = strdup(origmsg); +- krb5_free_error_message(context, origmsg); ++ krb5_free_error_string(context, origmsg); + } + #endif + if (msg != NULL) diff --git a/testing/nfs-utils/nfs-utils-1.1.6-no_libgssapi.patch b/testing/nfs-utils/nfs-utils-1.1.6-no_libgssapi.patch new file mode 100644 index 000000000..917136a8c --- /dev/null +++ b/testing/nfs-utils/nfs-utils-1.1.6-no_libgssapi.patch @@ -0,0 +1,57 @@ +Index: nfs-utils-1.1.6/utils/gssd/context_lucid.c +=================================================================== +--- nfs-utils-1.1.6.orig/utils/gssd/context_lucid.c ++++ nfs-utils-1.1.6/utils/gssd/context_lucid.c +@@ -51,8 +51,10 @@ + #include "context.h" + + #ifndef OM_uint64 ++#ifndef GSSAPI_GSSAPI_H_ + typedef uint64_t OM_uint64; + #endif ++#endif + + static int + write_lucid_keyblock(char **p, char *end, gss_krb5_lucid_key_t *key) +@@ -177,10 +179,10 @@ + int retcode = 0; + + printerr(2, "DEBUG: serialize_krb5_ctx: lucid version!\n"); +- maj_stat = gss_export_lucid_sec_context(&min_stat, &ctx, ++ maj_stat = gss_krb5_export_lucid_sec_context(&min_stat, &ctx, + 1, &return_ctx); + if (maj_stat != GSS_S_COMPLETE) { +- pgsserr("gss_export_lucid_sec_context", ++ pgsserr("gss_krb5_export_lucid_sec_context", + maj_stat, min_stat, &krb5oid); + goto out_err; + } +@@ -204,9 +206,9 @@ + else + retcode = prepare_krb5_rfc_cfx_buffer(lctx, buf, endtime); + +- maj_stat = gss_free_lucid_sec_context(&min_stat, ctx, return_ctx); ++ maj_stat = gss_krb5_free_lucid_sec_context(&min_stat, ctx); + if (maj_stat != GSS_S_COMPLETE) { +- pgsserr("gss_export_lucid_sec_context", ++ pgsserr("gss_krb5_export_lucid_sec_context", + maj_stat, min_stat, &krb5oid); + printerr(0, "WARN: failed to free lucid sec context\n"); + } +Index: nfs-utils-1.1.6/utils/gssd/krb5_util.c +=================================================================== +--- nfs-utils-1.1.6.orig/utils/gssd/krb5_util.c ++++ nfs-utils-1.1.6/utils/gssd/krb5_util.c +@@ -332,10 +332,10 @@ + return -1; + } + +- maj_stat = gss_set_allowable_enctypes(&min_stat, credh, &krb5oid, ++ maj_stat = gss_krb5_set_allowable_enctypes(&min_stat, credh, + num_enctypes, &enctypes); + if (maj_stat != GSS_S_COMPLETE) { +- pgsserr("gss_set_allowable_enctypes", ++ pgsserr("gss_krb5_set_allowable_enctypes", + maj_stat, min_stat, &krb5oid); + gss_release_cred(&min_stat, &credh); + return -1; diff --git a/testing/nfs-utils/nfs-utils.install b/testing/nfs-utils/nfs-utils.install new file mode 100644 index 000000000..7dcdf9575 --- /dev/null +++ b/testing/nfs-utils/nfs-utils.install @@ -0,0 +1,32 @@ +## arg 1: the new package version +post_install() { +cat << 'EOM' + ==> PLEASE NOTE: + ==> Extended configuration options for NFS (clients & server) are available in + ==> /etc/conf.d/nfs-common.conf and in /etc/conf.d/nfs-server.conf + ==> + ==> Please refer to http://wiki.archlinux.org/index.php/Nfs + ==> for further information on NFS; for NFSv4, refer to + ==> http://wiki.archlinux.org/index.php/NFSv4 +EOM +} + +## arg 1: the new package version +## arg 2: the old package version +post_upgrade() { + if [ "$(vercmp $2 1.2.0-2)" -lt 0 ]; then +cat << 'EOM' + ==> IMPORTANT NFS UTILS CHANGES: + ==> This is a rather important upgrade, you are going to have to change config files. + ==> /etc/rc.conf daemons changes: + ==> Change portmap to rpcbind + ==> Change nfslock to nfs-common + ==> Change nfsd to nfs-server + ==> + ==> Extended configuration options for NFS (clients & server) are available in: + ==> /etc/conf.d/nfs-common + ==> /etc/conf.d/nfs-server + ==> Please change them to your needs. +EOM + fi +} diff --git a/testing/nfs-utils/start-statd.patch b/testing/nfs-utils/start-statd.patch new file mode 100644 index 000000000..38c60a784 --- /dev/null +++ b/testing/nfs-utils/start-statd.patch @@ -0,0 +1,22 @@ +--- utils/statd/start-statd 2007-05-11 04:40:57.000000000 +0100 ++++ utils/statd/start-statd.new 2007-09-21 17:11:34.000000000 +0100 +@@ -1,9 +1,16 @@ +-#!/bin/sh -p ++#!/bin/sh ++ ++# Original script provided by the NFS project ++# Modified for Arch Linux by Tom Killian ++ + # nfsmount calls this script when mounting a filesystem with locking + # enabled, but when statd does not seem to be running (based on + # /var/run/rpc.statd.pid). + # It should run run statd with whatever flags are apropriate for this + # site. +-PATH=/sbin:/usr/sbin +-exec rpc.statd --no-notify ++ ++# source application-specific settings ++[ -f /etc/conf.d/nfs-common.conf ] && . /etc/conf.d/nfs-common.conf ++ ++exec /usr/sbin/rpc.statd $STATD_OPTS + diff --git a/testing/udev/PKGBUILD b/testing/udev/PKGBUILD index 59b827015..b5d4c9222 100644 --- a/testing/udev/PKGBUILD +++ b/testing/udev/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 131208 2011-07-11 21:32:31Z tomegun $ +# $Id: PKGBUILD 133994 2011-07-31 12:10:23Z tomegun $ # Maintainer: Aaron Griffin <aaron@archlinux.org> # Maintainer: Tobias Powalowski <tpowa@archlinux.org> # Maintainer: Thomas Bächler <thomas@archlinux.org> @@ -6,7 +6,7 @@ pkgbase="udev" pkgname=('udev' 'udev-compat') -pkgver=172 +pkgver=173 pkgrel=2 arch=(i686 x86_64) url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html" @@ -16,16 +16,17 @@ groups=('base') options=(!makeflags !libtool) makedepends=('glibc' 'coreutils' 'util-linux' 'pciutils' 'libusb-compat' 'glib2' 'kernel26' 'gperf' 'libxslt' 'gobject-introspection') source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/$pkgbase-$pkgver.tar.bz2 - static-node-permission.patch 81-arch.rules) build() { cd $srcdir/$pkgbase-$pkgver - # permissions on static /dev/fuse node (will be in udev-173) - patch -Np1 -i ../static-node-permission.patch - ./configure --sysconfdir=/etc --with-rootlibdir=/lib --libexecdir=/lib/udev\ - --sbindir=/sbin --with-systemdsystemunitdir=/lib/systemd/system\ - --disable-rule-generator + ./configure --sysconfdir=/etc\ + --with-rootlibdir=/lib\ + --libexecdir=/lib/udev\ + --sbindir=/sbin\ + --with-systemdsystemunitdir=/lib/systemd/system\ + --disable-rule-generator\ + --enable-udev_acl make } @@ -92,6 +93,5 @@ package_udev-compat() { # /dev/ppp mknod -m 0600 ${pkgdir}/lib/udev/devices/ppp c 108 0 } -md5sums=('bd122d04cf758441f498aad0169a454f' - '07e5b965d7e90988ea2f7ffb19a08ef7' +md5sums=('91a88a359b60bbd074b024883cc0dbde' 'ec529eb1ddaabb70c61b38f80bb8462a') diff --git a/testing/udev/udev.install b/testing/udev/udev.install index c3970fedd..272ab60c0 100644 --- a/testing/udev/udev.install +++ b/testing/udev/udev.install @@ -34,13 +34,15 @@ post_upgrade() { fi echo "Support for non-devtmpfs self-compiled kernels have been moved to udev-compat." echo " --" - echo "Blacklisting of framebuffer devices has moved from /etc/modprobe.d to /lib/modprobe.d" - echo "Any customizations shoud be done to the file in /etc, as it takes precedence." + echo "Blacklisting of framebuffer devices has moved from /etc/modprobe.d to" + echo "/lib/modprobe.d. Any customizations shoud be done to the file in /etc, as it" + echo "takes precedence." echo " --" echo "kbd and rtc devices are no longer world readable." echo " --" - echo "rtc is no longer in the audio group and fb devices are no longer in the video group" - echo "(permissions and ownership of fb devices are controlled by X)." + echo "rtc is no longer in the audio group and fb devices are no longer in" + echo "the video group, as permissions and ownership of fb devices are controlled" + echo "by X." echo "---------------" fi } diff --git a/testing/xf86-video-nouveau/PKGBUILD b/testing/xf86-video-nouveau/PKGBUILD index b4e5d96df..1f5a83097 100644 --- a/testing/xf86-video-nouveau/PKGBUILD +++ b/testing/xf86-video-nouveau/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 131016 2011-07-09 14:00:30Z ibiru $ +# $Id: PKGBUILD 132822 2011-07-26 12:31:08Z ibiru $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> # Contributor: buddabrod <buddabrod@gmail.com> pkgname=xf86-video-nouveau -_gitdate=20110709 +_gitdate=20110726 pkgver=0.0.16_git${_gitdate} # see configure.ac pkgrel=1 pkgdesc="Open Source 3D acceleration driver for nVidia cards (experimental)" @@ -17,7 +17,7 @@ conflicts=('xorg-server<1.10.0') options=('!libtool') install=${pkgname}.install source=(ftp://ftp.archlinux.org/other/$pkgname/xf86-video-nouveau-${_gitdate}.tar.bz2) -md5sums=('0b2ae81e397d14c8ab1d2338d194c705') +md5sums=('8af188f6c2c90dfca3427809cd8fb76f') # source PKGBUILD && mksource mksource() { |