From ac5ada660240f37d7347e42123071990f616e418 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 1 Feb 2012 23:14:54 +0000 Subject: Wed Feb 1 23:14:54 UTC 2012 --- ...-partially-fix-parsing-of-alias-with-dots.patch | 34 ++++ ...odule-used-shared-code-in-module-creation.patch | 196 +++++++++++++++++++++ ...handle-all-error-returns-from-init_module.patch | 34 ++++ .../kmod/0004-modprobe-remove-0-refcnt-deps.patch | 52 ++++++ testing/kmod/PKGBUILD | 17 +- testing/openjdk6/PKGBUILD | 41 ++--- testing/run-parts/PKGBUILD | 6 +- testing/xulrunner/PKGBUILD | 17 +- 8 files changed, 360 insertions(+), 37 deletions(-) create mode 100644 testing/kmod/0001-partially-fix-parsing-of-alias-with-dots.patch create mode 100644 testing/kmod/0002-libkmod-module-used-shared-code-in-module-creation.patch create mode 100644 testing/kmod/0003-modprobe-handle-all-error-returns-from-init_module.patch create mode 100644 testing/kmod/0004-modprobe-remove-0-refcnt-deps.patch (limited to 'testing') diff --git a/testing/kmod/0001-partially-fix-parsing-of-alias-with-dots.patch b/testing/kmod/0001-partially-fix-parsing-of-alias-with-dots.patch new file mode 100644 index 000000000..b69d095d3 --- /dev/null +++ b/testing/kmod/0001-partially-fix-parsing-of-alias-with-dots.patch @@ -0,0 +1,34 @@ +From cdaf4b2f3ef60365c6b8006a63410368a7b38f39 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Tue, 31 Jan 2012 00:12:32 -0500 +Subject: [PATCH 1/4] partially fix parsing of alias with dots + +--- + libkmod/libkmod-util.c | 4 +--- + 1 files changed, 1 insertions(+), 3 deletions(-) + +diff --git a/libkmod/libkmod-util.c b/libkmod/libkmod-util.c +index 7c2611b..6a9f697 100644 +--- a/libkmod/libkmod-util.c ++++ b/libkmod/libkmod-util.c +@@ -134,8 +134,7 @@ inline int alias_normalize(const char *alias, char buf[PATH_MAX], size_t *len) + case ']': + return -EINVAL; + case '[': +- while (alias[s] != ']' && +- alias[s] != '.' && alias[s] != '\0') ++ while (alias[s] != ']' && alias[s] != '\0') + s++; + + if (alias[s] != ']') +@@ -144,7 +143,6 @@ inline int alias_normalize(const char *alias, char buf[PATH_MAX], size_t *len) + s++; + break; + case '\0': +- case '.': + goto finish; + default: + buf[s] = c; +-- +1.7.9 + diff --git a/testing/kmod/0002-libkmod-module-used-shared-code-in-module-creation.patch b/testing/kmod/0002-libkmod-module-used-shared-code-in-module-creation.patch new file mode 100644 index 000000000..76cc35049 --- /dev/null +++ b/testing/kmod/0002-libkmod-module-used-shared-code-in-module-creation.patch @@ -0,0 +1,196 @@ +From 1d2f64689b2456ade81d6d489c4f5bfb5fdb92fd Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Tue, 31 Jan 2012 00:13:43 -0500 +Subject: [PATCH 2/4] libkmod-module: used shared code in module creation + +--- + libkmod/libkmod-module.c | 135 ++++++++++++++++++++++++++------------------- + 1 files changed, 78 insertions(+), 57 deletions(-) + +diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c +index 47b1709..48e4aa1 100644 +--- a/libkmod/libkmod-module.c ++++ b/libkmod/libkmod-module.c +@@ -162,6 +162,76 @@ fail: + return err; + } + ++/* ++ * Memory layout with alias: ++ * ++ * struct kmod_module { ++ * hashkey -----. ++ * alias -----. | ++ * name ----. | | ++ * } | | | ++ * name <----------' | | ++ * alias <-----------' | ++ * name\alias <--------' ++ * ++ * Memory layout without alias: ++ * ++ * struct kmod_module { ++ * hashkey ---. ++ * alias -----|----> NULL ++ * name ----. | ++ * } | | ++ * name <----------'-' ++ * ++ * @key is "name\alias" or "name" (in which case alias == NULL) ++ */ ++static int kmod_module_new(struct kmod_ctx *ctx, const char *key, ++ const char *name, size_t namelen, ++ const char *alias, size_t aliaslen, ++ struct kmod_module **mod) ++{ ++ struct kmod_module *m; ++ size_t keylen; ++ ++ m = kmod_pool_get_module(ctx, key); ++ if (m != NULL) { ++ *mod = kmod_module_ref(m); ++ return 0; ++ } ++ ++ if (alias == NULL) ++ keylen = namelen; ++ else ++ keylen = namelen + aliaslen + 1; ++ ++ m = malloc(sizeof(*m) + (alias == NULL ? 1 : 2) * (keylen + 1)); ++ if (m == NULL) { ++ free(m); ++ return -ENOMEM; ++ } ++ ++ memset(m, 0, sizeof(*m)); ++ ++ m->ctx = kmod_ref(ctx); ++ m->name = (char *)m + sizeof(*m); ++ memcpy(m->name, key, keylen + 1); ++ if (alias == NULL) { ++ m->hashkey = m->name; ++ m->alias = NULL; ++ } else { ++ m->name[namelen] = '\0'; ++ m->alias = m->name + namelen + 1; ++ m->hashkey = m->name + keylen + 1; ++ memcpy(m->hashkey, key, keylen + 1); ++ } ++ ++ m->refcount = 1; ++ kmod_pool_add_module(ctx, m, m->hashkey); ++ *mod = m; ++ ++ return 0; ++} ++ + /** + * kmod_module_new_from_name: + * @ctx: kmod library context +@@ -188,54 +258,15 @@ KMOD_EXPORT int kmod_module_new_from_name(struct kmod_ctx *ctx, + const char *name, + struct kmod_module **mod) + { +- struct kmod_module *m; + size_t namelen; + char name_norm[PATH_MAX]; +- char *namesep; + + if (ctx == NULL || name == NULL || mod == NULL) + return -ENOENT; + +- if (alias_normalize(name, name_norm, &namelen) < 0) { +- DBG(ctx, "invalid alias: %s\n", name); +- return -EINVAL; +- } ++ modname_normalize(name, name_norm, &namelen); + +- m = kmod_pool_get_module(ctx, name_norm); +- if (m != NULL) { +- *mod = kmod_module_ref(m); +- return 0; +- } +- +- namesep = strchr(name_norm, '/'); +- m = malloc(sizeof(*m) + (namesep == NULL ? 1 : 2) * namelen + 2); +- if (m == NULL) { +- free(m); +- return -ENOMEM; +- } +- +- memset(m, 0, sizeof(*m)); +- +- m->ctx = kmod_ref(ctx); +- m->name = (char *)m + sizeof(*m); +- memcpy(m->name, name_norm, namelen + 1); +- +- if (namesep) { +- size_t len = namesep - name_norm; +- +- m->name[len] = '\0'; +- m->alias = m->name + len + 1; +- m->hashkey = m->name + namelen + 1; +- memcpy(m->hashkey, name_norm, namelen + 1); +- } else { +- m->hashkey = m->name; +- } +- +- m->refcount = 1; +- kmod_pool_add_module(ctx, m, m->hashkey); +- *mod = m; +- +- return 0; ++ return kmod_module_new(ctx, name_norm, name_norm, namelen, NULL, 0, mod); + } + + int kmod_module_new_from_alias(struct kmod_ctx *ctx, const char *alias, +@@ -251,9 +282,9 @@ int kmod_module_new_from_alias(struct kmod_ctx *ctx, const char *alias, + + memcpy(key, name, namelen); + memcpy(key + namelen + 1, alias, aliaslen + 1); +- key[namelen] = '/'; ++ key[namelen] = '\\'; + +- err = kmod_module_new_from_name(ctx, key, mod); ++ err = kmod_module_new(ctx, key, name, namelen, alias, aliaslen, mod); + if (err < 0) + return err; + +@@ -323,7 +354,7 @@ KMOD_EXPORT int kmod_module_new_from_path(struct kmod_ctx *ctx, + free(abspath); + else { + ERR(ctx, "kmod_module '%s' already exists with different path: new-path='%s' old-path='%s'\n", +- name, abspath, m->path); ++ name, abspath, m->path); + free(abspath); + return -EEXIST; + } +@@ -332,21 +363,11 @@ KMOD_EXPORT int kmod_module_new_from_path(struct kmod_ctx *ctx, + return 0; + } + +- m = malloc(sizeof(*m) + namelen + 1); +- if (m == NULL) +- return -errno; +- +- memset(m, 0, sizeof(*m)); ++ err = kmod_module_new(ctx, name, name, namelen, NULL, 0, &m); ++ if (err < 0) ++ return err; + +- m->ctx = kmod_ref(ctx); +- m->name = (char *)m + sizeof(*m); +- memcpy(m->name, name, namelen + 1); + m->path = abspath; +- m->hashkey = m->name; +- m->refcount = 1; +- +- kmod_pool_add_module(ctx, m, m->hashkey); +- + *mod = m; + + return 0; +-- +1.7.9 + diff --git a/testing/kmod/0003-modprobe-handle-all-error-returns-from-init_module.patch b/testing/kmod/0003-modprobe-handle-all-error-returns-from-init_module.patch new file mode 100644 index 000000000..5bbc93a90 --- /dev/null +++ b/testing/kmod/0003-modprobe-handle-all-error-returns-from-init_module.patch @@ -0,0 +1,34 @@ +From fdf78d80d298353c29e1fe8c00602669dd9662bb Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Mon, 30 Jan 2012 23:05:26 -0500 +Subject: [PATCH 3/4] modprobe: handle all error returns from init_module + +--- + tools/kmod-modprobe.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/tools/kmod-modprobe.c b/tools/kmod-modprobe.c +index 3e51506..c882856 100644 +--- a/tools/kmod-modprobe.c ++++ b/tools/kmod-modprobe.c +@@ -551,6 +551,8 @@ static int insmod_do_insert_module(struct kmod_module *mod, const char *opts) + + err = kmod_module_insert_module(mod, flags, opts); + switch (err) { ++ case 0: ++ break; + case -EEXIST: + /* + * We checked for EEXIST with an earlier call to +@@ -564,7 +566,7 @@ static int insmod_do_insert_module(struct kmod_module *mod, const char *opts) + ERR("Module %s already in kernel.\n", + kmod_module_get_name(mod)); + break; +- case -EPERM: ++ default: + ERR("could not insert '%s': %s\n", kmod_module_get_name(mod), + strerror(-err)); + break; +-- +1.7.9 + diff --git a/testing/kmod/0004-modprobe-remove-0-refcnt-deps.patch b/testing/kmod/0004-modprobe-remove-0-refcnt-deps.patch new file mode 100644 index 000000000..80cc73130 --- /dev/null +++ b/testing/kmod/0004-modprobe-remove-0-refcnt-deps.patch @@ -0,0 +1,52 @@ +From 4e3dd21aff55b5bbaa08b037fc2a5625bfffc0a5 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Mon, 30 Jan 2012 23:39:30 -0500 +Subject: [PATCH 4/4] modprobe: remove 0 refcnt deps + +--- + tools/kmod-modprobe.c | 15 +++++++++++++-- + 1 files changed, 13 insertions(+), 2 deletions(-) + +diff --git a/tools/kmod-modprobe.c b/tools/kmod-modprobe.c +index c882856..bd991a5 100644 +--- a/tools/kmod-modprobe.c ++++ b/tools/kmod-modprobe.c +@@ -381,7 +381,7 @@ static int rmmod_do_deps_list(struct kmod_list *list, bool stop_on_errors) + static int rmmod_do_module(struct kmod_module *mod, bool do_dependencies) + { + const char *modname = kmod_module_get_name(mod); +- struct kmod_list *pre = NULL, *post = NULL; ++ struct kmod_list *pre = NULL, *post = NULL, *deps, *itr; + const char *cmd = NULL; + int err; + +@@ -422,7 +422,7 @@ static int rmmod_do_module(struct kmod_module *mod, bool do_dependencies) + rmmod_do_deps_list(post, false); + + if (do_dependencies && remove_dependencies) { +- struct kmod_list *deps = kmod_module_get_dependencies(mod); ++ deps = kmod_module_get_dependencies(mod); + + err = rmmod_do_deps_list(deps, true); + if (err < 0) +@@ -451,6 +451,17 @@ static int rmmod_do_module(struct kmod_module *mod, bool do_dependencies) + + rmmod_do_deps_list(pre, false); + ++ deps = kmod_module_get_dependencies(mod); ++ if (deps != NULL) { ++ kmod_list_foreach_reverse(itr, deps) { ++ struct kmod_module *dep = kmod_module_get_module(itr); ++ if (kmod_module_get_refcnt(dep) == 0) ++ rmmod_do_remove_module(dep); ++ kmod_module_unref(dep); ++ } ++ kmod_module_unref_list(deps); ++ } ++ + error: + kmod_module_unref_list(pre); + kmod_module_unref_list(post); +-- +1.7.9 + diff --git a/testing/kmod/PKGBUILD b/testing/kmod/PKGBUILD index 34983beaf..b1566507b 100644 --- a/testing/kmod/PKGBUILD +++ b/testing/kmod/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 146697 2012-01-16 19:19:27Z dreisner $ +# $Id: PKGBUILD 148396 2012-01-31 05:23:46Z dreisner $ # Maintainer: Dave Reisner pkgname=kmod pkgver=4 -pkgrel=1 +pkgrel=2 pkgdesc="Linux kernel module handling" arch=('i686' 'x86_64') url="http://git.profusion.mobi/cgit.cgi/kmod.git" @@ -15,13 +15,26 @@ provides=('module-init-tools=3.16') conflicts=('module-init-tools') replaces=('module-init-tools') source=("http://packages.profusion.mobi/$pkgname/$pkgname-$pkgver.tar.xz" + 0001-partially-fix-parsing-of-alias-with-dots.patch + 0002-libkmod-module-used-shared-code-in-module-creation.patch + 0003-modprobe-handle-all-error-returns-from-init_module.patch + 0004-modprobe-remove-0-refcnt-deps.patch "depmod-search.conf") md5sums=('e14450a066a48accd0af1995b3c0232d' + '5f497ab3466ee1a616b6e6c97b330706' + '23a9257a152862753ce4c4ee7287761a' + '3a57671b0f37b1203b207f35a4442ae3' + '1fe88eee9302104b179124ce6bfc55d2' '4b8cbcbc54b9029c99fd730e257d4436') build() { cd "$pkgname-$pkgver" + patch -Np1 <"$srcdir/0001-partially-fix-parsing-of-alias-with-dots.patch" + patch -Np1 <"$srcdir/0002-libkmod-module-used-shared-code-in-module-creation.patch" + patch -Np1 <"$srcdir/0003-modprobe-handle-all-error-returns-from-init_module.patch" + patch -Np1 <"$srcdir/0004-modprobe-remove-0-refcnt-deps.patch" + ./configure \ --sysconfdir=/etc \ --with-rootprefix= \ diff --git a/testing/openjdk6/PKGBUILD b/testing/openjdk6/PKGBUILD index 0bb30bbbd..2df623d78 100644 --- a/testing/openjdk6/PKGBUILD +++ b/testing/openjdk6/PKGBUILD @@ -1,50 +1,48 @@ -# $Id: PKGBUILD 148249 2012-01-30 18:49:15Z ibiru $ +# $Id: PKGBUILD 148420 2012-01-31 18:28:42Z andyrtr $ # Maintainer: Andreas Radke # Contributor: Jan de Groot pkgname=('openjdk6' 'openjdk6-src') pkgbase="openjdk6" _javaver=6 -_icedteaver=1.10.5 -_openjdk_version=b22 -_openjdk_date=28_feb_2011 +_icedteaver=1.11 +_openjdk_version=b24 +_openjdk_date=14_nov_2011 pkgver=${_javaver}.${_openjdk_version}_${_icedteaver} -pkgrel=2 +pkgrel=1 url='http://icedtea.classpath.org' arch=('i686' 'x86_64') license=('custom') makedepends=('gcc-libs' 'xdg-utils' 'hicolor-icon-theme' 'ca-certificates-java' 'libxtst' 'alsa-lib' 'giflib' 'libxp' 'gtk2' - 'nspr' 'zlib' 'freetype2' 'libjpeg>=8' 'libx11' 'libcups' 'patch' 'xalan-java' 'libxt' 'nss' + 'nspr' 'zlib' 'freetype2' 'libjpeg>=8' 'libx11' 'libcups' 'patch' 'libxt' 'nss' 'libxslt' #'xalan-java' 'apache-ant' 'autoconf' 'unzip' 'rhino' 'mercurial' 'zip' 'cpio' 'openjdk6') options=('!emptydirs') # 'force') # force needed for hg shots source=(http://icedtea.classpath.org/download/source/icedtea6-${_icedteaver}.tar.gz http://download.java.net/openjdk/jdk6/promoted/${_openjdk_version}/openjdk-6-src-${_openjdk_version}-${_openjdk_date}.tar.gz - http://icedtea.classpath.org/download/drops/jaxp144_01.zip - http://icedtea.classpath.org/download/drops/jdk6-jaxws-b20.zip + http://icedtea.classpath.org/download/drops/jaxp144_03.zip + http://icedtea.classpath.org/download/drops/jdk6-jaxws2_1_6-2011_06_13.zip http://icedtea.classpath.org/download/drops/jdk6-jaf-b20.zip fix_jdk_cmds_path.diff fix_corba_cmds_path.diff fontconfig-paths.diff nonreparenting-wm.diff openjdk6.profile - openjdk6.profile.csh - glibc2_15.diff) + openjdk6.profile.csh) noextract=(openjdk-6-src-${_openjdk_version}-${_openjdk_date}.tar.gz - jaxp144_01.zip - jdk6-jaxws-b20.zip + jaxp144_03.zip + jdk6-jaxws2_1_6-2011_06_13.zip jdk6-jaf-b20.zip) -md5sums=('e2316f463b5d9f53f8c5c9020f2a7e5a' - '2d2bbbb0f9b81f1fec41ec730da8a933' - 'ef7a8b3624ea904bf584bc46d79b5e75' - '91adfd41e6f001add4f92ae31216b1e3' +md5sums=('10c1cea1d24c064572abfe9687567948' + '0eabdd360169144336e50081b8d01001' + '9eea471ad474040265c688858fcf09aa' + '8fd91b09b643a19a912b8a75e7a7a9d5' 'bc95c133620bd68c161cac9891592901' '5da3e39fa60985576c4f37d1491efbe2' 'f7e7a212e50abb56a6ef1a2b1bd27405' 'ee1afda124d5927345014ab382ef581e' '9b4d368f5ee08de248eaf029303a446c' '74c4a7adc782edd087802bf92ae3d6d0' - 'fdf295e2f186dfa4d308691a3d7ac8c5' - '0c8f0a398c88f85e0db44b4417562cf3') + 'fdf295e2f186dfa4d308691a3d7ac8c5') build() { @@ -64,18 +62,17 @@ build() { autoreconf -i - export DISTRIBUTION_PATCHES="patches/fix_jdk_cmds_path.diff patches/fontconfig-paths.diff patches/fix_corba_cmds_path.diff patches/nonreparenting-wm.diff patches/glibc2_15.diff" + export DISTRIBUTION_PATCHES="patches/fix_jdk_cmds_path.diff patches/fontconfig-paths.diff patches/fix_corba_cmds_path.diff patches/nonreparenting-wm.diff" export ALT_PARALLEL_COMPILE_JOBS="${MAKEFLAGS/-j}" export HOTSPOT_BUILD_JOBS="${ALT_PARALLEL_COMPILE_JOBS}" unset MAKEFLAGS ./configure --with-parallel-jobs=${HOTSPOT_BUILD_JOBS} \ - --with-xalan2-jar=/usr/share/java/xalan.jar \ --with-ant-home=/usr/share/java/apache-ant \ --with-pkgversion=ArchLinux-${pkgver}-${pkgrel}-$CARCH \ - --with-jaxp-drop-zip=${srcdir}/jaxp144_01.zip \ - --with-jaxws-drop-zip=${srcdir}/jdk6-jaxws-b20.zip \ + --with-jaxp-drop-zip=${srcdir}/jaxp144_03.zip \ + --with-jaxws-drop-zip=${srcdir}/jdk6-jaxws2_1_6-2011_06_13.zip \ --with-jaf-drop-zip=${srcdir}/jdk6-jaf-b20.zip \ --disable-bootstrap LD_PRELOAD="" make diff --git a/testing/run-parts/PKGBUILD b/testing/run-parts/PKGBUILD index ca0d40d38..a42ce8523 100644 --- a/testing/run-parts/PKGBUILD +++ b/testing/run-parts/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 148045 2012-01-30 14:42:46Z pierre $ +# $Id: PKGBUILD 148442 2012-01-31 23:41:09Z pierre $ # Maintainer: Pierre Schmitz pkgname=run-parts -pkgver=4.2 +pkgver=4.2.1 pkgrel=1 pkgdesc='run scripts or programs in a directory' arch=('i686' 'x86_64') @@ -10,7 +10,7 @@ url='http://packages.qa.debian.org/d/debianutils.html' license=('GPL') depends=('glibc') source=("ftp://ftp.archlinux.org/other/run-parts/debianutils_${pkgver}.tar.gz") -sha256sums=('14f76d82d413d3b5d302b3a06e132dea5bb834bf3d699c1f79cfb5c1af49a95d') +sha256sums=('6359b273bee9b959d243d1490caa8f0f5ff8dc294690b1bdb5df755d6364be0f') build() { cd $srcdir/debianutils-$pkgver diff --git a/testing/xulrunner/PKGBUILD b/testing/xulrunner/PKGBUILD index 646cfa715..bac8ddd72 100644 --- a/testing/xulrunner/PKGBUILD +++ b/testing/xulrunner/PKGBUILD @@ -1,25 +1,23 @@ -# $Id: PKGBUILD 148367 2012-01-30 18:52:22Z ibiru $ +# $Id: PKGBUILD 148425 2012-01-31 19:04:34Z ibiru $ # Maintainer: Jan de Groot # Contributor: Alexander Baldeck pkgname=xulrunner -pkgver=9.0.1 -pkgrel=2 +pkgver=10.0 +pkgrel=1 pkgdesc="Mozilla Runtime Environment" arch=('i686' 'x86_64') license=('MPL' 'GPL' 'LGPL') depends=('gtk2' 'mozilla-common' 'nss>=3.13.1' 'libxt' 'libxrender' 'hunspell' 'startup-notification' 'mime-types' 'dbus-glib' 'alsa-lib' 'libevent' 'sqlite3>=3.7.4' 'libnotify' 'libvpx' 'python2') makedepends=('zip' 'unzip' 'pkg-config' 'diffutils' 'wireless_tools' 'yasm' 'mesa') url="http://wiki.mozilla.org/XUL:Xul_Runner" -source=(ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases//$pkgver/source/firefox-$pkgver.source.tar.bz2 +source=(ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.bz2 mozconfig - mozilla-pkgconfig.patch - 5007_fix_libpr0n_nsPNGDecoder.patch) + mozilla-pkgconfig.patch) options=('!emptydirs') replaces=('xulrunner-oss') -md5sums=('7cf2bd379792a9b232267c6a79680566' +md5sums=('13c61203ccfa583e5a54b4dc22f41233' '8dfb78c5bd0581c8cf4753813132bf0b' - '27271ce647a83906ef7a24605e840d61' - '6f3be4f4ac0217d0782b1a0770d80f28') + '27271ce647a83906ef7a24605e840d61') build() { cd "$srcdir/mozilla-release" @@ -28,7 +26,6 @@ build() { #fix libdir/sdkdir - fedora patch -Np1 -i "$srcdir/mozilla-pkgconfig.patch" - patch -Np1 -i "$srcdir/5007_fix_libpr0n_nsPNGDecoder.patch" export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/xulrunner-$pkgver" export PYTHON="/usr/bin/python2" -- cgit v1.2.3-54-g00ecf