diff options
author | Michał Masłowski <mtjm@mtjm.eu> | 2012-10-29 17:28:52 +0100 |
---|---|---|
committer | Michał Masłowski <mtjm@mtjm.eu> | 2012-10-29 17:28:52 +0100 |
commit | 3042526913e47b50cb98416c17706fdd6d212f8b (patch) | |
tree | bfa15ad0c5636644d5b3af67f91e318670e858ed | |
parent | 2b7860faa4cae1565b40b51ba904173f0f494c4a (diff) | |
parent | 29665004d902f751dedb1a4baaa896f9ed74c6b6 (diff) |
Merge branch 'master' of ssh://parabolagnulinux.org:1863/home/parabola/abslibre-pre-mips64el
Conflicts:
community/libgeotiff/PKGBUILD
core/binutils/PKGBUILD
core/gcc/PKGBUILD
27 files changed, 1123 insertions, 148 deletions
diff --git a/community/alex/PKGBUILD b/community/alex/PKGBUILD index 380db3bd6..a5d24c2d0 100644 --- a/community/alex/PKGBUILD +++ b/community/alex/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 77336 2012-10-09 04:16:39Z tdziedzic $ +# $Id: PKGBUILD 79007 2012-10-29 02:24:24Z arodseth $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: Vesa Kaihlavirta <vegai@iki.fi> # Contributor: Philip Nilsson <pnilsson@nullref.se> pkgname=alex pkgver=3.0.2 -pkgrel=2 -pkgdesc='a lexical analyser generator for Haskell' +pkgrel=3 +pkgdesc='Lexical analyser generator for Haskell' arch=('i686' 'x86_64') url='http://hackage.haskell.org/package/alex' license=('custom:BSD3') depends=('gmp') -makedepends=('ghc=7.6.1-1' 'haskell-quickcheck=2.5-2') +makedepends=('ghc=7.6.1' 'haskell-quickcheck>=2') source=("http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz") md5sums=('b8f0d831b65d05e5f54ff08bd3d9d10d') diff --git a/community/cegui/PKGBUILD b/community/cegui/PKGBUILD index 3c460ce41..b9e0a61fa 100644 --- a/community/cegui/PKGBUILD +++ b/community/cegui/PKGBUILD @@ -1,12 +1,13 @@ -# $Id: PKGBUILD 78921 2012-10-27 23:43:46Z ebelanger $ +# $Id: PKGBUILD 79010 2012-10-29 03:17:07Z svenstaro $ # Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com> # Contributor: Juergen Hoetzel <juergen@archlinux.org> # Contributor: William Rea <sillywilly@gmail.com>, # Contributor: Bjorn Lindeijer <bjorn@lindeijer.nl> -pkgname=cegui +pkgbase=cegui +pkgname=('cegui' 'cegui-docs') pkgver=0.7.7 -pkgrel=2 +pkgrel=3 pkgdesc="A free library providing windowing and widgets for graphics APIs/engines" arch=('i686' 'x86_64' 'mips64el') url="http://crayzedsgui.sourceforge.net" @@ -34,14 +35,20 @@ build() { make } -package() { +package_cegui() { cd $srcdir/CEGUI-${pkgver} make DESTDIR=${pkgdir} install + install -Dm644 doc/COPYING ${pkgdir}/usr/share/licenses/$pkgname/LICENSE +} + +package_cegui-docs() { + pkgdesc="Documentation for cegui" + depends=() + + cd $srcdir/CEGUI-${pkgver} + cd doc/doxygen && doxygen cd .. && make DESTDIR=${pkgdir} install-html - - install -Dm644 COPYING ${pkgdir}/usr/share/licenses/$pkgname/LICENSE } - diff --git a/community/dwb/PKGBUILD b/community/dwb/PKGBUILD index 02fe87130..723fadb50 100644 --- a/community/dwb/PKGBUILD +++ b/community/dwb/PKGBUILD @@ -1,9 +1,9 @@ -#$Id: PKGBUILD 78955 2012-10-28 00:21:35Z dwallace $ +#$Id: PKGBUILD 78983 2012-10-28 16:19:12Z dwallace $ # Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com> # Contributor: portix <portix at gmx.net> pkgname=dwb -pkgver=2012.10.27_3 +pkgver=2012.10.28 pkgrel=1 pkgdesc="A webkit web browser with vi-like keyboard shortcuts, stable snapshot" url="http://portix.bitbucket.org/dwb/" @@ -12,7 +12,6 @@ install=dwb.install license=('GPL') depends=('libwebkit' 'desktop-file-utils') source=(https://bitbucket.org/portix/"${pkgname}"/downloads/"${pkgname}"-"${pkgver}".tar.gz) -md5sums=('2d544b01d3cbee81cc9f6c1c77ca7528') build() { cd "${srcdir}"/"${pkgname}"-"${pkgver}" @@ -22,3 +21,4 @@ package() { cd "${srcdir}"/"${pkgname}"-"${pkgver}" make DESTDIR=${pkgdir} install } +md5sums=('2fcf30fba7879357ed03bed580dd6968') diff --git a/community/exim/PKGBUILD b/community/exim/PKGBUILD index b9026c404..1e44b1a1d 100644 --- a/community/exim/PKGBUILD +++ b/community/exim/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 72787 2012-06-22 12:50:29Z dreisner $ +# $Id: PKGBUILD 78961 2012-10-28 07:30:38Z bpiotrowski $ # Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de> # Contributor: Angel Velasquez <angvp@archlinux.org> # Contributor: judd <jvinet@zeroflux.org> pkgname=exim -pkgver=4.80 -pkgrel=2 +pkgver=4.80.1 +pkgrel=1 pkgdesc="Message Transfer Agent" arch=('x86_64' 'i686' 'mips64el') url='http://www.exim.org/' @@ -27,7 +27,7 @@ source=("http://mirror.switch.ch/ftp/mirror/exim/exim/exim4/exim-$pkgver.tar.bz2 exim@.service exim.socket exim-submission.socket) -sha256sums=('787b6defd37fa75311737bcfc42e9e2b2cc62c5d027eed35bb7d800b2d9a0984' +sha256sums=('9565b10f06be224fd03adafae2e07e6fdbb479f8873e3894ddb13f98eeebe78f' '932c9149b6809c70e94c1256e28325d197bbf80d27322793e217d4b692d49c5a' '48457622b22de9721efe9f143a88e5f5ce833b792d2e757237b6cdb74a1708e6' '7f1408f9c5d905968e665941f5c5efcf9da53e7a0bbef6c66220343bc2ae994b' diff --git a/community/kid3/PKGBUILD b/community/kid3/PKGBUILD index b7a0e6b30..e9cbc21d4 100644 --- a/community/kid3/PKGBUILD +++ b/community/kid3/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 73475 2012-07-08 09:30:25Z ibiru $ +# $Id: PKGBUILD 78979 2012-10-28 15:58:04Z jlichtblau $ # Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> # Contributor: Alois Nespor <alois.nespor@gmail.com> pkgname=kid3 -pkgver=2.1 -pkgrel=4 +pkgver=2.2 +pkgrel=1 pkgdesc="An MP3, Ogg/Vorbis and FLAC tag editor for KDE" arch=('i686' 'x86_64' 'mips64el') url="http://kid3.sourceforge.net/" @@ -14,18 +14,12 @@ makedepends=('automoc4' 'cmake' 'docbook-xml' 'docbook-xsl') options=('!makeflags') install=$pkgname.install changelog=$pkgname.changelog -source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz" - 'ffmpeg-0.11.diff') -sha256sums=('8925bde1a773d767ee9695229e65dfd64dc13edf850294560478f2e02ecc6225' - '76ab3c119817a0e1f26e368afb757488c3865ff634771d4d176e729492991a54') +source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz) +sha256sums=('edd665103d10e78542e99eac88f409c2dcfa9d257c0f774f91a006c55db92443') build() { cd ${pkgname}-${pkgver} - # fix error building with latest ffmpeg - # http://kid3.git.sourceforge.net/git/gitweb.cgi?p=kid3/kid3;a=commit;h=2a91bff2810281e58948f478e9396c73e5c6154a - patch -Np1 -i ${srcdir}/ffmpeg-0.11.diff - cd ${srcdir} mkdir build diff --git a/community/kid3/kid3.changelog b/community/kid3/kid3.changelog index 8c440c611..1e516d68b 100644 --- a/community/kid3/kid3.changelog +++ b/community/kid3/kid3.changelog @@ -1,3 +1,9 @@ +2012-10-28 Jaroslav Lichtblau <dragonlord@aur.archlinux.org> + * kid3 2.2-1 + +2012-06-03 Jaroslav Lichtblau <dragonlord@aur.archlinux.org> + * kid3 2.1-4 ffmpeg 0.11 rebuild + 2012-05-12 Jaroslav Lichtblau <dragonlord@aur.archlinux.org> * kid3 2.1-1 diff --git a/community/libgeotiff/PKGBUILD b/community/libgeotiff/PKGBUILD index b1fc40bb0..fe4316fc1 100644 --- a/community/libgeotiff/PKGBUILD +++ b/community/libgeotiff/PKGBUILD @@ -1,28 +1,32 @@ -# $Id: PKGBUILD 63640 2012-02-05 12:02:48Z ibiru $ -# Maintainer: Brad Fanella <bradfanella@archlinux.us> +# $Id: PKGBUILD 78993 2012-10-28 17:33:39Z jlichtblau $ +# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> +# Contributor: Brad Fanella <bradfanella@archlinux.us> # Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org # Contributor: William Rea <sillywilly@gmail.com> pkgname=libgeotiff -pkgver=1.3.0 -pkgrel=2 +pkgver=1.4.0 +pkgrel=1 pkgdesc="A TIFF based interchange format for georeferenced raster imagery" arch=('i686' 'x86_64' 'mips64el') -license=('custom') url="http://www.remotesensing.org/geotiff" +license=('custom') depends=('libtiff' 'proj' 'libjpeg>=7') options=('!makeflags' '!libtool') +changelog=$pkgname.changelog source=(ftp://ftp.remotesensing.org/pub/geotiff/libgeotiff/$pkgname-$pkgver.tar.gz) -md5sums=('6ac3c22e44711e9a3add9044e40b9527') +sha256sums=('d0acb8d341fd6a8f2c673456e09fdb8f50f91e3166ac934719fe05b30d328329') build() { - cd "$srcdir/$pkgname-$pkgver" - ./configure --prefix=/usr - make + cd ${srcdir}/$pkgname-$pkgver + + ./configure --prefix=/usr + make } package() { - cd "$srcdir/$pkgname-$pkgver" - make DESTDIR="$pkgdir" install - install -D -m644 LICENSE "$pkgdir/usr/share/licenses/libgeotiff/LICENSE" + cd ${srcdir}/$pkgname-$pkgver + + make DESTDIR=${pkgdir} install + install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/libgeotiff/LICENSE } diff --git a/community/libgeotiff/libgeotiff.changelog b/community/libgeotiff/libgeotiff.changelog new file mode 100644 index 000000000..e49948e98 --- /dev/null +++ b/community/libgeotiff/libgeotiff.changelog @@ -0,0 +1,2 @@ +2012-10-28 Jaroslav Lichtblau <dragonlord@aur.archlinux.org> + * libgeotiff 1.4.0-1 diff --git a/community/monit/PKGBUILD b/community/monit/PKGBUILD index 8768a69b5..c10219857 100644 --- a/community/monit/PKGBUILD +++ b/community/monit/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 76973 2012-10-02 18:27:38Z jlichtblau $ +# $Id: PKGBUILD 79004 2012-10-28 18:41:19Z jlichtblau $ # Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> # Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org> # Contributor: Marco Bartholomew <marco@marcobartholomew.com> pkgname=monit pkgver=5.5 -pkgrel=1 +pkgrel=2 pkgdesc="Utility for managing and monitoring, processes, files, directories and devices on a *NIX system" arch=('i686' 'x86_64' 'mips64el') url="http://mmonit.com/monit/" @@ -14,9 +14,10 @@ depends=('openssl') backup=('etc/monitrc') changelog=$pkgname.changelog source=(http://mmonit.com/$pkgname/dist/$pkgname-$pkgver.tar.gz \ - monitd) + monitd monit.service) sha256sums=('8276b060b3f0e6453c9748d421dec044ddae09d3e4c4666e13472aab294d7c53' - 'b235b2fdeec49015d6b74f028d161b289663692f9ee2d2d78cf52d8db87ca496') + 'b235b2fdeec49015d6b74f028d161b289663692f9ee2d2d78cf52d8db87ca496' + 'cf607209e9e5d39e708152dc181525570371fab750f828e890e2b6a00b81ebc4') build() { cd ${srcdir}/$pkgname-$pkgver @@ -33,4 +34,6 @@ package() { install -D -m755 ${srcdir}/monitd ${pkgdir}/etc/rc.d/monitd install -D -m700 monitrc ${pkgdir}/etc/monitrc + + install -D -m644 ${srcdir}/$pkgname.service ${pkgdir}/usr/lib/systemd/system/$pkgname.service } diff --git a/community/monit/monit.changelog b/community/monit/monit.changelog index 7c26c1a39..07cea8e3d 100644 --- a/community/monit/monit.changelog +++ b/community/monit/monit.changelog @@ -1,4 +1,7 @@ 2012-10-02 Jaroslav Lichtblau <dragonlord@aur.archlinux.org> + * monit 5.5-2 systemd .service file added + +2012-10-02 Jaroslav Lichtblau <dragonlord@aur.archlinux.org> * monit 5.5-1 2012-05-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org> diff --git a/community/monit/monit.service b/community/monit/monit.service new file mode 100644 index 000000000..775435a4a --- /dev/null +++ b/community/monit/monit.service @@ -0,0 +1,13 @@ +[Unit] +Description=Pro-active monitoring utility for unix systems +After=network.target + +[Service] +Type=simple +ExecStart=/usr/bin/monit -I +ExecStop=/usr/bin/monit quit +ExecReload=/usr/bin/monit reload + +[Install] +WantedBy=multi-user.target + diff --git a/community/powertop/PKGBUILD b/community/powertop/PKGBUILD index bf0af6acd..2b93da6e3 100644 --- a/community/powertop/PKGBUILD +++ b/community/powertop/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 75422 2012-08-22 21:05:18Z seblu $ +# $Id: PKGBUILD 78981 2012-10-28 15:59:46Z jlichtblau $ # Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> # Contributor: Alexander Fehr <pizzapunk gmail com> # Contributor: Xilon <xilonmu@gmail.com> pkgname=powertop -pkgver=2.1 +pkgver=2.1.1 pkgrel=1 pkgdesc='A tool to diagnose issues with power consumption and power management' arch=('i686' 'x86_64' 'mips64el') @@ -12,18 +12,20 @@ url='https://01.org/powertop/' license=('GPL2') depends=('gcc-libs' 'libnl' 'ncurses' 'pciutils') changelog=$pkgname.changelog -source=("https://01.org/powertop/sites/default/files/downloads/$pkgname-$pkgver.tar.gz") -sha256sums=('3dd4816cca4167063b78d2d7772aff8dc58377d0ed74bf11862412a8a80d2698') +source=($pkgname-$pkgver.tar.gz::https://github.com/fenrus75/powertop/tarball/v2.1.1) +#https://01.org/powertop/sites/default/files/downloads/$pkgname-$pkgver.tar.gz) +sha256sums=('e925230cc9006dbc226aec4dea389b97a0f906a7997b33aca40a1d6bc7568dc4') build() { - cd $pkgname-$pkgver + cd ${srcdir}/*-$pkgname-* + ./autogen.sh ./configure --prefix=/usr make } package() { - cd $pkgname-$pkgver + cd ${srcdir}/*-$pkgname-* - make DESTDIR="$pkgdir" install + make DESTDIR=${pkgdir} install } diff --git a/community/powertop/powertop.changelog b/community/powertop/powertop.changelog index 581da010b..9a53fc3d3 100644 --- a/community/powertop/powertop.changelog +++ b/community/powertop/powertop.changelog @@ -1,3 +1,6 @@ +2012-10-28 Jaroslav Lichtblau (Dragonlord) <dragonlord@aur.archlinux.org> + * powertop 2.1.1-1 + 2012-08-22 Sébastien Luttringer (seblu) <seblu@aur.archlinux.org> * powertop 2.1-1 diff --git a/community/sigil/PKGBUILD b/community/sigil/PKGBUILD index 7d3850cfb..10f5da559 100644 --- a/community/sigil/PKGBUILD +++ b/community/sigil/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 75761 2012-08-30 21:03:36Z spupykin $ +# $Id: PKGBUILD 78965 2012-10-28 10:20:16Z giovanni $ # Maintainer: Giovanni Scafora <giovanni@archlinux.org> # Contributor: Larry Hajali <larryhaja [at] gmail [dot] com> pkgname=sigil -pkgver=0.5.3 +pkgver=0.6.0 pkgrel=1 pkgdesc="WYSIWYG ebook editor" arch=('i686' 'x86_64' 'mips64el') @@ -13,7 +13,7 @@ depends=('qtwebkit' 'boost-libs') makedepends=('cmake' 'gendesk' 'boost') install=sigil.install source=("http://sigil.googlecode.com/files/Sigil-${pkgver}-Code.zip") -md5sums=('83c1a5608a2ec59a83c86ccc1429b5cc') +md5sums=('5f85f06077c572a4105398569fe7dfe6') build() { cd "${srcdir}" diff --git a/community/xemacs/PKGBUILD b/community/xemacs/PKGBUILD index 3568d8c85..ce1655f78 100644 --- a/community/xemacs/PKGBUILD +++ b/community/xemacs/PKGBUILD @@ -1,10 +1,11 @@ -# $Id: PKGBUILD 63784 2012-02-05 12:14:51Z ibiru $ -# Maintainer: juergen <juergen@archlinux.org> -# Contributor : Stéphane Gaudreault <stephane@archlinux.org> +# $Id: PKGBUILD 78989 2012-10-28 17:25:41Z jlichtblau $ +# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> +# Contributor: juergen <juergen@archlinux.org> +# Contributor: Stéphane Gaudreault <stephane@archlinux.org> pkgname=xemacs -pkgver=21.5.31 -pkgrel=5 +pkgver=21.5.32 +pkgrel=1 pkgdesc="An highly customizable open source text editor and application development system forked from GNU Emacs" arch=('i686' 'x86_64' 'mips64el') url="http://www.xemacs.org/" @@ -13,23 +14,15 @@ depends=('db' 'libpng' 'libtiff' 'gpm' 'desktop-file-utils' 'libxaw' 'gdbm' 'gif optdepends=('xorg-fonts-75dpi: X bitmap fonts needed for the interface' 'xorg-fonts-100dpi: X bitmap fonts needed for the interface') makedepends=('xbitmaps') -install=xemacs.install +install=$pkgname.install source=(http://ftp.xemacs.org/pub/xemacs/beta/${pkgname}-${pkgver}.tar.gz - xemacs.desktop - xemacs-21.5.29-optimization-bug.patch) -md5sums=('0185fe905d0b8d8d094d9b60cf262d4a' - 'a4d3d5c0aa2c7ce7bec491f809ca3694' - 'eb061b10ea3bbe1026df5326ae1618e3') + xemacs.desktop) +sha256sums=('5d7473fd4b9ca3278de44882ef004b0028e3ff130ed714831c885893a9cd5e7d' + 'd6dc802cf07519584aa28f3b5f4ae84d5e18b619ddd7e89a04da2f6783125f34') build() { cd "${srcdir}/${pkgname}-${pkgver}" -# Fix problem caused by improper optimization with GCC>=4.1.2 on i686 -# (and possibly other arches). See -# http://tracker.xemacs.org/XEmacs/its/issue354 -# for the upstream bug report. - patch -Np0 -i ../xemacs-21.5.29-optimization-bug.patch - ./configure --build="${CHOST}" --prefix=/usr --with-dynamic \ --without-postgresql --with-athena=xaw \ --enable-database=berkdb --without-ldap \ @@ -62,4 +55,3 @@ package() { rm "${pkgdir}"/usr/share/info/{info.info,texinfo.info-2,cl.info,texinfo.info-1,texinfo.info,standards.info,widget.info} } -# vim: ts=2 sw=2 et ft=sh diff --git a/core/binutils/PKGBUILD b/core/binutils/PKGBUILD index 391389f5c..7f3292210 100644 --- a/core/binutils/PKGBUILD +++ b/core/binutils/PKGBUILD @@ -1,46 +1,34 @@ -# $Id: PKGBUILD 165342 2012-08-16 01:57:38Z allan $ +# $Id: PKGBUILD 169770 2012-10-28 11:11:44Z allan $ # Maintainer: Allan McRae <allan@archlinux.org> # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc pkgname=binutils -pkgver=2.22 -pkgrel=10 -_date=20120323 +pkgver=2.23 +pkgrel=1 pkgdesc="A set of programs to assemble and manipulate binary and object files" arch=('i686' 'x86_64' 'mips64el') url="http://www.gnu.org/software/binutils/" license=('GPL') groups=('base-devel') depends=('glibc>=2.16' 'zlib') -checkdepends=('dejagnu') +checkdepends=('dejagnu' 'bc') options=('!libtool' '!distcc' '!ccache') install=binutils.install -source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2) -md5sums=('de2ac4298732827f8af706fc24020330') - -mksource() { - mkdir ${pkgname}-${_date} - cd ${pkgname}-${_date} - export _TAG=binutils-2_22-branch - export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src' - cvs -z9 co -r $_TAG binutils || return 1 - mv src binutils - tar -cvjf ../binutils-${pkgver}_${_date}.tar.bz2 binutils/* -} +source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.gz{,.sig}) +md5sums=('ed58f50d8920c3f1d9cb110d5c972c27' + '5293d43d444852f71f7c96c6295ba66d') build() { cd ${srcdir} mkdir binutils-build && cd binutils-build - [[ $CARCH == "x86_64" ]] && CONFIGFLAG="--enable-64-bit-bfd --disable-multilib" - [[ $CARCH == "mips64el" ]] && CONFIGFLAG="--disable-multilib --disable-werror" - - ${srcdir}/binutils/configure --prefix=/usr \ + ${srcdir}/binutils-${pkgver}/configure --prefix=/usr \ --with-lib-path=/usr/lib:/usr/local/lib \ + --with-bugurl=https://bugs.archlinux.org/ \ --enable-ld=default --enable-gold \ - --enable-plugins --enable-threads \ - --enable-shared $CONFIGFLAG + --enable-plugins --enable-threads --enable-shared \ + --disable-werror --disable-multilib # check the host environment and makes sure all the necessary tools are available make configure-host @@ -66,11 +54,10 @@ build() { check() { cd ${srcdir}/binutils-build - + + # unset LDFLAGS as testsuite makes assumptions about which ones are active # do not abort on errors - manually check log files - # gold testsuite does not build with _FORTIFY_SOURCE (due to -O0 -Werror) - make CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}" \ - CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}" -k check || true + make LDFLAGS="" -k check || true } package() { @@ -78,8 +65,8 @@ package() { make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install # Add some useful headers - install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include - install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include + install -m644 ${srcdir}/binutils-${pkgver}/include/libiberty.h ${pkgdir}/usr/include + install -m644 ${srcdir}/binutils-${pkgver}/include/demangle.h ${pkgdir}/usr/include # install libraries rebuilt with -fPIC install -m644 libiberty-pic/libiberty.a ${pkgdir}/usr/lib @@ -87,11 +74,11 @@ package() { install -m644 opcodes/libopcodes.a ${pkgdir}/usr/lib # Remove Windows/Novell specific man pages - rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}* + rm ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}* # Remove these symlinks, they are not ABI stable. # Programs should compile static to the .a file. - rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so + rm ${pkgdir}/usr/lib/lib{bfd,opcodes}.so echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so } diff --git a/core/gcc/PKGBUILD b/core/gcc/PKGBUILD index becff84d0..00060ed11 100644 --- a/core/gcc/PKGBUILD +++ b/core/gcc/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 168332 2012-10-08 22:50:16Z allan $ +# $Id: PKGBUILD 169769 2012-10-28 11:11:42Z allan $ # Maintainer: Allan McRae <allan@archlinux.org> # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc @@ -10,29 +10,23 @@ else pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc') fi pkgver=4.7.2 -pkgrel=1 +pkgrel=2 #_snapshot=4.7-20120721 -_libstdcppmanver=20120924 # Note: check source directory name when updating this pkgdesc="The GNU Compiler Collection" arch=('i686' 'x86_64' 'mips64el') license=('GPL' 'LGPL' 'FDL' 'custom') url="http://gcc.gnu.org" -if [[ "${CARCH}" != "mips64el" ]]; then - makedepends=('binutils>=2.22' 'libmpc' 'cloog' 'ppl' 'gcc-ada') -else - makedepends=('binutils>=2.22' 'libmpc' 'cloog' 'ppl') -fi +makedepends=('binutils>=2.23' 'libmpc' 'cloog' 'ppl' 'gcc-ada' 'doxygen') +[[ "$CARCH" != "mips64el" ]] && makedepends+=('gcc-ada') checkdepends=('dejagnu') options=('!libtool' '!emptydirs') source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2 #ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2 - ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2 gcc_pure64.patch gcc_mips64el_lib.patch gcc-4.7.1-libada-pic.patch gcc-4.7.1-libgo-write.patch) md5sums=('cc308a0891e778cfda7a151ab8a6e762' - '7f3d52515daafffb57c287f427381106' 'ced48436c1b3c981d721a829f1094de1' '474b8f5a7dee6ddd96b95a7240bfb961' '2acbc9d35cc9d72329dc71d6b1f162ef' @@ -108,12 +102,16 @@ build() { --disable-build-with-cxx --disable-build-poststage1-with-cxx \ --enable-checking=release make + + # make documentation + cd $CHOST/libstdc++-v3 + make doc-man-doxygen } check() { # Takes days and no one here uses it. if [ "$CARCH" != "mips64el" ] ; then - cd gcc-build + cd ${srcdir}/gcc-build # increase stack size to prevent test failures # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827 @@ -132,7 +130,7 @@ package_gcc-libs() depends=('glibc>=2.16') install=gcc-libs.install - cd gcc-build + cd ${srcdir}/gcc-build make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared for lib in libmudflap libgomp libstdc++-v3/src; do make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES @@ -162,11 +160,11 @@ package_gcc-libs() package_gcc() { pkgdesc="The GNU Compiler Collection - C and C++ frontends" - depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.22' 'libmpc' 'cloog' 'ppl') + depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.23' 'libmpc' 'cloog' 'ppl') groups=('base-devel') install=gcc.install - cd gcc-build + cd ${srcdir}/gcc-build make -j1 DESTDIR=${pkgdir} install @@ -223,8 +221,8 @@ EOF # install the libstdc++ man pages install -dm755 ${pkgdir}/usr/share/man/man3 - install -m644 ${srcdir}/libstdc++-api.${_libstdcppmanver}.man/man3/* \ - ${pkgdir}/usr/share/man/man3/ + install -m644 -t ${pkgdir}/usr/share/man/man3 \ + ${CHOST}/libstdc++-v3/doc/doxygen/man/man3/*.3 # Install Runtime Library Exception install -Dm644 ${_basedir}/COPYING.RUNTIME \ @@ -237,7 +235,7 @@ package_gcc-fortran() depends=("gcc=$pkgver-$pkgrel") install=gcc-fortran.install - cd gcc-build + cd ${srcdir}/gcc-build make -j1 DESTDIR=${pkgdir} install-target-libquadmath make -j1 DESTDIR=$pkgdir install-target-libgfortran make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS @@ -260,7 +258,7 @@ package_gcc-objc() pkgdesc="Objective-C front-end for GCC" depends=("gcc=$pkgver-$pkgrel") - cd gcc-build + cd ${srcdir}/gcc-build make -j1 DESTDIR=$pkgdir install-target-libobjc install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/ install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/ @@ -279,7 +277,7 @@ package_gcc-ada() depends=("gcc=$pkgver-$pkgrel") install=gcc-ada.install - cd gcc-build/gcc + cd ${srcdir}/gcc-build/gcc make -j1 DESTDIR=$pkgdir ada.install-{common,info} install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver @@ -296,7 +294,7 @@ package_gcc-go() depends=("gcc=$pkgver-$pkgrel") install=gcc-go.install - cd gcc-build + cd ${srcdir}/gcc-build make -j1 DESTDIR=$pkgdir install-target-libgo make -j1 -C gcc DESTDIR=$pkgdir go.install-{common,man,info} install -Dm755 gcc/go1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/go1 diff --git a/core/glibc/PKGBUILD b/core/glibc/PKGBUILD index f79528388..4130bedcf 100644 --- a/core/glibc/PKGBUILD +++ b/core/glibc/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 165786 2012-08-29 23:16:00Z allan $ +# $Id: PKGBUILD 169771 2012-10-28 11:11:49Z allan $ # Maintainer: Allan McRae <allan@archlinux.org> # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc @@ -6,7 +6,7 @@ pkgname=glibc pkgver=2.16.0 -pkgrel=4 +pkgrel=5 pkgdesc="GNU C Library" arch=('i686' 'x86_64' 'mips64el') url="http://www.gnu.org/software/libc" @@ -22,10 +22,12 @@ install=glibc.install source=(http://ftp.gnu.org/gnu/libc/${pkgname}-${pkgver}.tar.xz{,.sig} http://ftp.gnu.org/gnu/libc/${pkgname}-ports-${pkgver}.tar.xz{,.sig} glibc-2.15-fix-res_query-assert.patch - glibc-2.15-revert-c5a0802a.patch + glibc-2.16-unlock-mutex.patch glibc-2.16-rpcgen-cpp-path.patch glibc-2.16-strncasecmp-segfault.patch glibc-2.16-strtod-overflow.patch + glibc-2.16-detect-fma.patch + glibc-2.16-glob-use-size_t.patch nscd.rcd nscd.service nscd.tmpfiles @@ -36,16 +38,19 @@ md5sums=('80b181b02ab249524ec92822c0174cf7' '9a2439641be7ca8b01a3175324013031' '218fc97a9f8777ac2688174d431e7722' '31f415b41197d85d3bbee3d1eecd06a3' - '0a0383d50d63f1c02919fe9943b82014' + '0afcd8c6020d61684aba63ed5f26bd91' 'ea6a43915474e8276e9361eed6a01280' 'f042d37cc8ca3459023431809039bc88' '61d322f7681a85d3293ada5c3ccc2c7e' + '2426f593bc43f5499c41d21b57ee0e30' + 'a441353901992feda4b15a11a20140a1' '589d79041aa767a5179eaa4e2737dd3f' - 'ad8a9af15ab7eeaa23dc7ee85024af9f' + 'c1e07c0bec0fe89791bfd9d13fc85edf' 'bccbe5619e75cf1d97312ec3681c605c' '07ac979b6ab5eeb778d55f041529d623' '476e9113489f93b348b21e144b6a8fcf') + build() { cd ${srcdir}/${pkgname}-${pkgver} @@ -53,9 +58,9 @@ build() { # http://sourceware.org/bugzilla/show_bug.cgi?id=13013 patch -p1 -i ${srcdir}/glibc-2.15-fix-res_query-assert.patch - # revert commit c5a0802a - causes various hangs - # https://bugzilla.redhat.com/show_bug.cgi?id=552960 - patch -p1 -i ${srcdir}/glibc-2.15-revert-c5a0802a.patch + # prevent hang by locked mutex + # http://sourceware.org/git/?p=glibc.git;a=patch;h=c30e8edf + patch -p1 -i ${srcdir}/glibc-2.16-unlock-mutex.patch # prevent need for /lib/cpp symlink # http://sourceware.org/git/?p=glibc.git;a=commit;h=bf9b740a @@ -69,6 +74,14 @@ build() { # http://sourceware.org/git/?p=glibc.git;a=commit;h=da1f4319 patch -p1 -i ${srcdir}/glibc-2.16-strtod-overflow.patch + # detect FMA supprt + # http://sourceware.org/git/?p=glibc.git;a=commit;h=a5cfcf08 + patch -p1 -i ${srcdir}/glibc-2.16-detect-fma.patch + + # prevent overflow in globc + # http://sourceware.org/git/?p=glibc.git;a=commit;h=6c62f108 + patch -p1 -i ${srcdir}/glibc-2.16-glob-use-size_t.patch + # ldconfig does not need to look in /usr/lib64 or /usr/libx32 on Arch Linux sed -i "s#add_system_dir#do_not_add_system_dir#" sysdeps/unix/sysv/linux/x86_64/dl-cache.h @@ -124,7 +137,7 @@ build() { check() { cd ${srcdir}/glibc-build - make -k check + make check } package() { diff --git a/core/glibc/glibc-2.16-detect-fma.patch b/core/glibc/glibc-2.16-detect-fma.patch new file mode 100644 index 000000000..daffb9768 --- /dev/null +++ b/core/glibc/glibc-2.16-detect-fma.patch @@ -0,0 +1,72 @@ +diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c +index fb44dcf..fed5ab8 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.c ++++ b/sysdeps/x86_64/multiarch/init-arch.c +@@ -156,6 +156,9 @@ __init_cpu_features (void) + /* Determine if AVX is usable. */ + if (CPUID_AVX) + __cpu_features.feature[index_AVX_Usable] |= bit_AVX_Usable; ++ /* Determine if FMA is usable. */ ++ if (CPUID_FMA) ++ __cpu_features.feature[index_FMA_Usable] |= bit_FMA_Usable; + /* Determine if FMA4 is usable. */ + if (CPUID_FMA4) + __cpu_features.feature[index_FMA4_Usable] |= bit_FMA4_Usable; +diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h +index 45e2651..f33f1c8 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.h ++++ b/sysdeps/x86_64/multiarch/init-arch.h +@@ -22,7 +22,8 @@ + #define bit_Fast_Unaligned_Load (1 << 4) + #define bit_Prefer_PMINUB_for_stringop (1 << 5) + #define bit_AVX_Usable (1 << 6) +-#define bit_FMA4_Usable (1 << 7) ++#define bit_FMA_Usable (1 << 7) ++#define bit_FMA4_Usable (1 << 8) + + /* CPUID Feature flags. */ + #define bit_SSE2 (1 << 26) +@@ -56,6 +57,7 @@ + # define index_Fast_Unaligned_Load FEATURE_INDEX_1*FEATURE_SIZE + # define index_Prefer_PMINUB_for_stringop FEATURE_INDEX_1*FEATURE_SIZE + # define index_AVX_Usable FEATURE_INDEX_1*FEATURE_SIZE ++# define index_FMA_Usable FEATURE_INDEX_1*FEATURE_SIZE + # define index_FMA4_Usable FEATURE_INDEX_1*FEATURE_SIZE + + #else /* __ASSEMBLER__ */ +@@ -131,6 +133,8 @@ extern const struct cpu_features *__get_cpu_features (void) + HAS_CPUID_FLAG (COMMON_CPUID_INDEX_1, ecx, bit_OSXSAVE) + # define CPUID_AVX \ + HAS_CPUID_FLAG (COMMON_CPUID_INDEX_1, ecx, bit_AVX) ++# define CPUID_FMA \ ++ HAS_CPUID_FLAG (COMMON_CPUID_INDEX_1, ecx, bit_FMA) + # define CPUID_FMA4 \ + HAS_CPUID_FLAG (COMMON_CPUID_INDEX_80000001, ecx, bit_FMA4) + +@@ -140,7 +144,6 @@ extern const struct cpu_features *__get_cpu_features (void) + # define HAS_SSSE3 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSSE3) + # define HAS_SSE4_1 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSE4_1) + # define HAS_SSE4_2 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSE4_2) +-# define HAS_FMA HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_FMA) + + # define index_Fast_Rep_String FEATURE_INDEX_1 + # define index_Fast_Copy_Backward FEATURE_INDEX_1 +@@ -148,6 +151,7 @@ extern const struct cpu_features *__get_cpu_features (void) + # define index_Prefer_SSE_for_memop FEATURE_INDEX_1 + # define index_Fast_Unaligned_Load FEATURE_INDEX_1 + # define index_AVX_Usable FEATURE_INDEX_1 ++# define index_FMA_Usable FEATURE_INDEX_1 + # define index_FMA4_Usable FEATURE_INDEX_1 + + # define HAS_ARCH_FEATURE(name) \ +@@ -159,6 +163,7 @@ extern const struct cpu_features *__get_cpu_features (void) + # define HAS_PREFER_SSE_FOR_MEMOP HAS_ARCH_FEATURE (Prefer_SSE_for_memop) + # define HAS_FAST_UNALIGNED_LOAD HAS_ARCH_FEATURE (Fast_Unaligned_Load) + # define HAS_AVX HAS_ARCH_FEATURE (AVX_Usable) ++# define HAS_FMA HAS_ARCH_FEATURE (FMA_Usable) + # define HAS_FMA4 HAS_ARCH_FEATURE (FMA4_Usable) + + #endif /* __ASSEMBLER__ */ +-- +1.7.3.4 + diff --git a/core/glibc/glibc-2.16-glob-use-size_t.patch b/core/glibc/glibc-2.16-glob-use-size_t.patch new file mode 100644 index 000000000..8c5df45be --- /dev/null +++ b/core/glibc/glibc-2.16-glob-use-size_t.patch @@ -0,0 +1,52 @@ +diff --git a/posix/glob.c b/posix/glob.c +index 68ea205..87d4f1b 100644 +--- a/posix/glob.c ++++ b/posix/glob.c +@@ -217,7 +217,7 @@ static int collated_compare (const void *, const void *) __THROW; + static const char * + next_brace_sub (const char *cp, int flags) + { +- unsigned int depth = 0; ++ size_t depth = 0; + while (*cp != '\0') + if ((flags & GLOB_NOESCAPE) == 0 && *cp == '\\') + { +@@ -960,7 +960,7 @@ glob (pattern, flags, errfunc, pglob) + && S_ISDIR (st.st_mode)) + : (__stat64 (dirname, &st64) == 0 && S_ISDIR (st64.st_mode))))) + { +- int newcount = pglob->gl_pathc + pglob->gl_offs; ++ size_t newcount = pglob->gl_pathc + pglob->gl_offs; + char **new_gl_pathv; + + if (newcount > UINTPTR_MAX - (1 + 1) +@@ -1059,7 +1059,7 @@ glob (pattern, flags, errfunc, pglob) + appending the results to PGLOB. */ + for (i = 0; i < dirs.gl_pathc; ++i) + { +- int old_pathc; ++ size_t old_pathc; + + #ifdef SHELL + { +@@ -1114,7 +1114,7 @@ glob (pattern, flags, errfunc, pglob) + /* No matches. */ + if (flags & GLOB_NOCHECK) + { +- int newcount = pglob->gl_pathc + pglob->gl_offs; ++ size_t newcount = pglob->gl_pathc + pglob->gl_offs; + char **new_gl_pathv; + + if (newcount > UINTPTR_MAX - 2 +@@ -1158,7 +1158,7 @@ glob (pattern, flags, errfunc, pglob) + } + else + { +- int old_pathc = pglob->gl_pathc; ++ size_t old_pathc = pglob->gl_pathc; + int orig_flags = flags; + + if (meta & 2) +-- +1.7.3.4 + diff --git a/core/glibc/glibc-2.16-unlock-mutex.patch b/core/glibc/glibc-2.16-unlock-mutex.patch new file mode 100644 index 000000000..0649d3642 --- /dev/null +++ b/core/glibc/glibc-2.16-unlock-mutex.patch @@ -0,0 +1,775 @@ +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -206,7 +206,7 @@ tests = tst-typesizes \ + tst-cond1 tst-cond2 tst-cond3 tst-cond4 tst-cond5 tst-cond6 tst-cond7 \ + tst-cond8 tst-cond9 tst-cond10 tst-cond11 tst-cond12 tst-cond13 \ + tst-cond14 tst-cond15 tst-cond16 tst-cond17 tst-cond18 tst-cond19 \ +- tst-cond20 tst-cond21 tst-cond22 tst-cond23 \ ++ tst-cond20 tst-cond21 tst-cond22 tst-cond23 tst-cond24 \ + tst-robust1 tst-robust2 tst-robust3 tst-robust4 tst-robust5 \ + tst-robust6 tst-robust7 tst-robust8 tst-robust9 \ + tst-robustpi1 tst-robustpi2 tst-robustpi3 tst-robustpi4 tst-robustpi5 \ +@@ -274,6 +275,7 @@ gen-as-const-headers = pthread-errnos.sym + + LDFLAGS-pthread.so = -Wl,--enable-new-dtags,-z,nodelete,-z,initfirst + ++LDFLAGS-tst-cond24 = $(no-as-needed) -lrt + + include ../Makeconfig + +diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S +index d14d7de..6761c13 100644 +--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S ++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S +@@ -212,8 +212,23 @@ __pthread_cond_timedwait: + sete 24(%esp) + je 41f + +- /* Normal and PI futexes dont mix. Use normal futex functions only +- if the kernel does not support the PI futex functions. */ ++ /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns ++ successfully, it has already locked the mutex for us and the ++ pi_flag (24(%esp)) is set to denote that fact. However, if another ++ thread changed the futex value before we entered the wait, the ++ syscall may return an EAGAIN and the mutex is not locked. We go ++ ahead with a success anyway since later we look at the pi_flag to ++ decide if we got the mutex or not. The sequence numbers then make ++ sure that only one of the threads actually wake up. We retry using ++ normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal ++ and PI futexes don't mix. ++ ++ Note that we don't check for EAGAIN specifically; we assume that the ++ only other error the futex function could return is EAGAIN (barring ++ the ETIMEOUT of course, for the timeout case in futex) since ++ anything else would mean an error in our function. It is too ++ expensive to do that check for every call (which is quite common in ++ case of a large number of threads), so it has been skipped. */ + cmpl $-ENOSYS, %eax + jne 41f + xorl %ecx, %ecx +@@ -273,9 +288,24 @@ __pthread_cond_timedwait: + jne 9f + + 15: cmpl $-ETIMEDOUT, %esi +- jne 8b ++ je 28f ++ ++ /* We need to go back to futex_wait. If we're using requeue_pi, then ++ release the mutex we had acquired and go back. */ ++ movl 24(%esp), %edx ++ test %edx, %edx ++ jz 8b ++ ++ /* Adjust the mutex values first and then unlock it. The unlock ++ should always succeed or else the kernel did not lock the mutex ++ correctly. */ ++ movl dep_mutex(%ebx), %eax ++ call __pthread_mutex_cond_lock_adjust ++ xorl %edx, %edx ++ call __pthread_mutex_unlock_usercnt ++ jmp 8b + +- addl $1, wakeup_seq(%ebx) ++28: addl $1, wakeup_seq(%ebx) + adcl $0, wakeup_seq+4(%ebx) + addl $1, cond_futex(%ebx) + movl $ETIMEDOUT, %esi +diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +index 366de69..0af06ac 100644 +--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S ++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +@@ -136,7 +136,6 @@ __pthread_cond_wait: + cmpl $PI_BIT, %eax + jne 18f + +-90: + movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx + movl %ebp, %edx + xorl %esi, %esi +@@ -152,11 +151,22 @@ __pthread_cond_wait: + sete 16(%esp) + je 19f + +- cmpl $-EAGAIN, %eax +- je 91f +- +- /* Normal and PI futexes dont mix. Use normal futex functions only +- if the kernel does not support the PI futex functions. */ ++ /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns ++ successfully, it has already locked the mutex for us and the ++ pi_flag (16(%esp)) is set to denote that fact. However, if another ++ thread changed the futex value before we entered the wait, the ++ syscall may return an EAGAIN and the mutex is not locked. We go ++ ahead with a success anyway since later we look at the pi_flag to ++ decide if we got the mutex or not. The sequence numbers then make ++ sure that only one of the threads actually wake up. We retry using ++ normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal ++ and PI futexes don't mix. ++ ++ Note that we don't check for EAGAIN specifically; we assume that the ++ only other error the futex function could return is EAGAIN since ++ anything else would mean an error in our function. It is too ++ expensive to do that check for every call (which is quite common in ++ case of a large number of threads), so it has been skipped. */ + cmpl $-ENOSYS, %eax + jne 19f + xorl %ecx, %ecx +@@ -206,12 +216,12 @@ __pthread_cond_wait: + cmpl 8(%esp), %edx + jne 7f + cmpl 4(%esp), %edi +- je 8b ++ je 22f + + 7: cmpl %ecx, %edx + jne 9f + cmp %eax, %edi +- je 8b ++ je 22f + + 9: addl $1, woken_seq(%ebx) + adcl $0, woken_seq+4(%ebx) +@@ -287,6 +297,22 @@ __pthread_cond_wait: + jmp 20b + + cfi_adjust_cfa_offset(-FRAME_SIZE); ++ ++ /* We need to go back to futex_wait. If we're using requeue_pi, then ++ release the mutex we had acquired and go back. */ ++22: movl 16(%esp), %edx ++ test %edx, %edx ++ jz 8b ++ ++ /* Adjust the mutex values first and then unlock it. The unlock ++ should always succeed or else the kernel did not lock the mutex ++ correctly. */ ++ movl dep_mutex(%ebx), %eax ++ call __pthread_mutex_cond_lock_adjust ++ xorl %edx, %edx ++ call __pthread_mutex_unlock_usercnt ++ jmp 8b ++ + /* Initial locking failed. */ + 1: + #if cond_lock == 0 +@@ -400,77 +426,6 @@ __pthread_cond_wait: + call __lll_unlock_wake + jmp 11b + +-91: +-.LcleanupSTART2: +- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to +- call it again. */ +- +- /* Get internal lock. */ +- movl $1, %edx +- xorl %eax, %eax +- LOCK +-#if cond_lock == 0 +- cmpxchgl %edx, (%ebx) +-#else +- cmpxchgl %edx, cond_lock(%ebx) +-#endif +- jz 92f +- +-#if cond_lock == 0 +- movl %ebx, %edx +-#else +- leal cond_lock(%ebx), %edx +-#endif +-#if (LLL_SHARED-LLL_PRIVATE) > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex(%ebx) +- setne %cl +- subl $1, %ecx +- andl $(LLL_SHARED-LLL_PRIVATE), %ecx +-#if LLL_PRIVATE != 0 +- addl $LLL_PRIVATE, %ecx +-#endif +- call __lll_lock_wait +- +-92: +- /* Increment the cond_futex value again, so it can be used as a new +- expected value. */ +- addl $1, cond_futex(%ebx) +- movl cond_futex(%ebx), %ebp +- +- /* Unlock. */ +- LOCK +-#if cond_lock == 0 +- subl $1, (%ebx) +-#else +- subl $1, cond_lock(%ebx) +-#endif +- je 93f +-#if cond_lock == 0 +- movl %ebx, %eax +-#else +- leal cond_lock(%ebx), %eax +-#endif +-#if (LLL_SHARED-LLL_PRIVATE) > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex(%ebx) +- setne %cl +- subl $1, %ecx +- andl $(LLL_SHARED-LLL_PRIVATE), %ecx +-#if LLL_PRIVATE != 0 +- addl $LLL_PRIVATE, %ecx +-#endif +- call __lll_unlock_wake +- +-93: +- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */ +- xorl %ecx, %ecx +- movl dep_mutex(%ebx), %edi +- jmp 90b +-.LcleanupEND2: +- + .size __pthread_cond_wait, .-__pthread_cond_wait + versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait, + GLIBC_2_3_2) +@@ -651,10 +606,6 @@ __condvar_w_cleanup: + .long .LcleanupEND-.Lsub_cond_futex + .long __condvar_w_cleanup-.LSTARTCODE + .uleb128 0 +- .long .LcleanupSTART2-.LSTARTCODE +- .long .LcleanupEND2-.LcleanupSTART2 +- .long __condvar_w_cleanup-.LSTARTCODE +- .uleb128 0 + .long .LcallUR-.LSTARTCODE + .long .LENDCODE-.LcallUR + .long 0 +diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +index a1c8ca8..b669abb 100644 +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +@@ -103,7 +103,7 @@ __pthread_cond_timedwait: + mov %RSI_LP, dep_mutex(%rdi) + + 22: +- xorl %r15d, %r15d ++ xorb %r15b, %r15b + + #ifndef __ASSUME_FUTEX_CLOCK_REALTIME + # ifdef PIC +@@ -190,18 +190,39 @@ __pthread_cond_timedwait: + movl $SYS_futex, %eax + syscall + +- movl $1, %r15d ++ cmpl $0, %eax ++ sete %r15b ++ + #ifdef __ASSUME_REQUEUE_PI + jmp 62f + #else +- cmpq $-4095, %rax +- jnae 62f ++ je 62f ++ ++ /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns ++ successfully, it has already locked the mutex for us and the ++ pi_flag (%r15b) is set to denote that fact. However, if another ++ thread changed the futex value before we entered the wait, the ++ syscall may return an EAGAIN and the mutex is not locked. We go ++ ahead with a success anyway since later we look at the pi_flag to ++ decide if we got the mutex or not. The sequence numbers then make ++ sure that only one of the threads actually wake up. We retry using ++ normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal ++ and PI futexes don't mix. ++ ++ Note that we don't check for EAGAIN specifically; we assume that the ++ only other error the futex function could return is EAGAIN (barring ++ the ETIMEOUT of course, for the timeout case in futex) since ++ anything else would mean an error in our function. It is too ++ expensive to do that check for every call (which is quite common in ++ case of a large number of threads), so it has been skipped. */ ++ cmpl $-ENOSYS, %eax ++ jne 62f + + subq $cond_futex, %rdi + #endif + + 61: movl $(FUTEX_WAIT_BITSET|FUTEX_PRIVATE_FLAG), %esi +-60: xorl %r15d, %r15d ++60: xorb %r15b, %r15b + xorl %eax, %eax + /* The following only works like this because we only support + two clocks, represented using a single bit. */ +@@ -248,7 +269,23 @@ __pthread_cond_timedwait: + ja 39f + + 45: cmpq $-ETIMEDOUT, %r14 +- jne 38b ++ je 99f ++ ++ /* We need to go back to futex_wait. If we're using requeue_pi, then ++ release the mutex we had acquired and go back. */ ++ test %r15b, %r15b ++ jz 38b ++ ++ /* Adjust the mutex values first and then unlock it. The unlock ++ should always succeed or else the kernel did not lock the ++ mutex correctly. */ ++ movq %r8, %rdi ++ callq __pthread_mutex_cond_lock_adjust ++ xorl %esi, %esi ++ callq __pthread_mutex_unlock_usercnt ++ /* Reload cond_var. */ ++ movq 8(%rsp), %rdi ++ jmp 38b + + 99: incq wakeup_seq(%rdi) + incl cond_futex(%rdi) +@@ -298,7 +335,7 @@ __pthread_cond_timedwait: + /* If requeue_pi is used the kernel performs the locking of the + mutex. */ + 41: movq 16(%rsp), %rdi +- testl %r15d, %r15d ++ testb %r15b, %r15b + jnz 64f + + callq __pthread_mutex_cond_lock +diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +index 6194852..ec403cd 100644 +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +@@ -136,19 +136,36 @@ __pthread_cond_wait: + cmpl $PI_BIT, %eax + jne 61f + +-90: + movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi + movl $SYS_futex, %eax + syscall + +- movl $1, %r8d +- cmpq $-EAGAIN, %rax +- je 91f ++ cmpl $0, %eax ++ sete %r8b ++ + #ifdef __ASSUME_REQUEUE_PI + jmp 62f + #else +- cmpq $-4095, %rax +- jnae 62f ++ je 62f ++ ++ /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns ++ successfully, it has already locked the mutex for us and the ++ pi_flag (%r8b) is set to denote that fact. However, if another ++ thread changed the futex value before we entered the wait, the ++ syscall may return an EAGAIN and the mutex is not locked. We go ++ ahead with a success anyway since later we look at the pi_flag to ++ decide if we got the mutex or not. The sequence numbers then make ++ sure that only one of the threads actually wake up. We retry using ++ normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal ++ and PI futexes don't mix. ++ ++ Note that we don't check for EAGAIN specifically; we assume that the ++ only other error the futex function could return is EAGAIN since ++ anything else would mean an error in our function. It is too ++ expensive to do that check for every call (which is quite common in ++ case of a large number of threads), so it has been skipped. */ ++ cmpl $-ENOSYS, %eax ++ jne 62f + + # ifndef __ASSUME_PRIVATE_FUTEX + movl $FUTEX_WAIT, %esi +@@ -161,7 +178,7 @@ __pthread_cond_wait: + #else + orl %fs:PRIVATE_FUTEX, %esi + #endif +-60: xorl %r8d, %r8d ++60: xorb %r8b, %r8b + movl $SYS_futex, %eax + syscall + +@@ -191,10 +208,10 @@ __pthread_cond_wait: + jne 16f + + cmpq 24(%rsp), %r9 +- jbe 8b ++ jbe 19f + + cmpq %rax, %r9 +- jna 8b ++ jna 19f + + incq woken_seq(%rdi) + +@@ -236,7 +253,7 @@ __pthread_cond_wait: + /* If requeue_pi is used the kernel performs the locking of the + mutex. */ + 11: movq 16(%rsp), %rdi +- testl %r8d, %r8d ++ testb %r8b, %r8b + jnz 18f + + callq __pthread_mutex_cond_lock +@@ -253,6 +270,23 @@ __pthread_cond_wait: + xorl %eax, %eax + jmp 14b + ++ /* We need to go back to futex_wait. If we're using requeue_pi, then ++ release the mutex we had acquired and go back. */ ++19: testb %r8b, %r8b ++ jz 8b ++ ++ /* Adjust the mutex values first and then unlock it. The unlock ++ should always succeed or else the kernel did not lock the mutex ++ correctly. */ ++ movq 16(%rsp), %rdi ++ callq __pthread_mutex_cond_lock_adjust ++ movq %rdi, %r8 ++ xorl %esi, %esi ++ callq __pthread_mutex_unlock_usercnt ++ /* Reload cond_var. */ ++ movq 8(%rsp), %rdi ++ jmp 8b ++ + /* Initial locking failed. */ + 1: + #if cond_lock != 0 +@@ -331,69 +365,6 @@ __pthread_cond_wait: + 13: movq %r10, %rax + jmp 14b + +-91: +-.LcleanupSTART2: +- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to +- call it again. */ +- movq 8(%rsp), %rdi +- +- /* Get internal lock. */ +- movl $1, %esi +- xorl %eax, %eax +- LOCK +-#if cond_lock == 0 +- cmpxchgl %esi, (%rdi) +-#else +- cmpxchgl %esi, cond_lock(%rdi) +-#endif +- jz 92f +- +-#if cond_lock != 0 +- addq $cond_lock, %rdi +-#endif +- LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi) +- movl $LLL_PRIVATE, %eax +- movl $LLL_SHARED, %esi +- cmovne %eax, %esi +- callq __lll_lock_wait +-#if cond_lock != 0 +- subq $cond_lock, %rdi +-#endif +-92: +- /* Increment the cond_futex value again, so it can be used as a new +- expected value. */ +- incl cond_futex(%rdi) +- movl cond_futex(%rdi), %edx +- +- /* Release internal lock. */ +- LOCK +-#if cond_lock == 0 +- decl (%rdi) +-#else +- decl cond_lock(%rdi) +-#endif +- jz 93f +- +-#if cond_lock != 0 +- addq $cond_lock, %rdi +-#endif +- LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi) +- movl $LLL_PRIVATE, %eax +- movl $LLL_SHARED, %esi +- cmovne %eax, %esi +- /* The call preserves %rdx. */ +- callq __lll_unlock_wake +-#if cond_lock != 0 +- subq $cond_lock, %rdi +-#endif +-93: +- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */ +- xorq %r10, %r10 +- mov dep_mutex(%rdi), %R8_LP +- leaq cond_futex(%rdi), %rdi +- jmp 90b +-.LcleanupEND2: +- + .size __pthread_cond_wait, .-__pthread_cond_wait + versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait, + GLIBC_2_3_2) +@@ -547,10 +518,6 @@ __condvar_cleanup1: + .uleb128 .LcleanupEND-.LcleanupSTART + .uleb128 __condvar_cleanup1-.LSTARTCODE + .uleb128 0 +- .uleb128 .LcleanupSTART2-.LSTARTCODE +- .uleb128 .LcleanupEND2-.LcleanupSTART2 +- .uleb128 __condvar_cleanup1-.LSTARTCODE +- .uleb128 0 + .uleb128 .LcallUR-.LSTARTCODE + .uleb128 .LENDCODE-.LcallUR + .uleb128 0 +diff --git a/nptl/tst-cond24.c b/nptl/tst-cond24.c +new file mode 100644 +index 0000000..2eb2df1 +--- /dev/null ++++ b/nptl/tst-cond24.c +@@ -0,0 +1,249 @@ ++/* Verify that condition variables synchronized by PI mutexes don't hang. ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <pthread.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++#include <errno.h> ++#include <sys/types.h> ++#include <sys/syscall.h> ++#include <unistd.h> ++#include <sys/time.h> ++#include <time.h> ++ ++#define THREADS_NUM 5 ++#define MAXITER 50000 ++ ++static pthread_mutex_t mutex; ++static pthread_mutexattr_t mutex_attr; ++static pthread_cond_t cond; ++static pthread_t threads[THREADS_NUM]; ++static int pending = 0; ++ ++typedef void * (*threadfunc) (void *); ++ ++void * ++thread_fun_timed (void *arg) ++{ ++ int *ret = arg; ++ int rv, i; ++ ++ printf ("Started thread_fun_timed[%d]\n", *ret); ++ ++ for (i = 0; i < MAXITER / THREADS_NUM; i++) ++ { ++ rv = pthread_mutex_lock (&mutex); ++ if (rv) ++ { ++ printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv); ++ *ret = 1; ++ goto out; ++ } ++ ++ while (!pending) ++ { ++ struct timespec ts; ++ clock_gettime(CLOCK_REALTIME, &ts); ++ ts.tv_sec += 20; ++ rv = pthread_cond_timedwait (&cond, &mutex, &ts); ++ ++ /* There should be no timeout either. */ ++ if (rv) ++ { ++ printf ("pthread_cond_wait: %s(%d)\n", strerror (rv), rv); ++ *ret = 1; ++ goto out; ++ } ++ } ++ ++ pending--; ++ ++ rv = pthread_mutex_unlock (&mutex); ++ if (rv) ++ { ++ printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv); ++ *ret = 1; ++ goto out; ++ } ++ } ++ ++ *ret = 0; ++ ++out: ++ return ret; ++} ++ ++void * ++thread_fun (void *arg) ++{ ++ int *ret = arg; ++ int rv, i; ++ ++ printf ("Started thread_fun[%d]\n", *ret); ++ ++ for (i = 0; i < MAXITER / THREADS_NUM; i++) ++ { ++ rv = pthread_mutex_lock (&mutex); ++ if (rv) ++ { ++ printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv); ++ *ret = 1; ++ goto out; ++ } ++ ++ while (!pending) ++ { ++ rv = pthread_cond_wait (&cond, &mutex); ++ ++ if (rv) ++ { ++ printf ("pthread_cond_wait: %s(%d)\n", strerror (rv), rv); ++ *ret = 1; ++ goto out; ++ } ++ } ++ ++ pending--; ++ ++ rv = pthread_mutex_unlock (&mutex); ++ if (rv) ++ { ++ printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv); ++ *ret = 1; ++ goto out; ++ } ++ } ++ ++ *ret = 0; ++ ++out: ++ return ret; ++} ++ ++static int ++do_test_wait (threadfunc f) ++{ ++ int i; ++ int rv; ++ int counter = 0; ++ int retval[THREADS_NUM]; ++ ++ puts ("Starting test"); ++ ++ rv = pthread_mutexattr_init (&mutex_attr); ++ if (rv) ++ { ++ printf ("pthread_mutexattr_init: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ ++ rv = pthread_mutexattr_setprotocol (&mutex_attr, PTHREAD_PRIO_INHERIT); ++ if (rv) ++ { ++ printf ("pthread_mutexattr_setprotocol: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ ++ rv = pthread_mutex_init (&mutex, &mutex_attr); ++ if (rv) ++ { ++ printf ("pthread_mutex_init: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ ++ rv = pthread_cond_init (&cond, NULL); ++ if (rv) ++ { ++ printf ("pthread_cond_init: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ ++ for (i = 0; i < THREADS_NUM; i++) ++ { ++ retval[i] = i; ++ rv = pthread_create (&threads[i], NULL, f, &retval[i]); ++ if (rv) ++ { ++ printf ("pthread_create: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ } ++ ++ for (; counter < MAXITER; counter++) ++ { ++ rv = pthread_mutex_lock (&mutex); ++ if (rv) ++ { ++ printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ ++ if (!(counter % 100)) ++ printf ("counter: %d\n", counter); ++ pending += 1; ++ ++ rv = pthread_cond_signal (&cond); ++ if (rv) ++ { ++ printf ("pthread_cond_signal: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ ++ rv = pthread_mutex_unlock (&mutex); ++ if (rv) ++ { ++ printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ } ++ ++ for (i = 0; i < THREADS_NUM; i++) ++ { ++ void *ret; ++ rv = pthread_join (threads[i], &ret); ++ if (rv) ++ { ++ printf ("pthread_join: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ if (ret && *(int *)ret) ++ { ++ printf ("Thread %d returned with an error\n", i); ++ return 1; ++ } ++ } ++ ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ puts ("Testing pthread_cond_wait"); ++ int ret = do_test_wait (thread_fun); ++ if (ret) ++ return ret; ++ ++ puts ("Testing pthread_cond_timedwait"); ++ return do_test_wait (thread_fun_timed); ++} ++ ++#define TIMEOUT 10 ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +-- +1.7.3.4 + diff --git a/core/glibc/glibc.install b/core/glibc/glibc.install index 7f85ade96..4486a3b2d 100644 --- a/core/glibc/glibc.install +++ b/core/glibc/glibc.install @@ -2,19 +2,19 @@ infodir=usr/share/info filelist=(libc.info{,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11}) post_upgrade() { - sbin/ldconfig -r . - [ -x sbin/init ] && sbin/init u - usr/sbin/locale-gen + ldconfig -r . + [[ ! -e sys/fs/cgroup/systemd && -x sbin/init ]] && init u + locale-gen - [ -x usr/bin/install-info ] || return 0 + [[ -x usr/bin/install-info ]] || return 0 for file in ${filelist[@]}; do - usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null + install-info $infodir/$file.gz $infodir/dir 2> /dev/null done } pre_remove() { - [ -x usr/bin/install-info ] || return 0 + [[ -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 + install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null done } diff --git a/core/glibc/nscd.service b/core/glibc/nscd.service index de5315e9b..bc80a0730 100644 --- a/core/glibc/nscd.service +++ b/core/glibc/nscd.service @@ -9,7 +9,7 @@ ExecStop=/usr/sbin/nscd --shutdown ExecReload=/usr/sbin/nscd -i passwd ExecReload=/usr/sbin/nscd -i group ExecReload=/usr/sbin/nscd -i hosts -ExecReload=/usr/sbin/nscd -i service +ExecReload=/usr/sbin/nscd -i services Restart=always PIDFile=/run/nscd/nscd.pid diff --git a/extra/hefur/PKGBUILD b/extra/hefur/PKGBUILD new file mode 100644 index 000000000..60d6f3ff1 --- /dev/null +++ b/extra/hefur/PKGBUILD @@ -0,0 +1,33 @@ +# $Id: PKGBUILD 169775 2012-10-28 11:34:10Z pierre $ +# Maintainer: Pierre Schmitz <pierre@archlinux.de> +# Contributor: Alexandre Bique <bique.alexandre@gmail.com> + +pkgname=hefur +pkgver=0.3 +pkgrel=2 +pkgdesc='A standalone and lightweight BitTorrent tracker' +arch=('i686' 'x86_64') +url='http://github.com/abique/hefur' +license=('MIT') +makedepends=('cmake') +depends=('gnutls' 'xz') +source=("https://github.com/downloads/abique/${pkgname}/${pkgname}-${pkgver}.tar.xz" + 'hefurd.service') +md5sums=('446ca4e659ce0ca3c8f32b0990ee7f5f' + '79f947bb934fd5784ab59bcb0bc1345a') + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + mkdir build + cd build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make +} + +package() { + cd ${srcdir}/${pkgname}-${pkgver}/build + DESTDIR=${pkgdir} make install + install -D -m644 ${srcdir}/hefurd.service ${pkgdir}/usr/lib/systemd/system/hefurd.service + install -D -m644 ${srcdir}/${pkgname}-${pkgver}/LICENSE ${pkgdir}/usr/share/licenses/hefur/LICENSE + install -d -m755 ${pkgdir}/var/lib/herfurd +} diff --git a/extra/hefur/hefurd.service b/extra/hefur/hefurd.service new file mode 100644 index 000000000..b91e1009d --- /dev/null +++ b/extra/hefur/hefurd.service @@ -0,0 +1,11 @@ +[Unit] +Description=A standalone and lightweight BitTorrent tracker +After=network.target + +[Service] +ExecStart=/usr/bin/hefurd -torrent-dir /var/lib/herfurd +User=nobody +Group=nobody + +[Install] +WantedBy=multi-user.target diff --git a/extra/kdevelop/PKGBUILD b/extra/kdevelop/PKGBUILD index ca90ce462..b61300f51 100644 --- a/extra/kdevelop/PKGBUILD +++ b/extra/kdevelop/PKGBUILD @@ -1,16 +1,21 @@ -# $Id: PKGBUILD 169573 2012-10-23 17:20:12Z andrea $ +# $Id: PKGBUILD 169768 2012-10-28 09:27:58Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Giovanni Scafora <giovanni@archlinux.org> pkgname=kdevelop pkgver=4.4.0 -pkgrel=1 +pkgrel=2 pkgdesc="A C/C++ development environment for KDE" arch=('i686' 'x86_64' 'mips64el') url="http://www.kdevelop.org/" license=('GPL') -depends=('kdebase-workspace' 'kdevplatform' 'kdesdk-okteta' 'kdebase-katepart') -makedepends=('cmake' 'automoc4') +depends=('kdebase-workspace' 'kdevplatform' 'kdebase-katepart') +makedepends=('cmake' 'automoc4' 'kdesdk-okteta') +optdepends=('kdesdk-okteta: hex editor' + 'kdebase-konsole: embedded terminal' + 'git: git support' + 'gdb: gdb support' + 'qt-doc: qt documentation integration') install="${pkgname}.install" source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2") sha1sums=('271a6ab3dd6063175e9ce18810bed7437d451ecf') diff --git a/libre/kdelibs-libre/PKGBUILD b/libre/kdelibs-libre/PKGBUILD index d63eb96f7..2a4f28f33 100644 --- a/libre/kdelibs-libre/PKGBUILD +++ b/libre/kdelibs-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 167425 2012-10-02 09:09:06Z andrea $ +# $Id: PKGBUILD 169397 2012-10-20 10:02:56Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org # Contributor: Pierre Schmitz <pierre@archlinux.de> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> @@ -6,7 +6,7 @@ _pkgname=kdelibs pkgname=kdelibs-libre pkgver=4.9.2 -pkgrel=2 +pkgrel=3 pkgdesc="KDE Core Libraries" arch=('i686' 'x86_64' 'mips64el') url='https://projects.kde.org/projects/kde/kdelibs' @@ -16,7 +16,7 @@ depends=('strigi' 'attica' 'libxss' 'soprano' 'krb5' 'grantlee' 'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'docbook-xsl' 'upower' 'udisks' 'libxcursor' 'phonon' 'qtwebkit' 'media-player-info' 'libxtst') -makedepends=('cmake' 'automoc4' 'avahi' 'libgl' 'hspell') +makedepends=('cmake' 'automoc4' 'avahi' 'libgl' 'hspell' 'mesa') provides=("kdelibs=$pkgver") replaces=('kdelibs') conflicts=('kdelibs') |