diff options
author | root <root@rshg047.dnsready.net> | 2011-06-03 22:47:36 +0000 |
---|---|---|
committer | root <root@rshg047.dnsready.net> | 2011-06-03 22:47:36 +0000 |
commit | 805d577f46f94e747f712b7c942f595cd8f7e170 (patch) | |
tree | 9a708cc4fdc41336d9747a861d194b6c98caa5e4 | |
parent | 2d8c4c44185a682290ccde4d23132ae3acf01678 (diff) |
Fri Jun 3 22:47:36 UTC 2011
34 files changed, 1445 insertions, 75 deletions
diff --git a/community-testing/perl-digest-md5/PKGBUILD b/community-testing/perl-digest-md5/PKGBUILD new file mode 100644 index 000000000..c0d7a1512 --- /dev/null +++ b/community-testing/perl-digest-md5/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 48561 2011-06-02 06:48:37Z spupykin $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: Ashok `ScriptDevil` Gautham <ScriptDevil@gmail.com> + +pkgname=perl-digest-md5 +pkgver=2.51 +pkgrel=2 +pkgdesc="Digest::MD5::Perl - Perl implementation of Ron Rivests MD5 Algorithm" +arch=('i686' 'x86_64') +url="http://search.cpan.org/dist/Digest-MD5" +license=('GPL' 'PerlArtistic') +depends=('perl>=5.10.0') +options=(!emptydirs) +source=(http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-MD5-$pkgver.tar.gz) +md5sums=('73967d50b9d19990a1d609fe2b1e36c3') + +build() { + cd "$srcdir/Digest-MD5-$pkgver" + # install module in vendor directories. + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +package() { + cd "$srcdir/Digest-MD5-$pkgver" + make install DESTDIR="$pkgdir/" + # remove perllocal.pod and .packlist + find "$pkgdir" -name perllocal.pod -delete + find "$pkgdir" -name .packlist -delete +} diff --git a/community/qbittorrent/PKGBUILD b/community/qbittorrent/PKGBUILD index ae549bae2..532fc9413 100644 --- a/community/qbittorrent/PKGBUILD +++ b/community/qbittorrent/PKGBUILD @@ -3,8 +3,8 @@ # Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr> pkgname=qbittorrent -pkgver=2.7.3 -pkgrel=2 +pkgver=2.8.0 +pkgrel=1 pkgdesc="A bittorrent client written in C++ / Qt4 using the good libtorrent library" arch=('i686' 'x86_64') url="http://www.qbittorrent.org/" @@ -14,13 +14,13 @@ makedepends=('boost' 'geoip') optdepends=('python2: needed for search' 'geoip: improves peer country resolution') install='qbittorrent.install' -source=("http://downloads.sourceforge.net/sourceforge/qbittorrent/${pkgname}-${pkgver}.tar.gz" +source=("http://downloads.sourceforge.net/sourceforge/qbittorrent/qbittorrent-${pkgver}.tar.gz" 'python2.patch') -md5sums=('ff1b294133f8dadc781c8f0df50d248d' +md5sums=('6337b679b40f56fdd2dd49d795fd5405' 'db0d79fee8ce3470ad3741d36b02a94c') build() { - cd ${pkgname}-${pkgver} + cd qbittorrent-${pkgver} sed -i \ -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \ @@ -36,7 +36,7 @@ build() { } package() { - cd ${pkgname}-${pkgver} + cd qbittorrent-${pkgver} make INSTALL_ROOT=${pkgdir} install } diff --git a/community/tracker/PKGBUILD b/community/tracker/PKGBUILD index 06a025799..b1a015466 100644 --- a/community/tracker/PKGBUILD +++ b/community/tracker/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 46713 2011-05-10 20:40:42Z spupykin $ +# $Id: PKGBUILD 48573 2011-06-02 16:37:10Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: Alexander Fehr <pizzapunk gmail com> pkgname=tracker -pkgver=0.10.10 -pkgrel=2 +pkgver=0.10.15 +pkgrel=1 pkgdesc="Powerful object database, tag/metadata database, search tool and indexer" arch=('i686' 'x86_64') url="http://www.gnome.org/projects/tracker/" license=('GPL') depends=('upower' 'poppler-glib' 'gstreamer0.10-base' 'libgee' 'gnome-desktop' 'libnotify' 'xdg-utils' 'gtkhtml' 'libgsf' 'gnome-panel-bonobo' 'exempi' 'networkmanager') -makedepends=('intltool' 'gnome-panel' 'nautilus' 'evolution' 'totem-plparser') +makedepends=('intltool' 'gnome-panel' 'nautilus' 'evolution' 'totem-plparser' 'icu') optdepends=('nautilus' 'enca' 'gtkhtml' @@ -25,7 +25,7 @@ conflicts=('libtracker') provides=("libtracker") install=tracker.install source=(http://ftp.gnome.org/pub/GNOME/sources/tracker/0.10/tracker-$pkgver.tar.bz2) -md5sums=('57f475814cfbf9b2e6bf9e5202ec85fc') +md5sums=('c948ef3988b08e81cad3ff980b17a0fd') build() { cd "$srcdir/$pkgname-$pkgver" @@ -40,6 +40,7 @@ build() { ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/$pkgname \ --enable-video-extractor=gstreamer --disable-unac --disable-hal \ --disable-devkit-power --disable-miner-evolution + touch docs/manpages/tracker-search-bar.1 make } diff --git a/core/cryptsetup/PKGBUILD b/core/cryptsetup/PKGBUILD index 0da5b0175..15d191ead 100644 --- a/core/cryptsetup/PKGBUILD +++ b/core/cryptsetup/PKGBUILD @@ -1,22 +1,22 @@ -# $Id: PKGBUILD 123894 2011-05-14 09:00:27Z thomas $ +# $Id: PKGBUILD 125738 2011-05-28 17:14:11Z thomas $ # Maintainer: Thomas Bächler <thomas@archlinux.org> pkgname=cryptsetup -pkgver=1.3.0 +pkgver=1.3.1 pkgrel=1 pkgdesc="Userspace setup tool for transparent encryption of block devices using the Linux 2.6 cryptoapi" arch=(i686 x86_64) license=('GPL') url="http://code.google.com/p/cryptsetup/" groups=('base') -depends=('device-mapper' 'libgcrypt' 'popt') +depends=('device-mapper>=2.02.85-2' 'libgcrypt' 'popt') conflicts=('mkinitcpio<0.5.99') options=('!libtool' '!emptydirs') source=(http://cryptsetup.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2 encrypt_hook encrypt_install) -sha256sums=('c675059a25061851dcaf9732a2118d75585097c8fbb3985026526988e8d76394' +sha256sums=('7ceb18a0c91fa1546077b41b93463dd2ec9d7f83e6fd93757fb84cc608206a6a' '64601eae6fbf3e3afceccec5877557aa208a82497c33cc94ad0a686b4022b5dc' - '8e4920bb4b5ce96508aa0c42b9b07326b70daf630519f1aa1d8082bca709c12a') + '07918fc349b3a7c4a73e8ad1cc3d97a2a79ebc7655090ab9ebb00b1e092c85aa') build() { cd $srcdir/$pkgname-${pkgver} diff --git a/core/cryptsetup/encrypt_install b/core/cryptsetup/encrypt_install index 9446e6864..25a2ae45c 100644 --- a/core/cryptsetup/encrypt_install +++ b/core/cryptsetup/encrypt_install @@ -16,6 +16,7 @@ install () add_file "/lib/udev/rules.d/10-dm.rules" add_file "/lib/udev/rules.d/13-dm-disk.rules" add_file "/lib/udev/rules.d/95-dm-notify.rules" + add_file "/lib/initcpio/udev/11-dm-initramfs.rules" "/lib/udev/rules.d/11-dm-initramfs.rules" } help () diff --git a/core/lvm2/11-dm-initramfs.rules b/core/lvm2/11-dm-initramfs.rules new file mode 100644 index 000000000..d2c167324 --- /dev/null +++ b/core/lvm2/11-dm-initramfs.rules @@ -0,0 +1,3 @@ +# needed with new udev/mkinitcpio and as implemented in dracut: +# <http://git.kernel.org/?p=boot/dracut/dracut.git;a=commitdiff;h=12b9736228f2b34c15a9cb63be79cf7b6e865b54> +SUBSYSTEM=="block", KERNEL=="dm-[0-9]*", ACTION=="add|change", OPTIONS="db_persist" diff --git a/core/lvm2/PKGBUILD b/core/lvm2/PKGBUILD index e7129b765..39e3b4561 100644 --- a/core/lvm2/PKGBUILD +++ b/core/lvm2/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 123786 2011-05-13 00:53:49Z eric $ +# $Id: PKGBUILD 125735 2011-05-28 17:12:36Z thomas $ # Maintainer: Eric Bélanger <eric@archlinux.org> # Maintainer: Thomas Bächler <thomas@archlinux.org> @@ -6,7 +6,7 @@ pkgbase=lvm2 pkgname=('lvm2' 'device-mapper') pkgver=2.02.85 _pkgverlvm=${pkgver} -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') url="http://sourceware.org/lvm2/" license=('GPL2' 'LGPL2.1') @@ -15,15 +15,18 @@ conflicts=('mkinitcpio<0.5.99') source=(ftp://sources.redhat.com/pub/lvm2/LVM2.${_pkgverlvm}.tgz lvm2_install lvm2_hook - Be-quiet-on-removing-cache-on-read-only-fs.diff) + Be-quiet-on-removing-cache-on-read-only-fs.diff + 11-dm-initramfs.rules) md5sums=('91785ca438e5ce679dd3a386b183d552' - 'e29bc80d636ed17b617d9b384a5f3aa0' + '9fbe01c6e3fca4634b4a38ecdc2f562f' 'cf05f2c7281e24269ea9dcc6b4e106ba' - '6db89da27928d2415a8e26cd0a842712') + '6db89da27928d2415a8e26cd0a842712' + '69e40679cd8b3658bfc619e48baae125') sha1sums=('43ba2a3be84b2e897ae6b47b0b0be7e212216be7' - '662fc54ce291fd79bd09701e4c3e10854f325282' + '3f11db76189bcbc32d6b16a1b05ca3499e3e7b47' '1cd20e8fbad6fd7d5c0f54e831fbf58ae564b440' - '6d7dd04be291d7537235704c816a701fd5beacc0') + '6d7dd04be291d7537235704c816a701fd5beacc0' + 'f6a554eea9557c3c236df2943bb6e7e723945c41') build() { cd "${srcdir}/LVM2.${_pkgverlvm}" @@ -44,6 +47,8 @@ package_device-mapper() { cd "${srcdir}/LVM2.${_pkgverlvm}" make DESTDIR="${pkgdir}" install_device-mapper + # extra udev rule for device-mapper in initramfs + install -D -m644 "${srcdir}/11-dm-initramfs.rules" "${pkgdir}/lib/initcpio/udev/11-dm-initramfs.rules" } package_lvm2() { diff --git a/core/lvm2/lvm2_install b/core/lvm2/lvm2_install index 0c01ce69c..0df69f81b 100644 --- a/core/lvm2/lvm2_install +++ b/core/lvm2/lvm2_install @@ -14,6 +14,7 @@ install () add_file "/lib/udev/rules.d/13-dm-disk.rules" add_file "/lib/udev/rules.d/95-dm-notify.rules" add_file "/lib/udev/rules.d/11-dm-lvm.rules" + add_file "/lib/initcpio/udev/11-dm-initramfs.rules" "/lib/udev/rules.d/11-dm-initramfs.rules" } help () diff --git a/extra/kwebkitpart/PKGBUILD b/extra/kwebkitpart/PKGBUILD index aac2684cc..3472e71a8 100644 --- a/extra/kwebkitpart/PKGBUILD +++ b/extra/kwebkitpart/PKGBUILD @@ -1,30 +1,30 @@ -# $Id: PKGBUILD 112728 2011-03-06 12:19:29Z andrea $ +# $Id: PKGBUILD 126252 2011-06-02 23:08:29Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgname=kwebkitpart -pkgver=1.1 +pkgver=1.1.1 pkgrel=1 pkgdesc="A web browser component for KDE" url="http://opendesktop.org/content/show.php?content=127960" arch=('i686' 'x86_64') -license=('GPL') +license=('LGPL') depends=('kdebase-runtime') makedepends=('cmake' 'automoc4') install=${pkgname}.install -source=("ftp://ftp.archlinux.org/other/kde/${pkgname}-${pkgver}.tar.bz2") -md5sums=('1a72499b91d668409ed8ea8e5e71b398') +source=("${pkgname}-${pkgver}.tar.bz2"::"http://quickgit.kde.org/?p=${pkgname}.git&a=snapshot&h=37bddda24735bb8eb2d9e324f983b8e84a45503e&fmt=tbz2") +md5sums=('54c1fbb77f4a3c021b33a52a503fec8e') build() { - cd ${srcdir} + cd "${srcdir}" mkdir build cd build - cmake ../${pkgname}-${pkgver} \ + cmake ../${pkgname} \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release make } package() { - cd ${srcdir}/build - make DESTDIR=${pkgdir} install + cd "${srcdir}"/build + make DESTDIR="${pkgdir}" install } diff --git a/extra/strigi/PKGBUILD b/extra/strigi/PKGBUILD index cad570d70..4545d82b8 100644 --- a/extra/strigi/PKGBUILD +++ b/extra/strigi/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 118083 2011-04-05 10:45:28Z andrea $ +# $Id: PKGBUILD 126247 2011-06-02 22:55:44Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Tobias Powalowski <tpowa@archlinux.org> pkgname=strigi -pkgver=git20110405 +pkgver=0.7.5 pkgrel=1 pkgdesc="Fast crawling desktop search engine with Qt4 GUI" arch=('i686' 'x86_64') @@ -11,8 +11,8 @@ url="http://www.vandenoever.info/software/strigi/" license=('GPL2') depends=('qt' 'clucene' 'bzip2' 'exiv2' 'libxml2') makedepends=('cmake' 'pkg-config') -source=("ftp://ftp.archlinux.org/other/kde/${pkgname}-${pkgver}.tar.bz2") -md5sums=('dcc88c925c5ad264429ba841cab19b65') +source=("http://www.vandenoever.info/software/${pkgname}/${pkgname}-${pkgver}.tar.bz2") +md5sums=('0559e2ab65d187d30916e9ffe36e0fb6') options=('!libtool') build() { diff --git a/extra/subversion/PKGBUILD b/extra/subversion/PKGBUILD index 0f9c0a70a..e4d352797 100644 --- a/extra/subversion/PKGBUILD +++ b/extra/subversion/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 121110 2011-04-29 01:29:30Z stephane $ +# $Id: PKGBUILD 126235 2011-06-02 19:57:23Z stephane $ # Maintainer: Paul Mattal <paul@archlinux.org> # Contributor: Jason Chu <jason@archlinux.org> pkgname=subversion -pkgver=1.6.15 +pkgver=1.6.17 pkgrel=2 pkgdesc="Replacement for CVS, another versioning system (SVN)" arch=('i686' 'x86_64') @@ -14,7 +14,7 @@ makedepends=('krb5' 'apache' 'python2' 'perl' 'swig' 'ruby' 'java-runtime' source=(http://subversion.tigris.org/downloads/$pkgname-$pkgver.tar.bz2 svnserve svn svnserve.conf svnmerge.py subversion.rpath.fix.patch - subversion.suppress.deprecation.warnings.patch) + subversion.suppress.deprecation.warnings.patch) backup=('etc/xinetd.d/svn' 'etc/conf.d/svnserve') url="http://subversion.apache.org/" @@ -23,13 +23,13 @@ options=('!makeflags' '!libtool') optdepends=('libgnome-keyring' 'kdeutils-kwallet' 'bash-completion: for svn bash completion') build() { - cd ${srcdir}/${pkgname}-${pkgver} + cd "${srcdir}/${pkgname}-${pkgver}" export PYTHON=/usr/bin/python2 # apply patches - patch -p0 < $srcdir/subversion.rpath.fix.patch - patch -p1 -i $srcdir/subversion.suppress.deprecation.warnings.patch + patch -Np0 -i ../subversion.rpath.fix.patch + patch -Np1 -i ../subversion.suppress.deprecation.warnings.patch # configure autoreconf @@ -42,8 +42,14 @@ build() { (make external-all && make LT_LDFLAGS="-L$Fdestdir/usr/lib" local-all ) } +#check() { +# cd "${srcdir}/${pkgname}-${pkgver}" +# export LANG=C LC_ALL=C +# make check check-swig-pl check-swig-py CLEANUP=yes +#} + package() { - cd ${srcdir}/${pkgname}-${pkgver} + cd "${srcdir}/${pkgname}-${pkgver}" # install export LD_LIBRARY_PATH=${pkgdir}/usr/lib:$LD_LIBRARY_PATH @@ -83,7 +89,7 @@ package() { install -Dm 644 ${srcdir}/${pkgname}-${pkgver}/tools/client-side/bash_completion \ ${pkgdir}/etc/bash_completion.d/subversion } -md5sums=('113fca1d9e4aa389d7dc2b210010fa69' +md5sums=('81e5dc5beee4b3fc025ac70c0b6caa14' 'a2b029e8385007ffb99b437b30521c90' 'a0db6dd43af33952739b6ec089852630' 'c459e299192552f61578f3438abf0664' diff --git a/extra/v4l-utils/PKGBUILD b/extra/v4l-utils/PKGBUILD index 1ce0f052a..6cf58ac50 100644 --- a/extra/v4l-utils/PKGBUILD +++ b/extra/v4l-utils/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 125773 2011-05-29 13:34:22Z thomas $ +# $Id: PKGBUILD 126185 2011-06-02 11:28:46Z thomas $ # Maintainer: Thomas Bächler <thomas@archlinux.org> pkgname=v4l-utils -pkgver=0.8.3 -pkgrel=2 +pkgver=0.8.4 +pkgrel=1 pkgdesc="Userspace tools and conversion library for Video 4 Linux" arch=('i686' 'x86_64') url="http://freshmeat.net/projects/libv4l" @@ -12,9 +12,9 @@ conflicts=('libv4l') license=('LGPL') makedepends=('qt') optdepends=('qt') -depends=('glibc' 'gcc-libs' 'sysfsutils') +depends=('glibc' 'gcc-libs' 'sysfsutils' 'libjpeg-turbo') source=(http://linuxtv.org/downloads/v4l-utils/${pkgname}-${pkgver}.tar.bz2) -sha256sums=('525ebed7ef6e0f6a4bb68fe10403a3725eb1ec31a4c557c68256079b00e283b5') +sha256sums=('20bf73b0c2255dfc6ae82806ec8a663e00ab039df9ee6eadae633466841c0dd7') build() { cd "${srcdir}/${pkgname}-${pkgver}" @@ -28,7 +28,4 @@ package() { cd "${srcdir}/${pkgname}-${pkgver}" make install PREFIX="/usr" DESTDIR="${pkgdir}/" rm -f "${pkgdir}/usr/bin/ivtv-ctl" - # Fix udev rule location - mkdir -p "${pkgdir}/lib" - mv "${pkgdir}/etc/udev" "${pkgdir}/lib" } diff --git a/extra/zsh/PKGBUILD b/extra/zsh/PKGBUILD index 64a547515..0f80af66a 100644 --- a/extra/zsh/PKGBUILD +++ b/extra/zsh/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 114633 2011-03-14 21:00:40Z pierre $ +# $Id: PKGBUILD 126178 2011-06-02 11:13:57Z pierre $ # Maintainer: Pierre Schmitz <pierre@archlinux.de> pkgname=zsh -pkgver=4.3.11 -pkgrel=2 +pkgver=4.3.12 +pkgrel=1 pkgdesc='A very advanced and programmable command interpreter (shell) for UNIX' arch=('i686' 'x86_64') url='http://www.zsh.org/' @@ -11,7 +11,7 @@ license=('custom') depends=('pcre' 'libcap' 'gdbm') install=zsh.install source=("ftp://ftp.zsh.org/pub/${pkgname}-${pkgver}.tar.bz2") -md5sums=('3225c7f53b69f395e95723585d6785ed') +md5sums=('7a82c0bf0635e046ca4e9ec1bdef3811') build() { cd "${srcdir}/${pkgname}-${pkgver}" @@ -32,6 +32,8 @@ build() { --with-term-lib='ncursesw' \ --enable-multibyte \ --enable-function-subdirs \ + --enable-fndir=/usr/share/zsh/functions \ + --enable-scriptdir=/usr/share/zsh/scripts \ --with-tcsetpgrp \ --enable-pcre \ --enable-cap \ @@ -39,6 +41,13 @@ build() { make } +check() { + cd "${srcdir}/${pkgname}-${pkgver}" + # This test wont work with the noatime mount option + rm Test/C02cond.ztst + HOME="${srcdir}" make check +} + package() { cd "${srcdir}/${pkgname}-${pkgver}" make DESTDIR="${pkgdir}/" install diff --git a/multilib/lib32-glew/PKGBUILD b/multilib/lib32-glew/PKGBUILD index ca8a47eaf..3726fbbe8 100644 --- a/multilib/lib32-glew/PKGBUILD +++ b/multilib/lib32-glew/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 39623 2011-02-13 10:47:57Z bluewind $ +# $Id: PKGBUILD 48564 2011-06-02 12:21:22Z bluewind $ # Maintainer: Florian Pritz <flo@xinu.at> _pkgbasename=glew pkgname=lib32-$_pkgbasename -pkgver=1.5.8 -pkgrel=2 +pkgver=1.6.0 +pkgrel=1 pkgdesc="A cross-platform C/C++ extension loading library (32 bit)" arch=('x86_64') url="http://glew.sourceforge.net" @@ -12,8 +12,8 @@ license=('BSD' 'MIT' 'GPL') depends=('lib32-libxmu' 'lib32-libxi' 'lib32-mesa' "$_pkgbasename>=$pkgver") makedepends=('gcc-multilib') source=(http://downloads.sourceforge.net/${_pkgbasename}/${_pkgbasename}-${pkgver}.tgz) -md5sums=('342c8dc64fb9daa6af245b132e086bdd') -sha1sums=('450946935faa20ac4950cb42ff025be2c1f7c22e') +md5sums=('7dfbb444b5a4e125bc5dba0aef403082') +sha1sums=('ed555d15d0f01239b262c4cf803e97d60d8a18b6') build() { cd "${srcdir}/${_pkgbasename}-${pkgver}" @@ -28,7 +28,7 @@ package() { make GLEW_DEST="${pkgdir}/usr" install chmod 0755 "${pkgdir}/usr/lib32/libGLEW.so.${pkgver}" - rm -rf "${pkgdir}"/usr/{include,bin,lib32/libGLEW.a} + rm -rf "${pkgdir}"/usr/{include,bin} mkdir -p "$pkgdir/usr/share/licenses" ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname" } diff --git a/testing/coreutils/PKGBUILD b/testing/coreutils/PKGBUILD new file mode 100644 index 000000000..8fdbe0149 --- /dev/null +++ b/testing/coreutils/PKGBUILD @@ -0,0 +1,69 @@ +# $Id: PKGBUILD 126199 2011-06-02 14:37:57Z bisson $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Contributor: judd <jvinet@zeroflux.org> + +pkgname=coreutils +pkgver=8.12 +pkgrel=2 +pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system" +arch=('i686' 'x86_64') +license=('GPL3') +url="http://www.gnu.org/software/coreutils" +groups=('base') +depends=('glibc' 'shadow' 'pam' 'acl' 'gmp' 'libcap') +replaces=('mktemp') +backup=('etc/pam.d/su') +install=${pkgname}.install +options=('!emptydirs') +source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz + coreutils-uname.patch + coreutils-pam.patch + su.pam) +md5sums=('0f7d43c2d2e24314b43a6c6267e25b90' + 'c4fcca138b6abf6d443d48a6f0cd8833' + 'aad79a2aa6d566c375d7bdd1b0767278' + 'fa85e5cce5d723275b14365ba71a8aad') + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + + # added su wheel group pam patch (from fedora git) + patch -Np1 -i ${srcdir}/coreutils-pam.patch + + # linux specific uname improvement (from gentoo portage) + patch -Np1 -i ${srcdir}/coreutils-uname.patch + + autoreconf -v + ./configure --prefix=/usr \ + --enable-install-program=su,hostname \ + --enable-no-install-program=groups,kill,uptime \ + --enable-pam + make +} + +check() { + cd ${srcdir}/${pkgname}-${pkgver} + make RUN_EXPENSIVE_TESTS=yes check +} + +package() { + cd ${srcdir}/${pkgname}-${pkgver} + make DESTDIR=${pkgdir} install + + cd ${pkgdir}/usr/bin + install -dm755 ${pkgdir}/{bin,usr/sbin} + + # binaries required by FHS + _fhs="cat chgrp chmod chown cp date dd df echo false hostname \ + ln ls mkdir mknod mv pwd rm rmdir stty su sync true uname" + mv ${_fhs} ${pkgdir}/bin + + # binaries required by various Arch scripts + _bin="cut dir dircolors du install mkfifo readlink shred \ + sleep touch tr vdir" + mv ${_bin} ${pkgdir}/bin + ln -sf /bin/sleep ${pkgdir}/usr/bin/sleep + + mv chroot ${pkgdir}/usr/sbin + install -Dm644 ${srcdir}/su.pam ${pkgdir}/etc/pam.d/su +} diff --git a/testing/coreutils/coreutils-pam.patch b/testing/coreutils/coreutils-pam.patch new file mode 100644 index 000000000..e61908f3f --- /dev/null +++ b/testing/coreutils/coreutils-pam.patch @@ -0,0 +1,428 @@ +diff -urNp coreutils-8.4-orig/configure.ac coreutils-8.4/configure.ac +--- coreutils-8.4-orig/configure.ac 2010-01-11 18:20:42.000000000 +0100 ++++ coreutils-8.4/configure.ac 2010-02-12 10:17:46.000000000 +0100 +@@ -126,6 +126,13 @@ if test "$gl_gcc_warnings" = yes; then + AC_SUBST([GNULIB_WARN_CFLAGS]) + fi + ++dnl Give the chance to enable PAM ++AC_ARG_ENABLE(pam, dnl ++[ --enable-pam Enable use of the PAM libraries], ++[AC_DEFINE(USE_PAM, 1, [Define if you want to use PAM]) ++LIB_PAM="-ldl -lpam -lpam_misc" ++AC_SUBST(LIB_PAM)]) ++ + AC_FUNC_FORK + + optional_bin_progs= +diff -urNp coreutils-8.4-orig/doc/coreutils.texi coreutils-8.4/doc/coreutils.texi +--- coreutils-8.4-orig/doc/coreutils.texi 2010-01-03 18:06:20.000000000 +0100 ++++ coreutils-8.4/doc/coreutils.texi 2010-02-12 10:17:46.000000000 +0100 +@@ -15081,8 +15081,11 @@ to certain shells, etc.). + @findex syslog + @command{su} can optionally be compiled to use @code{syslog} to report + failed, and optionally successful, @command{su} attempts. (If the system +-supports @code{syslog}.) However, GNU @command{su} does not check if the +-user is a member of the @code{wheel} group; see below. ++supports @code{syslog}.) ++ ++This version of @command{su} has support for using PAM for ++authentication. You can edit @file{/etc/pam.d/su} to customize its ++behaviour. + + The program accepts the following options. Also see @ref{Common options}. + +@@ -15124,6 +15127,8 @@ environment variables except @env{TERM}, + @env{PATH} to a compiled-in default value. Change to @var{user}'s home + directory. Prepend @samp{-} to the shell's name, intended to make it + read its login startup file(s). ++Additionaly @env{DISPLAY} and @env{XAUTHORITY} environment variables ++are preserved as well for PAM functionality. + + @item -m + @itemx -p +@@ -15163,33 +15168,6 @@ Exit status: + the exit status of the subshell otherwise + @end display + +-@cindex wheel group, not supported +-@cindex group wheel, not supported +-@cindex fascism +-@subsection Why GNU @command{su} does not support the @samp{wheel} group +- +-(This section is by Richard Stallman.) +- +-@cindex Twenex +-@cindex MIT AI lab +-Sometimes a few of the users try to hold total power over all the +-rest. For example, in 1984, a few users at the MIT AI lab decided to +-seize power by changing the operator password on the Twenex system and +-keeping it secret from everyone else. (I was able to thwart this coup +-and give power back to the users by patching the kernel, but I +-wouldn't know how to do that in Unix.) +- +-However, occasionally the rulers do tell someone. Under the usual +-@command{su} mechanism, once someone learns the root password who +-sympathizes with the ordinary users, he or she can tell the rest. The +-``wheel group'' feature would make this impossible, and thus cement the +-power of the rulers. +- +-I'm on the side of the masses, not that of the rulers. If you are +-used to supporting the bosses and sysadmins in whatever they do, you +-might find this idea strange at first. +- +- + @node timeout invocation + @section @command{timeout}: Run a command with a time limit + +diff -urNp coreutils-8.4-orig/src/Makefile.am coreutils-8.4/src/Makefile.am +--- coreutils-8.4-orig/src/Makefile.am 2010-01-03 18:06:20.000000000 +0100 ++++ coreutils-8.4/src/Makefile.am 2010-02-12 10:17:46.000000000 +0100 +@@ -361,7 +361,7 @@ factor_LDADD += $(LIB_GMP) + uptime_LDADD += $(GETLOADAVG_LIBS) + + # for crypt +-su_LDADD += $(LIB_CRYPT) ++su_LDADD += $(LIB_CRYPT) @LIB_PAM@ + + # for various ACL functions + copy_LDADD += $(LIB_ACL) +diff -urNp coreutils-8.4-orig/src/su.c coreutils-8.4/src/su.c +--- coreutils-8.4-orig/src/su.c 2010-02-12 10:15:15.000000000 +0100 ++++ coreutils-8.4/src/su.c 2010-02-12 10:24:29.000000000 +0100 +@@ -37,6 +37,16 @@ + restricts who can su to UID 0 accounts. RMS considers that to + be fascist. + ++#ifdef USE_PAM ++ ++ Actually, with PAM, su has nothing to do with whether or not a ++ wheel group is enforced by su. RMS tries to restrict your access ++ to a su which implements the wheel group, but PAM considers that ++ to be fascist, and gives the user/sysadmin the opportunity to ++ enforce a wheel group by proper editing of /etc/pam.conf ++ ++#endif ++ + Compile-time options: + -DSYSLOG_SUCCESS Log successful su's (by default, to root) with syslog. + -DSYSLOG_FAILURE Log failed su's (by default, to root) with syslog. +@@ -53,6 +63,15 @@ + #include <pwd.h> + #include <grp.h> + ++#ifdef USE_PAM ++# include <signal.h> ++# include <sys/wait.h> ++# include <sys/fsuid.h> ++# include <unistd.h> ++# include <security/pam_appl.h> ++# include <security/pam_misc.h> ++#endif /* USE_PAM */ ++ + #include "system.h" + #include "getpass.h" + +@@ -120,10 +139,17 @@ + /* The user to become if none is specified. */ + #define DEFAULT_USER "root" + ++#ifndef USE_PAM + char *crypt (char const *key, char const *salt); ++#endif + +-static void run_shell (char const *, char const *, char **, size_t) ++static void run_shell (char const *, char const *, char **, size_t, ++ const struct passwd *) ++#ifdef USE_PAM ++ ; ++#else + ATTRIBUTE_NORETURN; ++#endif + + /* If true, pass the `-f' option to the subshell. */ + static bool fast_startup; +@@ -209,7 +235,26 @@ log_su (struct passwd const *pw, bool su + } + #endif + ++#ifdef USE_PAM ++static pam_handle_t *pamh = NULL; ++static int retval; ++static struct pam_conv conv = { ++ misc_conv, ++ NULL ++}; ++ ++#define PAM_BAIL_P if (retval) { \ ++ pam_end(pamh, PAM_SUCCESS); \ ++ return 0; \ ++} ++#define PAM_BAIL_P_VOID if (retval) { \ ++ pam_end(pamh, PAM_SUCCESS); \ ++return; \ ++} ++#endif ++ + /* Ask the user for a password. ++ If PAM is in use, let PAM ask for the password if necessary. + Return true if the user gives the correct password for entry PW, + false if not. Return true without asking for a password if run by UID 0 + or if PW has an empty password. */ +@@ -217,6 +262,44 @@ log_su (struct passwd const *pw, bool su + static bool + correct_password (const struct passwd *pw) + { ++#ifdef USE_PAM ++ struct passwd *caller; ++ char *tty_name, *ttyn; ++ retval = pam_start(PROGRAM_NAME, pw->pw_name, &conv, &pamh); ++ PAM_BAIL_P; ++ ++ if (getuid() != 0 && !isatty(0)) { ++ fprintf(stderr, "standard in must be a tty\n"); ++ exit(1); ++ } ++ ++ caller = getpwuid(getuid()); ++ if(caller != NULL && caller->pw_name != NULL) { ++ retval = pam_set_item(pamh, PAM_RUSER, caller->pw_name); ++ PAM_BAIL_P; ++ } ++ ++ ttyn = ttyname(0); ++ if (ttyn) { ++ if (strncmp(ttyn, "/dev/", 5) == 0) ++ tty_name = ttyn+5; ++ else ++ tty_name = ttyn; ++ retval = pam_set_item(pamh, PAM_TTY, tty_name); ++ PAM_BAIL_P; ++ } ++ retval = pam_authenticate(pamh, 0); ++ PAM_BAIL_P; ++ retval = pam_acct_mgmt(pamh, 0); ++ if (retval == PAM_NEW_AUTHTOK_REQD) { ++ /* password has expired. Offer option to change it. */ ++ retval = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK); ++ PAM_BAIL_P; ++ } ++ PAM_BAIL_P; ++ /* must be authenticated if this point was reached */ ++ return 1; ++#else /* !USE_PAM */ + char *unencrypted, *encrypted, *correct; + #if HAVE_GETSPNAM && HAVE_STRUCT_SPWD_SP_PWDP + /* Shadow passwd stuff for SVR3 and maybe other systems. */ +@@ -241,6 +324,7 @@ correct_password (const struct passwd *p + encrypted = crypt (unencrypted, correct); + memset (unencrypted, 0, strlen (unencrypted)); + return STREQ (encrypted, correct); ++#endif /* !USE_PAM */ + } + + /* Update `environ' for the new shell based on PW, with SHELL being +@@ -254,12 +338,18 @@ modify_environment (const struct passwd + /* Leave TERM unchanged. Set HOME, SHELL, USER, LOGNAME, PATH. + Unset all other environment variables. */ + char const *term = getenv ("TERM"); ++ char const *display = getenv ("DISPLAY"); ++ char const *xauthority = getenv ("XAUTHORITY"); + if (term) + term = xstrdup (term); + environ = xmalloc ((6 + !!term) * sizeof (char *)); + environ[0] = NULL; + if (term) + xsetenv ("TERM", term); ++ if (display) ++ xsetenv ("DISPLAY", display); ++ if (xauthority) ++ xsetenv ("XAUTHORITY", xauthority); + xsetenv ("HOME", pw->pw_dir); + xsetenv ("SHELL", shell); + xsetenv ("USER", pw->pw_name); +@@ -292,8 +382,13 @@ change_identity (const struct passwd *pw + { + #ifdef HAVE_INITGROUPS + errno = 0; +- if (initgroups (pw->pw_name, pw->pw_gid) == -1) ++ if (initgroups (pw->pw_name, pw->pw_gid) == -1) { ++#ifdef USE_PAM ++ pam_close_session(pamh, 0); ++ pam_end(pamh, PAM_ABORT); ++#endif + error (EXIT_CANCELED, errno, _("cannot set groups")); ++ } + endgrent (); + #endif + if (setgid (pw->pw_gid)) +@@ -302,6 +397,31 @@ change_identity (const struct passwd *pw + error (EXIT_CANCELED, errno, _("cannot set user id")); + } + ++#ifdef USE_PAM ++static int caught=0; ++/* Signal handler for parent process later */ ++static void su_catch_sig(int sig) ++{ ++ ++caught; ++} ++ ++int ++pam_copyenv (pam_handle_t *pamh) ++{ ++ char **env; ++ ++ env = pam_getenvlist(pamh); ++ if(env) { ++ while(*env) { ++ if (putenv (*env)) ++ xalloc_die (); ++ env++; ++ } ++ } ++ return(0); ++} ++#endif ++ + /* Run SHELL, or DEFAULT_SHELL if SHELL is empty. + If COMMAND is nonzero, pass it to the shell with the -c option. + Pass ADDITIONAL_ARGS to the shell as more arguments; there +@@ -309,17 +429,49 @@ change_identity (const struct passwd *pw + + static void + run_shell (char const *shell, char const *command, char **additional_args, +- size_t n_additional_args) ++ size_t n_additional_args, const struct passwd *pw) + { + size_t n_args = 1 + fast_startup + 2 * !!command + n_additional_args + 1; + char const **args = xnmalloc (n_args, sizeof *args); + size_t argno = 1; ++#ifdef USE_PAM ++ int child; ++ sigset_t ourset; ++ int status; ++ ++ retval = pam_open_session(pamh,0); ++ if (retval != PAM_SUCCESS) { ++ fprintf (stderr, "could not open session\n"); ++ exit (1); ++ } ++ ++/* do this at the last possible moment, because environment variables may ++ be passed even in the session phase ++*/ ++ if(pam_copyenv(pamh) != PAM_SUCCESS) ++ fprintf (stderr, "error copying PAM environment\n"); ++ ++ /* Credentials should be set in the parent */ ++ if (pam_setcred(pamh, PAM_ESTABLISH_CRED) != PAM_SUCCESS) { ++ pam_close_session(pamh, 0); ++ fprintf(stderr, "could not set PAM credentials\n"); ++ exit(1); ++ } ++ ++ child = fork(); ++ if (child == 0) { /* child shell */ ++ change_identity (pw); ++ pam_end(pamh, 0); ++#endif + + if (simulate_login) + { + char *arg0; + char *shell_basename; + ++ if(chdir(pw->pw_dir)) ++ error(0, errno, _("warning: cannot change directory to %s"), pw->pw_dir); ++ + shell_basename = last_component (shell); + arg0 = xmalloc (strlen (shell_basename) + 2); + arg0[0] = '-'; +@@ -344,6 +496,67 @@ run_shell (char const *shell, char const + error (0, errno, "%s", shell); + exit (exit_status); + } ++#ifdef USE_PAM ++ } else if (child == -1) { ++ fprintf(stderr, "can not fork user shell: %s", strerror(errno)); ++ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT); ++ pam_close_session(pamh, 0); ++ pam_end(pamh, PAM_ABORT); ++ exit(1); ++ } ++ /* parent only */ ++ sigfillset(&ourset); ++ if (sigprocmask(SIG_BLOCK, &ourset, NULL)) { ++ fprintf(stderr, "%s: signal malfunction\n", PROGRAM_NAME); ++ caught = 1; ++ } ++ if (!caught) { ++ struct sigaction action; ++ action.sa_handler = su_catch_sig; ++ sigemptyset(&action.sa_mask); ++ action.sa_flags = 0; ++ sigemptyset(&ourset); ++ if (sigaddset(&ourset, SIGTERM) ++ || sigaddset(&ourset, SIGALRM) ++ || sigaction(SIGTERM, &action, NULL) ++ || sigprocmask(SIG_UNBLOCK, &ourset, NULL)) { ++ fprintf(stderr, "%s: signal masking malfunction\n", PROGRAM_NAME); ++ caught = 1; ++ } ++ } ++ if (!caught) { ++ do { ++ int pid; ++ ++ pid = waitpid(-1, &status, WUNTRACED); ++ ++ if (((pid_t)-1 != pid) && (0 != WIFSTOPPED (status))) { ++ kill(getpid(), WSTOPSIG(status)); ++ /* once we get here, we must have resumed */ ++ kill(pid, SIGCONT); ++ } ++ } while (0 != WIFSTOPPED(status)); ++ } ++ ++ if (caught) { ++ fprintf(stderr, "\nSession terminated, killing shell..."); ++ kill (child, SIGTERM); ++ } ++ /* Not checking retval on this because we need to call close session */ ++ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT); ++ retval = pam_close_session(pamh, 0); ++ PAM_BAIL_P_VOID; ++ retval = pam_end(pamh, PAM_SUCCESS); ++ PAM_BAIL_P_VOID; ++ if (caught) { ++ sleep(2); ++ kill(child, SIGKILL); ++ fprintf(stderr, " ...killed.\n"); ++ exit(-1); ++ } ++ exit ((0 != WIFEXITED (status)) ? WEXITSTATUS (status) ++ : WTERMSIG (status) + 128); ++#endif /* USE_PAM */ + } + + /* Return true if SHELL is a restricted shell (one not returned by +@@ -511,9 +724,9 @@ main (int argc, char **argv) + shell = xstrdup (shell ? shell : pw->pw_shell); + modify_environment (pw, shell); + ++#ifndef USE_PAM + change_identity (pw); +- if (simulate_login && chdir (pw->pw_dir) != 0) +- error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir); ++#endif + + /* error() flushes stderr, but does not check for write failure. + Normally, we would catch this via our atexit() hook of +@@ -523,5 +736,5 @@ main (int argc, char **argv) + if (ferror (stderr)) + exit (EXIT_CANCELED); + +- run_shell (shell, command, argv + optind, MAX (0, argc - optind)); ++ run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw); + } diff --git a/testing/coreutils/coreutils-uname.patch b/testing/coreutils/coreutils-uname.patch new file mode 100644 index 000000000..b458abeba --- /dev/null +++ b/testing/coreutils/coreutils-uname.patch @@ -0,0 +1,173 @@ +On linux platforms, grok /proc/cpuinfo for the CPU/vendor info. + +Prob not suitable for upstream seeing as how it's 100% linux-specific +http://lists.gnu.org/archive/html/bug-coreutils/2005-09/msg00063.html + +Patch originally by Carlos E. Gorges <carlos@techlinux.com.br>, but +heavily reworked to suck less. + +To add support for additional platforms, check out the show_cpuinfo() +func in the linux/arch/<ARCH>/ source tree of the kernel. + +--- coreutils/src/uname.c ++++ coreutils/src/uname.c +@@ -50,6 +50,11 @@ + # include <mach-o/arch.h> + #endif + ++#if defined(__linux__) ++# define USE_PROCINFO ++# define UNAME_HARDWARE_PLATFORM ++#endif ++ + #include "system.h" + #include "error.h" + #include "quote.h" +@@ -138,6 +143,117 @@ + exit (status); + } + ++#if defined(USE_PROCINFO) ++ ++# if defined(__s390__) || defined(__s390x__) ++# define CPUINFO_FILE "/proc/sysinfo" ++# define CPUINFO_FORMAT "%64[^\t :]%*[ :]%256[^\n]%c" ++# else ++# define CPUINFO_FILE "/proc/cpuinfo" ++# define CPUINFO_FORMAT "%64[^\t:]\t:%256[^\n]%c" ++# endif ++ ++# define PROCINFO_PROCESSOR 0 ++# define PROCINFO_HARDWARE_PLATFORM 1 ++ ++static void __eat_cpuinfo_space(char *buf) ++{ ++ /* first eat trailing space */ ++ char *tmp = buf + strlen(buf) - 1; ++ while (tmp > buf && isspace(*tmp)) ++ *tmp-- = '\0'; ++ /* then eat leading space */ ++ tmp = buf; ++ while (*tmp && isspace(*tmp)) ++ tmp++; ++ if (tmp != buf) ++ memmove(buf, tmp, strlen(tmp)+1); ++ /* finally collapse whitespace */ ++ tmp = buf; ++ while (tmp[0] && tmp[1]) { ++ if (isspace(tmp[0]) && isspace(tmp[1])) { ++ memmove(tmp, tmp+1, strlen(tmp)); ++ continue; ++ } ++ ++tmp; ++ } ++} ++ ++static int __linux_procinfo(int x, char *fstr, size_t s) ++{ ++ FILE *fp; ++ ++ char *procinfo_keys[] = { ++ /* --processor --hardware-platform */ ++ #if defined(__alpha__) ++ "cpu model", "system type" ++ #elif defined(__arm__) ++ "Processor", "Hardware" ++ #elif defined(__avr32__) ++ "processor", "cpu family" ++ #elif defined(__bfin__) ++ "CPU", "BOARD Name" ++ #elif defined(__cris__) ++ "cpu", "cpu model" ++ #elif defined(__frv__) ++ "CPU-Core", "System" ++ #elif defined(__i386__) || defined(__x86_64__) ++ "model name", "vendor_id" ++ #elif defined(__ia64__) ++ "family", "vendor" ++ #elif defined(__hppa__) ++ "cpu", "model" ++ #elif defined(__m68k__) ++ "CPU", "MMU" ++ #elif defined(__mips__) ++ "cpu model", "system type" ++ #elif defined(__powerpc__) || defined(__powerpc64__) ++ "cpu", "machine" ++ #elif defined(__s390__) || defined(__s390x__) ++ "Type", "Manufacturer" ++ #elif defined(__sh__) ++ "cpu type", "machine" ++ #elif defined(sparc) || defined(__sparc__) ++ "type", "cpu" ++ #elif defined(__vax__) ++ "cpu type", "cpu" ++ #else ++ "unknown", "unknown" ++ #endif ++ }; ++ ++ if ((fp = fopen(CPUINFO_FILE, "r")) != NULL) { ++ char key[65], value[257], eol, *ret = NULL; ++ ++ while (fscanf(fp, CPUINFO_FORMAT, key, value, &eol) != EOF) { ++ __eat_cpuinfo_space(key); ++ if (!strcmp(key, procinfo_keys[x])) { ++ __eat_cpuinfo_space(value); ++ ret = value; ++ break; ++ } ++ if (eol != '\n') { ++ /* we need two fscanf's here in case the previous ++ * length limit caused us to read right up to the ++ * newline ... doing "%*[^\n]\n" wont eat the newline ++ */ ++ fscanf(fp, "%*[^\n]"); ++ fscanf(fp, "\n"); ++ } ++ } ++ fclose(fp); ++ ++ if (ret) { ++ strncpy(fstr, ret, s); ++ return 0; ++ } ++ } ++ ++ return -1; ++} ++ ++#endif ++ + /* Print ELEMENT, preceded by a space if something has already been + printed. */ + +@@ -250,10 +344,14 @@ main (int argc, char **argv) + if (toprint & PRINT_PROCESSOR) + { + char const *element = unknown; +-#if HAVE_SYSINFO && defined SI_ARCHITECTURE ++#if ( HAVE_SYSINFO && defined SI_ARCHITECTURE ) || defined(USE_PROCINFO) + { + static char processor[257]; ++#if defined(USE_PROCINFO) ++ if (0 <= __linux_procinfo (PROCINFO_PROCESSOR, processor, sizeof processor)) ++#else + if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor)) ++#endif + element = processor; + } + #endif +@@ -306,9 +404,13 @@ main (int argc, char **argv) + if (element == unknown) + { + static char hardware_platform[257]; ++#if defined(USE_PROCINFO) ++ if (0 <= __linux_procinfo (PROCINFO_HARDWARE_PLATFORM, hardware_platform, sizeof hardware_platform)) ++#else + size_t s = sizeof hardware_platform; + static int mib[] = { CTL_HW, UNAME_HARDWARE_PLATFORM }; + if (sysctl (mib, 2, hardware_platform, &s, 0, 0) >= 0) ++#endif + element = hardware_platform; + } + #endif diff --git a/testing/coreutils/coreutils.install b/testing/coreutils/coreutils.install new file mode 100644 index 000000000..8caae6686 --- /dev/null +++ b/testing/coreutils/coreutils.install @@ -0,0 +1,21 @@ +infodir=usr/share/info +filelist=(coreutils.info) + +post_install() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + +post_upgrade() { + post_install $1 +} + +pre_remove() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + diff --git a/testing/coreutils/su.pam b/testing/coreutils/su.pam new file mode 100644 index 000000000..cf15f40f1 --- /dev/null +++ b/testing/coreutils/su.pam @@ -0,0 +1,9 @@ +#%PAM-1.0 +auth sufficient pam_rootok.so +# Uncomment the following line to implicitly trust users in the "wheel" group. +#auth sufficient pam_wheel.so trust use_uid +# Uncomment the following line to require a user to be in the "wheel" group. +#auth required pam_wheel.so use_uid +auth required pam_unix.so +account required pam_unix.so +session required pam_unix.so diff --git a/testing/git/PKGBUILD b/testing/git/PKGBUILD index 0a96745dd..713c5dd11 100644 --- a/testing/git/PKGBUILD +++ b/testing/git/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 125150 2011-05-25 19:02:49Z foutrelis $ +# $Id: PKGBUILD 126224 2011-06-02 19:12:58Z dan $ # Maintainer: Dan McGee <dan@archlinux.org> pkgname=git -pkgver=1.7.5.2 -pkgrel=2 +pkgver=1.7.5.4 +pkgrel=1 pkgdesc="the fast distributed version control system" arch=(i686 x86_64) url="http://git-scm.com/" @@ -75,11 +75,11 @@ package() { install -D -m644 "$srcdir"/git-daemon.conf "$pkgdir"/etc/conf.d/git-daemon.conf } -md5sums=('f79ab8fe79b35346b499f131cbf381a4' - '43fc5538f137231f5c96e7da5eb6c934' +md5sums=('4985b774db84d3bbcc2b8d90952552a3' + '7a74ef1c64395a07301359a8707c828a' '8e2648910fd5dd4f1c41d3c7fa9e9156' '2e42bf97779a1c6411d89043334c9e78') -sha256sums=('65dbb9789a1ff8aa7e4f7e156b9ce36ef101810608ed55a297156348d70f9349' - '8521210a77809d189a3fe72e2bd13df50ecf8ec58e7098ec1655dfdb4086b6ca' +sha256sums=('fed9a6c7d07b063cfba9e3eb40fbd0d8120785225289fcf2fb56bee18dffd5ee' + '87d612195426fedfe4ee5274d9903e8f85aa16c410b4a3ba41610c23ed9211d7' '2e0a50bdaf8f387a499895e1c204bff78244eaa72b78187c8a84ef40c0b82598' 'e8bfe29d8393d2b87517c4dd56ea834b213aa00bf3d7fcde4ead3457cadbbc68') diff --git a/testing/net-tools/PKGBUILD b/testing/net-tools/PKGBUILD new file mode 100644 index 000000000..d9b2380bc --- /dev/null +++ b/testing/net-tools/PKGBUILD @@ -0,0 +1,43 @@ +# $Id: PKGBUILD 126212 2011-06-02 16:50:35Z bisson $ +# Maintainer: judd <jvinet@zeroflux.org> +pkgname=net-tools +pkgver=1.60 +pkgrel=16 +pkgdesc="Configuration tools for Linux networking" +arch=(i686 x86_64) +license=('GPL') +url="http://www.tazenda.demon.co.uk/phil/net-tools" +depends=('glibc') +source=(http://www.tazenda.demon.co.uk/phil/$pkgname/$pkgname-$pkgver.tar.bz2 + net-tools.patch gcc340.patch net-tools-1.60-2.6-compilefix.patch + net-tools-1.60-miiioctl.patch + net-tools-1.60-nameif.patch + net-tools-1.60-nameif_strncpy.patch) +options=(!makeflags) +md5sums=('888774accab40217dde927e21979c165' + '7ef8d0c6818faa0fdeea94970a20e3fb' + 'b52d899cba9956bb0055150506f41ac1' + '51de6eabe2d6d6dc860f72c41cee636b' + 'c16109863bc63f3dad4ef35305a340bb' + '29a32617382fab1735acba4d920f1fcd' + 'e66466b9304dac85eb42b32f1ec3b284') + +build() { + cd $srcdir/$pkgname-$pkgver + patch -Np1 -i ../net-tools.patch + patch -Np1 -i ../net-tools-1.60-2.6-compilefix.patch + patch -Np1 -i ../net-tools-1.60-miiioctl.patch + patch -Np1 -i ../gcc340.patch + patch -Np1 -i ${srcdir}/net-tools-1.60-nameif.patch + patch -Np1 -i ${srcdir}/net-tools-1.60-nameif_strncpy.patch + yes "" | make +} + +package() { + cd $srcdir/$pkgname-$pkgver + make BASEDIR=$pkgdir update + + # the following is provided by yp-tools and coreutils + rm "${pkgdir}"/bin/{{,dns,nis,yp}domainname,hostname} + rm "${pkgdir}"/usr/share/man/man1/{{,dns,nis,yp}domainname,hostname}.1 +} diff --git a/testing/net-tools/gcc340.patch b/testing/net-tools/gcc340.patch new file mode 100644 index 000000000..8089bf217 --- /dev/null +++ b/testing/net-tools/gcc340.patch @@ -0,0 +1,46 @@ +diff -Naur net-tools-1.60-orig/hostname.c net-tools-1.60/hostname.c +--- net-tools-1.60-orig/hostname.c 2001-04-08 10:04:23.000000000 -0700 ++++ net-tools-1.60/hostname.c 2004-05-07 17:22:14.000000000 -0700 +@@ -78,6 +78,7 @@ + fprintf(stderr, _("%s: name too long\n"), program_name); + break; + default: ++ ; + } + exit(1); + } +@@ -98,6 +99,7 @@ + fprintf(stderr, _("%s: name too long\n"), program_name); + break; + default: ++ ; + } + exit(1); + }; +@@ -117,6 +119,7 @@ + fprintf(stderr, _("%s: name too long\n"), program_name); + break; + default: ++ ; + } + exit(1); + }; +@@ -174,6 +177,7 @@ + printf("%s\n", hp->h_name); + break; + default: ++ ; + } + } + +diff -Naur net-tools-1.60-orig/lib/inet_sr.c net-tools-1.60/lib/inet_sr.c +--- net-tools-1.60-orig/lib/inet_sr.c 2000-02-20 13:46:45.000000000 -0800 ++++ net-tools-1.60/lib/inet_sr.c 2004-05-07 17:20:14.000000000 -0700 +@@ -105,6 +105,7 @@ + case 2: + isnet = 0; break; + default: ++ ; + } + + /* Fill in the other fields. */ diff --git a/testing/net-tools/net-tools-1.60-2.6-compilefix.patch b/testing/net-tools/net-tools-1.60-2.6-compilefix.patch new file mode 100644 index 000000000..92ce90128 --- /dev/null +++ b/testing/net-tools/net-tools-1.60-2.6-compilefix.patch @@ -0,0 +1,23 @@ +diff -ruN net-tools-1.60.orig/lib/x25_sr.c net-tools-1.60/lib/x25_sr.c +--- net-tools-1.60.orig/lib/x25_sr.c 2000-05-20 15:38:10.000000000 +0200 ++++ net-tools-1.60/lib/x25_sr.c 2003-10-18 20:33:31.927574928 +0200 +@@ -22,6 +22,7 @@ + #include <sys/socket.h> + #include <sys/ioctl.h> + #include <linux/x25.h> ++#include <linux/version.h> + #include <ctype.h> + #include <errno.h> + #include <netdb.h> +@@ -77,7 +78,11 @@ + rt.sigdigits=sigdigits; + + /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) + memcpy(&rt.address, &sx25.sx25_addr, sizeof(x25_address)); ++#else ++ memcpy(&rt.address, &sx25.sx25_addr, sizeof(struct x25_address)); ++#endif + + while (*args) { + if (!strcmp(*args,"device") || !strcmp(*args,"dev")) { diff --git a/testing/net-tools/net-tools-1.60-miiioctl.patch b/testing/net-tools/net-tools-1.60-miiioctl.patch new file mode 100644 index 000000000..4859273ed --- /dev/null +++ b/testing/net-tools/net-tools-1.60-miiioctl.patch @@ -0,0 +1,17 @@ +--- net-tools-1.60/include/mii.h.bar Tue Jul 31 11:49:39 2001 ++++ net-tools-1.60/include/mii.h Tue Jul 31 11:49:33 2001 +@@ -11,11 +11,9 @@ + + /* network interface ioctl's for MII commands */ + #ifndef SIOCGMIIPHY +-#define SIOCGMIIPHY (SIOCDEVPRIVATE) /* Read from current PHY */ +-#define SIOCGMIIREG (SIOCDEVPRIVATE+1) /* Read any PHY register */ +-#define SIOCSMIIREG (SIOCDEVPRIVATE+2) /* Write any PHY register */ +-#define SIOCGPARAMS (SIOCDEVPRIVATE+3) /* Read operational parameters */ +-#define SIOCSPARAMS (SIOCDEVPRIVATE+4) /* Set operational parameters */ ++#define SIOCGMIIPHY 0x8947 /* Read from current PHY */ ++#define SIOCGMIIREG 0x8948 /* Read any PHY register */ ++#define SIOCSMIIREG 0x8949 /* Write any PHY register */ + #endif + + #include <linux/types.h> diff --git a/testing/net-tools/net-tools-1.60-nameif.patch b/testing/net-tools/net-tools-1.60-nameif.patch new file mode 100644 index 000000000..54def00c2 --- /dev/null +++ b/testing/net-tools/net-tools-1.60-nameif.patch @@ -0,0 +1,58 @@ +--- net-tools-1.60/nameif.c.nameif 2000-10-18 19:26:29.000000000 +0200 ++++ net-tools-1.60/nameif.c 2003-03-19 11:02:01.000000000 +0100 +@@ -117,7 +117,8 @@ + } + + struct change { +- struct change *next,**pprev; ++ struct change *next; ++ int found; + char ifname[IFNAMSIZ+1]; + unsigned char mac[6]; + }; +@@ -139,10 +140,7 @@ + ch->ifname, pos); + if (parsemac(p,ch->mac) < 0) + complain(_("cannot parse MAC `%s' at %s"), p, pos); +- if (clist) +- clist->pprev = &ch->next; + ch->next = clist; +- ch->pprev = &clist; + clist = ch; + return 0; + } +@@ -200,7 +198,7 @@ + + void usage(void) + { +- fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}")); ++ fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}\n")); + exit(1); + } + +@@ -277,21 +275,21 @@ + ch = lookupmac(mac); + if (!ch) + continue; +- +- *ch->pprev = ch->next; ++ ++ ch->found = 1; + if (strcmp(p, ch->ifname)) { + if (setname(p, ch->ifname) < 0) + complain(_("cannot change name of %s to %s: %s"), + p, ch->ifname, strerror(errno)); + } +- free(ch); + } + fclose(ifh); + + while (clist) { + struct change *ch = clist; + clist = clist->next; +- warning(_("interface '%s' not found"), ch->ifname); ++ if (!ch->found) ++ warning(_("interface '%s' not found"), ch->ifname); + free(ch); + } + diff --git a/testing/net-tools/net-tools-1.60-nameif_strncpy.patch b/testing/net-tools/net-tools-1.60-nameif_strncpy.patch new file mode 100644 index 000000000..7568e21a2 --- /dev/null +++ b/testing/net-tools/net-tools-1.60-nameif_strncpy.patch @@ -0,0 +1,13 @@ +--- net-tools-1.60/nameif.c.ncpy 2006-10-03 14:24:21.000000000 +0200 ++++ net-tools-1.60/nameif.c 2006-10-03 14:22:43.000000000 +0200 +@@ -100,8 +100,8 @@ + struct ifreq ifr; + opensock(); + memset(&ifr,0,sizeof(struct ifreq)); +- strcpy(ifr.ifr_name, oldname); +- strcpy(ifr.ifr_newname, newname); ++ strncpy(ifr.ifr_name, oldname, IF_NAMESIZE); ++ strncpy(ifr.ifr_newname, newname, IF_NAMESIZE); + return ioctl(ctl_sk, SIOCSIFNAME, &ifr); + } + diff --git a/testing/net-tools/net-tools.patch b/testing/net-tools/net-tools.patch new file mode 100644 index 000000000..87e062eb2 --- /dev/null +++ b/testing/net-tools/net-tools.patch @@ -0,0 +1,52 @@ +diff -Naur net-tools-1.60-orig/config.in net-tools-1.60/config.in +--- net-tools-1.60-orig/config.in 2000-05-21 07:32:12.000000000 -0700 ++++ net-tools-1.60/config.in 2004-05-31 12:36:00.000000000 -0700 +@@ -49,7 +49,7 @@ + * + bool 'UNIX protocol family' HAVE_AFUNIX y + bool 'INET (TCP/IP) protocol family' HAVE_AFINET y +-bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 n ++bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 y + bool 'Novell IPX/SPX protocol family' HAVE_AFIPX y + bool 'Appletalk DDP protocol family' HAVE_AFATALK y + bool 'AX25 (packet radio) protocol family' HAVE_AFAX25 y +@@ -86,6 +86,6 @@ + * + * Other Features. + * +-bool 'IP Masquerading support' HAVE_FW_MASQUERADE n +-bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS n +-bool 'Build mii-tool' HAVE_MII n ++bool 'IP Masquerading support' HAVE_FW_MASQUERADE y ++bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS y ++bool 'Build mii-tool' HAVE_MII y +diff -Naur net-tools-1.60-orig/mii-tool.c net-tools-1.60/mii-tool.c +--- net-tools-1.60-orig/mii-tool.c 2000-05-21 07:31:17.000000000 -0700 ++++ net-tools-1.60/mii-tool.c 2004-05-31 12:35:21.000000000 -0700 +@@ -379,16 +379,16 @@ + /*--------------------------------------------------------------------*/ + + const char *usage = +-"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...] +- -V, --version display version information +- -v, --verbose more verbose output +- -R, --reset reset MII to poweron state +- -r, --restart restart autonegotiation +- -w, --watch monitor for link status changes +- -l, --log with -w, write events to syslog +- -A, --advertise=media,... advertise only specified media +- -F, --force=media force specified media technology +-media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD, ++"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]\n\ ++ -V, --version display version information\n\ ++ -v, --verbose more verbose output\n\ ++ -R, --reset reset MII to poweron state\n\ ++ -r, --restart restart autonegotiation\n\ ++ -w, --watch monitor for link status changes\n\ ++ -l, --log with -w, write events to syslog\n\ ++ -A, --advertise=media,... advertise only specified media\n\ ++ -F, --force=media force specified media technology\n\ ++media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,\n\ + (to advertise both HD and FD) 100baseTx, 10baseT\n"; + + int main(int argc, char **argv) diff --git a/testing/subversion/PKGBUILD b/testing/subversion/PKGBUILD index 8c218677d..40784dcb7 100644 --- a/testing/subversion/PKGBUILD +++ b/testing/subversion/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 126171 2011-06-02 01:15:51Z stephane $ +# $Id: PKGBUILD 126240 2011-06-02 20:16:49Z stephane $ # Maintainer: Paul Mattal <paul@archlinux.org> # Contributor: Jason Chu <jason@archlinux.org> pkgname=subversion pkgver=1.6.17 -pkgrel=1 +pkgrel=3 pkgdesc="Replacement for CVS, another versioning system (SVN)" arch=('i686' 'x86_64') license=('apache' 'bsd') @@ -23,13 +23,13 @@ options=('!makeflags' '!libtool') optdepends=('libgnome-keyring' 'kdeutils-kwallet' 'bash-completion: for svn bash completion') build() { - cd ${srcdir}/${pkgname}-${pkgver} + cd "${srcdir}/${pkgname}-${pkgver}" export PYTHON=/usr/bin/python2 # apply patches - patch -p0 < $srcdir/subversion.rpath.fix.patch - patch -p1 -i $srcdir/subversion.suppress.deprecation.warnings.patch + patch -Np0 -i ../subversion.rpath.fix.patch + patch -Np1 -i ../subversion.suppress.deprecation.warnings.patch # configure autoreconf @@ -42,8 +42,14 @@ build() { (make external-all && make LT_LDFLAGS="-L$Fdestdir/usr/lib" local-all ) } +#check() { +# cd "${srcdir}/${pkgname}-${pkgver}" +# export LANG=C LC_ALL=C +# make check check-swig-pl check-swig-py CLEANUP=yes +#} + package() { - cd ${srcdir}/${pkgname}-${pkgver} + cd "${srcdir}/${pkgname}-${pkgver}" # install export LD_LIBRARY_PATH=${pkgdir}/usr/lib:$LD_LIBRARY_PATH diff --git a/testing/udev/81-arch.rules b/testing/udev/81-arch.rules new file mode 100644 index 000000000..cd4e3e9b4 --- /dev/null +++ b/testing/udev/81-arch.rules @@ -0,0 +1,83 @@ +# Udev rules for Archlinux by Tobias Powalowski <tpowa@archlinux.org> +# do not edit this file, it will be overwritten on update +# +# There are a number of modifiers that are allowed to be used in some +# of the different fields. They provide the following subsitutions: +# +# %n the "kernel number" of the device. +# For example, 'sda3' has a "kernel number" of '3' +# %k the kernel name for the device. +# %M the kernel major number for the device +# %m the kernel minor number for the device +# %b the bus id for the device +# %c the string returned by the PROGRAM +# %s{filename} the content of a sysfs attribute. +# %% the '%' char itself. +# +# There are a number of modifiers that are allowed to be used in some of the +# fields. See the udev man page for a full description of them. +# global stuff +# + +# permission for sg devices +KERNEL=="sg[0-9]*", ATTRS{type}!="3|6", GROUP="disk", MODE="0660" + +# permissions for IDE CD devices +SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", GROUP="optical" + +# permissions for SCSI CD devices +SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", SYMLINK+="scd%n", GROUP="optical" +SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", GROUP="optical" + +# permissions for removable devices like cardreaders or sticks +KERNEL=="sd*", ATTRS{scsi_level}=="3", ATTRS{type}=="0", GROUP="storage" + +# permissions for firewire external drives +KERNEL=="sd*", ATTRS{scsi_level}=="5", GROUP="storage" + +# permissions for usb to scsi external adapters +KERNEL=="sd*", ATTRS{scsi_level}=="3", ATTRS{type}=="7", GROUP="storage" + +# permissions for ide storage like pcmcia card readers +ACTION!="add", GOTO="pcmcia_end" +SUBSYSTEM!="block", GOTO="pcmcia_end" +KERNEL=="hd*[!0-9]", IMPORT{program}="ata_id --export $tempnode" +KERNEL=="hd*", IMPORT{parent}=="ID_*" +KERNEL=="hd*", ENV{ID_TYPE}=="generic", GROUP="storage" +LABEL="pcmcia_end" + +# permissions for SCSI scanners +SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="6", GROUP="scanner" + +# mem +KERNEL=="ram0", SYMLINK+="ramdisk" +KERNEL=="ram1", SYMLINK+="ram" + +# video4linux + +KERNEL=="vbi0", SYMLINK+="vbi" +KERNEL=="radio0", SYMLINK+="radio" +KERNEL=="radio[0-9]*", GROUP="video" +KERNEL=="video0", SYMLINK+="video" +KERNEL=="vtx0", SYMLINK+="vtx" + +# video devices +### xorg resets those permissions, adjust your xorg.conf! +KERNEL=="3dfx*", GROUP="video" +KERNEL=="fb[0-9]*", GROUP="video" + +# misc +KERNEL=="sgi_fetchop", MODE="0666" +KERNEL=="sonypi", MODE="0666" + +# USB devices +KERNEL=="legousbtower*", MODE="0666" + +# kbd devices +KERNEL=="kbd", MODE="0664" + +# miscellaneous +KERNEL=="rtc|rtc0", GROUP="audio", MODE="0664" +####################################### +# Permissions and Symlinks - end +####################################### diff --git a/testing/udev/PKGBUILD b/testing/udev/PKGBUILD new file mode 100644 index 000000000..b80fd7707 --- /dev/null +++ b/testing/udev/PKGBUILD @@ -0,0 +1,101 @@ +# $Id: PKGBUILD 126202 2011-06-02 14:49:12Z tomegun $ +# Maintainer: Aaron Griffin <aaron@archlinux.org> +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> +# Maintainer: Thomas Bächler <thomas@archlinux.org> +# Maintainer: Tom Gundersen <teg@jklm.no> + +pkgbase="udev" +pkgname=('udev' 'udev-compat') +pkgver=171 +pkgrel=2 +arch=(i686 x86_64) +url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html" +license=('GPL') +groups=('base') +# older initscripts versions required start_udev +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 + 81-arch.rules + static-audio-nodes-group.patch + static-nodes-permissions.patch) + +build() { + cd $srcdir/$pkgbase-$pkgver + # fix https://bugs.archlinux.org/task/24362 (will be in udev-172) + patch -Np1 -i ../static-audio-nodes-group.patch + patch -Np1 -i ../static-nodes-permissions.patch + ./configure --sysconfdir=/etc --with-rootlibdir=/lib --libexecdir=/lib/udev\ + --sbindir=/sbin --with-systemdsystemunitdir=/lib/systemd/system\ + --disable-rule-generator + make +} + +package_udev() { + pkgdesc="The userspace dev tools (udev)" + depends=('glibc' 'coreutils' 'util-linux' 'libusb-compat' 'glib2' + 'module-init-tools>=3.11' 'pciutils') + install=udev.install + backup=(etc/udev/udev.conf + etc/modprobe.d/framebuffer_blacklist.conf) + conflicts=('pcmcia-cs' 'hotplug' 'initscripts<2009.07') + replaces=('devfsd') + + cd $srcdir/$pkgbase-$pkgver + make DESTDIR=${pkgdir} install + # Install our rule for permissions and symlinks + install -D -m644 $srcdir/81-arch.rules $pkgdir/lib/udev/rules.d/81-arch.rules + + # create framebuffer blacklist + mkdir -p $pkgdir/etc/modprobe.d/ + for mod in $(find /lib/modules/*/kernel/drivers/video -name '*fb.ko.gz' -exec basename {} .ko.gz \;); do + echo "blacklist $mod" + done | sort -u > $pkgdir/etc/modprobe.d/framebuffer_blacklist.conf + + # create static devices in /lib/udev/devices/ + mkdir ${pkgdir}/lib/udev/devices/pts + mkdir ${pkgdir}/lib/udev/devices/shm + + mknod -m 0600 ${pkgdir}/lib/udev/devices/console c 5 1 + mknod -m 0666 ${pkgdir}/lib/udev/devices/null c 1 3 + mknod -m 0660 ${pkgdir}/lib/udev/devices/zero c 1 5 + mknod -m 0666 ${pkgdir}/lib/udev/devices/kmsg c 1 11 + + ln -snf /proc/self/fd ${pkgdir}/lib/udev/devices/fd + ln -snf /proc/self/fd/0 ${pkgdir}/lib/udev/devices/stdin + ln -snf /proc/self/fd/1 ${pkgdir}/lib/udev/devices/stdout + ln -snf /proc/self/fd/2 ${pkgdir}/lib/udev/devices/stderr + ln -snf /proc/kcore ${pkgdir}/lib/udev/devices/core + + # these static devices are created for convenience, to autoload the modules if necessary + # /dev/loop0 + mknod -m 0660 ${pkgdir}/lib/udev/devices/loop0 b 7 0 + chgrp disk ${pkgdir}/lib/udev/devices/loop0 + # /dev/net/tun + mkdir ${pkgdir}/lib/udev/devices/net + mknod -m 0666 ${pkgdir}/lib/udev/devices/net/tun c 10 200 + # /dev/fuse + mknod -m 0666 ${pkgdir}/lib/udev/devices/fuse c 10 229 + # /dev/ppp + mknod -m 0600 ${pkgdir}/lib/udev/devices/ppp c 108 0 + + # Replace dialout/tape/cdrom group in rules with uucp/storage/optical group + for i in $pkgdir/lib/udev/rules.d/*.rules; do + sed -i -e 's#GROUP="dialout"#GROUP="uucp"#g; + s#GROUP="tape"#GROUP="storage"#g; + s#GROUP="cdrom"#GROUP="optical"#g' $i + done +} + +package_udev-compat() { + pkgdesc="The userspace dev tools (udev) - additional rules for older kernels" + depends=('udev') + groups=('') + cd $srcdir/$pkgbase-$pkgver + install -d -m755 ${pkgdir}/lib/${pkgbase}/rules.d + install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/rules/misc/30-kernel-compat.rules ${pkgdir}/lib/udev/rules.d/30-kernel-compat.rules +} +md5sums=('bdf4617284be2ecac11767437417e209' + '6ee44e3feb8e0f037947e7d4ca273f12' + '4f625aea95a5597afd8cdf189421f193' + 'f9e50b8dfcd2215f5423ff9bc04ecf68') diff --git a/testing/udev/static-audio-nodes-group.patch b/testing/udev/static-audio-nodes-group.patch new file mode 100644 index 000000000..b1fc4f935 --- /dev/null +++ b/testing/udev/static-audio-nodes-group.patch @@ -0,0 +1,27 @@ +From 3e227830ad6494700e18ae03297e8fb833ff26bf Mon Sep 17 00:00:00 2001 +From: Kay Sievers <kay.sievers@vrfy.org> +Date: Fri, 27 May 2011 02:50:29 +0200 +Subject: [PATCH] rules: apply 'audio' group of the static snd/{seq,timer} + nodes + +--- + rules/rules.d/50-udev-default.rules | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/rules/rules.d/50-udev-default.rules b/rules/rules.d/50-udev-default.rules +index cd745ef..cacb533 100644 +--- a/rules/rules.d/50-udev-default.rules ++++ b/rules/rules.d/50-udev-default.rules +@@ -38,7 +38,8 @@ SUBSYSTEM=="graphics", GROUP="video" + SUBSYSTEM=="drm", GROUP="video" + + # sound +-SUBSYSTEM=="sound", GROUP="audio" ++SUBSYSTEM=="sound", GROUP="audio", \ ++ OPTIONS+="static_node=snd/seq", OPTIONS+="static_node=snd/timer" + + # DVB (video) + SUBSYSTEM=="dvb", GROUP="video" +-- +1.7.5.3 + diff --git a/testing/udev/static-nodes-permissions.patch b/testing/udev/static-nodes-permissions.patch new file mode 100644 index 000000000..51e6ad6bc --- /dev/null +++ b/testing/udev/static-nodes-permissions.patch @@ -0,0 +1,57 @@ +From c112873b5bc9ebbae39c32f502bc6211f33546cc Mon Sep 17 00:00:00 2001 +From: Kay Sievers <kay.sievers@vrfy.org> +Date: Mon, 30 May 2011 02:12:02 +0200 +Subject: [PATCH 1/2] rules: static_node - use 0660 if group is given to get + the cigar + +>> On Tue, May 24, 2011 at 15:33, Tom Gundersen <teg@jklm.no> wrote: +> +> Close, but no cigar. Looks like the static nodes are not assigned +> permissions 0660 even if a gid is set (the nodes have perms 0600). +> +> Cheers, +> +> Tom +--- + udev/udev-rules.c | 10 ++++++++-- + 1 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/udev/udev-rules.c b/udev/udev-rules.c +index 48395e7..56a258d 100644 +--- a/udev/udev-rules.c ++++ b/udev/udev-rules.c +@@ -2709,8 +2709,9 @@ void udev_rules_apply_static_dev_perms(struct udev_rules *rules) + case TK_A_STATIC_NODE: { + char filename[UTIL_PATH_SIZE]; + struct stat stats; ++ + /* we assure, that the permissions tokens are sorted before the static token */ +- if (mode == 0 && uid == 0 && gid == 0) ++ if (uid == 0 && gid == 0) + goto next; + util_strscpyl(filename, sizeof(filename), udev_get_dev_path(rules->udev), "/", + &rules->buf[cur->key.value_off], NULL); +@@ -2718,14 +2719,19 @@ void udev_rules_apply_static_dev_perms(struct udev_rules *rules) + goto next; + if (!S_ISBLK(stats.st_mode) && !S_ISCHR(stats.st_mode)) + goto next; +- if (mode != 0 && mode != (stats.st_mode & 0777)) { ++ ++ if (mode == 0 && gid > 0) ++ mode = 0660; ++ if (mode != (stats.st_mode & 0777)) { + chmod(filename, mode); + info(rules->udev, "chmod '%s' %#o\n", filename, mode); + } ++ + if ((uid != 0 && uid != stats.st_uid) || (gid != 0 && gid != stats.st_gid)) { + chown(filename, uid, gid); + info(rules->udev, "chown '%s' %u %u\n", filename, uid, gid); + } ++ + utimensat(AT_FDCWD, filename, NULL, 0); + break; + } +-- +1.7.5.2 + diff --git a/testing/udev/udev.install b/testing/udev/udev.install new file mode 100644 index 000000000..5c02dd15b --- /dev/null +++ b/testing/udev/udev.install @@ -0,0 +1,65 @@ +# arg 1: the new package version +# arg 2: the old package version + +post_upgrade() { + if [ "$(vercmp $2 100)" -lt 0 ]; then + echo "ATTENTION UDEV:" + echo "----------" + echo "udev >=098 rules syntax has changed, please update your own rules." + echo "udev >=099 Added persistent network and CD/DVD Symlink generator rules." + echo "Please read the instructions carefully before reboot." + echo "They are located in /etc/udev/readme-udev-arch.txt" + echo "----------" + fi + if [ "$(vercmp $2 169)" -lt 0 ]; then + echo "ATTENTION UDEV:" + echo "---------------" + echo "Kernel 2.6.32 or newer is now required." + echo "OSS emulation modules are not loaded by default, add to rc.conf if needed." + echo "Arch specific cd symlinks are now no longer created." + echo "cd and net persistent rules will no longer be autogenerated," + echo "see <https://wiki.archlinux.org/index.php/Udev> for details." + echo "Errors are now logged (possibly to the console) by default." + echo "---------------" + fi + if [ "$(vercmp $2 172)" -lt 0 ]; then + echo "ATTENTION UDEV:" + echo "---------------" + echo "Arch's custom blacklisting logic has been removed. MOD_AUTOLOAD and" + echo "blacklisting in MODULES no longer works." + echo "See 'man modprobe.conf' for a replacement to blacklisting." + echo "To disable a module mod1 on the kernel command line, use" + echo "mod1.disable=1" + echo "or" + echo "modprobe.blacklist=mod1" + echo " --" + echo "The following modules are no longer unconditionally loaded:" + echo " pcspkr irtty-sir analog lp ppdev ide-generic" + echo "Add them to MODULES in rc.conf if you need them." + echo "---------------" + fi +} + +post_install() { + # If a ramfs is mounted, we still need to make sure that /dev/{console,null,zero} exist + # The Archlinux installer bind-mounts /dev to /mnt/dev, thus making the real /dev invisible + ROOTDIR="" + [ "$(stat -c %D /)" != "$(stat -c %D /dev)" ] && ROOTDIR=$(mktemp -d /tmp/udevinstall.XXXXXX) + [ -n "${ROOTDIR}" ] && mount --bind / ${ROOTDIR} + if [ ! -c ${ROOTDIR}/dev/console ]; then + rm -f ${ROOTDIR}/dev/console + mknod -m600 ${ROOTDIR}/dev/console c 5 1 + fi + if [ ! -c ${ROOTDIR}/dev/null ]; then + rm -f ${ROOTDIR}/dev/null + mknod -m644 ${ROOTDIR}/dev/null c 1 3 + fi + if [ ! -c ${ROOTDIR}/dev/zero ]; then + rm -f ${ROOTDIR}/dev/zero + mknod -m644 ${ROOTDIR}/dev/zero c 1 5 + fi + if [ -n "${ROOTDIR}" ]; then + umount ${ROOTDIR} + rmdir ${ROOTDIR} + fi +} diff --git a/testing/yp-tools/PKGBUILD b/testing/yp-tools/PKGBUILD new file mode 100644 index 000000000..8cf4b6960 --- /dev/null +++ b/testing/yp-tools/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 126193 2011-06-02 14:34:36Z bisson $ +# Maintainer: Gaetan Bisson <bisson@archlinux.org> +# Contributor: dorphell <dorphell@archlinux.org> +# Contributor: Tom Newsom <Jeepster@gmx.co.uk> + +pkgname=yp-tools +pkgver=2.12 +pkgrel=2 +pkgdesc='Linux NIS Tools' +arch=('i686' 'x86_64') +url='http://www.linux-nis.org/nis/yp-tools/' +license=('GPL2') +depends=('ypbind-mt') +source=("ftp://ftp.kernel.org/pub/linux/utils/net/NIS/$pkgname-$pkgver.tar.gz") +sha1sums=('10b0ef5d4c5723e0716d7a1431a900c0ba6ef703') + +build() { + cd "$srcdir/$pkgname-$pkgver" + ./configure --prefix=/usr + make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + make DESTDIR="$pkgdir" install +} |