summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@endefensadelsl.org>2014-02-12 03:48:50 +0000
committerNicolás Reynolds <fauno@endefensadelsl.org>2014-02-12 03:48:50 +0000
commite3fe31f4a2c44fef8da55c60c3f95a763fdfd3c7 (patch)
tree961eaf76b0f49d8409d5a84bf36de6581d5fed5a /extra
parent121ee20158ca9869daadf9a2993b431af9661cb6 (diff)
Wed Feb 12 03:44:41 UTC 2014
Diffstat (limited to 'extra')
-rw-r--r--extra/grilo-plugins/PKGBUILD20
-rw-r--r--extra/grilo/PKGBUILD8
-rw-r--r--extra/libreoffice/PKGBUILD75
-rw-r--r--extra/libreoffice/PKGBUILD.42105
-rw-r--r--extra/openjpeg/PKGBUILD52
-rw-r--r--extra/openjpeg/openjpeg-1.5-r2029.patch77
-rw-r--r--extra/openjpeg/openjpeg-1.5-r2031.patch24
-rw-r--r--extra/openjpeg/openjpeg-1.5-r2032.patch30
-rw-r--r--extra/openjpeg/openjpeg-1.5-r2033.patch49
-rw-r--r--extra/openjpeg/openjpeg-1.5.1-CVE-2013-1447.patch165
-rw-r--r--extra/openjpeg/openjpeg-1.5.1-CVE-2013-6045.patch60
-rw-r--r--extra/openjpeg/openjpeg-1.5.1-CVE-2013-6052.patch53
-rw-r--r--extra/openjpeg/openjpeg-1.5.1-CVE-2013-6053.patch12
-rw-r--r--extra/openjpeg/openjpeg-1.5.1-CVE-2013-6887.patch30
-rw-r--r--extra/openjpeg/openjpeg-1.5.1-doxygen_timestamp.patch24
-rwxr-xr-xextra/python-numpy/PKGBUILD14
-rw-r--r--extra/python-numpy/numpy-insecure-mktemp-use.patch263
-rw-r--r--extra/spamassassin/PKGBUILD26
-rw-r--r--extra/spamassassin/perl-5.18-fixes.patch97
-rw-r--r--extra/spamassassin/spamassassin.install39
-rw-r--r--extra/spamassassin/spamassassin.service2
21 files changed, 1009 insertions, 216 deletions
diff --git a/extra/grilo-plugins/PKGBUILD b/extra/grilo-plugins/PKGBUILD
index b1e9d7e9e..1103c54f8 100644
--- a/extra/grilo-plugins/PKGBUILD
+++ b/extra/grilo-plugins/PKGBUILD
@@ -1,33 +1,33 @@
-# $Id: PKGBUILD 203575 2014-01-13 17:12:06Z andyrtr $
+# $Id: PKGBUILD 205841 2014-02-11 12:54:03Z heftig $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
pkgname=grilo-plugins
-pkgver=0.2.9
-pkgrel=3
+pkgver=0.2.10
+pkgrel=1
pkgdesc="Plugins for Grilo"
url="http://www.gnome.org"
arch=(i686 x86_64)
license=(LGPL)
depends=(grilo sqlite libgcrypt)
-makedepends=(gupnp-av libgdata gmime rest libtracker-sparql totem-plparser libdmapsharing
- json-glib intltool)
+makedepends=(gupnp-av libgdata gmime libtracker-sparql libdmapsharing
+ json-glib intltool avahi itstool)
optdepends=('gupnp-av: uPnP plugin'
'libgdata: Youtube plugin'
+ 'gnome-online-accounts: Flickr plugin'
'gmime: Podcasts plugin'
- 'rest: Blip.tv plugin'
'libtracker-sparql: Tracker plugin'
- 'totem-plparser: Youtube plugin, Vimeo plugin, Optical media plugin'
'libdmapsharing: DMAP sharing plugin'
- 'json-glib: TMDb plugin')
+ 'json-glib: TMDb plugin'
+ 'avahi: Freebox plugin')
options=('!emptydirs')
groups=('gnome')
source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
-sha256sums=('902b839bd1cdc27613d9e44af2afe00d1ef3b7471ae72c66c622560007e1023e')
+sha256sums=('5a7dd406ed58145847553e6dbb5f766e9d58dc5d4cfeb7e290d5b38c88163871')
build() {
cd $pkgname-$pkgver
./configure --prefix=/usr --sysconfdir=/etc --disable-static \
- --enable-shoutcast
+ --enable-shoutcast --disable-pocket
make
}
diff --git a/extra/grilo/PKGBUILD b/extra/grilo/PKGBUILD
index 575a64a97..31f1eb9ca 100644
--- a/extra/grilo/PKGBUILD
+++ b/extra/grilo/PKGBUILD
@@ -1,19 +1,19 @@
-# $Id: PKGBUILD 198051 2013-10-30 12:30:26Z allan $
+# $Id: PKGBUILD 205840 2014-02-11 12:53:50Z heftig $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
pkgname=grilo
-pkgver=0.2.7
+pkgver=0.2.8
pkgrel=1
pkgdesc="Framework that provides access to various sources of multimedia content"
url="http://www.gnome.org"
arch=('i686' 'x86_64')
license=('LGPL')
-depends=('gtk3' 'libxml2' 'libsoup' 'liboauth')
+depends=('gtk3' 'libxml2' 'libsoup' 'liboauth' 'totem-plparser')
makedepends=('gobject-introspection' 'gtk-doc' 'vala' 'intltool')
optdepends=('grilo-plugins: Plugins for grilo')
options=('!emptydirs')
source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
-sha256sums=('4a854ee6f9a220f05e696813949be94780c12a7fb281253f10a545f30ed596d8')
+sha256sums=('03a50e011b897a46d6ec6fe4cfec4ca0737047f279c99b3d9eb9bef8c472cee8')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/extra/libreoffice/PKGBUILD b/extra/libreoffice/PKGBUILD
index 5aa022047..cb8b33ef7 100644
--- a/extra/libreoffice/PKGBUILD
+++ b/extra/libreoffice/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 203586 2014-01-13 17:12:18Z andyrtr $
+# $Id: PKGBUILD 205850 2014-02-11 18:23:07Z andyrtr $
# Maintainer: AndyRTR <andyrtr@archlinux.org>
-# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
+# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
-pkgbase="libreoffice"
+pkgbase=libreoffice
pkgname=('libreoffice-common'
'libreoffice-base'
'libreoffice-calc'
@@ -19,9 +19,9 @@ pkgname=('libreoffice-common'
'libreoffice-extension-presentation-minimizer'
'libreoffice-extension-wiki-publisher'
'libreoffice-extension-nlpsolver') # svn up -r 142692 (last one with all extensions built)
-_LOver=4.1.4.2
-pkgver=4.1.4
-pkgrel=3
+_LOver=4.1.5.3
+pkgver=4.1.5
+pkgrel=1
arch=('i686' 'x86_64')
license=('LGPL3')
url="http://www.libreoffice.org/"
@@ -33,14 +33,14 @@ makedepends=( # makedepends
'clucene' 'bluez-libs' 'harfbuzz-icu'
# the runtime dependencies
"curl>=7.20.0" "hunspell>=1.2.8" "python>=3.3" 'libwpd>=0.9.2' 'libwps' 'libxaw' "neon>=0.28.6"
- 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' 'libxslt' 'librsvg' "icu>=52.1"
- 'redland' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat' 'graphite' 'lcms2' 'poppler>=0.24.4'
+ 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' 'libxslt' 'librsvg' "icu>=52.1"
+ 'redland' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat' 'graphite' 'lcms2' 'poppler>=0.24.4'
'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'orbit2' 'translate-toolkit' 'xdg-utils'
'ttf-dejavu') # to satisfy regression tests
# there's only one single static library in libreoffice-sdk,
# the next build that removes it may lead to trouble if people may use it
# -rw-r--r-- 1 root root 5,1K 12. Okt 23:34 /usr/lib/libreoffice/sdk/lib/libsalcpprt.a
-# options=('staticlibs')
+# options=('staticlibs')
# http://download.documentfoundation.org/mirrors/all.html
# http://wiki.documentfoundation.org/Mirrors
@@ -49,7 +49,7 @@ _mirror="http://download.documentfoundation.org/libreoffice/src/${pkgver}"
#_mirror="http://dev-builds.libreoffice.org/pre-releases/src"
_additional_source_url="http://dev-www.libreoffice.org/src"
_additional_source_url2="http://dev-www.libreoffice.org/extern"
-source=(${_mirror}/${pkgbase}{,-help,-translations}-${_LOver}.tar.xz
+source=(${_mirror}/${pkgbase}{,-help,-translations}-${_LOver}.tar.xz{,.asc}
${_additional_source_url}/f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2
${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
${_additional_source_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
@@ -120,9 +120,12 @@ noextract=(f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2
libmspub-0.0.6.tar.bz2
libmwaw-0.1.11.tar.bz2
libvisio-0.0.31.tar.bz2 )
-md5sums=('2e7880600b26387f342f277c5d198bfa'
- '1235bb27ff2a060cc666752143dfbf6b'
- '083f211866fe1f77fd2712b822a56f5c'
+md5sums=('12679026121300396c85b4ca11b176c7'
+ 'SKIP'
+ 'e0ea06a105071c278e52866f476c0ee6'
+ 'SKIP'
+ 'c3b03c33ee14628f1c151288f2eb4962'
+ 'SKIP'
'f02578f5218f217a9f20e9c30e119c6a'
'1f24ab1d39f4a51faf22244c94a6203f'
'35c94d2df8893241173de1d16b6034c0'
@@ -175,10 +178,10 @@ prepare() {
ln -s ${srcdir}/$source .
done
popd
-
+
# fix not upstreamable pyuno paths - patch taken from Debian
patch -Np1 -i ${srcdir}/make-pyuno-work-with-system-wide-module-install.diff
-
+
#use the CFLAGS but remove the LibO overridden ones
for i in $CFLAGS; do
case "$i" in
@@ -206,6 +209,8 @@ build() {
--with-parallelism=${MAKEFLAGS/-j/} \
--with-external-tar="${srcdir}/ext_sources" \
--disable-fetch-external \
+ --disable-verbose \
+ --enable-release-build \
--prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
--libdir=/usr/lib --mandir=/usr/share/man \
--with-lang="" \
@@ -262,7 +267,9 @@ build() {
--without-system-hsqldb \
--with-alloc=system\
--with-system-clucene\
- --without-system-servlet-api
+ --without-system-servlet-api \
+ --enable-hardlink-deliver \
+ --disable-dependency-tracking
# --enable-mergelibs \ # https://bugs.archlinux.org/task/34414
@@ -328,7 +335,7 @@ package_libreoffice-common() {
# mv file from fakeinstall to pkgdir
mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
done
-
+
# put configuration files into place
install -dm755 ${pkgdir}/etc/libreoffice
install -m644 ${pkgdir}/usr/lib/libreoffice/program/{bootstraprc,sofficerc} ${pkgdir}/etc/libreoffice/
@@ -338,24 +345,24 @@ package_libreoffice-common() {
ln -vsf /etc/libreoffice/{bootstraprc,sofficerc} .
cd ${pkgdir}/usr/lib/libreoffice/share/psprint/
ln -vsf /etc/libreoffice/psprint.conf .
-
+
# allow to preset desired VLC
install -dm755 ${pkgdir}/etc/profile.d
install -m755 ${srcdir}/libreoffice-common.{sh,csh} ${pkgdir}/etc/profile.d/
-
+
# move bash-completion files to its new place
install -dm755 ${pkgdir}/usr/share/bash-completion/completions
mv ${pkgdir}/etc/bash_completion.d/libreoffice.sh ${pkgdir}/usr/share/bash-completion/completions/libreoffice.sh
rm -rf ${pkgdir}/etc/bash_completion.d
-
+
# make pyuno find its modules
install -dm755 ${pkgdir}/usr/lib/python3.3/site-packages
ln -svf /usr/lib/libreoffice/program/uno.py ${pkgdir}/usr/lib/python3.3/site-packages/uno.py
ln -svf /usr/lib/libreoffice/program/unohelper.py ${pkgdir}/usr/lib/python3.3/site-packages/unohelper.py
-
+
# workaround all packages now depend on that file
cp ${srcdir}/fakeinstall/usr/lib/libreoffice/share/registry/writer.xcd ${pkgdir}/usr/lib/libreoffice/share/registry/writer.xcd
-
+
# add missing files from Beanshell provider
# create directories from *list.txt file
for directory in `grep ^%dir ${srcdir}/libreoffice-$_LOver/file-lists/orig/gid_Module_Optional_Extensions_Script_Provider_For_BS`; do
@@ -402,7 +409,7 @@ package_libreoffice-postgresql-connector() {
# workaround double entries in the file list
mv ${srcdir}/libreoffice-$_LOver/file-lists/postgresql_list.txt ${srcdir}/libreoffice-$_LOver/file-lists/postgresql_list.txt.orig
sort ${srcdir}/libreoffice-$_LOver/file-lists/postgresql_list.txt.orig | uniq 1>& ${srcdir}/libreoffice-$_LOver/file-lists/postgresql_list.txt
-
+
# create directories from *list.txt file
for directory in `grep ^%dir ${srcdir}/libreoffice-$_LOver/file-lists/postgresql_list.txt`; do
install -dm755 ${pkgdir}/${directory/\%dir/}
@@ -424,7 +431,7 @@ package_libreoffice-calc() {
#depends=('libreoffice-writer' 'lpsolve' ) # some hidden uno linking to parts of the writer pkg - https://bugs.archlinux.org/task/34332
groups=('libreoffice')
replaces=('libreoffice')
-
+
# create directories from *list.txt file
for directory in `grep ^%dir ${srcdir}/libreoffice-$_LOver/file-lists/calc_list.txt`; do
install -dm755 ${pkgdir}/${directory/\%dir/}
@@ -445,7 +452,7 @@ package_libreoffice-draw() {
depends=('libreoffice-common')
groups=('libreoffice')
replaces=('libreoffice')
-
+
# create directories from *list.txt file
for directory in `grep ^%dir ${srcdir}/libreoffice-$_LOver/file-lists/draw_list.txt`; do
install -dm755 ${pkgdir}/${directory/\%dir/}
@@ -466,7 +473,7 @@ package_libreoffice-gnome() {
optdepends=('gtk3: for gtk3 Gnome integration'
'gtk2: for older gtk2 desktop integration')
groups=('libreoffice')
-
+
# create directories from *list.txt file
for directory in `grep ^%dir ${srcdir}/libreoffice-$_LOver/file-lists/gnome_list.txt`; do
install -dm755 ${pkgdir}/${directory/\%dir/}
@@ -488,7 +495,7 @@ package_libreoffice-impress() {
optdepends=('glu: for the OGLTrans extension')
groups=('libreoffice')
replaces=('libreoffice')
-
+
# create directories from *list.txt file
for directory in `grep ^%dir ${srcdir}/libreoffice-$_LOver/file-lists/impress_list.txt`; do
install -dm755 ${pkgdir}/${directory/\%dir/}
@@ -509,7 +516,7 @@ package_libreoffice-kde4() {
optdepends=()
backup=()
groups=('libreoffice')
-
+
# create directories from *list.txt file
for directory in `grep ^%dir ${srcdir}/libreoffice-$_LOver/file-lists/kde4_list.txt`; do
install -dm755 ${pkgdir}/${directory/\%dir/}
@@ -522,7 +529,7 @@ package_libreoffice-kde4() {
# mv file from fakeinstall to pkgdir
mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
done
-
+
# one file (libkde4be1lo.so) is part of kde_list.txt
# create directories from *list.txt file
for directory in `grep ^%dir ${srcdir}/libreoffice-$_LOver/file-lists/kde_list.txt`; do
@@ -543,7 +550,7 @@ package_libreoffice-math() {
depends=('libreoffice-common')
groups=('libreoffice')
replaces=('libreoffice')
-
+
# create directories from *list.txt file
for directory in `grep ^%dir ${srcdir}/libreoffice-$_LOver/file-lists/math_list.txt`; do
install -dm755 ${pkgdir}/${directory/\%dir/}
@@ -562,7 +569,7 @@ package_libreoffice-sdk() {
pkgdesc="Software Development Kit for LibreOffice."
depends=('libreoffice-common' 'gcc-libs' 'sh' 'make' 'zip' 'gcc' 'java-environment')
groups=('libreoffice')
-
+
# create directories from *list.txt file
for directory in `grep ^%dir ${srcdir}/libreoffice-$_LOver/file-lists/sdk_list.txt`; do
install -dm755 ${pkgdir}/${directory/\%dir/}
@@ -575,7 +582,7 @@ package_libreoffice-sdk() {
# mv file from fakeinstall to pkgdir
mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
done
-
+
# fix environment path to keep compatibility with other java-environments
# sed -i -e "s:\/usr\/lib\/jvm\/java-7-openjdk:\$J2SDKDIR:" ${pkgdir}/usr/lib/libreoffice/sdk/setsdkenv_unix.{sh,csh}
sed -i -e "s:\/usr\/lib\/jvm\/java-7-openjdk:\$J2SDKDIR:" ${pkgdir}/usr/lib/libreoffice/sdk/setsdkenv_unix.sh
@@ -585,7 +592,7 @@ package_libreoffice-sdk-doc() {
pkgdesc="Software Development Kit documentation for LibreOffice"
depends=('libreoffice-common' 'libreoffice-sdk')
groups=('libreoffice')
-
+
# create directories from *list.txt file
for directory in `grep ^%dir ${srcdir}/libreoffice-$_LOver/file-lists/sdk_doc_list.txt`; do
install -dm755 ${pkgdir}/${directory/\%dir/}
@@ -623,7 +630,7 @@ package_libreoffice-writer() {
# mv file from fakeinstall to pkgdir
mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
done
-
+
# for workaround this file belongs now to common
rm ${pkgdir}/usr/lib/libreoffice/share/registry/writer.xcd
}
diff --git a/extra/libreoffice/PKGBUILD.42 b/extra/libreoffice/PKGBUILD.42
index 39be2acc7..b36102903 100644
--- a/extra/libreoffice/PKGBUILD.42
+++ b/extra/libreoffice/PKGBUILD.42
@@ -18,22 +18,23 @@ pkgname=('libreoffice-common'
'libreoffice-postgresql-connector'
'libreoffice-extension-wiki-publisher'
'libreoffice-extension-nlpsolver') # svn up -r 142692 (last one with all extensions built)
-_LOver=4.2.0.1
+_LOver=4.2.0.4
pkgver=4.2.0
-pkgrel=0.1
+pkgrel=1
arch=('i686' 'x86_64')
license=('LGPL3')
url="http://www.libreoffice.org/"
makedepends=( # makedepends
'sane' 'perl-archive-zip' 'zip' 'unzip' 'unixodbc' #'boost'
'apache-ant' 'gperf' 'kdelibs' 'gconf' 'gtk3' 'cppunit'
- 'beanshell' 'vigra' 'clucene' 'junit' 'libmythes' 'libwpg' 'imagemagick'
+ 'beanshell2' 'vigra' 'clucene' 'junit' 'libmythes' 'libwpg' 'imagemagick'
'glu' 'mesa' 'gst-plugins-base-libs' 'java-environment' 'postgresql-libs' 'doxygen'
'clucene' 'bluez-libs' 'harfbuzz-icu' 'gdb'
# the runtime dependencies
"curl>=7.20.0" "hunspell>=1.2.8" "python>=3.3" 'libwpd>=0.9.2' 'libwps' 'libxaw' "neon>=0.28.6"
'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' 'libxslt' 'librsvg' "icu>=52.1"
- 'redland' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat' 'graphite' 'lcms2' 'poppler>=0.24.0'
+ 'redland' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'libtextcat' 'graphite' 'lcms2' 'poppler>=0.24.0'
+ 'libvisio' 'libetonyek' 'libodfgen' 'telepathy-glib'
'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'orbit2' 'translate-toolkit' 'xdg-utils'
'ttf-liberation' # to satisfy regression tests
'git')
@@ -45,11 +46,11 @@ makedepends=( # makedepends
# http://download.documentfoundation.org/mirrors/all.html
# http://wiki.documentfoundation.org/Mirrors
-#_mirror="http://download.documentfoundation.org/libreoffice/src/${pkgver}"
-_mirror="http://dev-builds.libreoffice.org/pre-releases/src"
+_mirror="http://download.documentfoundation.org/libreoffice/src/${pkgver}"
+#_mirror="http://dev-builds.libreoffice.org/pre-releases/src"
_additional_source_url="http://dev-www.libreoffice.org/src"
_additional_source_url2="http://dev-www.libreoffice.org/extern"
-source=(${_mirror}/${pkgbase}{,-help,-translations}-${_LOver}.tar.xz
+source=(${_mirror}/${pkgbase}{,-help,-translations}-${_LOver}.tar.xz{,.asc}
${_additional_source_url}/15cb8c0803064faef0c4ddf5bc5ca279-boost_1_54_0.tar.bz2
${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
${_additional_source_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
@@ -70,7 +71,7 @@ source=(${_mirror}/${pkgbase}{,-help,-translations}-${_LOver}.tar.xz
${_additional_source_url}/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
${_additional_source_url}/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
${_additional_source_url}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
- ${_additional_source_url}/8c853024fbcff39113d9285250dafc66-mdds_0.9.1.tar.bz2
+ ${_additional_source_url}/01a380acfec23bf617117ce98e318f3d-mdds_0.10.1.tar.bz2
${_additional_source_url}/ae330b9493bd4503ac390106ff6060d7-libexttextcat-3.4.3.tar.bz2
${_additional_source_url}/22f8a85daf4a012180322e1f52a7563b-libcmis-0.4.1.tar.gz
${_additional_source_url}/ea2acaf140ae40a87a952caa75184f4d-liborcus-0.5.1.tar.bz2
@@ -81,18 +82,16 @@ source=(${_mirror}/${pkgbase}{,-help,-translations}-${_LOver}.tar.xz
${_additional_source_url}/libcdr-0.0.14.tar.bz2
${_additional_source_url}/libmspub-0.0.6.tar.bz2
${_additional_source_url}/libmwaw-0.2.0.tar.bz2
- ${_additional_source_url}/libvisio-0.0.31.tar.bz2
- ${_additional_source_url}/libetonyek-0.0.1.tar.bz2
${_additional_source_url}/libfreehand-0.0.0.tar.bz2
- ${_additional_source_url}/libodfgen-0.0.3.tar.bz2
${_additional_source_url}/Firebird-2.5.2.26540-0.tar.bz2
${_additional_source_url}/libatomic_ops-7_2d.zip
${_additional_source_url}/libe-book-0.0.2.tar.bz2
+ ${_additional_source_url}/libabw-0.0.1.tar.bz2
make-pyuno-work-with-system-wide-module-install.diff
libreoffice-common.sh libreoffice-common.csh)
noextract=(15cb8c0803064faef0c4ddf5bc5ca279-boost_1_54_0.tar.bz2
185d60944ea767075d27247c3162b3bc-unowinreg.dll
- 8c853024fbcff39113d9285250dafc66-mdds_0.9.1.tar.bz2
+ 01a380acfec23bf617117ce98e318f3d-mdds_0.10.1.tar.bz2
798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
ae330b9493bd4503ac390106ff6060d7-libexttextcat-3.4.3.tar.bz2
@@ -121,16 +120,14 @@ noextract=(15cb8c0803064faef0c4ddf5bc5ca279-boost_1_54_0.tar.bz2
libcdr-0.0.14.tar.bz2
libmspub-0.0.6.tar.bz2
libmwaw-0.2.0.tar.bz2
- libvisio-0.0.31.tar.bz2
- libetonyek-0.0.1.tar.bz2
libfreehand-0.0.0.tar.bz2
- libodfgen-0.0.3.tar.bz2
Firebird-2.5.2.26540-0.tar.bz2
libatomic_ops-7_2d.zip
- libe-book-0.0.2.tar.bz2)
-md5sums=('383c63b8055967408e34ca7981b5dab8'
- '74cffe54cc756bb28a4496bf94fc5185'
- '5b0a27fbf474ff3f2ce819f13efafa1b'
+ libe-book-0.0.2.tar.bz2
+ libabw-0.0.1.tar.bz2)
+md5sums=('98674d57d6dd24baef38f007b5020e8e'
+ '8554bbbdfc72db998a191c71eeafdb55'
+ '4873b18cd8a535814777c8630fe2db9f'
'15cb8c0803064faef0c4ddf5bc5ca279'
'1f24ab1d39f4a51faf22244c94a6203f'
'35c94d2df8893241173de1d16b6034c0'
@@ -151,7 +148,7 @@ md5sums=('383c63b8055967408e34ca7981b5dab8'
'ace6ab49184e329db254e454a010f56d'
'db60e4fde8dd6d6807523deb71ee34dc'
'ba2930200c9f019c2d93a8c88c651a0f'
- '8c853024fbcff39113d9285250dafc66'
+ '01a380acfec23bf617117ce98e318f3d'
'ae330b9493bd4503ac390106ff6060d7'
'22f8a85daf4a012180322e1f52a7563b'
'ea2acaf140ae40a87a952caa75184f4d'
@@ -162,13 +159,11 @@ md5sums=('383c63b8055967408e34ca7981b5dab8'
'd88f9b94df880d2c05be943b000ca112'
'1120705cd0f0d9bd5506360bf57b6c2e'
'd794625f156a9fb1c53b3f8a8aa13b5e'
- '82628333418f101a20cd21f980cf9f40'
- '040e0d7ce0cc0eb3a016964699d54a6c'
'496dd00028afcc19f896b01394769043'
- '9cafe7f50a3b2c5ebd2dc9c6c509d2b4'
'21154d2004e025c8a3666625b0357bb5'
'c0b86562d5aa40761a87134f83e6adcf'
'3a62e10c57270718cabfdfc4b7b4e095'
+ 'af3ccc1f1884e68389088d490d596409'
'07d2bf5ad839a394cca008b3ec6e7bb1'
'4195735a80876ae812fca5736b50192a'
'e7e4b3e70e99e5cba8f8dfcacf3b0d87')
@@ -223,10 +218,13 @@ build() {
--with-parallelism=${MAKEFLAGS/-j/} \
--with-external-tar="${srcdir}/ext_sources" \
--disable-fetch-external \
+ --disable-verbose \
+ --enable-release-build \
--prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
--libdir=/usr/lib --mandir=/usr/share/man \
--with-lang="" \
--enable-crashdump \
+ --enable-avahi \
--enable-dbus \
--enable-evolution2\
--enable-gio\
@@ -236,11 +234,15 @@ build() {
--enable-gtk3 \
--enable-gstreamer \
--enable-lockdown\
+ --enable-opencl \
--enable-opengl \
+ --enable-openssl \
--enable-odk\
+ --enable-orcus \
--enable-python=system \
--enable-scripting-beanshell \
--enable-scripting-javascript \
+ --enable-telepathy \
--enable-ext-wiki-publisher \
--enable-ext-nlpsolver \
--without-fonts\
@@ -249,7 +251,7 @@ build() {
--without-system-libcdr \
--without-system-mdds\
--without-myspell-dicts \
- --without-system-libvisio \
+ --with-system-libvisio \
--without-system-libcmis \
--without-system-libmspub \
--without-system-libexttextcat \
@@ -257,13 +259,14 @@ build() {
--without-system-liblangtag \
--without-system-jfreereport \
--without-system-apache-commons \
- --without-system-libodfgen \
+ --with-system-libodfgen \
--without-system-libmwaw \
- --without-system-libetonyek \
+ --with-system-libetonyek \
--without-system-libfreehand \
--without-system-firebird \
--without-system-libatomic-ops \
--without-system-libebook \
+ --without-system-libabw \
--with-system-dicts \
--with-external-dict-dir=/usr/share/hunspell \
--with-external-hyph-dir=/usr/share/hyphen \
@@ -284,10 +287,10 @@ build() {
--without-system-hsqldb \
--with-alloc=system\
--with-system-clucene \
- --disable-dependency-tracking
+ --disable-dependency-tracking \
+ --enable-hardlink-deliver #--help
-# --enable-mergelibs \ # https://bugs.archlinux.org/task/34414
-
+# --enable-mergelibs=<all/yes> \ # https://bugs.archlinux.org/task/34414
# --without-ppds\ # breaks spadmin permission
#--enable-split-opt-features Split file lists for some optional features, .e.g. pyuno, testtool
@@ -311,19 +314,20 @@ package_libreoffice-common() {
install=libreoffice-common.install
depends=('libreoffice-langpack' "hunspell>=1.2.8" "python>=3.3" "neon>=0.28.6" 'dbus-glib' 'librsvg' 'libcups'
'nss' 'libsm' 'redland' 'hyphen' 'graphite' "icu>=52.1" 'clucene' 'lcms2' "poppler>=0.24.0"
- 'harfbuzz-icu' 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'xdg-utils')
+ 'libodfgen' 'libvisio' 'harfbuzz-icu' 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'xdg-utils')
optdepends=('libreoffice-langpack: additional language support'
'java-runtime: adds java support'
'pstoedit: translates PostScript and PDF graphics into other vector formats'
'libmythes: for use in thesaurus'
- 'beanshell: interactive java -- good for prototyping /macros'
+ 'beanshell2: interactive java -- good for prototyping/macros'
'vigra: C++ computer vision library, usable in Basebmp'
'libmspack: library for Microsoft compression formats for use in FontOOo'
'libwpg: library for importing and converting Corel WordPerfect(tm) Graphics images and for MS visual import'
'sane: for scanner access'
'unixodbc: adds ODBC database support'
'gst-plugins-base-libs: + some gstr-plugins to support multimedia content, e.g. in impress'
- 'gtk2: for browser plugin')
+ 'gtk2: for browser plugin'
+ 'libpaper: takes care of papersize')
backup=(etc/libreoffice/sofficerc
etc/libreoffice/bootstraprc
etc/libreoffice/psprint.conf
@@ -370,11 +374,6 @@ package_libreoffice-common() {
mv ${pkgdir}/etc/bash_completion.d/libreoffice.sh ${pkgdir}/usr/share/bash-completion/completions/libreoffice.sh
rm -rf ${pkgdir}/etc/bash_completion.d
- # some files would conflict
- rm -vf ${pkgdir}/usr/lib/libreoffice/program/classes/ScriptProviderForJavaScript.jar
- rm -vf ${pkgdir}/usr/lib/libreoffice/program/classes/js.jar
- rm -vf ${pkgdir}/usr/lib/libreoffice/program/services/scriptproviderforjavascript.rdb
-
# make pyuno find its modules
install -dm755 ${pkgdir}/usr/lib/python3.3/site-packages
ln -svf /usr/lib/libreoffice/program/uno.py ${pkgdir}/usr/lib/python3.3/site-packages/uno.py
@@ -382,6 +381,20 @@ package_libreoffice-common() {
# workaround all packages now depend on that file
cp ${srcdir}/fakeinstall/usr/lib/libreoffice/share/registry/writer.xcd ${pkgdir}/usr/lib/libreoffice/share/registry/writer.xcd
+
+ # add missing files from Beanshell provider
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/libreoffice-$_LOver/file-lists/orig/gid_Module_Optional_Extensions_Script_Provider_For_BS`; do
+ install -dm755 ${pkgdir}/${directory/\%dir/}
+ done
+ # install files into the pkg from fakeinstall dir
+ for file in `grep -v ^%dir $srcdir/libreoffice-$_LOver/file-lists/orig/gid_Module_Optional_Extensions_Script_Provider_For_BS`; do
+ dirname=`dirname $file`
+ # check if directory has been already been created - some are missing like manpages
+ [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
+ # mv file from fakeinstall to pkgdir
+ mv ${srcdir}/fakeinstall${file} ${pkgdir}$file || /bin/true # some double file entries make it fail
+ done
}
package_libreoffice-base() {
@@ -433,7 +446,7 @@ package_libreoffice-postgresql-connector() {
package_libreoffice-calc() {
pkgdesc="Spreadsheet application for LibreOffice."
install=libreoffice-calc.install
- depends=('libreoffice-common' 'lpsolve' )
+ depends=('libreoffice-common' 'lpsolve' 'telepathy-glib')
#depends=('libreoffice-writer' 'lpsolve' ) # some hidden uno linking to parts of the writer pkg - https://bugs.archlinux.org/task/34332
groups=('libreoffice')
replaces=('libreoffice')
@@ -497,7 +510,7 @@ package_libreoffice-gnome() {
package_libreoffice-impress() {
pkgdesc="Presentation Application for LibreOffice."
install=libreoffice-impress.install
- depends=('libreoffice-common')
+ depends=('libreoffice-common' 'libetonyek')
optdepends=('glu: for the OGLTrans extension')
groups=('libreoffice')
replaces=('libreoffice')
@@ -535,6 +548,20 @@ package_libreoffice-kde4() {
# mv file from fakeinstall to pkgdir
mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
done
+
+ # one file (libkde4be1lo.so) is part of kde_list.txt
+ # create directories from *list.txt file
+ for directory in `grep ^%dir ${srcdir}/libreoffice-$_LOver/file-lists/kde_list.txt`; do
+ install -dm755 ${pkgdir}/${directory/\%dir/}
+ done
+ # install files into the pkg from fakeinstall dir
+ for file in `grep -v ^%dir $srcdir/libreoffice-$_LOver/file-lists/kde_list.txt`; do
+ dirname=`dirname $file`
+ # check if directory has been already been created - some are missing like manpages
+ [ -d ${pkgdir}/$dirname ] || install -dm755 ${pkgdir}/$dirname
+ # mv file from fakeinstall to pkgdir
+ mv ${srcdir}/fakeinstall${file} ${pkgdir}$file
+ done
}
package_libreoffice-math() {
diff --git a/extra/openjpeg/PKGBUILD b/extra/openjpeg/PKGBUILD
index a54d97558..65e9f357b 100644
--- a/extra/openjpeg/PKGBUILD
+++ b/extra/openjpeg/PKGBUILD
@@ -1,28 +1,66 @@
-# $Id: PKGBUILD 198355 2013-10-30 14:21:56Z allan $
+# $Id: PKGBUILD 205844 2014-02-11 15:10:57Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=openjpeg
pkgver=1.5.1
-pkgrel=1
+pkgrel=2
pkgdesc="An open source JPEG 2000 codec"
arch=(i686 x86_64)
license=('BSD')
url="http://www.openjpeg.org"
depends=('zlib')
-source=(http://openjpeg.googlecode.com/files/openjpeg-${pkgver}.tar.gz)
-sha1sums=('1b0b74d1af4c297fd82806a9325bb544caf9bb8b')
+makedepends=('libtiff' 'lcms2' 'libpng' 'doxygen')
+optdepends=('lcms2: j2k_to_image and image_to_j2k programs'
+ 'libpng: j2k_to_image and image_to_j2k programs')
+source=(http://openjpeg.googlecode.com/files/openjpeg-${pkgver}.tar.gz
+ openjpeg-1.5.1-CVE-2013-1447.patch
+ openjpeg-1.5.1-CVE-2013-6045.patch
+ openjpeg-1.5.1-CVE-2013-6052.patch
+ openjpeg-1.5.1-CVE-2013-6053.patch
+ openjpeg-1.5.1-CVE-2013-6887.patch
+ openjpeg-1.5.1-doxygen_timestamp.patch
+ openjpeg-1.5-r2029.patch
+ openjpeg-1.5-r2031.patch
+ openjpeg-1.5-r2032.patch
+ openjpeg-1.5-r2033.patch)
+sha1sums=('1b0b74d1af4c297fd82806a9325bb544caf9bb8b'
+ 'f2baf9bde105c96c7016be907cd278f2878be2b9'
+ 'f3764e473bd35508e83643a9257979eaa2c89c36'
+ '1d600a13432b977c46a5b74bf87bf1b5a130abfb'
+ '8d2da4b912d7e930abec31a956b678f62566884c'
+ '038e471597decf36de0c7c78915744054704c601'
+ '339677795a567c0f91b62141847b8e5dda53e763'
+ '1cd97c1be5cedad136894db2b16f856a28387aeb'
+ 'f68108dd25c7ed278678de11d5713fba87ab6017'
+ '222769c17e69022902d4e49c9dc5294361a00c85'
+ '9ec5c1e0909c8946a174733a598fbe38675a0c9c')
+
+prepare() {
+ cd $pkgname-$pkgver
+ patch -Np1 -i ../openjpeg-1.5.1-doxygen_timestamp.patch
+ patch -Np0 -i ../openjpeg-1.5-r2029.patch
+ patch -Np0 -i ../openjpeg-1.5-r2031.patch
+ patch -Np0 -i ../openjpeg-1.5-r2032.patch
+ patch -Np0 -i ../openjpeg-1.5-r2033.patch
+ patch -Np1 -i ../openjpeg-1.5.1-CVE-2013-6052.patch
+ patch -Np1 -i ../openjpeg-1.5.1-CVE-2013-6053.patch
+# patch -Np1 -i ../openjpeg-1.5.1-CVE-2013-6045.patch
+ patch -Np1 -i ../openjpeg-1.5.1-CVE-2013-1447.patch
+ patch -Np1 -i ../openjpeg-1.5.1-CVE-2013-6887.patch
+}
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd $pkgname-$pkgver
+ autoreconf -fi
# make sure we use system libs
rm -rf thirdparty
./configure --prefix=/usr \
- --disable-static --disable-silent-rules
+ --enable-shared --disable-static --disable-silent-rules
make
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd $pkgname-$pkgver
make DESTDIR="${pkgdir}" install
install -m755 -d "${pkgdir}/usr/share/licenses/openjpeg"
install -m644 LICENSE "${pkgdir}/usr/share/licenses/openjpeg/LICENSE"
diff --git a/extra/openjpeg/openjpeg-1.5-r2029.patch b/extra/openjpeg/openjpeg-1.5-r2029.patch
new file mode 100644
index 000000000..a1a819a8c
--- /dev/null
+++ b/extra/openjpeg/openjpeg-1.5-r2029.patch
@@ -0,0 +1,77 @@
+Index: libopenjpeg/jp2.c
+===================================================================
+--- libopenjpeg/jp2.c (revision 2028)
++++ libopenjpeg/jp2.c (revision 2029)
+@@ -173,6 +173,10 @@
+ else if (box->length == 0) {
+ box->length = cio_numbytesleft(cio) + 8;
+ }
++ if (box->length < 0) {
++ opj_event_msg(cinfo, EVT_ERROR, "Integer overflow in box->length\n");
++ return OPJ_FALSE; // TODO: actually check jp2_read_boxhdr's return value
++ }
+
+ return OPJ_TRUE;
+ }
+@@ -654,6 +658,7 @@
+ opj_event_msg(cinfo, EVT_ERROR, "Expected JP2H Marker\n");
+ return OPJ_FALSE;
+ }
++ if (box.length <= 8) return OPJ_FALSE;
+ cio_skip(cio, box.length - 8);
+
+ if(cio->bp >= cio->end) return OPJ_FALSE;
+@@ -679,6 +684,7 @@
+ {
+ if( !jp2_read_colr(jp2, cio, &box, color))
+ {
++ if (box.length <= 8) return OPJ_FALSE;
+ cio_seek(cio, box.init_pos + 8);
+ cio_skip(cio, box.length - 8);
+ }
+@@ -689,6 +695,7 @@
+ {
+ if( !jp2_read_cdef(jp2, cio, &box, color))
+ {
++ if (box.length <= 8) return OPJ_FALSE;
+ cio_seek(cio, box.init_pos + 8);
+ cio_skip(cio, box.length - 8);
+ }
+@@ -699,6 +706,7 @@
+ {
+ if( !jp2_read_pclr(jp2, cio, &box, color))
+ {
++ if (box.length <= 8) return OPJ_FALSE;
+ cio_seek(cio, box.init_pos + 8);
+ cio_skip(cio, box.length - 8);
+ }
+@@ -709,12 +717,14 @@
+ {
+ if( !jp2_read_cmap(jp2, cio, &box, color))
+ {
++ if (box.length <= 8) return OPJ_FALSE;
+ cio_seek(cio, box.init_pos + 8);
+ cio_skip(cio, box.length - 8);
+ }
+ if( jp2_read_boxhdr(cinfo, cio, &box) == OPJ_FALSE ) return OPJ_FALSE;
+ continue;
+ }
++ if (box.length <= 8) return OPJ_FALSE;
+ cio_seek(cio, box.init_pos + 8);
+ cio_skip(cio, box.length - 8);
+ if( jp2_read_boxhdr(cinfo, cio, &box) == OPJ_FALSE ) return OPJ_FALSE;
+@@ -910,12 +920,14 @@
+ }
+ do {
+ if(JP2_JP2C != box.type) {
++ if (box.length <= 8) return OPJ_FALSE;
+ cio_skip(cio, box.length - 8);
+ if( jp2_read_boxhdr(cinfo, cio, &box) == OPJ_FALSE ) return OPJ_FALSE;
+ }
+ } while(JP2_JP2C != box.type);
+
+ *j2k_codestream_offset = cio_tell(cio);
++ if (box.length <= 8) return OPJ_FALSE;
+ *j2k_codestream_length = box.length - 8;
+
+ return OPJ_TRUE;
diff --git a/extra/openjpeg/openjpeg-1.5-r2031.patch b/extra/openjpeg/openjpeg-1.5-r2031.patch
new file mode 100644
index 000000000..d8249acad
--- /dev/null
+++ b/extra/openjpeg/openjpeg-1.5-r2031.patch
@@ -0,0 +1,24 @@
+Index: libopenjpeg/jpwl/Makefile.am
+===================================================================
+--- libopenjpeg/jpwl/Makefile.am (revision 2030)
++++ libopenjpeg/jpwl/Makefile.am (revision 2031)
+@@ -18,7 +18,6 @@
+ ../pi.c \
+ ../raw.c \
+ ../t1.c \
+-../t1_generate_luts.c \
+ ../t2.c \
+ ../tcd.c \
+ ../tgt.c \
+Index: libopenjpeg/Makefile.am
+===================================================================
+--- libopenjpeg/Makefile.am (revision 2030)
++++ libopenjpeg/Makefile.am (revision 2031)
+@@ -35,7 +35,6 @@
+ pi.c \
+ raw.c \
+ t1.c \
+-t1_generate_luts.c \
+ t2.c \
+ tcd.c \
+ tgt.c \
diff --git a/extra/openjpeg/openjpeg-1.5-r2032.patch b/extra/openjpeg/openjpeg-1.5-r2032.patch
new file mode 100644
index 000000000..3d7d4fa7c
--- /dev/null
+++ b/extra/openjpeg/openjpeg-1.5-r2032.patch
@@ -0,0 +1,30 @@
+Index: libopenjpeg/j2k.c
+===================================================================
+--- libopenjpeg/j2k.c (revision 2031)
++++ libopenjpeg/j2k.c (revision 2032)
+@@ -468,6 +468,12 @@
+ }
+ #endif /* USE_JPWL */
+
++ /* prevent division by zero */
++ if (!(cp->tdx * cp->tdy)) {
++ opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: invalid tile size (tdx: %d, tdy: %d)\n", cp->tdx, cp->tdy);
++ return;
++ }
++
+ image->comps = (opj_image_comp_t*) opj_calloc(image->numcomps, sizeof(opj_image_comp_t));
+ for (i = 0; i < image->numcomps; i++) {
+ int tmp, w, h;
+@@ -506,6 +512,12 @@
+ }
+ #endif /* USE_JPWL */
+
++ /* prevent division by zero */
++ if (!(image->comps[i].dx * image->comps[i].dy)) {
++ opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: invalid component size (dx: %d, dy: %d)\n", image->comps[i].dx, image->comps[i].dy);
++ return;
++ }
++
+ /* TODO: unused ? */
+ w = int_ceildiv(image->x1 - image->x0, image->comps[i].dx);
+ h = int_ceildiv(image->y1 - image->y0, image->comps[i].dy);
diff --git a/extra/openjpeg/openjpeg-1.5-r2033.patch b/extra/openjpeg/openjpeg-1.5-r2033.patch
new file mode 100644
index 000000000..a84513913
--- /dev/null
+++ b/extra/openjpeg/openjpeg-1.5-r2033.patch
@@ -0,0 +1,49 @@
+Index: libopenjpeg/j2k.c
+===================================================================
+--- libopenjpeg/j2k.c (revision 2032)
++++ libopenjpeg/j2k.c (revision 2033)
+@@ -835,6 +835,12 @@
+
+ len = cio_read(cio, 2); /* Lcoc */
+ compno = cio_read(cio, image->numcomps <= 256 ? 1 : 2); /* Ccoc */
++ if (compno >= image->numcomps) {
++ opj_event_msg(j2k->cinfo, EVT_ERROR,
++ "bad component number in COC (%d out of a maximum of %d)\n",
++ compno, image->numcomps);
++ return;
++ }
+ tcp->tccps[compno].csty = cio_read(cio, 1); /* Scoc */
+ j2k_read_cox(j2k, compno);
+ }
+@@ -1016,9 +1022,16 @@
+
+ /* keep your private count of tiles */
+ backup_compno++;
+- };
++ }
+ #endif /* USE_JPWL */
+
++ if ((compno < 0) || (compno >= numcomp)) {
++ opj_event_msg(j2k->cinfo, EVT_ERROR,
++ "bad component number in QCC (%d out of a maximum of %d)\n",
++ compno, j2k->image->numcomps);
++ return;
++ }
++
+ j2k_read_qcx(j2k, compno, len - 2 - (numcomp <= 256 ? 1 : 2));
+ }
+
+@@ -1602,6 +1615,13 @@
+ };
+ #endif /* USE_JPWL */
+
++ if (compno >= numcomps) {
++ opj_event_msg(j2k->cinfo, EVT_ERROR,
++ "bad component number in RGN (%d out of a maximum of %d)\n",
++ compno, j2k->image->numcomps);
++ return;
++ }
++
+ tcp->tccps[compno].roishift = cio_read(cio, 1); /* SPrgn */
+ }
+
diff --git a/extra/openjpeg/openjpeg-1.5.1-CVE-2013-1447.patch b/extra/openjpeg/openjpeg-1.5.1-CVE-2013-1447.patch
new file mode 100644
index 000000000..a0e372325
--- /dev/null
+++ b/extra/openjpeg/openjpeg-1.5.1-CVE-2013-1447.patch
@@ -0,0 +1,165 @@
+diff -up openjpeg-1.5.1/libopenjpeg/cio.c.CVE-2013-1447 openjpeg-1.5.1/libopenjpeg/cio.c
+--- openjpeg-1.5.1/libopenjpeg/cio.c.CVE-2013-1447 2014-01-07 15:12:20.517748762 -0600
++++ openjpeg-1.5.1/libopenjpeg/cio.c 2014-01-07 15:12:20.533748592 -0600
+@@ -107,6 +107,11 @@ int OPJ_CALLCONV cio_tell(opj_cio_t *cio
+ * pos : position, in number of bytes, from the beginning of the stream
+ */
+ void OPJ_CALLCONV cio_seek(opj_cio_t *cio, int pos) {
++ if ((cio->start + pos) > cio->end) {
++ opj_event_msg(cio->cinfo, EVT_ERROR, "error: trying to seek past the end of the codestream (start = %d, change = %d, end = %d\n", cio->start, pos, cio->end);
++ cio->bp = cio->end;
++ return;
++ }
+ cio->bp = cio->start + pos;
+ }
+
+@@ -114,6 +119,7 @@ void OPJ_CALLCONV cio_seek(opj_cio_t *ci
+ * Number of bytes left before the end of the stream.
+ */
+ int cio_numbytesleft(opj_cio_t *cio) {
++ assert((cio->end - cio->bp) >= 0);
+ return cio->end - cio->bp;
+ }
+
+@@ -191,6 +197,11 @@ unsigned int cio_read(opj_cio_t *cio, in
+ */
+ void cio_skip(opj_cio_t *cio, int n) {
+ assert((cio->bp + n) >= cio->bp);
++ if (((cio->bp + n) < cio->start) || ((cio->bp + n) > cio->end)) {
++ opj_event_msg(cio->cinfo, EVT_ERROR, "error: trying to skip bytes past the end of the codestream (current = %d, change = %d, end = %d\n", cio->bp, n, cio->end);
++ cio->bp = cio->end;
++ return;
++ }
+ cio->bp += n;
+ }
+
+diff -up openjpeg-1.5.1/libopenjpeg/j2k.c.CVE-2013-1447 openjpeg-1.5.1/libopenjpeg/j2k.c
+--- openjpeg-1.5.1/libopenjpeg/j2k.c.CVE-2013-1447 2014-01-07 15:12:20.525748677 -0600
++++ openjpeg-1.5.1/libopenjpeg/j2k.c 2014-01-07 15:12:20.534748582 -0600
+@@ -476,7 +476,7 @@ static void j2k_read_siz(opj_j2k_t *j2k)
+
+ image->comps = (opj_image_comp_t*) opj_calloc(image->numcomps, sizeof(opj_image_comp_t));
+ for (i = 0; i < image->numcomps; i++) {
+- int tmp, w, h;
++ int tmp/*, w, h*/;
+ tmp = cio_read(cio, 1); /* Ssiz_i */
+ image->comps[i].prec = (tmp & 0x7f) + 1;
+ image->comps[i].sgnd = tmp >> 7;
+@@ -511,6 +511,14 @@ static void j2k_read_siz(opj_j2k_t *j2k)
+
+ }
+ #endif /* USE_JPWL */
++ {
++ if (!(image->comps[i].dx * image->comps[i].dy)) {
++ opj_event_msg(j2k->cinfo, EVT_ERROR,
++ "JPWL: bad XRsiz_%d/YRsiz_%d (%d x %d)\n",
++ i, i, image->comps[i].dx, image->comps[i].dy);
++ return;
++ }
++ }
+
+ /* prevent division by zero */
+ if (!(image->comps[i].dx * image->comps[i].dy)) {
+@@ -519,8 +527,8 @@ static void j2k_read_siz(opj_j2k_t *j2k)
+ }
+
+ /* TODO: unused ? */
+- w = int_ceildiv(image->x1 - image->x0, image->comps[i].dx);
+- h = int_ceildiv(image->y1 - image->y0, image->comps[i].dy);
++/* w = int_ceildiv(image->x1 - image->x0, image->comps[i].dx);
++ h = int_ceildiv(image->y1 - image->y0, image->comps[i].dy);*/
+
+ image->comps[i].resno_decoded = 0; /* number of resolution decoded */
+ image->comps[i].factor = cp->reduce; /* reducing factor per component */
+@@ -2015,6 +2023,11 @@ opj_image_t* j2k_decode(opj_j2k_t *j2k,
+ }
+ if (j2k->state == J2K_STATE_NEOC) {
+ j2k_read_eoc(j2k);
++ /* Check one last time for errors during decoding before returning */
++ if (j2k->state & J2K_STATE_ERR) {
++ opj_image_destroy(image);
++ return NULL;
++ }
+ }
+
+ if (j2k->state != J2K_STATE_MT) {
+diff -up openjpeg-1.5.1/libopenjpeg/jp2.c.CVE-2013-1447 openjpeg-1.5.1/libopenjpeg/jp2.c
+--- openjpeg-1.5.1/libopenjpeg/jp2.c.CVE-2013-1447 2014-01-07 15:12:20.518748752 -0600
++++ openjpeg-1.5.1/libopenjpeg/jp2.c 2014-01-07 15:12:20.535748571 -0600
+@@ -819,6 +819,17 @@ void jp2_write_jp2h(opj_jp2_t *jp2, opj_
+
+ jp2_write_ihdr(jp2, cio);
+
++ {
++ int curpos = cio_tell(cio);
++ cio_seek(cio, box.init_pos);
++ cio_skip(cio, box.length);
++ if ((cio_tell(cio) - box.init_pos) != box.length) {
++ opj_event_msg(jp2->cinfo, EVT_ERROR, "Box size exceeds size of codestream (expected: %d, real: %d)\n", box.length, (cio_tell(cio) - box.init_pos));
++ return OPJ_FALSE;
++ }
++ cio_seek(cio, curpos);
++ }
++
+ if (jp2->bpc == 255) {
+ jp2_write_bpcc(jp2, cio);
+ }
+@@ -871,6 +882,13 @@ static opj_bool jp2_read_ftyp(opj_jp2_t
+ jp2->numcl = (box.length - 16) / 4;
+ jp2->cl = (unsigned int *) opj_malloc(jp2->numcl * sizeof(unsigned int));
+
++ if (cio_numbytesleft(cio) < ((int)jp2->numcl * 4)) {
++ opj_event_msg(cinfo, EVT_ERROR, "Not enough bytes in FTYP Box "
++ "(expected %d, but only %d left)\n",
++ ((int)jp2->numcl * 4), cio_numbytesleft(cio));
++ return OPJ_FALSE;
++ }
++
+ for (i = 0; i < (int)jp2->numcl; i++) {
+ jp2->cl[i] = cio_read(cio, 4); /* CLi */
+ }
+diff -up openjpeg-1.5.1/libopenjpeg/t2.c.CVE-2013-1447 openjpeg-1.5.1/libopenjpeg/t2.c
+--- openjpeg-1.5.1/libopenjpeg/t2.c.CVE-2013-1447 2012-09-13 02:58:39.000000000 -0500
++++ openjpeg-1.5.1/libopenjpeg/t2.c 2014-01-07 15:12:20.535748571 -0600
+@@ -340,6 +340,11 @@ static int t2_decode_packet(opj_t2_t* t2
+ int precno = pi->precno; /* precinct value */
+ int layno = pi->layno; /* quality layer value */
+
++ if (!&(tile->comps[compno])) {
++ opj_event_msg(t2->cinfo, EVT_ERROR, "Trying to decode tile with no components!\n");
++ return -999;
++ }
++
+ opj_tcd_resolution_t* res = &tile->comps[compno].resolutions[resno];
+
+ unsigned char *hd = NULL;
+diff -up openjpeg-1.5.1/libopenjpeg/tcd.c.CVE-2013-1447 openjpeg-1.5.1/libopenjpeg/tcd.c
+--- openjpeg-1.5.1/libopenjpeg/tcd.c.CVE-2013-1447 2014-01-07 15:12:20.526748667 -0600
++++ openjpeg-1.5.1/libopenjpeg/tcd.c 2014-01-07 15:12:20.536748561 -0600
+@@ -667,8 +667,8 @@ void tcd_malloc_decode(opj_tcd_t *tcd, o
+ y1 = j == 0 ? tilec->y1 : int_max(y1, (unsigned int) tilec->y1);
+ }
+
+- w = int_ceildivpow2(x1 - x0, image->comps[i].factor);
+- h = int_ceildivpow2(y1 - y0, image->comps[i].factor);
++ w = int_ceildivpow2((long)(x1) - (long)(x0), image->comps[i].factor);
++ h = int_ceildivpow2((long)(y1) - (long)(y0), image->comps[i].factor);
+
+ image->comps[i].w = w;
+ image->comps[i].h = h;
+@@ -1381,7 +1381,15 @@ opj_bool tcd_decode_tile(opj_tcd_t *tcd,
+ if (l == -999) {
+ eof = 1;
+ opj_event_msg(tcd->cinfo, EVT_ERROR, "tcd_decode: incomplete bistream\n");
++ return OPJ_FALSE;
+ }
++
++ /* The code below assumes that numcomps > 0 */
++ if (tile->numcomps <= 0) {
++ opj_event_msg(tcd->cinfo, EVT_ERROR, "tcd_decode: tile has a zero or negative numcomps\n");
++ return OPJ_TRUE;
++ }
++
+
+ /*------------------TIER1-----------------*/
+
diff --git a/extra/openjpeg/openjpeg-1.5.1-CVE-2013-6045.patch b/extra/openjpeg/openjpeg-1.5.1-CVE-2013-6045.patch
new file mode 100644
index 000000000..f45566f36
--- /dev/null
+++ b/extra/openjpeg/openjpeg-1.5.1-CVE-2013-6045.patch
@@ -0,0 +1,60 @@
+diff -up openjpeg-1.5.1/libopenjpeg/j2k.c.CVE-2013-6045 openjpeg-1.5.1/libopenjpeg/j2k.c
+--- openjpeg-1.5.1/libopenjpeg/j2k.c.CVE-2013-6045 2014-01-07 15:11:30.622278207 -0600
++++ openjpeg-1.5.1/libopenjpeg/j2k.c 2014-01-07 15:11:30.626278165 -0600
+@@ -1076,6 +1076,17 @@ static void j2k_read_poc(opj_j2k_t *j2k)
+ tcp->POC = 1;
+ len = cio_read(cio, 2); /* Lpoc */
+ numpchgs = (len - 2) / (5 + 2 * (numcomps <= 256 ? 1 : 2));
++
++ {
++ /* old_poc < 0 "just in case" */
++ int maxpocs = (sizeof(tcp->pocs)/sizeof(tcp->pocs[0]));
++ if ((old_poc < 0) || ((numpchgs + old_poc) >= maxpocs)) {
++ opj_event_msg(j2k->cinfo, EVT_ERROR,
++ "JPWL: bad number of progression order changes (%d out of a maximum of %d)\n",
++ (numpchgs + old_poc), maxpocs);
++ return;
++ }
++ }
+
+ for (i = old_poc; i < numpchgs + old_poc; i++) {
+ opj_poc_t *poc;
+@@ -1622,6 +1633,14 @@ static void j2k_read_rgn(opj_j2k_t *j2k)
+ return;
+ }
+
++ /* totlen is negative or larger than the bytes left!!! */
++ if (compno >= numcomps) {
++ opj_event_msg(j2k->cinfo, EVT_ERROR,
++ "JPWL: bad component number in RGN (%d when there are only %d)\n",
++ compno, numcomps);
++ return;
++ }
++
+ tcp->tccps[compno].roishift = cio_read(cio, 1); /* SPrgn */
+ }
+
+diff -up openjpeg-1.5.1/libopenjpeg/tcd.c.CVE-2013-6045 openjpeg-1.5.1/libopenjpeg/tcd.c
+--- openjpeg-1.5.1/libopenjpeg/tcd.c.CVE-2013-6045 2012-09-13 02:58:39.000000000 -0500
++++ openjpeg-1.5.1/libopenjpeg/tcd.c 2014-01-07 15:11:30.626278165 -0600
+@@ -1394,10 +1394,19 @@ opj_bool tcd_decode_tile(opj_tcd_t *tcd,
+ return OPJ_FALSE;
+ }
+
++ int comp0size = (tile->comps[0].x1 - tile->comps[0].x0) * (tile->comps[0].y1 - tile->comps[0].y0);
+ for (compno = 0; compno < tile->numcomps; ++compno) {
+ opj_tcd_tilecomp_t* tilec = &tile->comps[compno];
++ int compcsize = ((tilec->x1 - tilec->x0) * (tilec->y1 - tilec->y0));
++ /* Later-on it is assumed that all components are of at least comp0size blocks */
++ if (compcsize < comp0size)
++ {
++ opj_event_msg(tcd->cinfo, EVT_ERROR, "Error decoding tile. Component %d contains only %d blocks "
++ "while component 0 has %d blocks\n", compno, compcsize, comp0size);
++ return OPJ_FALSE;
++ }
+ /* The +3 is headroom required by the vectorized DWT */
+- tilec->data = (int*) opj_aligned_malloc((((tilec->x1 - tilec->x0) * (tilec->y1 - tilec->y0))+3) * sizeof(int));
++ tilec->data = (int*) opj_aligned_malloc((comp0size+3) * sizeof(int));
+ if (tilec->data == NULL)
+ {
+ opj_event_msg(tcd->cinfo, EVT_ERROR, "Out of memory\n");
diff --git a/extra/openjpeg/openjpeg-1.5.1-CVE-2013-6052.patch b/extra/openjpeg/openjpeg-1.5.1-CVE-2013-6052.patch
new file mode 100644
index 000000000..a157f39a7
--- /dev/null
+++ b/extra/openjpeg/openjpeg-1.5.1-CVE-2013-6052.patch
@@ -0,0 +1,53 @@
+diff -up openjpeg-1.5.1/libopenjpeg/cio.c.CVE-2013-6052 openjpeg-1.5.1/libopenjpeg/cio.c
+--- openjpeg-1.5.1/libopenjpeg/cio.c.CVE-2013-6052 2012-09-13 02:58:39.000000000 -0500
++++ openjpeg-1.5.1/libopenjpeg/cio.c 2014-01-07 14:43:14.213256439 -0600
+@@ -30,6 +30,7 @@
+ */
+
+ #include "opj_includes.h"
++#include <assert.h>
+
+ /* ----------------------------------------------------------------------- */
+
+@@ -139,6 +140,11 @@ opj_bool cio_byteout(opj_cio_t *cio, uns
+ * Read a byte.
+ */
+ unsigned char cio_bytein(opj_cio_t *cio) {
++ if (cio->bp < cio->start) {
++ opj_event_msg(cio->cinfo, EVT_ERROR, "read error: trying to read from before the start of the codestream (start = %d, current = %d, end = %d\n", cio->start, cio->bp, cio->end);
++ abort();
++ return 0;
++ }
+ if (cio->bp >= cio->end) {
+ opj_event_msg(cio->cinfo, EVT_ERROR, "read error: passed the end of the codestream (start = %d, current = %d, end = %d\n", cio->start, cio->bp, cio->end);
+ return 0;
+@@ -173,7 +179,7 @@ unsigned int cio_read(opj_cio_t *cio, in
+ unsigned int v;
+ v = 0;
+ for (i = n - 1; i >= 0; i--) {
+- v += cio_bytein(cio) << (i << 3);
++ v += (unsigned int)cio_bytein(cio) << (i << 3);
+ }
+ return v;
+ }
+@@ -184,6 +190,7 @@ unsigned int cio_read(opj_cio_t *cio, in
+ * n : number of bytes to skip
+ */
+ void cio_skip(opj_cio_t *cio, int n) {
++ assert((cio->bp + n) >= cio->bp);
+ cio->bp += n;
+ }
+
+diff -up openjpeg-1.5.1/libopenjpeg/jp2.c.CVE-2013-6052 openjpeg-1.5.1/libopenjpeg/jp2.c
+--- openjpeg-1.5.1/libopenjpeg/jp2.c.CVE-2013-6052 2014-01-07 14:43:14.201256566 -0600
++++ openjpeg-1.5.1/libopenjpeg/jp2.c 2014-01-07 14:43:14.214256428 -0600
+@@ -172,6 +172,9 @@ static opj_bool jp2_read_boxhdr(opj_comm
+ }
+ else if (box->length == 0) {
+ box->length = cio_numbytesleft(cio) + 8;
++ } else if (box->length < 0) {
++ opj_event_msg(cinfo, EVT_ERROR, "Invalid, negative, size of box\n");
++ return OPJ_FALSE;
+ }
+ if (box->length < 0) {
+ opj_event_msg(cinfo, EVT_ERROR, "Integer overflow in box->length\n");
diff --git a/extra/openjpeg/openjpeg-1.5.1-CVE-2013-6053.patch b/extra/openjpeg/openjpeg-1.5.1-CVE-2013-6053.patch
new file mode 100644
index 000000000..292084a98
--- /dev/null
+++ b/extra/openjpeg/openjpeg-1.5.1-CVE-2013-6053.patch
@@ -0,0 +1,12 @@
+diff -up openjpeg-1.5.1/libopenjpeg/j2k.c.CVE-2013-6053 openjpeg-1.5.1/libopenjpeg/j2k.c
+--- openjpeg-1.5.1/libopenjpeg/j2k.c.CVE-2013-6053 2014-01-07 14:44:40.086344624 -0600
++++ openjpeg-1.5.1/libopenjpeg/j2k.c 2014-01-07 14:44:40.092344561 -0600
+@@ -422,7 +422,7 @@ static void j2k_read_siz(opj_j2k_t *j2k)
+
+ if ((image->x0<0)||(image->x1<0)||(image->y0<0)||(image->y1<0)) {
+ opj_event_msg(j2k->cinfo, EVT_ERROR,
+- "%s: invalid image size (x0:%d, x1:%d, y0:%d, y1:%d)\n",
++ "invalid image size (x0:%d, x1:%d, y0:%d, y1:%d)\n",
+ image->x0,image->x1,image->y0,image->y1);
+ return;
+ }
diff --git a/extra/openjpeg/openjpeg-1.5.1-CVE-2013-6887.patch b/extra/openjpeg/openjpeg-1.5.1-CVE-2013-6887.patch
new file mode 100644
index 000000000..f9d68ef4b
--- /dev/null
+++ b/extra/openjpeg/openjpeg-1.5.1-CVE-2013-6887.patch
@@ -0,0 +1,30 @@
+diff -up openjpeg-1.5.1/libopenjpeg/j2k.c.CVE-2013-6887 openjpeg-1.5.1/libopenjpeg/j2k.c
+--- openjpeg-1.5.1/libopenjpeg/j2k.c.CVE-2013-6887 2014-01-07 15:13:20.297114457 -0600
++++ openjpeg-1.5.1/libopenjpeg/j2k.c 2014-01-07 15:13:20.302114404 -0600
+@@ -1697,8 +1697,11 @@ static void j2k_read_eoc(opj_j2k_t *j2k)
+ else {
+ for (i = 0; i < j2k->cp->tileno_size; i++) {
+ tileno = j2k->cp->tileno[i];
+- opj_free(j2k->tile_data[tileno]);
+- j2k->tile_data[tileno] = NULL;
++ /* not sure if this can actually happen */
++ if (tileno != -1) {
++ opj_free(j2k->tile_data[tileno]);
++ j2k->tile_data[tileno] = NULL;
++ }
+ }
+ }
+ if (j2k->state & J2K_STATE_ERR)
+@@ -1858,8 +1861,10 @@ void j2k_destroy_decompress(opj_j2k_t *j
+ if(j2k->cp != NULL) {
+ for (i = 0; i < j2k->cp->tileno_size; i++) {
+ int tileno = j2k->cp->tileno[i];
+- opj_free(j2k->tile_data[tileno]);
+- j2k->tile_data[tileno] = NULL;
++ if (tileno != -1) {
++ opj_free(j2k->tile_data[tileno]);
++ j2k->tile_data[tileno] = NULL;
++ }
+ }
+ }
+
diff --git a/extra/openjpeg/openjpeg-1.5.1-doxygen_timestamp.patch b/extra/openjpeg/openjpeg-1.5.1-doxygen_timestamp.patch
new file mode 100644
index 000000000..2f5999992
--- /dev/null
+++ b/extra/openjpeg/openjpeg-1.5.1-doxygen_timestamp.patch
@@ -0,0 +1,24 @@
+diff -up openjpeg-1.5.1/doc/Doxyfile.dox.cmake.in.doxygen_timestamp openjpeg-1.5.1/doc/Doxyfile.dox.cmake.in
+--- openjpeg-1.5.1/doc/Doxyfile.dox.cmake.in.doxygen_timestamp 2012-09-13 02:58:39.000000000 -0500
++++ openjpeg-1.5.1/doc/Doxyfile.dox.cmake.in 2012-12-06 15:23:35.079838524 -0600
+@@ -148,7 +148,7 @@ HTML_STYLESHEET =
+ HTML_COLORSTYLE_HUE = 220
+ HTML_COLORSTYLE_SAT = 100
+ HTML_COLORSTYLE_GAMMA = 80
+-HTML_TIMESTAMP = YES
++HTML_TIMESTAMP = NO
+ HTML_ALIGN_MEMBERS = YES
+ HTML_DYNAMIC_SECTIONS = NO
+ GENERATE_DOCSET = NO
+diff -up openjpeg-1.5.1/doc/Doxyfile.dox.doxygen_timestamp openjpeg-1.5.1/doc/Doxyfile.dox
+--- openjpeg-1.5.1/doc/Doxyfile.dox.doxygen_timestamp 2012-09-13 02:58:39.000000000 -0500
++++ openjpeg-1.5.1/doc/Doxyfile.dox 2012-12-06 15:23:37.177813275 -0600
+@@ -147,7 +147,7 @@ HTML_STYLESHEET =
+ HTML_COLORSTYLE_HUE = 220
+ HTML_COLORSTYLE_SAT = 100
+ HTML_COLORSTYLE_GAMMA = 80
+-HTML_TIMESTAMP = YES
++HTML_TIMESTAMP = NO
+ HTML_ALIGN_MEMBERS = YES
+ HTML_DYNAMIC_SECTIONS = NO
+ GENERATE_DOCSET = NO
diff --git a/extra/python-numpy/PKGBUILD b/extra/python-numpy/PKGBUILD
index 5df819ca9..a9d6dd708 100755
--- a/extra/python-numpy/PKGBUILD
+++ b/extra/python-numpy/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 200823 2013-12-06 08:09:29Z jgc $
+# $Id: PKGBUILD 205836 2014-02-11 12:33:14Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
@@ -6,17 +6,23 @@
pkgbase=python-numpy
pkgname=('python2-numpy' 'python-numpy')
pkgver=1.8.0
-pkgrel=1
+pkgrel=2
pkgdesc="Scientific tools for Python"
arch=('i686' 'x86_64')
license=('custom')
url="http://www.numpy.org/"
makedepends=('lapack' 'python' 'python2' 'python-setuptools' 'python2-setuptools' 'gcc-fortran' 'python-nose' 'python2-nose')
options=('staticlibs')
-source=(http://downloads.sourceforge.net/numpy/numpy-${pkgver}.tar.gz)
-md5sums=('2a4b0423a758706d592abb6721ec8dcd')
+source=(http://downloads.sourceforge.net/numpy/numpy-${pkgver}.tar.gz
+ numpy-insecure-mktemp-use.patch)
+md5sums=('2a4b0423a758706d592abb6721ec8dcd'
+ '2caf84740b54dcb5fa1d47e72201f294')
prepare() {
+ cd numpy-$pkgver
+ patch -Np1 -i ../numpy-insecure-mktemp-use.patch
+ cd ..
+
cp -a numpy-$pkgver numpy-py2-$pkgver
cd numpy-py2-$pkgver
diff --git a/extra/python-numpy/numpy-insecure-mktemp-use.patch b/extra/python-numpy/numpy-insecure-mktemp-use.patch
new file mode 100644
index 000000000..8ecdcedfa
--- /dev/null
+++ b/extra/python-numpy/numpy-insecure-mktemp-use.patch
@@ -0,0 +1,263 @@
+--- a/numpy/lib/tests/test_io.py 2013-10-30 19:32:51.000000000 +0100
++++ b/numpy/lib/tests/test_io.py 2014-02-10 08:30:12.903607138 +0100
+@@ -4,7 +4,9 @@
+ import gzip
+ import os
+ import threading
+-from tempfile import mkstemp, mktemp, NamedTemporaryFile
++import shutil
++import contextlib
++from tempfile import mkstemp, mkdtemp, NamedTemporaryFile
+ import time
+ import warnings
+ import gc
+@@ -21,6 +23,12 @@
+ assert_raises, run_module_suite)
+ from numpy.testing import assert_warns, assert_, build_err_msg
+
++@contextlib.contextmanager
++def tempdir(change_dir=False):
++ tmpdir = mkdtemp()
++ yield tmpdir
++ shutil.rmtree(tmpdir)
++
+
+ class TextIO(BytesIO):
+ """Helper IO class.
+@@ -145,14 +153,14 @@
+ @np.testing.dec.slow
+ def test_big_arrays(self):
+ L = (1 << 31) + 100000
+- tmp = mktemp(suffix='.npz')
+ a = np.empty(L, dtype=np.uint8)
+- np.savez(tmp, a=a)
+- del a
+- npfile = np.load(tmp)
+- a = npfile['a']
+- npfile.close()
+- os.remove(tmp)
++ with tempdir() as tmpdir:
++ tmp = open(os.path.join(tmpdir, "file.npz"), "w")
++ np.savez(tmp, a=a)
++ del a
++ npfile = np.load(tmp)
++ a = npfile['a']
++ npfile.close()
+
+ def test_multiple_arrays(self):
+ a = np.array([[1, 2], [3, 4]], float)
+commit 0bb46c1448b0d3f5453d5182a17ea7ac5854ee15
+Author: Julian Taylor <jtaylor.debian@googlemail.com>
+Date: Wed Feb 5 23:01:47 2014 +0100
+
+ ENH: remove insecure mktemp use
+
+ mktemp only returns a filename, a malicous user could replace it before
+ it gets used.
+
+diff --git a/numpy/core/tests/test_memmap.py b/numpy/core/tests/test_memmap.py
+index 6de6319..10e7a08 100644
+--- a/numpy/core/tests/test_memmap.py
++++ b/numpy/core/tests/test_memmap.py
+@@ -1,7 +1,7 @@
+ from __future__ import division, absolute_import, print_function
+
+ import sys
+-from tempfile import NamedTemporaryFile, TemporaryFile, mktemp
++from tempfile import NamedTemporaryFile, TemporaryFile
+ import os
+
+ from numpy import memmap
+@@ -33,12 +33,11 @@ class TestMemmap(TestCase):
+ assert_array_equal(self.data, newfp)
+
+ def test_open_with_filename(self):
+- tmpname = mktemp('', 'mmap')
+- fp = memmap(tmpname, dtype=self.dtype, mode='w+',
+- shape=self.shape)
+- fp[:] = self.data[:]
+- del fp
+- os.unlink(tmpname)
++ with NamedTemporaryFile() as tmp:
++ fp = memmap(tmp.name, dtype=self.dtype, mode='w+',
++ shape=self.shape)
++ fp[:] = self.data[:]
++ del fp
+
+ def test_unnamed_file(self):
+ with TemporaryFile() as f:
+@@ -55,17 +54,16 @@ class TestMemmap(TestCase):
+ del fp
+
+ def test_filename(self):
+- tmpname = mktemp('', 'mmap')
+- fp = memmap(tmpname, dtype=self.dtype, mode='w+',
+- shape=self.shape)
+- abspath = os.path.abspath(tmpname)
+- fp[:] = self.data[:]
+- self.assertEqual(abspath, fp.filename)
+- b = fp[:1]
+- self.assertEqual(abspath, b.filename)
+- del b
+- del fp
+- os.unlink(tmpname)
++ with NamedTemporaryFile() as tmp:
++ fp = memmap(tmp.name, dtype=self.dtype, mode='w+',
++ shape=self.shape)
++ abspath = os.path.abspath(tmp.name)
++ fp[:] = self.data[:]
++ self.assertEqual(abspath, fp.filename)
++ b = fp[:1]
++ self.assertEqual(abspath, b.filename)
++ del b
++ del fp
+
+ def test_filename_fileobj(self):
+ fp = memmap(self.tmpfp, dtype=self.dtype, mode="w+",
+diff --git a/numpy/core/tests/test_multiarray.py b/numpy/core/tests/test_multiarray.py
+index c2ac009..a6f7b34 100644
+--- a/numpy/core/tests/test_multiarray.py
++++ b/numpy/core/tests/test_multiarray.py
+@@ -2316,12 +2316,11 @@ class TestIO(object):
+ self.x = rand(shape) + rand(shape).astype(np.complex)*1j
+ self.x[0,:, 1] = [nan, inf, -inf, nan]
+ self.dtype = self.x.dtype
+- self.filename = tempfile.mktemp()
++ self.file = tempfile.NamedTemporaryFile()
++ self.filename = self.file.name
+
+ def tearDown(self):
+- if os.path.isfile(self.filename):
+- os.unlink(self.filename)
+- #tmp_file.close()
++ self.file.close()
+
+ def test_bool_fromstring(self):
+ v = np.array([True, False, True, False], dtype=np.bool_)
+@@ -2349,7 +2348,6 @@ class TestIO(object):
+ y = np.fromfile(f, dtype=self.dtype)
+ f.close()
+ assert_array_equal(y, self.x.flat)
+- os.unlink(self.filename)
+
+ def test_roundtrip_filename(self):
+ self.x.tofile(self.filename)
+@@ -2535,7 +2529,6 @@ class TestIO(object):
+ s = f.read()
+ f.close()
+ assert_equal(s, '1.51,2.0,3.51,4.0')
+- os.unlink(self.filename)
+
+ def test_tofile_format(self):
+ x = np.array([1.51, 2, 3.51, 4], dtype=float)
+diff --git a/numpy/f2py/__init__.py b/numpy/f2py/__init__.py
+index ccdbd4e..fcfd185 100644
+--- a/numpy/f2py/__init__.py
++++ b/numpy/f2py/__init__.py
+@@ -28,20 +28,20 @@ def compile(source,
+ from numpy.distutils.exec_command import exec_command
+ import tempfile
+ if source_fn is None:
+- fname = os.path.join(tempfile.mktemp()+'.f')
++ f = tempfile.NamedTemporaryFile(suffix='.f')
+ else:
+- fname = source_fn
+-
+- f = open(fname, 'w')
+- f.write(source)
+- f.close()
+-
+- args = ' -c -m %s %s %s'%(modulename, fname, extra_args)
+- c = '%s -c "import numpy.f2py as f2py2e;f2py2e.main()" %s' %(sys.executable, args)
+- s, o = exec_command(c)
+- if source_fn is None:
+- try: os.remove(fname)
+- except OSError: pass
++ f = open(source_fn, 'w')
++
++ try:
++ f.write(source)
++ f.flush()
++
++ args = ' -c -m %s %s %s'%(modulename, f.name, extra_args)
++ c = '%s -c "import numpy.f2py as f2py2e;f2py2e.main()" %s' % \
++ (sys.executable, args)
++ s, o = exec_command(c)
++ finally:
++ f.close()
+ return s
+
+ from numpy.testing import Tester
+diff --git a/numpy/f2py/f2py2e.py b/numpy/f2py/f2py2e.py
+index ff9d19e..25407d4 100755
+--- a/numpy/f2py/f2py2e.py
++++ b/numpy/f2py/f2py2e.py
+@@ -91,7 +91,7 @@ Options:
+ --lower is assumed with -h key, and --no-lower without -h key.
+
+ --build-dir <dirname> All f2py generated files are created in <dirname>.
+- Default is tempfile.mktemp().
++ Default is tempfile.mkdtemp().
+
+ --overwrite-signature Overwrite existing signature file.
+
+@@ -424,7 +424,7 @@ def run_compile():
+ del sys.argv[i]
+ else:
+ remove_build_dir = 1
+- build_dir = os.path.join(tempfile.mktemp())
++ build_dir = tempfile.mkdtemp()
+
+ _reg1 = re.compile(r'[-][-]link[-]')
+ sysinfo_flags = [_m for _m in sys.argv[1:] if _reg1.match(_m)]
+commit 524b9eaa33ec67e34eb31a208e02bb934f778096
+Author: Julian Taylor <jtaylor.debian@googlemail.com>
+Date: Sat Feb 8 11:55:36 2014 +0100
+
+ TST: fix test_io.TestSavezLoad
+
+diff --git a/numpy/lib/tests/test_io.py b/numpy/lib/tests/test_io.py
+index 2ee5c83..8995fad 100644
+--- a/numpy/lib/tests/test_io.py
++++ b/numpy/lib/tests/test_io.py
+@@ -187,7 +187,7 @@ class TestSavezLoad(RoundtripTest, TestCase):
+ L = (1 << 31) + 100000
+ a = np.empty(L, dtype=np.uint8)
+ with tempdir() as tmpdir:
+- tmp = open(os.path.join(tmpdir, "file.npz"), "w")
++ tmp = os.path.join(tmpdir, "file.npz")
+ np.savez(tmp, a=a)
+ del a
+ npfile = np.load(tmp)
+commit 8296aa0b911c036c984e23665ee0f7ddca579b91
+Author: Julian Taylor <jtaylor.debian@googlemail.com>
+Date: Sat Feb 8 13:40:26 2014 +0100
+
+ TST: clean up tempfile in test_closing_zipfile_after_load
+
+diff --git a/numpy/lib/tests/test_io.py b/numpy/lib/tests/test_io.py
+index 2ee5c83..6aae3d2 100644
+--- a/numpy/lib/tests/test_io.py
++++ b/numpy/lib/tests/test_io.py
+@@ -295,13 +295,14 @@ class TestSavezLoad(RoundtripTest, TestCase):
+ # Check that zipfile owns file and can close it.
+ # This needs to pass a file name to load for the
+ # test.
+- fd, tmp = mkstemp(suffix='.npz')
+- os.close(fd)
+- np.savez(tmp, lab='place holder')
+- data = np.load(tmp)
+- fp = data.zip.fp
+- data.close()
+- assert_(fp.closed)
++ with tempdir() as tmpdir:
++ fd, tmp = mkstemp(suffix='.npz', dir=tmpdir)
++ os.close(fd)
++ np.savez(tmp, lab='place holder')
++ data = np.load(tmp)
++ fp = data.zip.fp
++ data.close()
++ assert_(fp.closed)
+
+
+ class TestSaveTxt(TestCase):
diff --git a/extra/spamassassin/PKGBUILD b/extra/spamassassin/PKGBUILD
index d5699b83e..1b527bd5c 100644
--- a/extra/spamassassin/PKGBUILD
+++ b/extra/spamassassin/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 187368 2013-06-05 15:55:32Z bluewind $
+# $Id: PKGBUILD 205860 2014-02-11 21:25:20Z bluewind $
# Maintainer: Florian Pritz <bluewind@xinu.at>
# Contributor: Dale Blount <dale@archlinux.org>
# Contributor: Manolis Tzanidakis
pkgname=spamassassin
-pkgver=3.3.2
-pkgrel=9
+pkgver=3.4.0
+pkgrel=1
pkgdesc="A mail filter to identify spam."
arch=('i686' 'x86_64')
license=('APACHE')
@@ -21,18 +21,18 @@ backup=('etc/mail/spamassassin/local.cf'
'etc/mail/spamassassin/v320.pre'
'etc/mail/spamassassin/v330.pre')
install="${pkgname}.install"
-options=('!emptydirs')
-source=("http://mirrors.devlib.org/apache/${pkgname}/source/Mail-SpamAssassin-${pkgver}.tar.gz"
- 'spamassassin.service'
- 'perl-5.18-fixes.patch')
-md5sums=('d1d62cc5c6eac57e88c4006d9633b81e'
- 'b8dcea016fb73b074b941e832cfae5c9'
- '6cf63928eeeaea25967c2ffd875d106a')
+source=("http://www.us.apache.org/dist/${pkgname}/source/Mail-SpamAssassin-${pkgver}.tar.gz"{,.asc}
+ 'spamassassin.service')
+md5sums=('5d0b50cee3bfa905cca35c33296c8c2a'
+ 'SKIP'
+ 'd0ce5f8a02fd74dbc83632f4aaec6185')
prepare() {
cd "${srcdir}/Mail-SpamAssassin-${pkgver}"
- patch -p0 -d lib -i "$srcdir/perl-5.18-fixes.patch"
+ sed -i t/sa_compile.t \
+ -e 's#/foo/bin/spamassassin#/foo/bin/site_perl/spamassassin#' \
+ -e 's#/foo/bin/sa-compile#/foo/bin/site_perl/sa-compile#'
}
build() {
@@ -47,9 +47,6 @@ build() {
check() {
cd "${srcdir}/Mail-SpamAssassin-${pkgver}"
- # SSLv2 is disabled by upstream so this test would fail
- rm -rf t/spamd_ssl_v2.t
-
# parallel tests cause lots of failures; disable for now
#export HARNESS_OPTIONS="j$(echo $MAKEFLAGS | sed 's/.*-j\([0-9][0-9]*\).*/\1/')"
@@ -61,4 +58,5 @@ package() {
make DESTDIR="${pkgdir}" install
install -D -m644 "${srcdir}/spamassassin.service" "${pkgdir}/usr/lib/systemd/system/spamassassin.service"
+ install -d -o 182 -g 182 -m 755 "$pkgdir/var/lib/spamassassin"
}
diff --git a/extra/spamassassin/perl-5.18-fixes.patch b/extra/spamassassin/perl-5.18-fixes.patch
deleted file mode 100644
index 74277fc8b..000000000
--- a/extra/spamassassin/perl-5.18-fixes.patch
+++ /dev/null
@@ -1,97 +0,0 @@
---- Mail/SpamAssassin/AsyncLoop.pm~ 2011-06-07 01:59:17.000000000 +0200
-+++ Mail/SpamAssassin/AsyncLoop.pm 2013-05-29 01:37:58.000000000 +0200
-@@ -361,5 +361,12 @@
- $now = time; # capture new timestamp, after possible sleep in 'select'
-
-- while (my($key,$ent) = each %$pending) {
-+ # A callback routine may generate another DNS query, which may insert
-+ # an entry into the %$pending hash thus invalidating the each() context.
-+ # So, make sure that callbacks are not called while the each() context
-+ # is open, or avoid using each(). [Bug 6937]
-+ #
-+ # while (my($key,$ent) = each %$pending) {
-+ foreach my $key (keys %$pending) {
-+ my $ent = $pending->{$key};
- my $id = $ent->{id};
- if (defined $ent->{poll_callback}) { # call a "poll_callback" if exists
-@@ -449,5 +456,6 @@
- my $foundcnt = 0;
- my $now = time;
-- while (my($key,$ent) = each %$pending) {
-+ foreach my $key (keys %$pending) {
-+ my $ent = $pending->{$key};
- dbg("async: aborting after %.3f s, %s: %s",
- $now - $ent->{start_time},
---- Mail/SpamAssassin/Conf/Parser.pm~ 2011-06-07 01:59:17.000000000 +0200
-+++ Mail/SpamAssassin/Conf/Parser.pm 2013-05-29 01:32:06.000000000 +0200
-@@ -1249,5 +1249,5 @@
- my $mods = '';
- local ($1,$2);
-- if ($re =~ s/^m{//) {
-+ if ($re =~ s/^m\{//) {
- $re =~ s/}([a-z]*)$//; $mods = $1;
- }
---- Mail/SpamAssassin/DnsResolver.pm~ 2011-06-07 01:59:17.000000000 +0200
-+++ Mail/SpamAssassin/DnsResolver.pm 2013-05-29 01:32:06.000000000 +0200
-@@ -441,8 +441,14 @@
- if (!defined($timeout) || $timeout > 0)
- { $timer = $self->{main}->time_method("poll_dns_idle") }
-+ $! = 0;
- ($nfound, $timeleft) = select($rout=$rin, undef, undef, $timeout);
- }
- if (!defined $nfound || $nfound < 0) {
-- warn "dns: select failed: $!";
-+ if ($!) { warn "dns: select failed: $!\n" }
-+ else { info("dns: select interrupted") }
-+ return;
-+ } elsif (!$nfound) {
-+ if (!defined $timeout) { warn("dns: select returned empty-handed\n") }
-+ elsif ($timeout > 0) { dbg("dns: select timed out %.3f s", $timeout) }
- return;
- }
---- Mail/SpamAssassin/Message.pm~ 2011-06-07 01:59:17.000000000 +0200
-+++ Mail/SpamAssassin/Message.pm 2013-05-29 01:32:06.000000000 +0200
-@@ -567,5 +567,5 @@
- # bug 5557: windows requires tmp file be closed before it can be rm'd
- if (ref $part->{'raw'} eq 'GLOB') {
-- close($part->{'raw'}) or die "error closing input file: $!";
-+ close($part->{'raw'}) or warn "error closing input file: $!";
- }
-
---- Mail/SpamAssassin/PerMsgStatus.pm~ 2011-06-07 01:59:17.000000000 +0200
-+++ Mail/SpamAssassin/PerMsgStatus.pm 2013-05-29 01:32:06.000000000 +0200
-@@ -421,6 +421,6 @@
- }
-
-- # ignore tests with 0 score in this scoreset
-- next if ($scores->{$test} == 0);
-+ # ignore tests with 0 score (or undefined) in this scoreset
-+ next if !$scores->{$test};
-
- # Go ahead and add points to the proper locations
-@@ -1253,11 +1253,10 @@
- my $line = '';
- foreach my $test (sort @{$self->{test_names_hit}}) {
-- if (!$line) {
-- $line .= $test . "=" . $self->{conf}->{scores}->{$test};
-- } else {
-- $line .= $arg . $test . "=" . $self->{conf}->{scores}->{$test};
-- }
-+ my $score = $self->{conf}->{scores}->{$test};
-+ $score = '0' if !defined $score;
-+ $line .= $arg if $line ne '';
-+ $line .= $test . "=" . $score;
- }
-- $line ? $line : 'none';
-+ $line ne '' ? $line : 'none';
- },
-
---- Mail/SpamAssassin/Util.pm~ 2013-05-29 01:29:59.000000000 +0200
-+++ Mail/SpamAssassin/Util.pm 2013-05-29 01:33:16.000000000 +0200
-@@ -1588,5 +1588,5 @@
- return undef; # invalid
- }
-- elsif ($re =~ s/^m{//) { # m{foo/bar}
-+ elsif ($re =~ s/^m\{//) { # m{foo/bar}
- $delim = '}';
- }
diff --git a/extra/spamassassin/spamassassin.install b/extra/spamassassin/spamassassin.install
index e43453e97..cca20782d 100644
--- a/extra/spamassassin/spamassassin.install
+++ b/extra/spamassassin/spamassassin.install
@@ -1,11 +1,38 @@
+setup_user() {
+ getent group spamd &>/dev/null || groupadd -g 182 spamd >/dev/null
+ getent passwd spamd &>/dev/null || useradd -u 182 -d /var/lib/spamassassin -g spamd -s /bin/false spamd >/dev/null
+
+ if [[ -d /var/lib/spamassassin ]]; then
+ chown spamd:spamd /var/lib/spamassassin
+ fi
+
+ true
+}
+
post_install() {
- echo "You must run 'sa-update' to install spam rules before use."
+ echo "You must run 'sa-update' to install spam rules before use."
+ setup_user
}
post_upgrade() {
- # Compile rules, if rules have previously been compiled, and it's possible
- if type re2c &>/dev/null && type sa-compile &>/dev/null && [[ -d /var/lib/spamassassin/compiled ]]; then
- echo "Detected compiled rules, running sa-compile..."
- sa-compile > /dev/null 2>&1
-fi
+ setup_user
+ if [ "$(vercmp $2 3.4)" -lt 0 ]; then
+ echo '/var/lib/spamassassin is now owned by the spamd user. spamassassin.service'
+ echo 'will also run under that user. You may need to adjust your setup.'
+ fi
+
+ # Compile rules, if rules have previously been compiled, and it's possible
+ if type re2c &>/dev/null && type sa-compile &>/dev/null && [[ -d /var/lib/spamassassin/compiled ]]; then
+ echo "Detected compiled rules, running sa-compile..."
+ sa-compile > /dev/null 2>&1
+ fi
+
+ true
+}
+
+pre_remove() {
+ getent passwd spamd &>/dev/null && userdel spamd >/dev/null
+ getent group spamd &>/dev/null && groupdel spamd >/dev/null
+ true
}
+
diff --git a/extra/spamassassin/spamassassin.service b/extra/spamassassin/spamassassin.service
index e9c9c07fd..6e6b1f35b 100644
--- a/extra/spamassassin/spamassassin.service
+++ b/extra/spamassassin/spamassassin.service
@@ -5,7 +5,7 @@ After=syslog.target network.target
[Service]
Type=forking
PIDFile=/var/run/spamd.pid
-ExecStart=/usr/bin/vendor_perl/spamd -d --pidfile /var/run/spamd.pid -c -c -x --virtual-config-dir=/var/lib/spamassassin -u nobody
+ExecStart=/usr/bin/vendor_perl/spamd -d --pidfile /var/run/spamd.pid -c -c -x --virtual-config-dir=/var/lib/spamassassin -u spamd -g spamd
StandardOutput=syslog
StandardError=syslog
Restart=always