summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community-staging/performous/PKGBUILD55
-rw-r--r--community-staging/performous/boost-filesystem-v3.patch135
-rw-r--r--community-staging/performous/ffmpeg-0.11.patch42
-rw-r--r--community-staging/performous/png15.patch33
-rw-r--r--community-testing/nginx/PKGBUILD98
-rw-r--r--community-testing/nginx/nginx68
-rw-r--r--community-testing/nginx/nginx.logrotate8
-rw-r--r--community/bind-geodns/PKGBUILD9
-rw-r--r--community/collectd/PKGBUILD11
-rw-r--r--community/courier-authlib/PKGBUILD14
-rw-r--r--community/courier-authlib/courier-authlib.install26
-rw-r--r--community/courier-authlib/courier-authlib.tmpfiles1
-rwxr-xr-xcommunity/fcron/PKGBUILD9
-rw-r--r--community/john/PKGBUILD33
-rw-r--r--community/lilyterm/PKGBUILD7
-rw-r--r--community/luarocks/PKGBUILD6
-rw-r--r--community/miredo/PKGBUILD11
-rw-r--r--community/mldonkey/PKGBUILD6
-rw-r--r--community/ndisc6/PKGBUILD20
-rw-r--r--community/ndisc6/ndisc6.install3
-rw-r--r--community/privoxy/PKGBUILD7
-rw-r--r--community/python-pyxmpp/PKGBUILD8
-rw-r--r--community/soundkonverter/PKGBUILD6
-rw-r--r--community/soundkonverter/soundkonverter.install6
-rw-r--r--extra/apache/PKGBUILD9
-rw-r--r--extra/apache/apache.install3
-rw-r--r--extra/apache/apache.tmpfiles.conf1
-rw-r--r--extra/dansguardian/PKGBUILD5
-rw-r--r--extra/dovecot/PKGBUILD6
-rw-r--r--extra/dovecot/dovecot.tmpfilesd2
-rw-r--r--extra/eog/PKGBUILD8
-rw-r--r--extra/kactivities/PKGBUILD6
-rw-r--r--extra/kdeaccessibility-jovie/PKGBUILD6
-rw-r--r--extra/kdeaccessibility-kaccessible/PKGBUILD6
-rw-r--r--extra/kdeaccessibility-kmag/PKGBUILD6
-rw-r--r--extra/kdeaccessibility-kmousetool/PKGBUILD6
-rw-r--r--extra/kdeaccessibility-kmouth/PKGBUILD6
-rw-r--r--extra/kdeadmin/PKGBUILD6
-rw-r--r--extra/kdeartwork/PKGBUILD6
-rw-r--r--extra/kdebase-konsole/PKGBUILD6
-rw-r--r--extra/kdebase-runtime/PKGBUILD6
-rw-r--r--extra/kdebase-workspace/PKGBUILD18
-rw-r--r--extra/kdebase/PKGBUILD6
-rw-r--r--extra/kdebindings-kimono/PKGBUILD6
-rw-r--r--extra/kdebindings-korundum/PKGBUILD6
-rw-r--r--extra/kdebindings-kross/PKGBUILD6
-rw-r--r--extra/kdebindings-perlkde/PKGBUILD8
-rw-r--r--extra/kdebindings-perlqt/PKGBUILD8
-rw-r--r--extra/kdebindings-python/PKGBUILD6
-rw-r--r--extra/kdebindings-qtruby/PKGBUILD6
-rw-r--r--extra/kdebindings-qyoto/PKGBUILD6
-rw-r--r--extra/kdebindings-smokegen/PKGBUILD6
-rw-r--r--extra/kdebindings-smokekde/PKGBUILD6
-rw-r--r--extra/kdebindings-smokeqt/PKGBUILD6
-rw-r--r--extra/kdeedu-analitza/PKGBUILD6
-rw-r--r--extra/kdeedu-blinken/PKGBUILD6
-rw-r--r--extra/kdeedu-cantor/PKGBUILD6
-rw-r--r--extra/kdeedu-kalgebra/PKGBUILD6
-rw-r--r--extra/kdeedu-kalzium/PKGBUILD6
-rw-r--r--extra/kdeedu-kanagram/PKGBUILD6
-rw-r--r--extra/kdeedu-kbruch/PKGBUILD6
-rw-r--r--extra/kdeedu-kgeography/PKGBUILD6
-rw-r--r--extra/kdeedu-khangman/PKGBUILD6
-rw-r--r--extra/kdeedu-kig/PKGBUILD6
-rw-r--r--extra/kdeedu-kiten/PKGBUILD6
-rw-r--r--extra/kdeedu-klettres/PKGBUILD6
-rw-r--r--extra/kdeedu-kmplot/PKGBUILD6
-rw-r--r--extra/kdeedu-kstars/PKGBUILD6
-rw-r--r--extra/kdeedu-ktouch/PKGBUILD6
-rw-r--r--extra/kdeedu-kturtle/PKGBUILD6
-rw-r--r--extra/kdeedu-kwordquiz/PKGBUILD6
-rw-r--r--extra/kdeedu-marble/PKGBUILD6
-rw-r--r--extra/kdeedu-parley/PKGBUILD6
-rw-r--r--extra/kdeedu-rocs/PKGBUILD6
-rw-r--r--extra/kdeedu-step/PKGBUILD6
-rw-r--r--extra/kdegames/PKGBUILD6
-rw-r--r--extra/kdegraphics-gwenview/PKGBUILD6
-rw-r--r--extra/kdegraphics-kamera/PKGBUILD6
-rw-r--r--extra/kdegraphics-kcolorchooser/PKGBUILD6
-rw-r--r--extra/kdegraphics-kgamma/PKGBUILD6
-rw-r--r--extra/kdegraphics-kolourpaint/PKGBUILD6
-rw-r--r--extra/kdegraphics-kruler/PKGBUILD6
-rw-r--r--extra/kdegraphics-ksaneplugin/PKGBUILD6
-rw-r--r--extra/kdegraphics-ksnapshot/PKGBUILD6
-rw-r--r--extra/kdegraphics-mobipocket/PKGBUILD6
-rw-r--r--extra/kdegraphics-okular/PKGBUILD8
-rw-r--r--extra/kdegraphics-strigi-analyzer/PKGBUILD6
-rw-r--r--extra/kdegraphics-svgpart/PKGBUILD6
-rw-r--r--extra/kdegraphics-thumbnailers/PKGBUILD6
-rw-r--r--extra/kdemultimedia/PKGBUILD33
-rw-r--r--extra/kdemultimedia/ffmpeg0.11.patch29
-rw-r--r--extra/kdenetwork/PKGBUILD15
-rw-r--r--extra/kdepim-runtime/PKGBUILD15
-rw-r--r--extra/kdepim/PKGBUILD6
-rw-r--r--extra/kdepimlibs/PKGBUILD6
-rw-r--r--extra/kdeplasma-addons/PKGBUILD6
-rw-r--r--extra/kdesdk-kate/PKGBUILD6
-rw-r--r--extra/kdesdk/PKGBUILD6
-rw-r--r--extra/kdetoys/PKGBUILD6
-rw-r--r--extra/kdeutils-filelight/PKGBUILD6
-rw-r--r--extra/kdeutils-kcalc/PKGBUILD6
-rw-r--r--extra/kdeutils-kcharselect/PKGBUILD6
-rw-r--r--extra/kdeutils-kdf/PKGBUILD6
-rw-r--r--extra/kdeutils-kfloppy/PKGBUILD6
-rw-r--r--extra/kdeutils-kgpg/PKGBUILD6
-rw-r--r--extra/kdeutils-kremotecontrol/PKGBUILD4
-rw-r--r--extra/kdeutils-ksecrets/PKGBUILD6
-rw-r--r--extra/kdeutils-ktimer/PKGBUILD6
-rw-r--r--extra/kdeutils-kwallet/PKGBUILD6
-rw-r--r--extra/kdeutils-superkaramba/PKGBUILD6
-rw-r--r--extra/kdeutils-sweeper/PKGBUILD6
-rw-r--r--extra/kdewebdev/PKGBUILD6
-rw-r--r--extra/libkdcraw/PKGBUILD6
-rw-r--r--extra/libkdeedu/PKGBUILD6
-rw-r--r--extra/libkexiv2/PKGBUILD6
-rw-r--r--extra/libkipi/PKGBUILD4
-rw-r--r--extra/libksane/PKGBUILD6
-rw-r--r--extra/proftpd/PKGBUILD17
-rwxr-xr-xextra/proftpd/proftpd4
-rw-r--r--extra/samba/PKGBUILD15
-rwxr-xr-xextra/samba/samba9
-rw-r--r--extra/samba/samba.conf1
-rw-r--r--extra/samba/samba.install7
-rw-r--r--extra/squid/PKGBUILD11
-rw-r--r--multilib-testing/lib32-glibc/PKGBUILD283
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch132
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch26
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch28
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch24
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-arena.patch29
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-avx.patch196
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-confstr-local-buffer-extent.patch297
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files-2.patch20
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files.patch124
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-feraiseexcept-plt.patch20
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-fix-res_query-assert.patch51
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-fmtmsg-locking.patch148
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-gb18030.patch.gzbin0 -> 470126 bytes
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-ifunc.patch262
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-lddebug-scopes.patch27
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-multiarch-x86-strcmp.patch39
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-nearbyintf-rounding.patch75
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-negative-result-cache.patch138
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-non-signalling-comparisons.patch886
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-regex.patch16
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-revert-c5a0802a.patch229
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-revert-netlink-cache.patch680
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-rintf-rounding.patch158
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-scanf.patch19
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-strcasecmp-disable-avx.patch48
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-testsuite.patch110
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-vdso.patch40
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.15-vfprintf-nargs.patch180
-rw-r--r--multilib-testing/lib32-glibc/glibc-__i686.patch31
-rw-r--r--multilib-testing/lib32-glibc/lib32-glibc.conf1
-rw-r--r--multilib/lib32-gnutls/PKGBUILD8
-rw-r--r--multilib/wine/PKGBUILD8
-rw-r--r--staging/alsa-plugins/PKGBUILD42
-rw-r--r--staging/alsa-plugins/alsa-plugins-1.0.25-ffmpeg-0.11-obsolete-avcodec_init.patch11
-rw-r--r--staging/alsa-plugins/alsa-plugins-1.0.25-ffmpeg-0.11-renamed-CH_LAYOUT-defs-v2.patch29
-rw-r--r--staging/kdemultimedia/PKGBUILD4
-rw-r--r--staging/krb5/PKGBUILD92
-rw-r--r--staging/krb5/krb5-1.10.1-gcc47.patch11
-rw-r--r--staging/krb5/krb5-kadmind40
-rw-r--r--staging/krb5/krb5-kadmind.service8
-rw-r--r--staging/krb5/krb5-kdc40
-rw-r--r--staging/krb5/krb5-kdc.service9
-rw-r--r--staging/krb5/krb5-kpropd40
-rw-r--r--staging/krb5/krb5-kpropd.service8
-rw-r--r--staging/krb5/krb5-kpropd.socket9
-rw-r--r--testing/cairo/PKGBUILD61
-rw-r--r--testing/cairo/cairo-1.10.0-buggy_gradients.patch13
-rw-r--r--testing/cairo/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch275
-rw-r--r--testing/cairo/git_fixes.patch1086
-rw-r--r--testing/dmraid/PKGBUILD40
-rw-r--r--testing/dmraid/dmraid.install14
-rw-r--r--testing/dmraid/dmraid_hook14
-rw-r--r--testing/dmraid/dmraid_install22
-rw-r--r--testing/dmraid/dmraid_tmpfiles1
-rw-r--r--testing/glibc/PKGBUILD321
-rw-r--r--testing/glibc/glibc-2.14-libdl-crash.patch132
-rw-r--r--testing/glibc/glibc-2.14-reexport-rpc-interface.patch26
-rw-r--r--testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch28
-rw-r--r--testing/glibc/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch24
-rw-r--r--testing/glibc/glibc-2.15-arena.patch29
-rw-r--r--testing/glibc/glibc-2.15-avx.patch196
-rw-r--r--testing/glibc/glibc-2.15-confstr-local-buffer-extent.patch297
-rw-r--r--testing/glibc/glibc-2.15-do-not-install-timezone-files-2.patch20
-rw-r--r--testing/glibc/glibc-2.15-do-not-install-timezone-files.patch124
-rw-r--r--testing/glibc/glibc-2.15-feraiseexcept-plt.patch20
-rw-r--r--testing/glibc/glibc-2.15-fix-res_query-assert.patch51
-rw-r--r--testing/glibc/glibc-2.15-fmtmsg-locking.patch148
-rw-r--r--testing/glibc/glibc-2.15-gb18030.patch.gzbin0 -> 470126 bytes
-rw-r--r--testing/glibc/glibc-2.15-ifunc.patch262
-rw-r--r--testing/glibc/glibc-2.15-lddebug-scopes.patch27
-rw-r--r--testing/glibc/glibc-2.15-multiarch-x86-strcmp.patch39
-rw-r--r--testing/glibc/glibc-2.15-nearbyintf-rounding.patch75
-rw-r--r--testing/glibc/glibc-2.15-negative-result-cache.patch138
-rw-r--r--testing/glibc/glibc-2.15-non-signalling-comparisons.patch886
-rw-r--r--testing/glibc/glibc-2.15-regex.patch16
-rw-r--r--testing/glibc/glibc-2.15-revert-c5a0802a.patch229
-rw-r--r--testing/glibc/glibc-2.15-revert-netlink-cache.patch680
-rw-r--r--testing/glibc/glibc-2.15-rintf-rounding.patch158
-rw-r--r--testing/glibc/glibc-2.15-scanf.patch19
-rw-r--r--testing/glibc/glibc-2.15-strcasecmp-disable-avx.patch48
-rw-r--r--testing/glibc/glibc-2.15-testsuite.patch110
-rw-r--r--testing/glibc/glibc-2.15-vdso.patch40
-rw-r--r--testing/glibc/glibc-2.15-vfprintf-nargs.patch180
-rw-r--r--testing/glibc/glibc-__i686.patch31
-rw-r--r--testing/glibc/glibc.install20
-rwxr-xr-xtesting/glibc/locale-gen42
-rw-r--r--testing/glibc/locale.gen.txt23
-rwxr-xr-xtesting/glibc/nscd40
213 files changed, 11592 insertions, 407 deletions
diff --git a/community-staging/performous/PKGBUILD b/community-staging/performous/PKGBUILD
new file mode 100644
index 000000000..33ece8523
--- /dev/null
+++ b/community-staging/performous/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 72124 2012-06-08 22:02:52Z lcarlier $
+# Maintainer : Laurent Carlier <lordheavym@gmail.com>
+# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
+
+pkgname=performous
+pkgver=0.6.1
+pkgrel=14
+pkgdesc='A free game like "Singstar", "Rockband" or "Stepmania"'
+arch=('i686' 'x86_64')
+url="http://performous.org/"
+license=('GPL')
+depends=('boost-libs' 'imagemagick' 'glew' 'libxml++' 'portaudio' 'portmidi' 'opencv' 'librsvg')
+#depends=('boost-libs>=1.48' 'sdl' 'jack' 'imagemagick' 'ffmpeg' 'glew>=1.7.0' 'libxml++' 'portaudio' 'portmidi' \
+# 'opencv' 'librsvg' 'libjpeg' 'libpng' 'cairo')
+makedepends=('cmake' 'pkgconfig' 'help2man' 'boost>=1.48')
+optdepends=('performous-freesongs: free songs for performous')
+source=(http://sourceforge.net/projects/$pkgname/files/$pkgname/$pkgver/Performous-$pkgver-Source.tar.bz2
+ boost-filesystem-v3.patch
+ ffmpeg-0.11.patch
+ png15.patch)
+md5sums=('451a759de77984b5a699e91107fe52e2'
+ '42a8c825d80b0de16bd5752d2a80e585'
+ '07e52e926595d053155bbfb7168e308f'
+ '89157d5e21b0efd09fcbeee299d23c7e')
+
+build() {
+ cd ${srcdir}/Performous-${pkgver}-Source
+
+ # fix to built against boost 1.46 and later, upstream (git) now support v3
+ patch -Np1 -i ../boost-filesystem-v3.patch
+ # fix with ffmpeg-0.11
+ patch -Np1 -i ../ffmpeg-0.11.patch
+ # fix for libpng 1.5
+ patch -Np1 -i ../png15.patch
+ # fix glib2.0 building
+ # #error "Only <glib.h> can be included directly."
+ sed -i -e 's#/gconvert.h#.h#g' game/unicode.cc
+
+ mkdir -p build
+ cd build
+
+ # fix config loading with libxml++
+ export LDFLAGS=${LDFLAGS/-Wl,--as-needed/}
+
+ cmake -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr ..
+
+ make
+}
+
+package() {
+ cd ${srcdir}/Performous-${pkgver}-Source/build
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community-staging/performous/boost-filesystem-v3.patch b/community-staging/performous/boost-filesystem-v3.patch
new file mode 100644
index 000000000..22dd07213
--- /dev/null
+++ b/community-staging/performous/boost-filesystem-v3.patch
@@ -0,0 +1,135 @@
+diff --git a/game/backgrounds.cc b/game/backgrounds.cc
+index 7fd3cd0..cdedefb 100644
+--- a/game/backgrounds.cc
++++ b/game/backgrounds.cc
+@@ -55,8 +55,13 @@ void Backgrounds::reload_internal(fs::path const& parent) {
+ for (fs::directory_iterator dirIt(parent), dirEnd; m_loading && dirIt != dirEnd; ++dirIt) {
+ fs::path p = dirIt->path();
+ if (fs::is_directory(p)) { reload_internal(p); continue; }
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string name = p.leaf(); // File basename
+ std::string path = p.directory_string(); // Path without filename
++#else
++ std::string name = p.filename().string(); // File basename
++ std::string path = p.string(); // Path without filename
++#endif
+ path.erase(path.size() - name.size());
+ if (!regex_match(name.c_str(), match, expression)) continue;
+ {
+diff --git a/game/cache.cc b/game/cache.cc
+index 69974e2..0f1edd0 100644
+--- a/game/cache.cc
++++ b/game/cache.cc
+@@ -9,7 +9,11 @@ namespace cache {
+ fs::path constructSVGCacheFileName(fs::path const& svgfilename, double factor){
+ fs::path cache_filename;
+ std::string const lod = (boost::format("%.2f") % factor).str();
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string const cache_basename = svgfilename.filename() + ".cache_" + lod + ".png";
++#else
++ std::string const cache_basename = svgfilename.filename().string() + ".cache_" + lod + ".png";
++#endif
+
+ if (isThemeResource(svgfilename)) {
+ std::string const theme_name = (config["game/theme"].s().empty() ? "default" : config["game/theme"].s());
+diff --git a/game/filemagic.hh b/game/filemagic.hh
+index bf87ded..29e81fe 100644
+--- a/game/filemagic.hh
++++ b/game/filemagic.hh
+@@ -71,7 +71,11 @@ namespace filemagic {
+ // For now, just check the extension an assume it's not lying.
+
+ // Get file extension in lower case
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string ext = filename.extension();
++#else
++ std::string ext = filename.extension().string();
++#endif
+ // somehow this does not convert the extension to lower case:
+ //std::for_each(ext.begin(), ext.end(), static_cast<int(*)(int)>(std::tolower));
+ std::transform(ext.begin(), ext.end(), ext.begin(), ::tolower );
+diff --git a/game/fs.cc b/game/fs.cc
+index e34a784..767a7ab 100644
+--- a/game/fs.cc
++++ b/game/fs.cc
+@@ -128,7 +128,11 @@ std::string getThemePath(std::string const& filename) {
+
+ bool isThemeResource(fs::path filename){
+ try {
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string themefile = getThemePath(filename.filename());
++#else
++ std::string themefile = getThemePath(filename.filename().string());
++#endif
+ return themefile == filename;
+ } catch (...) { return false; }
+ }
+diff --git a/game/songparser-ini.cc b/game/songparser-ini.cc
+index 38e163b..db15d79 100644
+--- a/game/songparser-ini.cc
++++ b/game/songparser-ini.cc
+@@ -104,7 +104,11 @@ void SongParser::iniParseHeader() {
+ // Search the dir for the music files
+ for (boost::filesystem::directory_iterator dirIt(s.path), dirEnd; dirIt != dirEnd; ++dirIt) {
+ boost::filesystem::path p = dirIt->path();
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string name = p.leaf(); // File basename (notes.txt)
++#else
++ std::string name = p.filename().string(); // File basename (notes.txt)
++#endif
+ if (regex_match(name.c_str(), match, midifile)) {
+ s.midifilename = name;
+ } else if (regex_match(name.c_str(), match, audiofile_background)) {
+diff --git a/game/songparser.cc b/game/songparser.cc
+index 2b7b9b4..ac9f3f6 100644
+--- a/game/songparser.cc
++++ b/game/songparser.cc
+@@ -100,7 +100,11 @@ SongParser::SongParser(Song& s):
+
+ for (boost::filesystem::directory_iterator dirIt(s.path), dirEnd; dirIt != dirEnd; ++dirIt) {
+ boost::filesystem::path p = dirIt->path();
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string name = p.leaf(); // File basename
++#else
++ std::string name = p.filename().string(); // File basename
++#endif
+ if (m_song.cover.empty() && regex_match(name.c_str(), match, coverfile)) {
+ m_song.cover = name;
+ } else if (m_song.background.empty() && regex_match(name.c_str(), match, backgroundfile)) {
+diff --git a/game/songs.cc b/game/songs.cc
+index 62ab26d..afab383 100644
+--- a/game/songs.cc
++++ b/game/songs.cc
+@@ -67,8 +67,13 @@ void Songs::reload_internal(fs::path const& parent) {
+ for (fs::directory_iterator dirIt(parent), dirEnd; m_loading && dirIt != dirEnd; ++dirIt) {
+ fs::path p = dirIt->path();
+ if (fs::is_directory(p)) { reload_internal(p); continue; }
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string name = p.leaf(); // File basename (notes.txt)
+ std::string path = p.directory_string(); // Path without filename
++#else
++ std::string name = p.filename().string(); // File basename (notes.txt)
++ std::string path = p.string(); // Path without filename
++#endif
+ path.erase(path.size() - name.size());
+ if (!regex_match(name.c_str(), match, expression)) continue;
+ try {
+diff --git a/tools/ss_helpers.hh b/tools/ss_helpers.hh
+index 58e19dc..8895d94 100644
+--- a/tools/ss_helpers.hh
++++ b/tools/ss_helpers.hh
+@@ -10,7 +10,11 @@ extern "C" void xmlLogger(void* logger, char const* msg, ...) { if (logger) *(st
+ void enableXMLLogger(std::ostream& os = std::cerr) { xmlSetGenericErrorFunc(&os, xmlLogger); }
+ void disableXMLLogger() { xmlSetGenericErrorFunc(NULL, xmlLogger); }
+
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string filename(boost::filesystem::path const& p) { return *--p.end(); }
++#else
++std::string filename(boost::filesystem::path const& p) { return p.filename().string(); }
++#endif
+
+ /** Fix Singstar's b0rked XML **/
+ std::string xmlFix(std::vector<char> const& data) {
+--
+1.7.4.1
+
diff --git a/community-staging/performous/ffmpeg-0.11.patch b/community-staging/performous/ffmpeg-0.11.patch
new file mode 100644
index 000000000..2962123ed
--- /dev/null
+++ b/community-staging/performous/ffmpeg-0.11.patch
@@ -0,0 +1,42 @@
+diff -ru Performous-0.6.1-Source/game/ffmpeg.cc Performous-0.6.1a-Source/game/ffmpeg.cc
+--- Performous-0.6.1-Source/game/ffmpeg.cc 2010-10-31 16:05:43.000000000 +0000
++++ Performous-0.6.1a-Source/game/ffmpeg.cc 2012-06-08 21:40:10.876636789 +0000
+@@ -47,11 +47,17 @@
+ return d >= 0.0 ? d : getInf();
+ }
+
++// FFMPEG has fluctuating API
++#if LIBAVCODEC_VERSION_INT < ((52<<16)+(64<<8)+0)
++#define AVMEDIA_TYPE_VIDEO CODEC_TYPE_VIDEO
++#define AVMEDIA_TYPE_AUDIO CODEC_TYPE_AUDIO
++#endif
++
+ void FFmpeg::open() {
+ boost::mutex::scoped_lock l(s_avcodec_mutex);
+ av_register_all();
+ av_log_set_level(AV_LOG_ERROR);
+- if (av_open_input_file(&pFormatCtx, m_filename.c_str(), NULL, 0, NULL)) throw std::runtime_error("Cannot open input file");
++ if (avformat_open_input(&pFormatCtx, m_filename.c_str(), NULL, NULL)) throw std::runtime_error("Cannot open input file");
+ if (av_find_stream_info(pFormatCtx) < 0) throw std::runtime_error("Cannot find stream information");
+ pFormatCtx->flags |= AVFMT_FLAG_GENPTS;
+ videoStream = -1;
+@@ -60,8 +66,8 @@
+ for (unsigned int i=0; i<pFormatCtx->nb_streams; i++) {
+ AVCodecContext* cc = pFormatCtx->streams[i]->codec;
+ cc->workaround_bugs = FF_BUG_AUTODETECT;
+- if (videoStream == -1 && cc->codec_type==CODEC_TYPE_VIDEO) videoStream = i;
+- if (audioStream == -1 && cc->codec_type==CODEC_TYPE_AUDIO) audioStream = i;
++ if (videoStream == -1 && cc->codec_type==AVMEDIA_TYPE_VIDEO) videoStream = i;
++ if (audioStream == -1 && cc->codec_type==AVMEDIA_TYPE_AUDIO) audioStream = i;
+ }
+ if (videoStream == -1 && decodeVideo) throw std::runtime_error("No video stream found");
+ if (audioStream == -1 && decodeAudio) throw std::runtime_error("No audio stream found");
+@@ -92,7 +98,7 @@
+ pAudioCodecCtx = cc;
+ #if LIBAVCODEC_VERSION_INT > ((52<<16)+(12<<8)+0)
+ pResampleCtx = av_audio_resample_init(AUDIO_CHANNELS, cc->channels, m_rate, cc->sample_rate,
+- SAMPLE_FMT_S16, SAMPLE_FMT_S16, 16, 10, 0, 0.8);
++ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16, 16, 10, 0, 0.8);
+ #else
+ pResampleCtx = audio_resample_init(AUDIO_CHANNELS, cc->channels, m_rate, cc->sample_rate);
+ #endif
diff --git a/community-staging/performous/png15.patch b/community-staging/performous/png15.patch
new file mode 100644
index 000000000..b6fb8fb14
--- /dev/null
+++ b/community-staging/performous/png15.patch
@@ -0,0 +1,33 @@
+diff -ur Performous-0.6.1-Source/cmake/Modules/FindPng.cmake Performous-0.6.1a-Source/cmake/Modules/FindPng.cmake
+--- Performous-0.6.1-Source/cmake/Modules/FindPng.cmake 2010-10-31 17:05:44.000000000 +0100
++++ Performous-0.6.1a-Source/cmake/Modules/FindPng.cmake 2012-01-29 01:07:56.339648832 +0100
+@@ -10,7 +10,7 @@
+
+ include(LibFindMacros)
+
+-libfind_pkg_check_modules(Png_PKGCONF Png)
++libfind_pkg_check_modules(Png_PKGCONF libpng)
+
+ find_path(Png_INCLUDE_DIR
+ NAMES pngconf.h
+@@ -18,7 +18,7 @@
+ )
+
+ find_library(Png_LIBRARY
+- NAMES png png12 png14
++ NAMES png png12 png14 png15
+ PATHS ${Png_PKGCONF_LIBRARY_DIRS}
+ )
+
+diff -ur Performous-0.6.1-Source/game/image.hh Performous-0.6.1a-Source/game/image.hh
+--- Performous-0.6.1-Source/game/image.hh 2010-10-31 17:05:43.000000000 +0100
++++ Performous-0.6.1a-Source/game/image.hh 2012-01-29 01:44:16.050575186 +0100
+@@ -26,7 +26,7 @@
+ }
+ void loadPNG_internal(png_structp pngPtr, png_infop infoPtr, std::ifstream& file, std::vector<unsigned char>& image, std::vector<png_bytep>& rows, unsigned& w, unsigned& h) {
+ if (setjmp(png_jmpbuf(pngPtr))) throw std::runtime_error("Reading PNG failed");
+- png_set_read_fn(pngPtr,(voidp)&file, readPngHelper);
++ png_set_read_fn(pngPtr, &file, readPngHelper);
+ png_read_info(pngPtr, infoPtr);
+ png_set_expand(pngPtr); // Expand everything to RGB(A)
+ png_set_strip_16(pngPtr); // Strip everything down to 8 bit/component
diff --git a/community-testing/nginx/PKGBUILD b/community-testing/nginx/PKGBUILD
new file mode 100644
index 000000000..c9417a8c1
--- /dev/null
+++ b/community-testing/nginx/PKGBUILD
@@ -0,0 +1,98 @@
+# $Id: PKGBUILD 72073 2012-06-08 08:31:13Z bpiotrowski $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Bartłomiej Piotrowski <barthalion@gmal.com>
+# Contributor: Miroslaw Szot <mss@czlug.icis.pcz.pl>
+
+pkgname=nginx
+pkgver=1.2.1
+pkgrel=2
+pkgdesc="lightweight HTTP server and IMAP/POP3 proxy server"
+arch=('i686' 'x86_64')
+depends=('pcre' 'zlib' 'openssl')
+makedepends=('passenger')
+optdepends=('passenger')
+url="http://nginx.org"
+license=('custom')
+backup=('etc/nginx/fastcgi.conf'
+ 'etc/nginx/fastcgi_params'
+ 'etc/nginx/koi-win'
+ 'etc/nginx/koi-utf'
+ 'etc/nginx/mime.types'
+ 'etc/nginx/nginx.conf'
+ 'etc/nginx/scgi_params'
+ 'etc/nginx/uwsgi_params'
+ 'etc/nginx/win-utf'
+ 'etc/logrotate.d/nginx')
+source=(http://nginx.org/download/nginx-$pkgver.tar.gz
+ nginx
+ nginx.logrotate)
+md5sums=('ceacae12d66d1f021bf3737a0269b6f4'
+ 'f62c7c9b5a53471d4666a4c49ad363fb'
+ 'b38744739022876554a0444d92e6603b')
+
+_cfgdir=/etc/nginx
+_tmpdir=/var/tmp/nginx
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ ./configure \
+ --prefix=$_cfgdir \
+ --conf-path=$_cfgdir/nginx.conf \
+ --sbin-path=/usr/sbin/nginx \
+ --pid-path=/var/run/nginx.pid \
+ --lock-path=/var/lock/nginx.lock \
+ --user=http --group=http \
+ --http-log-path=/var/log/nginx/access.log \
+ --error-log-path=/var/log/nginx/error.log \
+ --http-client-body-temp-path=$_tmpdir/client-body \
+ --http-proxy-temp-path=$_tmpdir/proxy \
+ --http-fastcgi-temp-path=$_tmpdir/fastcgi \
+ --http-scgi-temp-path=$_tmpdir/scgi \
+ --http-uwsgi-temp-path=$_tmpdir/uwsgi \
+ --with-imap --with-imap_ssl_module \
+ --with-ipv6 --with-pcre-jit \
+ --with-file-aio \
+ --with-http_dav_module \
+ --with-http_gzip_static_module \
+ --with-http_realip_module \
+ --with-http_ssl_module \
+ --with-http_stub_status_module \
+ --add-module=/usr/lib/passenger/ext/nginx \
+ #--with-http_mp4_module \
+ #--with-http_realip_module \
+ #--with-http_addition_module \
+ #--with-http_xslt_module \
+ #--with-http_image_filter_module \
+ #--with-http_geoip_module \
+ #--with-http_sub_module \
+ #--with-http_flv_module \
+ #--with-http_random_index_module \
+ #--with-http_secure_link_module \
+ #--with-http_degradation_module \
+ #--with-http_perl_module \
+
+ make
+}
+
+package() {
+ cd "$srcdir/nginx-${pkgver}"
+ make DESTDIR="$pkgdir" install
+
+ install -d "$pkgdir"/etc/logrotate.d
+ install -m644 $srcdir/nginx.logrotate $pkgdir/etc/logrotate.d/nginx
+
+ sed -e 's|\<user\s\+\w\+;|user html;|g' \
+ -e '44s|html|/usr/share/nginx/html|' \
+ -e '54s|html|/usr/share/nginx/html|' \
+ -i $pkgdir/etc/nginx/nginx.conf
+
+ install -d $pkgdir/$_tmpdir
+
+ install -d $pkgdir/usr/share/nginx
+ mv $pkgdir/etc/nginx/html/ $pkgdir/usr/share/nginx
+
+ install -D -m755 $srcdir/nginx $pkgdir/etc/rc.d/nginx
+ install -D -m644 LICENSE $pkgdir/usr/share/licenses/nginx/LICENSE
+ rm -rf $pkgdir/var/run
+}
diff --git a/community-testing/nginx/nginx b/community-testing/nginx/nginx
new file mode 100644
index 000000000..eb9031e81
--- /dev/null
+++ b/community-testing/nginx/nginx
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+function check_config {
+ stat_busy "Checking nginx configuration"
+ /usr/sbin/nginx -t -q -c /etc/nginx/nginx.conf
+ if [ $? -ne 0 ]; then
+ stat_die
+ else
+ stat_done
+ fi
+}
+
+case "$1" in
+ start)
+ check_config
+ $0 careless_start
+ ;;
+ careless_start)
+ stat_busy "Starting nginx"
+ if [ -s /var/run/nginx.pid ]; then
+ stat_fail
+ # probably ;)
+ stat_busy "Nginx is already running"
+ stat_die
+ fi
+ /usr/sbin/nginx -c /etc/nginx/nginx.conf &>/dev/null
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ add_daemon nginx
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping nginx"
+ PID=$(cat /var/run/nginx.pid)
+ kill -QUIT $PID &>/dev/null
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ for i in {1..10}; do
+ [ -d /proc/$PID ] || { stat_done; rm_daemon nginx; exit 0; }
+ sleep 1
+ done
+ stat_fail
+ fi
+ ;;
+ restart)
+ check_config
+ $0 stop
+ sleep 1
+ $0 careless_start
+ ;;
+ reload)
+ check_config
+ if [ -s /var/run/nginx.pid ]; then
+ status "Reloading nginx configuration" kill -HUP $(cat /var/run/nginx.pid)
+ fi
+ ;;
+ check)
+ check_config
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|reload|check|careless_start}"
+esac
diff --git a/community-testing/nginx/nginx.logrotate b/community-testing/nginx/nginx.logrotate
new file mode 100644
index 000000000..d490d5d9b
--- /dev/null
+++ b/community-testing/nginx/nginx.logrotate
@@ -0,0 +1,8 @@
+/var/log/nginx/*.log {
+ missingok
+ sharedscripts
+ compress
+ postrotate
+ test -r /var/run/nginx.pid && kill -USR1 `cat /var/run/nginx.pid`
+ endscript
+}
diff --git a/community/bind-geodns/PKGBUILD b/community/bind-geodns/PKGBUILD
index 9818bee12..ae70a5b44 100644
--- a/community/bind-geodns/PKGBUILD
+++ b/community/bind-geodns/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 65058 2012-02-20 02:37:28Z spupykin $
+# $Id: PKGBUILD 72130 2012-06-08 23:51:33Z dreisner $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=bind-geodns
pkgver=9.4.1
_pkgver=9.4.1-P1
-pkgrel=5
+pkgrel=6
pkgdesc="bind named server with geoip patch can return ip depending on requester location"
arch=(i686 x86_64)
url="http://www.caraytech.com/geodns/"
license=('custom:ISC')
-backup=(etc/named.conf etc/logrotate.d/named etc/conf.d/named etc/rndc.key)
+backup=(etc/named.conf etc/logrotate.d/named etc/conf.d/named)
depends=('openssl' 'geoip')
provides=('dns-server' 'bind' 'dnsutils')
conflicts=('bind' 'dnsutils')
@@ -63,4 +63,7 @@ build() {
chown -R 40:40 $pkgdir/var/named
mv $pkgdir/usr/man $pkgdir/usr/share/
+
+ # avoid conflict with filesystem>=2012.06
+ rmdir "$pkgdir/var/run"
}
diff --git a/community/collectd/PKGBUILD b/community/collectd/PKGBUILD
index 23e14844b..363fcd830 100644
--- a/community/collectd/PKGBUILD
+++ b/community/collectd/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 71904 2012-06-03 06:03:10Z bisson $
+# $Id: PKGBUILD 72138 2012-06-09 00:34:11Z dreisner $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Gerhard Brauer <gerhard.brauer@web.de>
pkgname=collectd
pkgver=5.1.0
-pkgrel=3
+pkgrel=4
pkgdesc='Daemon which collects system performance statistics periodically'
url='http://collectd.org/'
arch=('i686' 'x86_64')
@@ -76,7 +76,10 @@ package() {
make DESTDIR="${pkgdir}" install
- install -Dm755 ../rc.d "${pkgdir}/etc/rc.d/${pkgname}"
- install -Dm644 ../service "${pkgdir}"/usr/lib/systemd/system/collectd.service
+ install -Dm755 "$srcdir"/rc.d "${pkgdir}/etc/rc.d/${pkgname}"
+ install -Dm644 "$srcdir"/service "${pkgdir}"/usr/lib/systemd/system/collectd.service
install -Dm644 contrib/collectd2html.pl "${pkgdir}"/usr/share/collectd/collectd2html.pl
+
+ # avoid conflict with filesystem>=2012.06
+ rmdir "$pkgdir/var/run"
}
diff --git a/community/courier-authlib/PKGBUILD b/community/courier-authlib/PKGBUILD
index 964be4a2a..4e82387ec 100644
--- a/community/courier-authlib/PKGBUILD
+++ b/community/courier-authlib/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 70428 2012-05-06 03:21:33Z svenstaro $
+# $Id: PKGBUILD 72136 2012-06-09 00:24:01Z dreisner $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: tobias <tobias@archlinux.org>
# Contributor: Tobias Kieslich <tobias@justdreams.de>
pkgname=courier-authlib
pkgver=0.64.0
-pkgrel=1
+pkgrel=2
pkgdesc="Authentification library for the courier mailserver(s)"
arch=(i686 x86_64)
license=('GPL2')
@@ -20,8 +20,10 @@ provides=('courier-imap-mysql' 'courier-imap-pgsql' 'courier-imap-ldap')
options=(!libtool)
install=${pkgname}.install
source=(http://downloads.sourceforge.net/project/courier/authlib/${pkgver}/${pkgname}-${pkgver}.tar.bz2
+ courier-authlib.tmpfiles
authdaemond.rc.d)
md5sums=('d946a76e81e45a139543305d310399f6'
+ 'bef189740e9516b0beaace4e8954ef14'
'7de75a9a74796f4fd2e81fd3ca16ed8d')
build() {
@@ -37,7 +39,7 @@ build() {
--with-authpam --with-authpwd --with-authshadow \
--with-authldap --with-authmysql --with-authpgsql \
--with-authuserdb --with-authcram --with-authdaemon \
- --with-authdaemonvar=/var/run/authdaemon
+ --with-authdaemonvar=/run/authdaemon
make
}
@@ -60,7 +62,6 @@ package() {
#chown -R 72:72 ${pkgdir}/var/spool/authdaemon
mkdir -p ${pkgdir}/var/spool/courier
chown -R 72:72 ${pkgdir}/var/spool/courier
- chown -R 72:72 ${pkgdir}/var/run/authdaemon
# docs say we can remove .a files after make
find ${pkgdir} -name '*\.a' -exec rm -f {} \;
# Make libs available to /usr/lib
@@ -68,4 +69,9 @@ package() {
for lib in courier-authlib/*.so; do
ln -s $lib .
done
+
+ install -Dm644 "$srcdir/courier-authlib.tmpfiles" "$pkgdir/usr/lib/tmpfiles/courier-authlib.conf"
+
+ # avoid conflict with filesystem>=2012.06
+ rmdir "$pkgdir/run/authdaemon"
}
diff --git a/community/courier-authlib/courier-authlib.install b/community/courier-authlib/courier-authlib.install
index cbccc636b..7b29f845f 100644
--- a/community/courier-authlib/courier-authlib.install
+++ b/community/courier-authlib/courier-authlib.install
@@ -1,12 +1,15 @@
# arg 1: the new package version
post_install() {
# creates group and user on virgin systems
- if [ -z "`grep '^courier::' /etc/group`" ]; then
- groupadd -g 72 courier >& /dev/null
+ if ! getent group courier >/dev/null; then
+ groupadd -g 72 courier >/dev/null 2>&1
fi
- if [ -z "`grep '^courier:' /etc/passwd`" ]; then
- useradd -u 72 -d /var/spool/courier -g courier -s /bin/false courier &>/dev/null
+
+ if getent passwd courier >/dev/null; then
+ useradd -u 72 -d /var/spool/courier -g courier -s /bin/false courier >/dev/null 2>&1
fi
+
+ systemd-tmpfiles --create /usr/lib/tmpfiles/courier-authlib.conf
}
# arg 1: the new package version
@@ -17,16 +20,7 @@ post_upgrade() {
# arg 1: the old package version
pre_remove() {
- userdel courier &> /dev/null
- groupdel courier &> /dev/null
-}
-
-
-post_remove() {
- /bin/true
-}
-
-op=$1
-shift
+ userdel courier
+ groupdel courier
+} >/dev/null 2>&1
-$op $*
diff --git a/community/courier-authlib/courier-authlib.tmpfiles b/community/courier-authlib/courier-authlib.tmpfiles
new file mode 100644
index 000000000..887303a4c
--- /dev/null
+++ b/community/courier-authlib/courier-authlib.tmpfiles
@@ -0,0 +1 @@
+d /run/authdaemon 0755 72 72 -
diff --git a/community/fcron/PKGBUILD b/community/fcron/PKGBUILD
index d2bd49b05..817ceef09 100755
--- a/community/fcron/PKGBUILD
+++ b/community/fcron/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 61936 2012-01-11 09:30:32Z ttopper $
+# $Id: PKGBUILD 72128 2012-06-08 23:36:39Z dreisner $
# Contributor: Giorgio Lando <lando at imap dot cc>
# Contributor: Sergej Pupykin
# Contributor: Thomas Bächler
@@ -6,7 +6,7 @@
pkgname=fcron
pkgver=3.0.6
-pkgrel=5
+pkgrel=6
pkgdesc="feature-rich cron implementation"
arch=(i686 x86_64)
url="http://fcron.free.fr"
@@ -21,7 +21,7 @@ backup=(etc/fcron/fcron.conf etc/fcron/fcron.allow etc/fcron/fcron.deny \
options=('emptydirs' '!makeflags')
source=(http://fcron.free.fr/archives/$pkgname-$pkgver.src.tar.gz fcron.rc \
systab systab.orig run-cron)
-md5sums=('69ebcb41921e2a282f41ebecb3a27053'
+md5sums=('ced7ca753517eac67502f3fec3908d39'
'e0c3f0bdc3c98fbbe46eff19001c18f2'
'938722c6654ef7b07f4aa10001905ba1'
'bfb7daa22ebe22b9917e455c1ca4a382'
@@ -67,6 +67,9 @@ package() {
# Install run-cron script to make fcron run without dcron
install -D -m755 "$srcdir/run-cron" "$pkgdir/usr/sbin/run-cron"
+
+ # avoid conflict with filesystem>=2012.06
+ rmdir "$pkgdir/var/run"
}
# vim:set ts=2 sw=2 et:
diff --git a/community/john/PKGBUILD b/community/john/PKGBUILD
index ba1edb3c4..5bdfc663a 100644
--- a/community/john/PKGBUILD
+++ b/community/john/PKGBUILD
@@ -6,13 +6,16 @@
pkgname=john
pkgver=1.7.9
-pkgrel=2
+pkgrel=3
_jumbover=5
pkgdesc="John The Ripper - A fast password cracker (jumbo-$_jumbover included)"
arch=('i686' 'x86_64')
url="http://www.openwall.com/$pkgname/"
license=('GPL2' 'custom')
depends=('openssl')
+optdepends=("perl: for executing some of the scripts at /usr/share/john"
+ "ruby: for executing some of the scripts at /usr/share/john"
+ "python: for executing some of the scripts at /usr/share/john")
backup=('etc/john/john.conf')
source=(http://www.openwall.com/$pkgname/g/$pkgname-$pkgver.tar.bz2
http://www.openwall.com/john/g/john-$pkgver-jumbo-$_jumbover.diff.gz
@@ -59,20 +62,40 @@ package() {
# docs
install -d ${pkgdir}/usr/share/doc/john
install -m644 ${srcdir}/john-$pkgver/doc/* ${pkgdir}/usr/share/doc/john/
- install -d ${pkgdir}/usr/share/john/
install -Dm644 ${srcdir}/john-$pkgver/doc/LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
- # install password list and charset files
- install -m644 ${srcdir}/${pkgname}-${pkgver}/run/{{all,alnum,alpha,digits,lanman}.chr,password.lst} \
+ # install password list, charset files and other stuff
+ install -d ${pkgdir}/usr/share/john/
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/password.lst ${pkgdir}/usr/share/john/
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/stats ${pkgdir}/usr/share/john/
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/{all,alnum,alpha,digits,lanman}.chr \
${pkgdir}/usr/share/john/
install -m644 ${srcdir}/${pkgname}-${pkgver}/run/{dumb16,dumb32,dynamic}.conf \
${pkgdir}/usr/share/john/
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/{cmpt_cp,ldif2john,lion2john-alt,lion2john}.pl \
+ ${pkgdir}/usr/share/john
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/{netntlm,radius2john,sap_prepare,sha-dump}.pl \
+ ${pkgdir}/usr/share/john
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/sha-test.pl \
+ ${pkgdir}/usr/share/john
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/genincstats.rb \
+ ${pkgdir}/usr/share/john
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/netscreen.py \
+ ${pkgdir}/usr/share/john
+
install -m644 ${srcdir}/${pkgname}-${pkgver}/run/dynamic.conf ${pkgdir}/etc/john/
# install binaries
install -Dm755 ${srcdir}/john-$pkgver/run/john ${pkgdir}/usr/bin/john
+ install -Dm755 ${srcdir}/john-$pkgver/run/calc_stat ${pkgdir}/usr/bin/calc_stat
+ install -Dm755 ${srcdir}/john-$pkgver/run/genmkvpwd ${pkgdir}/usr/bin/genmkvpwd
+ install -Dm755 ${srcdir}/john-$pkgver/run/mkvcalcproba ${pkgdir}/usr/bin/mkvcalcproba
+ install -Dm755 ${srcdir}/john-$pkgver/run/relbench ${pkgdir}/usr/bin/relbench
+ install -Dm755 ${srcdir}/john-$pkgver/run/tgtsnarf ${pkgdir}/usr/bin/tgtsnarf
install -Dm755 ${srcdir}/john-$pkgver/run/mailer ${pkgdir}/usr/bin/john-mailer
- cd ${pkgdir}/usr/bin
+
+ # create links
+ cd ${pkgdir}/usr/bin
ln -s john unafs
ln -s john unique
ln -s john unshadow
diff --git a/community/lilyterm/PKGBUILD b/community/lilyterm/PKGBUILD
index 49519e01c..ba889afc8 100644
--- a/community/lilyterm/PKGBUILD
+++ b/community/lilyterm/PKGBUILD
@@ -1,20 +1,21 @@
-# $Id: PKGBUILD 69562 2012-04-18 14:35:46Z kkeen $
+# $Id: PKGBUILD 72085 2012-06-08 12:19:07Z kkeen $
# Maintainer: Kyle Keen <keenerd@gmail.com>
# Contributor: TDY <tdy@gmx.com>
# Contributor: DonVla <donvla@users.sourceforge.net>
# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
pkgname=lilyterm
-pkgver=0.9.9
+pkgver=0.9.9.1
pkgrel=1
pkgdesc="A light and easy to use libvte based X terminal emulator"
arch=('i686' 'x86_64')
url="http://lilyterm.luna.com.tw/index_en.html"
+_watch="http://lilyterm.luna.com.tw/html/download.html"
license=('GPL3')
depends=('vte')
makedepends=('gettext' 'intltool' 'pkgconfig>=0.16')
source=(http://lilyterm.luna.com.tw/file/$pkgname-$pkgver.tar.gz)
-md5sums=('ae89dca908951ce2fafa60b90c892d1a')
+md5sums=('2ba6e18ed7c17463d5451338ca5229a5')
build() {
cd "$srcdir/lilyterm-$pkgver"
diff --git a/community/luarocks/PKGBUILD b/community/luarocks/PKGBUILD
index 86ce9f42c..ef6b63eb7 100644
--- a/community/luarocks/PKGBUILD
+++ b/community/luarocks/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 68146 2012-03-18 18:24:42Z cbrannon $
+# $Id: PKGBUILD 72118 2012-06-08 21:45:36Z cbrannon $
# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
pkgname=luarocks
-pkgver=2.0.8
+pkgver=2.0.9
pkgrel=1
pkgdesc='Deployment and management system for Lua modules'
arch=('i686' 'x86_64')
@@ -33,4 +33,4 @@ package() {
install -D COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
-md5sums=('07cf84e352d86fe161f7b2ec43f360cc')
+md5sums=('78dceb5c513fd241665688ecd229ff51')
diff --git a/community/miredo/PKGBUILD b/community/miredo/PKGBUILD
index 31dae918c..8499bfcd8 100644
--- a/community/miredo/PKGBUILD
+++ b/community/miredo/PKGBUILD
@@ -1,17 +1,16 @@
-# $Id: PKGBUILD 62679 2012-01-24 12:52:57Z spupykin $
+# $Id: PKGBUILD 72132 2012-06-08 23:58:54Z dreisner $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=miredo
pkgver=1.2.4
-pkgrel=1
+pkgrel=2
pkgdesc="Teredo client and server."
arch=('i686' 'x86_64')
url="http://www.remlab.net/miredo/"
license=('GPL')
depends=(judy iproute2)
backup=('etc/miredo/miredo.conf'
- 'etc/miredo/miredo-server.conf'
- 'etc/miredo/isatapd.conf')
+ 'etc/miredo/client-hook')
source=(http://www.remlab.net/files/${pkgname}/${pkgname}-${pkgver}.tar.bz2
isatapd.rc.d
miredo.install
@@ -34,4 +33,8 @@ build() {
install -D -m755 $srcdir/miredo-server.rc.d $pkgdir/etc/rc.d/miredo-server
install -D -m755 $srcdir/isatapd.rc.d $pkgdir/etc/rc.d/isatapd
sed -i 's#/sbin/ip#/usr/sbin/ip#' $pkgdir/etc/miredo/client-hook
+
+ # avoid conflict with filesystem>=2012.06
+ rmdir "$pkgdir/var/run"
}
+
diff --git a/community/mldonkey/PKGBUILD b/community/mldonkey/PKGBUILD
index c8385d68d..dc2546d63 100644
--- a/community/mldonkey/PKGBUILD
+++ b/community/mldonkey/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 69477 2012-04-16 17:52:09Z cbrannon $
+# $Id: PKGBUILD 72119 2012-06-08 21:46:06Z cbrannon $
# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
# Contributor: Corrado Primier <bardo@aur.archlinux.org>
# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
pkgname=mldonkey
-pkgver=3.1.1
+pkgver=3.1.2
pkgrel=1
pkgdesc="A multi-network P2P client"
arch=('i686' 'x86_64')
@@ -39,6 +39,6 @@ package() {
install -Dm644 "distrib/mldonkey.desktop" \
"$pkgdir/usr/share/applications/mldonkey.desktop"
}
-md5sums=('5954ee7cfae18afb2732549fd990e7d6'
+md5sums=('85e6a0fe358b8c71a71da6d979c9760f'
'9e90003a012cf17b548dcc647961ffa6'
'1f86d92db51c62cded0e6f3833057dee')
diff --git a/community/ndisc6/PKGBUILD b/community/ndisc6/PKGBUILD
index df7d0ce45..d25c3a9d8 100644
--- a/community/ndisc6/PKGBUILD
+++ b/community/ndisc6/PKGBUILD
@@ -1,26 +1,29 @@
-# $Id: PKGBUILD 60785 2011-12-17 22:54:36Z cbrannon $
+# $Id: PKGBUILD 72134 2012-06-09 00:04:05Z heftig $
# Maintainer: Chris Brannon <chris@the-brannons.com>
# Contributor: Mark Smith <markzzzsmith@yahoo.com.au>
pkgname=ndisc6
pkgver=1.0.2
-pkgrel=2
+pkgrel=3
pkgdesc="A collection of IPv6 networking utilities - ndisc6, rdisc6, tcptraceroute6, tracert6, rltraceroute6, tcpspray6"
arch=('i686' 'x86_64')
url="http://www.remlab.net/ndisc6/"
license=("GPL")
depends=('glibc' 'perl')
makedepends=('glibc' 'gcc')
-options=(emptydirs)
+options=(!emptydirs)
+install=ndisc6.install
source=(http://www.remlab.net/files/ndisc6/$pkgname-$pkgver.tar.bz2
rdnssd.rc.d
rdnssd.confd)
+md5sums=('50cb4c19606cf6ff2b7388e71832f579'
+ '3421fd731c4da4f9e07fc6b6ff4e5084'
+ 'f1910902932e2622fc166960819db6c4')
build() {
cd "$srcdir/$pkgname-$pkgver"
./configure --localstatedir=/var --sysconfdir=/etc --prefix=/usr
make
-
}
package() {
@@ -29,10 +32,7 @@ package() {
make DESTDIR="$pkgdir" install
install -Dm755 "$srcdir/rdnssd.rc.d" "$pkgdir/etc/rc.d/rdnssd"
install -Dm644 "$srcdir/rdnssd.confd" "$pkgdir/etc/conf.d/rdnssd"
- install -Dm644 /dev/null "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
- echo "d /var/run/rdnssd 0755 nobody root" > "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
-}
-md5sums=('50cb4c19606cf6ff2b7388e71832f579'
- '3421fd731c4da4f9e07fc6b6ff4e5084'
- 'f1910902932e2622fc166960819db6c4')
+ install -d "$pkgdir/usr/lib/tmpfiles.d"
+ echo "d /run/rdnssd 0755 nobody root" > "$pkgdir/usr/lib/tmpfiles.d/ndisc6.conf"
+}
diff --git a/community/ndisc6/ndisc6.install b/community/ndisc6/ndisc6.install
new file mode 100644
index 000000000..086fb6829
--- /dev/null
+++ b/community/ndisc6/ndisc6.install
@@ -0,0 +1,3 @@
+post_install() {
+ systemd-tmpfiles --create usr/lib/tmpfiles.d/ndisc6.conf
+}
diff --git a/community/privoxy/PKGBUILD b/community/privoxy/PKGBUILD
index 5554745b8..ca5b69c3f 100644
--- a/community/privoxy/PKGBUILD
+++ b/community/privoxy/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 69634 2012-04-20 19:51:27Z lfleischer $
+# $Id: PKGBUILD 72126 2012-06-08 23:13:24Z dreisner $
# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
# Contributor: Juergen Hoetzel <juergen@hoetzel.info>
# Contributor: basilburn (basilburn), Paul Bredbury (brebs)
pkgname=privoxy
pkgver=3.0.19
-pkgrel=3
+pkgrel=4
pkgdesc='A web proxy with advanced filtering capabilities.'
arch=('i686' 'x86_64')
url='http://www.privoxy.org'
@@ -61,4 +61,7 @@ package() {
find "${pkgdir}/etc/privoxy/" -type d | xargs chmod 0770
find "${pkgdir}/etc/privoxy/" -type f | xargs chmod 0660
chmod 0700 "${pkgdir}/var/log/privoxy"
+
+ # avoid conflict with filesystem>=2012.06
+ rmdir "$pkgdir/var/run"
}
diff --git a/community/python-pyxmpp/PKGBUILD b/community/python-pyxmpp/PKGBUILD
index 97c1d1b37..bc59379b7 100644
--- a/community/python-pyxmpp/PKGBUILD
+++ b/community/python-pyxmpp/PKGBUILD
@@ -1,20 +1,20 @@
-# $Id: PKGBUILD 56515 2011-10-07 20:09:45Z spupykin $
+# $Id: PKGBUILD 72079 2012-06-08 09:35:38Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: William Rea <sillywilly@gmail.com>
pkgname=python-pyxmpp
pkgver=1.1.2
-pkgrel=1
+pkgrel=2
pkgdesc="A Python XMPP and Jabber implementation based on libxml2"
arch=('i686' 'x86_64')
url="http://pyxmpp.jajcus.net/"
license=('LGPL')
-depends=('python-dnspython' 'libxml2' 'python-m2crypto')
+depends=('python2-dnspython' 'libxml2' 'python-m2crypto')
source=(http://pyxmpp.jajcus.net/downloads/pyxmpp-$pkgver.tar.gz)
md5sums=('a38abf032aca0408b6055cd94296eb75')
build() {
- cd $startdir/src/pyxmpp-$pkgver
+ cd $srcdir/pyxmpp-$pkgver
python2 setup.py build
python2 setup.py install --root=$pkgdir
}
diff --git a/community/soundkonverter/PKGBUILD b/community/soundkonverter/PKGBUILD
index 9692a9a2e..4e14296cf 100644
--- a/community/soundkonverter/PKGBUILD
+++ b/community/soundkonverter/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 71704 2012-06-01 13:28:02Z stativ $
+# $Id: PKGBUILD 72096 2012-06-08 16:40:09Z stativ $
# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
# Contributor: Mateusz Herych <heniekk@gmail.com>
# Contributor: Eric Belanger <eric@archlinux.org>
# Contributor: Darwin Bautista <djclue917@gmail.com>
pkgname=soundkonverter
-pkgver=1.6.0
+pkgver=1.6.1
pkgrel=1
pkgdesc="Front-end to various audio converters"
arch=('i686' 'x86_64')
@@ -31,7 +31,7 @@ optdepends=('cdrkit: cdda2wav backend'
'wavpack: wavpack backend')
install=$pkgname.install
source=("http://kde-apps.org/CONTENT/content-files/29024-${pkgname}-${pkgver}.tar.gz")
-md5sums=('1d2a171b1a1c9d186cd5a644ba9fc686')
+md5sums=('7a92fef5efc67b40358d3a11030bae1f')
build() {
cd "$srcdir"/$pkgname-$pkgver
diff --git a/community/soundkonverter/soundkonverter.install b/community/soundkonverter/soundkonverter.install
index 725fc0c5d..0e8feb79c 100644
--- a/community/soundkonverter/soundkonverter.install
+++ b/community/soundkonverter/soundkonverter.install
@@ -1,12 +1,12 @@
post_install() {
- xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
}
post_upgrade() {
- post_install
+ post_install
}
post_remove() {
- post_install
+ post_install
}
diff --git a/extra/apache/PKGBUILD b/extra/apache/PKGBUILD
index d4c54eb94..fd13bdd73 100644
--- a/extra/apache/PKGBUILD
+++ b/extra/apache/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 149928 2012-02-11 23:28:51Z allan $
+# $Id: PKGBUILD 161295 2012-06-08 23:50:11Z heftig $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=apache
pkgver=2.2.22
-pkgrel=3
+pkgrel=4
pkgdesc='A high performance Unix-based HTTP server'
arch=('i686' 'x86_64')
options=('!libtool')
@@ -18,6 +18,7 @@ backup=(etc/conf.d/apache etc/httpd/conf/httpd.conf
etc/logrotate.d/httpd)
depends=('openssl' 'zlib' 'apr-util' 'pcre')
optdepends=('lynx: apachectl status')
+install=apache.install
_itkurl=http://mpm-itk.sesse.net/apache2.2-mpm-itk-2.2.17-01
source=(http://www.apache.org/dist/httpd/httpd-${pkgver}.tar.bz2
http://www.apache.org/dist/httpd/httpd-${pkgver}.tar.bz2.asc
@@ -33,6 +34,7 @@ source=(http://www.apache.org/dist/httpd/httpd-${pkgver}.tar.bz2
${_itkurl}/11-fix-htaccess-reads-for-persistent-connections.patch
apachectl-confd.patch
apache.conf.d
+ apache.tmpfiles.conf
httpd.logrotate
httpd
arch.layout
@@ -51,6 +53,7 @@ md5sums=('9fe3093194c8a57f085ff7c3fc43715f'
'1e5b222edcfbf99a3edc56fcb2074fbe'
'4ac64df6e019edbe137017cba1ff2f51'
'08b3c875f6260644f2f52b4056d656b0'
+ '82068753dab92fe86312b1010a2904d7'
'6382331e9700ed9e8cc78ea51887b537'
'c7e300a287ef7e2e066ac7639536f87e'
'3d659d41276ba3bfcb20c231eb254e0c'
@@ -126,6 +129,7 @@ build() {
install -D -m755 "${srcdir}/httpd" "${pkgdir}/etc/rc.d/httpd"
install -D -m644 "${srcdir}/httpd.logrotate" "${pkgdir}/etc/logrotate.d/httpd"
install -D -m644 "${srcdir}/apache.conf.d" "${pkgdir}/etc/conf.d/apache"
+ install -D -m644 "${srcdir}/apache.tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/apache.conf"
# symlinks for /etc/httpd
ln -fs /var/log/httpd "${pkgdir}/etc/httpd/logs"
@@ -147,4 +151,5 @@ build() {
rm -rf "${pkgdir}/etc/httpd/conf/original"
rm -rf "${pkgdir}/srv/"
rm -rf "${pkgdir}/usr/bin"
+ rm -rf "${pkgdir}/var/run"
}
diff --git a/extra/apache/apache.install b/extra/apache/apache.install
new file mode 100644
index 000000000..9b74e607c
--- /dev/null
+++ b/extra/apache/apache.install
@@ -0,0 +1,3 @@
+post_install() {
+ systemd-tmpfiles --create usr/lib/tmpfiles.d/apache.conf
+}
diff --git a/extra/apache/apache.tmpfiles.conf b/extra/apache/apache.tmpfiles.conf
new file mode 100644
index 000000000..744775282
--- /dev/null
+++ b/extra/apache/apache.tmpfiles.conf
@@ -0,0 +1 @@
+d /run/httpd 0755 root root -
diff --git a/extra/dansguardian/PKGBUILD b/extra/dansguardian/PKGBUILD
index 07fe2cf16..8e4393bbe 100644
--- a/extra/dansguardian/PKGBUILD
+++ b/extra/dansguardian/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 149944 2012-02-11 23:30:32Z allan $
+# $Id: PKGBUILD 161292 2012-06-08 23:30:21Z dreisner $
# Maintainer: Kevin Piche <kevin@archlinux.org>
# Contributor: Manolis Tzanidakis
pkgname=dansguardian
pkgver=2.10.1.1
-pkgrel=3
+pkgrel=4
pkgdesc="Squid plugin for web content filtering."
url="http://dansguardian.org"
arch=('i686' 'x86_64')
@@ -32,6 +32,7 @@ package() {
install -D data/scripts/dansguardian ${pkgdir}/etc/logrotate.d/dansguardian
install -D -m755 ${srcdir}/dansguardian ${pkgdir}/etc/rc.d/dansguardian
+ rmdir "$pkgdir/var/run"
}
backup=(etc/dansguardian/dansguardian.conf
diff --git a/extra/dovecot/PKGBUILD b/extra/dovecot/PKGBUILD
index 447c5564a..94c123d16 100644
--- a/extra/dovecot/PKGBUILD
+++ b/extra/dovecot/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 160808 2012-06-06 13:17:41Z andyrtr $
+# $Id: PKGBUILD 161275 2012-06-08 13:30:23Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Paul Mattal <paul@mattal.com>
# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com>
@@ -6,7 +6,7 @@
pkgname=dovecot
pkgver=2.1.7
-pkgrel=3
+pkgrel=4
pkgdesc="An IMAP and POP3 server written with security primarily in mind"
arch=('i686' 'x86_64')
url="http://dovecot.org/"
@@ -25,7 +25,7 @@ source=(http://dovecot.org/releases/2.1/${pkgname}-${pkgver}.tar.gz{,.sig}
md5sums=('b52d0faf1b9ec21bc5552691fe0ff1d1'
'391cd5f98442ef446916c0f3b671d3f7'
'587159e84e2da6f83d70b3c706ba87cc'
- 'f40857555bd65add2e86c89fe3242357')
+ '342a28251d40f983c98c0d1f1bf3d07d')
build() {
cd ${srcdir}/$pkgname-$pkgver
diff --git a/extra/dovecot/dovecot.tmpfilesd b/extra/dovecot/dovecot.tmpfilesd
index 4fb276d5f..cb3e8f523 100644
--- a/extra/dovecot/dovecot.tmpfilesd
+++ b/extra/dovecot/dovecot.tmpfilesd
@@ -1 +1 @@
-d /var/run/dovecot 0755 root dovecot -
+d /var/run/dovecot 0755 root dovecot -
diff --git a/extra/eog/PKGBUILD b/extra/eog/PKGBUILD
index 0d6492879..df9c03b32 100644
--- a/extra/eog/PKGBUILD
+++ b/extra/eog/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 157385 2012-04-28 09:26:16Z allan $
+# $Id: PKGBUILD 161285 2012-06-08 22:49:59Z ibiru $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Jan de Groot <jgc@archlinux.org>
pkgname=eog
-pkgver=3.4.1
-pkgrel=2
+pkgver=3.4.2
+pkgrel=1
pkgdesc="Eye of Gnome: An image viewing and cataloging program"
arch=('i686' 'x86_64')
license=('GPL')
@@ -15,7 +15,7 @@ groups=('gnome-extra')
options=('!emptydirs' '!libtool')
url="http://www.gnome.org"
source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('cf29997ee065341fa323abc849732bfa18ab564cc0d931d61eaa473953d3e216')
+sha256sums=('8dd79cd2118ba6055efc4ebe815bdeeeb3c1310bb915035c1a56ef3188c75d5a')
build() {
cd "$pkgname-$pkgver"
diff --git a/extra/kactivities/PKGBUILD b/extra/kactivities/PKGBUILD
index a2d8be086..9947b9c73 100644
--- a/extra/kactivities/PKGBUILD
+++ b/extra/kactivities/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158375 2012-05-03 22:30:53Z andrea $
+# $Id: PKGBUILD 161089 2012-06-08 06:34:17Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kactivities
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
pkgdesc='API for using and interacting with Activities'
@@ -11,7 +11,7 @@ license=('GPL' 'FDL')
depends=('kdelibs')
makedepends=('cmake' 'automoc4')
source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
-sha1sums=('de382701c5a9f8c04de78124a4b2c19f3707656c')
+sha1sums=('3f42c18bae5a1d6bbd7fca471d8b4f9755875e06')
build() {
cd "${srcdir}"
diff --git a/extra/kdeaccessibility-jovie/PKGBUILD b/extra/kdeaccessibility-jovie/PKGBUILD
index feb2f952a..8e5518c71 100644
--- a/extra/kdeaccessibility-jovie/PKGBUILD
+++ b/extra/kdeaccessibility-jovie/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158395 2012-05-03 22:31:31Z andrea $
+# $Id: PKGBUILD 161131 2012-06-08 06:35:33Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeaccessibility-jovie
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
pkgdesc='A text to speech application'
@@ -14,7 +14,7 @@ makedepends=('cmake' 'automoc4')
replaces=('kdeaccessibility-kttsd')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/jovie-${pkgver}.tar.xz")
-sha1sums=('d8ec774abfc4ec4f8e43103365b37ef99f62aa3f')
+sha1sums=('d9d829c09312bc6f962c36521629ba1bee8f1431')
build() {
cd "${srcdir}"
diff --git a/extra/kdeaccessibility-kaccessible/PKGBUILD b/extra/kdeaccessibility-kaccessible/PKGBUILD
index 2767ba84d..a05c4f56b 100644
--- a/extra/kdeaccessibility-kaccessible/PKGBUILD
+++ b/extra/kdeaccessibility-kaccessible/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158397 2012-05-03 22:31:35Z andrea $
+# $Id: PKGBUILD 161133 2012-06-08 06:35:39Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeaccessibility-kaccessible
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
pkgdesc='Provides accessibility services like focus tracking and a screenreader'
@@ -12,7 +12,7 @@ groups=('kde' 'kdeaccessibility')
depends=('kdelibs' 'speech-dispatcher')
makedepends=('cmake' 'automoc4')
source=("http://download.kde.org/stable/${pkgver}/src/kaccessible-${pkgver}.tar.xz")
-sha1sums=('50b2c1b5df4652c7ba078820d1e073ef14c8b9ee')
+sha1sums=('d467fa3857b2c5a2aa3a5421b5d7c74fe3c7f981')
build() {
cd "${srcdir}"
diff --git a/extra/kdeaccessibility-kmag/PKGBUILD b/extra/kdeaccessibility-kmag/PKGBUILD
index fee84e809..796a75813 100644
--- a/extra/kdeaccessibility-kmag/PKGBUILD
+++ b/extra/kdeaccessibility-kmag/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158399 2012-05-03 22:31:39Z andrea $
+# $Id: PKGBUILD 161135 2012-06-08 06:35:44Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeaccessibility-kmag
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
pkgdesc='Screen Magnifier'
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kmag-${pkgver}.tar.xz")
-sha1sums=('20a72ae6eaf120bdc6449f8bf048688ade5c584a')
+sha1sums=('7b5b51422d4241d6303841805a04b2eace0c7a2d')
build() {
cd "${srcdir}"
diff --git a/extra/kdeaccessibility-kmousetool/PKGBUILD b/extra/kdeaccessibility-kmousetool/PKGBUILD
index edc407e50..5508402d1 100644
--- a/extra/kdeaccessibility-kmousetool/PKGBUILD
+++ b/extra/kdeaccessibility-kmousetool/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158401 2012-05-03 22:31:42Z andrea $
+# $Id: PKGBUILD 161137 2012-06-08 06:35:50Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeaccessibility-kmousetool
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
pkgdesc='Clicks the mouse for you, reducing the effects of RSI'
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kmousetool-${pkgver}.tar.xz")
-sha1sums=('95f888155714dbec9a886ab86c247eb695ea2999')
+sha1sums=('6667336267a3a65bf0b33a8454299558ad458108')
build() {
cd "${srcdir}"
diff --git a/extra/kdeaccessibility-kmouth/PKGBUILD b/extra/kdeaccessibility-kmouth/PKGBUILD
index cf72c9ee1..34e069ab8 100644
--- a/extra/kdeaccessibility-kmouth/PKGBUILD
+++ b/extra/kdeaccessibility-kmouth/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158403 2012-05-03 22:31:46Z andrea $
+# $Id: PKGBUILD 161139 2012-06-08 06:35:54Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeaccessibility-kmouth
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
pkgdesc='Speech Synthesizer Frontend'
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kmouth-${pkgver}.tar.xz")
-sha1sums=('2bf8356df5207de3a7c95a931070fb6b2d0fba6f')
+sha1sums=('104bb2c434deabbaa57326fe567fc90c4067f36c')
build() {
cd "${srcdir}"
diff --git a/extra/kdeadmin/PKGBUILD b/extra/kdeadmin/PKGBUILD
index 41cbb99a3..ad81559e0 100644
--- a/extra/kdeadmin/PKGBUILD
+++ b/extra/kdeadmin/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 158405 2012-05-03 22:31:50Z andrea $
+# $Id: PKGBUILD 161141 2012-06-08 06:35:57Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -7,7 +7,7 @@ pkgname=('kdeadmin-kcron'
'kdeadmin-ksystemlog'
'kdeadmin-kuser'
'kdeadmin-system-config-printer-kde')
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
url='http://www.kde.org'
@@ -16,7 +16,7 @@ groups=('kde' 'kdeadmin')
makedepends=('cmake' 'automoc4' 'kdebindings-python2' 'system-config-printer-common')
source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz"
'syslog-path.patch')
-sha1sums=('6de6dd896c43fa6825e569b1c1eea522454e152c'
+sha1sums=('b825e40b29b4ae684265cb13b7935737d7ae6d68'
'20095ce6e0f3e5b6800a7c6e52de6fddba62c031')
build() {
diff --git a/extra/kdeartwork/PKGBUILD b/extra/kdeartwork/PKGBUILD
index 1b863058b..ef77cf303 100644
--- a/extra/kdeartwork/PKGBUILD
+++ b/extra/kdeartwork/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 158407 2012-05-03 22:31:52Z andrea $
+# $Id: PKGBUILD 161143 2012-06-08 06:35:59Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -13,7 +13,7 @@ pkgname=('kdeartwork-aurorae'
'kdeartwork-styles'
'kdeartwork-wallpapers'
'kdeartwork-weatherwallpapers')
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
url='http://www.kde.org'
@@ -22,7 +22,7 @@ groups=('kde' 'kdeartwork')
makedepends=('cmake' 'automoc4' 'xscreensaver' 'eigen' 'kdebase-workspace'
'libkexiv2')
source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz")
-sha1sums=('fa2dd6f3a1b9e82564b1250be003577c4ef77185')
+sha1sums=('c7e15538d3141af8673d16f498c6af7bff62a87f')
build() {
cd $srcdir
diff --git a/extra/kdebase-konsole/PKGBUILD b/extra/kdebase-konsole/PKGBUILD
index 56ff6f5e5..2bd6d24fb 100644
--- a/extra/kdebase-konsole/PKGBUILD
+++ b/extra/kdebase-konsole/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158409 2012-05-03 22:31:58Z andrea $
+# $Id: PKGBUILD 161145 2012-06-08 06:36:02Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdebase-konsole
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
url='http://kde.org/applications/system/konsole/'
@@ -12,7 +12,7 @@ groups=('kde' 'kdebase')
depends=('kdebase-runtime' 'kdebase-lib')
makedepends=('cmake' 'automoc4')
source=("http://download.kde.org/stable/${pkgver}/src/konsole-${pkgver}.tar.xz")
-sha1sums=('f9dff6e2d66c7533474146b6a4b19112f866796b')
+sha1sums=('a5900aa089a28fcaa69b45cfc7b46f556a38bd11')
build() {
cd "${srcdir}"
diff --git a/extra/kdebase-runtime/PKGBUILD b/extra/kdebase-runtime/PKGBUILD
index b5f95733e..217024665 100644
--- a/extra/kdebase-runtime/PKGBUILD
+++ b/extra/kdebase-runtime/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 158353 2012-05-03 22:30:13Z andrea $
+# $Id: PKGBUILD 161091 2012-06-08 06:34:21Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=kdebase-runtime
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="KDE Base Runtime Environment"
arch=('i686' 'x86_64')
@@ -16,7 +16,7 @@ optdepends=('htdig: to build the search index in khelpcenter'
'gdb: drkonq crash handler')
install="${pkgname}.install"
source=("http://download.kde.org/stable/${pkgver}/src/kde-runtime-${pkgver}.tar.xz")
-sha1sums=('500ada503708aa89e2cbfa3ddb6353c3d350d96f')
+sha1sums=('557fada748de52e5275058c50ec3cf8a652c0001')
build() {
cd "${srcdir}"
diff --git a/extra/kdebase-workspace/PKGBUILD b/extra/kdebase-workspace/PKGBUILD
index 96d585512..ae02c190b 100644
--- a/extra/kdebase-workspace/PKGBUILD
+++ b/extra/kdebase-workspace/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 158761 2012-05-09 08:46:41Z andrea $
+# $Id: PKGBUILD 161113 2012-06-08 06:35:06Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=kdebase-workspace
_pkgname=kde-workspace
-pkgver=4.8.3
-pkgrel=2
+pkgver=4.8.4
+pkgrel=1
pkgdesc="KDE Base Workspace"
arch=('i686' 'x86_64')
url='http://www.kde.org'
@@ -18,7 +18,7 @@ depends=('kdepim-runtime' 'lm_sensors' 'libraw1394' 'libqalculate'
'qimageblitz' 'polkit-kde' 'consolekit' 'xorg-xprop' 'libxdamage'
'libxklavier' 'xorg-xsetroot' 'libxcomposite' 'libxinerama'
'xorg-xrdb' 'libgles' 'libegl' 'kactivities' 'libxres' 'libxtst'
- 'xorg-xrandr' 'xorg-xmessage')
+ 'xorg-xrandr' 'xorg-xmessage' 'libusb-compat')
makedepends=('cmake' 'automoc4' 'boost' 'kdebindings-python2' 'networkmanager')
optdepends=('kde-wallpapers: wallpapers for KDE Plasma Workspaces')
install="${pkgname}.install"
@@ -29,17 +29,15 @@ backup=('usr/share/config/kdm/kdmrc'
options=('emptydirs')
source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.xz"
'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam'
- 'fixpath.patch' 'terminate-server.patch' 'kdm-xinitrd.patch'
- 'fix-krunner-crash.patch')
-sha1sums=('23dbd023f76769ba6ea77dbc11314eca504ad3d2'
+ 'fixpath.patch' 'terminate-server.patch' 'kdm-xinitrd.patch')
+sha1sums=('a732ceacf34dfb79c8ab243f17cd5a70b9183212'
'5db3a245201bd4a50e65aa2ef583cf5490e4f646'
'712a90999bd429883dcef5dcaf288aace332ced8'
'b321b5e613b60231330e606fdf1e124646148388'
'106635aa1aae51d6f0668b1853f6c49a4fe9d3d8'
'd7b5883f7e65c6839b1f65f94d58026673dd0226'
'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee'
- 'd509dac592bd8b310df27991b208c95b6d907514'
- 'f898561d2b32dead8195f0610141edf7d423d46c')
+ 'd509dac592bd8b310df27991b208c95b6d907514')
build() {
cd "${srcdir}"/${_pkgname}-${pkgver}
@@ -47,8 +45,6 @@ build() {
patch -p0 -i "${srcdir}"/fixpath.patch
patch -p0 -i "${srcdir}"/terminate-server.patch
- patch -p1 -i "${srcdir}"/fix-krunner-crash.patch
-
cd "${srcdir}"
mkdir build
cd build
diff --git a/extra/kdebase/PKGBUILD b/extra/kdebase/PKGBUILD
index 46a8341a6..3bf1b080f 100644
--- a/extra/kdebase/PKGBUILD
+++ b/extra/kdebase/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 158379 2012-05-03 22:31:05Z andrea $
+# $Id: PKGBUILD 161115 2012-06-08 06:35:09Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -12,7 +12,7 @@ pkgname=('kdebase-dolphin'
'kdebase-konqueror'
'kdebase-lib'
'kdebase-plasma')
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
url='http://www.kde.org'
@@ -20,7 +20,7 @@ license=('GPL' 'LGPL' 'FDL')
groups=('kde' 'kdebase')
makedepends=('kdelibs' 'cmake' 'automoc4' 'tidyhtml')
source=("http://download.kde.org/stable/${pkgver}/src/kde-baseapps-${pkgver}.tar.xz")
-sha1sums=('593053e7fdd50b32e6f9264edf2a69e499ddc0a6')
+sha1sums=('a1d6951b27c868c738a36dbd21702b658f3d6245')
build() {
cd ${srcdir}
diff --git a/extra/kdebindings-kimono/PKGBUILD b/extra/kdebindings-kimono/PKGBUILD
index 528fe45aa..73aa8008c 100644
--- a/extra/kdebindings-kimono/PKGBUILD
+++ b/extra/kdebindings-kimono/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158411 2012-05-03 22:32:01Z andrea $
+# $Id: PKGBUILD 161147 2012-06-08 06:36:05Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdebindings-kimono
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc=".NET/Mono bindings for the KDE libraries"
url="http://kde.org/"
@@ -13,7 +13,7 @@ depends=('kdebindings-qyoto' 'kdebindings-smokekde')
makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost' 'kdepimlibs')
conflicts=('kdebindings-csharp')
source=("http://download.kde.org/stable/${pkgver}/src/kimono-${pkgver}.tar.xz")
-sha1sums=('b509d3511204d858049009c827a5ffe395296124')
+sha1sums=('9c8e41ebcec01cede7987958bb4d7ce775587e45')
build() {
cd "${srcdir}"
diff --git a/extra/kdebindings-korundum/PKGBUILD b/extra/kdebindings-korundum/PKGBUILD
index 3632d10dc..cc90349a5 100644
--- a/extra/kdebindings-korundum/PKGBUILD
+++ b/extra/kdebindings-korundum/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158413 2012-05-03 22:32:04Z andrea $
+# $Id: PKGBUILD 161149 2012-06-08 06:36:08Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdebindings-korundum
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="KDE bindings for ruby"
url="http://kde.org/"
@@ -16,7 +16,7 @@ conflicts=('kdebindings-ruby')
options=('!makeflags')
source=("http://download.kde.org/stable/${pkgver}/src/korundum-${pkgver}.tar.xz"
'korundum-4.8.0-ruby19.patch')
-sha1sums=('e949fae573d1399e67830c3eef0ebaa853905026'
+sha1sums=('ce722ea7c64ce90d11370e393a87cb067962853e'
'73299f56a891d8a5475ac07dd485619859312f70')
build() {
diff --git a/extra/kdebindings-kross/PKGBUILD b/extra/kdebindings-kross/PKGBUILD
index 24c378579..343e03778 100644
--- a/extra/kdebindings-kross/PKGBUILD
+++ b/extra/kdebindings-kross/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 158415 2012-05-03 22:32:08Z andrea $
+# $Id: PKGBUILD 161151 2012-06-08 06:36:10Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgbase=kdebindings-kross
pkgname=('kdebindings-kross-python'
# 'kdebindings-kross-ruby'
'kdebindings-kross-java')
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
url="http://kde.org/"
arch=('i686' 'x86_64')
@@ -13,7 +13,7 @@ license=('GPL' 'LGPL' 'FDL')
groups=('kdebindings')
makedepends=('kdelibs' 'cmake' 'automoc4' 'python2' 'java-environment')
source=("http://download.kde.org/stable/${pkgver}/src/kross-interpreters-${pkgver}.tar.xz")
-sha1sums=('1191563f2a925a261b40d61b62f1d1b7e01238aa')
+sha1sums=('b5b73e10aa51377abe4da74eb98589fcc7eb83c4')
build() {
cd "${srcdir}"
diff --git a/extra/kdebindings-perlkde/PKGBUILD b/extra/kdebindings-perlkde/PKGBUILD
index 107ce1c95..9778d0f7a 100644
--- a/extra/kdebindings-perlkde/PKGBUILD
+++ b/extra/kdebindings-perlkde/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 160491 2012-06-02 10:26:33Z bluewind $
+# $Id: PKGBUILD 161153 2012-06-08 06:36:13Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdebindings-perlkde
-pkgver=4.8.3
-pkgrel=2
+pkgver=4.8.4
+pkgrel=1
pkgdesc="Perl bindings for the KDE libraries"
url="http://kde.org/"
arch=('i686' 'x86_64')
@@ -13,7 +13,7 @@ depends=('kdebindings-perlqt' 'kdebindings-smokekde')
makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'kdepimlibs'
'kdegraphics-okular' 'kdesdk-kate')
source=("http://download.kde.org/stable/${pkgver}/src/perlkde-${pkgver}.tar.xz")
-sha1sums=('bfc1c3a86789832cf7747dfc854d586d86c10a99')
+sha1sums=('5d94e2f4d6a32cf4cc7ff1d577d925de53ec8dee')
build() {
cd "${srcdir}"
diff --git a/extra/kdebindings-perlqt/PKGBUILD b/extra/kdebindings-perlqt/PKGBUILD
index 6750e259b..1a3ffb6a7 100644
--- a/extra/kdebindings-perlqt/PKGBUILD
+++ b/extra/kdebindings-perlqt/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 160493 2012-06-02 10:26:36Z bluewind $
+# $Id: PKGBUILD 161105 2012-06-08 06:34:49Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdebindings-perlqt
-pkgver=4.8.3
-pkgrel=2
+pkgver=4.8.4
+pkgrel=1
pkgdesc="Perl bindings for the Qt libraries"
url="http://kde.org/"
arch=('i686' 'x86_64')
@@ -12,7 +12,7 @@ groups=('kdebindings')
depends=('kdebindings-smokeqt' 'perl-list-moreutils')
makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
source=("http://download.kde.org/stable/${pkgver}/src/perlqt-${pkgver}.tar.xz")
-sha1sums=('d0d0d5da1fd9c50bd19ff2bb49d6a71a2d97759f')
+sha1sums=('86a7706bff687f1721d0b17e9bde3aa36e0970fb')
build() {
cd "${srcdir}"
diff --git a/extra/kdebindings-python/PKGBUILD b/extra/kdebindings-python/PKGBUILD
index 88be7badd..0f6dbe883 100644
--- a/extra/kdebindings-python/PKGBUILD
+++ b/extra/kdebindings-python/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 158369 2012-05-03 22:30:43Z andrea $
+# $Id: PKGBUILD 161107 2012-06-08 06:34:53Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgbase=kdebindings-python
pkgname=('kdebindings-python'
'kdebindings-python2')
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
url='http://kde.org/'
arch=('i686' 'x86_64')
@@ -12,7 +12,7 @@ license=('GPL' 'LGPL' 'FDL')
groups=('kdebindings')
makedepends=('cmake' 'automoc4' 'boost' 'kdepim-runtime' 'python2-pyqt' 'qscintilla')
source=("http://download.kde.org/stable/${pkgver}/src/pykde4-${pkgver}.tar.xz")
-sha1sums=('e88ef838b492802f401b0242205e87149c19d032')
+sha1sums=('e629d7a1d7d1aa1d1dd24769dc5412a60b6ac256')
build() {
export PYTHONDONTWRITEBYTECODE="TRUE"
diff --git a/extra/kdebindings-qtruby/PKGBUILD b/extra/kdebindings-qtruby/PKGBUILD
index b1ba9dffc..eb803726d 100644
--- a/extra/kdebindings-qtruby/PKGBUILD
+++ b/extra/kdebindings-qtruby/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158373 2012-05-03 22:30:50Z andrea $
+# $Id: PKGBUILD 161111 2012-06-08 06:35:00Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdebindings-qtruby
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Qt bindings for ruby"
url="http://kde.org/"
@@ -13,7 +13,7 @@ depends=('kdebindings-smokeqt' 'ruby')
makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
conflicts=('kdebindings-ruby')
source=("http://download.kde.org/stable/${pkgver}/src/qtruby-${pkgver}.tar.xz")
-sha1sums=('aa88b382034cb66f283c200a10c04d3ba2170492')
+sha1sums=('ce9f9b45d7e9edc839257a1f1c53b1e699503b47')
build() {
cd "${srcdir}"
diff --git a/extra/kdebindings-qyoto/PKGBUILD b/extra/kdebindings-qyoto/PKGBUILD
index a69fa9f75..1a7ebbf3d 100644
--- a/extra/kdebindings-qyoto/PKGBUILD
+++ b/extra/kdebindings-qyoto/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158371 2012-05-03 22:30:46Z andrea $
+# $Id: PKGBUILD 161109 2012-06-08 06:34:57Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdebindings-qyoto
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc=".NET/Mono bindings for the Qt libraries"
url="http://kde.org/"
@@ -13,7 +13,7 @@ depends=('kdebindings-smokeqt' 'mono')
makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
conflicts=('kdebindings-csharp')
source=("http://download.kde.org/stable/${pkgver}/src/qyoto-${pkgver}.tar.xz")
-sha1sums=('7d20a80fef76d4cdfb8d03a66e07b82074df69b0')
+sha1sums=('8df3ad9630e8435e6af5af5809520662c95ee516')
build() {
cd "${srcdir}"
diff --git a/extra/kdebindings-smokegen/PKGBUILD b/extra/kdebindings-smokegen/PKGBUILD
index fb1a68739..340ab0146 100644
--- a/extra/kdebindings-smokegen/PKGBUILD
+++ b/extra/kdebindings-smokegen/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158357 2012-05-03 22:30:21Z andrea $
+# $Id: PKGBUILD 161095 2012-06-08 06:34:27Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdebindings-smokegen
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="A general purpose C++ parser with a plugin infrastructure"
url="http://kde.org/"
@@ -12,7 +12,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
conflicts=('kdebindings-smoke')
source=("http://download.kde.org/stable/${pkgver}/src/smokegen-${pkgver}.tar.xz")
-sha1sums=('0ea29388a8a8116e8b4fa7fe6e8a0b270e99cdcd')
+sha1sums=('5ff7d15ed1cdea07f455fbf1189885518cf43cb6')
build() {
cd "${srcdir}"
diff --git a/extra/kdebindings-smokekde/PKGBUILD b/extra/kdebindings-smokekde/PKGBUILD
index db7477d17..1c737d8ff 100644
--- a/extra/kdebindings-smokekde/PKGBUILD
+++ b/extra/kdebindings-smokekde/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158365 2012-05-03 22:30:36Z andrea $
+# $Id: PKGBUILD 161103 2012-06-08 06:34:46Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdebindings-smokekde
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Language independent library for KDE bindings"
url="http://kde.org/"
@@ -14,7 +14,7 @@ makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost'
'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate')
conflicts=('kdebindings-smoke')
source=("http://download.kde.org/stable/${pkgver}/src/smokekde-${pkgver}.tar.xz")
-sha1sums=('b02b4b12dd5a23b2a87787bdde4491161d6a4e8d')
+sha1sums=('d028d68485bc32cfe6bc60dbd597d8f72c9e70ef')
build() {
cd "${srcdir}"
diff --git a/extra/kdebindings-smokeqt/PKGBUILD b/extra/kdebindings-smokeqt/PKGBUILD
index 54738a1e3..af5d8970e 100644
--- a/extra/kdebindings-smokeqt/PKGBUILD
+++ b/extra/kdebindings-smokeqt/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158359 2012-05-03 22:30:25Z andrea $
+# $Id: PKGBUILD 161097 2012-06-08 06:34:30Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdebindings-smokeqt
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Language independent library for Qt bindings"
url="http://kde.org/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'qimageblitz' 'qscintilla' 'kdebindings-smokegen')
makedepends=('cmake' 'automoc4')
conflicts=('kdebindings-smoke')
source=("http://download.kde.org/stable/${pkgver}/src/smokeqt-${pkgver}.tar.xz")
-sha1sums=('a1f5e5ed2a8ea94bf785771b2b43bf2dcb3b7808')
+sha1sums=('bf2be3e7ccf8d451f001fd2f08c306fb7f72169a')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-analitza/PKGBUILD b/extra/kdeedu-analitza/PKGBUILD
index 7871097bf..580193f7d 100644
--- a/extra/kdeedu-analitza/PKGBUILD
+++ b/extra/kdeedu-analitza/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158393 2012-05-03 22:31:29Z andrea $
+# $Id: PKGBUILD 161129 2012-06-08 06:35:28Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-analitza
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="A library to add mathematical features to your program"
url="http://kde.org/"
@@ -12,7 +12,7 @@ groups=('kde' 'kdeedu')
depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
source=("http://download.kde.org/stable/${pkgver}/src/analitza-${pkgver}.tar.xz")
-sha1sums=('bec5927a68028b74193afb6e7f2a36f97ba25543')
+sha1sums=('d3b831730408078c31b686bc49c1d465de5e80da')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-blinken/PKGBUILD b/extra/kdeedu-blinken/PKGBUILD
index 55b91eab9..d11084f77 100644
--- a/extra/kdeedu-blinken/PKGBUILD
+++ b/extra/kdeedu-blinken/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158419 2012-05-03 22:32:14Z andrea $
+# $Id: PKGBUILD 161155 2012-06-08 06:36:16Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-blinken
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Memory Enhancement Game"
url="http://kde.org/applications/education/blinken/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/blinken-${pkgver}.tar.xz")
-sha1sums=('66b94eb99a9e2075465fd60d8e5635d4b064ecb9')
+sha1sums=('571e1f06270d38e56149a8770517bf892859e2eb')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-cantor/PKGBUILD b/extra/kdeedu-cantor/PKGBUILD
index 3223757e7..3189bf321 100644
--- a/extra/kdeedu-cantor/PKGBUILD
+++ b/extra/kdeedu-cantor/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158421 2012-05-03 22:32:18Z andrea $
+# $Id: PKGBUILD 161157 2012-06-08 06:36:18Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-cantor
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="KDE Frontend to Mathematical Software"
url="http://kde.org/applications/education/cantor/"
@@ -16,7 +16,7 @@ optdepends=('maxima: Maxima backend'
'r: R backend')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/cantor-${pkgver}.tar.xz")
-sha1sums=('e4aba48e30a4bee444f7e01eab807619908cd903')
+sha1sums=('8e284e632144a92f503092738d19843272d0412e')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-kalgebra/PKGBUILD b/extra/kdeedu-kalgebra/PKGBUILD
index 2a79878d8..e256180b0 100644
--- a/extra/kdeedu-kalgebra/PKGBUILD
+++ b/extra/kdeedu-kalgebra/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158423 2012-05-03 22:32:22Z andrea $
+# $Id: PKGBUILD 161159 2012-06-08 06:36:21Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-kalgebra
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Graph Calculator"
url="http://kde.org/applications/education/kalgebra/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'libkdeedu' 'kdeedu-analitza')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kalgebra-${pkgver}.tar.xz")
-sha1sums=('bea6a48ff5ae650e95fd443134dced3b08b169d5')
+sha1sums=('be0bcd290c61713a0365e9eab2ddc8d58f447f34')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-kalzium/PKGBUILD b/extra/kdeedu-kalzium/PKGBUILD
index 3d646149b..05054ff95 100644
--- a/extra/kdeedu-kalzium/PKGBUILD
+++ b/extra/kdeedu-kalzium/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158425 2012-05-03 22:32:24Z andrea $
+# $Id: PKGBUILD 161161 2012-06-08 06:36:24Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-kalzium
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Periodic Table of Elements"
url="http://kde.org/applications/education/kalzium/"
@@ -13,7 +13,7 @@ depends=('kdelibs' 'avogadro' 'ocaml' 'facile')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kalzium-${pkgver}.tar.xz")
-sha1sums=('33629c565b82c755af0b73746c675ac44c234028')
+sha1sums=('28ed27164680a28e478cc6e0a13c918bc2119dc2')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-kanagram/PKGBUILD b/extra/kdeedu-kanagram/PKGBUILD
index 911aabde2..51edec784 100644
--- a/extra/kdeedu-kanagram/PKGBUILD
+++ b/extra/kdeedu-kanagram/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158427 2012-05-03 22:32:28Z andrea $
+# $Id: PKGBUILD 161163 2012-06-08 06:36:27Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-kanagram
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Letter Order Game"
url="http://kde.org/applications/education/kanagram/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'libkdeedu')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kanagram-${pkgver}.tar.xz")
-sha1sums=('36036b57bec5896945e5edaeb183120df4b90ed1')
+sha1sums=('e897cc67ae046a4d7580f22a0ace534525fa6f1b')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-kbruch/PKGBUILD b/extra/kdeedu-kbruch/PKGBUILD
index f1415f995..928236c40 100644
--- a/extra/kdeedu-kbruch/PKGBUILD
+++ b/extra/kdeedu-kbruch/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158429 2012-05-03 22:32:33Z andrea $
+# $Id: PKGBUILD 161165 2012-06-08 06:36:30Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-kbruch
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Exercise Fractions"
url="http://kde.org/applications/education/kbruch/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kbruch-${pkgver}.tar.xz")
-sha1sums=('6cbb2ef86950e306bb4824e190e7689f8dacca2e')
+sha1sums=('40c24efddc30441a8de2ec315e1933ca429da14b')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-kgeography/PKGBUILD b/extra/kdeedu-kgeography/PKGBUILD
index b70e36ed9..23aede7de 100644
--- a/extra/kdeedu-kgeography/PKGBUILD
+++ b/extra/kdeedu-kgeography/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158431 2012-05-03 22:32:36Z andrea $
+# $Id: PKGBUILD 161167 2012-06-08 06:36:33Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-kgeography
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Geography Trainer"
url="http://kde.org/applications/education/kgeography/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kgeography-${pkgver}.tar.xz")
-sha1sums=('70a5577a5303fd8d97efbc06220bd896ec00574f')
+sha1sums=('4637c5a792164d083f0ea05e6733160922d8c73b')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-khangman/PKGBUILD b/extra/kdeedu-khangman/PKGBUILD
index 3c0972024..92421be6e 100644
--- a/extra/kdeedu-khangman/PKGBUILD
+++ b/extra/kdeedu-khangman/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158433 2012-05-03 22:32:41Z andrea $
+# $Id: PKGBUILD 161169 2012-06-08 06:36:38Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-khangman
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Hangman Game"
url="http://kde.org/applications/education/khangman/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'libkdeedu')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/khangman-${pkgver}.tar.xz")
-sha1sums=('75d0147a2e374b8940cf472550ca7f45a5c63587')
+sha1sums=('aa544ba55833983bd21ebf594f2003a66b251901')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-kig/PKGBUILD b/extra/kdeedu-kig/PKGBUILD
index ac814c0a4..8a46a6f8c 100644
--- a/extra/kdeedu-kig/PKGBUILD
+++ b/extra/kdeedu-kig/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158435 2012-05-03 22:32:44Z andrea $
+# $Id: PKGBUILD 161171 2012-06-08 06:36:44Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-kig
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Interactive Geometry"
url="http://kde.org/applications/education/kig/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kig-${pkgver}.tar.xz")
-sha1sums=('f7bd8d16cbb98ca44868df7bfd6b7a9e608c9ff4')
+sha1sums=('dcbde5fbb34e0c569a2ef95a328cf69a924cd38e')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-kiten/PKGBUILD b/extra/kdeedu-kiten/PKGBUILD
index 37b5defd0..0bdd4ccd1 100644
--- a/extra/kdeedu-kiten/PKGBUILD
+++ b/extra/kdeedu-kiten/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158437 2012-05-03 22:32:48Z andrea $
+# $Id: PKGBUILD 161173 2012-06-08 06:36:50Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-kiten
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Japanese Reference/Study Tool"
url="http://kde.org/applications/education/kiten/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kiten-${pkgver}.tar.xz")
-sha1sums=('8d94c45907a18db22117801ab1773cc43afb8c23')
+sha1sums=('f7b5f9b6cbbda37c539f1ffce9bd905f0be3658e')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-klettres/PKGBUILD b/extra/kdeedu-klettres/PKGBUILD
index fdd3188f1..ac69b4f3b 100644
--- a/extra/kdeedu-klettres/PKGBUILD
+++ b/extra/kdeedu-klettres/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158439 2012-05-03 22:32:52Z andrea $
+# $Id: PKGBUILD 161175 2012-06-08 06:36:56Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-klettres
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Learn The Alphabet"
url="http://kde.org/applications/education/klettres/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/klettres-${pkgver}.tar.xz")
-sha1sums=('e0156053117b07bf0a81a4258f7cce6f0ba4f60e')
+sha1sums=('b5dc64cdd09f265cd7a84d0ee14a93ea4ae067be')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-kmplot/PKGBUILD b/extra/kdeedu-kmplot/PKGBUILD
index c2926b146..5915098b6 100644
--- a/extra/kdeedu-kmplot/PKGBUILD
+++ b/extra/kdeedu-kmplot/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158441 2012-05-03 22:32:55Z andrea $
+# $Id: PKGBUILD 161177 2012-06-08 06:37:01Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-kmplot
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Mathematical Function Plotter"
url="http://kde.org/applications/education/kmplot/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kmplot-${pkgver}.tar.xz")
-sha1sums=('c34c93266fd00d7c9b0d6f16625dbed13dba2a20')
+sha1sums=('07ada013e1a046afe3bb3542a2485b1ec0d4736e')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-kstars/PKGBUILD b/extra/kdeedu-kstars/PKGBUILD
index 82cc756c2..ce799d842 100644
--- a/extra/kdeedu-kstars/PKGBUILD
+++ b/extra/kdeedu-kstars/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158443 2012-05-03 22:32:58Z andrea $
+# $Id: PKGBUILD 161179 2012-06-08 06:37:06Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-kstars
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Desktop Planetarium"
url="http://kde.org/applications/education/kstars/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'libindi')
makedepends=('cmake' 'automoc4' 'eigen')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kstars-${pkgver}.tar.xz")
-sha1sums=('3c06bfb4f1e84565ac4de8126cfe47111217c995')
+sha1sums=('579cec66cfb172258d2967872a2b9c32d4514c75')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-ktouch/PKGBUILD b/extra/kdeedu-ktouch/PKGBUILD
index c84efc7e0..f80633c10 100644
--- a/extra/kdeedu-ktouch/PKGBUILD
+++ b/extra/kdeedu-ktouch/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158445 2012-05-03 22:33:03Z andrea $
+# $Id: PKGBUILD 161181 2012-06-08 06:37:11Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-ktouch
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Touch Typing Tutor"
url="http://kde.org/applications/education/ktouch/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/ktouch-${pkgver}.tar.xz")
-sha1sums=('f098df93bb5c3dfd349104d168f3fcb1eb73ffb6')
+sha1sums=('95e7712b9644d1b3491c988bc591d7c5b4e4d3b7')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-kturtle/PKGBUILD b/extra/kdeedu-kturtle/PKGBUILD
index 2ab050440..2e0c4b327 100644
--- a/extra/kdeedu-kturtle/PKGBUILD
+++ b/extra/kdeedu-kturtle/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158447 2012-05-03 22:33:06Z andrea $
+# $Id: PKGBUILD 161183 2012-06-08 06:37:14Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-kturtle
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Educational Programming Environment"
url="http://kde.org/applications/education/kturtle/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kturtle-${pkgver}.tar.xz")
-sha1sums=('6f8c102e4bf41c9e214b5f71bd79f56f5651c1dc')
+sha1sums=('160972878f61c37575fb5953b88354fe174fe8ab')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-kwordquiz/PKGBUILD b/extra/kdeedu-kwordquiz/PKGBUILD
index 819c4ca04..147a9345f 100644
--- a/extra/kdeedu-kwordquiz/PKGBUILD
+++ b/extra/kdeedu-kwordquiz/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158449 2012-05-03 22:33:08Z andrea $
+# $Id: PKGBUILD 161185 2012-06-08 06:37:17Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-kwordquiz
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Flash Card Trainer"
url="http://kde.org/applications/education/kwordquiz/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'libkdeedu')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kwordquiz-${pkgver}.tar.xz")
-sha1sums=('65adea1b68f1f4d7ff36ef70bdd29fafc0e36e9e')
+sha1sums=('ab6cf92bbedef4115951d3cc53a9f3b91ac11875')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-marble/PKGBUILD b/extra/kdeedu-marble/PKGBUILD
index b4182d473..cbc4a684a 100644
--- a/extra/kdeedu-marble/PKGBUILD
+++ b/extra/kdeedu-marble/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158383 2012-05-03 22:31:12Z andrea $
+# $Id: PKGBUILD 161119 2012-06-08 06:35:15Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-marble
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Desktop Globe"
url="http://kde.org/applications/education/marble/"
@@ -14,7 +14,7 @@ makedepends=('cmake' 'automoc4' 'gpsd')
optdepends=('gpsd: gps support')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/marble-${pkgver}.tar.xz")
-sha1sums=('d33d73d757b14a42640176b994ad5930ebc1df30')
+sha1sums=('ec3cd41a1d333e9e3b34595adf6e4859315159b9')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-parley/PKGBUILD b/extra/kdeedu-parley/PKGBUILD
index a4135a23d..9c68d102d 100644
--- a/extra/kdeedu-parley/PKGBUILD
+++ b/extra/kdeedu-parley/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158451 2012-05-03 22:33:11Z andrea $
+# $Id: PKGBUILD 161187 2012-06-08 06:37:20Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-parley
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Vocabulary Trainer"
url="http://kde.org/applications/education/parley/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'libkdeedu')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/parley-${pkgver}.tar.xz")
-sha1sums=('4a524209b19dcb174f4ce4258b4ec85adfa19ccb')
+sha1sums=('bfc361363fa0cb866fd1d704b86d71401c1c4ea6')
build() {
cd "${srcdir}"
diff --git a/extra/kdeedu-rocs/PKGBUILD b/extra/kdeedu-rocs/PKGBUILD
index 9092cd95c..6c07a15c0 100644
--- a/extra/kdeedu-rocs/PKGBUILD
+++ b/extra/kdeedu-rocs/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158453 2012-05-03 22:33:15Z andrea $
+# $Id: PKGBUILD 161189 2012-06-08 06:37:22Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-rocs
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Rocs Graph Theory"
url="http://kde.org/applications/education/rocs/"
@@ -12,7 +12,7 @@ groups=('kde' 'kdeedu')
depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4' 'boost')
source=("http://download.kde.org/stable/${pkgver}/src/rocs-${pkgver}.tar.xz")
-sha1sums=('772a80277edb483d4e189595a1723a2d1877d8d4')
+sha1sums=('991e5aa15e59cc432a9c9f140fe90bd47f8f8e15')
options=('!makeflags')
build() {
diff --git a/extra/kdeedu-step/PKGBUILD b/extra/kdeedu-step/PKGBUILD
index 895a34d1f..51edff00a 100644
--- a/extra/kdeedu-step/PKGBUILD
+++ b/extra/kdeedu-step/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158455 2012-05-03 22:33:19Z andrea $
+# $Id: PKGBUILD 161191 2012-06-08 06:37:25Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-step
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Interactive Physical Simulator"
url="http://kde.org/applications/education/step/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'libqalculate' 'gsl')
makedepends=('cmake' 'automoc4' 'eigen')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/step-${pkgver}.tar.xz")
-sha1sums=('2356c87aa3faec080a4963fc69a4d07c2d44a67d')
+sha1sums=('498d8243309388fa8b59cd968c0c92fc588eda11')
build() {
cd "${srcdir}"
diff --git a/extra/kdegames/PKGBUILD b/extra/kdegames/PKGBUILD
index d49ca1175..cf3d8f518 100644
--- a/extra/kdegames/PKGBUILD
+++ b/extra/kdegames/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 158457 2012-05-03 22:33:28Z andrea $
+# $Id: PKGBUILD 161193 2012-06-08 06:37:32Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -43,7 +43,7 @@ pkgname=('kdegames-bomber'
'kdegames-libkmahjongg'
'kdegames-lskat'
'kdegames-palapeli')
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
url='http://www.kde.org'
@@ -52,7 +52,7 @@ groups=('kde' 'kdegames')
makedepends=('cmake' 'automoc4' 'ggz-client-libs' 'twisted' 'kdebindings-python2'
'openal')
source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz")
-sha1sums=('eea3a13a9e713d387b48d30c615b68336945eac5')
+sha1sums=('00a68215c3e8b41ec8b7949c5d82af8e54766e97')
build() {
cd $srcdir
diff --git a/extra/kdegraphics-gwenview/PKGBUILD b/extra/kdegraphics-gwenview/PKGBUILD
index 9078be651..cd414c2b2 100644
--- a/extra/kdegraphics-gwenview/PKGBUILD
+++ b/extra/kdegraphics-gwenview/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158459 2012-05-03 22:33:34Z andrea $
+# $Id: PKGBUILD 161195 2012-06-08 06:37:36Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdegraphics-gwenview
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="A fast and easy to use image viewer for KDE"
url="http://kde.org/applications/graphics/gwenview/"
@@ -14,7 +14,7 @@ makedepends=('cmake' 'automoc4')
optdepends=('kipi-plugins: extra plugins to share photos')
install=$pkgname.install
source=("http://download.kde.org/stable/${pkgver}/src/gwenview-${pkgver}.tar.xz")
-sha1sums=('be5fd73872be0e46a99b8d5b1c54e1e0328350c8')
+sha1sums=('6cc6da85f6e2c8c817c1402baace16eb58b7a423')
build() {
cd "${srcdir}"
diff --git a/extra/kdegraphics-kamera/PKGBUILD b/extra/kdegraphics-kamera/PKGBUILD
index d92b7188a..b628ff902 100644
--- a/extra/kdegraphics-kamera/PKGBUILD
+++ b/extra/kdegraphics-kamera/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158461 2012-05-03 22:33:36Z andrea $
+# $Id: PKGBUILD 161197 2012-06-08 06:37:39Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdegraphics-kamera
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Configure Kamera"
url="http://kde.org/applications/graphics/kamera/"
@@ -12,7 +12,7 @@ groups=('kde' 'kdegraphics')
depends=('kdebase-runtime' 'gphoto2')
makedepends=('cmake' 'automoc4')
source=("http://download.kde.org/stable/${pkgver}/src/kamera-${pkgver}.tar.xz")
-sha1sums=('af58ef6b0762bd6e3bd75f7914c6ba575c205ba8')
+sha1sums=('fc92327482bf1cd9b067667285ede00e3e464653')
build() {
cd "${srcdir}"
diff --git a/extra/kdegraphics-kcolorchooser/PKGBUILD b/extra/kdegraphics-kcolorchooser/PKGBUILD
index 5b8c17529..7f160ecea 100644
--- a/extra/kdegraphics-kcolorchooser/PKGBUILD
+++ b/extra/kdegraphics-kcolorchooser/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158463 2012-05-03 22:33:39Z andrea $
+# $Id: PKGBUILD 161199 2012-06-08 06:37:42Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdegraphics-kcolorchooser
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Color Chooser"
url="http://kde.org/applications/graphics/kcolorchooser/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kcolorchooser-${pkgver}.tar.xz")
-sha1sums=('08595a7388abc65b96fd91a874d5cedeb889c217')
+sha1sums=('2f5ee55c86a503e458b1884939a62408bedbfc70')
build() {
cd "${srcdir}"
diff --git a/extra/kdegraphics-kgamma/PKGBUILD b/extra/kdegraphics-kgamma/PKGBUILD
index af2a14a20..b51c3c4ee 100644
--- a/extra/kdegraphics-kgamma/PKGBUILD
+++ b/extra/kdegraphics-kgamma/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158465 2012-05-03 22:33:42Z andrea $
+# $Id: PKGBUILD 161201 2012-06-08 06:37:45Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdegraphics-kgamma
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="A monitor calibration tool"
url="http://kde.org/applications/graphics/kgamma/"
@@ -15,7 +15,7 @@ groups=('kde' 'kdegraphics')
depends=('kdebase-runtime' 'libxxf86vm')
makedepends=('cmake' 'automoc4')
source=("http://download.kde.org/stable/${pkgver}/src/kgamma-${pkgver}.tar.xz")
-sha1sums=('bfb32bbe49cd715390d24e3705d23171fdf0e2c9')
+sha1sums=('812a84564db52fb6a8b8e0e829eb762d479092ec')
build() {
cd "${srcdir}"
diff --git a/extra/kdegraphics-kolourpaint/PKGBUILD b/extra/kdegraphics-kolourpaint/PKGBUILD
index 98a66d90d..b615dd2bd 100644
--- a/extra/kdegraphics-kolourpaint/PKGBUILD
+++ b/extra/kdegraphics-kolourpaint/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158467 2012-05-03 22:33:46Z andrea $
+# $Id: PKGBUILD 161203 2012-06-08 06:37:48Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdegraphics-kolourpaint
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Paint Program"
url="http://kde.org/applications/graphics/kolourpaint/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime' 'qimageblitz')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kolourpaint-${pkgver}.tar.xz")
-sha1sums=('2030505b4169448914ef693f88874f3f323fb49c')
+sha1sums=('1dc706ed29339df9fcc68ee606588941319bbf09')
build() {
cd "${srcdir}"
diff --git a/extra/kdegraphics-kruler/PKGBUILD b/extra/kdegraphics-kruler/PKGBUILD
index 85c1213d5..7efddc5fa 100644
--- a/extra/kdegraphics-kruler/PKGBUILD
+++ b/extra/kdegraphics-kruler/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158469 2012-05-03 22:33:49Z andrea $
+# $Id: PKGBUILD 161205 2012-06-08 06:37:50Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdegraphics-kruler
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Screen Ruler"
url="http://kde.org/applications/graphics/kruler/"
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kruler-${pkgver}.tar.xz")
-sha1sums=('baf3015a781e4389e9fa66067906e18765322132')
+sha1sums=('b3fb40888f6cf2ad419e1f30a97c2052ffbae1d7')
build() {
cd "${srcdir}"
diff --git a/extra/kdegraphics-ksaneplugin/PKGBUILD b/extra/kdegraphics-ksaneplugin/PKGBUILD
index 54da07e93..bef629d4a 100644
--- a/extra/kdegraphics-ksaneplugin/PKGBUILD
+++ b/extra/kdegraphics-ksaneplugin/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158471 2012-05-03 22:33:52Z andrea $
+# $Id: PKGBUILD 161207 2012-06-08 06:37:53Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdegraphics-ksaneplugin
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="A scan plugin that implements the scanning"
url="http://kde.org/"
@@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4')
replaces=('kdegraphics-libs')
conflicts=('kdegraphics-libs')
source=("http://download.kde.org/stable/${pkgver}/src/ksaneplugin-${pkgver}.tar.xz")
-sha1sums=('d6c5588bb2e5b45aecb0de1b37775e22b7cd696c')
+sha1sums=('b7a3204ef27f04bffca0fd77d84bd46b236687b7')
build() {
cd "${srcdir}"
diff --git a/extra/kdegraphics-ksnapshot/PKGBUILD b/extra/kdegraphics-ksnapshot/PKGBUILD
index 38e15f283..856a09cc0 100644
--- a/extra/kdegraphics-ksnapshot/PKGBUILD
+++ b/extra/kdegraphics-ksnapshot/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158473 2012-05-03 22:33:57Z andrea $
+# $Id: PKGBUILD 161209 2012-06-08 06:37:56Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdegraphics-ksnapshot
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Screen Capture Program"
url="http://kde.org/applications/graphics/ksnapshot/"
@@ -14,7 +14,7 @@ makedepends=('cmake' 'automoc4')
optdepends=('kipi-plugins')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/ksnapshot-${pkgver}.tar.xz")
-sha1sums=('7b90bba6e11aff524ed759e7c7043fc97116b92c')
+sha1sums=('1cbd1ea468e7722feb8c96dd5f1f3a18bb91d4ef')
build() {
cd "${srcdir}"
diff --git a/extra/kdegraphics-mobipocket/PKGBUILD b/extra/kdegraphics-mobipocket/PKGBUILD
index d0450e197..181df4616 100644
--- a/extra/kdegraphics-mobipocket/PKGBUILD
+++ b/extra/kdegraphics-mobipocket/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158475 2012-05-03 22:34:01Z andrea $
+# $Id: PKGBUILD 161211 2012-06-08 06:37:59Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdegraphics-mobipocket
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="A collection of plugins to handle mobipocket files"
url="http://kde.org/"
@@ -14,7 +14,7 @@ replaces=('kdegraphics-libs')
conflicts=('kdegraphics-libs')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
-sha1sums=('97a19a437e53f1b0ec538d7d35bbf25605e6845e')
+sha1sums=('0c38ef851c054b0ee3689d41ff5f7f6fb3d83f67')
build() {
cd "${srcdir}"
diff --git a/extra/kdegraphics-okular/PKGBUILD b/extra/kdegraphics-okular/PKGBUILD
index 165b3352e..3243ccc6e 100644
--- a/extra/kdegraphics-okular/PKGBUILD
+++ b/extra/kdegraphics-okular/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 159708 2012-05-26 07:54:21Z andyrtr $
+# $Id: PKGBUILD 161099 2012-06-08 06:34:36Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdegraphics-okular
-pkgver=4.8.3
-pkgrel=2
+pkgver=4.8.4
+pkgrel=1
pkgdesc='Document Viewer'
arch=('i686' 'x86_64')
url="http://kde.org/applications/graphics/okular/"
@@ -15,7 +15,7 @@ makedepends=('cmake' 'automoc4')
optdepends=('kdegraphics-mobipocket: mobipocket support')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/okular-${pkgver}.tar.xz")
-sha1sums=('7c43076df3e9d6217e2a5cbb8ef6d8af89f8ae37')
+sha1sums=('34ff243a4fa77400631aa44b31cbe54910f8091e')
build() {
cd "${srcdir}"
diff --git a/extra/kdegraphics-strigi-analyzer/PKGBUILD b/extra/kdegraphics-strigi-analyzer/PKGBUILD
index 889337565..497c51a4e 100644
--- a/extra/kdegraphics-strigi-analyzer/PKGBUILD
+++ b/extra/kdegraphics-strigi-analyzer/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158477 2012-05-03 22:34:04Z andrea $
+# $Id: PKGBUILD 161213 2012-06-08 06:38:02Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdegraphics-strigi-analyzer
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Strigi analyzers for various graphics file formats"
url="http://kde.org/"
@@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4')
replaces=('kdegraphics-libs')
conflicts=('kdegraphics-libs')
source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
-sha1sums=('8e0cbcbd36b1ac5fdfb7665bc456a87dd3ba59ef')
+sha1sums=('208dd945c1ecfaee97457585dc7a52916dd2318f')
build() {
cd "${srcdir}"
diff --git a/extra/kdegraphics-svgpart/PKGBUILD b/extra/kdegraphics-svgpart/PKGBUILD
index 06ab29c3b..936a397e2 100644
--- a/extra/kdegraphics-svgpart/PKGBUILD
+++ b/extra/kdegraphics-svgpart/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158479 2012-05-03 22:34:07Z andrea $
+# $Id: PKGBUILD 161215 2012-06-08 06:38:04Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdegraphics-svgpart
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="A KPart for viewving SVGs"
url="http://kde.org/"
@@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4')
replaces=('kdegraphics-libs')
conflicts=('kdegraphics-libs')
source=("http://download.kde.org/stable/${pkgver}/src/svgpart-${pkgver}.tar.xz")
-sha1sums=('53d69e810acbad5d1cb606a74cf218e3ceccd876')
+sha1sums=('3c202f0a58035c56e7e46a983c254a6284b97ee9')
build() {
cd "${srcdir}"
diff --git a/extra/kdegraphics-thumbnailers/PKGBUILD b/extra/kdegraphics-thumbnailers/PKGBUILD
index 864825d03..1a9a22c05 100644
--- a/extra/kdegraphics-thumbnailers/PKGBUILD
+++ b/extra/kdegraphics-thumbnailers/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158481 2012-05-03 22:34:12Z andrea $
+# $Id: PKGBUILD 161217 2012-06-08 06:38:08Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdegraphics-thumbnailers
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Thumbnailers for various graphics file formats"
url="http://kde.org/"
@@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4')
replaces=('kdegraphics-libs')
conflicts=('kdegraphics-libs')
source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
-sha1sums=('3a7839030e1e49addfdb275acfa1c0288aa95431')
+sha1sums=('57e753881f9ca78c4c188c49a3a1b258b92adb83')
build() {
cd "${srcdir}"
diff --git a/extra/kdemultimedia/PKGBUILD b/extra/kdemultimedia/PKGBUILD
index 238415d52..f3f390641 100644
--- a/extra/kdemultimedia/PKGBUILD
+++ b/extra/kdemultimedia/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 159443 2012-05-24 12:12:39Z andrea $
+# $Id: PKGBUILD 161219 2012-06-08 06:38:12Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -10,8 +10,8 @@ pkgname=('kdemultimedia-dragonplayer'
'kdemultimedia-kmix'
'kdemultimedia-kscd'
'kdemultimedia-mplayerthumbs')
-pkgver=4.8.3
-pkgrel=2
+pkgver=4.8.4
+pkgrel=1
arch=('i686' 'x86_64')
url='http://www.kde.org'
license=('GPL' 'LGPL' 'FDL')
@@ -19,11 +19,16 @@ groups=('kde' 'kdemultimedia')
makedepends=('cmake' 'automoc4' 'kdelibs' 'ffmpeg' 'mplayer' 'libpulse'
'libmusicbrainz3' 'taglib' 'libcanberra')
source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz"
- 'mplayerthumbs.config')
-sha1sums=('8f2b9181d5ccab5a9efd62f2778cf6c2b88abb3e'
- 'ba016fa2563c14ffcba852c62506b66bfc6ee683')
+ 'mplayerthumbs.config'
+ 'ffmpeg0.11.patch')
+sha1sums=('dac721e82308a6347d578361e25da7c466a26ba7'
+ 'ba016fa2563c14ffcba852c62506b66bfc6ee683'
+ '48331f7e2dab760c20708b81fe6c4d47c83a63e7')
build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}/ffmpegthumbs
+ patch -p1 -i ${srcdir}/ffmpeg0.11.patch
+
cd ${srcdir}
mkdir build
cd build
@@ -41,8 +46,8 @@ package_kdemultimedia-dragonplayer() {
install='kdemultimedia-dragonplayer.install'
cd $srcdir/build/dragonplayer
make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/dragonplayer
- make DESTDIR=$pkgdir install
+ cd $srcdir/build/dragonplayer/doc
+ make DESTDIR=$pkgdir install
}
package_kdemultimedia-ffmpegthumbs() {
@@ -60,8 +65,8 @@ package_kdemultimedia-juk() {
install='kdemultimedia.install'
cd $srcdir/build/juk
make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/juk
- make DESTDIR=$pkgdir install
+ cd $srcdir/build/juk/doc
+ make DESTDIR=$pkgdir install
}
package_kdemultimedia-kioslave() {
@@ -69,7 +74,7 @@ package_kdemultimedia-kioslave() {
depends=('kdelibs' 'libmusicbrainz3' 'cdparanoia')
conflicts=('kdemultimedia-libkcddb' 'kdemultimedia-libkcompactdisc')
replaces=('kdemultimedia-libkcddb' 'kdemultimedia-libkcompactdisc')
- for i in kioslave doc/kioslave libkcddb libkcompactdisc; do
+ for i in kioslave libkcddb libkcompactdisc; do
cd $srcdir/build/${i}
make DESTDIR=$pkgdir install
done
@@ -82,8 +87,8 @@ package_kdemultimedia-kmix() {
install='kdemultimedia.install'
cd $srcdir/build/kmix
make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/kmix
- make DESTDIR=$pkgdir install
+ cd $srcdir/build/kmix/doc
+ make DESTDIR=$pkgdir install
}
package_kdemultimedia-kscd() {
@@ -93,8 +98,6 @@ package_kdemultimedia-kscd() {
install='kdemultimedia.install'
cd $srcdir/build/kscd
make DESTDIR=$pkgdir install
- cd $srcdir/build/doc/kcontrol/cddbretrieval
- make DESTDIR=$pkgdir install
}
package_kdemultimedia-mplayerthumbs() {
diff --git a/extra/kdemultimedia/ffmpeg0.11.patch b/extra/kdemultimedia/ffmpeg0.11.patch
new file mode 100644
index 000000000..527ac3992
--- /dev/null
+++ b/extra/kdemultimedia/ffmpeg0.11.patch
@@ -0,0 +1,29 @@
+From: Christoph Feck <christoph@maxiom.de>
+Date: Tue, 29 May 2012 13:53:18 +0000
+Subject: Two deprecated calls have been removed from ffmpeg 0.11.
+X-Git-Tag: v4.8.80
+X-Git-Url: http://quickgit.kde.org/?p=ffmpegthumbs.git&amp;a=commitdiff&amp;h=4f03b20614c122e3e14473d42a000c0bffdce39c
+---
+Two deprecated calls have been removed from ffmpeg 0.11.
+
+BUG:300732
+---
+
+
+--- a/ffmpegthumbnailer/moviedecoder.cpp
++++ b/ffmpegthumbnailer/moviedecoder.cpp
+@@ -52,12 +52,11 @@ MovieDecoder::~MovieDecoder()
+ void MovieDecoder::initialize(const QString& filename)
+ {
+ av_register_all();
+- avcodec_init();
+ avcodec_register_all();
+
+ QFileInfo fileInfo(filename);
+
+- if ((!m_FormatContextWasGiven) && av_open_input_file(&m_pFormatContext, fileInfo.absoluteFilePath().toUtf8().data(), NULL, 0, NULL) != 0) {
++ if ((!m_FormatContextWasGiven) && avformat_open_input(&m_pFormatContext, fileInfo.absoluteFilePath().toLocal8Bit().data(), NULL, NULL) != 0) {
+ kDebug() << "Could not open input file: " << fileInfo.absoluteFilePath();
+ return;
+ }
+
diff --git a/extra/kdenetwork/PKGBUILD b/extra/kdenetwork/PKGBUILD
index e73168649..3a8814bb3 100644
--- a/extra/kdenetwork/PKGBUILD
+++ b/extra/kdenetwork/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 159199 2012-05-17 19:03:43Z andrea $
+# $Id: PKGBUILD 161221 2012-06-08 06:38:16Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -10,8 +10,8 @@ pkgname=('kdenetwork-filesharing'
'kdenetwork-kppp'
'kdenetwork-krdc'
'kdenetwork-krfb')
-pkgver=4.8.3
-pkgrel=3
+pkgver=4.8.4
+pkgrel=1
arch=('i686' 'x86_64')
url='http://www.kde.org'
license=('GPL' 'LGPL' 'FDL')
@@ -20,15 +20,10 @@ makedepends=('cmake' 'automoc4' 'boost' 'speex' 'ortp' 'libotr' 'ppp'
'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver' 'libmsn'
'v4l-utils' 'libidn' 'rdesktop' 'qimageblitz' 'libxdamage' 'libgadu'
'libktorrent' 'libmms' 'mediastreamer')
-source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz"
- 'gcc47.patch')
-sha1sums=('9da87317c6a10243d6fff8c121c04146415f65cd'
- '0e1325569e296d98e7b1be12305c1c018104685b')
+ source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz")
+sha1sums=('b3926c5cd929cec209421c2f1cb8659cc1c82458')
build() {
- cd "${srcdir}"/${pkgbase}-${pkgver}
- patch -p4 -i "${srcdir}"/gcc47.patch
-
cd "${srcdir}"
mkdir build
cd build
diff --git a/extra/kdepim-runtime/PKGBUILD b/extra/kdepim-runtime/PKGBUILD
index c493acbdb..35347480d 100644
--- a/extra/kdepim-runtime/PKGBUILD
+++ b/extra/kdepim-runtime/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 159144 2012-05-16 19:52:39Z andrea $
+# $Id: PKGBUILD 161093 2012-06-08 06:34:24Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=kdepim-runtime
-pkgver=4.8.3
-pkgrel=2
+pkgver=4.8.4
+pkgrel=1
pkgdesc='KDE PIM Runtime Environment'
arch=('i686' 'x86_64')
url='http://www.kde.org'
@@ -12,15 +12,10 @@ license=('GPL' 'LGPL' 'FDL')
depends=('kdepimlibs' 'kdebase-runtime')
makedepends=('cmake' 'automoc4' 'boost')
install=${pkgname}.install
-source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz"
- 'fix-carddav-support.patch')
-sha1sums=('f1c6691522113887dc5f098678ccbbacfecb9390'
- '1362bc04e82a3fdf870578c051a2e16170c43e86')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('3a375afb62b4ee01d491c4787b559132317aa983')
build() {
- cd "${srcdir}"/${pkgname}-${pkgver}
- patch -p1 -i "${srcdir}"/fix-carddav-support.patch
-
cd "${srcdir}"
mkdir build
cd build
diff --git a/extra/kdepim/PKGBUILD b/extra/kdepim/PKGBUILD
index 71bc9da9a..d130b2ccd 100644
--- a/extra/kdepim/PKGBUILD
+++ b/extra/kdepim/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 158487 2012-05-03 22:34:29Z andrea $
+# $Id: PKGBUILD 161223 2012-06-08 06:38:20Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -19,7 +19,7 @@ pkgname=('kdepim-akonadiconsole'
'kdepim-kresources'
'kdepim-ktimetracker'
'kdepim-libkdepim')
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
url='http://pim.kde.org'
@@ -28,7 +28,7 @@ groups=('kde' 'kdepim')
makedepends=('cmake' 'automoc4' 'boost' 'kdepim-runtime' 'libxss' 'pilot-link'
'kde-agent')
source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz")
-sha1sums=('1d40a820fc343bd6c492e937b9da2e7226cd3e78')
+sha1sums=('aae8f027ab1ef75283d6e4b2bdf76c91d04087ea')
build() {
cd "${srcdir}"
diff --git a/extra/kdepimlibs/PKGBUILD b/extra/kdepimlibs/PKGBUILD
index d99cd9c15..7d2a35c41 100644
--- a/extra/kdepimlibs/PKGBUILD
+++ b/extra/kdepimlibs/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 158350 2012-05-03 22:30:07Z andrea $
+# $Id: PKGBUILD 161086 2012-06-08 06:34:12Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=kdepimlibs
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="KDE PIM Libraries"
arch=('i686' 'x86_64')
@@ -13,7 +13,7 @@ depends=('kdelibs' 'gpgme' 'akonadi' 'libical' 'prison')
makedepends=('cmake' 'automoc4' 'boost' 'cyrus-sasl')
install='kdepimlibs.install'
source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
-sha1sums=('453badec44fa2fd8b551fc9f8df2d51c88930dca')
+sha1sums=('34f693ac71896d0d8653fc2a81323d1e91531bb2')
build() {
cd ${srcdir}
diff --git a/extra/kdeplasma-addons/PKGBUILD b/extra/kdeplasma-addons/PKGBUILD
index f54bbf36f..7340ba4a4 100644
--- a/extra/kdeplasma-addons/PKGBUILD
+++ b/extra/kdeplasma-addons/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 158489 2012-05-03 22:34:34Z andrea $
+# $Id: PKGBUILD 161225 2012-06-08 06:38:26Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -74,7 +74,7 @@ pkgname=('kdeplasma-addons-applets-bball'
'kdeplasma-addons-wallpapers-potd'
'kdeplasma-addons-wallpapers-virus'
'kdeplasma-addons-wallpapers-weather')
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
url='http://www.kde.org'
@@ -83,7 +83,7 @@ groups=('kde' 'kdeplasma-addons')
makedepends=('cmake' 'automoc4' 'kdebase-workspace' 'kdeedu-marble' 'eigen'
'scim' 'qwt' 'boost' 'libkexiv2' 'ibus')
source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz")
-sha1sums=('64bda8ca1d68ab07596d8eaa6381255d815346bc')
+sha1sums=('725d26e3aa59d02bc73a77b43e6aae92bc961254')
build() {
cd "${srcdir}"
diff --git a/extra/kdesdk-kate/PKGBUILD b/extra/kdesdk-kate/PKGBUILD
index bffb1b769..2bf3c454e 100644
--- a/extra/kdesdk-kate/PKGBUILD
+++ b/extra/kdesdk-kate/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 158363 2012-05-03 22:30:33Z andrea $
+# $Id: PKGBUILD 161101 2012-06-08 06:34:43Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgbase=kdesdk-kate
pkgname=('kdebase-katepart'
'kdebase-kwrite'
'kdesdk-kate')
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
license=('GPL' 'LGPL' 'FDL')
makedepends=('kdelibs ''cmake' 'automoc4')
source=("http://download.kde.org/stable/${pkgver}/src/kate-${pkgver}.tar.xz"
'pkgbuild-syntax-highlight.patch')
-sha1sums=('100fcc86de792d3418ea0f9995233bdd8871d7f9'
+sha1sums=('5a70b64c92892781d50781fcaac81ff352ec3ed9'
'0a928253bd2077f0264d96a6c8823c69c47b6a8d')
build() {
diff --git a/extra/kdesdk/PKGBUILD b/extra/kdesdk/PKGBUILD
index ef9da5795..37ee61980 100644
--- a/extra/kdesdk/PKGBUILD
+++ b/extra/kdesdk/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 158491 2012-05-03 22:34:45Z andrea $
+# $Id: PKGBUILD 161227 2012-06-08 06:38:43Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -22,7 +22,7 @@ pkgname=('kdesdk-cervisia'
'kdesdk-scripts'
'kdesdk-strigi-analyzer'
'kdesdk-umbrello')
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
url='http://www.kde.org'
@@ -32,7 +32,7 @@ makedepends=('cmake' 'automoc4' 'boost' 'subversion' 'antlr2' 'kdepimlibs'
'kdebase-lib')
source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz"
'fix-python2-path.patch')
-sha1sums=('e7366cd627fd8324d89e7854361be8a141d030c1'
+sha1sums=('62c176ee3dda5bbc013db7d1033ff89c105e3fd1'
'923cabd7a877cf9a68efeb24fbf3d5827e1d949e')
build() {
diff --git a/extra/kdetoys/PKGBUILD b/extra/kdetoys/PKGBUILD
index 7ec59d905..241e491e0 100644
--- a/extra/kdetoys/PKGBUILD
+++ b/extra/kdetoys/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 158493 2012-05-03 22:34:49Z andrea $
+# $Id: PKGBUILD 161229 2012-06-08 06:38:51Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -6,7 +6,7 @@ pkgbase=kdetoys
pkgname=('kdetoys-amor'
'kdetoys-kteatime'
'kdetoys-ktux')
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
url='http://www.kde.org'
@@ -14,7 +14,7 @@ license=('GPL' 'LGPL' 'FDL')
groups=('kde' 'kdetoys')
makedepends=('cmake' 'automoc4' 'kdebase-workspace')
source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz")
-sha1sums=('b3050335f3f6b95dfc293cbbd999e21d9ff4f967')
+sha1sums=('dd5f63f0e833135bac73a2e12692b1e6dd412f67')
build() {
cd $srcdir
diff --git a/extra/kdeutils-filelight/PKGBUILD b/extra/kdeutils-filelight/PKGBUILD
index 1e0af253f..28e108952 100644
--- a/extra/kdeutils-filelight/PKGBUILD
+++ b/extra/kdeutils-filelight/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158497 2012-05-03 22:34:58Z andrea $
+# $Id: PKGBUILD 161233 2012-06-08 06:39:02Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeutils-filelight
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc='View disk usage information'
url='http://kde.org/applications/utilities/filelight'
@@ -15,7 +15,7 @@ replaces=('filelight')
conflicts=('filelight')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/filelight-${pkgver}.tar.xz")
-sha1sums=('1d1a8141b50e0eef2f2c8c13c6060ff11aab130e')
+sha1sums=('3023e9daa8bc5271bed3f3c08076952bcaf75efd')
build() {
cd "${srcdir}"
diff --git a/extra/kdeutils-kcalc/PKGBUILD b/extra/kdeutils-kcalc/PKGBUILD
index 77dd528b7..84a0b2160 100644
--- a/extra/kdeutils-kcalc/PKGBUILD
+++ b/extra/kdeutils-kcalc/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158499 2012-05-03 22:35:00Z andrea $
+# $Id: PKGBUILD 161235 2012-06-08 06:39:08Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeutils-kcalc
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc='Scientific Calculator'
url='http://kde.org/applications/utilities/kcalc/'
@@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4')
groups=('kde' 'kdeutils')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kcalc-${pkgver}.tar.xz")
-sha1sums=('36c4c46ba05911dd174c7d1fa8526430d932c84f')
+sha1sums=('f1cb6cda210c67fd19eca387df2d2224393d45ef')
build() {
cd "${srcdir}"
diff --git a/extra/kdeutils-kcharselect/PKGBUILD b/extra/kdeutils-kcharselect/PKGBUILD
index ceaa2cf19..593793b2d 100644
--- a/extra/kdeutils-kcharselect/PKGBUILD
+++ b/extra/kdeutils-kcharselect/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158501 2012-05-03 22:35:04Z andrea $
+# $Id: PKGBUILD 161237 2012-06-08 06:39:11Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeutils-kcharselect
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc='Character Selector'
url="http://kde.org/applications/utilities/kcharselect/"
@@ -12,7 +12,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
groups=('kde' 'kdeutils')
source=("http://download.kde.org/stable/${pkgver}/src/kcharselect-${pkgver}.tar.xz")
-sha1sums=('a4196b6ef1f665fabd2ba91f040b2f858c58f397')
+sha1sums=('0e00a25ca3c813ab335cd12ff0ec4b1f22c8076c')
build() {
cd "${srcdir}"
diff --git a/extra/kdeutils-kdf/PKGBUILD b/extra/kdeutils-kdf/PKGBUILD
index 0862af56a..80800a29b 100644
--- a/extra/kdeutils-kdf/PKGBUILD
+++ b/extra/kdeutils-kdf/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158503 2012-05-03 22:35:08Z andrea $
+# $Id: PKGBUILD 161239 2012-06-08 06:39:13Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeutils-kdf
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
url="http://kde.org/applications/system/kdiskfree/"
arch=('i686' 'x86_64')
@@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4')
groups=('kde' 'kdeutils')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kdf-${pkgver}.tar.xz")
-sha1sums=('3c4a05df8daa526f89c2b7d4a6a66dacbd4a92cc')
+sha1sums=('c83f9659d693f27166519969f85c630fdeaa3d9c')
build() {
cd "${srcdir}"
diff --git a/extra/kdeutils-kfloppy/PKGBUILD b/extra/kdeutils-kfloppy/PKGBUILD
index 1858983bf..582e794f6 100644
--- a/extra/kdeutils-kfloppy/PKGBUILD
+++ b/extra/kdeutils-kfloppy/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158505 2012-05-03 22:35:11Z andrea $
+# $Id: PKGBUILD 161241 2012-06-08 06:39:16Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeutils-kfloppy
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc='Floppy Formatter'
url='http://kde.org/applications/utilities/kfloppy/'
@@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4')
groups=('kde' 'kdeutils')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kfloppy-${pkgver}.tar.xz")
-sha1sums=('e507d66f29df3ded849be74c609ce13a38e78b60')
+sha1sums=('597e7d1fa546a898b4e46a9750632be8dc8a01a7')
build() {
cd "${srcdir}"
diff --git a/extra/kdeutils-kgpg/PKGBUILD b/extra/kdeutils-kgpg/PKGBUILD
index 2a5515e46..3b3c8bdbd 100644
--- a/extra/kdeutils-kgpg/PKGBUILD
+++ b/extra/kdeutils-kgpg/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158507 2012-05-03 22:35:15Z andrea $
+# $Id: PKGBUILD 161243 2012-06-08 06:39:19Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeutils-kgpg
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc='A GnuPG frontend'
url='http://kde.org/applications/utilities/kgpg/'
@@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4')
groups=('kde' 'kdeutils')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kgpg-${pkgver}.tar.xz")
-sha1sums=('70a99932697bd7bf37c3991c24831c9ef94f1302')
+sha1sums=('4b201d0db0d97d258597b0b345848acec5bd0130')
build() {
cd "${srcdir}"
diff --git a/extra/kdeutils-kremotecontrol/PKGBUILD b/extra/kdeutils-kremotecontrol/PKGBUILD
index 30ca87072..c4603ff7a 100644
--- a/extra/kdeutils-kremotecontrol/PKGBUILD
+++ b/extra/kdeutils-kremotecontrol/PKGBUILD
@@ -2,7 +2,7 @@
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeutils-kremotecontrol
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc='Configure your remote controls for use with applications'
url='http://kde.org/applications/utilities/kremotecontrol/'
@@ -15,7 +15,7 @@ replaces=('kdeutils-kdelirc')
conflicts=('kdeutils-kdelirc')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kremotecontrol-${pkgver}.tar.xz")
-sha1sums=('38eec5beac2b62086d21c9e97ee549af913db844')
+sha1sums=('2c967b6d5738d3947401d9055f0956dfd16b2ec2')
build() {
cd "${srcdir}"
diff --git a/extra/kdeutils-ksecrets/PKGBUILD b/extra/kdeutils-ksecrets/PKGBUILD
index 258695a7e..e53a4bdad 100644
--- a/extra/kdeutils-ksecrets/PKGBUILD
+++ b/extra/kdeutils-ksecrets/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158511 2012-05-03 22:35:27Z andrea $
+# $Id: PKGBUILD 161247 2012-06-08 06:39:24Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeutils-ksecrets
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc='Secrets Management Infrastructure for KDE'
url='http://techbase.kde.org/Projects/Utils/ksecretsservice'
@@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4')
groups=('kde' 'kdeutils')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/ksecrets-${pkgver}.tar.xz")
-sha1sums=('e5a2526af64a340abbf1423760e1ceb2eae3189f')
+sha1sums=('d0fd2c601833cf1ffe52760472e22d667a6a6408')
build() {
cd "${srcdir}"
diff --git a/extra/kdeutils-ktimer/PKGBUILD b/extra/kdeutils-ktimer/PKGBUILD
index 096b0b5d2..a214faf5b 100644
--- a/extra/kdeutils-ktimer/PKGBUILD
+++ b/extra/kdeutils-ktimer/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158513 2012-05-03 22:35:30Z andrea $
+# $Id: PKGBUILD 161249 2012-06-08 06:39:27Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeutils-ktimer
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc='Countdown Launcher'
url='http://kde.org/applications/utilities/ktimer/'
@@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4')
groups=('kde' 'kdeutils')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/ktimer-${pkgver}.tar.xz")
-sha1sums=('232555ab5630219b3ced8486f4493ca61eb99f51')
+sha1sums=('39e117449beffa8e2a38f7b45f69965a71de3805')
build() {
cd "${srcdir}"
diff --git a/extra/kdeutils-kwallet/PKGBUILD b/extra/kdeutils-kwallet/PKGBUILD
index 7fe331e46..0ecdcca61 100644
--- a/extra/kdeutils-kwallet/PKGBUILD
+++ b/extra/kdeutils-kwallet/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158515 2012-05-03 22:35:35Z andrea $
+# $Id: PKGBUILD 161251 2012-06-08 06:39:31Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeutils-kwallet
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc='Wallet Management Tool'
url='http://kde.org/applications/system/kwalletmanager/'
@@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4')
groups=('kde' 'kdeutils')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kwallet-${pkgver}.tar.xz")
-sha1sums=('b99a380bdb864d3eb6461e9a8627963fe4c1a4b8')
+sha1sums=('8c85c9de379f0e8ad8a3dffc2136c6b25c0fa4a9')
build() {
cd "${srcdir}"
diff --git a/extra/kdeutils-superkaramba/PKGBUILD b/extra/kdeutils-superkaramba/PKGBUILD
index dc14790c2..119316427 100644
--- a/extra/kdeutils-superkaramba/PKGBUILD
+++ b/extra/kdeutils-superkaramba/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158518 2012-05-03 22:35:40Z andrea $
+# $Id: PKGBUILD 161254 2012-06-08 06:39:37Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeutils-superkaramba
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc='An engine for cool desktop eyecandy'
url='http://kde.org/applications/utilities/superkaramba/'
@@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4')
groups=('kde' 'kdeutils')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/superkaramba-${pkgver}.tar.xz")
-sha1sums=('9376f27c311d3e9c6f21719eb7d0b2ccc893908e')
+sha1sums=('b013e4bd063790e5970cf798f247edb87d576900')
build() {
cd "${srcdir}"
diff --git a/extra/kdeutils-sweeper/PKGBUILD b/extra/kdeutils-sweeper/PKGBUILD
index f1338760e..a119e3dbf 100644
--- a/extra/kdeutils-sweeper/PKGBUILD
+++ b/extra/kdeutils-sweeper/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158520 2012-05-03 22:35:45Z andrea $
+# $Id: PKGBUILD 161256 2012-06-08 06:39:40Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeutils-sweeper
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc='System Cleaner'
url='http://kde.org/applications/utilities/sweeper'
@@ -13,7 +13,7 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4')
groups=('kde' 'kdeutils')
source=("http://download.kde.org/stable/${pkgver}/src/sweeper-${pkgver}.tar.xz")
-sha1sums=('ad2c9ec51458e1615714e81cd5907f5d2393984f')
+sha1sums=('8a4dd11724ed14987981dfaa60e742cfd80ee6d9')
build() {
cd "${srcdir}"
diff --git a/extra/kdewebdev/PKGBUILD b/extra/kdewebdev/PKGBUILD
index 14f5a25f1..87c9d8680 100644
--- a/extra/kdewebdev/PKGBUILD
+++ b/extra/kdewebdev/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 158522 2012-05-03 22:35:51Z andrea $
+# $Id: PKGBUILD 161258 2012-06-08 06:39:44Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -7,7 +7,7 @@ pkgname=('kdewebdev-kfilereplace'
'kdewebdev-kimagemapeditor'
'kdewebdev-klinkstatus'
'kdewebdev-kommander')
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
arch=('i686' 'x86_64')
url='http://www.kde.org'
@@ -15,7 +15,7 @@ license=('GPL' 'LGPL' 'FDL')
groups=('kde' 'kdewebdev')
makedepends=('cmake' 'automoc4' 'ruby' 'tidyhtml' 'kdepimlibs' 'boost')
source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz")
-sha1sums=('481863c8a59b48613b0823c16cfff8566d03f5ae')
+sha1sums=('bab86ef6c04515a454298cee46eccb25e590f972')
build() {
cd $srcdir
diff --git a/extra/libkdcraw/PKGBUILD b/extra/libkdcraw/PKGBUILD
index f852477a2..0c86678d2 100644
--- a/extra/libkdcraw/PKGBUILD
+++ b/extra/libkdcraw/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158385 2012-05-03 22:31:14Z andrea $
+# $Id: PKGBUILD 161121 2012-06-08 06:35:18Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=libkdcraw
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="A C++ interface used to decode RAW picture"
url="http://kde.org/"
@@ -14,7 +14,7 @@ replaces=('kdegraphics-libs')
conflicts=('kdegraphics-libs')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
-sha1sums=('99fc4a00fe77df18aca53a8bdd0cfca79cab6e8b')
+sha1sums=('ba67432cb3353a55d57ae749b42919399dfda3e2')
build() {
cd "${srcdir}"
diff --git a/extra/libkdeedu/PKGBUILD b/extra/libkdeedu/PKGBUILD
index ecdf9dab9..976577662 100644
--- a/extra/libkdeedu/PKGBUILD
+++ b/extra/libkdeedu/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158381 2012-05-03 22:31:08Z andrea $
+# $Id: PKGBUILD 161117 2012-06-08 06:35:12Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=libkdeedu
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="Libraries used by KDE Education applications"
url="http://kde.org/"
@@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4')
install=${pkgname}.install
replaces=('kdeedu-libkdeedu' 'kdeedu-data')
source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
-sha1sums=('6d7ce71dea0a4ee16cdec8cfaf3b6dbd64c3eaa0')
+sha1sums=('055fa35db3c482c61f8eab7d1912532823a88726')
build() {
cd "${srcdir}"
diff --git a/extra/libkexiv2/PKGBUILD b/extra/libkexiv2/PKGBUILD
index 280e88737..045d3b2df 100644
--- a/extra/libkexiv2/PKGBUILD
+++ b/extra/libkexiv2/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158387 2012-05-03 22:31:17Z andrea $
+# $Id: PKGBUILD 161123 2012-06-08 06:35:21Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=libkexiv2
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="A library to manipulate pictures metadata"
url="http://kde.org/"
@@ -13,7 +13,7 @@ makedepends=('cmake' 'automoc4')
replaces=('kdegraphics-libs')
conflicts=('kdegraphics-libs')
source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
-sha1sums=('6b7c6833479faa29916d3cc294a15f78c154c438')
+sha1sums=('a3429dd70677498c890598cd1e3bf6a610669b77')
build() {
cd "${srcdir}"
diff --git a/extra/libkipi/PKGBUILD b/extra/libkipi/PKGBUILD
index f2ebba161..1714d1617 100644
--- a/extra/libkipi/PKGBUILD
+++ b/extra/libkipi/PKGBUILD
@@ -2,7 +2,7 @@
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=libkipi
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="An interface to use kipi-plugins from a KDE application"
url="http://kde.org/"
@@ -14,7 +14,7 @@ replaces=('kdegraphics-libs')
conflicts=('kdegraphics-libs')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
-sha1sums=('1646eca0521524eabcc8c1c97d8d2f85ff181cac')
+sha1sums=('d30ef671be8caf8eb9ead68de53cf187f0fcf88b')
build() {
cd "${srcdir}"
diff --git a/extra/libksane/PKGBUILD b/extra/libksane/PKGBUILD
index bd83b841d..159a7ed69 100644
--- a/extra/libksane/PKGBUILD
+++ b/extra/libksane/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158391 2012-05-03 22:31:25Z andrea $
+# $Id: PKGBUILD 161127 2012-06-08 06:35:26Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=libksane
-pkgver=4.8.3
+pkgver=4.8.4
pkgrel=1
pkgdesc="An image scanning library"
url="http://kde.org/"
@@ -14,7 +14,7 @@ replaces=('kdegraphics-libs')
conflicts=('kdegraphics-libs')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
-sha1sums=('ccacaec0d1a46689cdf5f5294f14b442d0f4317b')
+sha1sums=('5ac35d8478ccace1495ae42eb2169918cebc8d95')
build() {
cd "${srcdir}"
diff --git a/extra/proftpd/PKGBUILD b/extra/proftpd/PKGBUILD
index 2a05be6e2..fd4f5e4a7 100644
--- a/extra/proftpd/PKGBUILD
+++ b/extra/proftpd/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 153971 2012-03-21 06:21:09Z pierre $
+# $Id: PKGBUILD 161293 2012-06-08 23:31:04Z tomegun $
# Maintainer:
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=proftpd
pkgver=1.3.4a
-pkgrel=4
+pkgrel=5
epoch=1
pkgdesc="A high-performance, scalable FTP server"
arch=('i686' 'x86_64')
@@ -14,11 +14,6 @@ depends=('libldap' 'libmysqlclient' 'postgresql-libs')
backup=('etc/proftpd.conf' 'etc/conf.d/proftpd')
source=(ftp://ftp.proftpd.org/distrib/source/${pkgname}-${pkgver}.tar.bz2{,.asc}
'proftpd' 'proftpd.logrotate' 'proftpd.conf.d')
-sha1sums=('18ea33d8b9f858b6e735cc81af900f0eebee8d25'
- '195b06e28e503f5e5ef355c3332884cc5e7954a9'
- 'b7819d725817e55b69c73e2572c21a05db48cc86'
- '83c38ec40efb7cc09d9824b98e65cd948a195cc6'
- 'f34f60cb4fb1f4af7be7aca427cbad3cad22bbb9')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
@@ -48,4 +43,12 @@ package() {
install -Dm644 ../proftpd.conf.d "${pkgdir}/etc/conf.d/proftpd"
install -Dm755 ../proftpd "${pkgdir}/etc/rc.d/proftpd"
install -Dm755 contrib/xferstats.holger-preiss "${pkgdir}/usr/bin/ftpstats"
+
+ # /var/run is a symlink to /run now
+ rm -rf "${pkgdir}/var"
}
+md5sums=('4e3235dc1ef95d36e59721d70c5c489c'
+ '3b0f44496adb36640b7a6cc165556bcf'
+ '8177292919acb2f087ded0bb7b2dcc32'
+ 'ddb09eb13131becdf0e081eef413116b'
+ '71d5932b0461c318ed68c2c0c2660736')
diff --git a/extra/proftpd/proftpd b/extra/proftpd/proftpd
index 357a7663d..df9283a77 100755
--- a/extra/proftpd/proftpd
+++ b/extra/proftpd/proftpd
@@ -20,11 +20,11 @@ case "$1" in
;;
stop)
stat_busy "Stopping ProFTPd Server"
- [ -f /var/run/proftpd.pid ] && kill $(cat /var/run/proftpd.pid) &> /dev/null
+ [ -f /run/proftpd.pid ] && kill $(cat /run/proftpd.pid) &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
else
- rm -f /var/run/proftpd.pid
+ rm -f /run/proftpd.pid
rm_daemon proftpd
stat_done
fi
diff --git a/extra/samba/PKGBUILD b/extra/samba/PKGBUILD
index 11db4fc3e..e3f7f1997 100644
--- a/extra/samba/PKGBUILD
+++ b/extra/samba/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 158568 2012-05-04 23:57:16Z allan $
+# $Id: PKGBUILD 161297 2012-06-09 01:08:52Z tomegun $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgbase=samba
@@ -8,7 +8,7 @@ pkgver=3.6.5
# to append 'a','b',etc to their subsequent releases, which pamcan
# misconstrues as alpha, beta, etc. Bad samba!
_realver=3.6.5
-pkgrel=1
+pkgrel=2
arch=(i686 x86_64)
url="http://www.samba.org"
license=('GPL3')
@@ -21,7 +21,7 @@ source=(http://us1.samba.org/samba/ftp/stable/${pkgbase}-${_realver}.tar.gz
smbd.service
nmbd.service
winbindd.service
- smbd.conf)
+ samba.conf)
### UNINSTALL dmapi package before building!!!
build() {
@@ -92,6 +92,7 @@ backup=(etc/logrotate.d/samba
etc/xinetd.d/swat
etc/conf.d/samba)
depends=('db' 'popt' 'libcups' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap' 'krb5' 'pam' 'gamin' 'gnutls' 'e2fsprogs' 'tdb' 'talloc')
+install='samba.install'
cd ${srcdir}/samba-${_realver}/source3
mkdir -p ${pkgdir}/etc/samba/private
chmod 700 ${pkgdir}/etc/samba/private
@@ -152,10 +153,12 @@ depends=('db' 'popt' 'libcups' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap' 'kr
for i in smbd nmbd winbindd; do
install -D -m644 ${srcdir}/$i.service ${pkgdir}/usr/lib/systemd/system/$i.service
done
- install -D -m644 ${srcdir}/smbd.conf ${pkgdir}/usr/lib/tmpfiles.d/samba.conf
+ # create ephemeral dirs via tmpfiles rather than shipping them in package
+ install -D -m644 ${srcdir}/samba.conf ${pkgdir}/usr/lib/tmpfiles.d/samba.conf
+ rm -rf ${pkgdir}/var/run
}
md5sums=('2f0c14547333c1b48fd4728b031e7040'
- 'dfc6f9018c556b9783c7140de183727f'
+ 'a45a4283723be2b0ae32439dc4496a09'
'5697da77590ec092cc8a883bae06093c'
'a4bbfa39fee95bba2e7ad6b535fae7e6'
'96f82c38f3f540b53f3e5144900acf17'
@@ -163,4 +166,4 @@ md5sums=('2f0c14547333c1b48fd4728b031e7040'
'389cc4fa3b459360feaa1b3d93274693'
'ea6a1251be979cb30c6098a28b270d2d'
'455f106ce7a4f983975b3a686eaa85e5'
- '6956c4f9989bec8f313de7d9343b6ba1')
+ '8e7ed39b54968e427f9506e9107bfb45')
diff --git a/extra/samba/samba b/extra/samba/samba
index 2a04bfec4..6098ee0cb 100755
--- a/extra/samba/samba
+++ b/extra/samba/samba
@@ -10,9 +10,6 @@ case "$1" in
start)
rc=0
stat_busy "Starting Samba Server"
- if [ ! -x /var/run/samba ] ; then
- install -m755 -d /var/run/samba
- fi
if [ ! -x /var/log/samba ] ; then
install -m755 -d /var/log/samba
fi
@@ -39,9 +36,9 @@ case "$1" in
if [ $rc -gt 0 ]; then
stat_fail
else
- rm /var/run/samba/smbd.pid &>/dev/null
- rm /var/run/samba/nmbd.pid &>/dev/null
- rm /var/run/samba/winbindd.pid &>/dev/null
+ rm /run/samba/smbd.pid &>/dev/null
+ rm /run/samba/nmbd.pid &>/dev/null
+ rm /run/samba/winbindd.pid &>/dev/null
rm_daemon samba
stat_done
fi
diff --git a/extra/samba/samba.conf b/extra/samba/samba.conf
new file mode 100644
index 000000000..c12610dd8
--- /dev/null
+++ b/extra/samba/samba.conf
@@ -0,0 +1 @@
+D /run/samba 0755 - - -
diff --git a/extra/samba/samba.install b/extra/samba/samba.install
new file mode 100644
index 000000000..09439743a
--- /dev/null
+++ b/extra/samba/samba.install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+post_install() {
+ systemd-tmpfiles --create /usr/lib/tmpfiles.d/smbd.conf
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/squid/PKGBUILD b/extra/squid/PKGBUILD
index 5141cea76..46b3c23cd 100644
--- a/extra/squid/PKGBUILD
+++ b/extra/squid/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 157558 2012-04-29 00:21:17Z eric $
+# $Id: PKGBUILD 161289 2012-06-08 23:27:08Z dreisner $
# Maintainer: Kevin Piche <kevin@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=squid
-pkgver=3.1.19
-pkgrel=2
+pkgver=3.1.20
+pkgrel=1
pkgdesc="A full-featured Web proxy cache server."
arch=('i686' 'x86_64')
url="http://www.squid-cache.org"
@@ -15,7 +15,7 @@ backup=('etc/squid/squid.conf' 'etc/squid/mime.conf' 'etc/conf.d/squid')
install=squid.install
source=("http://www.squid-cache.org/Versions/v3/3.1/${pkgname}-${pkgver}.tar.bz2"
'squid' 'squid.conf.d' 'squid.pam' 'squid.cron')
-md5sums=('9b6ffaf96bee8f05f0085bc6361d7c94'
+md5sums=('c4d733a383c0508fd0746d64a2d7278a'
'd213b0cc1db72b749bb8c88716fdab39'
'2383772ef94efddc7b920628bc7ac5b0'
'270977cdd9b47ef44c0c427ab9034777'
@@ -61,5 +61,8 @@ package() {
install -D -m755 "${srcdir}"/squid.cron "${pkgdir}"/etc/cron.weekly/squid
install -D -m644 "${srcdir}"/squid.conf.d "${pkgdir}"/etc/conf.d/squid
install -D -m644 "${srcdir}"/squid.pam "${pkgdir}"/etc/pam.d/squid
+
+ # avoid conflict with filesystem>=2012.06
+ rmdir "$pkgdir/var/run"
}
# vim: ts=2 sw=2 et ft=sh
diff --git a/multilib-testing/lib32-glibc/PKGBUILD b/multilib-testing/lib32-glibc/PKGBUILD
new file mode 100644
index 000000000..f8bbb8476
--- /dev/null
+++ b/multilib-testing/lib32-glibc/PKGBUILD
@@ -0,0 +1,283 @@
+# $Id: PKGBUILD 72106 2012-06-08 20:59:52Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuilt with each major glibc version
+
+_pkgbasename=glibc
+pkgname=lib32-$_pkgbasename
+pkgver=2.15
+pkgrel=11
+_glibcdate=20111227
+pkgdesc="GNU C Library for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+depends=("glibc>=$pkgver")
+makedepends=('gcc-multilib>=4.6')
+options=('!strip' '!emptydirs')
+source=(ftp://ftp.archlinux.org/other/glibc/${_pkgbasename}-${pkgver}_${_glibcdate}.tar.xz
+ glibc-2.15-do-not-install-timezone-files.patch
+ glibc-2.15-do-not-install-timezone-files-2.patch
+ glibc-__i686.patch
+ glibc-2.14-libdl-crash.patch
+ glibc-2.14-reexport-rpc-interface.patch
+ glibc-2.14-reinstall-nis-rpc-headers.patch
+ glibc-2.15-fix-res_query-assert.patch
+ glibc-2.15-regex.patch
+ glibc-2.15-lddebug-scopes.patch
+ glibc-2.15-revert-c5a0802a.patch
+ glibc-2.15-scanf.patch
+ glibc-2.15-ifunc.patch
+ glibc-2.15-avx.patch
+ glibc-2.15-strcasecmp-disable-avx.patch
+ glibc-2.15-gb18030.patch.gz
+ glibc-2.15-revert-netlink-cache.patch
+ glibc-2.15-arena.patch
+ glibc-2.15-negative-result-cache.patch
+ glibc-2.15-multiarch-x86-strcmp.patch
+ glibc-2.15-vdso.patch
+ glibc-2.15-feraiseexcept-plt.patch
+ glibc-2.15-vfprintf-nargs.patch
+ glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch
+ glibc-2.15-fmtmsg-locking.patch
+ glibc-2.15-non-signalling-comparisons.patch
+ glibc-2.15-rintf-rounding.patch
+ glibc-2.15-nearbyintf-rounding.patch
+ glibc-2.15-confstr-local-buffer-extent.patch
+ glibc-2.15-testsuite.patch
+ lib32-glibc.conf)
+md5sums=('6ffdf5832192b92f98bdd125317c0dfc'
+ '7ef69c530a15106de93e4de2df2d393e'
+ 'b6c619e5cf91829a15ce34dccef676d5'
+ 'addfddd648a4bf832eb126aba944ebae'
+ '6970bcfeb3bf88913436d5112d16f588'
+ 'c5de2a946215d647c8af5432ec4b0da0'
+ '55febbb72139ac7b65757df085024b83'
+ '31f415b41197d85d3bbee3d1eecd06a3'
+ 'b3526cbd5e29773560dba725db99af5a'
+ '3c219ddfb619b6df903cac4cc42c611d'
+ '7ae3e426251ae33e73dbad71f9c91378'
+ 'f0782ddbf38e0b30ec6b85348816046f'
+ '3d844b53b2dbb7c996e39c7ad932f55d'
+ '41ae047ac88e8f6f547c70b0a0bc3b72'
+ 'fccb89f6628f59752278e125c35941f8'
+ '001a4044ac3d59aca6ee144eaca57ab2'
+ '94b61302a7ca6c5764d013dc7738fcfe'
+ 'a9ffadcfd2d357f91fee0b861fd4a7c6'
+ '2c46b8e294de24c531f2253ff69aeef3'
+ '7a2998a04ebfcf8bf820540f490ce714'
+ '0d77d20fa7fe2f87ad945cb9edb4d91d'
+ 'bfdefac3d705f41fbf84b1de1dc945af'
+ '3443e89c1e98089cd6c3e3c23f0c3d85'
+ '340deaa582a95ddde86edb624c3bfea0'
+ '6bbac50e6ff82187654e6a0a7bd849e7'
+ 'c483504cf404ed0b44480af627813a97'
+ '1419d61fd1dbc6cdc48bb59da86fa66f'
+ '7ff501435078b1a2622124fbeaafc921'
+ '8d1023a51e0932681b46440d5f8551ee'
+ '6962c3fa29306bfbf6f0d22b19cb825d'
+ '6e052f1cb693d5d3203f50f9d4e8c33b')
+
+build() {
+ cd ${srcdir}/glibc
+
+ # timezone data is in separate package (tzdata)
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=482ff4da
+ patch -p1 -i ${srcdir}/glibc-2.15-do-not-install-timezone-files.patch
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=a458e7fe
+ patch -p1 -i ${srcdir}/glibc-2.15-do-not-install-timezone-files-2.patch
+
+ # undefine __i686
+ # http://sourceware.org/glibc/wiki/Release/2.15#Build_Failures
+ patch -p1 -i ${srcdir}/glibc-__i686.patch
+
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=675155e9 (fedora branch)
+ # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html
+ patch -p1 -i ${srcdir}/glibc-2.14-libdl-crash.patch
+
+ # re-export RPC interface until libtirpc is ready as a replacement
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=acee4873 (fedora branch)
+ patch -p1 -i ${srcdir}/glibc-2.14-reexport-rpc-interface.patch
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bdd816a3 (fedora branch)
+ patch -p1 -i ${srcdir}/glibc-2.14-reinstall-nis-rpc-headers.patch
+
+ # fix res_query assertion
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=13013
+ patch -p1 -i ${srcdir}/glibc-2.15-fix-res_query-assert.patch
+
+ # fix up regcomp/regexec
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=2ba92745
+ patch -p1 -i ${srcdir}/glibc-2.15-regex.patch
+
+ # propriety nvidia crash - https://bugzilla.redhat.com/show_bug.cgi?id=737223
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=0c95ab64 (fedora branch)
+ patch -p1 -i ${srcdir}/glibc-2.15-lddebug-scopes.patch
+
+ # revert commit c5a0802a - causes various hangs
+ # https://bugzilla.redhat.com/show_bug.cgi?id=769421
+ # Note: fedora may have actual fix (not submitted upstream yet...)
+ # http://pkgs.fedoraproject.org/gitweb/?p=glibc.git;a=blob_plain;f=glibc-rh552960-2.patch
+ patch -p1 -i ${srcdir}/glibc-2.15-revert-c5a0802a.patch
+
+ # fix realloc usage in vfscanf
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=20b38e03
+ patch -p1 -i ${srcdir}/glibc-2.15-scanf.patch
+
+ # fix ifunc relocations
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=6ee65ed6
+ patch -p1 -i ${srcdir}/glibc-2.15-ifunc.patch
+
+ # fix AVX detection
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=afc5ed09
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=08cf777f
+ patch -p1 -i ${srcdir}/glibc-2.15-avx.patch
+ # and "fix" strcasecmp
+ patch -p1 -i ${srcdir}/glibc-2.15-strcasecmp-disable-avx.patch
+
+ # fix GB18030 charmap
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=11837
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=2a57bd79 (fedora branch)
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=3d828a61 (fedora branch)
+ patch -p1 -i ${srcdir}/glibc-2.15-gb18030.patch
+
+ # fix crash in __nscd_get_mapping if nscd not running
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=13594 (potential fix in comment)
+ # reverts commit 3a2c0242 and other necessary following changes...
+ patch -p1 -i ${srcdir}/glibc-2.15-revert-netlink-cache.patch
+
+ # handle ARENA_TEST correctly
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=41b81892
+ patch -p1 -i ${srcdir}/glibc-2.15-arena.patch
+
+ # Do not cache negative results in nscd if these are transient
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=3e1aa84e
+ patch -p1 -i ${srcdir}/glibc-2.15-negative-result-cache.patch
+
+ # strcasecmp_l, strncasecmp_l act as strcmp for multiarch x86
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=0bab47b6
+ patch -p1 -i ${srcdir}/glibc-2.15-multiarch-x86-strcmp.patch
+
+ # always set l_used for vDSO.
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=1f393a11
+ patch -p1 -i ${srcdir}/glibc-2.15-vdso.patch
+
+ # fix x86 PLT slot usage for feraiseexcept
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=7c35ffed
+ patch -p1 -i ${srcdir}/glibc-2.15-feraiseexcept-plt.patch
+
+ # vfprintf nargs overflow - CVE-2012-0864
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=7c1f4834
+ patch -p1 -i ${srcdir}/glibc-2.15-vfprintf-nargs.patch
+
+ # avoid out ouf bounds read in __libc_res_nquerydomain
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=8fdceb2e
+ patch -p1 -i ${srcdir}/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch
+
+ # make fmtmsg function thread-safe
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=7724defc
+ patch -p1 -i ${srcdir}/glibc-2.15-fmtmsg-locking.patch
+
+ # use non-signaling floating-point comparisons in math functions
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=92221550
+ patch -p1 -i ${srcdir}/glibc-2.15-non-signalling-comparisons.patch
+
+ # fix rintf rounding.
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=fe45ce09
+ patch -p1 -i ${srcdir}/glibc-2.15-rintf-rounding.patch
+
+ # fix nearbyintf rounding
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=6cbeae47
+ patch -p1 -i ${srcdir}/glibc-2.15-nearbyintf-rounding.patch
+
+ # fix varaible scope issue in confstr
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=ac4c54f0
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=d6a403f9
+ patch -p1 -i ${srcdir}/glibc-2.15-confstr-local-buffer-extent.patch
+
+ # fix testsuite failures with --as-needed
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=d4c2917f
+ patch -p1 -i ${srcdir}/glibc-2.15-testsuite.patch
+
+ cd ${srcdir}
+ mkdir glibc-build
+ cd glibc-build
+
+ export CC="gcc -m32"
+
+ # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+ # TODO: make separate glibc-xen package for i686
+ export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+
+ echo "slibdir=/usr/lib32" >> configparms
+
+ # remove hardening options from CFLAGS for building libraries
+ CFLAGS=${CFLAGS/-fstack-protector/}
+ CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/}
+
+ ${srcdir}/glibc/configure --prefix=/usr \
+ --libdir=/usr/lib32 --libexecdir=/usr/lib32 \
+ --with-headers=/usr/include \
+ --enable-add-ons=nptl,libidn \
+ --enable-kernel=2.6.32 \
+ --enable-bind-now --disable-profile \
+ --enable-multi-arch i686-unknown-linux-gnu
+
+ # build libraries with hardening disabled
+ echo "build-programs=no" >> configparms
+ make
+
+ # re-enable hardening for programs
+ sed -i "/build-programs=/s#no#yes#" configparms
+ echo "CC += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ echo "CXX += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ make
+
+ # remove harding in preparation to run test-suite
+ sed -i '2,4d' configparms
+}
+
+check() {
+ cd ${srcdir}/glibc-build
+ make -k check
+}
+
+package() {
+ cd ${srcdir}/glibc-build
+ make install_root=${pkgdir} install
+
+ rm -rf ${pkgdir}/{etc,sbin,usr/{bin,sbin,share},var}
+
+ # We need one 32 bit specific header file
+ find ${pkgdir}/usr/include -type f -not -name stubs-32.h -delete
+
+ # Do not strip the following files for improved debugging support
+ # ("improved" as in not breaking gdb and valgrind...):
+ # ld-${pkgver}.so
+ # libc-${pkgver}.so
+ # libpthread-${pkgver}.so
+ # libthread_db-1.0.so
+
+ cd $pkgdir
+ strip $STRIP_BINARIES usr/lib32/getconf/*
+
+ strip $STRIP_STATIC usr/lib32/*.a
+
+ strip $STRIP_SHARED usr/lib32/{libanl,libBrokenLocale,libcidn,libcrypt}-${pkgver}.so \
+ usr/lib32/libnss_{compat,db,dns,files,hesiod,nis,nisplus}-${pkgver}.so \
+ usr/lib32/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \
+ usr/lib32/{libmemusage,libpcprofile,libSegFault}.so \
+ usr/lib32/{pt_chown,{audit,gconv}/*.so}
+
+ # Dynamic linker
+ mkdir ${pkgdir}/lib
+ ln -s ../usr/lib32/ld-linux.so.2 ${pkgdir}/lib/
+
+ # Add lib32 paths to the default library search path
+ install -Dm644 "$srcdir/lib32-glibc.conf" "$pkgdir/etc/ld.so.conf.d/lib32-glibc.conf"
+
+ # Symlink /usr/lib32/locale to /usr/lib/locale
+ ln -s ../lib/locale "$pkgdir/usr/lib32/locale"
+}
diff --git a/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch b/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch
new file mode 100644
index 000000000..6c9d2718e
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch
@@ -0,0 +1,132 @@
+diff --git a/elf/dl-close.c b/elf/dl-close.c
+index 73b2a2f..9bd91e3 100644
+--- a/elf/dl-close.c
++++ b/elf/dl-close.c
+@@ -1,5 +1,5 @@
+ /* Close a shared object opened by `_dl_open'.
+- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1996-2007, 2009, 2010 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
+@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
+ if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
+ || dl_close_state != not_pending)
+ {
+- if (map->l_direct_opencount == 0)
+- {
+- if (map->l_type == lt_loaded)
+- dl_close_state = rerun;
+- else if (map->l_type == lt_library)
+- {
+- struct link_map **oldp = map->l_initfini;
+- map->l_initfini = map->l_orig_initfini;
+- _dl_scope_free (oldp);
+- }
+- }
++ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
++ dl_close_state = rerun;
+
+ /* There are still references to this object. Do nothing more. */
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
+diff --git a/elf/dl-deps.c b/elf/dl-deps.c
+index 9e30594..3890d00 100644
+--- a/elf/dl-deps.c
++++ b/elf/dl-deps.c
+@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
+ nneeded * sizeof needed[0]);
+ atomic_write_barrier ();
+ l->l_initfini = l_initfini;
++ l->l_free_initfini = 1;
+ }
+
+ /* If we have no auxiliary objects just go on to the next map. */
+@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ l_initfini[nlist] = NULL;
+ atomic_write_barrier ();
+ map->l_initfini = l_initfini;
++ map->l_free_initfini = 1;
+ if (l_reldeps != NULL)
+ {
+ atomic_write_barrier ();
+@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ _dl_scope_free (old_l_reldeps);
+ }
+ if (old_l_initfini != NULL)
+- map->l_orig_initfini = old_l_initfini;
++ _dl_scope_free (old_l_initfini);
+
+diff --git a/elf/dl-libc.c b/elf/dl-libc.c
+index 7be9483..a13fce3 100644
+--- a/elf/dl-libc.c
++++ b/elf/dl-libc.c
+@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
+
+ for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
+ {
+- /* Remove all additional names added to the objects. */
+ for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
+ {
+ struct libname_list *lnp = l->l_libname->next;
+
+ l->l_libname->next = NULL;
+
++ /* Remove all additional names added to the objects. */
+ while (lnp != NULL)
+ {
+ struct libname_list *old = lnp;
+@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
+ if (! old->dont_free)
+ free (old);
+ }
++
++ /* Free the initfini dependency list. */
++ if (l->l_free_initfini)
++ free (l->l_initfini);
+ }
+
+ if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 4a9109e..617e30e 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ lnp->dont_free = 1;
+ lnp = lnp->next;
+ }
++ l->l_free_initfini = 0;
+
+ if (l != &GL(dl_rtld_map))
+ _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
+diff --git a/include/link.h b/include/link.h
+index e877104..051b99a 100644
+--- a/include/link.h
++++ b/include/link.h
+@@ -1,6 +1,6 @@
+ /* Data structure for communication from the run-time dynamic linker for
+ loaded ELF shared objects.
+- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1995-2006, 2007, 2009, 2010 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
+@@ -192,6 +192,9 @@ struct link_map
+ during LD_TRACE_PRELINKING=1
+ contains any DT_SYMBOLIC
+ libraries. */
++ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
++ freed, ie. not allocated with
++ the dummy malloc in ld.so. */
+
+ /* Collected information about own RPATH directories. */
+ struct r_search_path_struct l_rpath_dirs;
+@@ -240,9 +243,6 @@ struct link_map
+
+ /* List of object in order of the init and fini calls. */
+ struct link_map **l_initfini;
+- /* The init and fini list generated at startup, saved when the
+- object is also loaded dynamically. */
+- struct link_map **l_orig_initfini;
+
+ /* List of the dependencies introduced through symbol binding. */
+ struct link_map_reldeps
diff --git a/multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch b/multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch
new file mode 100644
index 000000000..e2beea881
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.14-reexport-rpc-interface.patch
@@ -0,0 +1,26 @@
+diff --git a/include/libc-symbols.h b/include/libc-symbols.h
+index 67e1ca2..5e7cca5 100644
+--- a/include/libc-symbols.h
++++ b/include/libc-symbols.h
+@@ -635,7 +635,7 @@ for linking")
+ # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+ # define libc_hidden_def(name) hidden_def (name)
+ # define libc_hidden_weak(name) hidden_weak (name)
+-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
++# define libc_hidden_nolink(name, version) hidden_def (name)
+ # define libc_hidden_ver(local, name) hidden_ver (local, name)
+ # define libc_hidden_data_def(name) hidden_data_def (name)
+ # define libc_hidden_data_weak(name) hidden_data_weak (name)
+diff --git a/sunrpc/Makefile b/sunrpc/Makefile
+index 5134ce9..40c73d1 100644
+--- a/sunrpc/Makefile
++++ b/sunrpc/Makefile
+@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \
+ des_crypt.h)
+ headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
+ $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
+-headers = rpc/netdb.h
++headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc)
+ install-others = $(inst_sysconfdir)/rpc
+ generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
+ $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
diff --git a/multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch b/multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
new file mode 100644
index 000000000..eb0fd822d
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
@@ -0,0 +1,28 @@
+From bdd816a366c4e5bba5de7157d948e0c0737fb4fb Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Tue, 17 May 2011 17:42:30 +0200
+Subject: [PATCH] Reinstall NIS RPC headers
+
+---
+ nis/Makefile | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/nis/Makefile b/nis/Makefile
+index b5c9609..d2934d9 100644
+--- a/nis/Makefile
++++ b/nis/Makefile
+@@ -23,9 +23,9 @@ subdir := nis
+
+ aux := nis_hash
+
++headers := $(wildcard rpcsvc/*.[hx])
+ distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \
+- nisplus-parser.h nis_xdr.h nss \
+- $(wildcard rpcsvc/*.[hx])
++ nisplus-parser.h nis_xdr.h nss
+
+ # These are the databases available for the nis (and perhaps later nisplus)
+ # service. This must be a superset of the services in nss.
+--
+1.7.5.4
+
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch b/multilib-testing/lib32-glibc/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch
new file mode 100644
index 000000000..6f0a0398f
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch
@@ -0,0 +1,24 @@
+diff --git a/resolv/res_query.c b/resolv/res_query.c
+index 947c651..abccd4a 100644
+--- a/resolv/res_query.c
++++ b/resolv/res_query.c
+@@ -556,12 +556,16 @@ __libc_res_nquerydomain(res_state statp,
+ * copy without '.' if present.
+ */
+ n = strlen(name);
+- if (n >= MAXDNAME) {
++
++ /* Decrement N prior to checking it against MAXDNAME
++ so that we detect a wrap to SIZE_MAX and return
++ a reasonable error. */
++ n--;
++ if (n >= MAXDNAME - 1) {
+ RES_SET_H_ERRNO(statp, NO_RECOVERY);
+ return (-1);
+ }
+- n--;
+- if (n >= 0 && name[n] == '.') {
++ if (name[n] == '.') {
+ strncpy(nbuf, name, n);
+ nbuf[n] = '\0';
+ } else
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-arena.patch b/multilib-testing/lib32-glibc/glibc-2.15-arena.patch
new file mode 100644
index 000000000..46f52e98d
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-arena.patch
@@ -0,0 +1,29 @@
+diff --git a/malloc/arena.c b/malloc/arena.c
+index d3cf4b9..b1c9469 100644
+--- a/malloc/arena.c
++++ b/malloc/arena.c
+@@ -828,7 +828,7 @@ arena_get2(mstate a_tsd, size_t size)
+ {
+ if (mp_.arena_max != 0)
+ narenas_limit = mp_.arena_max;
+- else
++ else if (narenas > mp_.arena_test)
+ {
+ int n = __get_nprocs ();
+
+@@ -842,7 +842,14 @@ arena_get2(mstate a_tsd, size_t size)
+ }
+ repeat:;
+ size_t n = narenas;
+- if (__builtin_expect (n <= mp_.arena_test || n < narenas_limit, 0))
++ /* NB: the following depends on the fact that (size_t)0 - 1 is a
++ very large number and that the underflow is OK. If arena_max
++ is set the value of arena_test is irrelevant. If arena_test
++ is set but narenas is not yet larger or equal to arena_test
++ narenas_limit is 0. There is no possibility for narenas to
++ be too big for the test to always fail since there is not
++ enough address space to create that many arenas. */
++ if (__builtin_expect (n <= narenas_limit - 1, 0))
+ {
+ if (catomic_compare_and_exchange_bool_acq (&narenas, n + 1, n))
+ goto repeat;
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-avx.patch b/multilib-testing/lib32-glibc/glibc-2.15-avx.patch
new file mode 100644
index 000000000..5439da8d0
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-avx.patch
@@ -0,0 +1,196 @@
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_atan2.c b/sysdeps/x86_64/fpu/multiarch/e_atan2.c
+index 6867c6e..3a615fc 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_atan2.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_atan2.c
+@@ -14,7 +14,7 @@ extern double __ieee754_atan2_fma4 (double, double);
+
+ libm_ifunc (__ieee754_atan2,
+ HAS_FMA4 ? __ieee754_atan2_fma4
+- : (HAS_AVX ? __ieee754_atan2_avx : __ieee754_atan2_sse2));
++ : (HAS_YMM_USABLE ? __ieee754_atan2_avx : __ieee754_atan2_sse2));
+ strong_alias (__ieee754_atan2, __atan2_finite)
+
+ # define __ieee754_atan2 __ieee754_atan2_sse2
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c
+index 3c65028..7b2320a 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_exp.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c
+@@ -14,7 +14,7 @@ extern double __ieee754_exp_fma4 (double);
+
+ libm_ifunc (__ieee754_exp,
+ HAS_FMA4 ? __ieee754_exp_fma4
+- : (HAS_AVX ? __ieee754_exp_avx : __ieee754_exp_sse2));
++ : (HAS_YMM_USABLE ? __ieee754_exp_avx : __ieee754_exp_sse2));
+ strong_alias (__ieee754_exp, __exp_finite)
+
+ # define __ieee754_exp __ieee754_exp_sse2
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c
+index 3b468d0..ab277d6 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_log.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_log.c
+@@ -14,7 +14,7 @@ extern double __ieee754_log_fma4 (double);
+
+ libm_ifunc (__ieee754_log,
+ HAS_FMA4 ? __ieee754_log_fma4
+- : (HAS_AVX ? __ieee754_log_avx
++ : (HAS_YMM_USABLE ? __ieee754_log_avx
+ : __ieee754_log_sse2));
+ strong_alias (__ieee754_log, __log_finite)
+
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c
+index 3160201..78c7e09 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_atan.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c
+@@ -12,7 +12,8 @@ extern double __atan_fma4 (double);
+ # define __atan_fma4 ((void *) 0)
+ # endif
+
+-libm_ifunc (atan, HAS_FMA4 ? __atan_fma4 : HAS_AVX ? __atan_avx : __atan_sse2);
++libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 :
++ HAS_YMM_USABLE ? __atan_avx : __atan_sse2));
+
+ # define atan __atan_sse2
+ #endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c
+index 1ba9dbc..417acd0 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_sin.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c
+@@ -17,10 +17,12 @@ extern double __sin_fma4 (double);
+ # define __sin_fma4 ((void *) 0)
+ # endif
+
+-libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2);
++libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 :
++ HAS_YMM_USABLE ? __cos_avx : __cos_sse2));
+ weak_alias (__cos, cos)
+
+-libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2);
++libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 :
++ HAS_YMM_USABLE ? __sin_avx : __sin_sse2));
+ weak_alias (__sin, sin)
+
+ # define __cos __cos_sse2
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c
+index 8f6601e..3047155 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_tan.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c
+@@ -12,7 +12,8 @@ extern double __tan_fma4 (double);
+ # define __tan_fma4 ((void *) 0)
+ # endif
+
+-libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2);
++libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 :
++ HAS_YMM_USABLE ? __tan_avx : __tan_sse2));
+
+ # define tan __tan_sse2
+ #endif
+diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c
+index 65b0ee9..76d146c 100644
+--- a/sysdeps/x86_64/multiarch/init-arch.c
++++ b/sysdeps/x86_64/multiarch/init-arch.c
+@@ -1,6 +1,6 @@
+ /* Initialize CPU feature data.
+ This file is part of the GNU C Library.
+- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+ Contributed by Ulrich Drepper <drepper@redhat.com>.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -144,6 +144,18 @@ __init_cpu_features (void)
+ else
+ kind = arch_kind_other;
+
++ if (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_AVX)
++ {
++ /* Reset the AVX bit in case OSXSAVE is disabled. */
++ if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) != 0
++ && ({ unsigned int xcrlow;
++ unsigned int xcrhigh;
++ asm ("xgetbv"
++ : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0));
++ (xcrlow & 6) == 6; }))
++ __cpu_features.feature[index_YMM_Usable] |= bit_YMM_Usable;
++ }
++
+ __cpu_features.family = family;
+ __cpu_features.model = model;
+ atomic_write_barrier ();
+diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h
+index 2a1df39..2dc75ab 100644
+--- a/sysdeps/x86_64/multiarch/init-arch.h
++++ b/sysdeps/x86_64/multiarch/init-arch.h
+@@ -1,5 +1,5 @@
+ /* This file is part of the GNU C Library.
+- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+@@ -22,11 +22,13 @@
+ #define bit_Prefer_SSE_for_memop (1 << 3)
+ #define bit_Fast_Unaligned_Load (1 << 4)
+ #define bit_Prefer_PMINUB_for_stringop (1 << 5)
++#define bit_YMM_Usable (1 << 6)
+
+ #define bit_SSE2 (1 << 26)
+ #define bit_SSSE3 (1 << 9)
+ #define bit_SSE4_1 (1 << 19)
+ #define bit_SSE4_2 (1 << 20)
++#define bit_OSXSAVE (1 << 27)
+ #define bit_AVX (1 << 28)
+ #define bit_POPCOUNT (1 << 23)
+ #define bit_FMA (1 << 12)
+@@ -48,6 +50,7 @@
+ # define index_Prefer_SSE_for_memop FEATURE_INDEX_1*FEATURE_SIZE
+ # define index_Fast_Unaligned_Load FEATURE_INDEX_1*FEATURE_SIZE
+ # define index_Prefer_PMINUB_for_stringop FEATURE_INDEX_1*FEATURE_SIZE
++# define index_YMM_Usable FEATURE_INDEX_1*FEATURE_SIZE
+
+ #else /* __ASSEMBLER__ */
+
+@@ -92,7 +95,7 @@ extern struct cpu_features
+
+
+ extern void __init_cpu_features (void) attribute_hidden;
+-#define INIT_ARCH()\
++# define INIT_ARCH() \
+ do \
+ if (__cpu_features.kind == arch_kind_unknown) \
+ __init_cpu_features (); \
+@@ -125,23 +128,21 @@ extern const struct cpu_features *__get_cpu_features (void)
+ # define index_Slow_BSF FEATURE_INDEX_1
+ # define index_Prefer_SSE_for_memop FEATURE_INDEX_1
+ # define index_Fast_Unaligned_Load FEATURE_INDEX_1
++# define index_YMM_Usable FEATURE_INDEX_1
+
+-#define HAS_ARCH_FEATURE(idx, bit) \
+- ((__get_cpu_features ()->feature[idx] & (bit)) != 0)
++# define HAS_ARCH_FEATURE(name) \
++ ((__get_cpu_features ()->feature[index_##name] & (bit_##name)) != 0)
+
+-#define HAS_FAST_REP_STRING \
+- HAS_ARCH_FEATURE (index_Fast_Rep_String, bit_Fast_Rep_String)
++# define HAS_FAST_REP_STRING HAS_ARCH_FEATURE (Fast_Rep_String)
+
+-#define HAS_FAST_COPY_BACKWARD \
+- HAS_ARCH_FEATURE (index_Fast_Copy_Backward, bit_Fast_Copy_Backward)
++# define HAS_FAST_COPY_BACKWARD HAS_ARCH_FEATURE (Fast_Copy_Backward)
+
+-#define HAS_SLOW_BSF \
+- HAS_ARCH_FEATURE (index_Slow_BSF, bit_Slow_BSF)
++# define HAS_SLOW_BSF HAS_ARCH_FEATURE (Slow_BSF)
+
+-#define HAS_PREFER_SSE_FOR_MEMOP \
+- HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop)
++# define HAS_PREFER_SSE_FOR_MEMOP HAS_ARCH_FEATURE (Prefer_SSE_for_memop)
+
+-#define HAS_FAST_UNALIGNED_LOAD \
+- HAS_ARCH_FEATURE (index_Fast_Unaligned_Load, bit_Fast_Unaligned_Load)
++# define HAS_FAST_UNALIGNED_LOAD HAS_ARCH_FEATURE (Fast_Unaligned_Load)
++
++# define HAS_YMM_USABLE HAS_ARCH_FEATURE (YMM_Usable)
+
+ #endif /* __ASSEMBLER__ */
+--
+1.7.9
+
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-confstr-local-buffer-extent.patch b/multilib-testing/lib32-glibc/glibc-2.15-confstr-local-buffer-extent.patch
new file mode 100644
index 000000000..483b28532
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-confstr-local-buffer-extent.patch
@@ -0,0 +1,297 @@
+diff --git a/posix/confstr.c b/posix/confstr.c
+index 3c9566d..cad6561 100644
+--- a/posix/confstr.c
++++ b/posix/confstr.c
+@@ -35,6 +34,10 @@ confstr (name, buf, len)
+ const char *string = "";
+ size_t string_len = 1;
+
++ /* Note that this buffer must be large enough for the longest strings
++ used below. */
++ char restenvs[4 * sizeof "POSIX_V7_LPBIG_OFFBIG"];
++
+ switch (name)
+ {
+ case _CS_PATH:
+@@ -53,59 +56,55 @@ confstr (name, buf, len)
+ wint_t types are no greater than the width of type long.
+
+ Currently this means all environment which the system allows. */
+- {
+- char restenvs[4 * sizeof "POSIX_V7_LPBIG_OFFBIG"];
+-
+- string_len = 0;
++ string_len = 0;
+ #ifndef _POSIX_V7_ILP32_OFF32
+- if (__sysconf (_SC_V7_ILP32_OFF32) > 0)
++ if (__sysconf (_SC_V7_ILP32_OFF32) > 0)
+ #endif
+ #if !defined _POSIX_V7_ILP32_OFF32 || _POSIX_V7_ILP32_OFF32 > 0
+- {
+- memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32",
+- sizeof "POSIX_V7_ILP32_OFF32" - 1);
+- string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1;
+- }
++ {
++ memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32",
++ sizeof "POSIX_V7_ILP32_OFF32" - 1);
++ string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1;
++ }
+ #endif
+ #ifndef _POSIX_V7_ILP32_OFFBIG
+- if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0)
++ if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0)
+ #endif
+ #if !defined _POSIX_V7_ILP32_OFFBIG || _POSIX_V7_ILP32_OFFBIG > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG",
+- sizeof "POSIX_V7_ILP32_OFFBIG" - 1);
+- string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG",
++ sizeof "POSIX_V7_ILP32_OFFBIG" - 1);
++ string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1;
++ }
+ #endif
+ #ifndef _POSIX_V7_LP64_OFF64
+- if (__sysconf (_SC_V7_LP64_OFF64) > 0)
++ if (__sysconf (_SC_V7_LP64_OFF64) > 0)
+ #endif
+ #if !defined _POSIX_V7_LP64_OFF64 || _POSIX_V7_LP64_OFF64 > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64",
+- sizeof "POSIX_V7_LP64_OFF64" - 1);
+- string_len += sizeof "POSIX_V7_LP64_OFF64" - 1;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64",
++ sizeof "POSIX_V7_LP64_OFF64" - 1);
++ string_len += sizeof "POSIX_V7_LP64_OFF64" - 1;
++ }
+ #endif
+ #ifndef _POSIX_V7_LPBIG_OFFBIG
+- if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0)
++ if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0)
+ #endif
+ #if !defined _POSIX_V7_LPBIG_OFFBIG || _POSIX_V7_LPBIG_OFFBIG > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG",
+- sizeof "POSIX_V7_LPBIG_OFFBIG" - 1);
+- string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1;
+- }
+-#endif
+- restenvs[string_len++] = '\0';
+- string = restenvs;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG",
++ sizeof "POSIX_V7_LPBIG_OFFBIG" - 1);
++ string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1;
++ }
++#endif
++ restenvs[string_len++] = '\0';
++ string = restenvs;
+ break;
+
+ case _CS_V6_WIDTH_RESTRICTED_ENVS:
+@@ -116,59 +115,55 @@ confstr (name, buf, len)
+ wint_t types are no greater than the width of type long.
+
+ Currently this means all environment which the system allows. */
+- {
+- char restenvs[4 * sizeof "POSIX_V6_LPBIG_OFFBIG"];
+-
+- string_len = 0;
++ string_len = 0;
+ #ifndef _POSIX_V6_ILP32_OFF32
+- if (__sysconf (_SC_V6_ILP32_OFF32) > 0)
++ if (__sysconf (_SC_V6_ILP32_OFF32) > 0)
+ #endif
+ #if !defined _POSIX_V6_ILP32_OFF32 || _POSIX_V6_ILP32_OFF32 > 0
+- {
+- memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32",
+- sizeof "POSIX_V6_ILP32_OFF32" - 1);
+- string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1;
+- }
++ {
++ memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32",
++ sizeof "POSIX_V6_ILP32_OFF32" - 1);
++ string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1;
++ }
+ #endif
+ #ifndef _POSIX_V6_ILP32_OFFBIG
+- if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0)
++ if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0)
+ #endif
+ #if !defined _POSIX_V6_ILP32_OFFBIG || _POSIX_V6_ILP32_OFFBIG > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG",
+- sizeof "POSIX_V6_ILP32_OFFBIG" - 1);
+- string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG",
++ sizeof "POSIX_V6_ILP32_OFFBIG" - 1);
++ string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1;
++ }
+ #endif
+ #ifndef _POSIX_V6_LP64_OFF64
+- if (__sysconf (_SC_V6_LP64_OFF64) > 0)
++ if (__sysconf (_SC_V6_LP64_OFF64) > 0)
+ #endif
+ #if !defined _POSIX_V6_LP64_OFF64 || _POSIX_V6_LP64_OFF64 > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64",
+- sizeof "POSIX_V6_LP64_OFF64" - 1);
+- string_len += sizeof "POSIX_V6_LP64_OFF64" - 1;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64",
++ sizeof "POSIX_V6_LP64_OFF64" - 1);
++ string_len += sizeof "POSIX_V6_LP64_OFF64" - 1;
++ }
+ #endif
+ #ifndef _POSIX_V6_LPBIG_OFFBIG
+- if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0)
++ if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0)
+ #endif
+ #if !defined _POSIX_V6_LPBIG_OFFBIG || _POSIX_V6_LPBIG_OFFBIG > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG",
+- sizeof "POSIX_V6_LPBIG_OFFBIG" - 1);
+- string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1;
+- }
+-#endif
+- restenvs[string_len++] = '\0';
+- string = restenvs;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG",
++ sizeof "POSIX_V6_LPBIG_OFFBIG" - 1);
++ string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1;
++ }
++#endif
++ restenvs[string_len++] = '\0';
++ string = restenvs;
+ break;
+
+ case _CS_V5_WIDTH_RESTRICTED_ENVS:
+@@ -179,59 +174,55 @@ confstr (name, buf, len)
+ wint_t types are no greater than the width of type long.
+
+ Currently this means all environment which the system allows. */
+- {
+- char restenvs[4 * sizeof "XBS5_LPBIG_OFFBIG"];
+-
+- string_len = 0;
++ string_len = 0;
+ #ifndef _XBS5_ILP32_OFF32
+- if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0)
++ if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0)
+ #endif
+ #if !defined _XBS5_ILP32_OFF32 || _XBS5_ILP32_OFF32 > 0
+- {
+- memcpy (restenvs + string_len, "XBS5_ILP32_OFF32",
+- sizeof "XBS5_ILP32_OFF32" - 1);
+- string_len += sizeof "XBS5_ILP32_OFF32" - 1;
+- }
++ {
++ memcpy (restenvs + string_len, "XBS5_ILP32_OFF32",
++ sizeof "XBS5_ILP32_OFF32" - 1);
++ string_len += sizeof "XBS5_ILP32_OFF32" - 1;
++ }
+ #endif
+ #ifndef _XBS5_ILP32_OFFBIG
+- if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0)
++ if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0)
+ #endif
+ #if !defined _XBS5_ILP32_OFFBIG || _XBS5_ILP32_OFFBIG > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG",
+- sizeof "XBS5_ILP32_OFFBIG" - 1);
+- string_len += sizeof "XBS5_ILP32_OFFBIG" - 1;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG",
++ sizeof "XBS5_ILP32_OFFBIG" - 1);
++ string_len += sizeof "XBS5_ILP32_OFFBIG" - 1;
++ }
+ #endif
+ #ifndef _XBS5_LP64_OFF64
+- if (__sysconf (_SC_XBS5_LP64_OFF64) > 0)
++ if (__sysconf (_SC_XBS5_LP64_OFF64) > 0)
+ #endif
+ #if !defined _XBS5_LP64_OFF64 || _XBS5_LP64_OFF64 > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "XBS5_LP64_OFF64",
+- sizeof "XBS5_LP64_OFF64" - 1);
+- string_len += sizeof "XBS5_LP64_OFF64" - 1;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "XBS5_LP64_OFF64",
++ sizeof "XBS5_LP64_OFF64" - 1);
++ string_len += sizeof "XBS5_LP64_OFF64" - 1;
++ }
+ #endif
+ #ifndef _XBS5_LPBIG_OFFBIG
+- if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0)
++ if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0)
+ #endif
+ #if !defined _XBS5_LPBIG_OFFBIG || _XBS5_LPBIG_OFFBIG > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG",
+- sizeof "XBS5_LPBIG_OFFBIG" - 1);
+- string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1;
+- }
+-#endif
+- restenvs[string_len++] = '\0';
+- string = restenvs;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG",
++ sizeof "XBS5_LPBIG_OFFBIG" - 1);
++ string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1;
++ }
++#endif
++ restenvs[string_len++] = '\0';
++ string = restenvs;
+ break;
+
+ case _CS_XBS5_ILP32_OFF32_CFLAGS:
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files-2.patch b/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files-2.patch
new file mode 100644
index 000000000..d28237f85
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files-2.patch
@@ -0,0 +1,20 @@
+diff --git a/timezone/Makefile b/timezone/Makefile
+index 00bfba6..9e55a6a 100644
+--- a/timezone/Makefile
++++ b/timezone/Makefile
+@@ -45,7 +45,6 @@ include ../Makeconfig # Get objpfx defined so we can use it below.
+ CPPFLAGS-zic = -DNOT_IN_libc
+
+ ifeq ($(have-ksh),yes)
+-install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab
+ install-bin-script = tzselect
+ generated += tzselect
+ endif
+@@ -111,7 +110,3 @@ $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
+ -e 's%@TZDIR@%$(zonedir)%g' < $< > $@.new
+ chmod 555 $@.new
+ mv -f $@.new $@
+-
+-$(addprefix $(inst_zonedir)/,iso3166.tab zone.tab): \
+- $(inst_zonedir)/%: % $(+force)
+- $(do-install)
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files.patch b/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files.patch
new file mode 100644
index 000000000..e4f29bc1a
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-do-not-install-timezone-files.patch
@@ -0,0 +1,124 @@
+diff --git a/timezone/Makefile b/timezone/Makefile
+index e8fb716..d5ea538 100644
+--- a/timezone/Makefile
++++ b/timezone/Makefile
+@@ -1,4 +1,4 @@
+-# Copyright (C) 1998,1999,2000,2002,2005,2007 Free Software Foundation, Inc.
++# Copyright (C) 1998-2000,2002,2005,2007,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
+@@ -49,33 +49,6 @@ include ../Makeconfig # Get objpfx defined so we can use it below.
+
+ CPPFLAGS-zic = -DNOT_IN_libc
+
+-# z.* use this variable.
+-define nl
+-
+-
+-endef
+-ifndef avoid-generated
+-ifndef inhibit_timezone_rules
+--include $(addprefix $(objpfx)z.,$(tzfiles))
+-endif
+-endif
+-
+-# Make these absolute file names.
+-installed-localtime-file := $(firstword $(filter /%,$(inst_localtime-file)) \
+- $(addprefix $(inst_zonedir)/, \
+- $(localtime-file)))
+-installed-posixrules-file := $(firstword $(filter /%,$(posixrules-file)) \
+- $(addprefix $(inst_zonedir)/, \
+- $(posixrules-file)))
+-
+-ifeq ($(cross-compiling),no)
+-# Don't try to install the zoneinfo files since we can't run zic.
+-install-others = $(addprefix $(inst_zonedir)/,$(zonenames) \
+- $(zonenames:%=posix/%) \
+- $(zonenames:%=right/%)) \
+- $(installed-localtime-file) $(installed-posixrules-file)
+-endif
+-
+ ifeq ($(have-ksh),yes)
+ install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab
+ install-bin-script = tzselect
+@@ -85,79 +58,6 @@ endif
+ include ../Rules
+
+
+-$(tzfiles:%=$(objpfx)z.%): $(objpfx)z.%: % Makefile
+-# Kludge alert: we use an implicit rule (in what we are generating here)
+-# because that is the only way to tell Make that the one command builds all
+-# the files.
+-# The extra kludge for the $(tzlinks) files is necessary since running zic
+-# this file requires all other files to exist. Blech!
+- $(make-target-directory)
+- (echo 'define $*-zones' ;\
+- $(AWK) '$$1 == "Zone" { print $$2 } $$1 == "Link" { print $$3 }' $^ ;\
+- echo 'endef' ;\
+- echo '$*-zones := $$(subst $$(nl), ,$$($*-zones))' ;\
+- echo 'ifdef $*-zones' ;\
+- if test x$(findstring $*, $(tzlinks)) != x; then \
+- echo '$$(addprefix $$(inst_zonedir)/right/,$$($*-zones)): \';\
+- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/right/,$$($$t-zones)))' ;\
+- echo '$$(addprefix $$(inst_zonedir)/posix/,$$($*-zones)): \';\
+- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/posix/,$$($$t-zones)))' ;\
+- echo '$$(addprefix $$(inst_zonedir)/,$$($*-zones)): \' ;\
+- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/,$$($$t-zones)))' ;\
+- fi ;\
+- echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/right/,$$($*-zones)): \' ;\
+- echo '$< $$(objpfx)zic leapseconds yearistype' ;\
+- echo ' $$(tzcompile)' ;\
+- echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/posix/,$$($*-zones)): \' ;\
+- echo '$< $$(objpfx)zic /dev/null yearistype' ;\
+- echo ' $$(tzcompile)' ;\
+- echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/,$$($*-zones)): \' ;\
+- echo '$< $$(objpfx)zic $$(leapseconds) yearistype' ;\
+- echo ' $$(tzcompile)' ;\
+- echo 'endif' ;\
+- echo 'zonenames := $$(zonenames) $$($*-zones)' ;\
+- ) > $@.new
+- mv $@.new $@
+-
+-.PHONY: echo-zonenames
+-echo-zonenames:
+- @echo 'Known zones: $(zonenames)'
+-
+-
+-# We have to use `-d $(inst_zonedir)' to explictly tell zic where to
+-# place the output files although $(zonedir) is compiled in. But the
+-# user might have set $(install_root) on the command line of `make install'.
+-zic-cmd = $(built-program-cmd) -d $(inst_zonedir)
+-tzcompile = $(zic-cmd)$(target-zone-flavor) -L $(word 3,$^) \
+- -y $(dir $(word 4,$^))$(notdir $(word 4,$^)) $<
+-
+-# The source files specify the zone names relative to the -d directory,
+-# so for the posix/ and right/ flavors we need to pass -d $(inst_zonedir)/posix
+-# and the like. This magic extracts /posix or /right if it's the first
+-# component after $(inst_zonedir) in the target name $@.
+-target-zone-flavor = $(filter /posix /right, \
+- /$(firstword $(subst /, , \
+- $(patsubst $(inst_zonedir)/%,%,$@))))
+-
+-ifdef localtime
+-$(installed-localtime-file): $(inst_zonedir)/$(localtime) $(objpfx)zic \
+- $(+force)
+- $(make-target-directory)
+- if test -r $@; then \
+- echo Site timezone NOT reset to Factory.; \
+- else \
+- rm -f $@T; \
+- $(SHELL) $(..)scripts/rellns-sh $< $@T; \
+- mv -f $@T $@; \
+- fi
+-endif
+-ifdef posixrules
+-$(installed-posixrules-file): $(inst_zonedir)/$(posixrules) $(objpfx)zic \
+- $(+force)
+- $(zic-cmd) -p $(posixrules)
+-endif
+-
+-
+ $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
+
+ tz-cflags = -DTZDIR='"$(zonedir)"' \
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-feraiseexcept-plt.patch b/multilib-testing/lib32-glibc/glibc-2.15-feraiseexcept-plt.patch
new file mode 100644
index 000000000..c41acc169
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-feraiseexcept-plt.patch
@@ -0,0 +1,20 @@
+diff --git a/sysdeps/i386/fpu/feupdateenv.c b/sysdeps/i386/fpu/feupdateenv.c
+index 70f9ee2..6e2ce35 100644
+--- a/sysdeps/i386/fpu/feupdateenv.c
++++ b/sysdeps/i386/fpu/feupdateenv.c
+@@ -1,5 +1,5 @@
+ /* Install given floating-point environment and raise exceptions.
+- Copyright (C) 1997,99,2000,01,07,2010 Free Software Foundation, Inc.
++ Copyright (C) 1997,99,2000,01,07,2010,2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+@@ -44,7 +44,7 @@ __feupdateenv (const fenv_t *envp)
+ /* Raise the saved exception. Incidently for us the implementation
+ defined format of the values in objects of type fexcept_t is the
+ same as the ones specified using the FE_* constants. */
+- feraiseexcept ((int) temp);
++ __feraiseexcept ((int) temp);
+
+ /* Success. */
+ return 0;
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-fix-res_query-assert.patch b/multilib-testing/lib32-glibc/glibc-2.15-fix-res_query-assert.patch
new file mode 100644
index 000000000..a894da9c7
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-fix-res_query-assert.patch
@@ -0,0 +1,51 @@
+--- a/resolv/res_query.c
++++ a/resolv/res_query.c
+@@ -122,6 +122,7 @@ __libc_res_nquery(res_state statp,
+ int *resplen2)
+ {
+ HEADER *hp = (HEADER *) answer;
++ HEADER *hp2;
+ int n, use_malloc = 0;
+ u_int oflags = statp->_flags;
+
+@@ -239,26 +240,25 @@ __libc_res_nquery(res_state statp,
+ /* __libc_res_nsend might have reallocated the buffer. */
+ hp = (HEADER *) *answerp;
+
+- /* We simplify the following tests by assigning HP to HP2. It
+- is easy to verify that this is the same as ignoring all
+- tests of HP2. */
+- HEADER *hp2 = answerp2 ? (HEADER *) *answerp2 : hp;
+-
+- if (n < (int) sizeof (HEADER) && answerp2 != NULL
+- && *resplen2 > (int) sizeof (HEADER))
++ /* We simplify the following tests by assigning HP to HP2 or
++ vice versa. It is easy to verify that this is the same as
++ ignoring all tests of HP or HP2. */
++ if (answerp2 == NULL || *resplen2 < (int) sizeof (HEADER))
+ {
+- /* Special case of partial answer. */
+- assert (hp != hp2);
+- hp = hp2;
++ hp2 = hp;
+ }
+- else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER)
+- && n > (int) sizeof (HEADER))
++ else
+ {
+- /* Special case of partial answer. */
+- assert (hp != hp2);
+- hp2 = hp;
++ hp2 = (HEADER *) *answerp2;
++ if (n < (int) sizeof (HEADER))
++ {
++ hp = hp2;
++ }
+ }
+
++ /* Make sure both hp and hp2 are defined */
++ assert((hp != NULL) && (hp2 != NULL));
++
+ if ((hp->rcode != NOERROR || ntohs(hp->ancount) == 0)
+ && (hp2->rcode != NOERROR || ntohs(hp2->ancount) == 0)) {
+ #ifdef DEBUG
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-fmtmsg-locking.patch b/multilib-testing/lib32-glibc/glibc-2.15-fmtmsg-locking.patch
new file mode 100644
index 000000000..f5976abd9
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-fmtmsg-locking.patch
@@ -0,0 +1,148 @@
+diff --git a/stdlib/fmtmsg.c b/stdlib/fmtmsg.c
+index 9203317..4c02302 100644
+--- a/stdlib/fmtmsg.c
++++ b/stdlib/fmtmsg.c
+@@ -103,7 +103,6 @@ fmtmsg (long int classification, const char *label, int severity,
+ const char *text, const char *action, const char *tag)
+ {
+ __libc_once_define (static, once);
+- int result = MM_OK;
+ struct severity_info *severity_rec;
+
+ /* Make sure everything is initialized. */
+@@ -124,17 +123,6 @@ fmtmsg (long int classification, const char *label, int severity,
+ return MM_NOTOK;
+ }
+
+- for (severity_rec = severity_list; severity_rec != NULL;
+- severity_rec = severity_rec->next)
+- if (severity == severity_rec->severity)
+- /* Bingo. */
+- break;
+-
+- /* If we don't know anything about the severity level return an error. */
+- if (severity_rec == NULL)
+- return MM_NOTOK;
+-
+-
+ #ifdef __libc_ptf_call
+ /* We do not want this call to be cut short by a thread
+ cancellation. Therefore disable cancellation for now. */
+@@ -143,54 +131,73 @@ fmtmsg (long int classification, const char *label, int severity,
+ 0);
+ #endif
+
+- /* Now we can print. */
+- if (classification & MM_PRINT)
+- {
+- int do_label = (print & label_mask) && label != MM_NULLLBL;
+- int do_severity = (print & severity_mask) && severity != MM_NULLSEV;
+- int do_text = (print & text_mask) && text != MM_NULLTXT;
+- int do_action = (print & action_mask) && action != MM_NULLACT;
+- int do_tag = (print & tag_mask) && tag != MM_NULLTAG;
+-
+- if (__fxprintf (stderr, "%s%s%s%s%s%s%s%s%s%s\n",
+- do_label ? label : "",
+- do_label && (do_severity | do_text | do_action | do_tag)
+- ? ": " : "",
+- do_severity ? severity_rec->string : "",
+- do_severity && (do_text | do_action | do_tag)
+- ? ": " : "",
+- do_text ? text : "",
+- do_text && (do_action | do_tag) ? "\n" : "",
+- do_action ? "TO FIX: " : "",
+- do_action ? action : "",
+- do_action && do_tag ? " " : "",
+- do_tag ? tag : "") < 0)
+- /* Oh, oh. An error occurred during the output. */
+- result = MM_NOMSG;
+- }
++ __libc_lock_lock (lock);
+
+- if (classification & MM_CONSOLE)
++ for (severity_rec = severity_list; severity_rec != NULL;
++ severity_rec = severity_rec->next)
++ if (severity == severity_rec->severity)
++ /* Bingo. */
++ break;
++
++ /* If we don't know anything about the severity level return an error. */
++ int result = MM_NOTOK;
++ if (severity_rec != NULL)
+ {
+- int do_label = label != MM_NULLLBL;
+- int do_severity = severity != MM_NULLSEV;
+- int do_text = text != MM_NULLTXT;
+- int do_action = action != MM_NULLACT;
+- int do_tag = tag != MM_NULLTAG;
+-
+- syslog (LOG_ERR, "%s%s%s%s%s%s%s%s%s%s\n",
+- do_label ? label : "",
+- do_label && (do_severity | do_text | do_action | do_tag)
+- ? ": " : "",
+- do_severity ? severity_rec->string : "",
+- do_severity && (do_text | do_action | do_tag) ? ": " : "",
+- do_text ? text : "",
+- do_text && (do_action | do_tag) ? "\n" : "",
+- do_action ? "TO FIX: " : "",
+- do_action ? action : "",
+- do_action && do_tag ? " " : "",
+- do_tag ? tag : "");
++ result = MM_OK;
++
++ /* Now we can print. */
++ if (classification & MM_PRINT)
++ {
++ int do_label = (print & label_mask) && label != MM_NULLLBL;
++ int do_severity = (print & severity_mask) && severity != MM_NULLSEV;
++ int do_text = (print & text_mask) && text != MM_NULLTXT;
++ int do_action = (print & action_mask) && action != MM_NULLACT;
++ int do_tag = (print & tag_mask) && tag != MM_NULLTAG;
++ int need_colon = (do_label
++ && (do_severity | do_text | do_action | do_tag));
++
++ if (__fxprintf (stderr, "%s%s%s%s%s%s%s%s%s%s\n",
++ do_label ? label : "",
++ need_colon ? ": " : "",
++ do_severity ? severity_rec->string : "",
++ do_severity && (do_text | do_action | do_tag)
++ ? ": " : "",
++ do_text ? text : "",
++ do_text && (do_action | do_tag) ? "\n" : "",
++ do_action ? "TO FIX: " : "",
++ do_action ? action : "",
++ do_action && do_tag ? " " : "",
++ do_tag ? tag : "") < 0)
++ /* Oh, oh. An error occurred during the output. */
++ result = MM_NOMSG;
++ }
++
++ if (classification & MM_CONSOLE)
++ {
++ int do_label = label != MM_NULLLBL;
++ int do_severity = severity != MM_NULLSEV;
++ int do_text = text != MM_NULLTXT;
++ int do_action = action != MM_NULLACT;
++ int do_tag = tag != MM_NULLTAG;
++ int need_colon = (do_label
++ && (do_severity | do_text | do_action | do_tag));
++
++ syslog (LOG_ERR, "%s%s%s%s%s%s%s%s%s%s\n",
++ do_label ? label : "",
++ need_colon ? ": " : "",
++ do_severity ? severity_rec->string : "",
++ do_severity && (do_text | do_action | do_tag) ? ": " : "",
++ do_text ? text : "",
++ do_text && (do_action | do_tag) ? "\n" : "",
++ do_action ? "TO FIX: " : "",
++ do_action ? action : "",
++ do_action && do_tag ? " " : "",
++ do_tag ? tag : "");
++ }
+ }
+
++ __libc_lock_unlock (lock);
++
+ #ifdef __libc_ptf_call
+ __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);
+ #endif
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-gb18030.patch.gz b/multilib-testing/lib32-glibc/glibc-2.15-gb18030.patch.gz
new file mode 100644
index 000000000..dde59c056
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-gb18030.patch.gz
Binary files differ
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-ifunc.patch b/multilib-testing/lib32-glibc/glibc-2.15-ifunc.patch
new file mode 100644
index 000000000..115afa02a
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-ifunc.patch
@@ -0,0 +1,262 @@
+diff --git a/Makeconfig b/Makeconfig
+index 2db2821..68547b2 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -900,6 +900,12 @@ else
+ libdl = $(common-objpfx)dlfcn/libdl.a
+ endif
+
++ifeq ($(build-shared),yes)
++libm = $(common-objpfx)math/libm.so$(libm.so-version)
++else
++libm = $(common-objpfx)math/libm.a
++endif
++
+ # These are the subdirectories containing the library source. The order
+ # is more or less arbitrary. The sorting step will take care of the
+ # dependencies.
+diff --git a/elf/Makefile b/elf/Makefile
+index 052e763..3f1772a 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -124,7 +124,8 @@ distribute := rtld-Rules \
+ tst-initordera1.c tst-initordera2.c tst-initorderb1.c \
+ tst-initorderb2.c tst-initordera3.c tst-initordera4.c \
+ tst-initorder.c \
+- tst-initorder2.c
++ tst-initorder2.c \
++ tst-relsort1.c tst-relsort1mod1.c tst-relsort1mod2.c
+
+ CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables
+ CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables
+@@ -227,7 +228,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
+ tst-audit1 tst-audit2 \
+ tst-stackguard1 tst-addr1 tst-thrlock \
+ tst-unique1 tst-unique2 tst-unique3 tst-unique4 \
+- tst-initorder tst-initorder2
++ tst-initorder tst-initorder2 tst-relsort1
+ # reldep9
+ test-srcs = tst-pathopt
+ selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null)
+@@ -290,7 +291,9 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
+ tst-initordera1 tst-initorderb1 \
+ tst-initordera2 tst-initorderb2 \
+ tst-initordera3 tst-initordera4 \
+- tst-initorder2a tst-initorder2b tst-initorder2c tst-initorder2d
++ tst-initorder2a tst-initorder2b tst-initorder2c \
++ tst-initorder2d \
++ tst-relsort1mod1 tst-relsort1mod2
+ ifeq (yes,$(have-initfini-array))
+ modules-names += tst-array2dep tst-array5dep
+ endif
+@@ -1195,3 +1198,9 @@ CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS)
+ CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS)
+ CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS)
+ endif
++
++$(objpfx)tst-relsort1: $(libdl)
++$(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so
++$(objpfx)tst-relsort1mod2.so: $(libm)
++$(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \
++ $(objpfx)tst-relsort1mod2.so
+diff --git a/elf/dl-open.c b/elf/dl-open.c
+index a0b5c50..a56bdc1 100644
+--- a/elf/dl-open.c
++++ b/elf/dl-open.c
+@@ -1,5 +1,5 @@
+ /* Load a shared object at runtime, relocate it, and run its initializer.
+- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1996-2007, 2009, 2010, 2011, 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
+@@ -302,45 +302,109 @@ dl_open_worker (void *a)
+ if (GLRO(dl_lazy))
+ reloc_mode |= mode & RTLD_LAZY;
+
+- /* Relocate the objects loaded. We do this in reverse order so that copy
+- relocs of earlier objects overwrite the data written by later objects. */
+-
++ /* Sort the objects by dependency for the relocation process. This
++ allows IFUNC relocations to work and it also means copy
++ relocation of dependencies are if necessary overwritten. */
++ size_t nmaps = 0;
+ struct link_map *l = new;
+- while (l->l_next)
+- l = l->l_next;
+- while (1)
++ do
++ {
++ if (! l->l_real->l_relocated)
++ ++nmaps;
++ l = l->l_next;
++ }
++ while (l != NULL);
++ struct link_map *maps[nmaps];
++ nmaps = 0;
++ l = new;
++ do
+ {
+ if (! l->l_real->l_relocated)
++ maps[nmaps++] = l;
++ l = l->l_next;
++ }
++ while (l != NULL);
++ if (nmaps > 1)
++ {
++ char seen[nmaps];
++ memset (seen, '\0', nmaps);
++ size_t i = 0;
++ while (1)
+ {
+-#ifdef SHARED
+- if (__builtin_expect (GLRO(dl_profile) != NULL, 0))
++ ++seen[i];
++ struct link_map *thisp = maps[i];
++
++ /* Find the last object in the list for which the current one is
++ a dependency and move the current object behind the object
++ with the dependency. */
++ size_t k = nmaps - 1;
++ while (k > i)
+ {
+- /* If this here is the shared object which we want to profile
+- make sure the profile is started. We can find out whether
+- this is necessary or not by observing the `_dl_profile_map'
+- variable. If was NULL but is not NULL afterwars we must
+- start the profiling. */
+- struct link_map *old_profile_map = GL(dl_profile_map);
++ struct link_map **runp = maps[k]->l_initfini;
++ if (runp != NULL)
++ /* Look through the dependencies of the object. */
++ while (*runp != NULL)
++ if (__builtin_expect (*runp++ == thisp, 0))
++ {
++ /* Move the current object to the back past the last
++ object with it as the dependency. */
++ memmove (&maps[i], &maps[i + 1],
++ (k - i) * sizeof (maps[0]));
++ maps[k] = thisp;
++
++ if (seen[i + 1] > 1)
++ {
++ ++i;
++ goto next_clear;
++ }
++
++ char this_seen = seen[i];
++ memmove (&seen[i], &seen[i + 1],
++ (k - i) * sizeof (seen[0]));
++ seen[k] = this_seen;
++
++ goto next;
++ }
++
++ --k;
++ }
+
+- _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1);
++ if (++i == nmaps)
++ break;
++ next_clear:
++ memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0]));
++ next:;
++ }
++ }
+
+- if (old_profile_map == NULL && GL(dl_profile_map) != NULL)
+- {
+- /* We must prepare the profiling. */
+- _dl_start_profile ();
++ for (size_t i = nmaps; i-- > 0; )
++ {
++ l = maps[i];
+
+- /* Prevent unloading the object. */
+- GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE;
+- }
++#ifdef SHARED
++ if (__builtin_expect (GLRO(dl_profile) != NULL, 0))
++ {
++ /* If this here is the shared object which we want to profile
++ make sure the profile is started. We can find out whether
++ this is necessary or not by observing the `_dl_profile_map'
++ variable. If it was NULL but is not NULL afterwars we must
++ start the profiling. */
++ struct link_map *old_profile_map = GL(dl_profile_map);
++
++ _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1);
++
++ if (old_profile_map == NULL && GL(dl_profile_map) != NULL)
++ {
++ /* We must prepare the profiling. */
++ _dl_start_profile ();
++
++ /* Prevent unloading the object. */
++ GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE;
+ }
+- else
+-#endif
+- _dl_relocate_object (l, l->l_scope, reloc_mode, 0);
+ }
+-
+- if (l == new)
+- break;
+- l = l->l_prev;
++ else
++#endif
++ _dl_relocate_object (l, l->l_scope, reloc_mode, 0);
+ }
+
+ /* If the file is not loaded now as a dependency, add the search
+diff --git a/elf/tst-relsort1.c b/elf/tst-relsort1.c
+new file mode 100644
+index 0000000..972100c
+--- /dev/null
++++ b/elf/tst-relsort1.c
+@@ -0,0 +1,19 @@
++#include <dlfcn.h>
++#include <stdio.h>
++
++
++static int
++do_test ()
++{
++ const char lib[] = "$ORIGIN/tst-relsort1mod1.so";
++ void *h = dlopen (lib, RTLD_NOW);
++ if (h == NULL)
++ {
++ puts (dlerror ());
++ return 1;
++ }
++ return 0;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff --git a/elf/tst-relsort1mod1.c b/elf/tst-relsort1mod1.c
+new file mode 100644
+index 0000000..9e4a943
+--- /dev/null
++++ b/elf/tst-relsort1mod1.c
+@@ -0,0 +1,7 @@
++extern int foo (double);
++
++int
++bar (void)
++{
++ return foo (1.2);
++}
+diff --git a/elf/tst-relsort1mod2.c b/elf/tst-relsort1mod2.c
+new file mode 100644
+index 0000000..a2c3e55
+--- /dev/null
++++ b/elf/tst-relsort1mod2.c
+@@ -0,0 +1,7 @@
++#include <math.h>
++
++int
++foo (double d)
++{
++ return floor (d) != 0.0;
++}
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-lddebug-scopes.patch b/multilib-testing/lib32-glibc/glibc-2.15-lddebug-scopes.patch
new file mode 100644
index 000000000..808cf8d7c
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-lddebug-scopes.patch
@@ -0,0 +1,27 @@
+From 0c95ab64cb4ec0d22bb222647d9d20c7b4903e38 Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Fri, 7 Oct 2011 09:31:27 +0200
+Subject: [PATCH] Horrible workaround for horribly broken software
+
+---
+ elf/rtld.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 978c609..8422b9f 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -1393,7 +1393,9 @@ of this helper program; chances are you did not intend to run this program.\n\
+ char *copy = malloc (len);
+ if (copy == NULL)
+ _dl_fatal_printf ("out of memory\n");
+- l->l_libname->name = l->l_name = memcpy (copy, dsoname, len);
++ l->l_libname->name = memcpy (copy, dsoname, len);
++ if (GLRO(dl_debug_mask))
++ l->l_name = copy;
+ }
+
+ /* Add the vDSO to the object list. */
+--
+1.7.3.4
+
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-multiarch-x86-strcmp.patch b/multilib-testing/lib32-glibc/glibc-2.15-multiarch-x86-strcmp.patch
new file mode 100644
index 000000000..38c9e617f
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-multiarch-x86-strcmp.patch
@@ -0,0 +1,39 @@
+diff --git a/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c b/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c
+index d10e872..d4fcd2b 100644
+--- a/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c
++++ b/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c
+@@ -6,6 +6,8 @@ extern __typeof (strcasecmp_l) __strcasecmp_l_nonascii;
+ #define USE_IN_EXTENDED_LOCALE_MODEL 1
+ #include <string/strcasecmp.c>
+
++strong_alias (__strcasecmp_l_nonascii, __strcasecmp_l_ia32)
++
+ /* The needs of strcasecmp in libc are minimal, no need to go through
+ the IFUNC. */
+ strong_alias (__strcasecmp_l_nonascii, __GI___strcasecmp_l)
+diff --git a/sysdeps/i386/i686/multiarch/strcmp.S b/sysdeps/i386/i686/multiarch/strcmp.S
+index 5410d17..b3b9eb8 100644
+--- a/sysdeps/i386/i686/multiarch/strcmp.S
++++ b/sysdeps/i386/i686/multiarch/strcmp.S
+@@ -111,6 +111,7 @@ END(STRCMP)
+ # endif
+ #endif
+
+-#ifndef USE_AS_STRNCMP
++#if !defined USE_AS_STRNCMP && !defined USE_AS_STRCASECMP_L \
++ && !defined USE_AS_STRNCASECMP_L
+ # include "../strcmp.S"
+ #endif
+diff --git a/sysdeps/i386/i686/multiarch/strncase_l-c.c b/sysdeps/i386/i686/multiarch/strncase_l-c.c
+index 0c68b8d..7e601af 100644
+--- a/sysdeps/i386/i686/multiarch/strncase_l-c.c
++++ b/sysdeps/i386/i686/multiarch/strncase_l-c.c
+@@ -6,6 +6,8 @@ extern __typeof (strncasecmp_l) __strncasecmp_l_nonascii;
+ #define USE_IN_EXTENDED_LOCALE_MODEL 1
+ #include <string/strncase.c>
+
++strong_alias (__strncasecmp_l_nonascii, __strncasecmp_l_ia32)
++
+ /* The needs of strcasecmp in libc are minimal, no need to go through
+ the IFUNC. */
+ strong_alias (__strncasecmp_l_nonascii, __GI___strncasecmp_l)
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-nearbyintf-rounding.patch b/multilib-testing/lib32-glibc/glibc-2.15-nearbyintf-rounding.patch
new file mode 100644
index 000000000..b2bb9caac
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-nearbyintf-rounding.patch
@@ -0,0 +1,75 @@
+diff --git a/math/libm-test.inc b/math/libm-test.inc
+index c8186c8..1016753 100644
+--- a/math/libm-test.inc
++++ b/math/libm-test.inc
+@@ -4632,6 +4632,29 @@ nearbyint_test (void)
+ TEST_f_f (nearbyint, 524286.75, 524287.0);
+ TEST_f_f (nearbyint, 524288.75, 524289.0);
+
++ TEST_f_f (nearbyint, 1048576.75, 1048577.0);
++ TEST_f_f (nearbyint, 2097152.75, 2097153.0);
++ TEST_f_f (nearbyint, 2492472.75, 2492473.0);
++ TEST_f_f (nearbyint, 2886220.75, 2886221.0);
++ TEST_f_f (nearbyint, 3058792.75, 3058793.0);
++ TEST_f_f (nearbyint, -1048576.75, -1048577.0);
++ TEST_f_f (nearbyint, -2097152.75, -2097153.0);
++ TEST_f_f (nearbyint, -2492472.75, -2492473.0);
++ TEST_f_f (nearbyint, -2886220.75, -2886221.0);
++ TEST_f_f (nearbyint, -3058792.75, -3058793.0);
++#ifndef TEST_FLOAT
++ TEST_f_f (nearbyint, 70368744177664.75, 70368744177665.0);
++ TEST_f_f (nearbyint, 140737488355328.75, 140737488355329.0);
++ TEST_f_f (nearbyint, 281474976710656.75, 281474976710657.0);
++ TEST_f_f (nearbyint, 562949953421312.75, 562949953421313.0);
++ TEST_f_f (nearbyint, 1125899906842624.75, 1125899906842625.0);
++ TEST_f_f (nearbyint, -70368744177664.75, -70368744177665.0);
++ TEST_f_f (nearbyint, -140737488355328.75, -140737488355329.0);
++ TEST_f_f (nearbyint, -281474976710656.75, -281474976710657.0);
++ TEST_f_f (nearbyint, -562949953421312.75, -562949953421313.0);
++ TEST_f_f (nearbyint, -1125899906842624.75, -1125899906842625.0);
++#endif
++
+ END (nearbyint);
+ }
+
+diff --git a/sysdeps/ieee754/flt-32/s_nearbyintf.c b/sysdeps/ieee754/flt-32/s_nearbyintf.c
+index 04ef9ab..a6d602b 100644
+--- a/sysdeps/ieee754/flt-32/s_nearbyintf.c
++++ b/sysdeps/ieee754/flt-32/s_nearbyintf.c
+@@ -30,18 +30,12 @@ __nearbyintf(float x)
+ {
+ fenv_t env;
+ int32_t i0,j0,sx;
+- u_int32_t i,i1;
+ float w,t;
+ GET_FLOAT_WORD(i0,x);
+ sx = (i0>>31)&1;
+ j0 = ((i0>>23)&0xff)-0x7f;
+ if(j0<23) {
+ if(j0<0) {
+- if((i0&0x7fffffff)==0) return x;
+- i1 = (i0&0x07fffff);
+- i0 &= 0xfff00000;
+- i0 |= ((i1|-i1)>>9)&0x400000;
+- SET_FLOAT_WORD(x,i0);
+ libc_feholdexceptf (&env);
+ w = TWO23[sx]+x;
+ t = w-TWO23[sx];
+@@ -49,17 +43,11 @@ __nearbyintf(float x)
+ GET_FLOAT_WORD(i0,t);
+ SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
+ return t;
+- } else {
+- i = (0x007fffff)>>j0;
+- if((i0&i)==0) return x; /* x is integral */
+- i>>=1;
+- if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0);
+ }
+ } else {
+ if(__builtin_expect(j0==0x80, 0)) return x+x; /* inf or NaN */
+ else return x; /* x is integral */
+ }
+- SET_FLOAT_WORD(x,i0);
+ libc_feholdexceptf (&env);
+ w = TWO23[sx]+x;
+ t = w-TWO23[sx];
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-negative-result-cache.patch b/multilib-testing/lib32-glibc/glibc-2.15-negative-result-cache.patch
new file mode 100644
index 000000000..c09e79a17
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-negative-result-cache.patch
@@ -0,0 +1,138 @@
+diff --git a/nscd/aicache.c b/nscd/aicache.c
+index aaaf80d..e1f1244 100644
+--- a/nscd/aicache.c
++++ b/nscd/aicache.c
+@@ -1,5 +1,5 @@
+ /* Cache handling for host lookup.
+- Copyright (C) 2004-2008, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 2004-2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
+
+@@ -514,8 +514,9 @@ next_nip:
+ if (fd != -1)
+ TEMP_FAILURE_RETRY (send (fd, &notfound, total, MSG_NOSIGNAL));
+
+- /* If we cannot permanently store the result, so be it. */
+- if (__builtin_expect (db->negtimeout == 0, 0))
++ /* If we have a transient error or cannot permanently store the
++ result, so be it. */
++ if (rc4 == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+diff --git a/nscd/grpcache.c b/nscd/grpcache.c
+index e9607c6..a698f36 100644
+--- a/nscd/grpcache.c
++++ b/nscd/grpcache.c
+@@ -1,5 +1,5 @@
+ /* Cache handling for group lookup.
+- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+@@ -120,8 +120,9 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
+ else
+ written = total;
+
+- /* If we cannot permanently store the result, so be it. */
+- if (db->negtimeout == 0)
++ /* If we have a transient error or cannot permanently store
++ the result, so be it. */
++ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+diff --git a/nscd/hstcache.c b/nscd/hstcache.c
+index 4d68ade..c72feaa 100644
+--- a/nscd/hstcache.c
++++ b/nscd/hstcache.c
+@@ -1,5 +1,5 @@
+ /* Cache handling for host lookup.
+- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+@@ -141,8 +141,9 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req,
+ MSG_NOSIGNAL)) != total)
+ all_written = false;
+
+- /* If we cannot permanently store the result, so be it. */
+- if (__builtin_expect (db->negtimeout == 0, 0))
++ /* If we have a transient error or cannot permanently store
++ the result, so be it. */
++ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c
+index 4ac9942..2019991 100644
+--- a/nscd/initgrcache.c
++++ b/nscd/initgrcache.c
+@@ -1,5 +1,5 @@
+ /* Cache handling for host lookup.
+- Copyright (C) 2004-2006, 2008, 2009, 2011 Free Software Foundation, Inc.
++ Copyright (C) 2004-2006, 2008, 2009, 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
+
+@@ -202,8 +202,9 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
+ written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+ MSG_NOSIGNAL));
+
+- /* If we cannot permanently store the result, so be it. */
+- if (__builtin_expect (db->negtimeout == 0, 0))
++ /* If we have a transient error or cannot permanently store
++ the result, so be it. */
++ if (all_tryagain || __builtin_expect (db->negtimeout == 0, 0))
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c
+index 49e130c..e2ba09d 100644
+--- a/nscd/pwdcache.c
++++ b/nscd/pwdcache.c
+@@ -1,5 +1,5 @@
+ /* Cache handling for passwd lookup.
+- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+@@ -124,8 +124,9 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
+ written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+ MSG_NOSIGNAL));
+
+- /* If we cannot permanently store the result, so be it. */
+- if (__builtin_expect (db->negtimeout == 0, 0))
++ /* If we have a transient error or cannot permanently store
++ the result, so be it. */
++ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+diff --git a/nscd/servicescache.c b/nscd/servicescache.c
+index d3d5dce..a6337e3 100644
+--- a/nscd/servicescache.c
++++ b/nscd/servicescache.c
+@@ -1,5 +1,5 @@
+ /* Cache handling for services lookup.
+- Copyright (C) 2007, 2008, 2009, 2011 Free Software Foundation, Inc.
++ Copyright (C) 2007, 2008, 2009, 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@drepper.com>, 2007.
+
+@@ -108,8 +108,9 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
+ written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+ MSG_NOSIGNAL));
+
+- /* If we cannot permanently store the result, so be it. */
+- if (__builtin_expect (db->negtimeout == 0, 0))
++ /* If we have a transient error or cannot permanently store
++ the result, so be it. */
++ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-non-signalling-comparisons.patch b/multilib-testing/lib32-glibc/glibc-2.15-non-signalling-comparisons.patch
new file mode 100644
index 000000000..874f8b4cb
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-non-signalling-comparisons.patch
@@ -0,0 +1,886 @@
+diff --git a/math/w_acos.c b/math/w_acos.c
+index 3138408..0490933 100644
+--- a/math/w_acos.c
++++ b/math/w_acos.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ double
+ __acos (double x)
+ {
+- if (__builtin_expect (fabs (x) > 1.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabs (x), 1.0), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ /* acos(|x|>1) */
+ feraiseexcept (FE_INVALID);
+diff --git a/math/w_acosf.c b/math/w_acosf.c
+index 0e41a2c..2500a7d 100644
+--- a/math/w_acosf.c
++++ b/math/w_acosf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ float
+ __acosf (float x)
+ {
+- if (__builtin_expect (fabsf (x) > 1.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabsf (x), 1.0f), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ /* acos(|x|>1) */
+ feraiseexcept (FE_INVALID);
+diff --git a/math/w_acosh.c b/math/w_acosh.c
+index 0bd2686..d632987 100644
+--- a/math/w_acosh.c
++++ b/math/w_acosh.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,7 @@
+ double
+ __acosh (double x)
+ {
+- if (__builtin_expect (x < 1.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isless (x, 1.0), 0) && _LIB_VERSION != _IEEE_)
+ /* acosh(x<1) */
+ return __kernel_standard (x, x, 29);
+
+diff --git a/math/w_acoshf.c b/math/w_acoshf.c
+index c59bf94..f77df2b 100644
+--- a/math/w_acoshf.c
++++ b/math/w_acoshf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,7 @@
+ float
+ __acoshf (float x)
+ {
+- if (__builtin_expect (x < 1.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isless (x, 1.0f), 0) && _LIB_VERSION != _IEEE_)
+ /* acosh(x<1) */
+ return __kernel_standard_f (x, x, 129);
+
+diff --git a/math/w_acoshl.c b/math/w_acoshl.c
+index 819bdfc..cc823b8 100644
+--- a/math/w_acoshl.c
++++ b/math/w_acoshl.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,7 @@
+ long double
+ __acoshl (long double x)
+ {
+- if (__builtin_expect (x < 1.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isless (x, 1.0L), 0) && _LIB_VERSION != _IEEE_)
+ /* acosh(x<1) */
+ return __kernel_standard (x, x, 229);
+
+diff --git a/math/w_acosl.c b/math/w_acosl.c
+index 6417068..05023b4 100644
+--- a/math/w_acosl.c
++++ b/math/w_acosl.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ long double
+ __acosl (long double x)
+ {
+- if (__builtin_expect (fabsl (x) > 1.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabsl (x), 1.0L), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ /* acos(|x|>1) */
+ feraiseexcept (FE_INVALID);
+diff --git a/math/w_asin.c b/math/w_asin.c
+index d4e89ce..0fa9487 100644
+--- a/math/w_asin.c
++++ b/math/w_asin.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ double
+ __asin (double x)
+ {
+- if (__builtin_expect (fabs (x) > 1.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabs (x), 1.0), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ /* asin(|x|>1) */
+ feraiseexcept (FE_INVALID);
+diff --git a/math/w_asinf.c b/math/w_asinf.c
+index 270961f..c28edab 100644
+--- a/math/w_asinf.c
++++ b/math/w_asinf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ float
+ __asinf (float x)
+ {
+- if (__builtin_expect (fabsf (x) > 1.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabsf (x), 1.0f), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ /* asin(|x|>1) */
+ feraiseexcept (FE_INVALID);
+diff --git a/math/w_asinl.c b/math/w_asinl.c
+index 32e5273..e4036d8 100644
+--- a/math/w_asinl.c
++++ b/math/w_asinl.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ long double
+ __asinl (long double x)
+ {
+- if (__builtin_expect (fabsl (x) > 1.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabsl (x), 1.0L), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ /* asin(|x|>1) */
+ feraiseexcept (FE_INVALID);
+diff --git a/math/w_atanh.c b/math/w_atanh.c
+index 1022bd5..190d2e9 100644
+--- a/math/w_atanh.c
++++ b/math/w_atanh.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,8 @@
+ double
+ __atanh (double x)
+ {
+- if (__builtin_expect (fabs (x) >= 1.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreaterequal (fabs (x), 1.0), 0)
++ && _LIB_VERSION != _IEEE_)
+ return __kernel_standard (x, x,
+ fabs (x) > 1.0
+ ? 30 /* atanh(|x|>1) */
+diff --git a/math/w_atanhf.c b/math/w_atanhf.c
+index 3c8cf83..e0c5dc3 100644
+--- a/math/w_atanhf.c
++++ b/math/w_atanhf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,8 @@
+ float
+ __atanhf (float x)
+ {
+- if (__builtin_expect (fabsf (x) >= 1.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreaterequal (fabsf (x), 1.0f), 0)
++ && _LIB_VERSION != _IEEE_)
+ return __kernel_standard_f (x, x,
+ fabsf (x) > 1.0f
+ ? 130 /* atanh(|x|>1) */
+diff --git a/math/w_atanhl.c b/math/w_atanhl.c
+index f582acf..319535d 100644
+--- a/math/w_atanhl.c
++++ b/math/w_atanhl.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,8 @@
+ long double
+ __atanhl (long double x)
+ {
+- if (__builtin_expect (fabsl (x) >= 1.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreaterequal (fabsl (x), 1.0L), 0)
++ && _LIB_VERSION != _IEEE_)
+ return __kernel_standard (x, x,
+ fabsl (x) > 1.0L
+ ? 230 /* atanh(|x|>1) */
+diff --git a/math/w_exp2.c b/math/w_exp2.c
+index bf22326..7a3b0af 100644
+--- a/math/w_exp2.c
++++ b/math/w_exp2.c
+@@ -12,7 +12,8 @@ static const double u_threshold = (double) (DBL_MIN_EXP - DBL_MANT_DIG - 1);
+ double
+ __exp2 (double x)
+ {
+- if (__builtin_expect (x <= u_threshold || x > o_threshold, 0)
++ if (__builtin_expect (islessequal (x, u_threshold)
++ || isgreater (x, o_threshold), 0)
+ && _LIB_VERSION != _IEEE_ && __finite (x))
+ /* exp2 overflow: 44, exp2 underflow: 45 */
+ return __kernel_standard (x, x, 44 + (x <= o_threshold));
+diff --git a/math/w_exp2f.c b/math/w_exp2f.c
+index 7215fca..c4e9e94 100644
+--- a/math/w_exp2f.c
++++ b/math/w_exp2f.c
+@@ -12,7 +12,8 @@ static const float u_threshold = (float) (FLT_MIN_EXP - FLT_MANT_DIG - 1);
+ float
+ __exp2f (float x)
+ {
+- if (__builtin_expect (x <= u_threshold || x > o_threshold, 0)
++ if (__builtin_expect (islessequal (x, u_threshold)
++ || isgreater (x, o_threshold), 0)
+ && _LIB_VERSION != _IEEE_ && __finitef (x))
+ /* exp2 overflow: 144, exp2 underflow: 145 */
+ return __kernel_standard_f (x, x, 144 + (x <= o_threshold));
+diff --git a/math/w_exp2l.c b/math/w_exp2l.c
+index ac8d231..442a637 100644
+--- a/math/w_exp2l.c
++++ b/math/w_exp2l.c
+@@ -13,7 +13,8 @@ static const long double u_threshold
+ long double
+ __exp2l (long double x)
+ {
+- if (__builtin_expect (x <= u_threshold || x > o_threshold, 0)
++ if (__builtin_expect (islessequal (x, u_threshold)
++ || isgreater (x, o_threshold), 0)
+ && _LIB_VERSION != _IEEE_ && __finitel (x))
+ /* exp2 overflow: 244, exp2 underflow: 245 */
+ return __kernel_standard (x, x, 244 + (x <= o_threshold));
+diff --git a/math/w_j0.c b/math/w_j0.c
+index 1dff8b4..f8d3724 100644
+--- a/math/w_j0.c
++++ b/math/w_j0.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ double
+ j0 (double x)
+ {
+- if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ /* j0(|x|>X_TLOSS) */
+ return __kernel_standard (x, x, 34);
+
+@@ -40,7 +41,8 @@ strong_alias (j0, j0l)
+ double
+ y0 (double x)
+ {
+- if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0)
+ {
+diff --git a/math/w_j0f.c b/math/w_j0f.c
+index fc52f26..cef36aa 100644
+--- a/math/w_j0f.c
++++ b/math/w_j0f.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ float
+ j0f (float x)
+ {
+- if (__builtin_expect (fabsf (x) > (float) X_TLOSS, 0)
++ if (__builtin_expect (isgreater (fabsf (x), (float) X_TLOSS), 0)
+ && _LIB_VERSION != _IEEE_)
+ /* j0(|x|>X_TLOSS) */
+ return __kernel_standard_f (x, x, 134);
+@@ -38,7 +38,8 @@ j0f (float x)
+ float
+ y0f (float x)
+ {
+- if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0)
++ if (__builtin_expect (islessequal (x, 0.0f)
++ || isgreater (x, (float) X_TLOSS), 0)
+ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0f)
+diff --git a/math/w_j0l.c b/math/w_j0l.c
+index 8d72d50..144f33c 100644
+--- a/math/w_j0l.c
++++ b/math/w_j0l.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ long double
+ __j0l (long double x)
+ {
+- if (__builtin_expect (fabsl (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabsl (x), X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ /* j0(|x|>X_TLOSS) */
+ return __kernel_standard (x, x, 234);
+
+@@ -38,7 +39,8 @@ weak_alias (__j0l, j0l)
+ long double
+ __y0l (long double x)
+ {
+- if (__builtin_expect (x <= 0.0L || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0L) || isgreater (x, X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0L)
+ {
+diff --git a/math/w_j1.c b/math/w_j1.c
+index 358e0e1..e9a5357 100644
+--- a/math/w_j1.c
++++ b/math/w_j1.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ double
+ j1 (double x)
+ {
+- if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ /* j1(|x|>X_TLOSS) */
+ return __kernel_standard (x, x, 36);
+
+@@ -40,7 +41,8 @@ strong_alias (j1, j1l)
+ double
+ y1 (double x)
+ {
+- if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0)
+ {
+diff --git a/math/w_j1f.c b/math/w_j1f.c
+index 096fdf5..29bd949 100644
+--- a/math/w_j1f.c
++++ b/math/w_j1f.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ float
+ j1f (float x)
+ {
+- if (__builtin_expect (fabsf (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabsf (x), X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ /* j1(|x|>X_TLOSS) */
+ return __kernel_standard_f (x, x, 136);
+
+@@ -37,7 +38,8 @@ j1f (float x)
+ float
+ y1f (float x)
+ {
+- if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0)
++ if (__builtin_expect (islessequal (x, 0.0f)
++ || isgreater (x, (float) X_TLOSS), 0)
+ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0f)
+diff --git a/math/w_j1l.c b/math/w_j1l.c
+index 93e4ee4..01b8551 100644
+--- a/math/w_j1l.c
++++ b/math/w_j1l.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ long double
+ __j1l (long double x)
+ {
+- if (__builtin_expect (fabsl (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabsl (x), X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ /* j1(|x|>X_TLOSS) */
+ return __kernel_standard (x, x, 236);
+
+@@ -38,7 +39,8 @@ weak_alias (__j1l, j1l)
+ long double
+ __y1l (long double x)
+ {
+- if (__builtin_expect (x <= 0.0L || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0L) || isgreater (x, X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0L)
+ {
+diff --git a/math/w_jn.c b/math/w_jn.c
+index f0dd8c6..fd3fb16 100644
+--- a/math/w_jn.c
++++ b/math/w_jn.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ double
+ jn (int n, double x)
+ {
+- if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ /* jn(n,|x|>X_TLOSS) */
+ return __kernel_standard (n, x, 38);
+
+@@ -40,7 +41,8 @@ strong_alias (jn, jnl)
+ double
+ yn (int n, double x)
+ {
+- if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0)
+ {
+diff --git a/math/w_jnf.c b/math/w_jnf.c
+index ef29eb4..36d6f6d 100644
+--- a/math/w_jnf.c
++++ b/math/w_jnf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ float
+ jnf (int n, float x)
+ {
+- if (__builtin_expect (fabsf (x) > (float) X_TLOSS, 0)
++ if (__builtin_expect (isgreater (fabsf (x), (float) X_TLOSS), 0)
+ && _LIB_VERSION != _IEEE_)
+ /* jn(n,|x|>X_TLOSS) */
+ return __kernel_standard_f (n, x, 138);
+@@ -38,7 +38,8 @@ jnf (int n, float x)
+ float
+ ynf (int n, float x)
+ {
+- if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0)
++ if (__builtin_expect (islessequal (x, 0.0f)
++ || isgreater (x, (float) X_TLOSS), 0)
+ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0f)
+diff --git a/math/w_log.c b/math/w_log.c
+index efc1c4c..ec33605 100644
+--- a/math/w_log.c
++++ b/math/w_log.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ double
+ __log (double x)
+ {
+- if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0)
+ {
+diff --git a/math/w_log10.c b/math/w_log10.c
+index 2717ade..fe799ad 100644
+--- a/math/w_log10.c
++++ b/math/w_log10.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ double
+ __log10 (double x)
+ {
+- if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0)
+ {
+diff --git a/math/w_log10f.c b/math/w_log10f.c
+index 60737ca..4b821f7 100644
+--- a/math/w_log10f.c
++++ b/math/w_log10f.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ float
+ __log10f (float x)
+ {
+- if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0f)
+ {
+diff --git a/math/w_log10l.c b/math/w_log10l.c
+index b26f18c..0e5a137 100644
+--- a/math/w_log10l.c
++++ b/math/w_log10l.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ long double
+ __log10l (long double x)
+ {
+- if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0L)
+ {
+diff --git a/math/w_log2.c b/math/w_log2.c
+index 998e5d9..e58e109 100644
+--- a/math/w_log2.c
++++ b/math/w_log2.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ double
+ __log2 (double x)
+ {
+- if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0)
+ {
+diff --git a/math/w_log2f.c b/math/w_log2f.c
+index 6d91bf4..6963ed2 100644
+--- a/math/w_log2f.c
++++ b/math/w_log2f.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ float
+ __log2f (float x)
+ {
+- if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0)
+ {
+diff --git a/math/w_log2l.c b/math/w_log2l.c
+index e51c1bc..eed04ff6c 100644
+--- a/math/w_log2l.c
++++ b/math/w_log2l.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ long double
+ __log2l (long double x)
+ {
+- if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0L)
+ {
+diff --git a/math/w_logf.c b/math/w_logf.c
+index 8aa27c8..38d408f 100644
+--- a/math/w_logf.c
++++ b/math/w_logf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ float
+ __logf (float x)
+ {
+- if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0f)
+ {
+diff --git a/math/w_logl.c b/math/w_logl.c
+index a3139ff..593b37d 100644
+--- a/math/w_logl.c
++++ b/math/w_logl.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ long double
+ __logl (long double x)
+ {
+- if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0L)
+ {
+diff --git a/math/w_sqrt.c b/math/w_sqrt.c
+index 409a6df..f6ba542 100644
+--- a/math/w_sqrt.c
++++ b/math/w_sqrt.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,7 @@
+ double
+ __sqrt (double x)
+ {
+- if (__builtin_expect (x < 0.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isless (x, 0.0), 0) && _LIB_VERSION != _IEEE_)
+ return __kernel_standard (x, x, 26); /* sqrt(negative) */
+
+ return __ieee754_sqrt (x);
+diff --git a/math/w_sqrtf.c b/math/w_sqrtf.c
+index 3c3d2f8..c128e9b 100644
+--- a/math/w_sqrtf.c
++++ b/math/w_sqrtf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,7 @@
+ float
+ __sqrtf (float x)
+ {
+- if (__builtin_expect (x < 0.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isless (x, 0.0f), 0) && _LIB_VERSION != _IEEE_)
+ return __kernel_standard_f (x, x, 126); /* sqrt(negative) */
+
+ return __ieee754_sqrtf (x);
+diff --git a/math/w_sqrtl.c b/math/w_sqrtl.c
+index 5e18f44..2a4a048 100644
+--- a/math/w_sqrtl.c
++++ b/math/w_sqrtl.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,7 @@
+ long double
+ __sqrtl (long double x)
+ {
+- if (__builtin_expect (x < 0.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isless (x, 0.0L), 0) && _LIB_VERSION != _IEEE_)
+ return __kernel_standard (x, x, 226); /* sqrt(negative) */
+
+ return __ieee754_sqrtl (x);
+diff --git a/sysdeps/ieee754/dbl-64/e_atanh.c b/sysdeps/ieee754/dbl-64/e_atanh.c
+index 9fc21ab..5f471b1 100644
+--- a/sysdeps/ieee754/dbl-64/e_atanh.c
++++ b/sysdeps/ieee754/dbl-64/e_atanh.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -46,7 +46,7 @@ __ieee754_atanh (double x)
+ {
+ double xa = fabs (x);
+ double t;
+- if (xa < 0.5)
++ if (isless (xa, 0.5))
+ {
+ if (__builtin_expect (xa < 0x1.0p-28, 0))
+ {
+@@ -57,11 +57,11 @@ __ieee754_atanh (double x)
+ t = xa + xa;
+ t = 0.5 * __log1p (t + t * xa / (1.0 - xa));
+ }
+- else if (__builtin_expect (xa < 1.0, 1))
++ else if (__builtin_expect (isless (xa, 1.0), 1))
+ t = 0.5 * __log1p ((xa + xa) / (1.0 - xa));
+ else
+ {
+- if (xa > 1.0)
++ if (isgreater (xa, 1.0))
+ return (x - x) / (x - x);
+
+ return x / 0.0;
+diff --git a/sysdeps/ieee754/dbl-64/w_exp.c b/sysdeps/ieee754/dbl-64/w_exp.c
+index ee42587..b584ed8 100644
+--- a/sysdeps/ieee754/dbl-64/w_exp.c
++++ b/sysdeps/ieee754/dbl-64/w_exp.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -28,12 +28,12 @@ u_threshold= -7.45133219101941108420e+02; /* 0xc0874910, 0xD52D3051 */
+ double
+ __exp (double x)
+ {
+- if (__builtin_expect (x > o_threshold, 0))
++ if (__builtin_expect (isgreater (x, o_threshold), 0))
+ {
+ if (_LIB_VERSION != _IEEE_)
+ return __kernel_standard_f (x, x, 6);
+ }
+- else if (__builtin_expect (x < u_threshold, 0))
++ else if (__builtin_expect (isless (x, u_threshold), 0))
+ {
+ if (_LIB_VERSION != _IEEE_)
+ return __kernel_standard_f (x, x, 7);
+diff --git a/sysdeps/ieee754/flt-32/e_atanhf.c b/sysdeps/ieee754/flt-32/e_atanhf.c
+index 75ed691..7af2f6c 100644
+--- a/sysdeps/ieee754/flt-32/e_atanhf.c
++++ b/sysdeps/ieee754/flt-32/e_atanhf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -46,7 +46,7 @@ __ieee754_atanhf (float x)
+ {
+ float xa = fabsf (x);
+ float t;
+- if (xa < 0.5f)
++ if (isless (xa, 0.5f))
+ {
+ if (__builtin_expect (xa < 0x1.0p-28f, 0))
+ {
+@@ -57,11 +57,11 @@ __ieee754_atanhf (float x)
+ t = xa + xa;
+ t = 0.5f * __log1pf (t + t * xa / (1.0f - xa));
+ }
+- else if (__builtin_expect (xa < 1.0f, 1))
++ else if (__builtin_expect (isless (xa, 1.0f), 1))
+ t = 0.5f * __log1pf ((xa + xa) / (1.0f - xa));
+ else
+ {
+- if (xa > 1.0f)
++ if (isgreater (xa, 1.0f))
+ return (x - x) / (x - x);
+
+ return x / 0.0f;
+diff --git a/sysdeps/ieee754/flt-32/w_expf.c b/sysdeps/ieee754/flt-32/w_expf.c
+index 5500872..bc3b2f6 100644
+--- a/sysdeps/ieee754/flt-32/w_expf.c
++++ b/sysdeps/ieee754/flt-32/w_expf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -28,12 +28,12 @@ u_threshold= -1.0397208405e+02; /* 0xc2cff1b5 */
+ float
+ __expf (float x)
+ {
+- if (__builtin_expect (x > o_threshold, 0))
++ if (__builtin_expect (isgreater (x, o_threshold), 0))
+ {
+ if (_LIB_VERSION != _IEEE_)
+ return __kernel_standard_f (x, x, 106);
+ }
+- else if (__builtin_expect (x < u_threshold, 0))
++ else if (__builtin_expect (isless (x, u_threshold), 0))
+ {
+ if (_LIB_VERSION != _IEEE_)
+ return __kernel_standard_f (x, x, 107);
+diff --git a/sysdeps/ieee754/ldbl-96/w_expl.c b/sysdeps/ieee754/ldbl-96/w_expl.c
+index ec9d8a7..d61c0a3 100644
+--- a/sysdeps/ieee754/ldbl-96/w_expl.c
++++ b/sysdeps/ieee754/ldbl-96/w_expl.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -30,12 +30,12 @@ u_threshold= -1.140019167866942050398521670162263001513e4;
+ long double
+ __expl (long double x)
+ {
+- if (__builtin_expect (x > o_threshold, 0))
++ if (__builtin_expect (isgreater (x, o_threshold), 0))
+ {
+ if (_LIB_VERSION != _IEEE_)
+ return __kernel_standard (x, x, 206);
+ }
+- else if (__builtin_expect (x < u_threshold, 0))
++ else if (__builtin_expect (isless (x, u_threshold), 0))
+ {
+ if (_LIB_VERSION != _IEEE_)
+ return __kernel_standard (x, x, 207);
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-regex.patch b/multilib-testing/lib32-glibc/glibc-2.15-regex.patch
new file mode 100644
index 000000000..6385f2c08
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-regex.patch
@@ -0,0 +1,16 @@
+diff --git a/posix/regex_internal.c b/posix/regex_internal.c
+index bc19243..124f8cc 100644
+--- a/posix/regex_internal.c
++++ b/posix/regex_internal.c
+@@ -868,7 +868,7 @@ re_string_peek_byte_case (const re_string_t *pstr, int idx)
+ }
+
+ static unsigned char
+-internal_function __attribute ((pure))
++internal_function
+ re_string_fetch_byte_case (re_string_t *pstr)
+ {
+ if (BE (!pstr->mbs_allocated, 1))
+--
+1.7.3.4
+
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-revert-c5a0802a.patch b/multilib-testing/lib32-glibc/glibc-2.15-revert-c5a0802a.patch
new file mode 100644
index 000000000..f532b95e8
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-revert-c5a0802a.patch
@@ -0,0 +1,229 @@
+diff -rup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:12.937212834 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:42.104222278 +0000
+@@ -137,7 +137,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
+@@ -151,9 +150,6 @@ __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. */
+ cmpl $-ENOSYS, %eax
+@@ -398,78 +394,6 @@ __pthread_cond_wait:
+ #endif
+ 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)
+@@ -642,10 +566,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
+Only in b/nptl/sysdeps/unix/sysv/linux/i386/i486: pthread_cond_wait.S.orig
+diff -rup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:04:12.941212837 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:05:05.155229737 +0000
+@@ -23,7 +23,6 @@
+ #include <lowlevelcond.h>
+ #include <tcb-offsets.h>
+ #include <pthread-pi-defines.h>
+-#include <pthread-errnos.h>
+
+ #include <kernel-features.h>
+
+@@ -137,14 +136,11 @@ __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
+ #ifdef __ASSUME_REQUEUE_PI
+ jmp 62f
+ #else
+@@ -331,70 +327,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
+- cmpq $-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
+- cmpq $-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
+- movq dep_mutex(%rdi), %r8
+- 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,15 +479,11 @@ __condvar_cleanup1:
+ .uleb128 .LcleanupSTART-.LSTARTCODE
+ .uleb128 .LcleanupEND-.LcleanupSTART
+ .uleb128 __condvar_cleanup1-.LSTARTCODE
+- .uleb128 0
+- .uleb128 .LcleanupSTART2-.LSTARTCODE
+- .uleb128 .LcleanupEND2-.LcleanupSTART2
+- .uleb128 __condvar_cleanup1-.LSTARTCODE
+- .uleb128 0
++ .uleb128 0
+ .uleb128 .LcallUR-.LSTARTCODE
+ .uleb128 .LENDCODE-.LcallUR
+ .uleb128 0
+- .uleb128 0
++ .uleb128 0
+ .Lcstend:
+
+
+Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.orig
+Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.rej
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-revert-netlink-cache.patch b/multilib-testing/lib32-glibc/glibc-2.15-revert-netlink-cache.patch
new file mode 100644
index 000000000..87d04c794
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-revert-netlink-cache.patch
@@ -0,0 +1,680 @@
+diff --git a/include/ifaddrs.h b/include/ifaddrs.h
+index e1c6cac..50e4c48 100644
+--- a/include/ifaddrs.h
++++ b/include/ifaddrs.h
+@@ -21,13 +21,8 @@ struct in6addrinfo
+ extern void __check_pf (bool *seen_ipv4, bool *seen_ipv6,
+ struct in6addrinfo **in6ai, size_t *in6ailen)
+ attribute_hidden;
+-extern void __free_in6ai (struct in6addrinfo *in6ai) attribute_hidden;
+ extern void __check_native (uint32_t a1_index, int *a1_native,
+ uint32_t a2_index, int *a2_native)
+ attribute_hidden;
+
+-#ifdef IS_IN_nscd
+-extern uint32_t __bump_nl_timestamp (void) attribute_hidden;
+-#endif
+-
+ #endif /* ifaddrs.h */
+diff --git a/inet/check_pf.c b/inet/check_pf.c
+index 0fa34cc..b015432 100644
+--- a/inet/check_pf.c
++++ b/inet/check_pf.c
+@@ -1,5 +1,5 @@
+ /* Determine protocol families for which interfaces exist. Generic version.
+- Copyright (C) 2003, 2006, 2011 Free Software Foundation, Inc.
++ Copyright (C) 2003, 2006 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
+@@ -54,19 +54,3 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6,
+
+ (void) freeifaddrs (ifa);
+ }
+-
+-
+-void
+-__free_in6ai (struct in6addrinfo *in6ai)
+-{
+- /* Nothing to do. */
+-}
+-
+-
+-#ifdef IS_IN_nscd
+-uint32_t
+-__bump_nl_timestamp (void)
+-{
+- return 0;
+-}
+-#endif
+diff --git a/nscd/connections.c b/nscd/connections.c
+index c741996..2b5c7ef 100644
+--- a/nscd/connections.c
++++ b/nscd/connections.c
+@@ -24,7 +24,6 @@
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <grp.h>
+-#include <ifaddrs.h>
+ #include <libintl.h>
+ #include <pthread.h>
+ #include <pwd.h>
+@@ -33,10 +32,6 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <arpa/inet.h>
+-#ifdef HAVE_NETLINK
+-# include <linux/netlink.h>
+-# include <linux/rtnetlink.h>
+-#endif
+ #ifdef HAVE_EPOLL
+ # include <sys/epoll.h>
+ #endif
+@@ -252,11 +247,6 @@ static int sock;
+ int inotify_fd = -1;
+ #endif
+
+-#ifdef HAVE_NETLINK
+-/* Descriptor for netlink status updates. */
+-static int nl_status_fd = -1;
+-#endif
+-
+ #ifndef __ASSUME_SOCK_CLOEXEC
+ /* Negative if SOCK_CLOEXEC is not supported, positive if it is, zero
+ before be know the result. */
+@@ -913,65 +903,6 @@ cannot set socket to close on exec: %s; disabling paranoia mode"),
+ exit (1);
+ }
+
+-#ifdef HAVE_NETLINK
+- if (dbs[hstdb].enabled)
+- {
+- /* Try to open netlink socket to monitor network setting changes. */
+- nl_status_fd = socket (AF_NETLINK,
+- SOCK_RAW | SOCK_CLOEXEC | SOCK_NONBLOCK,
+- NETLINK_ROUTE);
+- if (nl_status_fd != -1)
+- {
+- struct sockaddr_nl snl;
+- memset (&snl, '\0', sizeof (snl));
+- snl.nl_family = AF_NETLINK;
+- /* XXX Is this the best set to use? */
+- snl.nl_groups = (RTMGRP_IPV4_IFADDR | RTMGRP_TC | RTMGRP_IPV4_MROUTE
+- | RTMGRP_IPV4_ROUTE | RTMGRP_IPV4_RULE
+- | RTMGRP_IPV6_IFADDR | RTMGRP_IPV6_MROUTE
+- | RTMGRP_IPV6_ROUTE | RTMGRP_IPV6_IFINFO
+- | RTMGRP_IPV6_PREFIX);
+-
+- if (bind (nl_status_fd, (struct sockaddr *) &snl, sizeof (snl)) != 0)
+- {
+- close (nl_status_fd);
+- nl_status_fd = -1;
+- }
+- else
+- {
+- /* Start the timestamp process. */
+- dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]
+- = __bump_nl_timestamp ();
+-
+-# ifndef __ASSUME_SOCK_CLOEXEC
+- if (have_sock_cloexec < 0)
+- {
+- /* We don't want to get stuck on accept. */
+- int fl = fcntl (nl_status_fd, F_GETFL);
+- if (fl == -1
+- || fcntl (nl_status_fd, F_SETFL, fl | O_NONBLOCK) == -1)
+- {
+- dbg_log (_("\
+-cannot change socket to nonblocking mode: %s"),
+- strerror (errno));
+- exit (1);
+- }
+-
+- /* The descriptor needs to be closed on exec. */
+- if (paranoia
+- && fcntl (nl_status_fd, F_SETFD, FD_CLOEXEC) == -1)
+- {
+- dbg_log (_("cannot set socket to close on exec: %s"),
+- strerror (errno));
+- exit (1);
+- }
+- }
+-# endif
+- }
+- }
+- }
+-#endif
+-
+ /* Change to unprivileged uid/gid/groups if specified in config file */
+ if (server_user != NULL)
+ finish_drop_privileges ();
+@@ -1895,18 +1826,6 @@ main_loop_poll (void)
+ }
+ #endif
+
+-#ifdef HAVE_NETLINK
+- size_t idx_nl_status_fd = 0;
+- if (nl_status_fd != -1)
+- {
+- idx_nl_status_fd = nused;
+- conns[nused].fd = nl_status_fd;
+- conns[nused].events = POLLRDNORM;
+- ++nused;
+- firstfree = nused;
+- }
+-#endif
+-
+ while (1)
+ {
+ /* Wait for any event. We wait at most a couple of seconds so
+@@ -2049,20 +1968,6 @@ disabled inotify after read error %d"),
+ }
+ #endif
+
+-#ifdef HAVE_NETLINK
+- if (idx_nl_status_fd != 0 && conns[idx_nl_status_fd].revents != 0)
+- {
+- char buf[4096];
+- /* Read all the data. We do not interpret it here. */
+- while (TEMP_FAILURE_RETRY (read (nl_status_fd, buf,
+- sizeof (buf))) != -1)
+- ;
+-
+- dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]
+- = __bump_nl_timestamp ();
+- }
+-#endif
+-
+ for (size_t cnt = first; cnt < nused && n > 0; ++cnt)
+ if (conns[cnt].revents != 0)
+ {
+@@ -2141,17 +2046,6 @@ main_loop_epoll (int efd)
+ }
+ # endif
+
+-# ifdef HAVE_NETLINK
+- if (nl_status_fd != -1)
+- {
+- ev.events = EPOLLRDNORM;
+- ev.data.fd = nl_status_fd;
+- if (epoll_ctl (efd, EPOLL_CTL_ADD, nl_status_fd, &ev) == -1)
+- /* We cannot use epoll. */
+- return;
+- }
+-# endif
+-
+ while (1)
+ {
+ struct epoll_event revs[100];
+@@ -2268,18 +2162,6 @@ main_loop_epoll (int efd)
+ }
+ }
+ # endif
+-# ifdef HAVE_NETLINK
+- else if (revs[cnt].data.fd == nl_status_fd)
+- {
+- char buf[4096];
+- /* Read all the data. We do not interpret it here. */
+- while (TEMP_FAILURE_RETRY (read (nl_status_fd, buf,
+- sizeof (buf))) != -1)
+- ;
+-
+- __bump_nl_timestamp ();
+- }
+-# endif
+ else
+ {
+ /* Remove the descriptor from the epoll descriptor. */
+@@ -2303,7 +2185,6 @@ main_loop_epoll (int efd)
+ time_t laststart = now - ACCEPT_TIMEOUT;
+ assert (starttime[sock] == 0);
+ assert (inotify_fd == -1 || starttime[inotify_fd] == 0);
+- assert (nl_status_fd == -1 || starttime[nl_status_fd] == 0);
+ for (int cnt = highest; cnt > STDERR_FILENO; --cnt)
+ if (starttime[cnt] != 0 && starttime[cnt] < laststart)
+ {
+diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h
+index b5cd2d2..caad26a 100644
+--- a/nscd/nscd-client.h
++++ b/nscd/nscd-client.h
+@@ -260,17 +260,12 @@ struct hashentry
+
+
+ /* Current persistent database version. */
+-#define DB_VERSION 2
++#define DB_VERSION 1
+
+ /* Maximum time allowed between updates of the timestamp. */
+ #define MAPPING_TIMEOUT (5 * 60)
+
+
+-/* Used indices for the EXTRA_DATA element of 'database_pers_head'.
+- Each database has its own indices. */
+-#define NSCD_HST_IDX_CONF_TIMESTAMP 0
+-
+-
+ /* Header of persistent database file. */
+ struct database_pers_head
+ {
+@@ -279,8 +274,6 @@ struct database_pers_head
+ volatile int32_t gc_cycle;
+ volatile int32_t nscd_certainly_running;
+ volatile nscd_time_t timestamp;
+- /* Room for extensions. */
+- volatile uint32_t extra_data[4];
+
+ nscd_ssize_t module;
+ nscd_ssize_t data_size;
+@@ -329,12 +322,6 @@ extern int __nscd_open_socket (const char *key, size_t keylen,
+ request_type type, void *response,
+ size_t responselen) attribute_hidden;
+
+-/* Try to get a file descriptor for the shared meory segment
+- containing the database. */
+-extern struct mapped_database *__nscd_get_mapping (request_type type,
+- const char *key,
+- struct mapped_database **mappedp) attribute_hidden;
+-
+ /* Get reference of mapping. */
+ extern struct mapped_database *__nscd_get_map_ref (request_type type,
+ const char *name,
+@@ -384,7 +371,4 @@ extern ssize_t writeall (int fd, const void *buf, size_t len)
+ extern ssize_t sendfileall (int tofd, int fromfd, off_t off, size_t len)
+ attribute_hidden;
+
+-/* Get netlink timestamp counter from mapped area or zero. */
+-extern uint32_t __nscd_get_nl_timestamp (void);
+-
+ #endif /* nscd.h */
+diff --git a/nscd/nscd_gethst_r.c b/nscd/nscd_gethst_r.c
+index 6ee142d..70631fa 100644
+--- a/nscd/nscd_gethst_r.c
++++ b/nscd/nscd_gethst_r.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009, 2011
++/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009
+ Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+@@ -98,27 +98,6 @@ libc_freeres_fn (hst_map_free)
+ }
+
+
+-uint32_t
+-__nscd_get_nl_timestamp (void)
+-{
+- if (__nss_not_use_nscd_hosts != 0)
+- return 0;
+-
+- struct mapped_database *map = __hst_map_handle.mapped;
+-
+- if (map == NULL
+- || (map != NO_MAPPING
+- && map->head->nscd_certainly_running == 0
+- && map->head->timestamp + MAPPING_TIMEOUT < time (NULL)))
+- map = __nscd_get_mapping (GETFDHST, "hosts", &__hst_map_handle.mapped);
+-
+- if (map == NO_MAPPING)
+- return 0;
+-
+- return map->head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP];
+-}
+-
+-
+ int __nss_have_localdomain attribute_hidden;
+
+ static int
+diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c
+index 365b599..fe63f9a 100644
+--- a/nscd/nscd_helper.c
++++ b/nscd/nscd_helper.c
+@@ -277,9 +277,9 @@ __nscd_unmap (struct mapped_database *mapped)
+
+ /* Try to get a file descriptor for the shared meory segment
+ containing the database. */
+-struct mapped_database *
+-__nscd_get_mapping (request_type type, const char *key,
+- struct mapped_database **mappedp)
++static struct mapped_database *
++get_mapping (request_type type, const char *key,
++ struct mapped_database **mappedp)
+ {
+ struct mapped_database *result = NO_MAPPING;
+ #ifdef SCM_RIGHTS
+@@ -449,8 +449,8 @@ __nscd_get_map_ref (request_type type, const char *name,
+ || (cur->head->nscd_certainly_running == 0
+ && cur->head->timestamp + MAPPING_TIMEOUT < time (NULL))
+ || cur->head->data_size > cur->datasize)
+- cur = __nscd_get_mapping (type, name,
+- (struct mapped_database **) &mapptr->mapped);
++ cur = get_mapping (type, name,
++ (struct mapped_database **) &mapptr->mapped);
+
+ if (__builtin_expect (cur != NO_MAPPING, 1))
+ {
+diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
+index 1a023f9..4979805 100644
+--- a/sysdeps/posix/getaddrinfo.c
++++ b/sysdeps/posix/getaddrinfo.c
+@@ -2386,7 +2386,7 @@ getaddrinfo (const char *name, const char *service,
+ || (hints->ai_family == PF_INET6 && ! seen_ipv6))
+ {
+ /* We cannot possibly return a valid answer. */
+- __free_in6ai (in6ai);
++ free (in6ai);
+ return EAI_NONAME;
+ }
+ }
+@@ -2400,7 +2400,7 @@ getaddrinfo (const char *name, const char *service,
+ {
+ if (hints->ai_flags & AI_NUMERICSERV)
+ {
+- __free_in6ai (in6ai);
++ free (in6ai);
+ return EAI_NONAME;
+ }
+
+@@ -2422,7 +2422,7 @@ getaddrinfo (const char *name, const char *service,
+ if (last_i != 0)
+ {
+ freeaddrinfo (p);
+- __free_in6ai (in6ai);
++ free (in6ai);
+
+ return -(last_i & GAIH_EAI);
+ }
+@@ -2434,7 +2434,7 @@ getaddrinfo (const char *name, const char *service,
+ }
+ else
+ {
+- __free_in6ai (in6ai);
++ free (in6ai);
+ return EAI_FAMILY;
+ }
+
+@@ -2622,7 +2622,7 @@ getaddrinfo (const char *name, const char *service,
+ p->ai_canonname = canonname;
+ }
+
+- __free_in6ai (in6ai);
++ free (in6ai);
+
+ if (p)
+ {
+diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
+index e684b16..c907af4 100644
+--- a/sysdeps/unix/sysv/linux/Makefile
++++ b/sysdeps/unix/sysv/linux/Makefile
+@@ -173,6 +173,6 @@ CFLAGS-mq_receive.c += -fexceptions
+ endif
+
+ ifeq ($(subdir),nscd)
+-sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY -DHAVE_NETLINK
++sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY
+ CFLAGS-gai.c += -DNEED_NETLINK
+ endif
+diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c
+index 0738a70..d5ad7ea 100644
+--- a/sysdeps/unix/sysv/linux/check_pf.c
++++ b/sysdeps/unix/sysv/linux/check_pf.c
+@@ -1,5 +1,5 @@
+ /* Determine protocol families for which interfaces exist. Linux version.
+- Copyright (C) 2003, 2006-2008, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 2003, 2006, 2007, 2008, 2010, 2011 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
+@@ -33,9 +33,6 @@
+
+ #include <not-cancel.h>
+ #include <kernel-features.h>
+-#include <bits/libc-lock.h>
+-#include <atomic.h>
+-#include <nscd/nscd-client.h>
+
+
+ #ifndef IFA_F_HOMEADDRESS
+@@ -46,42 +43,9 @@
+ #endif
+
+
+-struct cached_data
+-{
+- uint32_t timestamp;
+- uint32_t usecnt;
+- bool seen_ipv4;
+- bool seen_ipv6;
+- size_t in6ailen;
+- struct in6addrinfo in6ai[0];
+-};
+-
+-static struct cached_data noai6ai_cached =
+- {
+- .usecnt = 1, /* Make sure we never try to delete this entry. */
+- .in6ailen = 0
+- };
+-
+-static struct cached_data *cache;
+-__libc_lock_define_initialized (static, lock);
+-
+-
+-#ifdef IS_IN_nscd
+-static uint32_t nl_timestamp;
+-
+-uint32_t
+-__bump_nl_timestamp (void)
+-{
+- if (atomic_increment_val (&nl_timestamp) == 0)
+- atomic_increment (&nl_timestamp);
+-
+- return nl_timestamp;
+-}
+-#endif
+-
+-
+-static struct cached_data *
+-make_request (int fd, pid_t pid)
++static int
++make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6,
++ struct in6addrinfo **in6ai, size_t *in6ailen)
+ {
+ struct req
+ {
+@@ -135,6 +99,9 @@ make_request (int fd, pid_t pid)
+ sizeof (nladdr))) < 0)
+ goto out_fail;
+
++ *seen_ipv4 = false;
++ *seen_ipv6 = false;
++
+ bool done = false;
+ struct in6ailist
+ {
+@@ -142,8 +109,6 @@ make_request (int fd, pid_t pid)
+ struct in6ailist *next;
+ } *in6ailist = NULL;
+ size_t in6ailistlen = 0;
+- bool seen_ipv4 = false;
+- bool seen_ipv6 = false;
+
+ do
+ {
+@@ -207,12 +172,12 @@ make_request (int fd, pid_t pid)
+ {
+ if (*(const in_addr_t *) address
+ != htonl (INADDR_LOOPBACK))
+- seen_ipv4 = true;
++ *seen_ipv4 = true;
+ }
+ else
+ {
+ if (!IN6_IS_ADDR_LOOPBACK (address))
+- seen_ipv6 = true;
++ *seen_ipv6 = true;
+ }
+ }
+
+@@ -246,47 +211,30 @@ make_request (int fd, pid_t pid)
+ }
+ while (! done);
+
+- struct cached_data *result;
+- if (seen_ipv6 && in6ailist != NULL)
++ if (*seen_ipv6 && in6ailist != NULL)
+ {
+- result = malloc (sizeof (*result)
+- + in6ailistlen * sizeof (struct in6addrinfo));
+- if (result == NULL)
++ *in6ai = malloc (in6ailistlen * sizeof (**in6ai));
++ if (*in6ai == NULL)
+ goto out_fail;
+
+-#ifdef IS_IN_nscd
+- result->timestamp = nl_timestamp;
+-#else
+- result->timestamp = __nscd_get_nl_timestamp ();
+-#endif
+- result->usecnt = 2;
+- result->seen_ipv4 = seen_ipv4;
+- result->seen_ipv6 = true;
+- result->in6ailen = in6ailistlen;
++ *in6ailen = in6ailistlen;
+
+ do
+ {
+- result->in6ai[--in6ailistlen] = in6ailist->info;
++ (*in6ai)[--in6ailistlen] = in6ailist->info;
+ in6ailist = in6ailist->next;
+ }
+ while (in6ailist != NULL);
+ }
+- else
+- {
+- atomic_add (&noai6ai_cached.usecnt, 2);
+- noai6ai_cached.seen_ipv4 = seen_ipv4;
+- noai6ai_cached.seen_ipv6 = seen_ipv6;
+- result = &noai6ai_cached;
+- }
+
+ if (use_malloc)
+ free (buf);
+- return result;
++ return 0;
+
+ out_fail:
+ if (use_malloc)
+ free (buf);
+- return NULL;
++ return -1;
+ }
+
+
+@@ -310,65 +258,28 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6,
+
+ if (! __no_netlink_support)
+ {
+- struct cached_data *olddata = NULL;
+- struct cached_data *data = NULL;
++ int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
+
+- __libc_lock_lock (lock);
+-
+-#ifdef IS_IN_nscd
+-# define cache_valid() nl_timestamp != 0 && cache->timestamp == nl_timestamp
+-#else
+-# define cache_valid() \
+- ({ uint32_t val = __nscd_get_nl_timestamp (); \
+- val != 0 && cache->timestamp == val; })
+-#endif
+- if (cache != NULL && cache_valid ())
+- {
+- data = cache;
+- atomic_increment (&cache->usecnt);
+- }
+- else
++ if (__builtin_expect (fd >= 0, 1))
+ {
+- int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
++ struct sockaddr_nl nladdr;
++ memset (&nladdr, '\0', sizeof (nladdr));
++ nladdr.nl_family = AF_NETLINK;
+
+- if (__builtin_expect (fd >= 0, 1))
+- {
+- struct sockaddr_nl nladdr;
+- memset (&nladdr, '\0', sizeof (nladdr));
+- nladdr.nl_family = AF_NETLINK;
+-
+- socklen_t addr_len = sizeof (nladdr);
+-
+- if(__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0
+- && __getsockname (fd, (struct sockaddr *) &nladdr,
+- &addr_len) == 0)
+- data = make_request (fd, nladdr.nl_pid);
+-
+- close_not_cancel_no_status (fd);
+- }
+-
+- if (data != NULL)
+- {
+- olddata = cache;
+- cache = data;
+- }
+- }
++ socklen_t addr_len = sizeof (nladdr);
+
+- __libc_lock_unlock (lock);
++ bool success
++ = (__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0
++ && __getsockname (fd, (struct sockaddr *) &nladdr,
++ &addr_len) == 0
++ && make_request (fd, nladdr.nl_pid, seen_ipv4, seen_ipv6,
++ in6ai, in6ailen) == 0);
+
+- if (data != NULL)
+- {
+- /* It worked. */
+- *seen_ipv4 = data->seen_ipv4;
+- *seen_ipv6 = data->seen_ipv6;
+- *in6ailen = data->in6ailen;
+- *in6ai = data->in6ai;
+-
+- if (olddata != NULL && olddata->usecnt > 0
+- && atomic_add_zero (&olddata->usecnt, -1))
+- free (olddata);
++ close_not_cancel_no_status (fd);
+
+- return;
++ if (success)
++ /* It worked. */
++ return;
+ }
+
+ #if __ASSUME_NETLINK_SUPPORT == 0
+@@ -407,26 +318,3 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6,
+ (void) freeifaddrs (ifa);
+ #endif
+ }
+-
+-
+-void
+-__free_in6ai (struct in6addrinfo *ai)
+-{
+- if (ai != NULL)
+- {
+- struct cached_data *data =
+- (struct cached_data *) ((char *) ai
+- - offsetof (struct cached_data, in6ai));
+-
+- if (atomic_add_zero (&data->usecnt, -1))
+- {
+- __libc_lock_lock (lock);
+-
+- if (data->usecnt == 0)
+- /* Still unused. */
+- free (data);
+-
+- __libc_lock_unlock (lock);
+- }
+- }
+-}
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-rintf-rounding.patch b/multilib-testing/lib32-glibc/glibc-2.15-rintf-rounding.patch
new file mode 100644
index 000000000..e0240ac6c
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-rintf-rounding.patch
@@ -0,0 +1,158 @@
+diff --git a/math/libm-test.inc b/math/libm-test.inc
+index 6243e1e..c8186c8 100644
+--- a/math/libm-test.inc
++++ b/math/libm-test.inc
+@@ -5037,6 +5037,22 @@ rint_test (void)
+ TEST_f_f (rint, 262142.75, 262143.0);
+ TEST_f_f (rint, 524286.75, 524287.0);
+ TEST_f_f (rint, 524288.75, 524289.0);
++ TEST_f_f (rint, 1048576.75, 1048577.0);
++ TEST_f_f (rint, 2097152.75, 2097153.0);
++ TEST_f_f (rint, -1048576.75, -1048577.0);
++ TEST_f_f (rint, -2097152.75, -2097153.0);
++#ifndef TEST_FLOAT
++ TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
++ TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
++ TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
++ TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
++ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
++ TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
++ TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
++ TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
++ TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
++ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
++#endif
+ #ifdef TEST_LDOUBLE
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
+@@ -5137,6 +5153,22 @@ rint_test_tonearest (void)
+ TEST_f_f (rint, -0.1, -0.0);
+ TEST_f_f (rint, -0.25, -0.0);
+ TEST_f_f (rint, -0.625, -1.0);
++ TEST_f_f (rint, 1048576.75, 1048577.0);
++ TEST_f_f (rint, 2097152.75, 2097153.0);
++ TEST_f_f (rint, -1048576.75, -1048577.0);
++ TEST_f_f (rint, -2097152.75, -2097153.0);
++#ifndef TEST_FLOAT
++ TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
++ TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
++ TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
++ TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
++ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
++ TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
++ TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
++ TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
++ TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
++ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
++#endif
+ #ifdef TEST_LDOUBLE
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
+@@ -5207,6 +5239,22 @@ rint_test_towardzero (void)
+ TEST_f_f (rint, -0.1, -0.0);
+ TEST_f_f (rint, -0.25, -0.0);
+ TEST_f_f (rint, -0.625, -0.0);
++ TEST_f_f (rint, 1048576.75, 1048576.0);
++ TEST_f_f (rint, 2097152.75, 2097152.0);
++ TEST_f_f (rint, -1048576.75, -1048576.0);
++ TEST_f_f (rint, -2097152.75, -2097152.0);
++#ifndef TEST_FLOAT
++ TEST_f_f (rint, 70368744177664.75, 70368744177664.0);
++ TEST_f_f (rint, 140737488355328.75, 140737488355328.0);
++ TEST_f_f (rint, 281474976710656.75, 281474976710656.0);
++ TEST_f_f (rint, 562949953421312.75, 562949953421312.0);
++ TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0);
++ TEST_f_f (rint, -70368744177664.75, -70368744177664.0);
++ TEST_f_f (rint, -140737488355328.75, -140737488355328.0);
++ TEST_f_f (rint, -281474976710656.75, -281474976710656.0);
++ TEST_f_f (rint, -562949953421312.75, -562949953421312.0);
++ TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0);
++#endif
+ #ifdef TEST_LDOUBLE
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L);
+@@ -5277,6 +5325,22 @@ rint_test_downward (void)
+ TEST_f_f (rint, -0.1, -1.0);
+ TEST_f_f (rint, -0.25, -1.0);
+ TEST_f_f (rint, -0.625, -1.0);
++ TEST_f_f (rint, 1048576.75, 1048576.0);
++ TEST_f_f (rint, 2097152.75, 2097152.0);
++ TEST_f_f (rint, -1048576.75, -1048577.0);
++ TEST_f_f (rint, -2097152.75, -2097153.0);
++#ifndef TEST_FLOAT
++ TEST_f_f (rint, 70368744177664.75, 70368744177664.0);
++ TEST_f_f (rint, 140737488355328.75, 140737488355328.0);
++ TEST_f_f (rint, 281474976710656.75, 281474976710656.0);
++ TEST_f_f (rint, 562949953421312.75, 562949953421312.0);
++ TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0);
++ TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
++ TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
++ TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
++ TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
++ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
++#endif
+ #ifdef TEST_LDOUBLE
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L);
+@@ -5347,6 +5411,22 @@ rint_test_upward (void)
+ TEST_f_f (rint, -0.1, -0.0);
+ TEST_f_f (rint, -0.25, -0.0);
+ TEST_f_f (rint, -0.625, -0.0);
++ TEST_f_f (rint, 1048576.75, 1048577.0);
++ TEST_f_f (rint, 2097152.75, 2097153.0);
++ TEST_f_f (rint, -1048576.75, -1048576.0);
++ TEST_f_f (rint, -2097152.75, -2097152.0);
++#ifndef TEST_FLOAT
++ TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
++ TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
++ TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
++ TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
++ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
++ TEST_f_f (rint, -70368744177664.75, -70368744177664.0);
++ TEST_f_f (rint, -140737488355328.75, -140737488355328.0);
++ TEST_f_f (rint, -281474976710656.75, -281474976710656.0);
++ TEST_f_f (rint, -562949953421312.75, -562949953421312.0);
++ TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0);
++#endif
+ #ifdef TEST_LDOUBLE
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
+diff --git a/sysdeps/ieee754/flt-32/s_rintf.c b/sysdeps/ieee754/flt-32/s_rintf.c
+index 9ea9b6f..9ba6b57 100644
+--- a/sysdeps/ieee754/flt-32/s_rintf.c
++++ b/sysdeps/ieee754/flt-32/s_rintf.c
+@@ -26,34 +26,22 @@ float
+ __rintf(float x)
+ {
+ int32_t i0,j0,sx;
+- u_int32_t i,i1;
+ float w,t;
+ GET_FLOAT_WORD(i0,x);
+ sx = (i0>>31)&1;
+ j0 = ((i0>>23)&0xff)-0x7f;
+ if(j0<23) {
+ if(j0<0) {
+- if((i0&0x7fffffff)==0) return x;
+- i1 = (i0&0x07fffff);
+- i0 &= 0xfff00000;
+- i0 |= ((i1|-i1)>>9)&0x400000;
+- SET_FLOAT_WORD(x,i0);
+ w = TWO23[sx]+x;
+ t = w-TWO23[sx];
+ GET_FLOAT_WORD(i0,t);
+ SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
+ return t;
+- } else {
+- i = (0x007fffff)>>j0;
+- if((i0&i)==0) return x; /* x is integral */
+- i>>=1;
+- if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0);
+ }
+ } else {
+ if(j0==0x80) return x+x; /* inf or NaN */
+ else return x; /* x is integral */
+ }
+- SET_FLOAT_WORD(x,i0);
+ w = TWO23[sx]+x;
+ return w-TWO23[sx];
+ }
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-scanf.patch b/multilib-testing/lib32-glibc/glibc-2.15-scanf.patch
new file mode 100644
index 000000000..a2561b232
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-scanf.patch
@@ -0,0 +1,19 @@
+diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
+index 0e71deb..e18a6c3 100644
+--- a/stdio-common/vfscanf.c
++++ b/stdio-common/vfscanf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1991-2006, 2007, 2010, 2011 Free Software Foundation, Inc.
++/* Copyright (C) 1991-2007, 2010, 2011, 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
+@@ -274,7 +274,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
+ CHAR_T *old = wp; \
+ size_t newsize = (UCHAR_MAX + 1 > 2 * wpmax \
+ ? UCHAR_MAX + 1 : 2 * wpmax); \
+- if (use_malloc || __libc_use_alloca (newsize)) \
++ if (use_malloc || !__libc_use_alloca (newsize)) \
+ { \
+ wp = realloc (use_malloc ? wp : NULL, newsize); \
+ if (wp == NULL) \
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-strcasecmp-disable-avx.patch b/multilib-testing/lib32-glibc/glibc-2.15-strcasecmp-disable-avx.patch
new file mode 100644
index 000000000..4c104fa55
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-strcasecmp-disable-avx.patch
@@ -0,0 +1,48 @@
+diff --git a/sysdeps/x86_64/multiarch/strcmp.S b/sysdeps/x86_64/multiarch/strcmp.S
+index f93c83d..d8aa889 100644
+--- a/sysdeps/x86_64/multiarch/strcmp.S
++++ b/sysdeps/x86_64/multiarch/strcmp.S
+@@ -105,11 +105,6 @@ ENTRY(__strcasecmp)
+ jne 1f
+ call __init_cpu_features
+ 1:
+-# ifdef HAVE_AVX_SUPPORT
+- leaq __strcasecmp_avx(%rip), %rax
+- testl $bit_AVX, __cpu_features+CPUID_OFFSET+index_AVX(%rip)
+- jnz 2f
+-# endif
+ leaq __strcasecmp_sse42(%rip), %rax
+ testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
+ jnz 2f
+@@ -128,11 +123,6 @@ ENTRY(__strncasecmp)
+ jne 1f
+ call __init_cpu_features
+ 1:
+-# ifdef HAVE_AVX_SUPPORT
+- leaq __strncasecmp_avx(%rip), %rax
+- testl $bit_AVX, __cpu_features+CPUID_OFFSET+index_AVX(%rip)
+- jnz 2f
+-# endif
+ leaq __strncasecmp_sse42(%rip), %rax
+ testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
+ jnz 2f
+@@ -152,19 +142,6 @@ weak_alias (__strncasecmp, strncasecmp)
+ # include "strcmp-sse42.S"
+
+
+-# ifdef HAVE_AVX_SUPPORT
+-# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+-# define LABEL(l) .L##l##_avx
+-# define GLABEL(l) l##_avx
+-# define USE_AVX 1
+-# undef STRCMP_SSE42
+-# define STRCMP_SSE42 STRCMP_AVX
+-# define SECTION avx
+-# include "strcmp-sse42.S"
+-# endif
+-# endif
+-
+-
+ # undef ENTRY
+ # define ENTRY(name) \
+ .type STRCMP_SSE2, @function; \
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-testsuite.patch b/multilib-testing/lib32-glibc/glibc-2.15-testsuite.patch
new file mode 100644
index 000000000..7eaeaed65
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-testsuite.patch
@@ -0,0 +1,110 @@
+From d4c2917fc5091dae7ab1b30c165becb70d3c3453 Mon Sep 17 00:00:00 2001
+From: Allan McRae <allan@archlinux.org>
+Date: Mon, 16 Apr 2012 14:06:47 +1000
+Subject: [PATCH] Fix test-suite failues with -Wl,--as-needed
+
+Signed-off-by: Allan McRae <allan@archlinux.org>
+---
+ ChangeLog | 24 ++++++++++++++++++++++++
+ elf/Makefile | 21 ++++++++++++++++++++-
+ nptl/ChangeLog | 5 +++++
+ nptl/Makefile | 3 ++-
+ stdlib/Makefile | 1 +
+ 5 files changed, 52 insertions(+), 2 deletions(-)
+
+diff --git a/elf/Makefile b/elf/Makefile
+index 57dcab0..47729c3 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -500,6 +500,18 @@ $(objpfx)tst-initordera3.so: $(objpfx)tst-initorderb2.so $(objpfx)tst-initorderb
+ $(objpfx)tst-initordera4.so: $(objpfx)tst-initordera3.so
+ $(objpfx)tst-initorder: $(objpfx)tst-initordera4.so $(objpfx)tst-initordera1.so $(objpfx)tst-initorderb2.so
+
++LDFLAGS-nodel2mod3.so = $(no-as-needed)
++LDFLAGS-reldepmod5.so = $(no-as-needed)
++LDFLAGS-reldep6mod1.so = $(no-as-needed)
++LDFLAGS-reldep6mod4.so = $(no-as-needed)
++LDFLAGS-reldep8mod3.so = $(no-as-needed)
++LDFLAGS-unload4mod1.so = $(no-as-needed)
++LDFLAGS-unload4mod2.so = $(no-as-needed)
++LDFLAGS-tst-initorder = $(no-as-needed)
++LDFLAGS-tst-initordera2.so = $(no-as-needed)
++LDFLAGS-tst-initordera3.so = $(no-as-needed)
++LDFLAGS-tst-initordera4.so = $(no-as-needed)
++LDFLAGS-tst-initorderb2.so = $(no-as-needed)
+ LDFLAGS-tst-tlsmod5.so = -nostdlib
+ LDFLAGS-tst-tlsmod6.so = -nostdlib
+
+@@ -633,7 +645,7 @@ $(objpfx)vismain.out: $(addprefix $(objpfx),vismod3.so)
+ vismain-ENV = LD_PRELOAD=$(addprefix $(objpfx),vismod3.so)
+
+ $(objpfx)noload: $(objpfx)testobj1.so $(common-objpfx)dlfcn/libdl.so
+-LDFLAGS-noload = -rdynamic
++LDFLAGS-noload = -rdynamic $(no-as-needed)
+ $(objpfx)noload.out: $(objpfx)testobj5.so
+
+ $(objpfx)noload-mem: $(objpfx)noload.out
+@@ -678,6 +690,7 @@ $(objpfx)reldep4: $(libdl)
+ $(objpfx)reldep4.out: $(objpfx)reldep4mod1.so $(objpfx)reldep4mod2.so
+
+ $(objpfx)next: $(objpfx)nextmod1.so $(objpfx)nextmod2.so $(libdl)
++LDFLAGS-next = $(no-as-needed)
+
+ $(objpfx)unload2: $(libdl)
+ $(objpfx)unload2.out: $(objpfx)unload2mod.so $(objpfx)unload2dep.so
+@@ -1025,6 +1038,8 @@ $(objpfx)order2mod1.so: $(objpfx)order2mod4.so
+ $(objpfx)order2mod4.so: $(objpfx)order2mod3.so
+ $(objpfx)order2mod2.so: $(objpfx)order2mod3.so
+ order2mod2.so-no-z-defs = yes
++LDFLAGS-order2mod1.so = $(no-as-needed)
++LDFLAGS-order2mod2.so = $(no-as-needed)
+
+ tst-stackguard1-ARGS = --command "$(built-program-cmd) --child"
+ tst-stackguard1-static-ARGS = --command "$(objpfx)tst-stackguard1-static --child"
+@@ -1113,6 +1128,10 @@ $(objpfx)tst-initorder2: $(objpfx)tst-initorder2a.so $(objpfx)tst-initorder2d.so
+ $(objpfx)tst-initorder2a.so: $(objpfx)tst-initorder2b.so
+ $(objpfx)tst-initorder2b.so: $(objpfx)tst-initorder2c.so
+ $(objpfx)tst-initorder2c.so: $(objpfx)tst-initorder2d.so
++LDFLAGS-tst-initorder2 = $(no-as-needed)
++LDFLAGS-tst-initorder2a.so = $(no-as-needed)
++LDFLAGS-tst-initorder2b.so = $(no-as-needed)
++LDFLAGS-tst-initorder2c.so = $(no-as-needed)
+ define o-iterator-doit
+ $(objpfx)tst-initorder2$o.os: tst-initorder2.c; \
+ $$(compile-command.c) -DNAME=\"$o\"
+diff --git a/nptl/Makefile b/nptl/Makefile
+index 09acd8a..07a1022 100644
+--- a/nptl/Makefile
++++ b/nptl/Makefile
+@@ -458,6 +458,7 @@ $(objpfx)tst-tls4: $(libdl) $(shared-thread-library)
+ $(objpfx)tst-tls4.out: $(objpfx)tst-tls4moda.so $(objpfx)tst-tls4modb.so
+
+ $(objpfx)tst-tls5: $(objpfx)tst-tls5mod.so $(shared-thread-library)
++LDFLAGS-tst-tls5 = $(no-as-needed)
+ LDFLAGS-tst-tls5mod.so = -Wl,-soname,tst-tls5mod.so
+
+ ifeq ($(build-shared),yes)
+@@ -503,7 +504,7 @@ $(objpfx)tst-clock2: $(common-objpfx)rt/librt.a
+ $(objpfx)tst-rwlock14: $(common-objpfx)rt/librt.a
+ endif
+
+-LDFLAGS-tst-cancel24 = -lstdc++
++LDFLAGS-tst-cancel24 = $(no-as-needed) -lstdc++
+
+ extra-B-pthread.so = -B$(common-objpfx)nptl/
+ $(objpfx)libpthread.so: $(addprefix $(objpfx),$(crti-objs) $(crtn-objs))
+diff --git a/stdlib/Makefile b/stdlib/Makefile
+index 44eb20d..f7811c5 100644
+--- a/stdlib/Makefile
++++ b/stdlib/Makefile
+@@ -138,6 +138,7 @@ $(objpfx)tst-fmtmsg.out: tst-fmtmsg.sh $(objpfx)tst-fmtmsg
+ $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)stdlib/
+
+ $(objpfx)tst-putenv: $(objpfx)tst-putenvmod.so
++LDFLAGS-tst-putenv = $(no-as-needed)
+
+ $(objpfx)tst-putenvmod.so: $(objpfx)tst-putenvmod.os
+ $(build-module)
+--
+1.7.3.4
+
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-vdso.patch b/multilib-testing/lib32-glibc/glibc-2.15-vdso.patch
new file mode 100644
index 000000000..7fd394f90
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-vdso.patch
@@ -0,0 +1,40 @@
+diff --git a/elf/Makefile b/elf/Makefile
+index 8234ba7..25ffc57 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -1203,3 +1203,14 @@ $(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so
+ $(objpfx)tst-relsort1mod2.so: $(libm)
+ $(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \
+ $(objpfx)tst-relsort1mod2.so
++
++tests: $(objpfx)tst-unused-dep.out
++
++$(objpfx)tst-unused-dep.out: $(objpfx)testobj1.so
++ LD_TRACE_LOADED_OBJECTS=1 \
++ LD_DEBUG=unused \
++ LD_PRELOAD= \
++ $(elf-objpfx)${rtld-installed-name} \
++ --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
++ $< > $@
++ cmp $@ /dev/null > /dev/null
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 2e4f97f..3e15447 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -1,5 +1,5 @@
+ /* Run time dynamic linker.
+- Copyright (C) 1995-2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1995-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
+@@ -1375,6 +1375,9 @@ of this helper program; chances are you did not intend to run this program.\n\
+ _dl_setup_hash (l);
+ l->l_relocated = 1;
+
++ /* The vDSO is always used. */
++ l->l_used = 1;
++
+ /* Initialize l_local_scope to contain just this map. This allows
+ the use of dl_lookup_symbol_x to resolve symbols within the vdso.
+ So we create a single entry list pointing to l_real as its only
diff --git a/multilib-testing/lib32-glibc/glibc-2.15-vfprintf-nargs.patch b/multilib-testing/lib32-glibc/glibc-2.15-vfprintf-nargs.patch
new file mode 100644
index 000000000..f8dde53f5
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.15-vfprintf-nargs.patch
@@ -0,0 +1,180 @@
+diff --git a/stdio-common/Makefile b/stdio-common/Makefile
+index a847b28..080badc 100644
+--- a/stdio-common/Makefile
++++ b/stdio-common/Makefile
+@@ -59,7 +59,8 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \
+ tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \
+ tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \
+ bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \
+- scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24
++ scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \
++ bug-vfprintf-nargs
+
+ test-srcs = tst-unbputc tst-printf
+
+diff --git a/stdio-common/bug-vfprintf-nargs.c b/stdio-common/bug-vfprintf-nargs.c
+new file mode 100644
+index 0000000..13c66c0
+--- /dev/null
++++ b/stdio-common/bug-vfprintf-nargs.c
+@@ -0,0 +1,78 @@
++/* Test for vfprintf nargs allocation overflow (BZ #13656).
++ Copyright (C) 2012 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++ Contributed by Kees Cook <keescook@chromium.org>, 2012.
++
++ 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, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <stdint.h>
++#include <unistd.h>
++#include <inttypes.h>
++#include <string.h>
++#include <signal.h>
++
++static int
++format_failed (const char *fmt, const char *expected)
++{
++ char output[80];
++
++ printf ("%s : ", fmt);
++
++ memset (output, 0, sizeof output);
++ /* Having sprintf itself detect a failure is good. */
++ if (sprintf (output, fmt, 1, 2, 3, "test") > 0
++ && strcmp (output, expected) != 0)
++ {
++ printf ("FAIL (output '%s' != expected '%s')\n", output, expected);
++ return 1;
++ }
++ puts ("ok");
++ return 0;
++}
++
++static int
++do_test (void)
++{
++ int rc = 0;
++ char buf[64];
++
++ /* Regular positionals work. */
++ if (format_failed ("%1$d", "1") != 0)
++ rc = 1;
++
++ /* Regular width positionals work. */
++ if (format_failed ("%1$*2$d", " 1") != 0)
++ rc = 1;
++
++ /* Positional arguments are constructed via read_int, so nargs can only
++ overflow on 32-bit systems. On 64-bit systems, it will attempt to
++ allocate a giant amount of memory and possibly crash, which is the
++ expected situation. Since the 64-bit behavior is arch-specific, only
++ test this on 32-bit systems. */
++ if (sizeof (long int) == 4)
++ {
++ sprintf (buf, "%%1$d %%%" PRIdPTR "$d", UINT32_MAX / sizeof (int));
++ if (format_failed (buf, "1 %$d") != 0)
++ rc = 1;
++ }
++
++ return rc;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
+index 863cd5d..c802e46 100644
+--- a/stdio-common/vfprintf.c
++++ b/stdio-common/vfprintf.c
+@@ -235,6 +235,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
+ 0 if unknown. */
+ int readonly_format = 0;
+
++ /* For the argument descriptions, which may be allocated on the heap. */
++ void *args_malloced = NULL;
++
+ /* This table maps a character into a number representing a
+ class. In each step there is a destination label for each
+ class. */
+@@ -1647,9 +1650,10 @@ do_positional:
+ determine the size of the array needed to store the argument
+ attributes. */
+ size_t nargs = 0;
+- int *args_type;
+- union printf_arg *args_value = NULL;
++ size_t bytes_per_arg;
++ union printf_arg *args_value;
+ int *args_size;
++ int *args_type;
+
+ /* Positional parameters refer to arguments directly. This could
+ also determine the maximum number of arguments. Track the
+@@ -1698,13 +1702,38 @@ do_positional:
+
+ /* Determine the number of arguments the format string consumes. */
+ nargs = MAX (nargs, max_ref_arg);
++ /* Calculate total size needed to represent a single argument across
++ all three argument-related arrays. */
++ bytes_per_arg = sizeof (*args_value) + sizeof (*args_size)
++ + sizeof (*args_type);
++
++ /* Check for potential integer overflow. */
++ if (__builtin_expect (nargs > SIZE_MAX / bytes_per_arg, 0))
++ {
++ __set_errno (ERANGE);
++ done = -1;
++ goto all_done;
++ }
+
+- /* Allocate memory for the argument descriptions. */
+- args_type = alloca (nargs * sizeof (int));
++ /* Allocate memory for all three argument arrays. */
++ if (__libc_use_alloca (nargs * bytes_per_arg))
++ args_value = alloca (nargs * bytes_per_arg);
++ else
++ {
++ args_value = args_malloced = malloc (nargs * bytes_per_arg);
++ if (args_value == NULL)
++ {
++ done = -1;
++ goto all_done;
++ }
++ }
++
++ /* Set up the remaining two arrays to each point past the end of the
++ prior array, since space for all three has been allocated now. */
++ args_size = &args_value[nargs].pa_int;
++ args_type = &args_size[nargs];
+ memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0',
+- nargs * sizeof (int));
+- args_value = alloca (nargs * sizeof (union printf_arg));
+- args_size = alloca (nargs * sizeof (int));
++ nargs * sizeof (*args_type));
+
+ /* XXX Could do sanity check here: If any element in ARGS_TYPE is
+ still zero after this loop, format is invalid. For now we
+@@ -1973,8 +2002,8 @@ do_positional:
+ }
+
+ all_done:
+- if (__builtin_expect (workstart != NULL, 0))
+- free (workstart);
++ free (args_malloced);
++ free (workstart);
+ /* Unlock the stream. */
+ _IO_funlockfile (s);
+ _IO_cleanup_region_end (0);
diff --git a/multilib-testing/lib32-glibc/glibc-__i686.patch b/multilib-testing/lib32-glibc/glibc-__i686.patch
new file mode 100644
index 000000000..16f84c536
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-__i686.patch
@@ -0,0 +1,31 @@
+diff --git a/nptl/sysdeps/pthread/pt-initfini.c b/nptl/sysdeps/pthread/pt-initfini.c
+index 9c00dc0..f5d4df8 100644
+--- a/nptl/sysdeps/pthread/pt-initfini.c
++++ b/nptl/sysdeps/pthread/pt-initfini.c
+@@ -45,6 +45,11 @@
+ /* Embed an #include to pull in the alignment and .end directives. */
+ asm ("\n#include \"defs.h\"");
+
++asm ("\n#if defined __i686 && defined __ASSEMBLER__");
++asm ("\n#undef __i686");
++asm ("\n#define __i686 __i686");
++asm ("\n#endif");
++
+ /* The initial common code ends here. */
+ asm ("\n/*@HEADER_ENDS*/");
+
+diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
+index 64ef400..726b1df 100644
+--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
++++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
+@@ -29,6 +29,10 @@
+ #include <dl-sysdep.h>
+ #include <tls.h>
+
++#if defined __i686 && defined __ASSEMBLER__
++#undef __i686
++#define __i686 __i686
++#endif
+
+ /* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
diff --git a/multilib-testing/lib32-glibc/lib32-glibc.conf b/multilib-testing/lib32-glibc/lib32-glibc.conf
new file mode 100644
index 000000000..9b08c3f43
--- /dev/null
+++ b/multilib-testing/lib32-glibc/lib32-glibc.conf
@@ -0,0 +1 @@
+/usr/lib32
diff --git a/multilib/lib32-gnutls/PKGBUILD b/multilib/lib32-gnutls/PKGBUILD
index 789e44615..a4816169f 100644
--- a/multilib/lib32-gnutls/PKGBUILD
+++ b/multilib/lib32-gnutls/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 70114 2012-04-29 23:27:51Z bluewind $
+# $Id: PKGBUILD 72094 2012-06-08 15:24:25Z bluewind $
# Maintainer: Florian Pritz <bluewind@xinu.at>
# Contributor: Christoph Vigano <mail at cvigano dot de>
# Contributor: Biru Ionut <ionut@archlinux.ro>
@@ -6,7 +6,7 @@
# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
_pkgbasename=gnutls
pkgname=lib32-$_pkgbasename
-pkgver=3.0.19
+pkgver=3.0.20
pkgrel=1
pkgdesc="A library which provides a secure layer over a reliable transport layer (32-bit)"
arch=('x86_64')
@@ -16,8 +16,8 @@ options=('!libtool')
depends=('lib32-zlib' 'lib32-nettle>=2.4' 'lib32-p11-kit>=0.12' $_pkgbasename)
makedepends=('gcc-multilib' 'lib32-libidn')
source=(ftp://ftp.gnu.org/gnu/gnutls/${_pkgbasename}-${pkgver}.tar.xz{,.sig})
-md5sums=('05e85d18955edd5c0fe40fbb7ef168bd'
- '52c7b7ecf7032322321bf667d86eb084')
+md5sums=('1e9322764f4531b00b4a46a5d634695e'
+ 'efc0ac29d46219aa75f08f57ba679776')
build() {
export CC="gcc -m32"
diff --git a/multilib/wine/PKGBUILD b/multilib/wine/PKGBUILD
index d66c99cc2..ac375eeea 100644
--- a/multilib/wine/PKGBUILD
+++ b/multilib/wine/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 71289 2012-05-26 10:04:51Z svenstaro $
+# $Id: PKGBUILD 72122 2012-06-08 22:00:53Z svenstaro $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Eduardo Romero <eduardo@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
pkgname=wine
-pkgver=1.5.5
+pkgver=1.5.6
pkgrel=1
_pkgbasever=${pkgver/rc/-rc}
-source=(http://ibiblio.org/pub/linux/system/emulators/$pkgname/$pkgname-$_pkgbasever.tar.bz2)
-md5sums=('63639cfe9addb75cd40726cac36bcf8a')
+source=(http://prdownloads.sourceforge.net/$pkgname/$pkgname-$_pkgbasever.tar.bz2)
+md5sums=('83bc2532cef560a21cad7dda979cadda')
pkgdesc="A compatibility layer for running Windows programs"
url="http://www.winehq.com"
diff --git a/staging/alsa-plugins/PKGBUILD b/staging/alsa-plugins/PKGBUILD
new file mode 100644
index 000000000..3f11bce25
--- /dev/null
+++ b/staging/alsa-plugins/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 161283 2012-06-08 22:45:29Z heftig $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Daniel Ehlers <danielehlers@mindeye.net>
+
+pkgname=alsa-plugins
+pkgver=1.0.25
+pkgrel=2
+pkgdesc="Extra alsa plugins"
+arch=(i686 x86_64)
+url="http://www.alsa-project.org"
+license=(GPL)
+depends=(alsa-lib)
+makedepends=(libpulse jack ffmpeg)
+optdepends=('libpulse: PulseAudio plugin'
+ 'jack: Jack plugin'
+ 'ffmpeg: libavcodec resampling plugin'
+ 'libsamplerate: libsamplerate resampling plugin'
+ 'speex: libspeexdsp resampling plugin')
+options=('!libtool')
+source=("ftp://ftp.alsa-project.org/pub/plugins/$pkgname-$pkgver.tar.bz2"
+ alsa-plugins-1.0.25-ffmpeg-0.11-renamed-CH_LAYOUT-defs-v2.patch
+ alsa-plugins-1.0.25-ffmpeg-0.11-obsolete-avcodec_init.patch)
+md5sums=('038c023eaa51171f018fbf7141255185'
+ '50d9adcda20756d063e676a563c201d9'
+ '697c6275f678d86ded2e5092d8a154c9')
+
+build() {
+ cd $pkgname-$pkgver
+ patch -Np1 -i ../alsa-plugins-1.0.25-ffmpeg-0.11-renamed-CH_LAYOUT-defs-v2.patch
+ patch -Np1 -i ../alsa-plugins-1.0.25-ffmpeg-0.11-obsolete-avcodec_init.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+
+ install -d "$pkgdir/usr/share/doc/$pkgname"
+ install -m644 doc/README* doc/*.txt "$pkgdir/usr/share/doc/$pkgname/"
+}
diff --git a/staging/alsa-plugins/alsa-plugins-1.0.25-ffmpeg-0.11-obsolete-avcodec_init.patch b/staging/alsa-plugins/alsa-plugins-1.0.25-ffmpeg-0.11-obsolete-avcodec_init.patch
new file mode 100644
index 000000000..cce4f7e7e
--- /dev/null
+++ b/staging/alsa-plugins/alsa-plugins-1.0.25-ffmpeg-0.11-obsolete-avcodec_init.patch
@@ -0,0 +1,11 @@
+diff -u -r alsa-plugins-1.0.25/a52/pcm_a52.c alsa-plugins-1.0.25-ffmpeg/a52/pcm_a52.c
+--- alsa-plugins-1.0.25/a52/pcm_a52.c 2012-01-25 08:57:07.000000000 +0100
++++ alsa-plugins-1.0.25-ffmpeg/a52/pcm_a52.c 2012-06-09 00:42:52.177219012 +0200
+@@ -702,7 +702,6 @@
+ rec->channels = channels;
+ rec->format = format;
+
+- avcodec_init();
+ avcodec_register_all();
+
+ rec->codec = avcodec_find_encoder_by_name("ac3_fixed");
diff --git a/staging/alsa-plugins/alsa-plugins-1.0.25-ffmpeg-0.11-renamed-CH_LAYOUT-defs-v2.patch b/staging/alsa-plugins/alsa-plugins-1.0.25-ffmpeg-0.11-renamed-CH_LAYOUT-defs-v2.patch
new file mode 100644
index 000000000..f4ebbf466
--- /dev/null
+++ b/staging/alsa-plugins/alsa-plugins-1.0.25-ffmpeg-0.11-renamed-CH_LAYOUT-defs-v2.patch
@@ -0,0 +1,29 @@
+Ffmpeg 0.11 (LIBAVCODEC_VERSION_MAJOR = 54) removed the CH_LAYOUT_* aliases for
+the AV_CH_LAYOUT_* defines.
+
+diff -pru alsa-plugins-1.0.25-original/a52/pcm_a52.c alsa-plugins-1.0.25-for-ffmpeg-0.11/a52/pcm_a52.c
+--- alsa-plugins-1.0.25-original/a52/pcm_a52.c 2012-01-25 08:57:07.000000000 +0100
++++ alsa-plugins-1.0.25-for-ffmpeg-0.11/a52/pcm_a52.c 2012-06-01 14:59:47.096671464 +0200
+@@ -441,7 +441,21 @@ static int a52_prepare(snd_pcm_ioplug_t
+ #else
+ rec->avctx->sample_fmt = SAMPLE_FMT_S16;
+ #endif
+-#if LIBAVCODEC_VERSION_MAJOR > 52 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 3)
++#if (LIBAVCODEC_VERSION_MAJOR >= 54)
++ switch (io->channels) {
++ case 2:
++ rec->avctx->channel_layout = AV_CH_LAYOUT_STEREO;
++ break;
++ case 4:
++ rec->avctx->channel_layout = AV_CH_LAYOUT_QUAD;
++ break;
++ case 6:
++ rec->avctx->channel_layout = AV_CH_LAYOUT_5POINT1;
++ break;
++ default:
++ break;
++ }
++#elif (LIBAVCODEC_VERSION_MAJOR > 52 && LIBAVCODEC_VERSION_MAJOR < 54) || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 3)
+ switch (io->channels) {
+ case 2:
+ rec->avctx->channel_layout = CH_LAYOUT_STEREO;
diff --git a/staging/kdemultimedia/PKGBUILD b/staging/kdemultimedia/PKGBUILD
index be9adf1c3..1cb3c9ee8 100644
--- a/staging/kdemultimedia/PKGBUILD
+++ b/staging/kdemultimedia/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 161044 2012-06-07 20:59:18Z andrea $
+# $Id: PKGBUILD 161262 2012-06-08 07:13:37Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -11,7 +11,7 @@ pkgname=('kdemultimedia-dragonplayer'
'kdemultimedia-kscd'
'kdemultimedia-mplayerthumbs')
pkgver=4.8.4
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
url='http://www.kde.org'
license=('GPL' 'LGPL' 'FDL')
diff --git a/staging/krb5/PKGBUILD b/staging/krb5/PKGBUILD
new file mode 100644
index 000000000..89899a36c
--- /dev/null
+++ b/staging/krb5/PKGBUILD
@@ -0,0 +1,92 @@
+# $Id: PKGBUILD 161299 2012-06-09 01:56:21Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+
+pkgname=krb5
+pkgver=1.10.2
+pkgrel=2
+pkgdesc="The Kerberos network authentication system"
+arch=('i686' 'x86_64')
+url="http://web.mit.edu/kerberos/"
+license=('custom')
+depends=('e2fsprogs' 'libldap' 'keyutils')
+makedepends=('perl')
+backup=('etc/krb5.conf' 'var/lib/krb5kdc/kdc.conf')
+source=(http://web.mit.edu/kerberos/dist/${pkgname}/1.10/${pkgname}-${pkgver}-signed.tar
+ krb5-1.10.1-gcc47.patch
+ krb5-kadmind
+ krb5-kadmind.service
+ krb5-kdc
+ krb5-kdc.service
+ krb5-kpropd
+ krb5-kpropd.service
+ krb5-kpropd@.service
+ krb5-kpropd.socket)
+sha1sums=('8b6e2c5bf0c65aacd368b3698add7888f2a7332d'
+ '78b759d566b1fdefd9bbcd06df14f07f12effe96'
+ '2aa229369079ed1bbb201a1ef72c47bf143f4dbe'
+ 'a2a01e7077d9e89cda3457ea0e216debb3dc353c'
+ '77d2312ecd8bf12a6e72cc8fd871a8ac93b23393'
+ 'f5e4fa073e11b0fcb4e3098a5d58a4f791ec841e'
+ '7f402078fa65bb9ff1beb6cbbbb017450df78560'
+ '614401dd4ac18e310153240bb26eb32ff1e8cf5b'
+ '023a8164f8ee7066ac814486a68bc605e79f6101'
+ 'f3677d30dbbd7106c581379c2c6ebb1bf7738912')
+options=('!emptydirs')
+
+build() {
+ tar zxvf ${pkgname}-${pkgver}.tar.gz
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+
+ # With gcc47 : deltat.c:1694:12: error: 'yylval' may be used uninitialized
+ # in this function [-Werror=maybe-uninitialized]
+ # As this is generated code, just ignore the complaint.
+ patch -Np2 -i ../../krb5-1.10.1-gcc47.patch
+ rm lib/krb5/krb/deltat.c
+
+ # FS#25384
+ sed -i "/KRB5ROOT=/s/\/local//" util/ac_check_krb5.m4
+
+ export CFLAGS+=" -fPIC -fno-strict-aliasing -fstack-protector-all"
+ export CPPFLAGS+=" -I/usr/include/et"
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --localstatedir=/var/lib \
+ --enable-shared \
+ --with-system-et \
+ --with-system-ss \
+ --disable-rpath \
+ --without-tcl \
+ --enable-dns-for-realm \
+ --with-ldap \
+ --without-system-verto
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+ make DESTDIR="${pkgdir}" EXAMPLEDIR=/usr/share/doc/${pkgname}/examples install
+
+ # Fix FS#29889
+ install -m 644 plugins/kdb/ldap/libkdb_ldap/kerberos.{ldif,schema} "${pkgdir}"/usr/share/doc/${pkgname}/examples
+
+ # Sample KDC config file
+ install -dm 755 "${pkgdir}"/var/lib/krb5kdc
+ install -pm 644 config-files/kdc.conf "${pkgdir}"/var/lib/krb5kdc/kdc.conf
+
+ # Default configuration file
+ install -dm 755 "${pkgdir}"/etc
+ install -pm 644 config-files/krb5.conf "${pkgdir}"/etc/krb5.conf
+
+ install -dm 755 "${pkgdir}"/etc/rc.d
+ install -m 755 ../../krb5-{kdc,kadmind,kpropd} "${pkgdir}"/etc/rc.d
+
+ install -dm 755 "${pkgdir}"/usr/share/aclocal
+ install -m 644 util/ac_check_krb5.m4 "${pkgdir}"/usr/share/aclocal
+
+ install -Dm644 "${srcdir}"/${pkgname}-${pkgver}/NOTICE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+
+ # systemd stuff
+ install -dm 755 "${pkgdir}"/usr/lib/systemd/system
+ install -m 644 ../../krb5-{kadmind.service,kdc.service,kpropd.service,kpropd@.service,kpropd.socket} \
+ "${pkgdir}"/usr/lib/systemd/system
+}
diff --git a/staging/krb5/krb5-1.10.1-gcc47.patch b/staging/krb5/krb5-1.10.1-gcc47.patch
new file mode 100644
index 000000000..ffd01c2a3
--- /dev/null
+++ b/staging/krb5/krb5-1.10.1-gcc47.patch
@@ -0,0 +1,11 @@
+diff -Naur krb5-1.10.1.ori/src/lib/krb5/krb/x-deltat.y krb5-1.10.1/src/lib/krb5/krb/x-deltat.y
+--- krb5-1.10.1.ori/src/lib/krb5/krb/x-deltat.y 2011-09-06 07:34:32.000000000 -0400
++++ krb5-1.10.1/src/lib/krb5/krb/x-deltat.y 2012-03-24 13:15:11.543551318 -0400
+@@ -44,6 +44,7 @@
+ #ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wuninitialized"
++#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+ #endif
+
+ #include <ctype.h>
diff --git a/staging/krb5/krb5-kadmind b/staging/krb5/krb5-kadmind
new file mode 100644
index 000000000..04df0dcff
--- /dev/null
+++ b/staging/krb5/krb5-kadmind
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/kadmind`
+case "$1" in
+ start)
+ stat_busy "Starting Kerberos Admin Daemon"
+ if [ -z "$PID" ]; then
+ /usr/sbin/kadmind
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon krb5-kadmind
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Kerberos Admin Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon krb5-kadmind
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/staging/krb5/krb5-kadmind.service b/staging/krb5/krb5-kadmind.service
new file mode 100644
index 000000000..f3836c898
--- /dev/null
+++ b/staging/krb5/krb5-kadmind.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Kerberos 5 administration server
+
+[Service]
+ExecStart=/usr/sbin/kadmind -nofork
+
+[Install]
+WantedBy=multi-user.target
diff --git a/staging/krb5/krb5-kdc b/staging/krb5/krb5-kdc
new file mode 100644
index 000000000..05a03411e
--- /dev/null
+++ b/staging/krb5/krb5-kdc
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/krb5kdc`
+case "$1" in
+ start)
+ stat_busy "Starting Kerberos Authentication"
+ if [ -z "$PID" ]; then
+ /usr/sbin/krb5kdc
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon krb5-kdc
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Kerberos Authentication"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon krb5-kdc
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/staging/krb5/krb5-kdc.service b/staging/krb5/krb5-kdc.service
new file mode 100644
index 000000000..6ec93bb72
--- /dev/null
+++ b/staging/krb5/krb5-kdc.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Kerberos 5 KDC
+
+[Service]
+ExecStart=/usr/sbin/krb5kdc -n
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
diff --git a/staging/krb5/krb5-kpropd b/staging/krb5/krb5-kpropd
new file mode 100644
index 000000000..a0077d68e
--- /dev/null
+++ b/staging/krb5/krb5-kpropd
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/kpropd`
+case "$1" in
+ start)
+ stat_busy "Starting Kerberos Database Propagation Daemon"
+ if [ -z "$PID" ]; then
+ /usr/sbin/kpropd -S
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon kpropd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Kerberos Database Propagation Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon kpropd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/staging/krb5/krb5-kpropd.service b/staging/krb5/krb5-kpropd.service
new file mode 100644
index 000000000..a7c5b579d
--- /dev/null
+++ b/staging/krb5/krb5-kpropd.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Kerberos 5 propagation server
+
+[Service]
+ExecStart=/usr/sbin/kpropd -S
+
+[Install]
+WantedBy=multi-user.target
diff --git a/staging/krb5/krb5-kpropd.socket b/staging/krb5/krb5-kpropd.socket
new file mode 100644
index 000000000..4389290c0
--- /dev/null
+++ b/staging/krb5/krb5-kpropd.socket
@@ -0,0 +1,9 @@
+[Unit]
+Description=Kerberos 5 propagation server
+
+[Socket]
+ListenStream=754
+Accept=yes
+
+[Install]
+WantedBy=sockets.target
diff --git a/testing/cairo/PKGBUILD b/testing/cairo/PKGBUILD
new file mode 100644
index 000000000..9c9921212
--- /dev/null
+++ b/testing/cairo/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 161277 2012-06-08 17:28:49Z foutrelis $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Brice Carpentier <brice@daknet.org>
+
+pkgname=cairo
+#_gitdate=20120426
+#_gitver=957a9cc619965178a8927d114fe852034fc2385c
+pkgver=1.12.2
+pkgrel=2
+pkgdesc="Cairo vector graphics library"
+arch=(i686 x86_64)
+license=('LGPL' 'MPL')
+url="http://cairographics.org/"
+depends=('libpng' 'libxrender' 'fontconfig' 'pixman' 'glib2' 'sh')
+makedepends=('librsvg' 'poppler-glib' 'libspectre' 'gtk-doc') # 'libdrm')
+optdepends=('xcb-util: for XCB backend') # really needed?
+provides=('cairo-xcb')
+replaces=('cairo-xcb')
+options=('!libtool')
+source=(http://cairographics.org/releases/$pkgname-$pkgver.tar.xz
+ #$pkgname-$pkgver.tar.gz::http://cgit.freedesktop.org/cairo/snapshot/cairo-${_gitver}.tar.gz
+ cairo-1.10.0-buggy_gradients.patch
+ cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch
+ #git_fixes.patch
+)
+md5sums=('87649eb75789739d517c743e94879e51'
+ '9b323790dab003e228c6955633cb888e'
+ '75ec73746cfaefcbed0e9b2a9f76bf00')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ #cd ${srcdir}/${pkgname}-${_gitver}
+ patch -Np1 -i ${srcdir}/cairo-1.10.0-buggy_gradients.patch
+ # https://bugs.freedesktop.org/show_bug.cgi?id=50852
+ patch -Np1 -i ${srcdir}/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch
+ # status is 2012-04-26 last commit: image: Fix typo in _blit_spans()
+ #patch -Np1 -i ${srcdir}/git_fixes.patch
+ autoreconf -vfi
+ #./autogen.sh --prefix=/usr \
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-tee \
+ --disable-xlib-xcb \
+ # --enable-test-surfaces \ takes ages
+ #--enable-drm # breaks build
+ make
+}
+
+#check() {
+# #cd "$srcdir/$pkgname-$pkgver"
+# cd $srcdir/$pkgname-${_gitver}
+# make -k check || /bin/true # 165 Passed, 316 Failed [3 crashed, 10 expected], 23 Skipped
+#}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ #cd $srcdir/$pkgname-${_gitver}
+ make DESTDIR="$pkgdir" install
+}
diff --git a/testing/cairo/cairo-1.10.0-buggy_gradients.patch b/testing/cairo/cairo-1.10.0-buggy_gradients.patch
new file mode 100644
index 000000000..368e356d3
--- /dev/null
+++ b/testing/cairo/cairo-1.10.0-buggy_gradients.patch
@@ -0,0 +1,13 @@
+--- a/src/cairo-xlib-display.c.ubuntu 2010-08-04 11:57:49.000000000 +0200
++++ b/src/cairo-xlib-display.c 2010-08-04 11:58:28.000000000 +0200
+@@ -353,11 +353,7 @@
+ /* Prior to Render 0.10, there is no protocol support for gradients and
+ * we call function stubs instead, which would silently consume the drawing.
+ */
+-#if RENDER_MAJOR == 0 && RENDER_MINOR < 10
+ display->buggy_gradients = TRUE;
+-#else
+- display->buggy_gradients = FALSE;
+-#endif
+ display->buggy_pad_reflect = FALSE;
+ display->buggy_repeat = FALSE;
diff --git a/testing/cairo/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch b/testing/cairo/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch
new file mode 100644
index 000000000..e3bb30580
--- /dev/null
+++ b/testing/cairo/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch
@@ -0,0 +1,275 @@
+From f228769dfe5a8b5d73c49a41e95e31ed73a77fb3 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri, 08 Jun 2012 16:22:41 +0000
+Subject: polygon-reduce: Reduce broken stopped-edge continuation
+
+This is hopefully a lesser used path and the attempted optimisation to
+continue a stopped edge with a colinear stopped edge highly unlikely and
+lost in the noise of the general inefficiency of the routine. As it was
+broken, rather than attempt to rectify the "optimisation" remove it.
+
+Reported-by: Evangelos Foutras <evangelos@foutrelis.com>
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50852
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+---
+diff --git a/src/cairo-polygon-reduce.c b/src/cairo-polygon-reduce.c
+index 8758070..ea457fe 100644
+--- a/src/cairo-polygon-reduce.c
++++ b/src/cairo-polygon-reduce.c
+@@ -42,6 +42,8 @@
+ #include "cairo-freelist-private.h"
+ #include "cairo-combsort-inline.h"
+
++#define DEBUG_POLYGON 0
++
+ typedef cairo_point_t cairo_bo_point32_t;
+
+ typedef struct _cairo_bo_intersect_ordinate {
+@@ -114,7 +116,6 @@ typedef struct _cairo_bo_event_queue {
+
+ typedef struct _cairo_bo_sweep_line {
+ cairo_bo_edge_t *head;
+- cairo_bo_edge_t *stopped;
+ int32_t current_y;
+ cairo_bo_edge_t *current_edge;
+ } cairo_bo_sweep_line_t;
+@@ -476,8 +477,8 @@ edges_compare_x_for_y (const cairo_bo_edge_t *a,
+ static inline int
+ _line_equal (const cairo_line_t *a, const cairo_line_t *b)
+ {
+- return a->p1.x == b->p1.x && a->p1.y == b->p1.y &&
+- a->p2.x == b->p2.x && a->p2.y == b->p2.y;
++ return (a->p1.x == b->p1.x && a->p1.y == b->p1.y &&
++ a->p2.x == b->p2.x && a->p2.y == b->p2.y);
+ }
+
+ static int
+@@ -1024,7 +1025,6 @@ static void
+ _cairo_bo_sweep_line_init (cairo_bo_sweep_line_t *sweep_line)
+ {
+ sweep_line->head = NULL;
+- sweep_line->stopped = NULL;
+ sweep_line->current_y = INT32_MIN;
+ sweep_line->current_edge = NULL;
+ }
+@@ -1139,6 +1139,8 @@ edges_colinear (const cairo_bo_edge_t *a, const cairo_bo_edge_t *b)
+ */
+ if (a->edge.line.p1.y == b->edge.line.p1.y) {
+ return a->edge.line.p1.x == b->edge.line.p1.x;
++ } else if (a->edge.line.p2.y == b->edge.line.p2.y) {
++ return a->edge.line.p2.x == b->edge.line.p2.x;
+ } else if (a->edge.line.p1.y < b->edge.line.p1.y) {
+ return edge_compare_for_y_against_x (b,
+ a->edge.line.p1.y,
+@@ -1205,82 +1207,48 @@ _active_edges_to_polygon (cairo_bo_edge_t *left,
+ cairo_polygon_t *polygon)
+ {
+ cairo_bo_edge_t *right;
++ unsigned int mask;
+
+- if (fill_rule == CAIRO_FILL_RULE_WINDING) {
+- while (left != NULL) {
+- int in_out = left->edge.dir;
+-
+- right = left->next;
+- if (left->deferred.right == NULL) {
+- while (right != NULL && right->deferred.right == NULL)
+- right = right->next;
+-
+- if (right != NULL && edges_colinear (left, right)) {
+- /* continuation on left */
+- left->deferred = right->deferred;
+- right->deferred.right = NULL;
+- }
+- }
+-
+- right = left->next;
+- while (right != NULL) {
+- if (right->deferred.right != NULL)
+- _cairo_bo_edge_end (right, top, polygon);
+-
+- in_out += right->edge.dir;
+- if (in_out == 0) {
+- cairo_bo_edge_t *next;
+- cairo_bool_t skip = FALSE;
+-
+- /* skip co-linear edges */
+- next = right->next;
+- if (next != NULL)
+- skip = edges_colinear (right, next);
++ if (fill_rule == CAIRO_FILL_RULE_WINDING)
++ mask = ~0;
++ else
++ mask = 1;
+
+- if (! skip)
+- break;
+- }
++ while (left != NULL) {
++ int in_out = left->edge.dir;
+
++ right = left->next;
++ if (left->deferred.right == NULL) {
++ while (right != NULL && right->deferred.right == NULL)
+ right = right->next;
+- }
+-
+- _cairo_bo_edge_start_or_continue (left, right, top, polygon);
+
+- left = right;
+- if (left != NULL)
+- left = left->next;
++ if (right != NULL && edges_colinear (left, right)) {
++ /* continuation on left */
++ left->deferred = right->deferred;
++ right->deferred.right = NULL;
++ }
+ }
+- } else {
+- while (left != NULL) {
+- int in_out = 0;
+
+- right = left->next;
+- while (right != NULL) {
+- if (right->deferred.right != NULL)
+- _cairo_bo_edge_end (right, top, polygon);
++ right = left->next;
++ while (right != NULL) {
++ if (right->deferred.right != NULL)
++ _cairo_bo_edge_end (right, top, polygon);
+
+- if ((in_out++ & 1) == 0) {
+- cairo_bo_edge_t *next;
+- cairo_bool_t skip = FALSE;
+-
+- /* skip co-linear edges */
+- next = right->next;
+- if (next != NULL)
+- skip = edges_colinear (right, next);
+-
+- if (! skip)
+- break;
+- }
+-
+- right = right->next;
++ in_out += right->edge.dir;
++ if ((in_out & mask) == 0) {
++ /* skip co-linear edges */
++ if (right->next == NULL || !edges_colinear (right, right->next))
++ break;
+ }
+
+- _cairo_bo_edge_start_or_continue (left, right, top, polygon);
+-
+- left = right;
+- if (left != NULL)
+- left = left->next;
++ right = right->next;
+ }
++
++ _cairo_bo_edge_start_or_continue (left, right, top, polygon);
++
++ left = right;
++ if (left != NULL)
++ left = left->next;
+ }
+ }
+
+@@ -1303,12 +1271,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t **start_events,
+
+ while ((event = _cairo_bo_event_dequeue (&event_queue))) {
+ if (event->point.y != sweep_line.current_y) {
+- for (e1 = sweep_line.stopped; e1; e1 = e1->next) {
+- if (e1->deferred.right != NULL)
+- _cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
+- }
+- sweep_line.stopped = NULL;
+-
+ _active_edges_to_polygon (sweep_line.head,
+ sweep_line.current_y,
+ fill_rule, polygon);
+@@ -1328,23 +1290,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t **start_events,
+ if (unlikely (status))
+ goto unwind;
+
+- /* check to see if this is a continuation of a stopped edge */
+- /* XXX change to an infinitesimal lengthening rule */
+- for (left = sweep_line.stopped; left; left = left->next) {
+- if (e1->edge.top <= left->edge.bottom &&
+- edges_colinear (e1, left))
+- {
+- e1->deferred = left->deferred;
+- if (left->prev != NULL)
+- left->prev = left->next;
+- else
+- sweep_line.stopped = left->next;
+- if (left->next != NULL)
+- left->next->prev = left->prev;
+- break;
+- }
+- }
+-
+ left = e1->prev;
+ right = e1->next;
+
+@@ -1371,14 +1316,8 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t **start_events,
+
+ _cairo_bo_sweep_line_delete (&sweep_line, e1);
+
+- /* first, check to see if we have a continuation via a fresh edge */
+- if (e1->deferred.right != NULL) {
+- e1->next = sweep_line.stopped;
+- if (sweep_line.stopped != NULL)
+- sweep_line.stopped->prev = e1;
+- sweep_line.stopped = e1;
+- e1->prev = NULL;
+- }
++ if (e1->deferred.right != NULL)
++ _cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
+
+ if (left != NULL && right != NULL) {
+ status = _cairo_bo_event_queue_insert_if_intersect_below_current_y (&event_queue, left, right);
+@@ -1420,10 +1359,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t **start_events,
+ }
+ }
+
+- for (e1 = sweep_line.stopped; e1; e1 = e1->next) {
+- if (e1->deferred.right != NULL)
+- _cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
+- }
+ unwind:
+ _cairo_bo_event_queue_fini (&event_queue);
+
+@@ -1447,6 +1382,12 @@ _cairo_polygon_reduce (cairo_polygon_t *polygon,
+ if (unlikely (0 == num_events))
+ return CAIRO_STATUS_SUCCESS;
+
++ if (DEBUG_POLYGON) {
++ FILE *file = fopen ("reduce_in.txt", "w");
++ _cairo_debug_print_polygon (file, polygon);
++ fclose (file);
++ }
++
+ events = stack_events;
+ event_ptrs = stack_event_ptrs;
+ if (num_events > ARRAY_LENGTH (stack_events)) {
+@@ -1482,10 +1423,16 @@ _cairo_polygon_reduce (cairo_polygon_t *polygon,
+ num_events,
+ fill_rule,
+ polygon);
+- polygon->num_limits = num_limits;
++ polygon->num_limits = num_limits;
+
+ if (events != stack_events)
+ free (events);
+
++ if (DEBUG_POLYGON) {
++ FILE *file = fopen ("reduce_out.txt", "w");
++ _cairo_debug_print_polygon (file, polygon);
++ fclose (file);
++ }
++
+ return status;
+ }
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/testing/cairo/git_fixes.patch b/testing/cairo/git_fixes.patch
new file mode 100644
index 000000000..6ad8979eb
--- /dev/null
+++ b/testing/cairo/git_fixes.patch
@@ -0,0 +1,1086 @@
+From ede11b2954db19e3ca9d31cef7d04a7bf0e42ddc Mon Sep 17 00:00:00 2001
+From: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun, 25 Mar 2012 18:37:14 +0000
+Subject: Fix math in comments
+
+---
+diff --git a/src/cairo-arc.c b/src/cairo-arc.c
+index dc07fee..6977e88 100644
+--- a/src/cairo-arc.c
++++ b/src/cairo-arc.c
+@@ -139,7 +139,7 @@ _arc_segments_needed (double angle,
+
+ From that paper, a very practical value of h is:
+
+- h = 4/3 * tan(angle/4)
++ h = 4/3 * R * tan(angle/4)
+
+ This value does not give the spline with minimal error, but it does
+ provide a very good approximation, (6th-order convergence), and the
+--
+cgit v0.9.0.2-2-gbebe
+From fba21ef2a4c4eb343668267fda713aedbb6af2a4 Mon Sep 17 00:00:00 2001
+From: Henry (Yu) Song <hsong@sisa.samsung.com>
+Date: Tue, 27 Mar 2012 21:25:37 +0000
+Subject: gl: use font's antialias option to check whether it needs mask
+
+There is need to loop over number of glyphs to check wether the glyph
+image is a ARGB32 as the font's antialias option can be used for checking.
+If antialias is SUBPIXEL or BEST, the glyph surface will be ARGB32,
+otherwise it will be A8 format. Therefore we will only be using
+component-alpha at SUBPIXEL (or better) font quality and only then need
+a mask for multiple pass glyph composition.
+---
+diff --git a/src/cairo-gl-glyphs.c b/src/cairo-gl-glyphs.c
+index 832956f..9756ea4 100644
+--- a/src/cairo-gl-glyphs.c
++++ b/src/cairo-gl-glyphs.c
+@@ -427,23 +427,15 @@ _cairo_gl_composite_glyphs (void *_dst,
+
+ TRACE ((stderr, "%s\n", __FUNCTION__));
+
+- /* If any of the glyphs are component alpha, we have to go through a mask,
+- * since only _cairo_gl_surface_composite() currently supports component
+- * alpha.
++ /* If any of the glyphs require component alpha, we have to go through
++ * a mask, since only _cairo_gl_surface_composite() currently supports
++ * component alpha.
+ */
+- if (!dst->base.is_clear && ! info->use_mask && op != CAIRO_OPERATOR_OVER) {
+- for (i = 0; i < info->num_glyphs; i++) {
+- cairo_scaled_glyph_t *scaled_glyph;
+-
+- if (_cairo_scaled_glyph_lookup (info->font, info->glyphs[i].index,
+- CAIRO_SCALED_GLYPH_INFO_SURFACE,
+- &scaled_glyph) == CAIRO_INT_STATUS_SUCCESS &&
+- scaled_glyph->surface->format == CAIRO_FORMAT_ARGB32)
+- {
+- info->use_mask = TRUE;
+- break;
+- }
+- }
++ if (!dst->base.is_clear && ! info->use_mask && op != CAIRO_OPERATOR_OVER &&
++ (info->font->options.antialias == CAIRO_ANTIALIAS_SUBPIXEL ||
++ info->font->options.antialias == CAIRO_ANTIALIAS_BEST))
++ {
++ info->use_mask = TRUE;
+ }
+
+ if (info->use_mask) {
+--
+cgit v0.9.0.2-2-gbebe
+From d304f0e57be8036719c3709e2419487326369105 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed, 28 Mar 2012 23:32:36 +0000
+Subject: composite-rectangles: Trim extents for SOURCE and CLEAR to the mask
+
+The SOURCE and CLEAR are the odd pair in Cairo's range of operators that
+are bound by the shape/mask, but are unbound by the source. This
+regularly leads to bugs as only track the bound/unbound rectangles and
+confuse the meaning when bound only by the mask.
+
+What is required is that the unbound extents in this case is only
+trimmed by the mask (the bounded extents are still the intersection of
+all).
+
+Fixes bug-source-cu
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+---
+diff --git a/src/cairo-composite-rectangles.c b/src/cairo-composite-rectangles.c
+index 106571e..8c5cd5a 100644
+--- a/src/cairo-composite-rectangles.c
++++ b/src/cairo-composite-rectangles.c
+@@ -147,8 +147,12 @@ _cairo_composite_rectangles_intersect (cairo_composite_rectangles_t *extents,
+ if (! ret && extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK)
+ return CAIRO_INT_STATUS_NOTHING_TO_DO;
+
+- if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE))
++ if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) {
+ extents->unbounded = extents->bounded;
++ } else if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) {
++ if (!_cairo_rectangle_intersect (&extents->unbounded, &extents->mask))
++ return CAIRO_INT_STATUS_NOTHING_TO_DO;
++ }
+
+ extents->clip = _cairo_clip_reduce_for_composite (clip, extents);
+ if (_cairo_clip_is_all_clipped (extents->clip))
+@@ -199,8 +203,12 @@ _cairo_composite_rectangles_intersect_source_extents (cairo_composite_rectangles
+ rect.height == extents->bounded.height)
+ return CAIRO_INT_STATUS_SUCCESS;
+
+- if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE))
++ if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) {
+ extents->unbounded = extents->bounded;
++ } else if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) {
++ if (!_cairo_rectangle_intersect (&extents->unbounded, &extents->mask))
++ return CAIRO_INT_STATUS_NOTHING_TO_DO;
++ }
+
+ clip = extents->clip;
+ extents->clip = _cairo_clip_reduce_for_composite (clip, extents);
+@@ -253,8 +261,12 @@ _cairo_composite_rectangles_intersect_mask_extents (cairo_composite_rectangles_t
+ mask.height == extents->bounded.height)
+ return CAIRO_INT_STATUS_SUCCESS;
+
+- if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE))
++ if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) {
+ extents->unbounded = extents->bounded;
++ } else if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) {
++ if (!_cairo_rectangle_intersect (&extents->unbounded, &extents->mask))
++ return CAIRO_INT_STATUS_NOTHING_TO_DO;
++ }
+
+ clip = extents->clip;
+ extents->clip = _cairo_clip_reduce_for_composite (clip, extents);
+--
+cgit v0.9.0.2-2-gbebe
+From af6e084dd78fcbb8ecce46c57f655f5e24343b8c Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu, 29 Mar 2012 13:48:24 +0000
+Subject: cairoint: Mark PDF surface as requiring the deflate stream output
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+---
+diff --git a/src/cairoint.h b/src/cairoint.h
+index 9a8003e..9f20d51 100644
+--- a/src/cairoint.h
++++ b/src/cairoint.h
+@@ -73,7 +73,10 @@
+ #include "cairo-compiler-private.h"
+ #include "cairo-error-private.h"
+
+-#if CAIRO_HAS_PS_SURFACE || CAIRO_HAS_SCRIPT_SURFACE || CAIRO_HAS_XML_SURFACE
++#if CAIRO_HAS_PDF_SURFACE || \
++ CAIRO_HAS_PS_SURFACE || \
++ CAIRO_HAS_SCRIPT_SURFACE || \
++ CAIRO_HAS_XML_SURFACE
+ #define CAIRO_HAS_DEFLATE_STREAM 1
+ #endif
+
+@@ -84,7 +87,9 @@
+ #define CAIRO_HAS_FONT_SUBSET 1
+ #endif
+
+-#if CAIRO_HAS_PS_SURFACE || CAIRO_HAS_PDF_SURFACE || CAIRO_HAS_FONT_SUBSET
++#if CAIRO_HAS_PS_SURFACE || \
++ CAIRO_HAS_PDF_SURFACE || \
++ CAIRO_HAS_FONT_SUBSET
+ #define CAIRO_HAS_PDF_OPERATORS 1
+ #endif
+
+--
+cgit v0.9.0.2-2-gbebe
+From a965b0f95fdeb567f7ccb51f7c8c47735a61e2d9 Mon Sep 17 00:00:00 2001
+From: Henry (Yu) Song <hsong@sisa.samsung.com>
+Date: Thu, 29 Mar 2012 01:08:51 +0000
+Subject: gl: fix y-axis origin when map_to_image() for non texture GL surface
+
+We need to fix y-axis origin when map a GL surface to image surface for
+non-texture GL surface.
+
+Test cases: extended-blend-alpha-mask, extended-blend-mask.
+Although the image outputs is not right, but the image on the first grid
+(upper-left corner) is correct comparing to image output.
+---
+diff --git a/src/cairo-gl-surface.c b/src/cairo-gl-surface.c
+index 8bbf939..32ecf63 100644
+--- a/src/cairo-gl-surface.c
++++ b/src/cairo-gl-surface.c
+@@ -985,6 +985,7 @@ _cairo_gl_surface_map_to_image (void *abstract_surface,
+ unsigned int cpp;
+ cairo_bool_t invert;
+ cairo_status_t status;
++ int y;
+
+ /* Want to use a switch statement here but the compiler gets whiny. */
+ if (surface->base.content == CAIRO_CONTENT_COLOR_ALPHA) {
+@@ -1065,7 +1066,12 @@ _cairo_gl_surface_map_to_image (void *abstract_surface,
+ glPixelStorei (GL_PACK_ROW_LENGTH, image->stride / cpp);
+ if (invert)
+ glPixelStorei (GL_PACK_INVERT_MESA, 1);
+- glReadPixels (extents->x, extents->y,
++
++ y = extents->y;
++ if (! _cairo_gl_surface_is_texture (surface))
++ y = surface->height - extents->y - extents->height;
++
++ glReadPixels (extents->x, y,
+ extents->width, extents->height,
+ format, type, image->data);
+ if (invert)
+--
+cgit v0.9.0.2-2-gbebe
+From c77112c5464d7ff21052527f82f4d729cc509291 Mon Sep 17 00:00:00 2001
+From: Uli Schlachter <psychon@znc.in>
+Date: Mon, 02 Apr 2012 18:43:00 +0000
+Subject: xcb: Fix SHM in _get_image()
+
+Commit 2283ab9 introduced a logic error. Instead of falling back to the non-SHM
+path when getting the image via SHM failed, we now did the fallback when getting
+the image via SHM worked (which means that the SHM operation was a waste of
+time).
+
+Signed-off-by: Uli Schlachter <psychon@znc.in>
+---
+diff --git a/src/cairo-xcb-surface.c b/src/cairo-xcb-surface.c
+index fff4f52..6bedbda 100644
+--- a/src/cairo-xcb-surface.c
++++ b/src/cairo-xcb-surface.c
+@@ -367,7 +367,7 @@ _get_image (cairo_xcb_surface_t *surface,
+ if (use_shm) {
+ image = _get_shm_image (surface, x, y, width, height);
+ if (image) {
+- if (image->status) {
++ if (image->status == CAIRO_STATUS_SUCCESS) {
+ _cairo_xcb_connection_release (connection);
+ return image;
+ }
+--
+cgit v0.9.0.2-2-gbebe
+From cc247c346b75353f16ab40ac74c54cdd9663d16b Mon Sep 17 00:00:00 2001
+From: Henry (Yu) Song <hsong@sisa.samsung.com>
+Date: Mon, 02 Apr 2012 21:29:47 +0000
+Subject: gl: Remove an unused variable
+
+---
+diff --git a/src/cairo-gl-gradient.c b/src/cairo-gl-gradient.c
+index b364b92..ce7c0dd 100644
+--- a/src/cairo-gl-gradient.c
++++ b/src/cairo-gl-gradient.c
+@@ -207,7 +207,6 @@ _cairo_gl_gradient_create (cairo_gl_context_t *ctx,
+ cairo_status_t status;
+ int tex_width;
+ void *data;
+- cairo_gl_dispatch_t *dispatch = &ctx->dispatch;
+
+ if ((unsigned int) ctx->max_texture_size / 2 <= n_stops)
+ return CAIRO_INT_STATUS_UNSUPPORTED;
+--
+cgit v0.9.0.2-2-gbebe
+From 7a262fd398c8a1f3c9052e8d9ec459e27ff91b4d Mon Sep 17 00:00:00 2001
+From: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed, 04 Apr 2012 10:23:09 +0000
+Subject: fix bug in _cairo_image_analyze_color
+
+---
+diff --git a/src/cairo-image-surface.c b/src/cairo-image-surface.c
+index 8208a15..e860e1b 100644
+--- a/src/cairo-image-surface.c
++++ b/src/cairo-image-surface.c
+@@ -1130,9 +1130,12 @@ _cairo_image_analyze_color (cairo_image_surface_t *image)
+ if (image->color != CAIRO_IMAGE_UNKNOWN_COLOR)
+ return image->color;
+
+- if (image->format == CAIRO_FORMAT_A1 || image->format == CAIRO_FORMAT_A8)
++ if (image->format == CAIRO_FORMAT_A1)
+ return image->color = CAIRO_IMAGE_IS_MONOCHROME;
+
++ if (image->format == CAIRO_FORMAT_A8)
++ return image->color = CAIRO_IMAGE_IS_GRAYSCALE;
++
+ if (image->format == CAIRO_FORMAT_ARGB32) {
+ image->color = CAIRO_IMAGE_IS_MONOCHROME;
+ for (y = 0; y < image->height; y++) {
+--
+cgit v0.9.0.2-2-gbebe
+From 70b2856ed3d31b41e69b3d82fb9c5c11c2b3d3d4 Mon Sep 17 00:00:00 2001
+From: Adrian Johnson <ajohnson@redneon.com>
+Date: Thu, 05 Apr 2012 23:43:35 +0000
+Subject: type1-subset: use fallback font if glyph widths are calculated
+
+Bug 48349 has a pdf file with a Type 1 font where the glyph widths are
+of the form:
+
+34 9302 19 div hsbw
+---
+diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c
+index 607ac8e..ba1008a 100644
+--- a/src/cairo-type1-subset.c
++++ b/src/cairo-type1-subset.c
+@@ -751,6 +751,9 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font,
+ command = *p++;
+ switch (command) {
+ case TYPE1_CHARSTRING_COMMAND_HSBW:
++ if (! last_op_was_integer)
++ return CAIRO_INT_STATUS_UNSUPPORTED;
++
+ font->glyphs[glyph].width = font->build_stack.stack[1]/font->base.units_per_em;
+ font->build_stack.sp = 0;
+ last_op_was_integer = FALSE;
+@@ -797,6 +800,9 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font,
+ break;
+
+ case TYPE1_CHARSTRING_COMMAND_SBW:
++ if (! last_op_was_integer)
++ return CAIRO_INT_STATUS_UNSUPPORTED;
++
+ font->glyphs[glyph].width = font->build_stack.stack[2]/font->base.units_per_em;
+ font->build_stack.sp = 0;
+ last_op_was_integer = FALSE;
+--
+cgit v0.9.0.2-2-gbebe
+From a6d955fcc46ae2da8d6f3b2cadeae64c03066461 Mon Sep 17 00:00:00 2001
+From: Adrian Johnson <ajohnson@redneon.com>
+Date: Thu, 05 Apr 2012 23:53:50 +0000
+Subject: fix indentation in cairo_type1_font_subset_parse_charstring
+
+---
+diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c
+index ba1008a..ddef8ae 100644
+--- a/src/cairo-type1-subset.c
++++ b/src/cairo-type1-subset.c
+@@ -1,3 +1,4 @@
++/* -*- Mode: c; c-basic-offset: 4; indent-tabs-mode: t; tab-width: 8; -*- */
+ /* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2006 Red Hat, Inc
+@@ -750,86 +751,79 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font,
+ if (*p < 32) {
+ command = *p++;
+ switch (command) {
+- case TYPE1_CHARSTRING_COMMAND_HSBW:
+- if (! last_op_was_integer)
+- return CAIRO_INT_STATUS_UNSUPPORTED;
++ case TYPE1_CHARSTRING_COMMAND_HSBW:
++ if (! last_op_was_integer)
++ return CAIRO_INT_STATUS_UNSUPPORTED;
++
++ font->glyphs[glyph].width = font->build_stack.stack[1]/font->base.units_per_em;
++ font->build_stack.sp = 0;
++ last_op_was_integer = FALSE;
++ break;
++
++ case TYPE1_CHARSTRING_COMMAND_CALLSUBR:
++ if (font->subset_subrs &&
++ last_op_was_integer &&
++ font->build_stack.top_value >= 0 &&
++ font->build_stack.top_value < font->num_subrs)
++ {
++ subr_num = font->build_stack.top_value;
++ font->subrs[subr_num].used = TRUE;
++ last_op_was_integer = FALSE;
++ status = cairo_type1_font_subset_parse_charstring (font,
++ glyph,
++ font->subrs[subr_num].subr_string,
++ font->subrs[subr_num].subr_length);
++ } else {
++ font->subset_subrs = FALSE;
++ }
++ break;
++
++ case TYPE1_CHARSTRING_COMMAND_ESCAPE:
++ command = command << 8 | *p++;
++ switch (command) {
++ case TYPE1_CHARSTRING_COMMAND_SEAC:
++ /* The seac command takes five integer arguments. The
++ * last two are glyph indices into the PS standard
++ * encoding give the names of the glyphs that this
++ * glyph is composed from. All we need to do is to
++ * make sure those glyphs are present in the subset
++ * under their standard names. */
++ status = use_standard_encoding_glyph (font, font->build_stack.stack[3]);
++ if (unlikely (status))
++ return status;
++
++ status = use_standard_encoding_glyph (font, font->build_stack.stack[4]);
++ if (unlikely (status))
++ return status;
+
+- font->glyphs[glyph].width = font->build_stack.stack[1]/font->base.units_per_em;
+ font->build_stack.sp = 0;
+ last_op_was_integer = FALSE;
+ break;
+
+- case TYPE1_CHARSTRING_COMMAND_CALLSUBR:
+- if (font->subset_subrs &&
+- last_op_was_integer &&
+- font->build_stack.top_value >= 0 &&
+- font->build_stack.top_value < font->num_subrs)
+- {
+- subr_num = font->build_stack.top_value;
+- font->subrs[subr_num].used = TRUE;
+- last_op_was_integer = FALSE;
+- status = cairo_type1_font_subset_parse_charstring (font,
+- glyph,
+- font->subrs[subr_num].subr_string,
+- font->subrs[subr_num].subr_length);
+- } else {
+- font->subset_subrs = FALSE;
+- }
++ case TYPE1_CHARSTRING_COMMAND_SBW:
++ if (! last_op_was_integer)
++ return CAIRO_INT_STATUS_UNSUPPORTED;
++
++ font->glyphs[glyph].width = font->build_stack.stack[2]/font->base.units_per_em;
++ font->build_stack.sp = 0;
++ last_op_was_integer = FALSE;
+ break;
+
+- case TYPE1_CHARSTRING_COMMAND_ESCAPE:
+- command = command << 8 | *p++;
+- switch (command) {
+- case TYPE1_CHARSTRING_COMMAND_SEAC:
+- /* The seac command takes five integer arguments. The
+- * last two are glyph indices into the PS standard
+- * encoding give the names of the glyphs that this
+- * glyph is composed from. All we need to do is to
+- * make sure those glyphs are present in the subset
+- * under their standard names. */
+- status = use_standard_encoding_glyph (font, font->build_stack.stack[3]);
+- if (unlikely (status))
+- return status;
+-
+- status = use_standard_encoding_glyph (font, font->build_stack.stack[4]);
+- if (unlikely (status))
+- return status;
+-
+- font->build_stack.sp = 0;
+- last_op_was_integer = FALSE;
+- break;
+-
+- case TYPE1_CHARSTRING_COMMAND_SBW:
+- if (! last_op_was_integer)
+- return CAIRO_INT_STATUS_UNSUPPORTED;
+-
+- font->glyphs[glyph].width = font->build_stack.stack[2]/font->base.units_per_em;
+- font->build_stack.sp = 0;
+- last_op_was_integer = FALSE;
+- break;
+-
+- case TYPE1_CHARSTRING_COMMAND_CALLOTHERSUBR:
+- for (i = 0; i < font->build_stack.sp; i++)
+- font->ps_stack.other_subr_args[i] = font->build_stack.stack[i];
+- font->ps_stack.num_other_subr_args = font->build_stack.sp;
+- font->ps_stack.cur_other_subr_arg = 0;
+- font->build_stack.sp = 0;
+- last_op_was_integer = FALSE;
+- break;
+-
+- case TYPE1_CHARSTRING_COMMAND_POP:
+- if (font->ps_stack.num_other_subr_args > font->ps_stack.cur_other_subr_arg) {
+- font->build_stack.top_value = font->ps_stack.other_subr_args[font->ps_stack.cur_other_subr_arg++];
+- last_op_was_integer = TRUE;
+- } else {
+- font->subset_subrs = FALSE;
+- }
+- break;
+-
+- default:
+- font->build_stack.sp = 0;
+- last_op_was_integer = FALSE;
+- break;
++ case TYPE1_CHARSTRING_COMMAND_CALLOTHERSUBR:
++ for (i = 0; i < font->build_stack.sp; i++)
++ font->ps_stack.other_subr_args[i] = font->build_stack.stack[i];
++ font->ps_stack.num_other_subr_args = font->build_stack.sp;
++ font->ps_stack.cur_other_subr_arg = 0;
++ font->build_stack.sp = 0;
++ last_op_was_integer = FALSE;
++ break;
++
++ case TYPE1_CHARSTRING_COMMAND_POP:
++ if (font->ps_stack.num_other_subr_args > font->ps_stack.cur_other_subr_arg) {
++ font->build_stack.top_value = font->ps_stack.other_subr_args[font->ps_stack.cur_other_subr_arg++];
++ last_op_was_integer = TRUE;
++ } else {
++ font->subset_subrs = FALSE;
+ }
+ break;
+
+@@ -837,6 +831,13 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font,
+ font->build_stack.sp = 0;
+ last_op_was_integer = FALSE;
+ break;
++ }
++ break;
++
++ default:
++ font->build_stack.sp = 0;
++ last_op_was_integer = FALSE;
++ break;
+ }
+ } else {
+ /* integer argument */
+--
+cgit v0.9.0.2-2-gbebe
+From 8886220b5027296f5b3b95e9c2f93509108d3b9e Mon Sep 17 00:00:00 2001
+From: Adrian Johnson <ajohnson@redneon.com>
+Date: Fri, 06 Apr 2012 00:13:53 +0000
+Subject: type1-subset: if font name is prefixed with a subset tag, strip it off
+
+---
+diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c
+index ddef8ae..e507abe 100644
+--- a/src/cairo-type1-subset.c
++++ b/src/cairo-type1-subset.c
+@@ -381,6 +381,7 @@ cairo_type1_font_subset_get_fontname (cairo_type1_font_subset_t *font)
+ {
+ const char *start, *end, *segment_end;
+ char *s;
++ int i;
+
+ segment_end = font->header_segment + font->header_segment_size;
+ start = find_token (font->header_segment, segment_end, "/FontName");
+@@ -406,6 +407,16 @@ cairo_type1_font_subset_get_fontname (cairo_type1_font_subset_t *font)
+ return CAIRO_INT_STATUS_UNSUPPORTED;
+ }
+
++ /* If font name is prefixed with a subset tag, strip it off. */
++ if (strlen(start) > 7 && start[6] == '+') {
++ for (i = 0; i < 6; i++) {
++ if (start[i] < 'A' || start[i] > 'Z')
++ break;
++ }
++ if (i == 6)
++ start += 7;
++ }
++
+ font->base.base_font = strdup (start);
+ free (s);
+ if (unlikely (font->base.base_font == NULL))
+--
+cgit v0.9.0.2-2-gbebe
+From 8657ca10e34b0034602680b4304d47ecf90ccbfd Mon Sep 17 00:00:00 2001
+From: Adrian Johnson <ajohnson@redneon.com>
+Date: Fri, 06 Apr 2012 11:50:40 +0000
+Subject: fix _cairo_pattern_get_ink_extents to work with snapshot recording surfaces
+
+It had caused pdf bbox sizes to regress to page size bboxes.
+---
+diff --git a/src/cairo-pattern.c b/src/cairo-pattern.c
+index 27ba004..5b3e177 100644
+--- a/src/cairo-pattern.c
++++ b/src/cairo-pattern.c
+@@ -37,6 +37,7 @@
+ #include "cairo-path-private.h"
+ #include "cairo-pattern-private.h"
+ #include "cairo-recording-surface-private.h"
++#include "cairo-surface-snapshot-private.h"
+
+ #include <float.h>
+
+@@ -3666,6 +3667,9 @@ _cairo_pattern_get_ink_extents (const cairo_pattern_t *pattern,
+ (const cairo_surface_pattern_t *) pattern;
+ cairo_surface_t *surface = surface_pattern->surface;
+
++ if (_cairo_surface_is_snapshot (surface))
++ surface = _cairo_surface_snapshot_get_target (surface);
++
+ if (_cairo_surface_is_recording (surface)) {
+ cairo_matrix_t imatrix;
+ cairo_box_t box;
+--
+cgit v0.9.0.2-2-gbebe
+From 6f28f0b33cb12f3b2dd48c87da0018bd00c17107 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun, 08 Apr 2012 10:28:59 +0000
+Subject: stroke: Fix misuse of half_line_x for vertical caps on dashes
+
+A typo using half_line_x instead of half_line_y when emitting dashed
+segments of the rectilinear stroke.
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+---
+diff --git a/src/cairo-path-stroke-boxes.c b/src/cairo-path-stroke-boxes.c
+index 3e8c5a4..cc9dd19 100644
+--- a/src/cairo-path-stroke-boxes.c
++++ b/src/cairo-path-stroke-boxes.c
+@@ -342,15 +342,15 @@ _cairo_rectilinear_stroker_emit_segments_dashed (cairo_rectilinear_stroker_t *st
+ box.p1.x = box.p2.x - half_line_x;
+ }
+ if (out_slope.dy >= 0)
+- box.p1.y -= half_line_x;
++ box.p1.y -= half_line_y;
+ if (out_slope.dy <= 0)
+- box.p2.y += half_line_x;
++ box.p2.y += half_line_y;
+ } else {
+ if (box.p1.y <= box.p2.y) {
+ box.p1.y = box.p2.y;
+- box.p2.y += half_line_x;
++ box.p2.y += half_line_y;
+ } else {
+- box.p1.y = box.p2.y - half_line_x;
++ box.p1.y = box.p2.y - half_line_y;
+ }
+ if (out_slope.dx >= 0)
+ box.p1.x -= half_line_x;
+--
+cgit v0.9.0.2-2-gbebe
+From 113ec6bf0c8ed1ff12293d1ed2a2de9bd5b9904b Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun, 08 Apr 2012 16:58:13 +0000
+Subject: traps: Clip the trapezoid extents against the clip extents
+
+Just in case the clip polygon turns out to be much larger than the
+operation extents (silly us for not reducing it correctly) and lead to
+catastrophe, such as:
+
+Program received signal SIGSEGV, Segmentation fault.
+pixman_fill_sse2 (bits=<optimized out>, stride=4, bpp=8, x=0, y=0,
+width=3, height=-34811, data=0) at pixman-sse2.c:3369
+3369 *(uint16_t *)d = data;
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+---
+diff --git a/src/cairo-traps-compositor.c b/src/cairo-traps-compositor.c
+index 284a0be..c49e208 100644
+--- a/src/cairo-traps-compositor.c
++++ b/src/cairo-traps-compositor.c
+@@ -218,8 +218,13 @@ combine_clip_as_traps (const cairo_traps_compositor_t *compositor,
+ _cairo_traps_fini (&traps);
+ cairo_surface_destroy (src);
+
+- if (status == CAIRO_INT_STATUS_SUCCESS &&
+- (fixup.width < extents->width || fixup.height < extents->height)) {
++ if (unlikely (status))
++ return status;
++
++ if (! _cairo_rectangle_intersect (&fixup, extents))
++ return CAIRO_STATUS_SUCCESS;
++
++ if (fixup.width < extents->width || fixup.height < extents->height) {
+ cairo_boxes_t clear;
+
+ _cairo_boxes_init (&clear);
+--
+cgit v0.9.0.2-2-gbebe
+From de61681574eb7d6e0e497ea7f25797e3d9b20ac4 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon, 09 Apr 2012 11:47:34 +0000
+Subject: build: Disable -Wset-but-unused-variable
+
+This is too noisy in the current build, and masking more important
+warnings.
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+---
+diff --git a/build/configure.ac.warnings b/build/configure.ac.warnings
+index 3eb0104..f1b17f4 100644
+--- a/build/configure.ac.warnings
++++ b/build/configure.ac.warnings
+@@ -21,6 +21,9 @@ MAYBE_WARN="-Wall -Wextra \
+ -Wno-missing-field-initializers -Wno-unused-parameter \
+ -Wno-attributes -Wno-long-long -Winline"
+
++# -Wunused-but-set-variable is too noisy at present
++NO_WARN="-Wno-unused-but-set-variable"
++
+ dnl Sun Studio 12 likes to rag at us for abusing enums like
+ dnl having cairo_status_t variables hold cairo_int_status_t
+ dnl values. It's bad, we know. Now please be quiet.
+@@ -34,6 +37,8 @@ MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common -flto"
+ dnl Also to turn various gcc/glibc-specific preprocessor checks
+ MAYBE_WARN="$MAYBE_WARN -Wp,-D_FORTIFY_SOURCE=2"
+
++MAYBE_WARN="$MAYBE_WARN $NO_WARN"
++
+ # invalidate cached value if MAYBE_WARN has changed
+ if test "x$cairo_cv_warn_maybe" != "x$MAYBE_WARN"; then
+ unset cairo_cv_warn_cflags
+--
+cgit v0.9.0.2-2-gbebe
+From 7cb5053c0694992320b5f7ea3b91ea497431813b Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon, 09 Apr 2012 11:49:20 +0000
+Subject: analysis: Apply the integer translation to the bbox as well
+
+The bbox is used to compute the ink extents (and so the pattern extents
+of a recording surface) and if given an integer translation we failed to
+transform the bbox into the target space.
+
+Fixes mask (pdf).
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+---
+diff --git a/src/cairo-analysis-surface.c b/src/cairo-analysis-surface.c
+index b8abe02..8878f62 100644
+--- a/src/cairo-analysis-surface.c
++++ b/src/cairo-analysis-surface.c
+@@ -220,6 +220,14 @@ _add_operation (cairo_analysis_surface_t *surface,
+ if (_cairo_matrix_is_integer_translation (&surface->ctm, &tx, &ty)) {
+ rect->x += tx;
+ rect->y += ty;
++
++ tx = _cairo_fixed_from_int (tx);
++ bbox.p1.x += tx;
++ bbox.p2.x += tx;
++
++ ty = _cairo_fixed_from_int (ty);
++ bbox.p1.y += ty;
++ bbox.p2.y += ty;
+ } else {
+ _cairo_matrix_transform_bounding_box_fixed (&surface->ctm,
+ &bbox, NULL);
+--
+cgit v0.9.0.2-2-gbebe
+From 038e4991912656a3239ca82d60056ca129016ba6 Mon Sep 17 00:00:00 2001
+From: Adrian Johnson <ajohnson@redneon.com>
+Date: Mon, 09 Apr 2012 08:31:44 +0000
+Subject: pdf: avoid unnecessary use of patterns in mask groups
+
+---
+diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c
+index 4930e72..78537ce 100644
+--- a/src/cairo-pdf-surface.c
++++ b/src/cairo-pdf-surface.c
+@@ -5703,56 +5703,68 @@ _cairo_pdf_surface_write_mask_group (cairo_pdf_surface_t *surface,
+ if (unlikely (status))
+ return status;
+
+- pattern_res.id = 0;
+- gstate_res.id = 0;
+- status = _cairo_pdf_surface_add_pdf_pattern (surface, group->mask, NULL,
+- &pattern_res, &gstate_res);
+- if (unlikely (status))
+- return status;
+-
+- if (gstate_res.id != 0) {
+- smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents);
+- if (unlikely (smask_group == NULL))
+- return _cairo_error (CAIRO_STATUS_NO_MEMORY);
+-
+- smask_group->width = group->width;
+- smask_group->height = group->height;
+- smask_group->operation = PDF_PAINT;
+- smask_group->source = cairo_pattern_reference (group->mask);
+- smask_group->source_res = pattern_res;
+- status = _cairo_pdf_surface_add_smask_group (surface, smask_group);
+- if (unlikely (status)) {
+- _cairo_pdf_smask_group_destroy (smask_group);
+- return status;
+- }
+-
+- status = _cairo_pdf_surface_add_smask (surface, gstate_res);
+- if (unlikely (status))
+- return status;
+-
+- status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res);
++ if (_can_paint_pattern (group->mask)) {
++ _cairo_output_stream_printf (surface->output, "q\n");
++ status = _cairo_pdf_surface_paint_pattern (surface,
++ group->mask,
++ &group->extents,
++ FALSE);
+ if (unlikely (status))
+ return status;
+
+- _cairo_output_stream_printf (surface->output,
+- "q /s%d gs /x%d Do Q\n",
+- gstate_res.id,
+- smask_group->group_res.id);
++ _cairo_output_stream_printf (surface->output, "Q\n");
+ } else {
+- status = _cairo_pdf_surface_select_pattern (surface, group->mask, pattern_res, FALSE);
++ pattern_res.id = 0;
++ gstate_res.id = 0;
++ status = _cairo_pdf_surface_add_pdf_pattern (surface, group->mask, NULL,
++ &pattern_res, &gstate_res);
+ if (unlikely (status))
+ return status;
+
+- _cairo_output_stream_printf (surface->output,
+- "%f %f %f %f re f\n",
+- bbox.p1.x,
+- bbox.p1.y,
+- bbox.p2.x - bbox.p1.x,
+- bbox.p2.y - bbox.p1.y);
++ if (gstate_res.id != 0) {
++ smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents);
++ if (unlikely (smask_group == NULL))
++ return _cairo_error (CAIRO_STATUS_NO_MEMORY);
+
+- status = _cairo_pdf_surface_unselect_pattern (surface);
+- if (unlikely (status))
+- return status;
++ smask_group->width = group->width;
++ smask_group->height = group->height;
++ smask_group->operation = PDF_PAINT;
++ smask_group->source = cairo_pattern_reference (group->mask);
++ smask_group->source_res = pattern_res;
++ status = _cairo_pdf_surface_add_smask_group (surface, smask_group);
++ if (unlikely (status)) {
++ _cairo_pdf_smask_group_destroy (smask_group);
++ return status;
++ }
++
++ status = _cairo_pdf_surface_add_smask (surface, gstate_res);
++ if (unlikely (status))
++ return status;
++
++ status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res);
++ if (unlikely (status))
++ return status;
++
++ _cairo_output_stream_printf (surface->output,
++ "q /s%d gs /x%d Do Q\n",
++ gstate_res.id,
++ smask_group->group_res.id);
++ } else {
++ status = _cairo_pdf_surface_select_pattern (surface, group->mask, pattern_res, FALSE);
++ if (unlikely (status))
++ return status;
++
++ _cairo_output_stream_printf (surface->output,
++ "%f %f %f %f re f\n",
++ bbox.p1.x,
++ bbox.p1.y,
++ bbox.p2.x - bbox.p1.x,
++ bbox.p2.y - bbox.p1.y);
++
++ status = _cairo_pdf_surface_unselect_pattern (surface);
++ if (unlikely (status))
++ return status;
++ }
+ }
+
+ status = _cairo_pdf_surface_close_group (surface, &mask_group);
+@@ -5764,54 +5776,66 @@ _cairo_pdf_surface_write_mask_group (cairo_pdf_surface_t *surface,
+ if (unlikely (status))
+ return status;
+
+- pattern_res.id = 0;
+- gstate_res.id = 0;
+- status = _cairo_pdf_surface_add_pdf_pattern (surface, group->source, NULL,
+- &pattern_res, &gstate_res);
+- if (unlikely (status))
+- return status;
+-
+- if (gstate_res.id != 0) {
+- smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents);
+- if (unlikely (smask_group == NULL))
+- return _cairo_error (CAIRO_STATUS_NO_MEMORY);
+-
+- smask_group->operation = PDF_PAINT;
+- smask_group->source = cairo_pattern_reference (group->source);
+- smask_group->source_res = pattern_res;
+- status = _cairo_pdf_surface_add_smask_group (surface, smask_group);
+- if (unlikely (status)) {
+- _cairo_pdf_smask_group_destroy (smask_group);
+- return status;
+- }
+-
+- status = _cairo_pdf_surface_add_smask (surface, gstate_res);
+- if (unlikely (status))
+- return status;
+-
+- status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res);
++ if (_can_paint_pattern (group->source)) {
++ _cairo_output_stream_printf (surface->output, "q\n");
++ status = _cairo_pdf_surface_paint_pattern (surface,
++ group->source,
++ &group->extents,
++ FALSE);
+ if (unlikely (status))
+ return status;
+
+- _cairo_output_stream_printf (surface->output,
+- "q /s%d gs /x%d Do Q\n",
+- gstate_res.id,
+- smask_group->group_res.id);
++ _cairo_output_stream_printf (surface->output, "Q\n");
+ } else {
+- status = _cairo_pdf_surface_select_pattern (surface, group->source, pattern_res, FALSE);
++ pattern_res.id = 0;
++ gstate_res.id = 0;
++ status = _cairo_pdf_surface_add_pdf_pattern (surface, group->source, NULL,
++ &pattern_res, &gstate_res);
+ if (unlikely (status))
+ return status;
+
+- _cairo_output_stream_printf (surface->output,
+- "%f %f %f %f re f\n",
+- bbox.p1.x,
+- bbox.p1.y,
+- bbox.p2.x - bbox.p1.x,
+- bbox.p2.y - bbox.p1.y);
++ if (gstate_res.id != 0) {
++ smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents);
++ if (unlikely (smask_group == NULL))
++ return _cairo_error (CAIRO_STATUS_NO_MEMORY);
+
+- status = _cairo_pdf_surface_unselect_pattern (surface);
+- if (unlikely (status))
+- return status;
++ smask_group->operation = PDF_PAINT;
++ smask_group->source = cairo_pattern_reference (group->source);
++ smask_group->source_res = pattern_res;
++ status = _cairo_pdf_surface_add_smask_group (surface, smask_group);
++ if (unlikely (status)) {
++ _cairo_pdf_smask_group_destroy (smask_group);
++ return status;
++ }
++
++ status = _cairo_pdf_surface_add_smask (surface, gstate_res);
++ if (unlikely (status))
++ return status;
++
++ status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res);
++ if (unlikely (status))
++ return status;
++
++ _cairo_output_stream_printf (surface->output,
++ "q /s%d gs /x%d Do Q\n",
++ gstate_res.id,
++ smask_group->group_res.id);
++ } else {
++ status = _cairo_pdf_surface_select_pattern (surface, group->source, pattern_res, FALSE);
++ if (unlikely (status))
++ return status;
++
++ _cairo_output_stream_printf (surface->output,
++ "%f %f %f %f re f\n",
++ bbox.p1.x,
++ bbox.p1.y,
++ bbox.p2.x - bbox.p1.x,
++ bbox.p2.y - bbox.p1.y);
++
++ status = _cairo_pdf_surface_unselect_pattern (surface);
++ if (unlikely (status))
++ return status;
++ }
+ }
+
+ status = _cairo_pdf_surface_close_group (surface, NULL);
+--
+cgit v0.9.0.2-2-gbebe
+From 9fcbe25c2dcf831783bb0fd20af9754c0b5c409b Mon Sep 17 00:00:00 2001
+From: Maarten Bosmans <mkbosmans@gmail.com>
+Date: Mon, 09 Apr 2012 19:33:50 +0000
+Subject: Protect code using dlfcn.h with CAIRO_HAS_DLSYM
+
+---
+diff --git a/configure.ac b/configure.ac
+index cedfebe..5d2e6ec 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -52,6 +52,7 @@ AM_CONDITIONAL(CAIRO_HAS_DL, test "x$have_dl" = "xyes")
+ if test "x$have_dlsym" = "xyes"; then
+ AC_DEFINE([CAIRO_HAS_DLSYM], 1, [Define to 1 if dlsym is available])
+ fi
++AM_CONDITIONAL(CAIRO_HAS_DLSYM, test "x$have_dlsym" = "xyes")
+
+ dnl ===========================================================================
+
+diff --git a/util/Makefile.am b/util/Makefile.am
+index f202f35..82d0a80 100644
+--- a/util/Makefile.am
++++ b/util/Makefile.am
+@@ -12,20 +12,24 @@ endif
+
+ if CAIRO_HAS_TRACE
+ SUBDIRS += cairo-trace
++if CAIRO_HAS_DLSYM
+ if CAIRO_HAS_SCRIPT_SURFACE
+ if CAIRO_HAS_TEE_SURFACE
+ SUBDIRS += cairo-fdr
+ endif
+ endif
+ endif
++endif
+
+ if BUILD_SPHINX
++if CAIRO_HAS_DLSYM
+ if CAIRO_HAS_SCRIPT_SURFACE
+ if CAIRO_HAS_TEE_SURFACE
+ SUBDIRS += cairo-sphinx
+ endif
+ endif
+ endif
++endif
+
+ AM_CPPFLAGS = -I$(top_srcdir)/src \
+ -I$(top_builddir)/src \
+--
+cgit v0.9.0.2-2-gbebe
+From c7b86ab97be1d3d3ccf43b652832f148a2fcf290 Mon Sep 17 00:00:00 2001
+From: Adrian Johnson <ajohnson@redneon.com>
+Date: Tue, 10 Apr 2012 13:04:05 +0000
+Subject: any2ppm: fix missing enumeration warning
+
+---
+diff --git a/test/any2ppm.c b/test/any2ppm.c
+index 6b61c47..2403347 100644
+--- a/test/any2ppm.c
++++ b/test/any2ppm.c
+@@ -193,6 +193,7 @@ write_ppm (cairo_surface_t *surface, int fd)
+ break;
+ case CAIRO_FORMAT_A1:
+ case CAIRO_FORMAT_RGB16_565:
++ case CAIRO_FORMAT_RGB30:
+ case CAIRO_FORMAT_INVALID:
+ default:
+ return "unhandled image format";
+--
+cgit v0.9.0.2-2-gbebe
+From 09de481ce5f6ed1c38c0d5bf3af7c60642c4c947 Mon Sep 17 00:00:00 2001
+From: Gilles Espinasse <g.esp@free.fr>
+Date: Sat, 07 Apr 2012 21:09:51 +0000
+Subject: Cosmetic configure fix
+
+'how to allow undefined symbols in shared libraries' test should use CAIRO_CC_TRY_FLAG_SILENT or configure display is a bit out of order like this
+
+checking how to allow undefined symbols in shared libraries used by test suite... checking whether gcc supports -Wl,--allow-shlib-undefined... yes
+-Wl,--allow-shlib-undefined
+
+Signed-off-by: Gilles Espinasse <g.esp@free.fr>
+Signed-off-by: Uli Schlachter <psychon@znc.in>
+---
+diff --git a/build/configure.ac.warnings b/build/configure.ac.warnings
+index f1b17f4..3b2c6f3 100644
+--- a/build/configure.ac.warnings
++++ b/build/configure.ac.warnings
+@@ -89,7 +89,7 @@ AC_DEFINE_UNQUOTED([WARN_UNUSED_RESULT], [$cairo_cv_warn_unused_result],
+
+ dnl check linker flags
+ AC_CACHE_CHECK([how to allow undefined symbols in shared libraries used by test suite], cairo_cv_test_undefined_ldflags,
+- [CAIRO_CC_TRY_FLAG([-Wl,--allow-shlib-undefined], [],
++ [CAIRO_CC_TRY_FLAG_SILENT([-Wl,--allow-shlib-undefined], [],
+ [cairo_cv_test_undefined_ldflags="-Wl,--allow-shlib-undefined]")])
+ CAIRO_TEST_UNDEFINED_LDFLAGS="$cairo_cv_test_undefined_ldflags"
+ AC_SUBST(CAIRO_TEST_UNDEFINED_LDFLAGS)
+--
+cgit v0.9.0.2-2-gbebe
+From 07fc63676dfdaa57ed919ad7be8f59c97c615473 Mon Sep 17 00:00:00 2001
+From: Uli Schlachter <psychon@znc.in>
+Date: Wed, 11 Apr 2012 19:37:55 +0000
+Subject: xlib: Disable fallback compositor with xlib-xcb
+
+When xlib-xcb is enabled, this is just dead code which is never used. Thus, this
+shouldn't hurt. However, this does include cairo-xlib-private.h. Shouldn't be a
+problem? Well, that header contains static inline functions which some compiler
+on Solaris will emit even when they are unused.
+
+This brings us to the real problem: That static inline function refers to a
+function which isn't compiled with xlib-xcb and thus linking fails with
+undefined symbols.
+
+This can be reproduced with GCC by adding a call to
+_cairo_xlib_screen_put_gc(NULL, NULL, 0, 0); to
+_cairo_xlib_fallback_compositor_get.
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48489
+Signed-off-by: Uli Schlachter <psychon@znc.in>
+---
+diff --git a/src/cairo-xlib-fallback-compositor.c b/src/cairo-xlib-fallback-compositor.c
+index 5391926..7d45cd1 100644
+--- a/src/cairo-xlib-fallback-compositor.c
++++ b/src/cairo-xlib-fallback-compositor.c
+@@ -42,6 +42,8 @@
+
+ #include "cairoint.h"
+
++#if !CAIRO_HAS_XLIB_XCB_FUNCTIONS
++
+ #include "cairo-xlib-private.h"
+
+ #include "cairo-compositor-private.h"
+@@ -52,3 +54,5 @@ _cairo_xlib_fallback_compositor_get (void)
+ /* XXX Do something interesting here to mitigate fallbacks ala xcb */
+ return &_cairo_fallback_compositor;
+ }
++
++#endif /* !CAIRO_HAS_XLIB_XCB_FUNCTIONS */
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/testing/dmraid/PKGBUILD b/testing/dmraid/PKGBUILD
new file mode 100644
index 000000000..a790de92f
--- /dev/null
+++ b/testing/dmraid/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 161281 2012-06-08 22:28:01Z dreisner $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+#Contributor: Urs Wolfer <uwolfer @ fwo.ch>
+
+pkgname=dmraid
+pkgver=1.0.0.rc16.3
+pkgrel=6
+pkgdesc="Device mapper RAID interface"
+url="http://people.redhat.com/~heinzm/sw/dmraid/"
+conflicts=('mkinitcpio<0.7')
+depends=('device-mapper>=2.0.54')
+arch=('i686' 'x86_64')
+license=('GPL')
+source=(#ftp://ftp.archlinux.org/other/dmraid/$pkgname-$pkgver.tar.bz2
+ http://people.redhat.com/~heinzm/sw/dmraid/src/$pkgname-1.0.0.rc16-3.tar.bz2
+ dmraid_install
+ dmraid_hook
+ dmraid_tmpfiles)
+install=dmraid.install
+md5sums=('819338fcef98e8e25819f0516722beeb'
+ '2297d23cee1aef23ec6ad8d6d1870356'
+ 'faec669dc85f87187b45b5d3968efe2c'
+ '56a8bb0ece8d206cd8efb504ee072ddd')
+
+build() {
+ cd "$pkgname/1.0.0.rc16-3/$pkgname"
+ ./configure --enable-led --enable-intel_led
+ make
+}
+
+package() {
+ cd "$pkgname/1.0.0.rc16-3/$pkgname"
+ make DESTDIR="$pkgdir" prefix=/usr libdir=/usr/lib mandir=/usr/share/man includedir=/usr/include install
+ install -D -m644 "$srcdir"/dmraid_install "$pkgdir"/usr/lib/initcpio/install/dmraid
+ install -D -m644 "$srcdir"/dmraid_hook "$pkgdir"/usr/lib/initcpio/hooks/dmraid
+ install -D -m644 "$srcdir"/dmraid_tmpfiles "$pkgdir"/usr/lib/tmpfiles.d/dmraid.conf
+
+ # fix permissions
+ chmod 644 "$pkgdir"/usr/include/dmraid/* "$pkgdir"/usr/lib/libdmraid.a
+}
diff --git a/testing/dmraid/dmraid.install b/testing/dmraid/dmraid.install
new file mode 100644
index 000000000..64899e785
--- /dev/null
+++ b/testing/dmraid/dmraid.install
@@ -0,0 +1,14 @@
+post_upgrade() {
+ if [ "$(vercmp $2 1.0.0.rc15)" -lt 0 ]; then
+ # important upgrade notice
+ echo ">>>"
+ echo ">>> IMPORTANT DMRAID UPGRADE NOTICE"
+ echo ">>> -------------------------------"
+ echo ">>> Version 1.0.0.rc15 and greater introduce a new name scheme:"
+ echo ">>> You need to add an additional 'p' in front of your number."
+ echo ">>> e.g. <yourname><number> --> <yourname>p<number>"
+ echo ">>> firsthd1 --> firsthdp1"
+ echo ">>> Please change your bootloader and fstab accordingly."
+ echo ">>>"
+ fi
+}
diff --git a/testing/dmraid/dmraid_hook b/testing/dmraid/dmraid_hook
new file mode 100644
index 000000000..37283e83e
--- /dev/null
+++ b/testing/dmraid/dmraid_hook
@@ -0,0 +1,14 @@
+#!/usr/bin/ash
+
+run_hook() {
+ modprobe -a -q dm-mod dm-mirror >/dev/null 2>&1
+ msg ":: Activating dmraid arrays..."
+ # prevent any event monitoring calls with -I
+ if [ "$quiet" = "y" ]; then
+ dmraid -ay -I -Z >/dev/null
+ else
+ dmraid -ay -I -Z
+ fi
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/testing/dmraid/dmraid_install b/testing/dmraid/dmraid_install
new file mode 100644
index 000000000..d3238c1f7
--- /dev/null
+++ b/testing/dmraid/dmraid_install
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+build() {
+ add_module 'dm-mod'
+ add_module 'dm-mirror'
+
+ add_binary 'dmraid'
+ add_binary 'dmsetup'
+ add_file "/usr/lib/udev/rules.d/10-dm.rules"
+ add_file "/usr/lib/udev/rules.d/13-dm-disk.rules"
+ add_file "/usr/lib/udev/rules.d/95-dm-notify.rules"
+
+ add_runscript
+}
+
+help() {
+ cat <<HELPEOF
+This hook loads the necessary modules for a dmraid root device.
+HELPEOF
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/testing/dmraid/dmraid_tmpfiles b/testing/dmraid/dmraid_tmpfiles
new file mode 100644
index 000000000..4f21ac1fc
--- /dev/null
+++ b/testing/dmraid/dmraid_tmpfiles
@@ -0,0 +1 @@
+d /run/lock/dmraid 1777 root root
diff --git a/testing/glibc/PKGBUILD b/testing/glibc/PKGBUILD
new file mode 100644
index 000000000..bbcbf2f19
--- /dev/null
+++ b/testing/glibc/PKGBUILD
@@ -0,0 +1,321 @@
+# $Id: PKGBUILD 161273 2012-06-08 12:53:50Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuilt with each major glibc version
+
+pkgname=glibc
+pkgver=2.15
+pkgrel=11
+_glibcdate=20111227
+pkgdesc="GNU C Library"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=('linux-api-headers>=3.3' 'tzdata')
+makedepends=('gcc>=4.6')
+backup=(etc/gai.conf
+ etc/locale.gen
+ etc/nscd.conf)
+options=('!strip')
+install=glibc.install
+source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.xz
+ glibc-2.15-do-not-install-timezone-files.patch
+ glibc-2.15-do-not-install-timezone-files-2.patch
+ glibc-__i686.patch
+ glibc-2.14-libdl-crash.patch
+ glibc-2.14-reexport-rpc-interface.patch
+ glibc-2.14-reinstall-nis-rpc-headers.patch
+ glibc-2.15-fix-res_query-assert.patch
+ glibc-2.15-regex.patch
+ glibc-2.15-lddebug-scopes.patch
+ glibc-2.15-revert-c5a0802a.patch
+ glibc-2.15-scanf.patch
+ glibc-2.15-ifunc.patch
+ glibc-2.15-avx.patch
+ glibc-2.15-strcasecmp-disable-avx.patch
+ glibc-2.15-gb18030.patch.gz
+ glibc-2.15-revert-netlink-cache.patch
+ glibc-2.15-arena.patch
+ glibc-2.15-negative-result-cache.patch
+ glibc-2.15-multiarch-x86-strcmp.patch
+ glibc-2.15-vdso.patch
+ glibc-2.15-feraiseexcept-plt.patch
+ glibc-2.15-vfprintf-nargs.patch
+ glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch
+ glibc-2.15-fmtmsg-locking.patch
+ glibc-2.15-non-signalling-comparisons.patch
+ glibc-2.15-rintf-rounding.patch
+ glibc-2.15-nearbyintf-rounding.patch
+ glibc-2.15-confstr-local-buffer-extent.patch
+ glibc-2.15-testsuite.patch
+ nscd
+ locale.gen.txt
+ locale-gen)
+md5sums=('6ffdf5832192b92f98bdd125317c0dfc'
+ '7ef69c530a15106de93e4de2df2d393e'
+ 'b6c619e5cf91829a15ce34dccef676d5'
+ 'addfddd648a4bf832eb126aba944ebae'
+ '6970bcfeb3bf88913436d5112d16f588'
+ 'c5de2a946215d647c8af5432ec4b0da0'
+ '55febbb72139ac7b65757df085024b83'
+ '31f415b41197d85d3bbee3d1eecd06a3'
+ 'b3526cbd5e29773560dba725db99af5a'
+ '3c219ddfb619b6df903cac4cc42c611d'
+ '7ae3e426251ae33e73dbad71f9c91378'
+ 'f0782ddbf38e0b30ec6b85348816046f'
+ '3d844b53b2dbb7c996e39c7ad932f55d'
+ '41ae047ac88e8f6f547c70b0a0bc3b72'
+ 'fccb89f6628f59752278e125c35941f8'
+ '001a4044ac3d59aca6ee144eaca57ab2'
+ '94b61302a7ca6c5764d013dc7738fcfe'
+ 'a9ffadcfd2d357f91fee0b861fd4a7c6'
+ '2c46b8e294de24c531f2253ff69aeef3'
+ '7a2998a04ebfcf8bf820540f490ce714'
+ '0d77d20fa7fe2f87ad945cb9edb4d91d'
+ 'bfdefac3d705f41fbf84b1de1dc945af'
+ '3443e89c1e98089cd6c3e3c23f0c3d85'
+ '340deaa582a95ddde86edb624c3bfea0'
+ '6bbac50e6ff82187654e6a0a7bd849e7'
+ 'c483504cf404ed0b44480af627813a97'
+ '1419d61fd1dbc6cdc48bb59da86fa66f'
+ '7ff501435078b1a2622124fbeaafc921'
+ '8d1023a51e0932681b46440d5f8551ee'
+ '6962c3fa29306bfbf6f0d22b19cb825d'
+ 'b587ee3a70c9b3713099295609afde49'
+ '07ac979b6ab5eeb778d55f041529d623'
+ '476e9113489f93b348b21e144b6a8fcf')
+
+mksource() {
+ git clone git://sourceware.org/git/glibc.git
+ pushd glibc
+ #git checkout -b glibc-2.15-arch origin/release/2.15/master
+ git checkout -b glibc-2.15-arch origin/master
+ popd
+ tar -cvJf glibc-${pkgver}_${_glibcdate}.tar.xz glibc/*
+}
+
+
+build() {
+ cd ${srcdir}/glibc
+
+ # timezone data is in separate package (tzdata)
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=482ff4da
+ patch -p1 -i ${srcdir}/glibc-2.15-do-not-install-timezone-files.patch
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=a458e7fe
+ patch -p1 -i ${srcdir}/glibc-2.15-do-not-install-timezone-files-2.patch
+
+ # undefine __i686
+ # http://sourceware.org/glibc/wiki/Release/2.15#Build_Failures
+ patch -p1 -i ${srcdir}/glibc-__i686.patch
+
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=675155e9 (fedora branch)
+ # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html
+ patch -p1 -i ${srcdir}/glibc-2.14-libdl-crash.patch
+
+ # re-export RPC interface until libtirpc is ready as a replacement
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=acee4873 (fedora branch)
+ patch -p1 -i ${srcdir}/glibc-2.14-reexport-rpc-interface.patch
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bdd816a3 (fedora branch)
+ patch -p1 -i ${srcdir}/glibc-2.14-reinstall-nis-rpc-headers.patch
+
+ # fix res_query assertion
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=13013
+ patch -p1 -i ${srcdir}/glibc-2.15-fix-res_query-assert.patch
+
+ # fix up regcomp/regexec
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=2ba92745
+ patch -p1 -i ${srcdir}/glibc-2.15-regex.patch
+
+ # propriety nvidia crash - https://bugzilla.redhat.com/show_bug.cgi?id=737223
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=0c95ab64 (fedora branch)
+ patch -p1 -i ${srcdir}/glibc-2.15-lddebug-scopes.patch
+
+ # revert commit c5a0802a - causes various hangs
+ # https://bugzilla.redhat.com/show_bug.cgi?id=769421
+ # Note: fedora may have actual fix (not submitted upstream yet...)
+ # http://pkgs.fedoraproject.org/gitweb/?p=glibc.git;a=blob_plain;f=glibc-rh552960-2.patch
+ patch -p1 -i ${srcdir}/glibc-2.15-revert-c5a0802a.patch
+
+ # fix realloc usage in vfscanf
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=20b38e03
+ patch -p1 -i ${srcdir}/glibc-2.15-scanf.patch
+
+ # fix ifunc relocations
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=6ee65ed6
+ patch -p1 -i ${srcdir}/glibc-2.15-ifunc.patch
+
+ # fix AVX detection
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=afc5ed09
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=08cf777f
+ patch -p1 -i ${srcdir}/glibc-2.15-avx.patch
+ # and "fix" strcasecmp
+ patch -p1 -i ${srcdir}/glibc-2.15-strcasecmp-disable-avx.patch
+
+ # fix GB18030 charmap
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=11837
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=2a57bd79 (fedora branch)
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=3d828a61 (fedora branch)
+ patch -p1 -i ${srcdir}/glibc-2.15-gb18030.patch
+
+ # fix crash in __nscd_get_mapping if nscd not running
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=13594 (potential fix in comment)
+ # reverts commit 3a2c0242 and other necessary following changes...
+ patch -p1 -i ${srcdir}/glibc-2.15-revert-netlink-cache.patch
+
+ # handle ARENA_TEST correctly
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=41b81892
+ patch -p1 -i ${srcdir}/glibc-2.15-arena.patch
+
+ # Do not cache negative results in nscd if these are transient
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=3e1aa84e
+ patch -p1 -i ${srcdir}/glibc-2.15-negative-result-cache.patch
+
+ # strcasecmp_l, strncasecmp_l act as strcmp for multiarch x86
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=0bab47b6
+ patch -p1 -i ${srcdir}/glibc-2.15-multiarch-x86-strcmp.patch
+
+ # always set l_used for vDSO.
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=1f393a11
+ patch -p1 -i ${srcdir}/glibc-2.15-vdso.patch
+
+ # fix x86 PLT slot usage for feraiseexcept
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=7c35ffed
+ patch -p1 -i ${srcdir}/glibc-2.15-feraiseexcept-plt.patch
+
+ # vfprintf nargs overflow - CVE-2012-0864
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=7c1f4834
+ patch -p1 -i ${srcdir}/glibc-2.15-vfprintf-nargs.patch
+
+ # avoid out ouf bounds read in __libc_res_nquerydomain
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=8fdceb2e
+ patch -p1 -i ${srcdir}/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch
+
+ # make fmtmsg function thread-safe
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=7724defc
+ patch -p1 -i ${srcdir}/glibc-2.15-fmtmsg-locking.patch
+
+ # use non-signaling floating-point comparisons in math functions
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=92221550
+ patch -p1 -i ${srcdir}/glibc-2.15-non-signalling-comparisons.patch
+
+ # fix rintf rounding.
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=fe45ce09
+ patch -p1 -i ${srcdir}/glibc-2.15-rintf-rounding.patch
+
+ # fix nearbyintf rounding
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=6cbeae47
+ patch -p1 -i ${srcdir}/glibc-2.15-nearbyintf-rounding.patch
+
+ # fix varaible scope issue in confstr
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=ac4c54f0
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=d6a403f9
+ patch -p1 -i ${srcdir}/glibc-2.15-confstr-local-buffer-extent.patch
+
+ # fix testsuite failures with --as-needed
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=d4c2917f
+ patch -p1 -i ${srcdir}/glibc-2.15-testsuite.patch
+
+ install -dm755 ${pkgdir}/etc
+ touch ${pkgdir}/etc/ld.so.conf
+
+ cd ${srcdir}
+ mkdir glibc-build
+ cd glibc-build
+
+ if [[ ${CARCH} = "i686" ]]; then
+ # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+ # TODO: make separate glibc-xen package for i686
+ export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+ fi
+
+ echo "slibdir=/lib" >> configparms
+
+ # remove hardening options from CFLAGS for building libraries
+ CFLAGS=${CFLAGS/-fstack-protector/}
+ CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/}
+
+ ${srcdir}/glibc/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --with-headers=/usr/include \
+ --enable-add-ons=nptl,libidn \
+ --enable-kernel=2.6.32 \
+ --enable-bind-now --disable-profile \
+ --enable-multi-arch
+
+ # build libraries with hardening disabled
+ echo "build-programs=no" >> configparms
+ make
+
+ # re-enable hardening for programs
+ sed -i "/build-programs=/s#no#yes#" configparms
+ echo "CC += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ echo "CXX += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms
+ make
+
+ # remove harding in preparation to run test-suite
+ sed -i '2,4d' configparms
+}
+
+check() {
+ cd ${srcdir}/glibc-build
+ make -k check
+}
+
+package() {
+ cd ${srcdir}/glibc-build
+ make install_root=${pkgdir} install
+
+ rm -f ${pkgdir}/etc/ld.so.{cache,conf}
+
+ install -dm755 ${pkgdir}/etc/rc.d
+ install -dm755 ${pkgdir}/usr/sbin
+ install -dm755 ${pkgdir}/usr/lib/locale
+ install -m644 ${srcdir}/glibc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf
+ install -m755 ${srcdir}/nscd ${pkgdir}/etc/rc.d/nscd
+ install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin
+ install -m644 ${srcdir}/glibc/posix/gai.conf ${pkgdir}/etc/gai.conf
+
+ sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf
+
+ # create /etc/locale.gen
+ install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen
+ sed -i "s|/| |g" ${srcdir}/glibc/localedata/SUPPORTED
+ sed -i 's|\\| |g' ${srcdir}/glibc/localedata/SUPPORTED
+ sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/glibc/localedata/SUPPORTED
+ cat ${srcdir}/glibc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen
+ sed -i "s|^|#|g" ${pkgdir}/etc/locale.gen
+
+ if [[ ${CARCH} = "x86_64" ]]; then
+ # fix for the linker
+ sed -i '/RTLDLIST/s%lib64%lib%' ${pkgdir}/usr/bin/ldd
+ # Comply with multilib binaries, they look for the linker in /lib64
+ mkdir ${pkgdir}/lib64
+ cd ${pkgdir}/lib64
+ ln -v -s ../lib/ld* .
+ fi
+
+ # Do not strip the following files for improved debugging support
+ # ("improved" as in not breaking gdb and valgrind...):
+ # ld-${pkgver}.so
+ # libc-${pkgver}.so
+ # libpthread-${pkgver}.so
+ # libthread_db-1.0.so
+
+ cd $pkgdir
+ strip $STRIP_BINARIES sbin/{ldconfig,sln} \
+ usr/bin/{gencat,getconf,getent,iconv,locale,localedef} \
+ usr/bin/{makedb,pcprofiledump,pldd,rpcgen,sprof} \
+ usr/lib/getconf/* \
+ usr/sbin/{iconvconfig,nscd}
+ [[ $CARCH = "i686" ]] && strip $STRIP_BINARIES usr/bin/lddlibc4
+
+ strip $STRIP_STATIC usr/lib/*.a
+
+ strip $STRIP_SHARED lib/{libanl,libBrokenLocale,libcidn,libcrypt}-${pkgver}.so \
+ lib/libnss_{compat,db,dns,files,hesiod,nis,nisplus}-${pkgver}.so \
+ lib/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \
+ lib/{libmemusage,libpcprofile,libSegFault}.so \
+ usr/lib/{pt_chown,{audit,gconv}/*.so}
+}
diff --git a/testing/glibc/glibc-2.14-libdl-crash.patch b/testing/glibc/glibc-2.14-libdl-crash.patch
new file mode 100644
index 000000000..6c9d2718e
--- /dev/null
+++ b/testing/glibc/glibc-2.14-libdl-crash.patch
@@ -0,0 +1,132 @@
+diff --git a/elf/dl-close.c b/elf/dl-close.c
+index 73b2a2f..9bd91e3 100644
+--- a/elf/dl-close.c
++++ b/elf/dl-close.c
+@@ -1,5 +1,5 @@
+ /* Close a shared object opened by `_dl_open'.
+- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1996-2007, 2009, 2010 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
+@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
+ if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
+ || dl_close_state != not_pending)
+ {
+- if (map->l_direct_opencount == 0)
+- {
+- if (map->l_type == lt_loaded)
+- dl_close_state = rerun;
+- else if (map->l_type == lt_library)
+- {
+- struct link_map **oldp = map->l_initfini;
+- map->l_initfini = map->l_orig_initfini;
+- _dl_scope_free (oldp);
+- }
+- }
++ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
++ dl_close_state = rerun;
+
+ /* There are still references to this object. Do nothing more. */
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
+diff --git a/elf/dl-deps.c b/elf/dl-deps.c
+index 9e30594..3890d00 100644
+--- a/elf/dl-deps.c
++++ b/elf/dl-deps.c
+@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
+ nneeded * sizeof needed[0]);
+ atomic_write_barrier ();
+ l->l_initfini = l_initfini;
++ l->l_free_initfini = 1;
+ }
+
+ /* If we have no auxiliary objects just go on to the next map. */
+@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ l_initfini[nlist] = NULL;
+ atomic_write_barrier ();
+ map->l_initfini = l_initfini;
++ map->l_free_initfini = 1;
+ if (l_reldeps != NULL)
+ {
+ atomic_write_barrier ();
+@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ _dl_scope_free (old_l_reldeps);
+ }
+ if (old_l_initfini != NULL)
+- map->l_orig_initfini = old_l_initfini;
++ _dl_scope_free (old_l_initfini);
+
+diff --git a/elf/dl-libc.c b/elf/dl-libc.c
+index 7be9483..a13fce3 100644
+--- a/elf/dl-libc.c
++++ b/elf/dl-libc.c
+@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
+
+ for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
+ {
+- /* Remove all additional names added to the objects. */
+ for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
+ {
+ struct libname_list *lnp = l->l_libname->next;
+
+ l->l_libname->next = NULL;
+
++ /* Remove all additional names added to the objects. */
+ while (lnp != NULL)
+ {
+ struct libname_list *old = lnp;
+@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
+ if (! old->dont_free)
+ free (old);
+ }
++
++ /* Free the initfini dependency list. */
++ if (l->l_free_initfini)
++ free (l->l_initfini);
+ }
+
+ if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 4a9109e..617e30e 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ lnp->dont_free = 1;
+ lnp = lnp->next;
+ }
++ l->l_free_initfini = 0;
+
+ if (l != &GL(dl_rtld_map))
+ _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
+diff --git a/include/link.h b/include/link.h
+index e877104..051b99a 100644
+--- a/include/link.h
++++ b/include/link.h
+@@ -1,6 +1,6 @@
+ /* Data structure for communication from the run-time dynamic linker for
+ loaded ELF shared objects.
+- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1995-2006, 2007, 2009, 2010 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
+@@ -192,6 +192,9 @@ struct link_map
+ during LD_TRACE_PRELINKING=1
+ contains any DT_SYMBOLIC
+ libraries. */
++ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
++ freed, ie. not allocated with
++ the dummy malloc in ld.so. */
+
+ /* Collected information about own RPATH directories. */
+ struct r_search_path_struct l_rpath_dirs;
+@@ -240,9 +243,6 @@ struct link_map
+
+ /* List of object in order of the init and fini calls. */
+ struct link_map **l_initfini;
+- /* The init and fini list generated at startup, saved when the
+- object is also loaded dynamically. */
+- struct link_map **l_orig_initfini;
+
+ /* List of the dependencies introduced through symbol binding. */
+ struct link_map_reldeps
diff --git a/testing/glibc/glibc-2.14-reexport-rpc-interface.patch b/testing/glibc/glibc-2.14-reexport-rpc-interface.patch
new file mode 100644
index 000000000..e2beea881
--- /dev/null
+++ b/testing/glibc/glibc-2.14-reexport-rpc-interface.patch
@@ -0,0 +1,26 @@
+diff --git a/include/libc-symbols.h b/include/libc-symbols.h
+index 67e1ca2..5e7cca5 100644
+--- a/include/libc-symbols.h
++++ b/include/libc-symbols.h
+@@ -635,7 +635,7 @@ for linking")
+ # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
+ # define libc_hidden_def(name) hidden_def (name)
+ # define libc_hidden_weak(name) hidden_weak (name)
+-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
++# define libc_hidden_nolink(name, version) hidden_def (name)
+ # define libc_hidden_ver(local, name) hidden_ver (local, name)
+ # define libc_hidden_data_def(name) hidden_data_def (name)
+ # define libc_hidden_data_weak(name) hidden_data_weak (name)
+diff --git a/sunrpc/Makefile b/sunrpc/Makefile
+index 5134ce9..40c73d1 100644
+--- a/sunrpc/Makefile
++++ b/sunrpc/Makefile
+@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \
+ des_crypt.h)
+ headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
+ $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
+-headers = rpc/netdb.h
++headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc)
+ install-others = $(inst_sysconfdir)/rpc
+ generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
+ $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
diff --git a/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch b/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
new file mode 100644
index 000000000..eb0fd822d
--- /dev/null
+++ b/testing/glibc/glibc-2.14-reinstall-nis-rpc-headers.patch
@@ -0,0 +1,28 @@
+From bdd816a366c4e5bba5de7157d948e0c0737fb4fb Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Tue, 17 May 2011 17:42:30 +0200
+Subject: [PATCH] Reinstall NIS RPC headers
+
+---
+ nis/Makefile | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/nis/Makefile b/nis/Makefile
+index b5c9609..d2934d9 100644
+--- a/nis/Makefile
++++ b/nis/Makefile
+@@ -23,9 +23,9 @@ subdir := nis
+
+ aux := nis_hash
+
++headers := $(wildcard rpcsvc/*.[hx])
+ distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \
+- nisplus-parser.h nis_xdr.h nss \
+- $(wildcard rpcsvc/*.[hx])
++ nisplus-parser.h nis_xdr.h nss
+
+ # These are the databases available for the nis (and perhaps later nisplus)
+ # service. This must be a superset of the services in nss.
+--
+1.7.5.4
+
diff --git a/testing/glibc/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch b/testing/glibc/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch
new file mode 100644
index 000000000..6f0a0398f
--- /dev/null
+++ b/testing/glibc/glibc-2.15-__libc_res_nquerydomain-out-of-bounds.patch
@@ -0,0 +1,24 @@
+diff --git a/resolv/res_query.c b/resolv/res_query.c
+index 947c651..abccd4a 100644
+--- a/resolv/res_query.c
++++ b/resolv/res_query.c
+@@ -556,12 +556,16 @@ __libc_res_nquerydomain(res_state statp,
+ * copy without '.' if present.
+ */
+ n = strlen(name);
+- if (n >= MAXDNAME) {
++
++ /* Decrement N prior to checking it against MAXDNAME
++ so that we detect a wrap to SIZE_MAX and return
++ a reasonable error. */
++ n--;
++ if (n >= MAXDNAME - 1) {
+ RES_SET_H_ERRNO(statp, NO_RECOVERY);
+ return (-1);
+ }
+- n--;
+- if (n >= 0 && name[n] == '.') {
++ if (name[n] == '.') {
+ strncpy(nbuf, name, n);
+ nbuf[n] = '\0';
+ } else
diff --git a/testing/glibc/glibc-2.15-arena.patch b/testing/glibc/glibc-2.15-arena.patch
new file mode 100644
index 000000000..46f52e98d
--- /dev/null
+++ b/testing/glibc/glibc-2.15-arena.patch
@@ -0,0 +1,29 @@
+diff --git a/malloc/arena.c b/malloc/arena.c
+index d3cf4b9..b1c9469 100644
+--- a/malloc/arena.c
++++ b/malloc/arena.c
+@@ -828,7 +828,7 @@ arena_get2(mstate a_tsd, size_t size)
+ {
+ if (mp_.arena_max != 0)
+ narenas_limit = mp_.arena_max;
+- else
++ else if (narenas > mp_.arena_test)
+ {
+ int n = __get_nprocs ();
+
+@@ -842,7 +842,14 @@ arena_get2(mstate a_tsd, size_t size)
+ }
+ repeat:;
+ size_t n = narenas;
+- if (__builtin_expect (n <= mp_.arena_test || n < narenas_limit, 0))
++ /* NB: the following depends on the fact that (size_t)0 - 1 is a
++ very large number and that the underflow is OK. If arena_max
++ is set the value of arena_test is irrelevant. If arena_test
++ is set but narenas is not yet larger or equal to arena_test
++ narenas_limit is 0. There is no possibility for narenas to
++ be too big for the test to always fail since there is not
++ enough address space to create that many arenas. */
++ if (__builtin_expect (n <= narenas_limit - 1, 0))
+ {
+ if (catomic_compare_and_exchange_bool_acq (&narenas, n + 1, n))
+ goto repeat;
diff --git a/testing/glibc/glibc-2.15-avx.patch b/testing/glibc/glibc-2.15-avx.patch
new file mode 100644
index 000000000..5439da8d0
--- /dev/null
+++ b/testing/glibc/glibc-2.15-avx.patch
@@ -0,0 +1,196 @@
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_atan2.c b/sysdeps/x86_64/fpu/multiarch/e_atan2.c
+index 6867c6e..3a615fc 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_atan2.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_atan2.c
+@@ -14,7 +14,7 @@ extern double __ieee754_atan2_fma4 (double, double);
+
+ libm_ifunc (__ieee754_atan2,
+ HAS_FMA4 ? __ieee754_atan2_fma4
+- : (HAS_AVX ? __ieee754_atan2_avx : __ieee754_atan2_sse2));
++ : (HAS_YMM_USABLE ? __ieee754_atan2_avx : __ieee754_atan2_sse2));
+ strong_alias (__ieee754_atan2, __atan2_finite)
+
+ # define __ieee754_atan2 __ieee754_atan2_sse2
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c
+index 3c65028..7b2320a 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_exp.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c
+@@ -14,7 +14,7 @@ extern double __ieee754_exp_fma4 (double);
+
+ libm_ifunc (__ieee754_exp,
+ HAS_FMA4 ? __ieee754_exp_fma4
+- : (HAS_AVX ? __ieee754_exp_avx : __ieee754_exp_sse2));
++ : (HAS_YMM_USABLE ? __ieee754_exp_avx : __ieee754_exp_sse2));
+ strong_alias (__ieee754_exp, __exp_finite)
+
+ # define __ieee754_exp __ieee754_exp_sse2
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c
+index 3b468d0..ab277d6 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_log.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_log.c
+@@ -14,7 +14,7 @@ extern double __ieee754_log_fma4 (double);
+
+ libm_ifunc (__ieee754_log,
+ HAS_FMA4 ? __ieee754_log_fma4
+- : (HAS_AVX ? __ieee754_log_avx
++ : (HAS_YMM_USABLE ? __ieee754_log_avx
+ : __ieee754_log_sse2));
+ strong_alias (__ieee754_log, __log_finite)
+
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c
+index 3160201..78c7e09 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_atan.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c
+@@ -12,7 +12,8 @@ extern double __atan_fma4 (double);
+ # define __atan_fma4 ((void *) 0)
+ # endif
+
+-libm_ifunc (atan, HAS_FMA4 ? __atan_fma4 : HAS_AVX ? __atan_avx : __atan_sse2);
++libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 :
++ HAS_YMM_USABLE ? __atan_avx : __atan_sse2));
+
+ # define atan __atan_sse2
+ #endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c
+index 1ba9dbc..417acd0 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_sin.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c
+@@ -17,10 +17,12 @@ extern double __sin_fma4 (double);
+ # define __sin_fma4 ((void *) 0)
+ # endif
+
+-libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2);
++libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 :
++ HAS_YMM_USABLE ? __cos_avx : __cos_sse2));
+ weak_alias (__cos, cos)
+
+-libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2);
++libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 :
++ HAS_YMM_USABLE ? __sin_avx : __sin_sse2));
+ weak_alias (__sin, sin)
+
+ # define __cos __cos_sse2
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c
+index 8f6601e..3047155 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_tan.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c
+@@ -12,7 +12,8 @@ extern double __tan_fma4 (double);
+ # define __tan_fma4 ((void *) 0)
+ # endif
+
+-libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2);
++libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 :
++ HAS_YMM_USABLE ? __tan_avx : __tan_sse2));
+
+ # define tan __tan_sse2
+ #endif
+diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c
+index 65b0ee9..76d146c 100644
+--- a/sysdeps/x86_64/multiarch/init-arch.c
++++ b/sysdeps/x86_64/multiarch/init-arch.c
+@@ -1,6 +1,6 @@
+ /* Initialize CPU feature data.
+ This file is part of the GNU C Library.
+- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+ Contributed by Ulrich Drepper <drepper@redhat.com>.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -144,6 +144,18 @@ __init_cpu_features (void)
+ else
+ kind = arch_kind_other;
+
++ if (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_AVX)
++ {
++ /* Reset the AVX bit in case OSXSAVE is disabled. */
++ if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) != 0
++ && ({ unsigned int xcrlow;
++ unsigned int xcrhigh;
++ asm ("xgetbv"
++ : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0));
++ (xcrlow & 6) == 6; }))
++ __cpu_features.feature[index_YMM_Usable] |= bit_YMM_Usable;
++ }
++
+ __cpu_features.family = family;
+ __cpu_features.model = model;
+ atomic_write_barrier ();
+diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h
+index 2a1df39..2dc75ab 100644
+--- a/sysdeps/x86_64/multiarch/init-arch.h
++++ b/sysdeps/x86_64/multiarch/init-arch.h
+@@ -1,5 +1,5 @@
+ /* This file is part of the GNU C Library.
+- Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+@@ -22,11 +22,13 @@
+ #define bit_Prefer_SSE_for_memop (1 << 3)
+ #define bit_Fast_Unaligned_Load (1 << 4)
+ #define bit_Prefer_PMINUB_for_stringop (1 << 5)
++#define bit_YMM_Usable (1 << 6)
+
+ #define bit_SSE2 (1 << 26)
+ #define bit_SSSE3 (1 << 9)
+ #define bit_SSE4_1 (1 << 19)
+ #define bit_SSE4_2 (1 << 20)
++#define bit_OSXSAVE (1 << 27)
+ #define bit_AVX (1 << 28)
+ #define bit_POPCOUNT (1 << 23)
+ #define bit_FMA (1 << 12)
+@@ -48,6 +50,7 @@
+ # define index_Prefer_SSE_for_memop FEATURE_INDEX_1*FEATURE_SIZE
+ # define index_Fast_Unaligned_Load FEATURE_INDEX_1*FEATURE_SIZE
+ # define index_Prefer_PMINUB_for_stringop FEATURE_INDEX_1*FEATURE_SIZE
++# define index_YMM_Usable FEATURE_INDEX_1*FEATURE_SIZE
+
+ #else /* __ASSEMBLER__ */
+
+@@ -92,7 +95,7 @@ extern struct cpu_features
+
+
+ extern void __init_cpu_features (void) attribute_hidden;
+-#define INIT_ARCH()\
++# define INIT_ARCH() \
+ do \
+ if (__cpu_features.kind == arch_kind_unknown) \
+ __init_cpu_features (); \
+@@ -125,23 +128,21 @@ extern const struct cpu_features *__get_cpu_features (void)
+ # define index_Slow_BSF FEATURE_INDEX_1
+ # define index_Prefer_SSE_for_memop FEATURE_INDEX_1
+ # define index_Fast_Unaligned_Load FEATURE_INDEX_1
++# define index_YMM_Usable FEATURE_INDEX_1
+
+-#define HAS_ARCH_FEATURE(idx, bit) \
+- ((__get_cpu_features ()->feature[idx] & (bit)) != 0)
++# define HAS_ARCH_FEATURE(name) \
++ ((__get_cpu_features ()->feature[index_##name] & (bit_##name)) != 0)
+
+-#define HAS_FAST_REP_STRING \
+- HAS_ARCH_FEATURE (index_Fast_Rep_String, bit_Fast_Rep_String)
++# define HAS_FAST_REP_STRING HAS_ARCH_FEATURE (Fast_Rep_String)
+
+-#define HAS_FAST_COPY_BACKWARD \
+- HAS_ARCH_FEATURE (index_Fast_Copy_Backward, bit_Fast_Copy_Backward)
++# define HAS_FAST_COPY_BACKWARD HAS_ARCH_FEATURE (Fast_Copy_Backward)
+
+-#define HAS_SLOW_BSF \
+- HAS_ARCH_FEATURE (index_Slow_BSF, bit_Slow_BSF)
++# define HAS_SLOW_BSF HAS_ARCH_FEATURE (Slow_BSF)
+
+-#define HAS_PREFER_SSE_FOR_MEMOP \
+- HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop)
++# define HAS_PREFER_SSE_FOR_MEMOP HAS_ARCH_FEATURE (Prefer_SSE_for_memop)
+
+-#define HAS_FAST_UNALIGNED_LOAD \
+- HAS_ARCH_FEATURE (index_Fast_Unaligned_Load, bit_Fast_Unaligned_Load)
++# define HAS_FAST_UNALIGNED_LOAD HAS_ARCH_FEATURE (Fast_Unaligned_Load)
++
++# define HAS_YMM_USABLE HAS_ARCH_FEATURE (YMM_Usable)
+
+ #endif /* __ASSEMBLER__ */
+--
+1.7.9
+
diff --git a/testing/glibc/glibc-2.15-confstr-local-buffer-extent.patch b/testing/glibc/glibc-2.15-confstr-local-buffer-extent.patch
new file mode 100644
index 000000000..483b28532
--- /dev/null
+++ b/testing/glibc/glibc-2.15-confstr-local-buffer-extent.patch
@@ -0,0 +1,297 @@
+diff --git a/posix/confstr.c b/posix/confstr.c
+index 3c9566d..cad6561 100644
+--- a/posix/confstr.c
++++ b/posix/confstr.c
+@@ -35,6 +34,10 @@ confstr (name, buf, len)
+ const char *string = "";
+ size_t string_len = 1;
+
++ /* Note that this buffer must be large enough for the longest strings
++ used below. */
++ char restenvs[4 * sizeof "POSIX_V7_LPBIG_OFFBIG"];
++
+ switch (name)
+ {
+ case _CS_PATH:
+@@ -53,59 +56,55 @@ confstr (name, buf, len)
+ wint_t types are no greater than the width of type long.
+
+ Currently this means all environment which the system allows. */
+- {
+- char restenvs[4 * sizeof "POSIX_V7_LPBIG_OFFBIG"];
+-
+- string_len = 0;
++ string_len = 0;
+ #ifndef _POSIX_V7_ILP32_OFF32
+- if (__sysconf (_SC_V7_ILP32_OFF32) > 0)
++ if (__sysconf (_SC_V7_ILP32_OFF32) > 0)
+ #endif
+ #if !defined _POSIX_V7_ILP32_OFF32 || _POSIX_V7_ILP32_OFF32 > 0
+- {
+- memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32",
+- sizeof "POSIX_V7_ILP32_OFF32" - 1);
+- string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1;
+- }
++ {
++ memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFF32",
++ sizeof "POSIX_V7_ILP32_OFF32" - 1);
++ string_len += sizeof "POSIX_V7_ILP32_OFF32" - 1;
++ }
+ #endif
+ #ifndef _POSIX_V7_ILP32_OFFBIG
+- if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0)
++ if (__sysconf (_SC_V7_ILP32_OFFBIG) > 0)
+ #endif
+ #if !defined _POSIX_V7_ILP32_OFFBIG || _POSIX_V7_ILP32_OFFBIG > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG",
+- sizeof "POSIX_V7_ILP32_OFFBIG" - 1);
+- string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "POSIX_V7_ILP32_OFFBIG",
++ sizeof "POSIX_V7_ILP32_OFFBIG" - 1);
++ string_len += sizeof "POSIX_V7_ILP32_OFFBIG" - 1;
++ }
+ #endif
+ #ifndef _POSIX_V7_LP64_OFF64
+- if (__sysconf (_SC_V7_LP64_OFF64) > 0)
++ if (__sysconf (_SC_V7_LP64_OFF64) > 0)
+ #endif
+ #if !defined _POSIX_V7_LP64_OFF64 || _POSIX_V7_LP64_OFF64 > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64",
+- sizeof "POSIX_V7_LP64_OFF64" - 1);
+- string_len += sizeof "POSIX_V7_LP64_OFF64" - 1;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "POSIX_V7_LP64_OFF64",
++ sizeof "POSIX_V7_LP64_OFF64" - 1);
++ string_len += sizeof "POSIX_V7_LP64_OFF64" - 1;
++ }
+ #endif
+ #ifndef _POSIX_V7_LPBIG_OFFBIG
+- if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0)
++ if (__sysconf (_SC_V7_LPBIG_OFFBIG) > 0)
+ #endif
+ #if !defined _POSIX_V7_LPBIG_OFFBIG || _POSIX_V7_LPBIG_OFFBIG > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG",
+- sizeof "POSIX_V7_LPBIG_OFFBIG" - 1);
+- string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1;
+- }
+-#endif
+- restenvs[string_len++] = '\0';
+- string = restenvs;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "POSIX_V7_LPBIG_OFFBIG",
++ sizeof "POSIX_V7_LPBIG_OFFBIG" - 1);
++ string_len += sizeof "POSIX_V7_LPBIG_OFFBIG" - 1;
++ }
++#endif
++ restenvs[string_len++] = '\0';
++ string = restenvs;
+ break;
+
+ case _CS_V6_WIDTH_RESTRICTED_ENVS:
+@@ -116,59 +115,55 @@ confstr (name, buf, len)
+ wint_t types are no greater than the width of type long.
+
+ Currently this means all environment which the system allows. */
+- {
+- char restenvs[4 * sizeof "POSIX_V6_LPBIG_OFFBIG"];
+-
+- string_len = 0;
++ string_len = 0;
+ #ifndef _POSIX_V6_ILP32_OFF32
+- if (__sysconf (_SC_V6_ILP32_OFF32) > 0)
++ if (__sysconf (_SC_V6_ILP32_OFF32) > 0)
+ #endif
+ #if !defined _POSIX_V6_ILP32_OFF32 || _POSIX_V6_ILP32_OFF32 > 0
+- {
+- memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32",
+- sizeof "POSIX_V6_ILP32_OFF32" - 1);
+- string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1;
+- }
++ {
++ memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32",
++ sizeof "POSIX_V6_ILP32_OFF32" - 1);
++ string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1;
++ }
+ #endif
+ #ifndef _POSIX_V6_ILP32_OFFBIG
+- if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0)
++ if (__sysconf (_SC_V6_ILP32_OFFBIG) > 0)
+ #endif
+ #if !defined _POSIX_V6_ILP32_OFFBIG || _POSIX_V6_ILP32_OFFBIG > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG",
+- sizeof "POSIX_V6_ILP32_OFFBIG" - 1);
+- string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG",
++ sizeof "POSIX_V6_ILP32_OFFBIG" - 1);
++ string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1;
++ }
+ #endif
+ #ifndef _POSIX_V6_LP64_OFF64
+- if (__sysconf (_SC_V6_LP64_OFF64) > 0)
++ if (__sysconf (_SC_V6_LP64_OFF64) > 0)
+ #endif
+ #if !defined _POSIX_V6_LP64_OFF64 || _POSIX_V6_LP64_OFF64 > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64",
+- sizeof "POSIX_V6_LP64_OFF64" - 1);
+- string_len += sizeof "POSIX_V6_LP64_OFF64" - 1;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64",
++ sizeof "POSIX_V6_LP64_OFF64" - 1);
++ string_len += sizeof "POSIX_V6_LP64_OFF64" - 1;
++ }
+ #endif
+ #ifndef _POSIX_V6_LPBIG_OFFBIG
+- if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0)
++ if (__sysconf (_SC_V6_LPBIG_OFFBIG) > 0)
+ #endif
+ #if !defined _POSIX_V6_LPBIG_OFFBIG || _POSIX_V6_LPBIG_OFFBIG > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG",
+- sizeof "POSIX_V6_LPBIG_OFFBIG" - 1);
+- string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1;
+- }
+-#endif
+- restenvs[string_len++] = '\0';
+- string = restenvs;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG",
++ sizeof "POSIX_V6_LPBIG_OFFBIG" - 1);
++ string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1;
++ }
++#endif
++ restenvs[string_len++] = '\0';
++ string = restenvs;
+ break;
+
+ case _CS_V5_WIDTH_RESTRICTED_ENVS:
+@@ -179,59 +174,55 @@ confstr (name, buf, len)
+ wint_t types are no greater than the width of type long.
+
+ Currently this means all environment which the system allows. */
+- {
+- char restenvs[4 * sizeof "XBS5_LPBIG_OFFBIG"];
+-
+- string_len = 0;
++ string_len = 0;
+ #ifndef _XBS5_ILP32_OFF32
+- if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0)
++ if (__sysconf (_SC_XBS5_ILP32_OFF32) > 0)
+ #endif
+ #if !defined _XBS5_ILP32_OFF32 || _XBS5_ILP32_OFF32 > 0
+- {
+- memcpy (restenvs + string_len, "XBS5_ILP32_OFF32",
+- sizeof "XBS5_ILP32_OFF32" - 1);
+- string_len += sizeof "XBS5_ILP32_OFF32" - 1;
+- }
++ {
++ memcpy (restenvs + string_len, "XBS5_ILP32_OFF32",
++ sizeof "XBS5_ILP32_OFF32" - 1);
++ string_len += sizeof "XBS5_ILP32_OFF32" - 1;
++ }
+ #endif
+ #ifndef _XBS5_ILP32_OFFBIG
+- if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0)
++ if (__sysconf (_SC_XBS5_ILP32_OFFBIG) > 0)
+ #endif
+ #if !defined _XBS5_ILP32_OFFBIG || _XBS5_ILP32_OFFBIG > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG",
+- sizeof "XBS5_ILP32_OFFBIG" - 1);
+- string_len += sizeof "XBS5_ILP32_OFFBIG" - 1;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "XBS5_ILP32_OFFBIG",
++ sizeof "XBS5_ILP32_OFFBIG" - 1);
++ string_len += sizeof "XBS5_ILP32_OFFBIG" - 1;
++ }
+ #endif
+ #ifndef _XBS5_LP64_OFF64
+- if (__sysconf (_SC_XBS5_LP64_OFF64) > 0)
++ if (__sysconf (_SC_XBS5_LP64_OFF64) > 0)
+ #endif
+ #if !defined _XBS5_LP64_OFF64 || _XBS5_LP64_OFF64 > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "XBS5_LP64_OFF64",
+- sizeof "XBS5_LP64_OFF64" - 1);
+- string_len += sizeof "XBS5_LP64_OFF64" - 1;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "XBS5_LP64_OFF64",
++ sizeof "XBS5_LP64_OFF64" - 1);
++ string_len += sizeof "XBS5_LP64_OFF64" - 1;
++ }
+ #endif
+ #ifndef _XBS5_LPBIG_OFFBIG
+- if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0)
++ if (__sysconf (_SC_XBS5_LPBIG_OFFBIG) > 0)
+ #endif
+ #if !defined _XBS5_LPBIG_OFFBIG || _XBS5_LPBIG_OFFBIG > 0
+- {
+- if (string_len)
+- restenvs[string_len++] = '\n';
+- memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG",
+- sizeof "XBS5_LPBIG_OFFBIG" - 1);
+- string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1;
+- }
+-#endif
+- restenvs[string_len++] = '\0';
+- string = restenvs;
+- }
++ {
++ if (string_len)
++ restenvs[string_len++] = '\n';
++ memcpy (restenvs + string_len, "XBS5_LPBIG_OFFBIG",
++ sizeof "XBS5_LPBIG_OFFBIG" - 1);
++ string_len += sizeof "XBS5_LPBIG_OFFBIG" - 1;
++ }
++#endif
++ restenvs[string_len++] = '\0';
++ string = restenvs;
+ break;
+
+ case _CS_XBS5_ILP32_OFF32_CFLAGS:
diff --git a/testing/glibc/glibc-2.15-do-not-install-timezone-files-2.patch b/testing/glibc/glibc-2.15-do-not-install-timezone-files-2.patch
new file mode 100644
index 000000000..d28237f85
--- /dev/null
+++ b/testing/glibc/glibc-2.15-do-not-install-timezone-files-2.patch
@@ -0,0 +1,20 @@
+diff --git a/timezone/Makefile b/timezone/Makefile
+index 00bfba6..9e55a6a 100644
+--- a/timezone/Makefile
++++ b/timezone/Makefile
+@@ -45,7 +45,6 @@ include ../Makeconfig # Get objpfx defined so we can use it below.
+ CPPFLAGS-zic = -DNOT_IN_libc
+
+ ifeq ($(have-ksh),yes)
+-install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab
+ install-bin-script = tzselect
+ generated += tzselect
+ endif
+@@ -111,7 +110,3 @@ $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
+ -e 's%@TZDIR@%$(zonedir)%g' < $< > $@.new
+ chmod 555 $@.new
+ mv -f $@.new $@
+-
+-$(addprefix $(inst_zonedir)/,iso3166.tab zone.tab): \
+- $(inst_zonedir)/%: % $(+force)
+- $(do-install)
diff --git a/testing/glibc/glibc-2.15-do-not-install-timezone-files.patch b/testing/glibc/glibc-2.15-do-not-install-timezone-files.patch
new file mode 100644
index 000000000..e4f29bc1a
--- /dev/null
+++ b/testing/glibc/glibc-2.15-do-not-install-timezone-files.patch
@@ -0,0 +1,124 @@
+diff --git a/timezone/Makefile b/timezone/Makefile
+index e8fb716..d5ea538 100644
+--- a/timezone/Makefile
++++ b/timezone/Makefile
+@@ -1,4 +1,4 @@
+-# Copyright (C) 1998,1999,2000,2002,2005,2007 Free Software Foundation, Inc.
++# Copyright (C) 1998-2000,2002,2005,2007,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
+@@ -49,33 +49,6 @@ include ../Makeconfig # Get objpfx defined so we can use it below.
+
+ CPPFLAGS-zic = -DNOT_IN_libc
+
+-# z.* use this variable.
+-define nl
+-
+-
+-endef
+-ifndef avoid-generated
+-ifndef inhibit_timezone_rules
+--include $(addprefix $(objpfx)z.,$(tzfiles))
+-endif
+-endif
+-
+-# Make these absolute file names.
+-installed-localtime-file := $(firstword $(filter /%,$(inst_localtime-file)) \
+- $(addprefix $(inst_zonedir)/, \
+- $(localtime-file)))
+-installed-posixrules-file := $(firstword $(filter /%,$(posixrules-file)) \
+- $(addprefix $(inst_zonedir)/, \
+- $(posixrules-file)))
+-
+-ifeq ($(cross-compiling),no)
+-# Don't try to install the zoneinfo files since we can't run zic.
+-install-others = $(addprefix $(inst_zonedir)/,$(zonenames) \
+- $(zonenames:%=posix/%) \
+- $(zonenames:%=right/%)) \
+- $(installed-localtime-file) $(installed-posixrules-file)
+-endif
+-
+ ifeq ($(have-ksh),yes)
+ install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab
+ install-bin-script = tzselect
+@@ -85,79 +58,6 @@ endif
+ include ../Rules
+
+
+-$(tzfiles:%=$(objpfx)z.%): $(objpfx)z.%: % Makefile
+-# Kludge alert: we use an implicit rule (in what we are generating here)
+-# because that is the only way to tell Make that the one command builds all
+-# the files.
+-# The extra kludge for the $(tzlinks) files is necessary since running zic
+-# this file requires all other files to exist. Blech!
+- $(make-target-directory)
+- (echo 'define $*-zones' ;\
+- $(AWK) '$$1 == "Zone" { print $$2 } $$1 == "Link" { print $$3 }' $^ ;\
+- echo 'endef' ;\
+- echo '$*-zones := $$(subst $$(nl), ,$$($*-zones))' ;\
+- echo 'ifdef $*-zones' ;\
+- if test x$(findstring $*, $(tzlinks)) != x; then \
+- echo '$$(addprefix $$(inst_zonedir)/right/,$$($*-zones)): \';\
+- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/right/,$$($$t-zones)))' ;\
+- echo '$$(addprefix $$(inst_zonedir)/posix/,$$($*-zones)): \';\
+- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/posix/,$$($$t-zones)))' ;\
+- echo '$$(addprefix $$(inst_zonedir)/,$$($*-zones)): \' ;\
+- echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/,$$($$t-zones)))' ;\
+- fi ;\
+- echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/right/,$$($*-zones)): \' ;\
+- echo '$< $$(objpfx)zic leapseconds yearistype' ;\
+- echo ' $$(tzcompile)' ;\
+- echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/posix/,$$($*-zones)): \' ;\
+- echo '$< $$(objpfx)zic /dev/null yearistype' ;\
+- echo ' $$(tzcompile)' ;\
+- echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/,$$($*-zones)): \' ;\
+- echo '$< $$(objpfx)zic $$(leapseconds) yearistype' ;\
+- echo ' $$(tzcompile)' ;\
+- echo 'endif' ;\
+- echo 'zonenames := $$(zonenames) $$($*-zones)' ;\
+- ) > $@.new
+- mv $@.new $@
+-
+-.PHONY: echo-zonenames
+-echo-zonenames:
+- @echo 'Known zones: $(zonenames)'
+-
+-
+-# We have to use `-d $(inst_zonedir)' to explictly tell zic where to
+-# place the output files although $(zonedir) is compiled in. But the
+-# user might have set $(install_root) on the command line of `make install'.
+-zic-cmd = $(built-program-cmd) -d $(inst_zonedir)
+-tzcompile = $(zic-cmd)$(target-zone-flavor) -L $(word 3,$^) \
+- -y $(dir $(word 4,$^))$(notdir $(word 4,$^)) $<
+-
+-# The source files specify the zone names relative to the -d directory,
+-# so for the posix/ and right/ flavors we need to pass -d $(inst_zonedir)/posix
+-# and the like. This magic extracts /posix or /right if it's the first
+-# component after $(inst_zonedir) in the target name $@.
+-target-zone-flavor = $(filter /posix /right, \
+- /$(firstword $(subst /, , \
+- $(patsubst $(inst_zonedir)/%,%,$@))))
+-
+-ifdef localtime
+-$(installed-localtime-file): $(inst_zonedir)/$(localtime) $(objpfx)zic \
+- $(+force)
+- $(make-target-directory)
+- if test -r $@; then \
+- echo Site timezone NOT reset to Factory.; \
+- else \
+- rm -f $@T; \
+- $(SHELL) $(..)scripts/rellns-sh $< $@T; \
+- mv -f $@T $@; \
+- fi
+-endif
+-ifdef posixrules
+-$(installed-posixrules-file): $(inst_zonedir)/$(posixrules) $(objpfx)zic \
+- $(+force)
+- $(zic-cmd) -p $(posixrules)
+-endif
+-
+-
+ $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
+
+ tz-cflags = -DTZDIR='"$(zonedir)"' \
diff --git a/testing/glibc/glibc-2.15-feraiseexcept-plt.patch b/testing/glibc/glibc-2.15-feraiseexcept-plt.patch
new file mode 100644
index 000000000..c41acc169
--- /dev/null
+++ b/testing/glibc/glibc-2.15-feraiseexcept-plt.patch
@@ -0,0 +1,20 @@
+diff --git a/sysdeps/i386/fpu/feupdateenv.c b/sysdeps/i386/fpu/feupdateenv.c
+index 70f9ee2..6e2ce35 100644
+--- a/sysdeps/i386/fpu/feupdateenv.c
++++ b/sysdeps/i386/fpu/feupdateenv.c
+@@ -1,5 +1,5 @@
+ /* Install given floating-point environment and raise exceptions.
+- Copyright (C) 1997,99,2000,01,07,2010 Free Software Foundation, Inc.
++ Copyright (C) 1997,99,2000,01,07,2010,2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+@@ -44,7 +44,7 @@ __feupdateenv (const fenv_t *envp)
+ /* Raise the saved exception. Incidently for us the implementation
+ defined format of the values in objects of type fexcept_t is the
+ same as the ones specified using the FE_* constants. */
+- feraiseexcept ((int) temp);
++ __feraiseexcept ((int) temp);
+
+ /* Success. */
+ return 0;
diff --git a/testing/glibc/glibc-2.15-fix-res_query-assert.patch b/testing/glibc/glibc-2.15-fix-res_query-assert.patch
new file mode 100644
index 000000000..a894da9c7
--- /dev/null
+++ b/testing/glibc/glibc-2.15-fix-res_query-assert.patch
@@ -0,0 +1,51 @@
+--- a/resolv/res_query.c
++++ a/resolv/res_query.c
+@@ -122,6 +122,7 @@ __libc_res_nquery(res_state statp,
+ int *resplen2)
+ {
+ HEADER *hp = (HEADER *) answer;
++ HEADER *hp2;
+ int n, use_malloc = 0;
+ u_int oflags = statp->_flags;
+
+@@ -239,26 +240,25 @@ __libc_res_nquery(res_state statp,
+ /* __libc_res_nsend might have reallocated the buffer. */
+ hp = (HEADER *) *answerp;
+
+- /* We simplify the following tests by assigning HP to HP2. It
+- is easy to verify that this is the same as ignoring all
+- tests of HP2. */
+- HEADER *hp2 = answerp2 ? (HEADER *) *answerp2 : hp;
+-
+- if (n < (int) sizeof (HEADER) && answerp2 != NULL
+- && *resplen2 > (int) sizeof (HEADER))
++ /* We simplify the following tests by assigning HP to HP2 or
++ vice versa. It is easy to verify that this is the same as
++ ignoring all tests of HP or HP2. */
++ if (answerp2 == NULL || *resplen2 < (int) sizeof (HEADER))
+ {
+- /* Special case of partial answer. */
+- assert (hp != hp2);
+- hp = hp2;
++ hp2 = hp;
+ }
+- else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER)
+- && n > (int) sizeof (HEADER))
++ else
+ {
+- /* Special case of partial answer. */
+- assert (hp != hp2);
+- hp2 = hp;
++ hp2 = (HEADER *) *answerp2;
++ if (n < (int) sizeof (HEADER))
++ {
++ hp = hp2;
++ }
+ }
+
++ /* Make sure both hp and hp2 are defined */
++ assert((hp != NULL) && (hp2 != NULL));
++
+ if ((hp->rcode != NOERROR || ntohs(hp->ancount) == 0)
+ && (hp2->rcode != NOERROR || ntohs(hp2->ancount) == 0)) {
+ #ifdef DEBUG
diff --git a/testing/glibc/glibc-2.15-fmtmsg-locking.patch b/testing/glibc/glibc-2.15-fmtmsg-locking.patch
new file mode 100644
index 000000000..f5976abd9
--- /dev/null
+++ b/testing/glibc/glibc-2.15-fmtmsg-locking.patch
@@ -0,0 +1,148 @@
+diff --git a/stdlib/fmtmsg.c b/stdlib/fmtmsg.c
+index 9203317..4c02302 100644
+--- a/stdlib/fmtmsg.c
++++ b/stdlib/fmtmsg.c
+@@ -103,7 +103,6 @@ fmtmsg (long int classification, const char *label, int severity,
+ const char *text, const char *action, const char *tag)
+ {
+ __libc_once_define (static, once);
+- int result = MM_OK;
+ struct severity_info *severity_rec;
+
+ /* Make sure everything is initialized. */
+@@ -124,17 +123,6 @@ fmtmsg (long int classification, const char *label, int severity,
+ return MM_NOTOK;
+ }
+
+- for (severity_rec = severity_list; severity_rec != NULL;
+- severity_rec = severity_rec->next)
+- if (severity == severity_rec->severity)
+- /* Bingo. */
+- break;
+-
+- /* If we don't know anything about the severity level return an error. */
+- if (severity_rec == NULL)
+- return MM_NOTOK;
+-
+-
+ #ifdef __libc_ptf_call
+ /* We do not want this call to be cut short by a thread
+ cancellation. Therefore disable cancellation for now. */
+@@ -143,54 +131,73 @@ fmtmsg (long int classification, const char *label, int severity,
+ 0);
+ #endif
+
+- /* Now we can print. */
+- if (classification & MM_PRINT)
+- {
+- int do_label = (print & label_mask) && label != MM_NULLLBL;
+- int do_severity = (print & severity_mask) && severity != MM_NULLSEV;
+- int do_text = (print & text_mask) && text != MM_NULLTXT;
+- int do_action = (print & action_mask) && action != MM_NULLACT;
+- int do_tag = (print & tag_mask) && tag != MM_NULLTAG;
+-
+- if (__fxprintf (stderr, "%s%s%s%s%s%s%s%s%s%s\n",
+- do_label ? label : "",
+- do_label && (do_severity | do_text | do_action | do_tag)
+- ? ": " : "",
+- do_severity ? severity_rec->string : "",
+- do_severity && (do_text | do_action | do_tag)
+- ? ": " : "",
+- do_text ? text : "",
+- do_text && (do_action | do_tag) ? "\n" : "",
+- do_action ? "TO FIX: " : "",
+- do_action ? action : "",
+- do_action && do_tag ? " " : "",
+- do_tag ? tag : "") < 0)
+- /* Oh, oh. An error occurred during the output. */
+- result = MM_NOMSG;
+- }
++ __libc_lock_lock (lock);
+
+- if (classification & MM_CONSOLE)
++ for (severity_rec = severity_list; severity_rec != NULL;
++ severity_rec = severity_rec->next)
++ if (severity == severity_rec->severity)
++ /* Bingo. */
++ break;
++
++ /* If we don't know anything about the severity level return an error. */
++ int result = MM_NOTOK;
++ if (severity_rec != NULL)
+ {
+- int do_label = label != MM_NULLLBL;
+- int do_severity = severity != MM_NULLSEV;
+- int do_text = text != MM_NULLTXT;
+- int do_action = action != MM_NULLACT;
+- int do_tag = tag != MM_NULLTAG;
+-
+- syslog (LOG_ERR, "%s%s%s%s%s%s%s%s%s%s\n",
+- do_label ? label : "",
+- do_label && (do_severity | do_text | do_action | do_tag)
+- ? ": " : "",
+- do_severity ? severity_rec->string : "",
+- do_severity && (do_text | do_action | do_tag) ? ": " : "",
+- do_text ? text : "",
+- do_text && (do_action | do_tag) ? "\n" : "",
+- do_action ? "TO FIX: " : "",
+- do_action ? action : "",
+- do_action && do_tag ? " " : "",
+- do_tag ? tag : "");
++ result = MM_OK;
++
++ /* Now we can print. */
++ if (classification & MM_PRINT)
++ {
++ int do_label = (print & label_mask) && label != MM_NULLLBL;
++ int do_severity = (print & severity_mask) && severity != MM_NULLSEV;
++ int do_text = (print & text_mask) && text != MM_NULLTXT;
++ int do_action = (print & action_mask) && action != MM_NULLACT;
++ int do_tag = (print & tag_mask) && tag != MM_NULLTAG;
++ int need_colon = (do_label
++ && (do_severity | do_text | do_action | do_tag));
++
++ if (__fxprintf (stderr, "%s%s%s%s%s%s%s%s%s%s\n",
++ do_label ? label : "",
++ need_colon ? ": " : "",
++ do_severity ? severity_rec->string : "",
++ do_severity && (do_text | do_action | do_tag)
++ ? ": " : "",
++ do_text ? text : "",
++ do_text && (do_action | do_tag) ? "\n" : "",
++ do_action ? "TO FIX: " : "",
++ do_action ? action : "",
++ do_action && do_tag ? " " : "",
++ do_tag ? tag : "") < 0)
++ /* Oh, oh. An error occurred during the output. */
++ result = MM_NOMSG;
++ }
++
++ if (classification & MM_CONSOLE)
++ {
++ int do_label = label != MM_NULLLBL;
++ int do_severity = severity != MM_NULLSEV;
++ int do_text = text != MM_NULLTXT;
++ int do_action = action != MM_NULLACT;
++ int do_tag = tag != MM_NULLTAG;
++ int need_colon = (do_label
++ && (do_severity | do_text | do_action | do_tag));
++
++ syslog (LOG_ERR, "%s%s%s%s%s%s%s%s%s%s\n",
++ do_label ? label : "",
++ need_colon ? ": " : "",
++ do_severity ? severity_rec->string : "",
++ do_severity && (do_text | do_action | do_tag) ? ": " : "",
++ do_text ? text : "",
++ do_text && (do_action | do_tag) ? "\n" : "",
++ do_action ? "TO FIX: " : "",
++ do_action ? action : "",
++ do_action && do_tag ? " " : "",
++ do_tag ? tag : "");
++ }
+ }
+
++ __libc_lock_unlock (lock);
++
+ #ifdef __libc_ptf_call
+ __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);
+ #endif
diff --git a/testing/glibc/glibc-2.15-gb18030.patch.gz b/testing/glibc/glibc-2.15-gb18030.patch.gz
new file mode 100644
index 000000000..dde59c056
--- /dev/null
+++ b/testing/glibc/glibc-2.15-gb18030.patch.gz
Binary files differ
diff --git a/testing/glibc/glibc-2.15-ifunc.patch b/testing/glibc/glibc-2.15-ifunc.patch
new file mode 100644
index 000000000..115afa02a
--- /dev/null
+++ b/testing/glibc/glibc-2.15-ifunc.patch
@@ -0,0 +1,262 @@
+diff --git a/Makeconfig b/Makeconfig
+index 2db2821..68547b2 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -900,6 +900,12 @@ else
+ libdl = $(common-objpfx)dlfcn/libdl.a
+ endif
+
++ifeq ($(build-shared),yes)
++libm = $(common-objpfx)math/libm.so$(libm.so-version)
++else
++libm = $(common-objpfx)math/libm.a
++endif
++
+ # These are the subdirectories containing the library source. The order
+ # is more or less arbitrary. The sorting step will take care of the
+ # dependencies.
+diff --git a/elf/Makefile b/elf/Makefile
+index 052e763..3f1772a 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -124,7 +124,8 @@ distribute := rtld-Rules \
+ tst-initordera1.c tst-initordera2.c tst-initorderb1.c \
+ tst-initorderb2.c tst-initordera3.c tst-initordera4.c \
+ tst-initorder.c \
+- tst-initorder2.c
++ tst-initorder2.c \
++ tst-relsort1.c tst-relsort1mod1.c tst-relsort1mod2.c
+
+ CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables
+ CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables
+@@ -227,7 +228,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
+ tst-audit1 tst-audit2 \
+ tst-stackguard1 tst-addr1 tst-thrlock \
+ tst-unique1 tst-unique2 tst-unique3 tst-unique4 \
+- tst-initorder tst-initorder2
++ tst-initorder tst-initorder2 tst-relsort1
+ # reldep9
+ test-srcs = tst-pathopt
+ selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null)
+@@ -290,7 +291,9 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
+ tst-initordera1 tst-initorderb1 \
+ tst-initordera2 tst-initorderb2 \
+ tst-initordera3 tst-initordera4 \
+- tst-initorder2a tst-initorder2b tst-initorder2c tst-initorder2d
++ tst-initorder2a tst-initorder2b tst-initorder2c \
++ tst-initorder2d \
++ tst-relsort1mod1 tst-relsort1mod2
+ ifeq (yes,$(have-initfini-array))
+ modules-names += tst-array2dep tst-array5dep
+ endif
+@@ -1195,3 +1198,9 @@ CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS)
+ CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS)
+ CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS)
+ endif
++
++$(objpfx)tst-relsort1: $(libdl)
++$(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so
++$(objpfx)tst-relsort1mod2.so: $(libm)
++$(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \
++ $(objpfx)tst-relsort1mod2.so
+diff --git a/elf/dl-open.c b/elf/dl-open.c
+index a0b5c50..a56bdc1 100644
+--- a/elf/dl-open.c
++++ b/elf/dl-open.c
+@@ -1,5 +1,5 @@
+ /* Load a shared object at runtime, relocate it, and run its initializer.
+- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1996-2007, 2009, 2010, 2011, 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
+@@ -302,45 +302,109 @@ dl_open_worker (void *a)
+ if (GLRO(dl_lazy))
+ reloc_mode |= mode & RTLD_LAZY;
+
+- /* Relocate the objects loaded. We do this in reverse order so that copy
+- relocs of earlier objects overwrite the data written by later objects. */
+-
++ /* Sort the objects by dependency for the relocation process. This
++ allows IFUNC relocations to work and it also means copy
++ relocation of dependencies are if necessary overwritten. */
++ size_t nmaps = 0;
+ struct link_map *l = new;
+- while (l->l_next)
+- l = l->l_next;
+- while (1)
++ do
++ {
++ if (! l->l_real->l_relocated)
++ ++nmaps;
++ l = l->l_next;
++ }
++ while (l != NULL);
++ struct link_map *maps[nmaps];
++ nmaps = 0;
++ l = new;
++ do
+ {
+ if (! l->l_real->l_relocated)
++ maps[nmaps++] = l;
++ l = l->l_next;
++ }
++ while (l != NULL);
++ if (nmaps > 1)
++ {
++ char seen[nmaps];
++ memset (seen, '\0', nmaps);
++ size_t i = 0;
++ while (1)
+ {
+-#ifdef SHARED
+- if (__builtin_expect (GLRO(dl_profile) != NULL, 0))
++ ++seen[i];
++ struct link_map *thisp = maps[i];
++
++ /* Find the last object in the list for which the current one is
++ a dependency and move the current object behind the object
++ with the dependency. */
++ size_t k = nmaps - 1;
++ while (k > i)
+ {
+- /* If this here is the shared object which we want to profile
+- make sure the profile is started. We can find out whether
+- this is necessary or not by observing the `_dl_profile_map'
+- variable. If was NULL but is not NULL afterwars we must
+- start the profiling. */
+- struct link_map *old_profile_map = GL(dl_profile_map);
++ struct link_map **runp = maps[k]->l_initfini;
++ if (runp != NULL)
++ /* Look through the dependencies of the object. */
++ while (*runp != NULL)
++ if (__builtin_expect (*runp++ == thisp, 0))
++ {
++ /* Move the current object to the back past the last
++ object with it as the dependency. */
++ memmove (&maps[i], &maps[i + 1],
++ (k - i) * sizeof (maps[0]));
++ maps[k] = thisp;
++
++ if (seen[i + 1] > 1)
++ {
++ ++i;
++ goto next_clear;
++ }
++
++ char this_seen = seen[i];
++ memmove (&seen[i], &seen[i + 1],
++ (k - i) * sizeof (seen[0]));
++ seen[k] = this_seen;
++
++ goto next;
++ }
++
++ --k;
++ }
+
+- _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1);
++ if (++i == nmaps)
++ break;
++ next_clear:
++ memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0]));
++ next:;
++ }
++ }
+
+- if (old_profile_map == NULL && GL(dl_profile_map) != NULL)
+- {
+- /* We must prepare the profiling. */
+- _dl_start_profile ();
++ for (size_t i = nmaps; i-- > 0; )
++ {
++ l = maps[i];
+
+- /* Prevent unloading the object. */
+- GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE;
+- }
++#ifdef SHARED
++ if (__builtin_expect (GLRO(dl_profile) != NULL, 0))
++ {
++ /* If this here is the shared object which we want to profile
++ make sure the profile is started. We can find out whether
++ this is necessary or not by observing the `_dl_profile_map'
++ variable. If it was NULL but is not NULL afterwars we must
++ start the profiling. */
++ struct link_map *old_profile_map = GL(dl_profile_map);
++
++ _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1);
++
++ if (old_profile_map == NULL && GL(dl_profile_map) != NULL)
++ {
++ /* We must prepare the profiling. */
++ _dl_start_profile ();
++
++ /* Prevent unloading the object. */
++ GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE;
+ }
+- else
+-#endif
+- _dl_relocate_object (l, l->l_scope, reloc_mode, 0);
+ }
+-
+- if (l == new)
+- break;
+- l = l->l_prev;
++ else
++#endif
++ _dl_relocate_object (l, l->l_scope, reloc_mode, 0);
+ }
+
+ /* If the file is not loaded now as a dependency, add the search
+diff --git a/elf/tst-relsort1.c b/elf/tst-relsort1.c
+new file mode 100644
+index 0000000..972100c
+--- /dev/null
++++ b/elf/tst-relsort1.c
+@@ -0,0 +1,19 @@
++#include <dlfcn.h>
++#include <stdio.h>
++
++
++static int
++do_test ()
++{
++ const char lib[] = "$ORIGIN/tst-relsort1mod1.so";
++ void *h = dlopen (lib, RTLD_NOW);
++ if (h == NULL)
++ {
++ puts (dlerror ());
++ return 1;
++ }
++ return 0;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff --git a/elf/tst-relsort1mod1.c b/elf/tst-relsort1mod1.c
+new file mode 100644
+index 0000000..9e4a943
+--- /dev/null
++++ b/elf/tst-relsort1mod1.c
+@@ -0,0 +1,7 @@
++extern int foo (double);
++
++int
++bar (void)
++{
++ return foo (1.2);
++}
+diff --git a/elf/tst-relsort1mod2.c b/elf/tst-relsort1mod2.c
+new file mode 100644
+index 0000000..a2c3e55
+--- /dev/null
++++ b/elf/tst-relsort1mod2.c
+@@ -0,0 +1,7 @@
++#include <math.h>
++
++int
++foo (double d)
++{
++ return floor (d) != 0.0;
++}
diff --git a/testing/glibc/glibc-2.15-lddebug-scopes.patch b/testing/glibc/glibc-2.15-lddebug-scopes.patch
new file mode 100644
index 000000000..808cf8d7c
--- /dev/null
+++ b/testing/glibc/glibc-2.15-lddebug-scopes.patch
@@ -0,0 +1,27 @@
+From 0c95ab64cb4ec0d22bb222647d9d20c7b4903e38 Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Fri, 7 Oct 2011 09:31:27 +0200
+Subject: [PATCH] Horrible workaround for horribly broken software
+
+---
+ elf/rtld.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 978c609..8422b9f 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -1393,7 +1393,9 @@ of this helper program; chances are you did not intend to run this program.\n\
+ char *copy = malloc (len);
+ if (copy == NULL)
+ _dl_fatal_printf ("out of memory\n");
+- l->l_libname->name = l->l_name = memcpy (copy, dsoname, len);
++ l->l_libname->name = memcpy (copy, dsoname, len);
++ if (GLRO(dl_debug_mask))
++ l->l_name = copy;
+ }
+
+ /* Add the vDSO to the object list. */
+--
+1.7.3.4
+
diff --git a/testing/glibc/glibc-2.15-multiarch-x86-strcmp.patch b/testing/glibc/glibc-2.15-multiarch-x86-strcmp.patch
new file mode 100644
index 000000000..38c9e617f
--- /dev/null
+++ b/testing/glibc/glibc-2.15-multiarch-x86-strcmp.patch
@@ -0,0 +1,39 @@
+diff --git a/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c b/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c
+index d10e872..d4fcd2b 100644
+--- a/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c
++++ b/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c
+@@ -6,6 +6,8 @@ extern __typeof (strcasecmp_l) __strcasecmp_l_nonascii;
+ #define USE_IN_EXTENDED_LOCALE_MODEL 1
+ #include <string/strcasecmp.c>
+
++strong_alias (__strcasecmp_l_nonascii, __strcasecmp_l_ia32)
++
+ /* The needs of strcasecmp in libc are minimal, no need to go through
+ the IFUNC. */
+ strong_alias (__strcasecmp_l_nonascii, __GI___strcasecmp_l)
+diff --git a/sysdeps/i386/i686/multiarch/strcmp.S b/sysdeps/i386/i686/multiarch/strcmp.S
+index 5410d17..b3b9eb8 100644
+--- a/sysdeps/i386/i686/multiarch/strcmp.S
++++ b/sysdeps/i386/i686/multiarch/strcmp.S
+@@ -111,6 +111,7 @@ END(STRCMP)
+ # endif
+ #endif
+
+-#ifndef USE_AS_STRNCMP
++#if !defined USE_AS_STRNCMP && !defined USE_AS_STRCASECMP_L \
++ && !defined USE_AS_STRNCASECMP_L
+ # include "../strcmp.S"
+ #endif
+diff --git a/sysdeps/i386/i686/multiarch/strncase_l-c.c b/sysdeps/i386/i686/multiarch/strncase_l-c.c
+index 0c68b8d..7e601af 100644
+--- a/sysdeps/i386/i686/multiarch/strncase_l-c.c
++++ b/sysdeps/i386/i686/multiarch/strncase_l-c.c
+@@ -6,6 +6,8 @@ extern __typeof (strncasecmp_l) __strncasecmp_l_nonascii;
+ #define USE_IN_EXTENDED_LOCALE_MODEL 1
+ #include <string/strncase.c>
+
++strong_alias (__strncasecmp_l_nonascii, __strncasecmp_l_ia32)
++
+ /* The needs of strcasecmp in libc are minimal, no need to go through
+ the IFUNC. */
+ strong_alias (__strncasecmp_l_nonascii, __GI___strncasecmp_l)
diff --git a/testing/glibc/glibc-2.15-nearbyintf-rounding.patch b/testing/glibc/glibc-2.15-nearbyintf-rounding.patch
new file mode 100644
index 000000000..b2bb9caac
--- /dev/null
+++ b/testing/glibc/glibc-2.15-nearbyintf-rounding.patch
@@ -0,0 +1,75 @@
+diff --git a/math/libm-test.inc b/math/libm-test.inc
+index c8186c8..1016753 100644
+--- a/math/libm-test.inc
++++ b/math/libm-test.inc
+@@ -4632,6 +4632,29 @@ nearbyint_test (void)
+ TEST_f_f (nearbyint, 524286.75, 524287.0);
+ TEST_f_f (nearbyint, 524288.75, 524289.0);
+
++ TEST_f_f (nearbyint, 1048576.75, 1048577.0);
++ TEST_f_f (nearbyint, 2097152.75, 2097153.0);
++ TEST_f_f (nearbyint, 2492472.75, 2492473.0);
++ TEST_f_f (nearbyint, 2886220.75, 2886221.0);
++ TEST_f_f (nearbyint, 3058792.75, 3058793.0);
++ TEST_f_f (nearbyint, -1048576.75, -1048577.0);
++ TEST_f_f (nearbyint, -2097152.75, -2097153.0);
++ TEST_f_f (nearbyint, -2492472.75, -2492473.0);
++ TEST_f_f (nearbyint, -2886220.75, -2886221.0);
++ TEST_f_f (nearbyint, -3058792.75, -3058793.0);
++#ifndef TEST_FLOAT
++ TEST_f_f (nearbyint, 70368744177664.75, 70368744177665.0);
++ TEST_f_f (nearbyint, 140737488355328.75, 140737488355329.0);
++ TEST_f_f (nearbyint, 281474976710656.75, 281474976710657.0);
++ TEST_f_f (nearbyint, 562949953421312.75, 562949953421313.0);
++ TEST_f_f (nearbyint, 1125899906842624.75, 1125899906842625.0);
++ TEST_f_f (nearbyint, -70368744177664.75, -70368744177665.0);
++ TEST_f_f (nearbyint, -140737488355328.75, -140737488355329.0);
++ TEST_f_f (nearbyint, -281474976710656.75, -281474976710657.0);
++ TEST_f_f (nearbyint, -562949953421312.75, -562949953421313.0);
++ TEST_f_f (nearbyint, -1125899906842624.75, -1125899906842625.0);
++#endif
++
+ END (nearbyint);
+ }
+
+diff --git a/sysdeps/ieee754/flt-32/s_nearbyintf.c b/sysdeps/ieee754/flt-32/s_nearbyintf.c
+index 04ef9ab..a6d602b 100644
+--- a/sysdeps/ieee754/flt-32/s_nearbyintf.c
++++ b/sysdeps/ieee754/flt-32/s_nearbyintf.c
+@@ -30,18 +30,12 @@ __nearbyintf(float x)
+ {
+ fenv_t env;
+ int32_t i0,j0,sx;
+- u_int32_t i,i1;
+ float w,t;
+ GET_FLOAT_WORD(i0,x);
+ sx = (i0>>31)&1;
+ j0 = ((i0>>23)&0xff)-0x7f;
+ if(j0<23) {
+ if(j0<0) {
+- if((i0&0x7fffffff)==0) return x;
+- i1 = (i0&0x07fffff);
+- i0 &= 0xfff00000;
+- i0 |= ((i1|-i1)>>9)&0x400000;
+- SET_FLOAT_WORD(x,i0);
+ libc_feholdexceptf (&env);
+ w = TWO23[sx]+x;
+ t = w-TWO23[sx];
+@@ -49,17 +43,11 @@ __nearbyintf(float x)
+ GET_FLOAT_WORD(i0,t);
+ SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
+ return t;
+- } else {
+- i = (0x007fffff)>>j0;
+- if((i0&i)==0) return x; /* x is integral */
+- i>>=1;
+- if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0);
+ }
+ } else {
+ if(__builtin_expect(j0==0x80, 0)) return x+x; /* inf or NaN */
+ else return x; /* x is integral */
+ }
+- SET_FLOAT_WORD(x,i0);
+ libc_feholdexceptf (&env);
+ w = TWO23[sx]+x;
+ t = w-TWO23[sx];
diff --git a/testing/glibc/glibc-2.15-negative-result-cache.patch b/testing/glibc/glibc-2.15-negative-result-cache.patch
new file mode 100644
index 000000000..c09e79a17
--- /dev/null
+++ b/testing/glibc/glibc-2.15-negative-result-cache.patch
@@ -0,0 +1,138 @@
+diff --git a/nscd/aicache.c b/nscd/aicache.c
+index aaaf80d..e1f1244 100644
+--- a/nscd/aicache.c
++++ b/nscd/aicache.c
+@@ -1,5 +1,5 @@
+ /* Cache handling for host lookup.
+- Copyright (C) 2004-2008, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 2004-2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
+
+@@ -514,8 +514,9 @@ next_nip:
+ if (fd != -1)
+ TEMP_FAILURE_RETRY (send (fd, &notfound, total, MSG_NOSIGNAL));
+
+- /* If we cannot permanently store the result, so be it. */
+- if (__builtin_expect (db->negtimeout == 0, 0))
++ /* If we have a transient error or cannot permanently store the
++ result, so be it. */
++ if (rc4 == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+diff --git a/nscd/grpcache.c b/nscd/grpcache.c
+index e9607c6..a698f36 100644
+--- a/nscd/grpcache.c
++++ b/nscd/grpcache.c
+@@ -1,5 +1,5 @@
+ /* Cache handling for group lookup.
+- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+@@ -120,8 +120,9 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
+ else
+ written = total;
+
+- /* If we cannot permanently store the result, so be it. */
+- if (db->negtimeout == 0)
++ /* If we have a transient error or cannot permanently store
++ the result, so be it. */
++ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+diff --git a/nscd/hstcache.c b/nscd/hstcache.c
+index 4d68ade..c72feaa 100644
+--- a/nscd/hstcache.c
++++ b/nscd/hstcache.c
+@@ -1,5 +1,5 @@
+ /* Cache handling for host lookup.
+- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+@@ -141,8 +141,9 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req,
+ MSG_NOSIGNAL)) != total)
+ all_written = false;
+
+- /* If we cannot permanently store the result, so be it. */
+- if (__builtin_expect (db->negtimeout == 0, 0))
++ /* If we have a transient error or cannot permanently store
++ the result, so be it. */
++ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c
+index 4ac9942..2019991 100644
+--- a/nscd/initgrcache.c
++++ b/nscd/initgrcache.c
+@@ -1,5 +1,5 @@
+ /* Cache handling for host lookup.
+- Copyright (C) 2004-2006, 2008, 2009, 2011 Free Software Foundation, Inc.
++ Copyright (C) 2004-2006, 2008, 2009, 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
+
+@@ -202,8 +202,9 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
+ written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+ MSG_NOSIGNAL));
+
+- /* If we cannot permanently store the result, so be it. */
+- if (__builtin_expect (db->negtimeout == 0, 0))
++ /* If we have a transient error or cannot permanently store
++ the result, so be it. */
++ if (all_tryagain || __builtin_expect (db->negtimeout == 0, 0))
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c
+index 49e130c..e2ba09d 100644
+--- a/nscd/pwdcache.c
++++ b/nscd/pwdcache.c
+@@ -1,5 +1,5 @@
+ /* Cache handling for passwd lookup.
+- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+@@ -124,8 +124,9 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
+ written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+ MSG_NOSIGNAL));
+
+- /* If we cannot permanently store the result, so be it. */
+- if (__builtin_expect (db->negtimeout == 0, 0))
++ /* If we have a transient error or cannot permanently store
++ the result, so be it. */
++ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+diff --git a/nscd/servicescache.c b/nscd/servicescache.c
+index d3d5dce..a6337e3 100644
+--- a/nscd/servicescache.c
++++ b/nscd/servicescache.c
+@@ -1,5 +1,5 @@
+ /* Cache handling for services lookup.
+- Copyright (C) 2007, 2008, 2009, 2011 Free Software Foundation, Inc.
++ Copyright (C) 2007, 2008, 2009, 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@drepper.com>, 2007.
+
+@@ -108,8 +108,9 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
+ written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+ MSG_NOSIGNAL));
+
+- /* If we cannot permanently store the result, so be it. */
+- if (__builtin_expect (db->negtimeout == 0, 0))
++ /* If we have a transient error or cannot permanently store
++ the result, so be it. */
++ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
diff --git a/testing/glibc/glibc-2.15-non-signalling-comparisons.patch b/testing/glibc/glibc-2.15-non-signalling-comparisons.patch
new file mode 100644
index 000000000..874f8b4cb
--- /dev/null
+++ b/testing/glibc/glibc-2.15-non-signalling-comparisons.patch
@@ -0,0 +1,886 @@
+diff --git a/math/w_acos.c b/math/w_acos.c
+index 3138408..0490933 100644
+--- a/math/w_acos.c
++++ b/math/w_acos.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ double
+ __acos (double x)
+ {
+- if (__builtin_expect (fabs (x) > 1.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabs (x), 1.0), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ /* acos(|x|>1) */
+ feraiseexcept (FE_INVALID);
+diff --git a/math/w_acosf.c b/math/w_acosf.c
+index 0e41a2c..2500a7d 100644
+--- a/math/w_acosf.c
++++ b/math/w_acosf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ float
+ __acosf (float x)
+ {
+- if (__builtin_expect (fabsf (x) > 1.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabsf (x), 1.0f), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ /* acos(|x|>1) */
+ feraiseexcept (FE_INVALID);
+diff --git a/math/w_acosh.c b/math/w_acosh.c
+index 0bd2686..d632987 100644
+--- a/math/w_acosh.c
++++ b/math/w_acosh.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,7 @@
+ double
+ __acosh (double x)
+ {
+- if (__builtin_expect (x < 1.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isless (x, 1.0), 0) && _LIB_VERSION != _IEEE_)
+ /* acosh(x<1) */
+ return __kernel_standard (x, x, 29);
+
+diff --git a/math/w_acoshf.c b/math/w_acoshf.c
+index c59bf94..f77df2b 100644
+--- a/math/w_acoshf.c
++++ b/math/w_acoshf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,7 @@
+ float
+ __acoshf (float x)
+ {
+- if (__builtin_expect (x < 1.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isless (x, 1.0f), 0) && _LIB_VERSION != _IEEE_)
+ /* acosh(x<1) */
+ return __kernel_standard_f (x, x, 129);
+
+diff --git a/math/w_acoshl.c b/math/w_acoshl.c
+index 819bdfc..cc823b8 100644
+--- a/math/w_acoshl.c
++++ b/math/w_acoshl.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,7 @@
+ long double
+ __acoshl (long double x)
+ {
+- if (__builtin_expect (x < 1.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isless (x, 1.0L), 0) && _LIB_VERSION != _IEEE_)
+ /* acosh(x<1) */
+ return __kernel_standard (x, x, 229);
+
+diff --git a/math/w_acosl.c b/math/w_acosl.c
+index 6417068..05023b4 100644
+--- a/math/w_acosl.c
++++ b/math/w_acosl.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ long double
+ __acosl (long double x)
+ {
+- if (__builtin_expect (fabsl (x) > 1.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabsl (x), 1.0L), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ /* acos(|x|>1) */
+ feraiseexcept (FE_INVALID);
+diff --git a/math/w_asin.c b/math/w_asin.c
+index d4e89ce..0fa9487 100644
+--- a/math/w_asin.c
++++ b/math/w_asin.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ double
+ __asin (double x)
+ {
+- if (__builtin_expect (fabs (x) > 1.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabs (x), 1.0), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ /* asin(|x|>1) */
+ feraiseexcept (FE_INVALID);
+diff --git a/math/w_asinf.c b/math/w_asinf.c
+index 270961f..c28edab 100644
+--- a/math/w_asinf.c
++++ b/math/w_asinf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ float
+ __asinf (float x)
+ {
+- if (__builtin_expect (fabsf (x) > 1.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabsf (x), 1.0f), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ /* asin(|x|>1) */
+ feraiseexcept (FE_INVALID);
+diff --git a/math/w_asinl.c b/math/w_asinl.c
+index 32e5273..e4036d8 100644
+--- a/math/w_asinl.c
++++ b/math/w_asinl.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ long double
+ __asinl (long double x)
+ {
+- if (__builtin_expect (fabsl (x) > 1.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabsl (x), 1.0L), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ /* asin(|x|>1) */
+ feraiseexcept (FE_INVALID);
+diff --git a/math/w_atanh.c b/math/w_atanh.c
+index 1022bd5..190d2e9 100644
+--- a/math/w_atanh.c
++++ b/math/w_atanh.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,8 @@
+ double
+ __atanh (double x)
+ {
+- if (__builtin_expect (fabs (x) >= 1.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreaterequal (fabs (x), 1.0), 0)
++ && _LIB_VERSION != _IEEE_)
+ return __kernel_standard (x, x,
+ fabs (x) > 1.0
+ ? 30 /* atanh(|x|>1) */
+diff --git a/math/w_atanhf.c b/math/w_atanhf.c
+index 3c8cf83..e0c5dc3 100644
+--- a/math/w_atanhf.c
++++ b/math/w_atanhf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,8 @@
+ float
+ __atanhf (float x)
+ {
+- if (__builtin_expect (fabsf (x) >= 1.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreaterequal (fabsf (x), 1.0f), 0)
++ && _LIB_VERSION != _IEEE_)
+ return __kernel_standard_f (x, x,
+ fabsf (x) > 1.0f
+ ? 130 /* atanh(|x|>1) */
+diff --git a/math/w_atanhl.c b/math/w_atanhl.c
+index f582acf..319535d 100644
+--- a/math/w_atanhl.c
++++ b/math/w_atanhl.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,8 @@
+ long double
+ __atanhl (long double x)
+ {
+- if (__builtin_expect (fabsl (x) >= 1.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreaterequal (fabsl (x), 1.0L), 0)
++ && _LIB_VERSION != _IEEE_)
+ return __kernel_standard (x, x,
+ fabsl (x) > 1.0L
+ ? 230 /* atanh(|x|>1) */
+diff --git a/math/w_exp2.c b/math/w_exp2.c
+index bf22326..7a3b0af 100644
+--- a/math/w_exp2.c
++++ b/math/w_exp2.c
+@@ -12,7 +12,8 @@ static const double u_threshold = (double) (DBL_MIN_EXP - DBL_MANT_DIG - 1);
+ double
+ __exp2 (double x)
+ {
+- if (__builtin_expect (x <= u_threshold || x > o_threshold, 0)
++ if (__builtin_expect (islessequal (x, u_threshold)
++ || isgreater (x, o_threshold), 0)
+ && _LIB_VERSION != _IEEE_ && __finite (x))
+ /* exp2 overflow: 44, exp2 underflow: 45 */
+ return __kernel_standard (x, x, 44 + (x <= o_threshold));
+diff --git a/math/w_exp2f.c b/math/w_exp2f.c
+index 7215fca..c4e9e94 100644
+--- a/math/w_exp2f.c
++++ b/math/w_exp2f.c
+@@ -12,7 +12,8 @@ static const float u_threshold = (float) (FLT_MIN_EXP - FLT_MANT_DIG - 1);
+ float
+ __exp2f (float x)
+ {
+- if (__builtin_expect (x <= u_threshold || x > o_threshold, 0)
++ if (__builtin_expect (islessequal (x, u_threshold)
++ || isgreater (x, o_threshold), 0)
+ && _LIB_VERSION != _IEEE_ && __finitef (x))
+ /* exp2 overflow: 144, exp2 underflow: 145 */
+ return __kernel_standard_f (x, x, 144 + (x <= o_threshold));
+diff --git a/math/w_exp2l.c b/math/w_exp2l.c
+index ac8d231..442a637 100644
+--- a/math/w_exp2l.c
++++ b/math/w_exp2l.c
+@@ -13,7 +13,8 @@ static const long double u_threshold
+ long double
+ __exp2l (long double x)
+ {
+- if (__builtin_expect (x <= u_threshold || x > o_threshold, 0)
++ if (__builtin_expect (islessequal (x, u_threshold)
++ || isgreater (x, o_threshold), 0)
+ && _LIB_VERSION != _IEEE_ && __finitel (x))
+ /* exp2 overflow: 244, exp2 underflow: 245 */
+ return __kernel_standard (x, x, 244 + (x <= o_threshold));
+diff --git a/math/w_j0.c b/math/w_j0.c
+index 1dff8b4..f8d3724 100644
+--- a/math/w_j0.c
++++ b/math/w_j0.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ double
+ j0 (double x)
+ {
+- if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ /* j0(|x|>X_TLOSS) */
+ return __kernel_standard (x, x, 34);
+
+@@ -40,7 +41,8 @@ strong_alias (j0, j0l)
+ double
+ y0 (double x)
+ {
+- if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0)
+ {
+diff --git a/math/w_j0f.c b/math/w_j0f.c
+index fc52f26..cef36aa 100644
+--- a/math/w_j0f.c
++++ b/math/w_j0f.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ float
+ j0f (float x)
+ {
+- if (__builtin_expect (fabsf (x) > (float) X_TLOSS, 0)
++ if (__builtin_expect (isgreater (fabsf (x), (float) X_TLOSS), 0)
+ && _LIB_VERSION != _IEEE_)
+ /* j0(|x|>X_TLOSS) */
+ return __kernel_standard_f (x, x, 134);
+@@ -38,7 +38,8 @@ j0f (float x)
+ float
+ y0f (float x)
+ {
+- if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0)
++ if (__builtin_expect (islessequal (x, 0.0f)
++ || isgreater (x, (float) X_TLOSS), 0)
+ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0f)
+diff --git a/math/w_j0l.c b/math/w_j0l.c
+index 8d72d50..144f33c 100644
+--- a/math/w_j0l.c
++++ b/math/w_j0l.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ long double
+ __j0l (long double x)
+ {
+- if (__builtin_expect (fabsl (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabsl (x), X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ /* j0(|x|>X_TLOSS) */
+ return __kernel_standard (x, x, 234);
+
+@@ -38,7 +39,8 @@ weak_alias (__j0l, j0l)
+ long double
+ __y0l (long double x)
+ {
+- if (__builtin_expect (x <= 0.0L || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0L) || isgreater (x, X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0L)
+ {
+diff --git a/math/w_j1.c b/math/w_j1.c
+index 358e0e1..e9a5357 100644
+--- a/math/w_j1.c
++++ b/math/w_j1.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ double
+ j1 (double x)
+ {
+- if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ /* j1(|x|>X_TLOSS) */
+ return __kernel_standard (x, x, 36);
+
+@@ -40,7 +41,8 @@ strong_alias (j1, j1l)
+ double
+ y1 (double x)
+ {
+- if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0)
+ {
+diff --git a/math/w_j1f.c b/math/w_j1f.c
+index 096fdf5..29bd949 100644
+--- a/math/w_j1f.c
++++ b/math/w_j1f.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ float
+ j1f (float x)
+ {
+- if (__builtin_expect (fabsf (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabsf (x), X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ /* j1(|x|>X_TLOSS) */
+ return __kernel_standard_f (x, x, 136);
+
+@@ -37,7 +38,8 @@ j1f (float x)
+ float
+ y1f (float x)
+ {
+- if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0)
++ if (__builtin_expect (islessequal (x, 0.0f)
++ || isgreater (x, (float) X_TLOSS), 0)
+ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0f)
+diff --git a/math/w_j1l.c b/math/w_j1l.c
+index 93e4ee4..01b8551 100644
+--- a/math/w_j1l.c
++++ b/math/w_j1l.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ long double
+ __j1l (long double x)
+ {
+- if (__builtin_expect (fabsl (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabsl (x), X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ /* j1(|x|>X_TLOSS) */
+ return __kernel_standard (x, x, 236);
+
+@@ -38,7 +39,8 @@ weak_alias (__j1l, j1l)
+ long double
+ __y1l (long double x)
+ {
+- if (__builtin_expect (x <= 0.0L || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0L) || isgreater (x, X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0L)
+ {
+diff --git a/math/w_jn.c b/math/w_jn.c
+index f0dd8c6..fd3fb16 100644
+--- a/math/w_jn.c
++++ b/math/w_jn.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,8 @@
+ double
+ jn (int n, double x)
+ {
+- if (__builtin_expect (fabs (x) > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isgreater (fabs (x), X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ /* jn(n,|x|>X_TLOSS) */
+ return __kernel_standard (n, x, 38);
+
+@@ -40,7 +41,8 @@ strong_alias (jn, jnl)
+ double
+ yn (int n, double x)
+ {
+- if (__builtin_expect (x <= 0.0 || x > X_TLOSS, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0) || isgreater (x, X_TLOSS), 0)
++ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0)
+ {
+diff --git a/math/w_jnf.c b/math/w_jnf.c
+index ef29eb4..36d6f6d 100644
+--- a/math/w_jnf.c
++++ b/math/w_jnf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ float
+ jnf (int n, float x)
+ {
+- if (__builtin_expect (fabsf (x) > (float) X_TLOSS, 0)
++ if (__builtin_expect (isgreater (fabsf (x), (float) X_TLOSS), 0)
+ && _LIB_VERSION != _IEEE_)
+ /* jn(n,|x|>X_TLOSS) */
+ return __kernel_standard_f (n, x, 138);
+@@ -38,7 +38,8 @@ jnf (int n, float x)
+ float
+ ynf (int n, float x)
+ {
+- if (__builtin_expect (x <= 0.0f || x > (float) X_TLOSS, 0)
++ if (__builtin_expect (islessequal (x, 0.0f)
++ || isgreater (x, (float) X_TLOSS), 0)
+ && _LIB_VERSION != _IEEE_)
+ {
+ if (x < 0.0f)
+diff --git a/math/w_log.c b/math/w_log.c
+index efc1c4c..ec33605 100644
+--- a/math/w_log.c
++++ b/math/w_log.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ double
+ __log (double x)
+ {
+- if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0)
+ {
+diff --git a/math/w_log10.c b/math/w_log10.c
+index 2717ade..fe799ad 100644
+--- a/math/w_log10.c
++++ b/math/w_log10.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ double
+ __log10 (double x)
+ {
+- if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0)
+ {
+diff --git a/math/w_log10f.c b/math/w_log10f.c
+index 60737ca..4b821f7 100644
+--- a/math/w_log10f.c
++++ b/math/w_log10f.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ float
+ __log10f (float x)
+ {
+- if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0f)
+ {
+diff --git a/math/w_log10l.c b/math/w_log10l.c
+index b26f18c..0e5a137 100644
+--- a/math/w_log10l.c
++++ b/math/w_log10l.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ long double
+ __log10l (long double x)
+ {
+- if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0L)
+ {
+diff --git a/math/w_log2.c b/math/w_log2.c
+index 998e5d9..e58e109 100644
+--- a/math/w_log2.c
++++ b/math/w_log2.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ double
+ __log2 (double x)
+ {
+- if (__builtin_expect (x <= 0.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0)
+ {
+diff --git a/math/w_log2f.c b/math/w_log2f.c
+index 6d91bf4..6963ed2 100644
+--- a/math/w_log2f.c
++++ b/math/w_log2f.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ float
+ __log2f (float x)
+ {
+- if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0)
+ {
+diff --git a/math/w_log2l.c b/math/w_log2l.c
+index e51c1bc..eed04ff6c 100644
+--- a/math/w_log2l.c
++++ b/math/w_log2l.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ long double
+ __log2l (long double x)
+ {
+- if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0L)
+ {
+diff --git a/math/w_logf.c b/math/w_logf.c
+index 8aa27c8..38d408f 100644
+--- a/math/w_logf.c
++++ b/math/w_logf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ float
+ __logf (float x)
+ {
+- if (__builtin_expect (x <= 0.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0f)
+ {
+diff --git a/math/w_logl.c b/math/w_logl.c
+index a3139ff..593b37d 100644
+--- a/math/w_logl.c
++++ b/math/w_logl.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -25,7 +25,7 @@
+ long double
+ __logl (long double x)
+ {
+- if (__builtin_expect (x <= 0.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (islessequal (x, 0.0L), 0) && _LIB_VERSION != _IEEE_)
+ {
+ if (x == 0.0L)
+ {
+diff --git a/math/w_sqrt.c b/math/w_sqrt.c
+index 409a6df..f6ba542 100644
+--- a/math/w_sqrt.c
++++ b/math/w_sqrt.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,7 @@
+ double
+ __sqrt (double x)
+ {
+- if (__builtin_expect (x < 0.0, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isless (x, 0.0), 0) && _LIB_VERSION != _IEEE_)
+ return __kernel_standard (x, x, 26); /* sqrt(negative) */
+
+ return __ieee754_sqrt (x);
+diff --git a/math/w_sqrtf.c b/math/w_sqrtf.c
+index 3c3d2f8..c128e9b 100644
+--- a/math/w_sqrtf.c
++++ b/math/w_sqrtf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,7 @@
+ float
+ __sqrtf (float x)
+ {
+- if (__builtin_expect (x < 0.0f, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isless (x, 0.0f), 0) && _LIB_VERSION != _IEEE_)
+ return __kernel_standard_f (x, x, 126); /* sqrt(negative) */
+
+ return __ieee754_sqrtf (x);
+diff --git a/math/w_sqrtl.c b/math/w_sqrtl.c
+index 5e18f44..2a4a048 100644
+--- a/math/w_sqrtl.c
++++ b/math/w_sqrtl.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -24,7 +24,7 @@
+ long double
+ __sqrtl (long double x)
+ {
+- if (__builtin_expect (x < 0.0L, 0) && _LIB_VERSION != _IEEE_)
++ if (__builtin_expect (isless (x, 0.0L), 0) && _LIB_VERSION != _IEEE_)
+ return __kernel_standard (x, x, 226); /* sqrt(negative) */
+
+ return __ieee754_sqrtl (x);
+diff --git a/sysdeps/ieee754/dbl-64/e_atanh.c b/sysdeps/ieee754/dbl-64/e_atanh.c
+index 9fc21ab..5f471b1 100644
+--- a/sysdeps/ieee754/dbl-64/e_atanh.c
++++ b/sysdeps/ieee754/dbl-64/e_atanh.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -46,7 +46,7 @@ __ieee754_atanh (double x)
+ {
+ double xa = fabs (x);
+ double t;
+- if (xa < 0.5)
++ if (isless (xa, 0.5))
+ {
+ if (__builtin_expect (xa < 0x1.0p-28, 0))
+ {
+@@ -57,11 +57,11 @@ __ieee754_atanh (double x)
+ t = xa + xa;
+ t = 0.5 * __log1p (t + t * xa / (1.0 - xa));
+ }
+- else if (__builtin_expect (xa < 1.0, 1))
++ else if (__builtin_expect (isless (xa, 1.0), 1))
+ t = 0.5 * __log1p ((xa + xa) / (1.0 - xa));
+ else
+ {
+- if (xa > 1.0)
++ if (isgreater (xa, 1.0))
+ return (x - x) / (x - x);
+
+ return x / 0.0;
+diff --git a/sysdeps/ieee754/dbl-64/w_exp.c b/sysdeps/ieee754/dbl-64/w_exp.c
+index ee42587..b584ed8 100644
+--- a/sysdeps/ieee754/dbl-64/w_exp.c
++++ b/sysdeps/ieee754/dbl-64/w_exp.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -28,12 +28,12 @@ u_threshold= -7.45133219101941108420e+02; /* 0xc0874910, 0xD52D3051 */
+ double
+ __exp (double x)
+ {
+- if (__builtin_expect (x > o_threshold, 0))
++ if (__builtin_expect (isgreater (x, o_threshold), 0))
+ {
+ if (_LIB_VERSION != _IEEE_)
+ return __kernel_standard_f (x, x, 6);
+ }
+- else if (__builtin_expect (x < u_threshold, 0))
++ else if (__builtin_expect (isless (x, u_threshold), 0))
+ {
+ if (_LIB_VERSION != _IEEE_)
+ return __kernel_standard_f (x, x, 7);
+diff --git a/sysdeps/ieee754/flt-32/e_atanhf.c b/sysdeps/ieee754/flt-32/e_atanhf.c
+index 75ed691..7af2f6c 100644
+--- a/sysdeps/ieee754/flt-32/e_atanhf.c
++++ b/sysdeps/ieee754/flt-32/e_atanhf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -46,7 +46,7 @@ __ieee754_atanhf (float x)
+ {
+ float xa = fabsf (x);
+ float t;
+- if (xa < 0.5f)
++ if (isless (xa, 0.5f))
+ {
+ if (__builtin_expect (xa < 0x1.0p-28f, 0))
+ {
+@@ -57,11 +57,11 @@ __ieee754_atanhf (float x)
+ t = xa + xa;
+ t = 0.5f * __log1pf (t + t * xa / (1.0f - xa));
+ }
+- else if (__builtin_expect (xa < 1.0f, 1))
++ else if (__builtin_expect (isless (xa, 1.0f), 1))
+ t = 0.5f * __log1pf ((xa + xa) / (1.0f - xa));
+ else
+ {
+- if (xa > 1.0f)
++ if (isgreater (xa, 1.0f))
+ return (x - x) / (x - x);
+
+ return x / 0.0f;
+diff --git a/sysdeps/ieee754/flt-32/w_expf.c b/sysdeps/ieee754/flt-32/w_expf.c
+index 5500872..bc3b2f6 100644
+--- a/sysdeps/ieee754/flt-32/w_expf.c
++++ b/sysdeps/ieee754/flt-32/w_expf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -28,12 +28,12 @@ u_threshold= -1.0397208405e+02; /* 0xc2cff1b5 */
+ float
+ __expf (float x)
+ {
+- if (__builtin_expect (x > o_threshold, 0))
++ if (__builtin_expect (isgreater (x, o_threshold), 0))
+ {
+ if (_LIB_VERSION != _IEEE_)
+ return __kernel_standard_f (x, x, 106);
+ }
+- else if (__builtin_expect (x < u_threshold, 0))
++ else if (__builtin_expect (isless (x, u_threshold), 0))
+ {
+ if (_LIB_VERSION != _IEEE_)
+ return __kernel_standard_f (x, x, 107);
+diff --git a/sysdeps/ieee754/ldbl-96/w_expl.c b/sysdeps/ieee754/ldbl-96/w_expl.c
+index ec9d8a7..d61c0a3 100644
+--- a/sysdeps/ieee754/ldbl-96/w_expl.c
++++ b/sysdeps/ieee754/ldbl-96/w_expl.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2011 Free Software Foundation, Inc.
++/* Copyright (C) 2011, 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+@@ -30,12 +30,12 @@ u_threshold= -1.140019167866942050398521670162263001513e4;
+ long double
+ __expl (long double x)
+ {
+- if (__builtin_expect (x > o_threshold, 0))
++ if (__builtin_expect (isgreater (x, o_threshold), 0))
+ {
+ if (_LIB_VERSION != _IEEE_)
+ return __kernel_standard (x, x, 206);
+ }
+- else if (__builtin_expect (x < u_threshold, 0))
++ else if (__builtin_expect (isless (x, u_threshold), 0))
+ {
+ if (_LIB_VERSION != _IEEE_)
+ return __kernel_standard (x, x, 207);
diff --git a/testing/glibc/glibc-2.15-regex.patch b/testing/glibc/glibc-2.15-regex.patch
new file mode 100644
index 000000000..6385f2c08
--- /dev/null
+++ b/testing/glibc/glibc-2.15-regex.patch
@@ -0,0 +1,16 @@
+diff --git a/posix/regex_internal.c b/posix/regex_internal.c
+index bc19243..124f8cc 100644
+--- a/posix/regex_internal.c
++++ b/posix/regex_internal.c
+@@ -868,7 +868,7 @@ re_string_peek_byte_case (const re_string_t *pstr, int idx)
+ }
+
+ static unsigned char
+-internal_function __attribute ((pure))
++internal_function
+ re_string_fetch_byte_case (re_string_t *pstr)
+ {
+ if (BE (!pstr->mbs_allocated, 1))
+--
+1.7.3.4
+
diff --git a/testing/glibc/glibc-2.15-revert-c5a0802a.patch b/testing/glibc/glibc-2.15-revert-c5a0802a.patch
new file mode 100644
index 000000000..f532b95e8
--- /dev/null
+++ b/testing/glibc/glibc-2.15-revert-c5a0802a.patch
@@ -0,0 +1,229 @@
+diff -rup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
+--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:12.937212834 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:42.104222278 +0000
+@@ -137,7 +137,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
+@@ -151,9 +150,6 @@ __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. */
+ cmpl $-ENOSYS, %eax
+@@ -398,78 +394,6 @@ __pthread_cond_wait:
+ #endif
+ 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)
+@@ -642,10 +566,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
+Only in b/nptl/sysdeps/unix/sysv/linux/i386/i486: pthread_cond_wait.S.orig
+diff -rup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:04:12.941212837 +0000
++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:05:05.155229737 +0000
+@@ -23,7 +23,6 @@
+ #include <lowlevelcond.h>
+ #include <tcb-offsets.h>
+ #include <pthread-pi-defines.h>
+-#include <pthread-errnos.h>
+
+ #include <kernel-features.h>
+
+@@ -137,14 +136,11 @@ __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
+ #ifdef __ASSUME_REQUEUE_PI
+ jmp 62f
+ #else
+@@ -331,70 +327,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
+- cmpq $-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
+- cmpq $-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
+- movq dep_mutex(%rdi), %r8
+- 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,15 +479,11 @@ __condvar_cleanup1:
+ .uleb128 .LcleanupSTART-.LSTARTCODE
+ .uleb128 .LcleanupEND-.LcleanupSTART
+ .uleb128 __condvar_cleanup1-.LSTARTCODE
+- .uleb128 0
+- .uleb128 .LcleanupSTART2-.LSTARTCODE
+- .uleb128 .LcleanupEND2-.LcleanupSTART2
+- .uleb128 __condvar_cleanup1-.LSTARTCODE
+- .uleb128 0
++ .uleb128 0
+ .uleb128 .LcallUR-.LSTARTCODE
+ .uleb128 .LENDCODE-.LcallUR
+ .uleb128 0
+- .uleb128 0
++ .uleb128 0
+ .Lcstend:
+
+
+Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.orig
+Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.rej
diff --git a/testing/glibc/glibc-2.15-revert-netlink-cache.patch b/testing/glibc/glibc-2.15-revert-netlink-cache.patch
new file mode 100644
index 000000000..87d04c794
--- /dev/null
+++ b/testing/glibc/glibc-2.15-revert-netlink-cache.patch
@@ -0,0 +1,680 @@
+diff --git a/include/ifaddrs.h b/include/ifaddrs.h
+index e1c6cac..50e4c48 100644
+--- a/include/ifaddrs.h
++++ b/include/ifaddrs.h
+@@ -21,13 +21,8 @@ struct in6addrinfo
+ extern void __check_pf (bool *seen_ipv4, bool *seen_ipv6,
+ struct in6addrinfo **in6ai, size_t *in6ailen)
+ attribute_hidden;
+-extern void __free_in6ai (struct in6addrinfo *in6ai) attribute_hidden;
+ extern void __check_native (uint32_t a1_index, int *a1_native,
+ uint32_t a2_index, int *a2_native)
+ attribute_hidden;
+
+-#ifdef IS_IN_nscd
+-extern uint32_t __bump_nl_timestamp (void) attribute_hidden;
+-#endif
+-
+ #endif /* ifaddrs.h */
+diff --git a/inet/check_pf.c b/inet/check_pf.c
+index 0fa34cc..b015432 100644
+--- a/inet/check_pf.c
++++ b/inet/check_pf.c
+@@ -1,5 +1,5 @@
+ /* Determine protocol families for which interfaces exist. Generic version.
+- Copyright (C) 2003, 2006, 2011 Free Software Foundation, Inc.
++ Copyright (C) 2003, 2006 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
+@@ -54,19 +54,3 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6,
+
+ (void) freeifaddrs (ifa);
+ }
+-
+-
+-void
+-__free_in6ai (struct in6addrinfo *in6ai)
+-{
+- /* Nothing to do. */
+-}
+-
+-
+-#ifdef IS_IN_nscd
+-uint32_t
+-__bump_nl_timestamp (void)
+-{
+- return 0;
+-}
+-#endif
+diff --git a/nscd/connections.c b/nscd/connections.c
+index c741996..2b5c7ef 100644
+--- a/nscd/connections.c
++++ b/nscd/connections.c
+@@ -24,7 +24,6 @@
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <grp.h>
+-#include <ifaddrs.h>
+ #include <libintl.h>
+ #include <pthread.h>
+ #include <pwd.h>
+@@ -33,10 +32,6 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <arpa/inet.h>
+-#ifdef HAVE_NETLINK
+-# include <linux/netlink.h>
+-# include <linux/rtnetlink.h>
+-#endif
+ #ifdef HAVE_EPOLL
+ # include <sys/epoll.h>
+ #endif
+@@ -252,11 +247,6 @@ static int sock;
+ int inotify_fd = -1;
+ #endif
+
+-#ifdef HAVE_NETLINK
+-/* Descriptor for netlink status updates. */
+-static int nl_status_fd = -1;
+-#endif
+-
+ #ifndef __ASSUME_SOCK_CLOEXEC
+ /* Negative if SOCK_CLOEXEC is not supported, positive if it is, zero
+ before be know the result. */
+@@ -913,65 +903,6 @@ cannot set socket to close on exec: %s; disabling paranoia mode"),
+ exit (1);
+ }
+
+-#ifdef HAVE_NETLINK
+- if (dbs[hstdb].enabled)
+- {
+- /* Try to open netlink socket to monitor network setting changes. */
+- nl_status_fd = socket (AF_NETLINK,
+- SOCK_RAW | SOCK_CLOEXEC | SOCK_NONBLOCK,
+- NETLINK_ROUTE);
+- if (nl_status_fd != -1)
+- {
+- struct sockaddr_nl snl;
+- memset (&snl, '\0', sizeof (snl));
+- snl.nl_family = AF_NETLINK;
+- /* XXX Is this the best set to use? */
+- snl.nl_groups = (RTMGRP_IPV4_IFADDR | RTMGRP_TC | RTMGRP_IPV4_MROUTE
+- | RTMGRP_IPV4_ROUTE | RTMGRP_IPV4_RULE
+- | RTMGRP_IPV6_IFADDR | RTMGRP_IPV6_MROUTE
+- | RTMGRP_IPV6_ROUTE | RTMGRP_IPV6_IFINFO
+- | RTMGRP_IPV6_PREFIX);
+-
+- if (bind (nl_status_fd, (struct sockaddr *) &snl, sizeof (snl)) != 0)
+- {
+- close (nl_status_fd);
+- nl_status_fd = -1;
+- }
+- else
+- {
+- /* Start the timestamp process. */
+- dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]
+- = __bump_nl_timestamp ();
+-
+-# ifndef __ASSUME_SOCK_CLOEXEC
+- if (have_sock_cloexec < 0)
+- {
+- /* We don't want to get stuck on accept. */
+- int fl = fcntl (nl_status_fd, F_GETFL);
+- if (fl == -1
+- || fcntl (nl_status_fd, F_SETFL, fl | O_NONBLOCK) == -1)
+- {
+- dbg_log (_("\
+-cannot change socket to nonblocking mode: %s"),
+- strerror (errno));
+- exit (1);
+- }
+-
+- /* The descriptor needs to be closed on exec. */
+- if (paranoia
+- && fcntl (nl_status_fd, F_SETFD, FD_CLOEXEC) == -1)
+- {
+- dbg_log (_("cannot set socket to close on exec: %s"),
+- strerror (errno));
+- exit (1);
+- }
+- }
+-# endif
+- }
+- }
+- }
+-#endif
+-
+ /* Change to unprivileged uid/gid/groups if specified in config file */
+ if (server_user != NULL)
+ finish_drop_privileges ();
+@@ -1895,18 +1826,6 @@ main_loop_poll (void)
+ }
+ #endif
+
+-#ifdef HAVE_NETLINK
+- size_t idx_nl_status_fd = 0;
+- if (nl_status_fd != -1)
+- {
+- idx_nl_status_fd = nused;
+- conns[nused].fd = nl_status_fd;
+- conns[nused].events = POLLRDNORM;
+- ++nused;
+- firstfree = nused;
+- }
+-#endif
+-
+ while (1)
+ {
+ /* Wait for any event. We wait at most a couple of seconds so
+@@ -2049,20 +1968,6 @@ disabled inotify after read error %d"),
+ }
+ #endif
+
+-#ifdef HAVE_NETLINK
+- if (idx_nl_status_fd != 0 && conns[idx_nl_status_fd].revents != 0)
+- {
+- char buf[4096];
+- /* Read all the data. We do not interpret it here. */
+- while (TEMP_FAILURE_RETRY (read (nl_status_fd, buf,
+- sizeof (buf))) != -1)
+- ;
+-
+- dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]
+- = __bump_nl_timestamp ();
+- }
+-#endif
+-
+ for (size_t cnt = first; cnt < nused && n > 0; ++cnt)
+ if (conns[cnt].revents != 0)
+ {
+@@ -2141,17 +2046,6 @@ main_loop_epoll (int efd)
+ }
+ # endif
+
+-# ifdef HAVE_NETLINK
+- if (nl_status_fd != -1)
+- {
+- ev.events = EPOLLRDNORM;
+- ev.data.fd = nl_status_fd;
+- if (epoll_ctl (efd, EPOLL_CTL_ADD, nl_status_fd, &ev) == -1)
+- /* We cannot use epoll. */
+- return;
+- }
+-# endif
+-
+ while (1)
+ {
+ struct epoll_event revs[100];
+@@ -2268,18 +2162,6 @@ main_loop_epoll (int efd)
+ }
+ }
+ # endif
+-# ifdef HAVE_NETLINK
+- else if (revs[cnt].data.fd == nl_status_fd)
+- {
+- char buf[4096];
+- /* Read all the data. We do not interpret it here. */
+- while (TEMP_FAILURE_RETRY (read (nl_status_fd, buf,
+- sizeof (buf))) != -1)
+- ;
+-
+- __bump_nl_timestamp ();
+- }
+-# endif
+ else
+ {
+ /* Remove the descriptor from the epoll descriptor. */
+@@ -2303,7 +2185,6 @@ main_loop_epoll (int efd)
+ time_t laststart = now - ACCEPT_TIMEOUT;
+ assert (starttime[sock] == 0);
+ assert (inotify_fd == -1 || starttime[inotify_fd] == 0);
+- assert (nl_status_fd == -1 || starttime[nl_status_fd] == 0);
+ for (int cnt = highest; cnt > STDERR_FILENO; --cnt)
+ if (starttime[cnt] != 0 && starttime[cnt] < laststart)
+ {
+diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h
+index b5cd2d2..caad26a 100644
+--- a/nscd/nscd-client.h
++++ b/nscd/nscd-client.h
+@@ -260,17 +260,12 @@ struct hashentry
+
+
+ /* Current persistent database version. */
+-#define DB_VERSION 2
++#define DB_VERSION 1
+
+ /* Maximum time allowed between updates of the timestamp. */
+ #define MAPPING_TIMEOUT (5 * 60)
+
+
+-/* Used indices for the EXTRA_DATA element of 'database_pers_head'.
+- Each database has its own indices. */
+-#define NSCD_HST_IDX_CONF_TIMESTAMP 0
+-
+-
+ /* Header of persistent database file. */
+ struct database_pers_head
+ {
+@@ -279,8 +274,6 @@ struct database_pers_head
+ volatile int32_t gc_cycle;
+ volatile int32_t nscd_certainly_running;
+ volatile nscd_time_t timestamp;
+- /* Room for extensions. */
+- volatile uint32_t extra_data[4];
+
+ nscd_ssize_t module;
+ nscd_ssize_t data_size;
+@@ -329,12 +322,6 @@ extern int __nscd_open_socket (const char *key, size_t keylen,
+ request_type type, void *response,
+ size_t responselen) attribute_hidden;
+
+-/* Try to get a file descriptor for the shared meory segment
+- containing the database. */
+-extern struct mapped_database *__nscd_get_mapping (request_type type,
+- const char *key,
+- struct mapped_database **mappedp) attribute_hidden;
+-
+ /* Get reference of mapping. */
+ extern struct mapped_database *__nscd_get_map_ref (request_type type,
+ const char *name,
+@@ -384,7 +371,4 @@ extern ssize_t writeall (int fd, const void *buf, size_t len)
+ extern ssize_t sendfileall (int tofd, int fromfd, off_t off, size_t len)
+ attribute_hidden;
+
+-/* Get netlink timestamp counter from mapped area or zero. */
+-extern uint32_t __nscd_get_nl_timestamp (void);
+-
+ #endif /* nscd.h */
+diff --git a/nscd/nscd_gethst_r.c b/nscd/nscd_gethst_r.c
+index 6ee142d..70631fa 100644
+--- a/nscd/nscd_gethst_r.c
++++ b/nscd/nscd_gethst_r.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009, 2011
++/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009
+ Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+@@ -98,27 +98,6 @@ libc_freeres_fn (hst_map_free)
+ }
+
+
+-uint32_t
+-__nscd_get_nl_timestamp (void)
+-{
+- if (__nss_not_use_nscd_hosts != 0)
+- return 0;
+-
+- struct mapped_database *map = __hst_map_handle.mapped;
+-
+- if (map == NULL
+- || (map != NO_MAPPING
+- && map->head->nscd_certainly_running == 0
+- && map->head->timestamp + MAPPING_TIMEOUT < time (NULL)))
+- map = __nscd_get_mapping (GETFDHST, "hosts", &__hst_map_handle.mapped);
+-
+- if (map == NO_MAPPING)
+- return 0;
+-
+- return map->head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP];
+-}
+-
+-
+ int __nss_have_localdomain attribute_hidden;
+
+ static int
+diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c
+index 365b599..fe63f9a 100644
+--- a/nscd/nscd_helper.c
++++ b/nscd/nscd_helper.c
+@@ -277,9 +277,9 @@ __nscd_unmap (struct mapped_database *mapped)
+
+ /* Try to get a file descriptor for the shared meory segment
+ containing the database. */
+-struct mapped_database *
+-__nscd_get_mapping (request_type type, const char *key,
+- struct mapped_database **mappedp)
++static struct mapped_database *
++get_mapping (request_type type, const char *key,
++ struct mapped_database **mappedp)
+ {
+ struct mapped_database *result = NO_MAPPING;
+ #ifdef SCM_RIGHTS
+@@ -449,8 +449,8 @@ __nscd_get_map_ref (request_type type, const char *name,
+ || (cur->head->nscd_certainly_running == 0
+ && cur->head->timestamp + MAPPING_TIMEOUT < time (NULL))
+ || cur->head->data_size > cur->datasize)
+- cur = __nscd_get_mapping (type, name,
+- (struct mapped_database **) &mapptr->mapped);
++ cur = get_mapping (type, name,
++ (struct mapped_database **) &mapptr->mapped);
+
+ if (__builtin_expect (cur != NO_MAPPING, 1))
+ {
+diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
+index 1a023f9..4979805 100644
+--- a/sysdeps/posix/getaddrinfo.c
++++ b/sysdeps/posix/getaddrinfo.c
+@@ -2386,7 +2386,7 @@ getaddrinfo (const char *name, const char *service,
+ || (hints->ai_family == PF_INET6 && ! seen_ipv6))
+ {
+ /* We cannot possibly return a valid answer. */
+- __free_in6ai (in6ai);
++ free (in6ai);
+ return EAI_NONAME;
+ }
+ }
+@@ -2400,7 +2400,7 @@ getaddrinfo (const char *name, const char *service,
+ {
+ if (hints->ai_flags & AI_NUMERICSERV)
+ {
+- __free_in6ai (in6ai);
++ free (in6ai);
+ return EAI_NONAME;
+ }
+
+@@ -2422,7 +2422,7 @@ getaddrinfo (const char *name, const char *service,
+ if (last_i != 0)
+ {
+ freeaddrinfo (p);
+- __free_in6ai (in6ai);
++ free (in6ai);
+
+ return -(last_i & GAIH_EAI);
+ }
+@@ -2434,7 +2434,7 @@ getaddrinfo (const char *name, const char *service,
+ }
+ else
+ {
+- __free_in6ai (in6ai);
++ free (in6ai);
+ return EAI_FAMILY;
+ }
+
+@@ -2622,7 +2622,7 @@ getaddrinfo (const char *name, const char *service,
+ p->ai_canonname = canonname;
+ }
+
+- __free_in6ai (in6ai);
++ free (in6ai);
+
+ if (p)
+ {
+diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
+index e684b16..c907af4 100644
+--- a/sysdeps/unix/sysv/linux/Makefile
++++ b/sysdeps/unix/sysv/linux/Makefile
+@@ -173,6 +173,6 @@ CFLAGS-mq_receive.c += -fexceptions
+ endif
+
+ ifeq ($(subdir),nscd)
+-sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY -DHAVE_NETLINK
++sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY
+ CFLAGS-gai.c += -DNEED_NETLINK
+ endif
+diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c
+index 0738a70..d5ad7ea 100644
+--- a/sysdeps/unix/sysv/linux/check_pf.c
++++ b/sysdeps/unix/sysv/linux/check_pf.c
+@@ -1,5 +1,5 @@
+ /* Determine protocol families for which interfaces exist. Linux version.
+- Copyright (C) 2003, 2006-2008, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 2003, 2006, 2007, 2008, 2010, 2011 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
+@@ -33,9 +33,6 @@
+
+ #include <not-cancel.h>
+ #include <kernel-features.h>
+-#include <bits/libc-lock.h>
+-#include <atomic.h>
+-#include <nscd/nscd-client.h>
+
+
+ #ifndef IFA_F_HOMEADDRESS
+@@ -46,42 +43,9 @@
+ #endif
+
+
+-struct cached_data
+-{
+- uint32_t timestamp;
+- uint32_t usecnt;
+- bool seen_ipv4;
+- bool seen_ipv6;
+- size_t in6ailen;
+- struct in6addrinfo in6ai[0];
+-};
+-
+-static struct cached_data noai6ai_cached =
+- {
+- .usecnt = 1, /* Make sure we never try to delete this entry. */
+- .in6ailen = 0
+- };
+-
+-static struct cached_data *cache;
+-__libc_lock_define_initialized (static, lock);
+-
+-
+-#ifdef IS_IN_nscd
+-static uint32_t nl_timestamp;
+-
+-uint32_t
+-__bump_nl_timestamp (void)
+-{
+- if (atomic_increment_val (&nl_timestamp) == 0)
+- atomic_increment (&nl_timestamp);
+-
+- return nl_timestamp;
+-}
+-#endif
+-
+-
+-static struct cached_data *
+-make_request (int fd, pid_t pid)
++static int
++make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6,
++ struct in6addrinfo **in6ai, size_t *in6ailen)
+ {
+ struct req
+ {
+@@ -135,6 +99,9 @@ make_request (int fd, pid_t pid)
+ sizeof (nladdr))) < 0)
+ goto out_fail;
+
++ *seen_ipv4 = false;
++ *seen_ipv6 = false;
++
+ bool done = false;
+ struct in6ailist
+ {
+@@ -142,8 +109,6 @@ make_request (int fd, pid_t pid)
+ struct in6ailist *next;
+ } *in6ailist = NULL;
+ size_t in6ailistlen = 0;
+- bool seen_ipv4 = false;
+- bool seen_ipv6 = false;
+
+ do
+ {
+@@ -207,12 +172,12 @@ make_request (int fd, pid_t pid)
+ {
+ if (*(const in_addr_t *) address
+ != htonl (INADDR_LOOPBACK))
+- seen_ipv4 = true;
++ *seen_ipv4 = true;
+ }
+ else
+ {
+ if (!IN6_IS_ADDR_LOOPBACK (address))
+- seen_ipv6 = true;
++ *seen_ipv6 = true;
+ }
+ }
+
+@@ -246,47 +211,30 @@ make_request (int fd, pid_t pid)
+ }
+ while (! done);
+
+- struct cached_data *result;
+- if (seen_ipv6 && in6ailist != NULL)
++ if (*seen_ipv6 && in6ailist != NULL)
+ {
+- result = malloc (sizeof (*result)
+- + in6ailistlen * sizeof (struct in6addrinfo));
+- if (result == NULL)
++ *in6ai = malloc (in6ailistlen * sizeof (**in6ai));
++ if (*in6ai == NULL)
+ goto out_fail;
+
+-#ifdef IS_IN_nscd
+- result->timestamp = nl_timestamp;
+-#else
+- result->timestamp = __nscd_get_nl_timestamp ();
+-#endif
+- result->usecnt = 2;
+- result->seen_ipv4 = seen_ipv4;
+- result->seen_ipv6 = true;
+- result->in6ailen = in6ailistlen;
++ *in6ailen = in6ailistlen;
+
+ do
+ {
+- result->in6ai[--in6ailistlen] = in6ailist->info;
++ (*in6ai)[--in6ailistlen] = in6ailist->info;
+ in6ailist = in6ailist->next;
+ }
+ while (in6ailist != NULL);
+ }
+- else
+- {
+- atomic_add (&noai6ai_cached.usecnt, 2);
+- noai6ai_cached.seen_ipv4 = seen_ipv4;
+- noai6ai_cached.seen_ipv6 = seen_ipv6;
+- result = &noai6ai_cached;
+- }
+
+ if (use_malloc)
+ free (buf);
+- return result;
++ return 0;
+
+ out_fail:
+ if (use_malloc)
+ free (buf);
+- return NULL;
++ return -1;
+ }
+
+
+@@ -310,65 +258,28 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6,
+
+ if (! __no_netlink_support)
+ {
+- struct cached_data *olddata = NULL;
+- struct cached_data *data = NULL;
++ int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
+
+- __libc_lock_lock (lock);
+-
+-#ifdef IS_IN_nscd
+-# define cache_valid() nl_timestamp != 0 && cache->timestamp == nl_timestamp
+-#else
+-# define cache_valid() \
+- ({ uint32_t val = __nscd_get_nl_timestamp (); \
+- val != 0 && cache->timestamp == val; })
+-#endif
+- if (cache != NULL && cache_valid ())
+- {
+- data = cache;
+- atomic_increment (&cache->usecnt);
+- }
+- else
++ if (__builtin_expect (fd >= 0, 1))
+ {
+- int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
++ struct sockaddr_nl nladdr;
++ memset (&nladdr, '\0', sizeof (nladdr));
++ nladdr.nl_family = AF_NETLINK;
+
+- if (__builtin_expect (fd >= 0, 1))
+- {
+- struct sockaddr_nl nladdr;
+- memset (&nladdr, '\0', sizeof (nladdr));
+- nladdr.nl_family = AF_NETLINK;
+-
+- socklen_t addr_len = sizeof (nladdr);
+-
+- if(__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0
+- && __getsockname (fd, (struct sockaddr *) &nladdr,
+- &addr_len) == 0)
+- data = make_request (fd, nladdr.nl_pid);
+-
+- close_not_cancel_no_status (fd);
+- }
+-
+- if (data != NULL)
+- {
+- olddata = cache;
+- cache = data;
+- }
+- }
++ socklen_t addr_len = sizeof (nladdr);
+
+- __libc_lock_unlock (lock);
++ bool success
++ = (__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0
++ && __getsockname (fd, (struct sockaddr *) &nladdr,
++ &addr_len) == 0
++ && make_request (fd, nladdr.nl_pid, seen_ipv4, seen_ipv6,
++ in6ai, in6ailen) == 0);
+
+- if (data != NULL)
+- {
+- /* It worked. */
+- *seen_ipv4 = data->seen_ipv4;
+- *seen_ipv6 = data->seen_ipv6;
+- *in6ailen = data->in6ailen;
+- *in6ai = data->in6ai;
+-
+- if (olddata != NULL && olddata->usecnt > 0
+- && atomic_add_zero (&olddata->usecnt, -1))
+- free (olddata);
++ close_not_cancel_no_status (fd);
+
+- return;
++ if (success)
++ /* It worked. */
++ return;
+ }
+
+ #if __ASSUME_NETLINK_SUPPORT == 0
+@@ -407,26 +318,3 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6,
+ (void) freeifaddrs (ifa);
+ #endif
+ }
+-
+-
+-void
+-__free_in6ai (struct in6addrinfo *ai)
+-{
+- if (ai != NULL)
+- {
+- struct cached_data *data =
+- (struct cached_data *) ((char *) ai
+- - offsetof (struct cached_data, in6ai));
+-
+- if (atomic_add_zero (&data->usecnt, -1))
+- {
+- __libc_lock_lock (lock);
+-
+- if (data->usecnt == 0)
+- /* Still unused. */
+- free (data);
+-
+- __libc_lock_unlock (lock);
+- }
+- }
+-}
diff --git a/testing/glibc/glibc-2.15-rintf-rounding.patch b/testing/glibc/glibc-2.15-rintf-rounding.patch
new file mode 100644
index 000000000..e0240ac6c
--- /dev/null
+++ b/testing/glibc/glibc-2.15-rintf-rounding.patch
@@ -0,0 +1,158 @@
+diff --git a/math/libm-test.inc b/math/libm-test.inc
+index 6243e1e..c8186c8 100644
+--- a/math/libm-test.inc
++++ b/math/libm-test.inc
+@@ -5037,6 +5037,22 @@ rint_test (void)
+ TEST_f_f (rint, 262142.75, 262143.0);
+ TEST_f_f (rint, 524286.75, 524287.0);
+ TEST_f_f (rint, 524288.75, 524289.0);
++ TEST_f_f (rint, 1048576.75, 1048577.0);
++ TEST_f_f (rint, 2097152.75, 2097153.0);
++ TEST_f_f (rint, -1048576.75, -1048577.0);
++ TEST_f_f (rint, -2097152.75, -2097153.0);
++#ifndef TEST_FLOAT
++ TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
++ TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
++ TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
++ TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
++ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
++ TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
++ TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
++ TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
++ TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
++ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
++#endif
+ #ifdef TEST_LDOUBLE
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
+@@ -5137,6 +5153,22 @@ rint_test_tonearest (void)
+ TEST_f_f (rint, -0.1, -0.0);
+ TEST_f_f (rint, -0.25, -0.0);
+ TEST_f_f (rint, -0.625, -1.0);
++ TEST_f_f (rint, 1048576.75, 1048577.0);
++ TEST_f_f (rint, 2097152.75, 2097153.0);
++ TEST_f_f (rint, -1048576.75, -1048577.0);
++ TEST_f_f (rint, -2097152.75, -2097153.0);
++#ifndef TEST_FLOAT
++ TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
++ TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
++ TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
++ TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
++ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
++ TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
++ TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
++ TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
++ TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
++ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
++#endif
+ #ifdef TEST_LDOUBLE
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
+@@ -5207,6 +5239,22 @@ rint_test_towardzero (void)
+ TEST_f_f (rint, -0.1, -0.0);
+ TEST_f_f (rint, -0.25, -0.0);
+ TEST_f_f (rint, -0.625, -0.0);
++ TEST_f_f (rint, 1048576.75, 1048576.0);
++ TEST_f_f (rint, 2097152.75, 2097152.0);
++ TEST_f_f (rint, -1048576.75, -1048576.0);
++ TEST_f_f (rint, -2097152.75, -2097152.0);
++#ifndef TEST_FLOAT
++ TEST_f_f (rint, 70368744177664.75, 70368744177664.0);
++ TEST_f_f (rint, 140737488355328.75, 140737488355328.0);
++ TEST_f_f (rint, 281474976710656.75, 281474976710656.0);
++ TEST_f_f (rint, 562949953421312.75, 562949953421312.0);
++ TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0);
++ TEST_f_f (rint, -70368744177664.75, -70368744177664.0);
++ TEST_f_f (rint, -140737488355328.75, -140737488355328.0);
++ TEST_f_f (rint, -281474976710656.75, -281474976710656.0);
++ TEST_f_f (rint, -562949953421312.75, -562949953421312.0);
++ TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0);
++#endif
+ #ifdef TEST_LDOUBLE
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L);
+@@ -5277,6 +5325,22 @@ rint_test_downward (void)
+ TEST_f_f (rint, -0.1, -1.0);
+ TEST_f_f (rint, -0.25, -1.0);
+ TEST_f_f (rint, -0.625, -1.0);
++ TEST_f_f (rint, 1048576.75, 1048576.0);
++ TEST_f_f (rint, 2097152.75, 2097152.0);
++ TEST_f_f (rint, -1048576.75, -1048577.0);
++ TEST_f_f (rint, -2097152.75, -2097153.0);
++#ifndef TEST_FLOAT
++ TEST_f_f (rint, 70368744177664.75, 70368744177664.0);
++ TEST_f_f (rint, 140737488355328.75, 140737488355328.0);
++ TEST_f_f (rint, 281474976710656.75, 281474976710656.0);
++ TEST_f_f (rint, 562949953421312.75, 562949953421312.0);
++ TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0);
++ TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
++ TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
++ TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
++ TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
++ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
++#endif
+ #ifdef TEST_LDOUBLE
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L);
+@@ -5347,6 +5411,22 @@ rint_test_upward (void)
+ TEST_f_f (rint, -0.1, -0.0);
+ TEST_f_f (rint, -0.25, -0.0);
+ TEST_f_f (rint, -0.625, -0.0);
++ TEST_f_f (rint, 1048576.75, 1048577.0);
++ TEST_f_f (rint, 2097152.75, 2097153.0);
++ TEST_f_f (rint, -1048576.75, -1048576.0);
++ TEST_f_f (rint, -2097152.75, -2097152.0);
++#ifndef TEST_FLOAT
++ TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
++ TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
++ TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
++ TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
++ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
++ TEST_f_f (rint, -70368744177664.75, -70368744177664.0);
++ TEST_f_f (rint, -140737488355328.75, -140737488355328.0);
++ TEST_f_f (rint, -281474976710656.75, -281474976710656.0);
++ TEST_f_f (rint, -562949953421312.75, -562949953421312.0);
++ TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0);
++#endif
+ #ifdef TEST_LDOUBLE
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
+diff --git a/sysdeps/ieee754/flt-32/s_rintf.c b/sysdeps/ieee754/flt-32/s_rintf.c
+index 9ea9b6f..9ba6b57 100644
+--- a/sysdeps/ieee754/flt-32/s_rintf.c
++++ b/sysdeps/ieee754/flt-32/s_rintf.c
+@@ -26,34 +26,22 @@ float
+ __rintf(float x)
+ {
+ int32_t i0,j0,sx;
+- u_int32_t i,i1;
+ float w,t;
+ GET_FLOAT_WORD(i0,x);
+ sx = (i0>>31)&1;
+ j0 = ((i0>>23)&0xff)-0x7f;
+ if(j0<23) {
+ if(j0<0) {
+- if((i0&0x7fffffff)==0) return x;
+- i1 = (i0&0x07fffff);
+- i0 &= 0xfff00000;
+- i0 |= ((i1|-i1)>>9)&0x400000;
+- SET_FLOAT_WORD(x,i0);
+ w = TWO23[sx]+x;
+ t = w-TWO23[sx];
+ GET_FLOAT_WORD(i0,t);
+ SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
+ return t;
+- } else {
+- i = (0x007fffff)>>j0;
+- if((i0&i)==0) return x; /* x is integral */
+- i>>=1;
+- if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0);
+ }
+ } else {
+ if(j0==0x80) return x+x; /* inf or NaN */
+ else return x; /* x is integral */
+ }
+- SET_FLOAT_WORD(x,i0);
+ w = TWO23[sx]+x;
+ return w-TWO23[sx];
+ }
diff --git a/testing/glibc/glibc-2.15-scanf.patch b/testing/glibc/glibc-2.15-scanf.patch
new file mode 100644
index 000000000..a2561b232
--- /dev/null
+++ b/testing/glibc/glibc-2.15-scanf.patch
@@ -0,0 +1,19 @@
+diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
+index 0e71deb..e18a6c3 100644
+--- a/stdio-common/vfscanf.c
++++ b/stdio-common/vfscanf.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1991-2006, 2007, 2010, 2011 Free Software Foundation, Inc.
++/* Copyright (C) 1991-2007, 2010, 2011, 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
+@@ -274,7 +274,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
+ CHAR_T *old = wp; \
+ size_t newsize = (UCHAR_MAX + 1 > 2 * wpmax \
+ ? UCHAR_MAX + 1 : 2 * wpmax); \
+- if (use_malloc || __libc_use_alloca (newsize)) \
++ if (use_malloc || !__libc_use_alloca (newsize)) \
+ { \
+ wp = realloc (use_malloc ? wp : NULL, newsize); \
+ if (wp == NULL) \
diff --git a/testing/glibc/glibc-2.15-strcasecmp-disable-avx.patch b/testing/glibc/glibc-2.15-strcasecmp-disable-avx.patch
new file mode 100644
index 000000000..4c104fa55
--- /dev/null
+++ b/testing/glibc/glibc-2.15-strcasecmp-disable-avx.patch
@@ -0,0 +1,48 @@
+diff --git a/sysdeps/x86_64/multiarch/strcmp.S b/sysdeps/x86_64/multiarch/strcmp.S
+index f93c83d..d8aa889 100644
+--- a/sysdeps/x86_64/multiarch/strcmp.S
++++ b/sysdeps/x86_64/multiarch/strcmp.S
+@@ -105,11 +105,6 @@ ENTRY(__strcasecmp)
+ jne 1f
+ call __init_cpu_features
+ 1:
+-# ifdef HAVE_AVX_SUPPORT
+- leaq __strcasecmp_avx(%rip), %rax
+- testl $bit_AVX, __cpu_features+CPUID_OFFSET+index_AVX(%rip)
+- jnz 2f
+-# endif
+ leaq __strcasecmp_sse42(%rip), %rax
+ testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
+ jnz 2f
+@@ -128,11 +123,6 @@ ENTRY(__strncasecmp)
+ jne 1f
+ call __init_cpu_features
+ 1:
+-# ifdef HAVE_AVX_SUPPORT
+- leaq __strncasecmp_avx(%rip), %rax
+- testl $bit_AVX, __cpu_features+CPUID_OFFSET+index_AVX(%rip)
+- jnz 2f
+-# endif
+ leaq __strncasecmp_sse42(%rip), %rax
+ testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
+ jnz 2f
+@@ -152,19 +142,6 @@ weak_alias (__strncasecmp, strncasecmp)
+ # include "strcmp-sse42.S"
+
+
+-# ifdef HAVE_AVX_SUPPORT
+-# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+-# define LABEL(l) .L##l##_avx
+-# define GLABEL(l) l##_avx
+-# define USE_AVX 1
+-# undef STRCMP_SSE42
+-# define STRCMP_SSE42 STRCMP_AVX
+-# define SECTION avx
+-# include "strcmp-sse42.S"
+-# endif
+-# endif
+-
+-
+ # undef ENTRY
+ # define ENTRY(name) \
+ .type STRCMP_SSE2, @function; \
diff --git a/testing/glibc/glibc-2.15-testsuite.patch b/testing/glibc/glibc-2.15-testsuite.patch
new file mode 100644
index 000000000..7eaeaed65
--- /dev/null
+++ b/testing/glibc/glibc-2.15-testsuite.patch
@@ -0,0 +1,110 @@
+From d4c2917fc5091dae7ab1b30c165becb70d3c3453 Mon Sep 17 00:00:00 2001
+From: Allan McRae <allan@archlinux.org>
+Date: Mon, 16 Apr 2012 14:06:47 +1000
+Subject: [PATCH] Fix test-suite failues with -Wl,--as-needed
+
+Signed-off-by: Allan McRae <allan@archlinux.org>
+---
+ ChangeLog | 24 ++++++++++++++++++++++++
+ elf/Makefile | 21 ++++++++++++++++++++-
+ nptl/ChangeLog | 5 +++++
+ nptl/Makefile | 3 ++-
+ stdlib/Makefile | 1 +
+ 5 files changed, 52 insertions(+), 2 deletions(-)
+
+diff --git a/elf/Makefile b/elf/Makefile
+index 57dcab0..47729c3 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -500,6 +500,18 @@ $(objpfx)tst-initordera3.so: $(objpfx)tst-initorderb2.so $(objpfx)tst-initorderb
+ $(objpfx)tst-initordera4.so: $(objpfx)tst-initordera3.so
+ $(objpfx)tst-initorder: $(objpfx)tst-initordera4.so $(objpfx)tst-initordera1.so $(objpfx)tst-initorderb2.so
+
++LDFLAGS-nodel2mod3.so = $(no-as-needed)
++LDFLAGS-reldepmod5.so = $(no-as-needed)
++LDFLAGS-reldep6mod1.so = $(no-as-needed)
++LDFLAGS-reldep6mod4.so = $(no-as-needed)
++LDFLAGS-reldep8mod3.so = $(no-as-needed)
++LDFLAGS-unload4mod1.so = $(no-as-needed)
++LDFLAGS-unload4mod2.so = $(no-as-needed)
++LDFLAGS-tst-initorder = $(no-as-needed)
++LDFLAGS-tst-initordera2.so = $(no-as-needed)
++LDFLAGS-tst-initordera3.so = $(no-as-needed)
++LDFLAGS-tst-initordera4.so = $(no-as-needed)
++LDFLAGS-tst-initorderb2.so = $(no-as-needed)
+ LDFLAGS-tst-tlsmod5.so = -nostdlib
+ LDFLAGS-tst-tlsmod6.so = -nostdlib
+
+@@ -633,7 +645,7 @@ $(objpfx)vismain.out: $(addprefix $(objpfx),vismod3.so)
+ vismain-ENV = LD_PRELOAD=$(addprefix $(objpfx),vismod3.so)
+
+ $(objpfx)noload: $(objpfx)testobj1.so $(common-objpfx)dlfcn/libdl.so
+-LDFLAGS-noload = -rdynamic
++LDFLAGS-noload = -rdynamic $(no-as-needed)
+ $(objpfx)noload.out: $(objpfx)testobj5.so
+
+ $(objpfx)noload-mem: $(objpfx)noload.out
+@@ -678,6 +690,7 @@ $(objpfx)reldep4: $(libdl)
+ $(objpfx)reldep4.out: $(objpfx)reldep4mod1.so $(objpfx)reldep4mod2.so
+
+ $(objpfx)next: $(objpfx)nextmod1.so $(objpfx)nextmod2.so $(libdl)
++LDFLAGS-next = $(no-as-needed)
+
+ $(objpfx)unload2: $(libdl)
+ $(objpfx)unload2.out: $(objpfx)unload2mod.so $(objpfx)unload2dep.so
+@@ -1025,6 +1038,8 @@ $(objpfx)order2mod1.so: $(objpfx)order2mod4.so
+ $(objpfx)order2mod4.so: $(objpfx)order2mod3.so
+ $(objpfx)order2mod2.so: $(objpfx)order2mod3.so
+ order2mod2.so-no-z-defs = yes
++LDFLAGS-order2mod1.so = $(no-as-needed)
++LDFLAGS-order2mod2.so = $(no-as-needed)
+
+ tst-stackguard1-ARGS = --command "$(built-program-cmd) --child"
+ tst-stackguard1-static-ARGS = --command "$(objpfx)tst-stackguard1-static --child"
+@@ -1113,6 +1128,10 @@ $(objpfx)tst-initorder2: $(objpfx)tst-initorder2a.so $(objpfx)tst-initorder2d.so
+ $(objpfx)tst-initorder2a.so: $(objpfx)tst-initorder2b.so
+ $(objpfx)tst-initorder2b.so: $(objpfx)tst-initorder2c.so
+ $(objpfx)tst-initorder2c.so: $(objpfx)tst-initorder2d.so
++LDFLAGS-tst-initorder2 = $(no-as-needed)
++LDFLAGS-tst-initorder2a.so = $(no-as-needed)
++LDFLAGS-tst-initorder2b.so = $(no-as-needed)
++LDFLAGS-tst-initorder2c.so = $(no-as-needed)
+ define o-iterator-doit
+ $(objpfx)tst-initorder2$o.os: tst-initorder2.c; \
+ $$(compile-command.c) -DNAME=\"$o\"
+diff --git a/nptl/Makefile b/nptl/Makefile
+index 09acd8a..07a1022 100644
+--- a/nptl/Makefile
++++ b/nptl/Makefile
+@@ -458,6 +458,7 @@ $(objpfx)tst-tls4: $(libdl) $(shared-thread-library)
+ $(objpfx)tst-tls4.out: $(objpfx)tst-tls4moda.so $(objpfx)tst-tls4modb.so
+
+ $(objpfx)tst-tls5: $(objpfx)tst-tls5mod.so $(shared-thread-library)
++LDFLAGS-tst-tls5 = $(no-as-needed)
+ LDFLAGS-tst-tls5mod.so = -Wl,-soname,tst-tls5mod.so
+
+ ifeq ($(build-shared),yes)
+@@ -503,7 +504,7 @@ $(objpfx)tst-clock2: $(common-objpfx)rt/librt.a
+ $(objpfx)tst-rwlock14: $(common-objpfx)rt/librt.a
+ endif
+
+-LDFLAGS-tst-cancel24 = -lstdc++
++LDFLAGS-tst-cancel24 = $(no-as-needed) -lstdc++
+
+ extra-B-pthread.so = -B$(common-objpfx)nptl/
+ $(objpfx)libpthread.so: $(addprefix $(objpfx),$(crti-objs) $(crtn-objs))
+diff --git a/stdlib/Makefile b/stdlib/Makefile
+index 44eb20d..f7811c5 100644
+--- a/stdlib/Makefile
++++ b/stdlib/Makefile
+@@ -138,6 +138,7 @@ $(objpfx)tst-fmtmsg.out: tst-fmtmsg.sh $(objpfx)tst-fmtmsg
+ $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)stdlib/
+
+ $(objpfx)tst-putenv: $(objpfx)tst-putenvmod.so
++LDFLAGS-tst-putenv = $(no-as-needed)
+
+ $(objpfx)tst-putenvmod.so: $(objpfx)tst-putenvmod.os
+ $(build-module)
+--
+1.7.3.4
+
diff --git a/testing/glibc/glibc-2.15-vdso.patch b/testing/glibc/glibc-2.15-vdso.patch
new file mode 100644
index 000000000..7fd394f90
--- /dev/null
+++ b/testing/glibc/glibc-2.15-vdso.patch
@@ -0,0 +1,40 @@
+diff --git a/elf/Makefile b/elf/Makefile
+index 8234ba7..25ffc57 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -1203,3 +1203,14 @@ $(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so
+ $(objpfx)tst-relsort1mod2.so: $(libm)
+ $(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \
+ $(objpfx)tst-relsort1mod2.so
++
++tests: $(objpfx)tst-unused-dep.out
++
++$(objpfx)tst-unused-dep.out: $(objpfx)testobj1.so
++ LD_TRACE_LOADED_OBJECTS=1 \
++ LD_DEBUG=unused \
++ LD_PRELOAD= \
++ $(elf-objpfx)${rtld-installed-name} \
++ --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
++ $< > $@
++ cmp $@ /dev/null > /dev/null
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 2e4f97f..3e15447 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -1,5 +1,5 @@
+ /* Run time dynamic linker.
+- Copyright (C) 1995-2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1995-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
+@@ -1375,6 +1375,9 @@ of this helper program; chances are you did not intend to run this program.\n\
+ _dl_setup_hash (l);
+ l->l_relocated = 1;
+
++ /* The vDSO is always used. */
++ l->l_used = 1;
++
+ /* Initialize l_local_scope to contain just this map. This allows
+ the use of dl_lookup_symbol_x to resolve symbols within the vdso.
+ So we create a single entry list pointing to l_real as its only
diff --git a/testing/glibc/glibc-2.15-vfprintf-nargs.patch b/testing/glibc/glibc-2.15-vfprintf-nargs.patch
new file mode 100644
index 000000000..f8dde53f5
--- /dev/null
+++ b/testing/glibc/glibc-2.15-vfprintf-nargs.patch
@@ -0,0 +1,180 @@
+diff --git a/stdio-common/Makefile b/stdio-common/Makefile
+index a847b28..080badc 100644
+--- a/stdio-common/Makefile
++++ b/stdio-common/Makefile
+@@ -59,7 +59,8 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \
+ tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \
+ tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \
+ bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \
+- scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24
++ scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \
++ bug-vfprintf-nargs
+
+ test-srcs = tst-unbputc tst-printf
+
+diff --git a/stdio-common/bug-vfprintf-nargs.c b/stdio-common/bug-vfprintf-nargs.c
+new file mode 100644
+index 0000000..13c66c0
+--- /dev/null
++++ b/stdio-common/bug-vfprintf-nargs.c
+@@ -0,0 +1,78 @@
++/* Test for vfprintf nargs allocation overflow (BZ #13656).
++ Copyright (C) 2012 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++ Contributed by Kees Cook <keescook@chromium.org>, 2012.
++
++ 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, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <stdint.h>
++#include <unistd.h>
++#include <inttypes.h>
++#include <string.h>
++#include <signal.h>
++
++static int
++format_failed (const char *fmt, const char *expected)
++{
++ char output[80];
++
++ printf ("%s : ", fmt);
++
++ memset (output, 0, sizeof output);
++ /* Having sprintf itself detect a failure is good. */
++ if (sprintf (output, fmt, 1, 2, 3, "test") > 0
++ && strcmp (output, expected) != 0)
++ {
++ printf ("FAIL (output '%s' != expected '%s')\n", output, expected);
++ return 1;
++ }
++ puts ("ok");
++ return 0;
++}
++
++static int
++do_test (void)
++{
++ int rc = 0;
++ char buf[64];
++
++ /* Regular positionals work. */
++ if (format_failed ("%1$d", "1") != 0)
++ rc = 1;
++
++ /* Regular width positionals work. */
++ if (format_failed ("%1$*2$d", " 1") != 0)
++ rc = 1;
++
++ /* Positional arguments are constructed via read_int, so nargs can only
++ overflow on 32-bit systems. On 64-bit systems, it will attempt to
++ allocate a giant amount of memory and possibly crash, which is the
++ expected situation. Since the 64-bit behavior is arch-specific, only
++ test this on 32-bit systems. */
++ if (sizeof (long int) == 4)
++ {
++ sprintf (buf, "%%1$d %%%" PRIdPTR "$d", UINT32_MAX / sizeof (int));
++ if (format_failed (buf, "1 %$d") != 0)
++ rc = 1;
++ }
++
++ return rc;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
+index 863cd5d..c802e46 100644
+--- a/stdio-common/vfprintf.c
++++ b/stdio-common/vfprintf.c
+@@ -235,6 +235,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
+ 0 if unknown. */
+ int readonly_format = 0;
+
++ /* For the argument descriptions, which may be allocated on the heap. */
++ void *args_malloced = NULL;
++
+ /* This table maps a character into a number representing a
+ class. In each step there is a destination label for each
+ class. */
+@@ -1647,9 +1650,10 @@ do_positional:
+ determine the size of the array needed to store the argument
+ attributes. */
+ size_t nargs = 0;
+- int *args_type;
+- union printf_arg *args_value = NULL;
++ size_t bytes_per_arg;
++ union printf_arg *args_value;
+ int *args_size;
++ int *args_type;
+
+ /* Positional parameters refer to arguments directly. This could
+ also determine the maximum number of arguments. Track the
+@@ -1698,13 +1702,38 @@ do_positional:
+
+ /* Determine the number of arguments the format string consumes. */
+ nargs = MAX (nargs, max_ref_arg);
++ /* Calculate total size needed to represent a single argument across
++ all three argument-related arrays. */
++ bytes_per_arg = sizeof (*args_value) + sizeof (*args_size)
++ + sizeof (*args_type);
++
++ /* Check for potential integer overflow. */
++ if (__builtin_expect (nargs > SIZE_MAX / bytes_per_arg, 0))
++ {
++ __set_errno (ERANGE);
++ done = -1;
++ goto all_done;
++ }
+
+- /* Allocate memory for the argument descriptions. */
+- args_type = alloca (nargs * sizeof (int));
++ /* Allocate memory for all three argument arrays. */
++ if (__libc_use_alloca (nargs * bytes_per_arg))
++ args_value = alloca (nargs * bytes_per_arg);
++ else
++ {
++ args_value = args_malloced = malloc (nargs * bytes_per_arg);
++ if (args_value == NULL)
++ {
++ done = -1;
++ goto all_done;
++ }
++ }
++
++ /* Set up the remaining two arrays to each point past the end of the
++ prior array, since space for all three has been allocated now. */
++ args_size = &args_value[nargs].pa_int;
++ args_type = &args_size[nargs];
+ memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0',
+- nargs * sizeof (int));
+- args_value = alloca (nargs * sizeof (union printf_arg));
+- args_size = alloca (nargs * sizeof (int));
++ nargs * sizeof (*args_type));
+
+ /* XXX Could do sanity check here: If any element in ARGS_TYPE is
+ still zero after this loop, format is invalid. For now we
+@@ -1973,8 +2002,8 @@ do_positional:
+ }
+
+ all_done:
+- if (__builtin_expect (workstart != NULL, 0))
+- free (workstart);
++ free (args_malloced);
++ free (workstart);
+ /* Unlock the stream. */
+ _IO_funlockfile (s);
+ _IO_cleanup_region_end (0);
diff --git a/testing/glibc/glibc-__i686.patch b/testing/glibc/glibc-__i686.patch
new file mode 100644
index 000000000..16f84c536
--- /dev/null
+++ b/testing/glibc/glibc-__i686.patch
@@ -0,0 +1,31 @@
+diff --git a/nptl/sysdeps/pthread/pt-initfini.c b/nptl/sysdeps/pthread/pt-initfini.c
+index 9c00dc0..f5d4df8 100644
+--- a/nptl/sysdeps/pthread/pt-initfini.c
++++ b/nptl/sysdeps/pthread/pt-initfini.c
+@@ -45,6 +45,11 @@
+ /* Embed an #include to pull in the alignment and .end directives. */
+ asm ("\n#include \"defs.h\"");
+
++asm ("\n#if defined __i686 && defined __ASSEMBLER__");
++asm ("\n#undef __i686");
++asm ("\n#define __i686 __i686");
++asm ("\n#endif");
++
+ /* The initial common code ends here. */
+ asm ("\n/*@HEADER_ENDS*/");
+
+diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
+index 64ef400..726b1df 100644
+--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
++++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
+@@ -29,6 +29,10 @@
+ #include <dl-sysdep.h>
+ #include <tls.h>
+
++#if defined __i686 && defined __ASSEMBLER__
++#undef __i686
++#define __i686 __i686
++#endif
+
+ /* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
diff --git a/testing/glibc/glibc.install b/testing/glibc/glibc.install
new file mode 100644
index 000000000..7f85ade96
--- /dev/null
+++ b/testing/glibc/glibc.install
@@ -0,0 +1,20 @@
+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
+
+ [ -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
+}
+
+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/glibc/locale-gen b/testing/glibc/locale-gen
new file mode 100755
index 000000000..5aff344c4
--- /dev/null
+++ b/testing/glibc/locale-gen
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+set -e
+
+LOCALEGEN=/etc/locale.gen
+LOCALES=/usr/share/i18n/locales
+if [ -n "$POSIXLY_CORRECT" ]; then
+ unset POSIXLY_CORRECT
+fi
+
+
+[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0;
+
+# Remove all old locale dir and locale-archive before generating new
+# locale data.
+rm -rf /usr/lib/locale/* || true
+
+umask 022
+
+is_entry_ok() {
+ if [ -n "$locale" -a -n "$charset" ] ; then
+ true
+ else
+ echo "error: Bad entry '$locale $charset'"
+ false
+ fi
+}
+
+echo "Generating locales..."
+while read locale charset; do \
+ case $locale in \#*) continue;; "") continue;; esac; \
+ is_entry_ok || continue
+ echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \
+ echo -n ".$charset"; \
+ echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \
+ echo -n '...'; \
+ if [ -f $LOCALES/$locale ]; then input=$locale; else \
+ input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; fi; \
+ localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale; \
+ echo ' done'; \
+done < $LOCALEGEN
+echo "Generation complete."
diff --git a/testing/glibc/locale.gen.txt b/testing/glibc/locale.gen.txt
new file mode 100644
index 000000000..ccdd81734
--- /dev/null
+++ b/testing/glibc/locale.gen.txt
@@ -0,0 +1,23 @@
+# Configuration file for locale-gen
+#
+# lists of locales that are to be generated by the locale-gen command.
+#
+# Each line is of the form:
+#
+# <locale> <charset>
+#
+# where <locale> is one of the locales given in /usr/share/i18n/locales
+# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
+#
+# Examples:
+# en_US ISO-8859-1
+# en_US.UTF-8 UTF-8
+# de_DE ISO-8859-1
+# de_DE@euro ISO-8859-15
+#
+# The locale-gen command will generate all the locales,
+# placing them in /usr/lib/locale.
+#
+# A list of supported locales is included in this file.
+# Uncomment the ones you need.
+#
diff --git a/testing/glibc/nscd b/testing/glibc/nscd
new file mode 100755
index 000000000..8b14f2a3f
--- /dev/null
+++ b/testing/glibc/nscd
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/nscd`
+case "$1" in
+ start)
+ stat_busy "Starting nscd"
+ # create necessary directories if they don't already exist
+ mkdir -p /var/run/nscd /var/db/nscd 2>/dev/null
+ # remove stale files
+ rm -f /var/db/nscd/* /var/run/nscd/* 2>/dev/null
+ [ -z "$PID" ] && /usr/sbin/nscd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon nscd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping nscd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon nscd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0