summaryrefslogtreecommitdiff
path: root/libre
diff options
context:
space:
mode:
Diffstat (limited to 'libre')
-rw-r--r--libre/crosstool-ng/PKGBUILD4
-rw-r--r--libre/file-roller-libre/PKGBUILD21
-rw-r--r--libre/file-roller-libre/file-roller.install17
-rw-r--r--libre/file-roller-libre/rePKGBUILD2
-rw-r--r--libre/filesystem/PKGBUILD6
-rw-r--r--libre/foomatic/PKGBUILD5
-rw-r--r--libre/grub/PKGBUILD5
-rw-r--r--libre/grub2/PKGBUILD27
-rw-r--r--libre/grub2/archlinux_grub2_mkconfig_fixes.patch130
-rw-r--r--libre/grub2/archlinux_grub_mkconfig_fixes.patch141
-rw-r--r--libre/grub2/grub-install.fix11
-rw-r--r--libre/grub2/grub.cfg4
-rw-r--r--libre/grub2/parabola_grub_mkconfig_fixes.patch20
-rw-r--r--libre/gstreamer0.10-bad-libre/PKGBUILD4
-rw-r--r--libre/iceweasel-i18n/PKGBUILD172
-rw-r--r--libre/iceweasel-libre/PKGBUILD21
-rw-r--r--libre/iceweasel-libre/gcc47.patch75
-rw-r--r--libre/iceweasel-libre/libre.patch28
-rw-r--r--libre/iceweasel-libre/mozconfig2
-rw-r--r--libre/initscripts/PKGBUILD13
-rw-r--r--libre/kdebase-konqueror-libre/PKGBUILD4
-rw-r--r--libre/kdelibs-libre/PKGBUILD6
-rw-r--r--libre/kdenetwork-libre/PKGBUILD19
-rw-r--r--libre/kdenetwork-libre/gcc47.patch59
-rw-r--r--libre/kdeutils-ark-libre/PKGBUILD6
-rw-r--r--libre/liferea-libre/PKGBUILD8
-rw-r--r--libre/lilo/.directory2
-rw-r--r--libre/lilo/PKGBUILD5
-rw-r--r--libre/linux-libre-api-headers/PKGBUILD21
-rw-r--r--libre/linux-libre-lts/.directory2
-rw-r--r--libre/linux-libre-lts/CVE-2012-0056.patch269
-rw-r--r--libre/linux-libre-lts/PKGBUILD21
-rw-r--r--libre/linux-libre-lts/config.i686155
-rw-r--r--libre/linux-libre-lts/config.x86_64107
-rw-r--r--libre/linux-libre-lts/linux-libre-lts.install2
-rw-r--r--libre/linux-libre-lts/linux-libre-lts.preset2
-rw-r--r--libre/linux-libre-tools/PKGBUILD8
-rw-r--r--libre/linux-libre-tools/cpupower.rc2
-rw-r--r--libre/linux-libre/CVE-2012-0056.patch268
-rw-r--r--libre/linux-libre/ChangeLog11
-rw-r--r--libre/linux-libre/PKGBUILD19
-rw-r--r--libre/linux-libre/config.i686163
-rw-r--r--libre/linux-libre/config.x86_64117
-rw-r--r--libre/linux-libre/dib0700-fix.patch1487
-rw-r--r--libre/linux-libre/fix-i915.patch26
-rw-r--r--libre/linux-libre/i915-fix-incorrect-error-message.patch22
-rw-r--r--libre/linux-libre/i915-gpu-finish.patch55
-rw-r--r--libre/linux-libre/iwlagn-fix-NULL-pointer-dereference.patch38
-rw-r--r--libre/linux-libre/linux-libre.install2
-rw-r--r--libre/linux-libre/linux-libre.preset2
-rw-r--r--libre/linux-libre/md-raid10-fix-bug-when-activating-a-hot-spare.patch40
-rw-r--r--libre/linux-libre/usb-add-reset-resume-quirk-for-several-webcams.patch99
-rw-r--r--libre/luxrays-libre/PKGBUILD11
-rw-r--r--libre/luxrender-libre/PKGBUILD12
-rw-r--r--libre/mariadb/PKGBUILD141
-rw-r--r--libre/mariadb/mariadb.install26
-rwxr-xr-xlibre/mariadb/mariadbd77
-rw-r--r--libre/mariadb/my.cnf145
-rw-r--r--libre/mariadb/mysql.install26
-rw-r--r--libre/mariadb/mysqld77
-rw-r--r--libre/parabola-archiso-git/PKGBUILD45
-rw-r--r--libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch61
-rw-r--r--libre/python2-libre/PKGBUILD19
-rw-r--r--libre/python2-libre/gdbm-magic-values.patch2
-rw-r--r--libre/python2-libre/linux2.patch1
-rw-r--r--libre/seamonkey-libre/PKGBUILD20
-rw-r--r--libre/seamonkey-libre/clrf.patch265
-rw-r--r--libre/seamonkey-libre/gcc47.patch39
-rw-r--r--libre/seamonkey-libre/mozconfig3
m---------libre/systemd0
-rw-r--r--libre/texlive-bin-libre/PKGBUILD9
-rw-r--r--libre/thunderbird-libre/.directory2
-rw-r--r--libre/thunderbird-libre/PKGBUILD30
-rw-r--r--libre/thunderbird-libre/clrf.patch114
-rw-r--r--libre/thunderbird-libre/gcc46.patch12
-rw-r--r--libre/thunderbird-libre/gcc47.patch46
-rw-r--r--libre/thunderbird-libre/gnuzilla-addons.patch36
-rw-r--r--libre/thunderbird-libre/libvpx.patch12
-rw-r--r--libre/thunderbird-libre/mozilla-notify.patch12
-rw-r--r--libre/thunderbird-libre/python2.7.patch11
-rw-r--r--libre/thunderbird-libre/searchplugins-libre.patch144
-rw-r--r--libre/thunderbird-libre/thunderbird-appversion.patch12
-rw-r--r--libre/thunderbird-libre/thunderbird-preferences.patch30
-rw-r--r--libre/thunderbird-libre/thunderbird-shared-error.patch15
-rw-r--r--libre/thunderbird-libre/xulrunner-png14.patch11
-rw-r--r--libre/unarchiver/PKGBUILD27
-rw-r--r--libre/ununrar/PKGBUILD4
-rw-r--r--libre/virtualbox-libre/PKGBUILD10
-rw-r--r--libre/virtualbox-modules-lts/60-vboxguest.rules2
-rw-r--r--libre/virtualbox-modules-lts/LocalConfig.kmk19
-rw-r--r--libre/virtualbox-modules-lts/PKGBUILD101
-rw-r--r--libre/virtualbox-modules-lts/virtualbox-modules-lts.install18
-rw-r--r--libre/virtualbox-modules-lts/virtualbox-parabola-modules-lts.install16
-rw-r--r--libre/virtualbox-modules/PKGBUILD15
-rw-r--r--libre/xulrunner-libre/PKGBUILD102
-rw-r--r--libre/xulrunner-libre/gcc47.patch77
-rw-r--r--libre/xulrunner-libre/mozconfig38
-rw-r--r--libre/xulrunner-libre/mozilla-pkgconfig.patch40
98 files changed, 2539 insertions, 3151 deletions
diff --git a/libre/crosstool-ng/PKGBUILD b/libre/crosstool-ng/PKGBUILD
index 5341fa6f5..bfb9c430b 100644
--- a/libre/crosstool-ng/PKGBUILD
+++ b/libre/crosstool-ng/PKGBUILD
@@ -2,7 +2,7 @@
# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
pkgname=crosstool-ng
-pkgver=1.13.2
+pkgver=1.14.1
pkgrel=1
pkgdesc="A versatile cross toolchain generator (eglibc addons patch)"
arch=('i686' 'x86_64')
@@ -26,4 +26,4 @@ package() {
cd $srcdir/$pkgname-$pkgver
make DESTDIR=$pkgdir install
}
-md5sums=('749cf70568ad07d1b13fdcd25b163553')
+md5sums=('1e8e723df67c643ebdd529990607d5bf')
diff --git a/libre/file-roller-libre/PKGBUILD b/libre/file-roller-libre/PKGBUILD
index cfd053a4c..c5c343265 100644
--- a/libre/file-roller-libre/PKGBUILD
+++ b/libre/file-roller-libre/PKGBUILD
@@ -1,14 +1,15 @@
-# $Id: PKGBUILD 124730 2011-05-24 07:10:29Z ibiru $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
+# $Id: PKGBUILD 156381 2012-04-17 20:08:15Z ibiru $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=file-roller
pkgname=file-roller-libre
-pkgver=3.2.2
+pkgver=3.4.1
pkgrel=1
pkgdesc="Archive manipulator for GNOME"
arch=('i686' 'x86_64')
license=('GPL')
-depends=('desktop-file-utils' 'gtk3' 'hicolor-icon-theme' 'dconf' 'nautilus')
+depends=('desktop-file-utils' 'gtk3' 'hicolor-icon-theme' 'dconf')
makedepends=('intltool' 'gnome-doc-utils' 'pkg-config' 'nautilus' 'libsm')
optdepends=('ununrar: interface to unarchiver, the free RAR uncompression program'
'zip: creates PKZIP-compatible .zip files'
@@ -23,19 +24,19 @@ conflicts=("$_pkgname")
options=('!libtool' '!emptydirs')
install=file-roller.install
url="http://www.gnome.org"
-source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
-sha256sums=('de2c93e947f7aabf46124d6384b358c162a7ee1236e4930f2486684979d5ebe5')
+source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver%.*}/$_pkgname-$pkgver.tar.xz)
+sha256sums=('94600d880ce65ab171a174a83519e4911f570fd000c33497b4805100029ebd8b')
build() {
- cd "${srcdir}/${_pkgname}-${pkgver}"
+ cd $_pkgname-$pkgver
./configure --prefix=/usr --sysconfdir=/etc \
--libexecdir=/usr/lib/file-roller \
--localstatedir=/var --disable-static \
- --disable-scrollkeeper --disable-schemas-compile
+ --disable-schemas-compile
make
}
package() {
- cd "${srcdir}/${_pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
+ cd $_pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
}
diff --git a/libre/file-roller-libre/file-roller.install b/libre/file-roller-libre/file-roller.install
index 10a148241..8b17fa3d4 100644
--- a/libre/file-roller-libre/file-roller.install
+++ b/libre/file-roller-libre/file-roller.install
@@ -1,22 +1,13 @@
-pkgname=file-roller
-
post_install() {
- glib-compile-schemas usr/share/glib-2.0/schemas
+ glib-compile-schemas /usr/share/glib-2.0/schemas
update-desktop-database -q
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
-}
-
-pre_upgrade() {
- if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
- usr/sbin/gconfpkg --uninstall ${pkgname}
- fi
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
}
post_upgrade() {
- post_install $1
+ post_install
}
-
post_remove() {
- post_install $1
+ post_install
}
diff --git a/libre/file-roller-libre/rePKGBUILD b/libre/file-roller-libre/rePKGBUILD
index d94638df2..a83d218f1 100644
--- a/libre/file-roller-libre/rePKGBUILD
+++ b/libre/file-roller-libre/rePKGBUILD
@@ -3,7 +3,7 @@ source PKGBUILD
#CARCH=x86_64
unset build package md5sums source
_repo=extra # Put the repo here
-_mirror=ftp://ftp.archlinux.org # Put mirror here
+_mirror=http://mirrors.kernel.org/archlinux # Put mirror here
source=(PKGBUILD
"${_mirror}/${_repo}/os/${CARCH}/${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT"
# files for pkg modifications below this line
diff --git a/libre/filesystem/PKGBUILD b/libre/filesystem/PKGBUILD
index 90b39d121..94d5390ab 100644
--- a/libre/filesystem/PKGBUILD
+++ b/libre/filesystem/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 155345 2012-04-01 23:43:12Z tomegun $
+# $Id: PKGBUILD 158070 2012-05-02 11:53:48Z tomegun $
# Maintainer: Tom Gundersen <teg@jklm.no>
# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
pkgname=filesystem
pkgver=2012.2
-pkgrel=4
+pkgrel=5
pkgdesc='Base filesystem for Parabola'
arch=('any')
license=('GPL')
@@ -43,7 +43,7 @@ package() {
#
# setup root filesystem
#
- for d in bin boot dev etc home lib/modules media mnt sbin usr var opt srv/http sys run; do
+ for d in bin boot dev etc home media mnt sbin usr var opt srv/http sys run; do
install -d -m755 ${d}
done
install -d -m555 proc
diff --git a/libre/foomatic/PKGBUILD b/libre/foomatic/PKGBUILD
index bd5f8da17..5446bb579 100644
--- a/libre/foomatic/PKGBUILD
+++ b/libre/foomatic/PKGBUILD
@@ -60,7 +60,7 @@ package_foomatic-filters-libre() {
optdepends=('perl: for the "beh" Backend End Handler used by cups'
'net-snmp: certain (mostly HP) printers need it to work')
- cd ${srcdir}/foomatic-filters-${_filtersver}
+ cd ${srcdir}/${pkgname}-${_filtersver}
./configure --prefix=/usr --sysconfdir=/etc
make
make DESTDIR=${pkgdir} install
@@ -87,3 +87,6 @@ package_foomatic-db-engine() {
}
+md5sums=('957a07820f47804ce76dbb59cd79cd1b'
+ '5283cd5125a96dc0b35d896326512b1a'
+ 'ccb72c201e14bfc5eb23ea839ecc0623')
diff --git a/libre/grub/PKGBUILD b/libre/grub/PKGBUILD
index 29870d611..bc0480e6b 100644
--- a/libre/grub/PKGBUILD
+++ b/libre/grub/PKGBUILD
@@ -5,7 +5,7 @@
pkgname=grub
pkgver=0.97
-pkgrel=21
+pkgrel=21.1
pkgdesc="A GNU multiboot boot loader (Parabola rebranded)"
arch=('i686' 'x86_64')
license=('GPL')
@@ -13,9 +13,6 @@ url="http://www.gnu.org/software/grub/"
groups=('base')
depends=('ncurses' 'diffutils' 'sed')
optdepends=('xfsprogs: freezing of xfs /boot in install-grub script')
-replaces=('grub')
-conflicts=('grub')
-provides=("grub=$pkgver")
source=(ftp://alpha.gnu.org/gnu/grub/grub-$pkgver.tar.gz
menu.lst
install-grub
diff --git a/libre/grub2/PKGBUILD b/libre/grub2/PKGBUILD
index df7449cba..a5051900f 100644
--- a/libre/grub2/PKGBUILD
+++ b/libre/grub2/PKGBUILD
@@ -2,8 +2,8 @@
# Contributor: Keshav P R <(the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
-_grub_bzr_rev="4169"
-_pkgver="2.00~beta3"
+_grub_bzr_rev="4232"
+_pkgver="2.00~beta4"
_grub_lua_ver=24
_grub_gpxe_ver=12
@@ -12,8 +12,8 @@ _grub_915_ver=9
pkgname=('grub2-common' 'grub2-bios' 'grub2-efi-i386')
pkgbase=grub2
-pkgver=2.00beta3
-pkgrel=1.1
+pkgver=2.00beta4
+pkgrel=1
url="http://www.gnu.org/software/grub/"
arch=('i686' 'x86_64')
license=('GPL3')
@@ -30,23 +30,24 @@ source=("http://alpha.gnu.org/gnu/grub/grub-${_pkgver}".tar.xz
'parabola_grub_mkconfig_fixes.patch'
'grub.default'
'grub.cfg'
- '20_memtest86+')
+ '20_memtest86+'
+ 'grub-install.fix')
noextract=("grub2_extras_lua_r${_grub_lua_ver}.tar.xz"
"grub2_extras_gpxe_r${_grub_gpxe_ver}.tar.xz"
"grub2_extras_ntldr-img_r${_grub_ntldr_ver}.tar.xz"
"grub2_extras_915resolution_r${_grub_915_ver}.tar.xz")
-sha1sums=('96bfdf4d53767faaf2c744ee82d4d703e4b672a2'
+sha1sums=('72d7f46a67dd7e958105e7faac72e646ef6e9f11'
'89290031b974780c6df76893836d2477d4add895'
'b04994c005910b4bf123f034b30109d5c8d6fd86'
'eb4b35b4c36b64f9405cbcbc538cb205171c1c0a'
'd5ae2efec25616028a9d89e98b6e454f1c4c415f'
- 'bf8e692c3920f0cf125ee77f14b8432133cae84d'
+ '31aa740fc225b3f3ed4917843038f9e8658a71be'
'348b148d5183825f31a3d24a7ebf2d6a709f4e6a'
- '6f0870673b9f994163326a416432aee7eacdbfc5'
- 'ce35d7ae75cd1b5b677e894e528f96add40e77b9')
-
+ '9735043d518e16f147f64ef283eceb2549fed860'
+ 'ce35d7ae75cd1b5b677e894e528f96add40e77b9'
+ '4ff0e12e65fb1d4d3f2a16e82eaaa43940b7dde7')
_build_grub2-common_and_bios() {
## copy the source for building the common/bios package
@@ -57,6 +58,10 @@ _build_grub2-common_and_bios() {
patch -Np1 -i "${srcdir}/parabola_grub_mkconfig_fixes.patch"
echo
+ ## upstream grub-install fix
+ ## http://lists.gnu.org/archive/html/help-grub/2012-04/msg00096.html
+ patch -Np0 -i "${srcdir}/grub-install.fix"
+
## add the grub-extra sources
export GRUB_CONTRIB="${srcdir}/grub_bios-${_pkgver}/grub-extras/"
install -d "${srcdir}/grub_bios-${_pkgver}/grub-extras"
@@ -188,7 +193,7 @@ build() {
package_grub2-common() {
- pkgdesc="The GNU GRand Unified Bootloader version 2 - Files common for all platforms"
+ pkgdesc="The GNU GRand Unified Bootloader version 2 - Files common for all platforms (Parabola rebranded)"
depends=('xz' 'freetype2' 'gettext' 'device-mapper' 'fuse' 'sh')
conflicts=('grub')
backup=('boot/grub/grub.cfg' 'etc/default/grub' 'etc/grub.d/40_custom')
diff --git a/libre/grub2/archlinux_grub2_mkconfig_fixes.patch b/libre/grub2/archlinux_grub2_mkconfig_fixes.patch
deleted file mode 100644
index ef4b10ee6..000000000
--- a/libre/grub2/archlinux_grub2_mkconfig_fixes.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
-index 859c2e8..c754dd7 100644
---- a/util/grub-mkconfig.in
-+++ b/util/grub-mkconfig.in
-@@ -242,6 +242,8 @@ export GRUB_DEFAULT \
- GRUB_THEME \
- GRUB_GFXPAYLOAD_LINUX \
- GRUB_DISABLE_OS_PROBER \
-+ GRUB_COLOR_NORMAL \
-+ GRUB_COLOR_HIGHLIGHT \
- GRUB_INIT_TUNE \
- GRUB_SAVEDEFAULT \
- GRUB_ENABLE_CRYPTODISK \
-diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in
-index d9bcc15..a93dcb7 100644
---- a/util/grub.d/00_header.in
-+++ b/util/grub.d/00_header.in
-@@ -100,6 +100,14 @@ cat <<EOF
-
- EOF
-
-+if [ x$GRUB_COLOR_NORMAL != x ] && [ x$GRUB_COLOR_HIGHLIGHT != x ] ; then
-+ cat << EOF
-+set menu_color_normal=$GRUB_COLOR_NORMAL
-+set menu_color_highlight=$GRUB_COLOR_HIGHLIGHT
-+
-+EOF
-+fi
-+
- serial=0;
- gfxterm=0;
- for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
-diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
-index bc738f2..a6ab326 100644
---- a/util/grub.d/10_linux.in
-+++ b/util/grub.d/10_linux.in
-@@ -31,8 +31,8 @@ CLASS="--class gnu-linux --class gnu --class os"
- if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
- OS=GNU/Linux
- else
-- OS="${GRUB_DISTRIBUTOR} GNU/Linux"
-- CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}"
-+ OS="${GRUB_DISTRIBUTOR}"
-+ CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | tr -d ' ') ${CLASS}"
- fi
-
- # loop-AES arranges things so that /dev/loop/X can be our root device, but
-@@ -48,7 +48,7 @@ if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue"
- || uses_abstraction "${GRUB_DEVICE}" lvm; then
- LINUX_ROOT_DEVICE=${GRUB_DEVICE}
- else
-- LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
-+ LINUX_ROOT_DEVICE="/dev/disk/by-uuid/${GRUB_DEVICE_UUID}"
- fi
-
- if [ "x`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2>/dev/null || true`" = xbtrfs ]; then
-@@ -65,7 +65,9 @@ linux_entry ()
- version="$2"
- recovery="$3"
- args="$4"
-- if ${recovery} ; then
-+ if [ -n "$5" ] ; then
-+ title="$(gettext_quoted "%s, with Linux %s") $5"
-+ elif ${recovery} ; then
- title="$(gettext_quoted "%s, with Linux %s (recovery mode)")"
- else
- title="$(gettext_quoted "%s, with Linux %s")"
-@@ -113,7 +115,9 @@ EOF
- fi
- printf '%s\n' "${prepare_boot_cache}"
- fi
-+
- message="$(gettext_printf "Loading Linux %s ..." ${version})"
-+
- cat << EOF
- echo '$message'
- linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
-@@ -132,11 +136,11 @@ EOF
-
- case x`uname -m` in
- xi?86 | xx86_64)
-- list=`for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do
-+ list=`for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* /boot/vmlinuz26-* ; do
- if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
- done` ;;
- *)
-- list=`for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do
-+ list=`for i in /boot/vmlinuz* /boot/vmlinux* /vmlinuz* /vmlinux* /boot/kernel-* ; do
- if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
- done` ;;
- esac
-@@ -151,16 +155,19 @@ while [ "x$list" != "x" ] ; do
- dirname=`dirname $linux`
- rel_dirname=`make_system_path_relative_to_its_root $dirname`
- version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
-- alt_version=`echo $version | sed -e "s,\.old$,,g"`
-+ base_init=`echo $basename | sed -e "s,vmlinuz,initramfs,g"`
-+ alt_version="${base_init}-fallback"
- linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
-
- initrd=
-+
- for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
- "initrd-${version}" "initramfs-${version}.img" \
- "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
- "initrd-${alt_version}" "initramfs-${alt_version}.img" \
- "initramfs-genkernel-${version}" \
-- "initramfs-genkernel-${alt_version}"; do
-+ "initramfs-genkernel-${alt_version}" \
-+ "${basename/vmlinuz/initramfs}.img" "${basename/vmlinuz/kernel}.img"; do
- if test -e "${dirname}/${i}" ; then
- initrd="$i"
- break
-@@ -190,6 +197,16 @@ while [ "x$list" != "x" ] ; do
-
- linux_entry "${OS}" "${version}" false \
- "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
-+ for i in "initramfs-${version}-fallback.img" \
-+ "${basename/vmlinuz/initramfs}-fallback.img" "${basename/vmlinuz/kernel}-fallback.img"; do
-+ if test -e "${dirname}/${i}"; then
-+ initrd="$i"
-+ linux_entry "${OS}" "${version}" true \
-+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" Fallback
-+ break
-+ fi
-+ done
-+
- if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
- linux_entry "${OS}" "${version}" true \
- "single ${GRUB_CMDLINE_LINUX}"
diff --git a/libre/grub2/archlinux_grub_mkconfig_fixes.patch b/libre/grub2/archlinux_grub_mkconfig_fixes.patch
deleted file mode 100644
index 4b4cba92a..000000000
--- a/libre/grub2/archlinux_grub_mkconfig_fixes.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
-index df3b733..65a7fff 100644
---- a/util/grub-mkconfig.in
-+++ b/util/grub-mkconfig.in
-@@ -213,6 +213,8 @@ export GRUB_DEFAULT \
- GRUB_THEME \
- GRUB_GFXPAYLOAD_LINUX \
- GRUB_DISABLE_OS_PROBER \
-+ GRUB_COLOR_NORMAL \
-+ GRUB_COLOR_HIGHLIGHT \
- GRUB_INIT_TUNE \
- GRUB_SAVEDEFAULT \
- GRUB_ENABLE_CRYPTODISK \
-diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in
-index 765bfdc..b148558 100644
---- a/util/grub.d/00_header.in
-+++ b/util/grub.d/00_header.in
-@@ -115,6 +115,14 @@ cat <<EOF
-
- EOF
-
-+if [ x$GRUB_COLOR_NORMAL != x ] && [ x$GRUB_COLOR_HIGHLIGHT != x ] ; then
-+ cat << EOF
-+set menu_color_normal=$GRUB_COLOR_NORMAL
-+set menu_color_highlight=$GRUB_COLOR_HIGHLIGHT
-+
-+EOF
-+fi
-+
- serial=0;
- gfxterm=0;
- for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
-diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
-index 8c75fab..0d4a137 100644
---- a/util/grub.d/10_linux.in
-+++ b/util/grub.d/10_linux.in
-@@ -87,6 +87,8 @@ linux_entry ()
- case $type in
- recovery)
- title="$(gettext_printf "%s, with Linux %s (recovery mode)" "${os}" "${version}")" ;;
-+ fallback)
-+ title="$(gettext_printf "%s, with Linux %s (Fallback initramfs)" "${os}" "${version}")" ;;
- *)
- title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;;
- esac
-@@ -100,7 +102,7 @@ linux_entry ()
- else
- echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
- fi
-- if [ x$type != xrecovery ] ; then
-+ if [ x$type != xrecovery ] && [ x$type != xfallback ] ; then
- save_default_entry | sed -e "s/^/\t/"
- fi
-
-@@ -132,7 +134,8 @@ linux_entry ()
- fi
- printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
- fi
-- message="$(gettext_printf "Loading Linux %s ..." ${version})"
-+
-+ message="$(gettext_printf "Loading Linux %s ..." "${version}")"
- sed "s/^/$submenu_indentation/" << EOF
- echo '$message'
- linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
-@@ -181,13 +184,29 @@ while [ "x$list" != "x" ] ; do
- alt_version=`echo $version | sed -e "s,\.old$,,g"`
- linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
-
-+ if test -e "/etc/arch-release" ; then
-+ if echo "${basename}" | grep -q 'vmlinuz-linux' ; then
-+ version="`echo "${basename}" | sed -e 's,vmlinuz-linux,,g'`"
-+
-+ if [ "x${version}" = "x" ] ; then
-+ version="core repo kernel"
-+ else
-+ version="`echo "${version}" | sed -e 's,-,,g'`"
-+ version="${version} kernel"
-+ fi
-+ fi
-+ fi
-+
- initrd=
-+ initrd_arch="`echo "${basename}" | sed -e 's,vmlinuz,initramfs,g'`"
-+
- for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
- "initrd-${version}" "initramfs-${version}.img" \
- "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
- "initrd-${alt_version}" "initramfs-${alt_version}.img" \
- "initramfs-genkernel-${version}" \
-- "initramfs-genkernel-${alt_version}"; do
-+ "initramfs-genkernel-${alt_version}" \
-+ "${initrd_arch}.img" ; do
- if test -e "${dirname}/${i}" ; then
- initrd="$i"
- break
-@@ -215,6 +234,22 @@ while [ "x$list" != "x" ] ; do
- linux_root_device_thisversion=${GRUB_DEVICE}
- fi
-
-+ if test -e "/etc/arch-release" ; then
-+ is_first_entry="false"
-+
-+ linux_entry "${OS}" "${version}" true \
-+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
-+
-+ for i in "${initrd_arch}-fallback.img" "initramfs-${version}-fallback.img" ; do
-+ if test -e "${dirname}/${i}" ; then
-+ initrd="${i}"
-+ linux_entry "${OS}" "${version}" fallback \
-+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
-+ break
-+ fi
-+ done
-+ fi
-+
- if [ "x$is_first_entry" = xtrue ]; then
- linux_entry "${OS}" "${version}" simple \
- "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
-@@ -228,8 +263,11 @@ while [ "x$list" != "x" ] ; do
- echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
- fi
-
-+ if ! test -e "/etc/arch-release" ; then
- linux_entry "${OS}" "${version}" advanced \
- "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
-+ fi
-+
- if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
- linux_entry "${OS}" "${version}" recovery \
- "single ${GRUB_CMDLINE_LINUX}"
-@@ -241,8 +279,10 @@ done
-
- # If at least one kernel was found, then we need to
- # add a closing '}' for the submenu command.
-+if ! test -e "/etc/arch-release" ; then
- if [ x"$is_first_entry" != xtrue ]; then
- echo '}'
- fi
-+fi
-
- echo "$title_correction_code"
diff --git a/libre/grub2/grub-install.fix b/libre/grub2/grub-install.fix
new file mode 100644
index 000000000..29e74bd44
--- /dev/null
+++ b/libre/grub2/grub-install.fix
@@ -0,0 +1,11 @@
+=== modified file 'grub-core/kern/emu/hostdisk.c'
+--- grub-core/kern/emu/hostdisk.c 2012-04-18 21:48:52 +0000
++++ grub-core/kern/emu/hostdisk.c 2012-04-19 18:35:06 +0000
+@@ -1081,7 +1081,7 @@
+ {
+ int fd;
+ grub_disk_addr_t max = ~0ULL;
+- fd = open_device (disk, sector, O_RDONLY, &max);
++ fd = open_device (disk, sector, O_WRONLY, &max);
+ if (fd < 0)
+ return grub_errno;
diff --git a/libre/grub2/grub.cfg b/libre/grub2/grub.cfg
index 4f5a21991..6e60c70c4 100644
--- a/libre/grub2/grub.cfg
+++ b/libre/grub2/grub.cfg
@@ -69,7 +69,7 @@ set timeout=5
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
-menuentry 'Parabola GNU/Linux-libre, with Linux libre' --class parabolagnu/linux-libre --class gnu-linux --class gnu --class os {
+menuentry 'Parabola GNU/Linux-libre, with Linux libre' --class parabola --class gnu-linux --class gnu --class os {
load_video
set gfxpayload=keep
insmod gzio
@@ -86,7 +86,7 @@ menuentry 'Parabola GNU/Linux-libre, with Linux libre' --class parabolagnu/linux
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux-libre.img
}
-menuentry 'Parabola GNU/Linux-libre, with Linux libre Fallback' --class parabolagnu/linux-libre --class gnu-linux --class gnu --class os {
+menuentry 'Parabola GNU/Linux-libre, with Linux libre Fallback' --class parabola --class gnu-linux --class gnu --class os {
load_video
set gfxpayload=keep
insmod gzio
diff --git a/libre/grub2/parabola_grub_mkconfig_fixes.patch b/libre/grub2/parabola_grub_mkconfig_fixes.patch
index d199dc86a..19022aec6 100644
--- a/libre/grub2/parabola_grub_mkconfig_fixes.patch
+++ b/libre/grub2/parabola_grub_mkconfig_fixes.patch
@@ -1,5 +1,5 @@
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
-index df3b733..65a7fff 100644
+index 516be86..5f37db2 100644
--- a/util/grub-mkconfig.in
+++ b/util/grub-mkconfig.in
@@ -213,6 +213,8 @@ export GRUB_DEFAULT \
@@ -31,7 +31,7 @@ index 765bfdc..b148558 100644
gfxterm=0;
for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
-index 8c75fab..0d4a137 100644
+index 14402e8..64c9bb5 100644
--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -31,7 +31,7 @@
@@ -71,7 +71,7 @@ index 8c75fab..0d4a137 100644
sed "s/^/$submenu_indentation/" << EOF
echo '$message'
linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
-@@ -181,13 +184,29 @@ while [ "x$list" != "x" ] ; do
+@@ -190,7 +193,22 @@ while [ "x$list" != "x" ] ; do
alt_version=`echo $version | sed -e "s,\.old$,,g"`
linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
@@ -94,15 +94,17 @@ index 8c75fab..0d4a137 100644
for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
"initrd-${version}" "initramfs-${version}.img" \
"initrd.img-${alt_version}" "initrd-${alt_version}.img" \
- "initrd-${alt_version}" "initramfs-${alt_version}.img" \
+@@ -198,7 +216,8 @@ while [ "x$list" != "x" ] ; do
"initramfs-genkernel-${version}" \
-- "initramfs-genkernel-${alt_version}"; do
-+ "initramfs-genkernel-${alt_version}" \
+ "initramfs-genkernel-${alt_version}" \
+ "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
+- "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
++ "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}" \
+ "${initrd_arch}.img" ; do
if test -e "${dirname}/${i}" ; then
initrd="$i"
break
-@@ -215,6 +234,22 @@ while [ "x$list" != "x" ] ; do
+@@ -226,6 +245,22 @@ while [ "x$list" != "x" ] ; do
linux_root_device_thisversion=${GRUB_DEVICE}
fi
@@ -125,7 +127,7 @@ index 8c75fab..0d4a137 100644
if [ "x$is_first_entry" = xtrue ]; then
linux_entry "${OS}" "${version}" simple \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
-@@ -228,8 +263,11 @@ while [ "x$list" != "x" ] ; do
+@@ -239,8 +274,11 @@ while [ "x$list" != "x" ] ; do
echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
fi
@@ -137,7 +139,7 @@ index 8c75fab..0d4a137 100644
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
linux_entry "${OS}" "${version}" recovery \
"single ${GRUB_CMDLINE_LINUX}"
-@@ -241,8 +279,10 @@ done
+@@ -252,8 +290,10 @@ done
# If at least one kernel was found, then we need to
# add a closing '}' for the submenu command.
diff --git a/libre/gstreamer0.10-bad-libre/PKGBUILD b/libre/gstreamer0.10-bad-libre/PKGBUILD
index 71e834c3d..c27cf61f9 100644
--- a/libre/gstreamer0.10-bad-libre/PKGBUILD
+++ b/libre/gstreamer0.10-bad-libre/PKGBUILD
@@ -6,7 +6,7 @@
pkgbase=gstreamer0.10-bad-libre
pkgname=('gstreamer0.10-bad-libre' 'gstreamer0.10-bad-libre-plugins')
pkgver=0.10.23
-pkgrel=1
+pkgrel=1.2
arch=('i686' 'x86_64')
license=('LGPL' 'GPL')
makedepends=('pkgconfig' 'gstreamer0.10-base>=0.10.36' 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'neon' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'soundtouch' 'libvdpau' 'schroedinger' 'libass' 'libvpx' 'gsm' 'libgme' 'rtmpdump' 'libsndfile' 'librsvg')
@@ -43,7 +43,7 @@ package_gstreamer0.10-bad-libre-plugins() {
depends=("gstreamer0.10-bad-libre=${pkgver}" 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'neon' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'libvdpau' 'soundtouch' 'libass' 'schroedinger' 'libvpx' 'gsm' 'rtmpdump' 'libgme' 'libsndfile' 'librsvg')
groups=('gstreamer0.10-plugins')
install=gstreamer0.10-bad-plugins.install
- provides=("gstreamer0.10-bad-plugins-libre=$pkgver")
+ provides=("gstreamer0.10-bad-plugins=$pkgver")
conflicts=('gstreamer0.10-bad-plugins')
replaces=('gstreamer0.10-bad-plugins')
diff --git a/libre/iceweasel-i18n/PKGBUILD b/libre/iceweasel-i18n/PKGBUILD
index 0743504ee..aac75c23c 100644
--- a/libre/iceweasel-i18n/PKGBUILD
+++ b/libre/iceweasel-i18n/PKGBUILD
@@ -9,8 +9,8 @@
# - Run 'make'. It will take care of everything else for you.
_debname=iceweasel
-_debver=11.0
-_debrel=2
+_debver=12.0
+_debrel=3
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -56,87 +56,87 @@ package_iceweasel-i18n-$(echo $lang | tr A-Z a-z)() {
"
done
-md5sums=('c11d65787c3f2848e0b582115e50c3ca'
- 'f579bb571a43c33d6a13fd71f7853331'
- '5ec94ba1055f11e8a33674a3ea623fca'
- '7598e4409463c98c6f358a49c0e0e864'
- 'f3a7156974b43a7829e68e82e6dd749a'
- '2cd6d08c82a59cee5454d3da763d9808'
- '3b5529e7d1a6c87e9a99b251bb008b9f'
- 'f1eb67cbc423a49dd4b4f85e1f50034c'
- '76c39cc1134b4074283fe080a1d0b29e'
- '1b282bba90202701fa63fc21b44e78d5'
- '77f818359b98fdd2a23b40989f9f56c6'
- 'cbd8fb3d20a5269ac728c717ebd1d98c'
- '83e2314c8b80d0fd551fa083d89cef70'
- 'e68bed0670b4a82dbd66512e8ca130c7'
- '48ea629311ec141de087474ad95fa122'
- '9c1849045f0004e49c240061358b244f'
- '72bce5d1aa3e6b21f6b7e7b6f2c8d4f2'
- '224a5bb2ee4fdde8cc20e79a70e30eab'
- 'e856bf522ad406c3b17e605a922a149f'
- 'e522dd90baf0fdc61fbd45a496993fed'
- 'adc195bb74d8d84f768ab0077c6c80b2'
- 'a8012c48c890655c1ef1826f900f7cd3'
- 'fad33e552bd6fb805a5c92325c649eff'
- 'cad39ebafc45aad5d32f115fa1839ac0'
- '238fa3a6a33cd30ad2712510cc578baa'
- '5dadee4c8eca35353e811b93a6602860'
- '67c7d7ab47d8cd636d6849f9fda68fe7'
- 'b7cf88fe4b118aea853978c7ff43eb57'
- 'c0aa19616cf37148a7f33789c9e88deb'
- '806a1b78d92c1e6504051f2c6bf2cdcf'
- '92ee27275709f2c81f229f40d032da23'
- '6f7369cff0c0680f52394d9caee7b136'
- '2adba18d2bd10051950f1b37325ddbce'
- 'a2e1834d4b28fa8dea5b8d01adcedb7e'
- '929bfa11831b267b419a1b09b4d614d4'
- 'fe5ea0a2cc3ee9b45618517a2a6cd162'
- '45cd4f3e44046bfdc78848d12a0983f9'
- '7f7681277e566052e6831377b1bcd479'
- 'f136cefdb1b7a8b9fc18cba540414fcc'
- 'e714caf6fc74f9978ca5911310f33f10'
- '7a745b384d1ee293decce327189d49e8'
- '5b22c59215b6ce6d3fd588305a6429f6'
- 'b6f1f722168a7e2dc70b02c199e96198'
- 'e490e5a65c40cd60ba64e4511f1dcef1'
- '640c52cb0b2e4f8ae0d7206fb3db3b33'
- 'a42b31f567dcc8032360caa684df1c08'
- 'd8da0314598179ac5c3479dd397d7827'
- '7e065b66f0673c3801ee7f37ff33344d'
- 'c8c5d1646483013fa249b3a839523e53'
- 'abf1db7ea2e8014e135f324cf3efc141'
- '8a352420c9580fe3c930a4b3c4d3530e'
- '465ca43f628d0567b3de36626b54bf40'
- '6cc860dae180ed5f80916759da290a9d'
- 'b0d97a60501760c78f520ba4151427a7'
- '829311af6d4d0d78378fdcfd2cfccc68'
- 'b54daae60d32b270a44b891fdb61e3b5'
- '39246a00ea31552326d0ea52f8eb1f05'
- 'e49074be0a43ebc9810d89c24de75268'
- '281f20486ae5b6caadfc5504e7f036ac'
- '740c3a38b45788378c6c5db795d31ee1'
- '296df42d755d93032b9a3dc619bc502d'
- '74b59fa4676d2779f8e1081ac253b122'
- 'a92960238a2c942c4b49b0f4187d0a71'
- '230fbd4b3e6a65545b4a37ec1549d0e6'
- 'e606f5a9db88334a6cb33086340f4ff7'
- '0b52b803abe1acb1e137a57fe0497746'
- '00ddf2c8c6adfcd51230dd469d01ec75'
- '254303860ecc7c25157f08a4d55a4f68'
- '70d037f9c5c8f25e2b335c7016f17b58'
- 'b3da484dade70c544d4f0e6a829ef806'
- '05347b208889b3e4aa86d9a6dccda71d'
- 'a2212a06adac1aa6b74bc2f7e9de2af2'
- '371d5e9b0a10feec5e05d3fdfd949bc6'
- '63611b468b7d41a0470385e19a849a8d'
- 'dc691a55cc7f95018e4178e6e794a1a4'
- '90723a80c36b85006fa7514641cd2f2a'
- '918683079f1d037d05a9a38b05d4ca51'
- '77dda2b5fd59bcdb66918b4d13b486ae'
- '33c2d8bff6cdf141614457c71fcf5d36'
- '08990457e150c081e0f505515c15df09'
- '379c5ede369994f016745e7dd83dfe54'
- '15062007856eb66b04c26694a7f35727'
- '569b1a54a9ca0b8149f151eb4cf57957'
- '970928f01c78b094a2c054e58cd85bff')
+md5sums=('fdc26152b54486a948a728661f8ab11e'
+ 'e562af9f01291998b896bc53bf6aba16'
+ '9215e8243093ff847584ea8c7f1c7c83'
+ '3c5beb3d7b098e8c2fab538572025833'
+ '8e8f4c702dcf2fcbc674074d773fbd19'
+ '6325201c0f037e2b04f3b05bb0ed5d1e'
+ '3b1981500fb29c75ce133e0788a8b047'
+ '4fc0f63f4502a5199a22df393e1be70a'
+ 'ae4e5d00352af74772667747196b042d'
+ 'bc1c8e7c5f204190ea218c29401db904'
+ '8a874573c401104d48cb24da4598ffdb'
+ 'a18d313752494bffc87a7b1c43190658'
+ 'f6941a7750d79c3e109fbcbb8e8d556c'
+ '6f1c6511b7dbb4bb04426d1f2668c5db'
+ '9da2a35b8290cf464f64e85120155994'
+ 'fb3d0941157fcecfda5357abf7f0306c'
+ '88c22e0ad3f8446cb28b456d926b6f25'
+ '1b9bb929cf423c86cddeafd82ff2157b'
+ 'f11a3716a8bec5b47c49cced3bab2e0a'
+ '602a77c93492cd22125acb1a01c58ff7'
+ '4cfe91686b96158b03d2decccc1ee061'
+ 'f29fc3ad3453ab7e7783e4efe7241e4a'
+ '5d0c0bc5b4ee5ff1f737ceee59bc58ac'
+ '0f92d7936c0c8d634fc34ecd9fa0c818'
+ 'ebec0d2a3cb7f9009feeab04b85eb1e4'
+ '614b558dbb542e110e1c2e4b14fac68f'
+ '3c80e996a4fa346ead550f6c9b039b78'
+ '62d677645772fcb565d7c34637a04c1a'
+ '33bf6972e34f40ca895c972a6866bdf5'
+ 'c5e56f7737ec87ed227b19ec552ab14f'
+ '2463810a14dc597e3a805a3ad3942052'
+ '18e02ba748af00e5e4a5af017f517dd1'
+ '7b1a880b3cbb3d16f93d52033a0f196a'
+ 'f6d0bffdbe4b808ec4ee18b99ca931a2'
+ '9b7e3404aaf49a7a50d88945c38e1831'
+ '6187062347af3c308e345660e930b0fb'
+ 'd6e3deb4973866203945db1dd7e43b9f'
+ '04b9c470aeb5ef80bf3436a7b38124bd'
+ '57fe3e895474d4227b118ac57a015db6'
+ '5abde249ab842e5a07fd453f738007a0'
+ 'a5029e6616a915efba05b309ec3a1dd2'
+ '89fc0ad5223a865c2976278254e24669'
+ 'cefe577c4968552e78c9e58c7c50df5b'
+ '2dd4d2dc18fcc041c1904ec6d912824e'
+ '64ad03589794f5355ba4d6817a67fe9c'
+ '474e665e2bc7c559f783de0874a94124'
+ '2aad7732725a26c2630343d168e00914'
+ '307a23861dd38d7a3f736b66ce8f7312'
+ '5a85085bf567b56191e925eb2446c5b6'
+ '63d753f419bde879bdc3033ed29a1e58'
+ '24b8ef0373ce6496cc945cbfbf21f766'
+ '6f15470f4bc232e0bc537d3e5aad155c'
+ '5fdf086b77ed23976ecf685cbc4a5efa'
+ 'e9280a821e2c3f695f545294b24862aa'
+ 'b218456438e28f9cd970fda28f15b453'
+ '1059a40fa591f08ea6dec1a096e98118'
+ 'a14da03cd1b4fe7a50d6ed96445ef9e6'
+ '2e6abd26cafb68f467adf565613422df'
+ '4f3b79c8110f2faec8cf3c4ba6222a9d'
+ 'b483786f1f6f609c9d67df11f23e706d'
+ 'd01a29080b95f2c4a6d74634e0078945'
+ '3654f0ad3f6eae33ff4fe436fbebb8de'
+ '223f7b8f072e03487cb2fbbec26641d3'
+ '03e8128272968738b58344cd01cdef63'
+ '7bd7ecdffa53bae01e7bf7adc7fe220c'
+ 'fbbc913b4d8b59e8018e471c24b18d9e'
+ '4f9b8ab17d3ed9d7685ea1daf984f5bf'
+ '1930f34b007a486369c56897b8a1377b'
+ 'aacf0daa35a92a5ea8b45d86988b0885'
+ '77ccb32332a25ca1ada8d477055e6627'
+ '756e90672edfef472dfa35f35df2e829'
+ '134148bdf5932ff930dc430857e96219'
+ 'ba9365cbcc51381433ca7a17ded1c93d'
+ '5d67b0ee04937d1b6b69ef5589a53d2e'
+ '1de0a25ba58808643b457fe17a9be58d'
+ '61434129ef46488ecc95dc6ee591be35'
+ 'aece6d4e04abca82da646f8c0e3185b5'
+ '4a4dc9d34fed02ce54d9a08168a3adbc'
+ 'e4c650c0693f6b2737810164e59d3806'
+ '054065a11e05c0dabaa17822c2eb4566'
+ 'c89e866ef8e9725e87c145e6331eacd2'
+ '809e3c05b97e8355f24f3f06c91aaac7'
+ '6de5d7ab27611dfa27dfb484120ce8e5'
+ 'e0f34617d3d44570fb4d0637b088c765')
diff --git a/libre/iceweasel-libre/PKGBUILD b/libre/iceweasel-libre/PKGBUILD
index 3ef4da470..66e441d75 100644
--- a/libre/iceweasel-libre/PKGBUILD
+++ b/libre/iceweasel-libre/PKGBUILD
@@ -12,8 +12,8 @@ _pgo=false
# We're getting this from Debian Sid
_debname=iceweasel
-_debver=11.0
-_debrel=2
+_debver=12.0
+_debrel=3
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -48,17 +48,19 @@ source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.bz2"
libre.patch
iceweasel-install-dir.patch
region.properties
- vendor.js)
-md5sums=('01d9d18909ca9fff2483d8fd779a0f89'
- '59349da94b095fe0623d09ce75696766'
- 'f407208a750cdc9bea3a6a3a3e42dd89'
- 'eab149c1994ab14392e55af3abb08e80'
+ vendor.js
+ gcc47.patch)
+md5sums=('b45f57bfe21b0e6db4f0683e794917cb'
+ '2b66fb2e51631ef3b07de89ef9d17d0c'
+ '552adcf5da3b07757e7fe29c8bd2ec2d'
+ '34786fca48963a7bea5d55d17a406c35'
'ac29b01c189f20abae2f3eef1618ffc0'
'a485a2b5dc544a8a2bd40c985d2e5813'
- 'addd3a3420cebeda152b447705b086e9'
+ '64be2fab525189c285ee04495d628035'
'e529742c0a425648087bc3ce537fe4c5'
'f1c76e7e244257856a386ca2de69bdf0'
- '0d053487907de4376d67d8f499c5502b')
+ '0d053487907de4376d67d8f499c5502b'
+ '79e471e0bd03b1d4e84fd3a6776bd619')
if [ "$_pkgname" != "$pkgname" ]; then
provides+=("$_pkgname=$pkgver")
@@ -95,6 +97,7 @@ if [ $NOEXTRACT -eq 0 ]; then
cp "$srcdir/mozconfig" .mozconfig # Load our build config, disable SafeSearch
patch -Np1 -i "$srcdir/iceweasel-install-dir.patch" # install to /usr/lib/$_pkgname
+ patch -Np1 -i "$srcdir/gcc47.patch" # fix to compile with gcc47
patch -Np1 -i "$srcdir/xulrunner-copy-stub.patch" # small fix
patch -Np1 -i "$srcdir/libre.patch"
fi
diff --git a/libre/iceweasel-libre/gcc47.patch b/libre/iceweasel-libre/gcc47.patch
new file mode 100644
index 000000000..829d59510
--- /dev/null
+++ b/libre/iceweasel-libre/gcc47.patch
@@ -0,0 +1,75 @@
+
+# HG changeset patch
+# User Martin Stránský <stransky@redhat.com>
+# Date 1328886461 -3600
+# Node ID 87a5ed480992788832387ba91a77c69fbe9fe349
+# Parent 67017dd3b7f6650e6bcd5b6f545e0309e8de7049
+Bug 725655 - gcc 4.7 build failures (missing headers). r=benjamin
+
+diff --git a/ipc/chromium/src/base/file_util_linux.cc b/ipc/chromium/src/base/file_util_linux.cc
+--- a/ipc/chromium/src/base/file_util_linux.cc
++++ b/ipc/chromium/src/base/file_util_linux.cc
+@@ -1,15 +1,18 @@
+ // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+ #include "base/file_util.h"
+
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include <string>
+ #include <vector>
+
+ #include "base/eintr_wrapper.h"
+ #include "base/file_path.h"
+ #include "base/string_util.h"
+
+diff --git a/ipc/chromium/src/base/message_pump_libevent.cc b/ipc/chromium/src/base/message_pump_libevent.cc
+--- a/ipc/chromium/src/base/message_pump_libevent.cc
++++ b/ipc/chromium/src/base/message_pump_libevent.cc
+@@ -1,16 +1,19 @@
+ // Copyright (c) 2008 The Chromium Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+ #include "base/message_pump_libevent.h"
+
+ #include <errno.h>
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include "eintr_wrapper.h"
+ #include "base/logging.h"
+ #include "base/scoped_nsautorelease_pool.h"
+ #include "base/scoped_ptr.h"
+ #include "base/time.h"
+ #include "third_party/libevent/event.h"
+
+diff --git a/ipc/chromium/src/base/time_posix.cc b/ipc/chromium/src/base/time_posix.cc
+--- a/ipc/chromium/src/base/time_posix.cc
++++ b/ipc/chromium/src/base/time_posix.cc
+@@ -8,16 +8,19 @@
+ #include <mach/mach_time.h>
+ #endif
+ #include <sys/time.h>
+ #ifdef ANDROID
+ #include <time64.h>
+ #else
+ #include <time.h>
+ #endif
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include <limits>
+
+ #include "base/basictypes.h"
+ #include "base/logging.h"
+
+ namespace base {
diff --git a/libre/iceweasel-libre/libre.patch b/libre/iceweasel-libre/libre.patch
index c1bb0a8c7..ecebbb3ce 100644
--- a/libre/iceweasel-libre/libre.patch
+++ b/libre/iceweasel-libre/libre.patch
@@ -9,12 +9,12 @@ diff -urN iceweasel-9.0.1.orig/browser/app/profile/firefox.js iceweasel-9.0.1/br
-pref("extensions.getAddons.getWithPerformance.url", "https://services.addons.mozilla.org/%LOCALE%/firefox/api/%API_VERSION%/search/guid:%IDS%?src=firefox&appOS=%OS%&appVersion=%VERSION%&tMain=%TIME_MAIN%&tFirstPaint=%TIME_FIRST_PAINT%&tSessionRestored=%TIME_SESSION_RESTORED%");
-pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%");
-pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/firefox/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%/%COMPATIBILITY_MODE%?src=firefox");
--pref("extensions.webservice.discoverURL", "https://services.addons.mozilla.org/%LOCALE%/firefox/discovery/pane/%VERSION%/%OS%");
-++pref("extensions.getAddons.get.url", "");
-++pref("extensions.getAddons.get.url", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.getAddons.search.url", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.webservice.discoverURL", "http://www.gnu.org/s/gnuzilla/addons.html");
+-pref("extensions.webservice.discoverURL", "https://services.addons.mozilla.org/%LOCALE%/firefox/discovery/pane/%VERSION%/%OS%/%COMPATIBILITY_MODE%");
++pref("extensions.getAddons.get.url", "");
++pref("extensions.getAddons.get.url", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.search.url", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.webservice.discoverURL", "http://www.gnu.org/s/gnuzilla/addons.html");
// Blocklist preferences
pref("extensions.blocklist.enabled", true);
@@ -135,23 +135,23 @@ diff -urN iceweasel-9.0.1.orig/layout/ipc/test-ipcbrowser.xul iceweasel-9.0.1/la
diff -urN iceweasel-9.0.1.orig/mobile/xul/app/mobile.js iceweasel-9.0.1/mobile/xul/app/mobile.js
--- mozilla-build/mobile/xul/app/mobile.js.orig 2012-03-20 01:02:30.300551777 -0300
+++ mozilla-build/mobile/xul/app/mobile.js 2012-03-20 01:02:40.820551342 -0300
-@@ -218,13 +218,12 @@
+@@ -220,13 +220,12 @@
/* preferences for the Get Add-ons pane */
pref("extensions.getAddons.cache.enabled", true);
pref("extensions.getAddons.maxResults", 15);
-pref("extensions.getAddons.recommended.browseURL", "https://addons.mozilla.org/%LOCALE%/mobile/recommended/");
-pref("extensions.getAddons.recommended.url", "https://services.addons.mozilla.org/%LOCALE%/mobile/api/%API_VERSION%/list/featured/all/%MAX_RESULTS%/%OS%/%VERSION%");
-pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/mobile/search?q=%TERMS%");
--pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/mobile/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%");
+-pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/mobile/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%/%COMPATIBILITY_MODE%");
-pref("extensions.getAddons.browseAddons", "https://addons.mozilla.org/%LOCALE%/mobile/");
-pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/%LOCALE%/mobile/api/%API_VERSION%/search/guid:%IDS%?src=mobile&appOS=%OS%&appVersion=%VERSION%");
-pref("extensions.getAddons.getWithPerformance.url", "https://services.addons.mozilla.org/%LOCALE%/mobile/api/%API_VERSION%/search/guid:%IDS%?src=mobile&appOS=%OS%&appVersion=%VERSION%&tMain=%TIME_MAIN%&tFirstPaint=%TIME_FIRST_PAINT%&tSessionRestored=%TIME_SESSION_RESTORED%");
-++pref("extensions.getAddons.recommended.browseURL", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.getAddons.recommended.url", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.getAddons.search.url", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.getAddons.browseAddons", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.getAddons.get.url", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.recommended.browseURL", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.recommended.url", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.search.url", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.browseAddons", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.get.url", "http://www.gnu.org/s/gnuzilla/addons.html");
/* preference for the locale picker */
pref("extensions.getLocales.get.url", "");
diff --git a/libre/iceweasel-libre/mozconfig b/libre/iceweasel-libre/mozconfig
index e79896323..77690ba6b 100644
--- a/libre/iceweasel-libre/mozconfig
+++ b/libre/iceweasel-libre/mozconfig
@@ -15,7 +15,7 @@ ac_add_options --with-system-libvpx
ac_add_options --enable-system-hunspell
ac_add_options --enable-system-sqlite
ac_add_options --enable-system-ffi
-ac_add_options --enable-system-cairo
+#ac_add_options --enable-system-cairo
ac_add_options --enable-system-pixman
ac_add_options --with-pthreads
diff --git a/libre/initscripts/PKGBUILD b/libre/initscripts/PKGBUILD
index f8b70de29..e58947f8d 100644
--- a/libre/initscripts/PKGBUILD
+++ b/libre/initscripts/PKGBUILD
@@ -1,18 +1,19 @@
# $Id: PKGBUILD 144989 2011-12-13 15:25:38Z tomegun $
# Maintainer: Tom Gundersen <teg@jklm.no>
-# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Thomas Bächler <thomas@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
# Maintainer (Parabola): Nicolas Reynolds <fauno@kiwwwi.com.ar>
pkgname=initscripts
-pkgver=2012.02.1
-pkgrel=1
+pkgver=2012.05.2
+pkgrel=2
pkgdesc="System initialization/bootup scripts (Parabola branding)"
arch=('any')
url="https://parabolagnulinux.org"
license=('GPL2')
groups=('base')
backup=(etc/inittab etc/rc.conf etc/rc.local etc/rc.local.shutdown etc/conf.d/wireless)
-depends=('glibc' 'bash' 'grep' 'coreutils' 'udev>=174' 'iproute2'
+depends=('glibc' 'bash' 'grep' 'coreutils' 'udev>=182' 'udev<=183' 'iproute2'
'ncurses' 'kbd' 'findutils' 'sysvinit')
optdepends=('bridge-utils: Network bridging support'
'dhcpcd: DHCP network configuration'
@@ -22,11 +23,11 @@ makedepends=(asciidoc)
install=initscripts.install
source=("https://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}.tar.xz"
'wireless.conf.d')
+md5sums=('2b845c1c6660b32720aa12aa5f9649be'
+ '027576534885b8d5dded9be546057b12')
package() {
cd ${srcdir}/${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install
install -D -m644 ${srcdir}/wireless.conf.d ${pkgdir}/etc/conf.d/wireless
}
-md5sums=('db7506749d240cbe1e5988d3a81d72a9'
- '027576534885b8d5dded9be546057b12')
diff --git a/libre/kdebase-konqueror-libre/PKGBUILD b/libre/kdebase-konqueror-libre/PKGBUILD
index 719cd3a4f..9507f4e0a 100644
--- a/libre/kdebase-konqueror-libre/PKGBUILD
+++ b/libre/kdebase-konqueror-libre/PKGBUILD
@@ -6,7 +6,7 @@
_pkgname='kdebase-konqueror'
pkgname='kdebase-konqueror-libre'
-pkgver=4.8.2
+pkgver=4.8.3
pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
url="http://kde.org/applications/internet/konqueror/"
@@ -15,7 +15,7 @@ groups=('kde' 'kdebase')
makedepends=('kdelibs' 'cmake' 'automoc4' 'tidyhtml')
source=("http://download.kde.org/stable/${pkgver}/src/kde-baseapps-${pkgver}.tar.xz"
"konq-about-fsdg.diff")
-sha1sums=('13dc2e6c8639feadc9a5a334d0720a60b1e3ccb6'
+sha1sums=('593053e7fdd50b32e6f9264edf2a69e499ddc0a6'
'f41541371414dcbe5e76687835e648112b3ff364')
pkgdesc='KDE File Manager & Web Browser'
depends=('kdebase-dolphin' 'kdebase-keditbookmarks')
diff --git a/libre/kdelibs-libre/PKGBUILD b/libre/kdelibs-libre/PKGBUILD
index aa2a51ddb..933527aa9 100644
--- a/libre/kdelibs-libre/PKGBUILD
+++ b/libre/kdelibs-libre/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 155359 2012-04-02 12:16:32Z andrea $
+# $Id: PKGBUILD 158132 2012-05-03 13:20:07Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
_pkgname=kdelibs
pkgname=kdelibs-libre
-pkgver=4.8.2
+pkgver=4.8.3
pkgrel=1
pkgdesc="KDE Core Libraries"
arch=('i686' 'x86_64' 'mips64el')
@@ -24,7 +24,7 @@ source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.
'kde-applications-menu.patch'
'use-pythondontwritebytecode.patch'
'khtml-fsdg.diff')
-sha1sums=('f844ae0877880563361144d9577706064c3483e7'
+sha1sums=('50633efa4ea2a133e51bf55286ff754c46f2eae2'
'86ee8c8660f19de8141ac99cd6943964d97a1ed7'
'a1e35760d5b4e29471ad357c963a343c67200f32'
'a1502a964081ad583a00cf90c56e74bf60121830')
diff --git a/libre/kdenetwork-libre/PKGBUILD b/libre/kdenetwork-libre/PKGBUILD
index 6e231389d..0ffef5573 100644
--- a/libre/kdenetwork-libre/PKGBUILD
+++ b/libre/kdenetwork-libre/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 154726 2012-03-30 16:15:21Z andrea $
+# $Id: PKGBUILD 158333 2012-05-03 17:21:20Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
@@ -12,8 +12,8 @@ pkgname=('kdenetwork-filesharing'
'kdenetwork-kppp'
'kdenetwork-krdc'
'kdenetwork-krfb')
-pkgver=4.8.2
-pkgrel=1
+pkgver=4.8.3
+pkgrel=2
arch=('i686' 'x86_64')
url='http://www.kde.org'
license=('GPL' 'LGPL' 'FDL')
@@ -22,12 +22,16 @@ 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")
-sha1sums=('a899a9ef1637612a5ec14bb3ff950f3ed565d60e')
+source=("http://download.kde.org/stable/${pkgver}/src/${_pkgbase}-${pkgver}.tar.xz"
+ 'gcc47.patch')
+sha1sums=('9da87317c6a10243d6fff8c121c04146415f65cd'
+ '0e1325569e296d98e7b1be12305c1c018104685b')
build() {
- cd "${srcdir}"
+ cd "${srcdir}"/${_pkgbase}-${pkgver}
+ patch -p4 -i "${srcdir}"/gcc47.patch
+ cd "${srcdir}"
# Based on http://bzr.trisquel.info/package-helpers/trunk/annotate/head%3A/helpers/natty/make-kdenetwork, revision 34.
sed -i 's/Skype protocol" ON/Skype protocol" OFF/g' "${_pkgbase}-${pkgver}/kopete/protocols/CMakeLists.txt"
rm -rf "${_pkgbase}-${pkgver}/kopete/protocols/skype"
@@ -41,7 +45,8 @@ build() {
-DCMAKE_INSTALL_PREFIX=/usr \
-DMOZPLUGIN_INSTALL_DIR=/usr/lib/mozilla/plugins/ \
-DWITH_Xmms=OFF \
- -DWITH_LibMeanwhile=OFF
+ -DWITH_LibMeanwhile=OFF \
+ -DWITH_qq=OFF
make
}
diff --git a/libre/kdenetwork-libre/gcc47.patch b/libre/kdenetwork-libre/gcc47.patch
new file mode 100644
index 000000000..78af901dc
--- /dev/null
+++ b/libre/kdenetwork-libre/gcc47.patch
@@ -0,0 +1,59 @@
+--- branches/KDE/4.8/kdenetwork/kopete/protocols/jabber/googletalk/libjingle/talk/base/socketaddress.cc 2012/05/03 16:03:23 1292761
++++ branches/KDE/4.8/kdenetwork/kopete/protocols/jabber/googletalk/libjingle/talk/base/socketaddress.cc 2012/05/03 16:11:00 1292762
+@@ -31,6 +31,7 @@
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ #include <netdb.h>
++#include <unistd.h>
+ #endif
+
+ #include <cstring>
+--- branches/KDE/4.8/kdenetwork/kopete/protocols/jabber/googletalk/libjingle/talk/base/ssladapter.cc 2012/05/03 16:03:23 1292761
++++ branches/KDE/4.8/kdenetwork/kopete/protocols/jabber/googletalk/libjingle/talk/base/ssladapter.cc 2012/05/03 16:11:00 1292762
+@@ -27,6 +27,12 @@
+
+ #include "talk/base/ssladapter.h"
+
++#ifdef POSIX
++extern "C" {
++#include <unistd.h>
++}
++#endif
++
+ #if !defined(SSL_USE_SCHANNEL) && !defined(SSL_USE_OPENSSL)
+ #ifdef WIN32
+ #define SSL_USE_SCHANNEL 1
+--- branches/KDE/4.8/kdenetwork/kopete/protocols/jabber/googletalk/libjingle/talk/base/stringutils.h 2012/05/03 16:03:23 1292761
++++ branches/KDE/4.8/kdenetwork/kopete/protocols/jabber/googletalk/libjingle/talk/base/stringutils.h 2012/05/03 16:11:00 1292762
+@@ -198,15 +198,6 @@
+ }
+
+ template<class CTYPE>
+-size_t sprintfn(CTYPE* buffer, size_t buflen, const CTYPE* format, ...) {
+- va_list args;
+- va_start(args, format);
+- size_t len = vsprintfn(buffer, buflen, format, args);
+- va_end(args);
+- return len;
+-}
+-
+-template<class CTYPE>
+ size_t vsprintfn(CTYPE* buffer, size_t buflen, const CTYPE* format,
+ va_list args) {
+ int len = vsnprintf(buffer, buflen, format, args);
+@@ -217,6 +208,15 @@
+ return len;
+ }
+
++template<class CTYPE>
++size_t sprintfn(CTYPE* buffer, size_t buflen, const CTYPE* format, ...) {
++ va_list args;
++ va_start(args, format);
++ size_t len = vsprintfn(buffer, buflen, format, args);
++ va_end(args);
++ return len;
++}
++
+ ///////////////////////////////////////////////////////////////////////////////
+ // Allow safe comparing and copying ascii (not UTF-8) with both wide and
+ // non-wide character strings.
diff --git a/libre/kdeutils-ark-libre/PKGBUILD b/libre/kdeutils-ark-libre/PKGBUILD
index 8f3ff312b..0bda68d17 100644
--- a/libre/kdeutils-ark-libre/PKGBUILD
+++ b/libre/kdeutils-ark-libre/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 154731 2012-03-30 16:15:36Z andrea $
+# $Id: PKGBUILD 158207 2012-05-03 13:23:51Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
_pkgname=kdeutils-ark
pkgname=kdeutils-ark-libre
-pkgver=4.8.2
+pkgver=4.8.3
pkgrel=1
pkgdesc='Archiving Tool'
url='http://kde.org/applications/utilities/ark/'
@@ -19,7 +19,7 @@ replaces=('kdeutils-ark')
conflicts=('kdeutils-ark')
install=${_pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/ark-${pkgver}.tar.xz")
-sha1sums=('d39be864ed818dd49aeba84ca4c02c0e5813eadf')
+sha1sums=('9ff1fff082f53f31d0d31f2570005ae551fd2164')
build() {
cd "${srcdir}"
diff --git a/libre/liferea-libre/PKGBUILD b/libre/liferea-libre/PKGBUILD
index 5f0c234e2..7a1b8cfcc 100644
--- a/libre/liferea-libre/PKGBUILD
+++ b/libre/liferea-libre/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 154470 2012-03-28 23:15:22Z eric $
+# $Id: PKGBUILD 156321 2012-04-17 02:30:26Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
# Contributor (Parabola): bitlord
# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
_pkgname=liferea
pkgname=liferea-libre
-pkgver=1.8.4
+pkgver=1.8.5
pkgrel=1
pkgdesc="A desktop news aggregator for online news feeds and weblogs"
arch=('i686' 'x86_64')
@@ -20,8 +20,8 @@ options=('!libtool' '!emptydirs')
install=liferea.install
source=(http://downloads.sourceforge.net/sourceforge/${_pkgname}/${_pkgname}-${pkgver}.tar.gz
remove-non-free-suggestions.patch)
-sha1sums=('f887a3928116f56e1b68719c150d40bd1c3c6dff'
- '0d68c567c3d37932a49709c58c37c3f138fd19cb')
+sha1sums=('076cde160fff49a4b8c59fdae0571659ce8acd88'
+ '0d68c567c3d37932a49709c58c37c3f138fd19cb')
build() {
cd "${srcdir}/${_pkgname}-${pkgver}"
diff --git a/libre/lilo/.directory b/libre/lilo/.directory
new file mode 100644
index 000000000..ba03b0e05
--- /dev/null
+++ b/libre/lilo/.directory
@@ -0,0 +1,2 @@
+[Dolphin]
+Timestamp=2012,5,3,19,29,58
diff --git a/libre/lilo/PKGBUILD b/libre/lilo/PKGBUILD
index 169037bc2..8103a1ac1 100644
--- a/libre/lilo/PKGBUILD
+++ b/libre/lilo/PKGBUILD
@@ -5,7 +5,7 @@
pkgname=lilo
pkgver=23.2
-pkgrel=3
+pkgrel=3.1
pkgdesc="A bootloader for Linux (Parabola rebranded)"
arch=('i686' 'x86_64')
url="https://alioth.debian.org/projects/lilo/"
@@ -19,9 +19,6 @@ backup=('etc/lilo.conf')
depends=('device-mapper' 'coreutils')
makedepends=('bin86' 'sharutils')
optdepends=('perl: to use keytab-lilo')
-replaces=('lilo')
-conflicts=('lilo')
-provides=("lilo=$pkgver")
install=lilo.install
options=('!makeflags')
source=("http://lilo.alioth.debian.org/ftp/sources/${pkgname}-${pkgver}.tar.gz"
diff --git a/libre/linux-libre-api-headers/PKGBUILD b/libre/linux-libre-api-headers/PKGBUILD
index 0a449ef3e..72f4c464d 100644
--- a/libre/linux-libre-api-headers/PKGBUILD
+++ b/libre/linux-libre-api-headers/PKGBUILD
@@ -5,8 +5,9 @@
# toolchain build order: linux-libre-api-headers->glibc->binutils->gcc->binutils->glibc
pkgname=linux-libre-api-headers
-pkgver=3.3
-_basever=3.3
+_basekernel=3.3
+_sublevel=2
+pkgver=${_basekernel}.${_sublevel}
pkgrel=1
pkgdesc="Kernel Libre headers sanitized for use in userspace"
arch=('i686' 'x86_64' 'mips64el')
@@ -15,20 +16,24 @@ license=('GPL2')
provides=("linux-api-headers=${pkgver}" "kernel-headers=${pkgver}")
conflicts=('linux-api-headers' 'kernel-headers')
replaces=('linux-api-headers' 'kernel-headers')
-source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basever}-gnu/linux-libre-${_basever}-gnu.tar.xz")
- #"http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basever}-gnu-${pkgver}-gnu.xz")
-md5sums=('5487da14ca81715a469c7594d39722fa')
+source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gnu/linux-libre-${_basekernel}-gnu.tar.xz"
+ "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basekernel}-gnu-${pkgver}-gnu.xz")
+md5sums=('5487da14ca81715a469c7594d39722fa'
+ 'b43d3bdecfa355bf45bd1154819e3687')
build() {
- cd ${srcdir}/linux-${_basever}
- [[ $pkgver != $_basever ]] && patch -Np1 -i ${srcdir}/patch-${_basever}-gnu-${pkgver}-gnu
+ cd ${srcdir}/linux-${_basekernel}
+
+ if [ "${_basekernel}" != "${pkgver}" ]; then
+ patch -Np1 -i "${srcdir}/patch-${_basekernel}-gnu-${pkgver}-gnu"
+ fi
make mrproper
make headers_check
}
package() {
- cd ${srcdir}/linux-${_basever}
+ cd ${srcdir}/linux-${_basekernel}
make INSTALL_HDR_PATH=${pkgdir}/usr headers_install
# use headers from libdrm
diff --git a/libre/linux-libre-lts/.directory b/libre/linux-libre-lts/.directory
index 60156bc93..89e875be9 100644
--- a/libre/linux-libre-lts/.directory
+++ b/libre/linux-libre-lts/.directory
@@ -1,2 +1,2 @@
[Dolphin]
-Timestamp=2012,3,15,16,10,14
+Timestamp=2012,4,16,17,55,34
diff --git a/libre/linux-libre-lts/CVE-2012-0056.patch b/libre/linux-libre-lts/CVE-2012-0056.patch
deleted file mode 100644
index 4098f3506..000000000
--- a/libre/linux-libre-lts/CVE-2012-0056.patch
+++ /dev/null
@@ -1,269 +0,0 @@
-From e268337dfe26dfc7efd422a804dbb27977a3cccc Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds@linux-foundation.org>
-Date: Tue, 17 Jan 2012 15:21:19 -0800
-Subject: proc: clean up and fix /proc/<pid>/mem handling
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Linus Torvalds <torvalds@linux-foundation.org>
-
-commit e268337dfe26dfc7efd422a804dbb27977a3cccc upstream.
-
-Jüri Aedla reported that the /proc/<pid>/mem handling really isn't very
-robust, and it also doesn't match the permission checking of any of the
-other related files.
-
-This changes it to do the permission checks at open time, and instead of
-tracking the process, it tracks the VM at the time of the open. That
-simplifies the code a lot, but does mean that if you hold the file
-descriptor open over an execve(), you'll continue to read from the _old_
-VM.
-
-That is different from our previous behavior, but much simpler. If
-somebody actually finds a load where this matters, we'll need to revert
-this commit.
-
-I suspect that nobody will ever notice - because the process mapping
-addresses will also have changed as part of the execve. So you cannot
-actually usefully access the fd across a VM change simply because all
-the offsets for IO would have changed too.
-
-Reported-by: Jüri Aedla <asd@ut.ee>
-Cc: Al Viro <viro@zeniv.linux.org.uk>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- fs/proc/base.c | 145 +++++++++++++++------------------------------------------
- 1 file changed, 39 insertions(+), 106 deletions(-)
-
---- a/fs/proc/base.c
-+++ b/fs/proc/base.c
-@@ -194,65 +194,7 @@ static int proc_root_link(struct inode *
- return result;
- }
-
--static struct mm_struct *__check_mem_permission(struct task_struct *task)
--{
-- struct mm_struct *mm;
--
-- mm = get_task_mm(task);
-- if (!mm)
-- return ERR_PTR(-EINVAL);
--
-- /*
-- * A task can always look at itself, in case it chooses
-- * to use system calls instead of load instructions.
-- */
-- if (task == current)
-- return mm;
--
-- /*
-- * If current is actively ptrace'ing, and would also be
-- * permitted to freshly attach with ptrace now, permit it.
-- */
-- if (task_is_stopped_or_traced(task)) {
-- int match;
-- rcu_read_lock();
-- match = (tracehook_tracer_task(task) == current);
-- rcu_read_unlock();
-- if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH))
-- return mm;
-- }
--
-- /*
-- * No one else is allowed.
-- */
-- mmput(mm);
-- return ERR_PTR(-EPERM);
--}
--
--/*
-- * If current may access user memory in @task return a reference to the
-- * corresponding mm, otherwise ERR_PTR.
-- */
--static struct mm_struct *check_mem_permission(struct task_struct *task)
--{
-- struct mm_struct *mm;
-- int err;
--
-- /*
-- * Avoid racing if task exec's as we might get a new mm but validate
-- * against old credentials.
-- */
-- err = mutex_lock_killable(&task->signal->cred_guard_mutex);
-- if (err)
-- return ERR_PTR(err);
--
-- mm = __check_mem_permission(task);
-- mutex_unlock(&task->signal->cred_guard_mutex);
--
-- return mm;
--}
--
--struct mm_struct *mm_for_maps(struct task_struct *task)
-+static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
- {
- struct mm_struct *mm;
- int err;
-@@ -263,7 +205,7 @@ struct mm_struct *mm_for_maps(struct tas
-
- mm = get_task_mm(task);
- if (mm && mm != current->mm &&
-- !ptrace_may_access(task, PTRACE_MODE_READ)) {
-+ !ptrace_may_access(task, mode)) {
- mmput(mm);
- mm = ERR_PTR(-EACCES);
- }
-@@ -272,6 +214,11 @@ struct mm_struct *mm_for_maps(struct tas
- return mm;
- }
-
-+struct mm_struct *mm_for_maps(struct task_struct *task)
-+{
-+ return mm_access(task, PTRACE_MODE_READ);
-+}
-+
- static int proc_pid_cmdline(struct task_struct *task, char * buffer)
- {
- int res = 0;
-@@ -816,38 +763,39 @@ static const struct file_operations proc
-
- static int mem_open(struct inode* inode, struct file* file)
- {
-- file->private_data = (void*)((long)current->self_exec_id);
-+ struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
-+ struct mm_struct *mm;
-+
-+ if (!task)
-+ return -ESRCH;
-+
-+ mm = mm_access(task, PTRACE_MODE_ATTACH);
-+ put_task_struct(task);
-+
-+ if (IS_ERR(mm))
-+ return PTR_ERR(mm);
-+
- /* OK to pass negative loff_t, we can catch out-of-range */
- file->f_mode |= FMODE_UNSIGNED_OFFSET;
-+ file->private_data = mm;
-+
- return 0;
- }
-
- static ssize_t mem_read(struct file * file, char __user * buf,
- size_t count, loff_t *ppos)
- {
-- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
-+ int ret;
- char *page;
- unsigned long src = *ppos;
-- int ret = -ESRCH;
-- struct mm_struct *mm;
-+ struct mm_struct *mm = file->private_data;
-
-- if (!task)
-- goto out_no_task;
-+ if (!mm)
-+ return 0;
-
-- ret = -ENOMEM;
- page = (char *)__get_free_page(GFP_TEMPORARY);
- if (!page)
-- goto out;
--
-- mm = check_mem_permission(task);
-- ret = PTR_ERR(mm);
-- if (IS_ERR(mm))
-- goto out_free;
--
-- ret = -EIO;
--
-- if (file->private_data != (void*)((long)current->self_exec_id))
-- goto out_put;
-+ return -ENOMEM;
-
- ret = 0;
-
-@@ -874,13 +822,7 @@ static ssize_t mem_read(struct file * fi
- }
- *ppos = src;
-
--out_put:
-- mmput(mm);
--out_free:
- free_page((unsigned long) page);
--out:
-- put_task_struct(task);
--out_no_task:
- return ret;
- }
-
-@@ -889,27 +831,15 @@ static ssize_t mem_write(struct file * f
- {
- int copied;
- char *page;
-- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
- unsigned long dst = *ppos;
-- struct mm_struct *mm;
-+ struct mm_struct *mm = file->private_data;
-
-- copied = -ESRCH;
-- if (!task)
-- goto out_no_task;
-+ if (!mm)
-+ return 0;
-
-- copied = -ENOMEM;
- page = (char *)__get_free_page(GFP_TEMPORARY);
- if (!page)
-- goto out_task;
--
-- mm = check_mem_permission(task);
-- copied = PTR_ERR(mm);
-- if (IS_ERR(mm))
-- goto out_free;
--
-- copied = -EIO;
-- if (file->private_data != (void *)((long)current->self_exec_id))
-- goto out_mm;
-+ return -ENOMEM;
-
- copied = 0;
- while (count > 0) {
-@@ -933,13 +863,7 @@ static ssize_t mem_write(struct file * f
- }
- *ppos = dst;
-
--out_mm:
-- mmput(mm);
--out_free:
- free_page((unsigned long) page);
--out_task:
-- put_task_struct(task);
--out_no_task:
- return copied;
- }
-
-@@ -959,11 +883,20 @@ loff_t mem_lseek(struct file *file, loff
- return file->f_pos;
- }
-
-+static int mem_release(struct inode *inode, struct file *file)
-+{
-+ struct mm_struct *mm = file->private_data;
-+
-+ mmput(mm);
-+ return 0;
-+}
-+
- static const struct file_operations proc_mem_operations = {
- .llseek = mem_lseek,
- .read = mem_read,
- .write = mem_write,
- .open = mem_open,
-+ .release = mem_release,
- };
-
- static ssize_t environ_read(struct file *file, char __user *buf,
diff --git a/libre/linux-libre-lts/PKGBUILD b/libre/linux-libre-lts/PKGBUILD
index 790ea5e0b..e8de15b08 100644
--- a/libre/linux-libre-lts/PKGBUILD
+++ b/libre/linux-libre-lts/PKGBUILD
@@ -9,10 +9,10 @@ pkgname=('linux-libre-lts' 'linux-libre-lts-headers') # Build stock -LIBRE kerne
# pkgname=linux-custom # Build kernel with a different name
_kernelname=-LIBRE-LTS
_basekernel=3.0
-_sublevel=27
+_sublevel=30
pkgver=${_basekernel}.${_sublevel}
-_lxopkgver=${_basekernel}.26 # nearly always the same as pkgver
-pkgrel=1
+_lxopkgver=${_basekernel}.30 # nearly always the same as pkgver
+pkgrel=2
arch=('i686' 'x86_64' 'mips64el')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
@@ -32,17 +32,17 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'ext4-options.patch'
"http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2")
md5sums=('5f64180fe7df4e574dac5911b78f5067'
- '365d490f97b1960c8880eb22257d5ef0'
- 'c7acde811ca6808b294dc06480048c61'
- '792766d6d403cc967977f6a46aa95d1d'
- 'd2c0701480bce49fd4b40dc46b9863f1'
+ '930220b973c8d439397bc5217f1e629a'
+ 'df7e69a7b238c6492b589cc2beb894d2'
+ '2ef390e115d6ae1c074c30fec9258442'
+ 'c072b17032e80debc6a8626299245d46'
'2967cecc3af9f954ccc822fd63dca6ff'
'8267264d9a8966e57fdacd1fa1fc65c4'
'04b21c79df0a952c22d681dd4f4562df'
'9d3c56a4b999c8bfbd4018089a62f662'
'263725f20c0b9eb9c353040792d644e5'
'f36222e7ce20c8e4dc27376f9be60f6c'
- '40e46dd7c7ffe2f4276ea91a0aad5fd4')
+ '0b9bffe2183ffec89f348d890dbff26d')
if [ "$CARCH" != "mips64el" ]; then
# Don't use the Loongson-specific patches on non-mips64el arches.
unset source[${#source[@]}-1]
@@ -141,7 +141,7 @@ build() {
package_linux-libre-lts() {
pkgdesc="The Linux-libre Kernel and modules - stable longtime supported kernel package suitable for servers"
- depends=('coreutils' 'module-init-tools>=3.16')
+ depends=('coreutils' 'kmod')
optdepends=('crda: to set the correct wireless channels of your country')
provides=('kernel26-lts' "linux-lts=$pkgver")
conflicts=('kernel26-lts' 'kernel26-libre-lts' 'linux-lts')
@@ -206,7 +206,7 @@ package_linux-libre-lts() {
}
package_linux-libre-lts-headers() {
- pkgdesc="Header files and scripts for building modules for linux-libre-lts-headers longtime supported kernel"
+ pkgdesc="Header files and scripts for building modules for linux-libre-lts longtime supported kernel"
provides=('kernel26-lts-headers' "linux-lts-headers=${pkgver}")
conflicts=('kernel26-lts-headers' 'kernel26-libre-lts-headers' 'linux-lts-headers')
replaces=('kernel26-lts-headers' 'kernel26-libre-lts-headers' 'linux-lts-headers')
@@ -355,4 +355,3 @@ package_linux-libre-lts-headers() {
rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/mips
fi
}
-
diff --git a/libre/linux-libre-lts/config.i686 b/libre/linux-libre-lts/config.i686
index 35ab3faeb..7094b2731 100644
--- a/libre/linux-libre-lts/config.i686
+++ b/libre/linux-libre-lts/config.i686
@@ -1,6 +1,6 @@
#
# Automatically generated make config: don't edit
-# Linux/i386 3.0.26-1 Kernel Configuration
+# Linux/i386 3.0.29-1 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -1105,7 +1105,30 @@ CONFIG_XPS=y
#
CONFIG_NET_PKTGEN=m
CONFIG_NET_DROP_MONITOR=y
-# CONFIG_HAMRADIO is not set
+CONFIG_HAMRADIO=y
+
+#
+# Packet Radio protocols
+#
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_SCC=m
+# CONFIG_SCC_DELAY is not set
+# CONFIG_SCC_TRXECHO is not set
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_BAYCOM_EPP=m
+CONFIG_YAM=m
# CONFIG_CAN is not set
CONFIG_IRDA=m
@@ -4663,7 +4686,133 @@ CONFIG_BRCMUTIL=m
CONFIG_BRCMSMAC=m
# CONFIG_BRCMFMAC is not set
# CONFIG_BRCMDBG is not set
-# CONFIG_COMEDI is not set
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_MISC_DRIVERS=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_SERIAL2002=m
+CONFIG_COMEDI_SKEL=m
+CONFIG_COMEDI_ISA_DRIVERS=m
+CONFIG_COMEDI_ACL7225B=m
+CONFIG_COMEDI_PCL711=m
+CONFIG_COMEDI_PCL724=m
+CONFIG_COMEDI_PCL725=m
+CONFIG_COMEDI_PCL726=m
+CONFIG_COMEDI_PCL730=m
+CONFIG_COMEDI_PCL812=m
+CONFIG_COMEDI_PCL816=m
+CONFIG_COMEDI_PCL818=m
+CONFIG_COMEDI_PCM3724=m
+CONFIG_COMEDI_PCM3730=m
+CONFIG_COMEDI_RTI800=m
+CONFIG_COMEDI_RTI802=m
+CONFIG_COMEDI_DAS16M1=m
+CONFIG_COMEDI_DAS16=m
+CONFIG_COMEDI_DAS800=m
+CONFIG_COMEDI_DAS1800=m
+CONFIG_COMEDI_DAS6402=m
+CONFIG_COMEDI_DT2801=m
+CONFIG_COMEDI_DT2811=m
+CONFIG_COMEDI_DT2814=m
+CONFIG_COMEDI_DT2815=m
+CONFIG_COMEDI_DT2817=m
+CONFIG_COMEDI_DT282X=m
+CONFIG_COMEDI_DMM32AT=m
+CONFIG_COMEDI_FL512=m
+CONFIG_COMEDI_AIO_AIO12_8=m
+CONFIG_COMEDI_AIO_IIRO_16=m
+CONFIG_COMEDI_C6XDIGIO=m
+CONFIG_COMEDI_MPC624=m
+CONFIG_COMEDI_ADQ12B=m
+CONFIG_COMEDI_NI_AT_A2150=m
+CONFIG_COMEDI_NI_AT_AO=m
+CONFIG_COMEDI_NI_ATMIO=m
+CONFIG_COMEDI_NI_ATMIO16D=m
+CONFIG_COMEDI_PCMAD=m
+CONFIG_COMEDI_PCMDA12=m
+CONFIG_COMEDI_PCMMIO=m
+CONFIG_COMEDI_PCMUIO=m
+CONFIG_COMEDI_MULTIQ3=m
+CONFIG_COMEDI_POC=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_ADDI_APCI_035=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2016=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3001=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7230=m
+CONFIG_COMEDI_ADL_PCI7296=m
+CONFIG_COMEDI_ADL_PCI7432=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC263=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_UNIOXX5=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIDIO=m
+# CONFIG_COMEDI_CB_PCIMDAS is not set
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_SSV_DNP=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMEDI_NI_COMMON=m
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_FC=m
# CONFIG_FB_OLPC_DCON is not set
CONFIG_ASUS_OLED=m
# CONFIG_PANEL is not set
diff --git a/libre/linux-libre-lts/config.x86_64 b/libre/linux-libre-lts/config.x86_64
index 11043d568..f7cd1263b 100644
--- a/libre/linux-libre-lts/config.x86_64
+++ b/libre/linux-libre-lts/config.x86_64
@@ -1071,11 +1071,30 @@ CONFIG_BPF_JIT=y
#
CONFIG_NET_PKTGEN=m
CONFIG_NET_DROP_MONITOR=y
-# CONFIG_HAMRADIO is not set
+CONFIG_HAMRADIO=y
# CONFIG_CAN is not set
CONFIG_IRDA=m
#
+# Packet Radio protocols
+#
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_YAM=m
+
+#
# IrDA protocols
#
CONFIG_IRLAN=m
@@ -4455,7 +4474,91 @@ CONFIG_BRCMUTIL=m
CONFIG_BRCMSMAC=m
# CONFIG_BRCMFMAC is not set
# CONFIG_BRCMDBG is not set
-# CONFIG_COMEDI is not set
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_MISC_DRIVERS=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_SERIAL2002=m
+CONFIG_COMEDI_SKEL=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_ADDI_APCI_035=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2016=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3001=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7230=m
+CONFIG_COMEDI_ADL_PCI7296=m
+CONFIG_COMEDI_ADL_PCI7432=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC263=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_UNIOXX5=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIDIO=m
+CONFIG_COMEDI_CB_PCIMDAS=m
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_SSV_DNP=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMEDI_NI_COMMON=m
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_FC=m
CONFIG_ASUS_OLED=m
# CONFIG_PANEL is not set
CONFIG_R8187SE=m
diff --git a/libre/linux-libre-lts/linux-libre-lts.install b/libre/linux-libre-lts/linux-libre-lts.install
index acb2b71f5..870545419 100644
--- a/libre/linux-libre-lts/linux-libre-lts.install
+++ b/libre/linux-libre-lts/linux-libre-lts.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-lts
-KERNEL_VERSION=3.0.27-1-LIBRE-LTS
+KERNEL_VERSION=3.0.30-2-LIBRE-LTS
post_install () {
# updating module dependencies
diff --git a/libre/linux-libre-lts/linux-libre-lts.preset b/libre/linux-libre-lts/linux-libre-lts.preset
index 4621af434..37cf35ed0 100644
--- a/libre/linux-libre-lts/linux-libre-lts.preset
+++ b/libre/linux-libre-lts/linux-libre-lts.preset
@@ -1,4 +1,4 @@
-# mkinitcpio preset file for the 'linux' package
+# mkinitcpio preset file for the 'linux-libre-lts' package
ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux-libre-lts"
diff --git a/libre/linux-libre-tools/PKGBUILD b/libre/linux-libre-tools/PKGBUILD
index d30a61137..a0e117f46 100644
--- a/libre/linux-libre-tools/PKGBUILD
+++ b/libre/linux-libre-tools/PKGBUILD
@@ -5,8 +5,8 @@
pkgbase=linux-libre-tools
pkgname=('perf-libre' 'cpupower-libre')
pkgver=3.3
-kernver=${pkgver}
-pkgrel=2
+kernver=${pkgver}.4
+pkgrel=4
license=('GPL2')
arch=('i686' 'x86_64' 'mips64el')
url='http://linux-libre.fsfla.org/'
@@ -18,8 +18,8 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/$kernver-gnu/linu
'cpupower.rc'
'cpupower.conf'
'cpupower.service')
-md5sums=('5487da14ca81715a469c7594d39722fa'
- '26af384ca282bc0dc38ff65acc7bb4b9'
+md5sums=('ab3fcfc16f3ac3f7b5741c260a949165'
+ '73dbc931e86b3b73d6e2338dcbee81a4'
'18d5aa9e4c6bb23bb02bf65e155e0f0e'
'20870541e88109d2f153be3c58a277f1')
diff --git a/libre/linux-libre-tools/cpupower.rc b/libre/linux-libre-tools/cpupower.rc
index 9b0bcddb7..27a491e95 100644
--- a/libre/linux-libre-tools/cpupower.rc
+++ b/libre/linux-libre-tools/cpupower.rc
@@ -33,7 +33,7 @@ case "$1" in
(($fail > 0)) && stat_fail && exit 1 || stat_done
;;
*)
- echo "usage: $0 {start|restart}"
+ echo "usage: ${0##*/} {start|restart}"
esac
true
diff --git a/libre/linux-libre/CVE-2012-0056.patch b/libre/linux-libre/CVE-2012-0056.patch
deleted file mode 100644
index 6a83fef1c..000000000
--- a/libre/linux-libre/CVE-2012-0056.patch
+++ /dev/null
@@ -1,268 +0,0 @@
-From e268337dfe26dfc7efd422a804dbb27977a3cccc Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds@linux-foundation.org>
-Date: Tue, 17 Jan 2012 15:21:19 -0800
-Subject: [PATCH] proc: clean up and fix /proc/<pid>/mem handling
-MIME-Version: 1.0
-Content-Type: text/plain; charset=utf8
-Content-Transfer-Encoding: 8bit
-
-Jüri Aedla reported that the /proc/<pid>/mem handling really isn't very
-robust, and it also doesn't match the permission checking of any of the
-other related files.
-
-This changes it to do the permission checks at open time, and instead of
-tracking the process, it tracks the VM at the time of the open. That
-simplifies the code a lot, but does mean that if you hold the file
-descriptor open over an execve(), you'll continue to read from the _old_
-VM.
-
-That is different from our previous behavior, but much simpler. If
-somebody actually finds a load where this matters, we'll need to revert
-this commit.
-
-I suspect that nobody will ever notice - because the process mapping
-addresses will also have changed as part of the execve. So you cannot
-actually usefully access the fd across a VM change simply because all
-the offsets for IO would have changed too.
-
-Reported-by: Jüri Aedla <asd@ut.ee>
-Cc: Al Viro <viro@zeniv.linux.org.uk>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
----
- fs/proc/base.c | 145 +++++++++++++++-----------------------------------------
- 1 files changed, 39 insertions(+), 106 deletions(-)
-
-diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 5485a53..662ddf2 100644
---- a/fs/proc/base.c
-+++ b/fs/proc/base.c
-@@ -198,65 +198,7 @@ static int proc_root_link(struct dentry *dentry, struct path *path)
- return result;
- }
-
--static struct mm_struct *__check_mem_permission(struct task_struct *task)
--{
-- struct mm_struct *mm;
--
-- mm = get_task_mm(task);
-- if (!mm)
-- return ERR_PTR(-EINVAL);
--
-- /*
-- * A task can always look at itself, in case it chooses
-- * to use system calls instead of load instructions.
-- */
-- if (task == current)
-- return mm;
--
-- /*
-- * If current is actively ptrace'ing, and would also be
-- * permitted to freshly attach with ptrace now, permit it.
-- */
-- if (task_is_stopped_or_traced(task)) {
-- int match;
-- rcu_read_lock();
-- match = (ptrace_parent(task) == current);
-- rcu_read_unlock();
-- if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH))
-- return mm;
-- }
--
-- /*
-- * No one else is allowed.
-- */
-- mmput(mm);
-- return ERR_PTR(-EPERM);
--}
--
--/*
-- * If current may access user memory in @task return a reference to the
-- * corresponding mm, otherwise ERR_PTR.
-- */
--static struct mm_struct *check_mem_permission(struct task_struct *task)
--{
-- struct mm_struct *mm;
-- int err;
--
-- /*
-- * Avoid racing if task exec's as we might get a new mm but validate
-- * against old credentials.
-- */
-- err = mutex_lock_killable(&task->signal->cred_guard_mutex);
-- if (err)
-- return ERR_PTR(err);
--
-- mm = __check_mem_permission(task);
-- mutex_unlock(&task->signal->cred_guard_mutex);
--
-- return mm;
--}
--
--struct mm_struct *mm_for_maps(struct task_struct *task)
-+static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
- {
- struct mm_struct *mm;
- int err;
-@@ -267,7 +209,7 @@ struct mm_struct *mm_for_maps(struct task_struct *task)
-
- mm = get_task_mm(task);
- if (mm && mm != current->mm &&
-- !ptrace_may_access(task, PTRACE_MODE_READ)) {
-+ !ptrace_may_access(task, mode)) {
- mmput(mm);
- mm = ERR_PTR(-EACCES);
- }
-@@ -276,6 +218,11 @@ struct mm_struct *mm_for_maps(struct task_struct *task)
- return mm;
- }
-
-+struct mm_struct *mm_for_maps(struct task_struct *task)
-+{
-+ return mm_access(task, PTRACE_MODE_READ);
-+}
-+
- static int proc_pid_cmdline(struct task_struct *task, char * buffer)
- {
- int res = 0;
-@@ -752,38 +699,39 @@ static const struct file_operations proc_single_file_operations = {
-
- static int mem_open(struct inode* inode, struct file* file)
- {
-- file->private_data = (void*)((long)current->self_exec_id);
-+ struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
-+ struct mm_struct *mm;
-+
-+ if (!task)
-+ return -ESRCH;
-+
-+ mm = mm_access(task, PTRACE_MODE_ATTACH);
-+ put_task_struct(task);
-+
-+ if (IS_ERR(mm))
-+ return PTR_ERR(mm);
-+
- /* OK to pass negative loff_t, we can catch out-of-range */
- file->f_mode |= FMODE_UNSIGNED_OFFSET;
-+ file->private_data = mm;
-+
- return 0;
- }
-
- static ssize_t mem_read(struct file * file, char __user * buf,
- size_t count, loff_t *ppos)
- {
-- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
-+ int ret;
- char *page;
- unsigned long src = *ppos;
-- int ret = -ESRCH;
-- struct mm_struct *mm;
-+ struct mm_struct *mm = file->private_data;
-
-- if (!task)
-- goto out_no_task;
-+ if (!mm)
-+ return 0;
-
-- ret = -ENOMEM;
- page = (char *)__get_free_page(GFP_TEMPORARY);
- if (!page)
-- goto out;
--
-- mm = check_mem_permission(task);
-- ret = PTR_ERR(mm);
-- if (IS_ERR(mm))
-- goto out_free;
--
-- ret = -EIO;
--
-- if (file->private_data != (void*)((long)current->self_exec_id))
-- goto out_put;
-+ return -ENOMEM;
-
- ret = 0;
-
-@@ -810,13 +758,7 @@ static ssize_t mem_read(struct file * file, char __user * buf,
- }
- *ppos = src;
-
--out_put:
-- mmput(mm);
--out_free:
- free_page((unsigned long) page);
--out:
-- put_task_struct(task);
--out_no_task:
- return ret;
- }
-
-@@ -825,27 +767,15 @@ static ssize_t mem_write(struct file * file, const char __user *buf,
- {
- int copied;
- char *page;
-- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
- unsigned long dst = *ppos;
-- struct mm_struct *mm;
-+ struct mm_struct *mm = file->private_data;
-
-- copied = -ESRCH;
-- if (!task)
-- goto out_no_task;
-+ if (!mm)
-+ return 0;
-
-- copied = -ENOMEM;
- page = (char *)__get_free_page(GFP_TEMPORARY);
- if (!page)
-- goto out_task;
--
-- mm = check_mem_permission(task);
-- copied = PTR_ERR(mm);
-- if (IS_ERR(mm))
-- goto out_free;
--
-- copied = -EIO;
-- if (file->private_data != (void *)((long)current->self_exec_id))
-- goto out_mm;
-+ return -ENOMEM;
-
- copied = 0;
- while (count > 0) {
-@@ -869,13 +799,7 @@ static ssize_t mem_write(struct file * file, const char __user *buf,
- }
- *ppos = dst;
-
--out_mm:
-- mmput(mm);
--out_free:
- free_page((unsigned long) page);
--out_task:
-- put_task_struct(task);
--out_no_task:
- return copied;
- }
-
-@@ -895,11 +819,20 @@ loff_t mem_lseek(struct file *file, loff_t offset, int orig)
- return file->f_pos;
- }
-
-+static int mem_release(struct inode *inode, struct file *file)
-+{
-+ struct mm_struct *mm = file->private_data;
-+
-+ mmput(mm);
-+ return 0;
-+}
-+
- static const struct file_operations proc_mem_operations = {
- .llseek = mem_lseek,
- .read = mem_read,
- .write = mem_write,
- .open = mem_open,
-+ .release = mem_release,
- };
-
- static ssize_t environ_read(struct file *file, char __user *buf,
---
-1.7.6.5
-
diff --git a/libre/linux-libre/ChangeLog b/libre/linux-libre/ChangeLog
index 173a6c3cd..bbf62fc7c 100644
--- a/libre/linux-libre/ChangeLog
+++ b/libre/linux-libre/ChangeLog
@@ -1,9 +1,14 @@
+2012-04-24 André Silva <andre.paulista@adinet.com.uy>
+
+ * linux-libre-3.3.3-1
+ * Disabled CONFIG_STUB_POULSBO module https://labs.parabola.nu/issues/90
+
2012-04-08 André Silva <andre.paulista@adinet.com.uy>
- * linux-libre 3.3.1-1.1
- * Disable CONFIG_IPW2100 and CONFIG_IPW2200 modules https://labs.parabola.nu/issues/47
+ * linux-libre-3.3.1-1.1
+ * Disabled CONFIG_IPW2100 and CONFIG_IPW2200 modules https://labs.parabola.nu/issues/47
2012-03-03 André Silva <andre.paulista@adinet.com.uy>
* linux-libre-2.3.9-2
- * Enable CONFIG_FB_VT8623 module https://labs.parabola.nu/issues/14
+ * Enabled CONFIG_FB_VT8623 module https://labs.parabola.nu/issues/14
diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD
index 8dff63ec7..45b4937e5 100644
--- a/libre/linux-libre/PKGBUILD
+++ b/libre/linux-libre/PKGBUILD
@@ -12,10 +12,10 @@ pkgname=('linux-libre' 'linux-libre-headers' 'linux-libre-docs') # Build stock -
# pkgname=linux-custom # Build kernel with a different name
_kernelname=-LIBRE
_basekernel=3.3
-_sublevel=1
+_sublevel=4
pkgver=${_basekernel}.${_sublevel}
-_lxopkgver=${_basekernel}.0 # nearly always the same as pkgver
-pkgrel=1.1
+_lxopkgver=${_basekernel}.4 # nearly always the same as pkgver
+pkgrel=2
arch=('i686' 'x86_64' 'mips64el')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
@@ -35,17 +35,17 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'ext4-options.patch'
"http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2")
md5sums=('5487da14ca81715a469c7594d39722fa'
- '58799da6f62daf1e54a256d02792b91f'
- '559487f3e438ad95f1c80aa11abf2ed0'
- 'f3749180b53d042091a483300ef04f8d'
- 'a8a3843046926eb7ab81312cd438c5c5'
+ 'ce7d959667b9f158b1fb814b5806950a'
+ '225fc118e655b0e4031aaf45656b872c'
+ 'e6b45d3ba0415d2dfbda9cdbf6dbf6f4'
+ 'e49ac236dfeef709f91a3d993ea7b62c'
'2967cecc3af9f954ccc822fd63dca6ff'
'8267264d9a8966e57fdacd1fa1fc65c4'
'04b21c79df0a952c22d681dd4f4562df'
'9d3c56a4b999c8bfbd4018089a62f662'
'263725f20c0b9eb9c353040792d644e5'
'bb7fd1aa23016c8057046b84fd4eb528'
- 'acdce5260b0fb711cb9a0fbce984f0ef')
+ 'c22b03a6351698b07cd08767d8ddeacd')
if [ "$CARCH" != "mips64el" ]; then
# Don't use the Loongson-specific patches on non-mips64el arches.
unset source[${#source[@]}-1]
@@ -71,6 +71,7 @@ build() {
# needed.
patch -Np1 -i "${srcdir}/i915-fix-ghost-tv-output.patch"
+ # Patch submitted upstream, waiting for inclusion:
# set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
# remove this when a Kconfig knob is made available by upstream
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
@@ -145,7 +146,7 @@ build() {
package_linux-libre() {
pkgdesc="The Linux-libre Kernel and modules"
groups=('base')
- depends=('coreutils' 'module-init-tools>=3.16')
+ depends=('coreutils' 'kmod')
optdepends=('crda: to set the correct wireless channels of your country')
provides=('kernel26' "linux=$pkgver")
conflicts=('kernel26' 'kernel26-libre' 'linux')
diff --git a/libre/linux-libre/config.i686 b/libre/linux-libre/config.i686
index 718c4f3b6..dd67c6ce4 100644
--- a/libre/linux-libre/config.i686
+++ b/libre/linux-libre/config.i686
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/i386 3.3.0-1 Kernel Configuration
+# Linux/i386 3.3.3-1 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -795,7 +795,8 @@ CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_ZONES=y
-# CONFIG_NF_CONNTRACK_PROCFS is not set
+CONFIG_NF_CONNTRACK_PROCFS=y
+# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CONNTRACK_TIMESTAMP=y
CONFIG_NF_CT_PROTO_DCCP=m
@@ -1166,7 +1167,30 @@ CONFIG_BQL=y
#
CONFIG_NET_PKTGEN=m
CONFIG_NET_DROP_MONITOR=y
-# CONFIG_HAMRADIO is not set
+CONFIG_HAMRADIO=y
+
+#
+# Packet Radio protocols
+#
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_SCC=m
+# CONFIG_SCC_DELAY is not set
+# CONFIG_SCC_TRXECHO is not set
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_BAYCOM_EPP=m
+CONFIG_YAM=m
# CONFIG_CAN is not set
CONFIG_IRDA=m
@@ -3892,7 +3916,7 @@ CONFIG_DRM_VMWGFX=m
CONFIG_DRM_GMA500=m
CONFIG_DRM_GMA600=y
CONFIG_DRM_GMA3600=y
-CONFIG_STUB_POULSBO=m
+# CONFIG_STUB_POULSBO is not set
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
@@ -4774,7 +4798,135 @@ CONFIG_USBIP_HOST=m
CONFIG_W35UND=m
CONFIG_PRISM2_USB=m
CONFIG_ECHO=m
-# CONFIG_COMEDI is not set
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_MISC_DRIVERS=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_SERIAL2002=m
+CONFIG_COMEDI_SKEL=m
+CONFIG_COMEDI_ISA_DRIVERS=m
+CONFIG_COMEDI_ACL7225B=m
+CONFIG_COMEDI_PCL711=m
+CONFIG_COMEDI_PCL724=m
+CONFIG_COMEDI_PCL725=m
+CONFIG_COMEDI_PCL726=m
+CONFIG_COMEDI_PCL730=m
+CONFIG_COMEDI_PCL812=m
+CONFIG_COMEDI_PCL816=m
+CONFIG_COMEDI_PCL818=m
+CONFIG_COMEDI_PCM3724=m
+CONFIG_COMEDI_PCM3730=m
+CONFIG_COMEDI_RTI800=m
+CONFIG_COMEDI_RTI802=m
+CONFIG_COMEDI_DAS16M1=m
+CONFIG_COMEDI_DAS16=m
+CONFIG_COMEDI_DAS800=m
+CONFIG_COMEDI_DAS1800=m
+CONFIG_COMEDI_DAS6402=m
+CONFIG_COMEDI_DT2801=m
+CONFIG_COMEDI_DT2811=m
+CONFIG_COMEDI_DT2814=m
+CONFIG_COMEDI_DT2815=m
+CONFIG_COMEDI_DT2817=m
+CONFIG_COMEDI_DT282X=m
+CONFIG_COMEDI_DMM32AT=m
+CONFIG_COMEDI_FL512=m
+CONFIG_COMEDI_AIO_AIO12_8=m
+CONFIG_COMEDI_AIO_IIRO_16=m
+CONFIG_COMEDI_C6XDIGIO=m
+CONFIG_COMEDI_MPC624=m
+CONFIG_COMEDI_ADQ12B=m
+CONFIG_COMEDI_NI_AT_A2150=m
+CONFIG_COMEDI_NI_AT_AO=m
+CONFIG_COMEDI_NI_ATMIO=m
+CONFIG_COMEDI_NI_ATMIO16D=m
+CONFIG_COMEDI_PCMAD=m
+CONFIG_COMEDI_PCMDA12=m
+CONFIG_COMEDI_PCMMIO=m
+CONFIG_COMEDI_PCMUIO=m
+CONFIG_COMEDI_MULTIQ3=m
+CONFIG_COMEDI_POC=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_ADDI_APCI_035=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2016=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3001=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7230=m
+CONFIG_COMEDI_ADL_PCI7296=m
+CONFIG_COMEDI_ADL_PCI7432=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC263=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_DYNA_PCI10XX=m
+CONFIG_COMEDI_UNIOXX5=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIDIO=m
+# CONFIG_COMEDI_CB_PCIMDAS is not set
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_SSV_DNP=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_USBDUXSIGMA=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMEDI_NI_COMMON=m
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_FC=m
# CONFIG_FB_OLPC_DCON is not set
CONFIG_ASUS_OLED=m
# CONFIG_PANEL is not set
@@ -4786,7 +4938,6 @@ CONFIG_RTLLIB_CRYPTO_TKIP=m
CONFIG_RTLLIB_CRYPTO_WEP=m
CONFIG_RTL8192E=m
CONFIG_R8712U=m
-CONFIG_R8712_AP=y
CONFIG_RTS_PSTOR=m
# CONFIG_RTS_PSTOR_DEBUG is not set
CONFIG_RTS5139=m
diff --git a/libre/linux-libre/config.x86_64 b/libre/linux-libre/config.x86_64
index 454a61b84..22ac05afb 100644
--- a/libre/linux-libre/config.x86_64
+++ b/libre/linux-libre/config.x86_64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86_64 3.3.0-1 Kernel Configuration
+# Linux/x86_64 3.3.4-1 Kernel Configuration
#
CONFIG_64BIT=y
# CONFIG_X86_32 is not set
@@ -757,7 +757,7 @@ CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_ZONES=y
-# CONFIG_NF_CONNTRACK_PROCFS is not set
+CONFIG_NF_CONNTRACK_PROCFS=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CONNTRACK_TIMESTAMP=y
CONFIG_NF_CT_PROTO_DCCP=m
@@ -914,6 +914,7 @@ CONFIG_IP_VS_PE_SIP=m
#
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
+# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_AH=m
@@ -1126,7 +1127,26 @@ CONFIG_BPF_JIT=y
#
CONFIG_NET_PKTGEN=m
CONFIG_NET_DROP_MONITOR=y
-# CONFIG_HAMRADIO is not set
+CONFIG_HAMRADIO=y
+
+#
+# Packet Radio protocols
+#
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_YAM=m
# CONFIG_CAN is not set
CONFIG_IRDA=m
@@ -3735,7 +3755,7 @@ CONFIG_DRM_VMWGFX=m
CONFIG_DRM_GMA500=m
CONFIG_DRM_GMA600=y
CONFIG_DRM_GMA3600=y
-CONFIG_STUB_POULSBO=m
+# CONFIG_STUB_POULSBO is not set
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
@@ -4593,7 +4613,93 @@ CONFIG_USBIP_HOST=m
CONFIG_W35UND=m
CONFIG_PRISM2_USB=m
CONFIG_ECHO=m
-# CONFIG_COMEDI is not set
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_MISC_DRIVERS=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_SERIAL2002=m
+CONFIG_COMEDI_SKEL=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_ADDI_APCI_035=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2016=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3001=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7230=m
+CONFIG_COMEDI_ADL_PCI7296=m
+CONFIG_COMEDI_ADL_PCI7432=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC263=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_DYNA_PCI10XX=m
+CONFIG_COMEDI_UNIOXX5=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIDIO=m
+CONFIG_COMEDI_CB_PCIMDAS=m
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_SSV_DNP=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_USBDUXSIGMA=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMEDI_NI_COMMON=m
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_FC=m
CONFIG_ASUS_OLED=m
# CONFIG_PANEL is not set
CONFIG_R8187SE=m
@@ -4604,7 +4710,6 @@ CONFIG_RTLLIB_CRYPTO_TKIP=m
CONFIG_RTLLIB_CRYPTO_WEP=m
CONFIG_RTL8192E=m
CONFIG_R8712U=m
-CONFIG_R8712_AP=y
CONFIG_RTS_PSTOR=m
# CONFIG_RTS_PSTOR_DEBUG is not set
CONFIG_RTS5139=m
diff --git a/libre/linux-libre/dib0700-fix.patch b/libre/linux-libre/dib0700-fix.patch
deleted file mode 100644
index 48f07e6fd..000000000
--- a/libre/linux-libre/dib0700-fix.patch
+++ /dev/null
@@ -1,1487 +0,0 @@
-commit 198c545cd7306dc90aaae1d61e64175e70a70dc8
-Author: Patrick Boettcher <Patrick.Boettcher@dibcom.fr>
-Date: Wed Aug 3 17:08:21 2011 +0200
-
- [media] DiBcom: protect the I2C bufer access
-
- This patch protect the I2C buffer access in order to manage concurrent
- access. This protection is done using mutex.
- Furthermore, for the dib9000, if a pid filtering command is
- received during the tuning, this pid filtering command is delayed to
- avoid any concurrent access issue.
-
- Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
- Cc: Florian Mickler <florian@mickler.org>
- Cc: stable@kernel.org
-
- Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
- Signed-off-by: Patrick Boettcher <Patrick.Boettcher@dibcom.fr>
-
-diff --git a/drivers/media/dvb/frontends/dib0070.c b/drivers/media/dvb/frontends/dib0070.c
-index 1d47d4d..dc1cb17 100644
---- a/drivers/media/dvb/frontends/dib0070.c
-+++ b/drivers/media/dvb/frontends/dib0070.c
-@@ -27,6 +27,7 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dvb_frontend.h"
-
-@@ -78,10 +79,18 @@ struct dib0070_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[3];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
--static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg)
-+static u16 dib0070_read_reg(struct dib0070_state *state, u8 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg;
-
- memset(state->msg, 0, 2 * sizeof(struct i2c_msg));
-@@ -96,13 +105,23 @@ static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg)
-
- if (i2c_transfer(state->i2c, state->msg, 2) != 2) {
- printk(KERN_WARNING "DiB0070 I2C read failed\n");
-- return 0;
-- }
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = 0;
-+ } else
-+ ret = (state->i2c_read_buffer[0] << 8)
-+ | state->i2c_read_buffer[1];
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
- state->i2c_write_buffer[0] = reg;
- state->i2c_write_buffer[1] = val >> 8;
- state->i2c_write_buffer[2] = val & 0xff;
-@@ -115,9 +134,12 @@ static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val)
-
- if (i2c_transfer(state->i2c, state->msg, 1) != 1) {
- printk(KERN_WARNING "DiB0070 I2C write failed\n");
-- return -EREMOTEIO;
-- }
-- return 0;
-+ ret = -EREMOTEIO;
-+ } else
-+ ret = 0;
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- #define HARD_RESET(state) do { \
-@@ -734,6 +756,7 @@ struct dvb_frontend *dib0070_attach(struct dvb_frontend *fe, struct i2c_adapter
- state->cfg = cfg;
- state->i2c = i2c;
- state->fe = fe;
-+ mutex_init(&state->i2c_buffer_lock);
- fe->tuner_priv = state;
-
- if (dib0070_reset(fe) != 0)
-diff --git a/drivers/media/dvb/frontends/dib0090.c b/drivers/media/dvb/frontends/dib0090.c
-index c9c935a..b174d1c 100644
---- a/drivers/media/dvb/frontends/dib0090.c
-+++ b/drivers/media/dvb/frontends/dib0090.c
-@@ -27,6 +27,7 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dvb_frontend.h"
-
-@@ -196,6 +197,7 @@ struct dib0090_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[3];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- struct dib0090_fw_state {
-@@ -208,10 +210,18 @@ struct dib0090_fw_state {
- struct i2c_msg msg;
- u8 i2c_write_buffer[2];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg;
-
- memset(state->msg, 0, 2 * sizeof(struct i2c_msg));
-@@ -226,14 +236,24 @@ static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg)
-
- if (i2c_transfer(state->i2c, state->msg, 2) != 2) {
- printk(KERN_WARNING "DiB0090 I2C read failed\n");
-- return 0;
-- }
-+ ret = 0;
-+ } else
-+ ret = (state->i2c_read_buffer[0] << 8)
-+ | state->i2c_read_buffer[1];
-
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = reg & 0xff;
- state->i2c_write_buffer[1] = val >> 8;
- state->i2c_write_buffer[2] = val & 0xff;
-@@ -246,13 +266,23 @@ static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val)
-
- if (i2c_transfer(state->i2c, state->msg, 1) != 1) {
- printk(KERN_WARNING "DiB0090 I2C write failed\n");
-- return -EREMOTEIO;
-- }
-- return 0;
-+ ret = -EREMOTEIO;
-+ } else
-+ ret = 0;
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg;
-
- memset(&state->msg, 0, sizeof(struct i2c_msg));
-@@ -262,13 +292,24 @@ static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg)
- state->msg.len = 2;
- if (i2c_transfer(state->i2c, &state->msg, 1) != 1) {
- printk(KERN_WARNING "DiB0090 I2C read failed\n");
-- return 0;
-- }
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = 0;
-+ } else
-+ ret = (state->i2c_read_buffer[0] << 8)
-+ | state->i2c_read_buffer[1];
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = val >> 8;
- state->i2c_write_buffer[1] = val & 0xff;
-
-@@ -279,9 +320,12 @@ static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val)
- state->msg.len = 2;
- if (i2c_transfer(state->i2c, &state->msg, 1) != 1) {
- printk(KERN_WARNING "DiB0090 I2C write failed\n");
-- return -EREMOTEIO;
-- }
-- return 0;
-+ ret = -EREMOTEIO;
-+ } else
-+ ret = 0;
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- #define HARD_RESET(state) do { if (cfg->reset) { if (cfg->sleep) cfg->sleep(fe, 0); msleep(10); cfg->reset(fe, 1); msleep(10); cfg->reset(fe, 0); msleep(10); } } while (0)
-@@ -2440,6 +2484,7 @@ struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapte
- st->config = config;
- st->i2c = i2c;
- st->fe = fe;
-+ mutex_init(&st->i2c_buffer_lock);
- fe->tuner_priv = st;
-
- if (config->wbd == NULL)
-@@ -2471,6 +2516,7 @@ struct dvb_frontend *dib0090_fw_register(struct dvb_frontend *fe, struct i2c_ada
- st->config = config;
- st->i2c = i2c;
- st->fe = fe;
-+ mutex_init(&st->i2c_buffer_lock);
- fe->tuner_priv = st;
-
- if (dib0090_fw_reset_digital(fe, st->config) != 0)
-diff --git a/drivers/media/dvb/frontends/dib7000m.c b/drivers/media/dvb/frontends/dib7000m.c
-index 79cb1c2..dbb76d7 100644
---- a/drivers/media/dvb/frontends/dib7000m.c
-+++ b/drivers/media/dvb/frontends/dib7000m.c
-@@ -11,6 +11,7 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dvb_frontend.h"
-
-@@ -55,6 +56,7 @@ struct dib7000m_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[4];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- enum dib7000m_power_mode {
-@@ -69,6 +71,13 @@ enum dib7000m_power_mode {
-
- static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = (reg >> 8) | 0x80;
- state->i2c_write_buffer[1] = reg & 0xff;
-
-@@ -85,11 +94,21 @@ static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg)
- if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2)
- dprintk("i2c read error on %d",reg);
-
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ mutex_unlock(&state->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = (reg >> 8) & 0xff;
- state->i2c_write_buffer[1] = reg & 0xff;
- state->i2c_write_buffer[2] = (val >> 8) & 0xff;
-@@ -101,7 +120,10 @@ static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val)
- state->msg[0].buf = state->i2c_write_buffer;
- state->msg[0].len = 4;
-
-- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ?
-+ -EREMOTEIO : 0);
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
- static void dib7000m_write_tab(struct dib7000m_state *state, u16 *buf)
- {
-@@ -1385,6 +1407,7 @@ struct dvb_frontend * dib7000m_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr,
- demod = &st->demod;
- demod->demodulator_priv = st;
- memcpy(&st->demod.ops, &dib7000m_ops, sizeof(struct dvb_frontend_ops));
-+ mutex_init(&st->i2c_buffer_lock);
-
- st->timf_default = cfg->bw->timf;
-
-diff --git a/drivers/media/dvb/frontends/dib7000p.c b/drivers/media/dvb/frontends/dib7000p.c
-index 0c9f40c..292bc19 100644
---- a/drivers/media/dvb/frontends/dib7000p.c
-+++ b/drivers/media/dvb/frontends/dib7000p.c
-@@ -10,6 +10,7 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dvb_math.h"
- #include "dvb_frontend.h"
-@@ -68,6 +69,7 @@ struct dib7000p_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[4];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- enum dib7000p_power_mode {
-@@ -81,6 +83,13 @@ static int dib7090_set_diversity_in(struct dvb_frontend *fe, int onoff);
-
- static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg >> 8;
- state->i2c_write_buffer[1] = reg & 0xff;
-
-@@ -97,11 +106,20 @@ static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg)
- if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2)
- dprintk("i2c read error on %d", reg);
-
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = (reg >> 8) & 0xff;
- state->i2c_write_buffer[1] = reg & 0xff;
- state->i2c_write_buffer[2] = (val >> 8) & 0xff;
-@@ -113,7 +131,10 @@ static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val)
- state->msg[0].buf = state->i2c_write_buffer;
- state->msg[0].len = 4;
-
-- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ?
-+ -EREMOTEIO : 0);
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static void dib7000p_write_tab(struct dib7000p_state *state, u16 * buf)
-@@ -1646,6 +1667,7 @@ int dib7000p_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 defau
- return -ENOMEM;
-
- dpst->i2c_adap = i2c;
-+ mutex_init(&dpst->i2c_buffer_lock);
-
- for (k = no_of_demods - 1; k >= 0; k--) {
- dpst->cfg = cfg[k];
-@@ -2324,6 +2346,7 @@ struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr,
- demod = &st->demod;
- demod->demodulator_priv = st;
- memcpy(&st->demod.ops, &dib7000p_ops, sizeof(struct dvb_frontend_ops));
-+ mutex_init(&st->i2c_buffer_lock);
-
- dib7000p_write_word(st, 1287, 0x0003); /* sram lead in, rdy */
-
-@@ -2333,8 +2356,9 @@ struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr,
- st->version = dib7000p_read_word(st, 897);
-
- /* FIXME: make sure the dev.parent field is initialized, or else
-- request_firmware() will hit an OOPS (this should be moved somewhere
-- more common) */
-+ request_firmware() will hit an OOPS (this should be moved somewhere
-+ more common) */
-+ st->i2c_master.gated_tuner_i2c_adap.dev.parent = i2c_adap->dev.parent;
-
- dibx000_init_i2c_master(&st->i2c_master, DIB7000P, st->i2c_adap, st->i2c_addr);
-
-diff --git a/drivers/media/dvb/frontends/dib8000.c b/drivers/media/dvb/frontends/dib8000.c
-index 7d2ea11..fe284d5 100644
---- a/drivers/media/dvb/frontends/dib8000.c
-+++ b/drivers/media/dvb/frontends/dib8000.c
-@@ -10,6 +10,8 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-+
- #include "dvb_math.h"
-
- #include "dvb_frontend.h"
-@@ -37,6 +39,7 @@ struct i2c_device {
- u8 addr;
- u8 *i2c_write_buffer;
- u8 *i2c_read_buffer;
-+ struct mutex *i2c_buffer_lock;
- };
-
- struct dib8000_state {
-@@ -77,6 +80,7 @@ struct dib8000_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[4];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- enum dib8000_power_mode {
-@@ -86,24 +90,39 @@ enum dib8000_power_mode {
-
- static u16 dib8000_i2c_read16(struct i2c_device *i2c, u16 reg)
- {
-+ u16 ret;
- struct i2c_msg msg[2] = {
-- {.addr = i2c->addr >> 1, .flags = 0,
-- .buf = i2c->i2c_write_buffer, .len = 2},
-- {.addr = i2c->addr >> 1, .flags = I2C_M_RD,
-- .buf = i2c->i2c_read_buffer, .len = 2},
-+ {.addr = i2c->addr >> 1, .flags = 0, .len = 2},
-+ {.addr = i2c->addr >> 1, .flags = I2C_M_RD, .len = 2},
- };
-
-+ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
-+ msg[0].buf = i2c->i2c_write_buffer;
- msg[0].buf[0] = reg >> 8;
- msg[0].buf[1] = reg & 0xff;
-+ msg[1].buf = i2c->i2c_read_buffer;
-
- if (i2c_transfer(i2c->adap, msg, 2) != 2)
- dprintk("i2c read error on %d", reg);
-
-- return (msg[1].buf[0] << 8) | msg[1].buf[1];
-+ ret = (msg[1].buf[0] << 8) | msg[1].buf[1];
-+ mutex_unlock(i2c->i2c_buffer_lock);
-+ return ret;
- }
-
- static u16 dib8000_read_word(struct dib8000_state *state, u16 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg >> 8;
- state->i2c_write_buffer[1] = reg & 0xff;
-
-@@ -120,7 +139,10 @@ static u16 dib8000_read_word(struct dib8000_state *state, u16 reg)
- if (i2c_transfer(state->i2c.adap, state->msg, 2) != 2)
- dprintk("i2c read error on %d", reg);
-
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ mutex_unlock(&state->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static u32 dib8000_read32(struct dib8000_state *state, u16 reg)
-@@ -135,22 +157,35 @@ static u32 dib8000_read32(struct dib8000_state *state, u16 reg)
-
- static int dib8000_i2c_write16(struct i2c_device *i2c, u16 reg, u16 val)
- {
-- struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0,
-- .buf = i2c->i2c_write_buffer, .len = 4};
-+ struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0, .len = 4};
- int ret = 0;
-
-+ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
-+ msg.buf = i2c->i2c_write_buffer;
- msg.buf[0] = (reg >> 8) & 0xff;
- msg.buf[1] = reg & 0xff;
- msg.buf[2] = (val >> 8) & 0xff;
- msg.buf[3] = val & 0xff;
-
- ret = i2c_transfer(i2c->adap, &msg, 1) != 1 ? -EREMOTEIO : 0;
-+ mutex_unlock(i2c->i2c_buffer_lock);
-
- return ret;
- }
-
- static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = (reg >> 8) & 0xff;
- state->i2c_write_buffer[1] = reg & 0xff;
- state->i2c_write_buffer[2] = (val >> 8) & 0xff;
-@@ -162,7 +197,11 @@ static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val)
- state->msg[0].buf = state->i2c_write_buffer;
- state->msg[0].len = 4;
-
-- return i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ ret = (i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ?
-+ -EREMOTEIO : 0);
-+ mutex_unlock(&state->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static const s16 coeff_2k_sb_1seg_dqpsk[8] = {
-@@ -2434,8 +2473,15 @@ int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 defau
- if (!client.i2c_read_buffer) {
- dprintk("%s: not enough memory", __func__);
- ret = -ENOMEM;
-- goto error_memory;
-+ goto error_memory_read;
-+ }
-+ client.i2c_buffer_lock = kzalloc(sizeof(struct mutex), GFP_KERNEL);
-+ if (!client.i2c_buffer_lock) {
-+ dprintk("%s: not enough memory", __func__);
-+ ret = -ENOMEM;
-+ goto error_memory_lock;
- }
-+ mutex_init(client.i2c_buffer_lock);
-
- for (k = no_of_demods - 1; k >= 0; k--) {
- /* designated i2c address */
-@@ -2476,8 +2522,10 @@ int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 defau
- }
-
- error:
-+ kfree(client.i2c_buffer_lock);
-+error_memory_lock:
- kfree(client.i2c_read_buffer);
--error_memory:
-+error_memory_read:
- kfree(client.i2c_write_buffer);
-
- return ret;
-@@ -2581,6 +2629,8 @@ struct dvb_frontend *dib8000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, s
- state->i2c.addr = i2c_addr;
- state->i2c.i2c_write_buffer = state->i2c_write_buffer;
- state->i2c.i2c_read_buffer = state->i2c_read_buffer;
-+ mutex_init(&state->i2c_buffer_lock);
-+ state->i2c.i2c_buffer_lock = &state->i2c_buffer_lock;
- state->gpio_val = cfg->gpio_val;
- state->gpio_dir = cfg->gpio_dir;
-
-diff --git a/drivers/media/dvb/frontends/dib9000.c b/drivers/media/dvb/frontends/dib9000.c
-index a085588..b931074 100644
---- a/drivers/media/dvb/frontends/dib9000.c
-+++ b/drivers/media/dvb/frontends/dib9000.c
-@@ -38,6 +38,15 @@ struct i2c_device {
- #define DibInitLock(lock) mutex_init(lock)
- #define DibFreeLock(lock)
-
-+struct dib9000_pid_ctrl {
-+#define DIB9000_PID_FILTER_CTRL 0
-+#define DIB9000_PID_FILTER 1
-+ u8 cmd;
-+ u8 id;
-+ u16 pid;
-+ u8 onoff;
-+};
-+
- struct dib9000_state {
- struct i2c_device i2c;
-
-@@ -99,6 +108,10 @@ struct dib9000_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[255];
- u8 i2c_read_buffer[255];
-+ DIB_LOCK demod_lock;
-+ u8 get_frontend_internal;
-+ struct dib9000_pid_ctrl pid_ctrl[10];
-+ s8 pid_ctrl_index; /* -1: empty list; -2: do not use the list */
- };
-
- static const u32 fe_info[44] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-@@ -1743,19 +1756,56 @@ EXPORT_SYMBOL(dib9000_set_gpio);
- int dib9000_fw_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff)
- {
- struct dib9000_state *state = fe->demodulator_priv;
-- u16 val = dib9000_read_word(state, 294 + 1) & 0xffef;
-+ u16 val;
-+ int ret;
-+
-+ if ((state->pid_ctrl_index != -2) && (state->pid_ctrl_index < 9)) {
-+ /* postpone the pid filtering cmd */
-+ dprintk("pid filter cmd postpone");
-+ state->pid_ctrl_index++;
-+ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER_CTRL;
-+ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff;
-+ return 0;
-+ }
-+
-+ DibAcquireLock(&state->demod_lock);
-+
-+ val = dib9000_read_word(state, 294 + 1) & 0xffef;
- val |= (onoff & 0x1) << 4;
-
- dprintk("PID filter enabled %d", onoff);
-- return dib9000_write_word(state, 294 + 1, val);
-+ ret = dib9000_write_word(state, 294 + 1, val);
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
-+
- }
- EXPORT_SYMBOL(dib9000_fw_pid_filter_ctrl);
-
- int dib9000_fw_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff)
- {
- struct dib9000_state *state = fe->demodulator_priv;
-+ int ret;
-+
-+ if (state->pid_ctrl_index != -2) {
-+ /* postpone the pid filtering cmd */
-+ dprintk("pid filter postpone");
-+ if (state->pid_ctrl_index < 9) {
-+ state->pid_ctrl_index++;
-+ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER;
-+ state->pid_ctrl[state->pid_ctrl_index].id = id;
-+ state->pid_ctrl[state->pid_ctrl_index].pid = pid;
-+ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff;
-+ } else
-+ dprintk("can not add any more pid ctrl cmd");
-+ return 0;
-+ }
-+
-+ DibAcquireLock(&state->demod_lock);
- dprintk("Index %x, PID %d, OnOff %d", id, pid, onoff);
-- return dib9000_write_word(state, 300 + 1 + id, onoff ? (1 << 13) | pid : 0);
-+ ret = dib9000_write_word(state, 300 + 1 + id,
-+ onoff ? (1 << 13) | pid : 0);
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
- EXPORT_SYMBOL(dib9000_fw_pid_filter);
-
-@@ -1778,6 +1828,7 @@ static void dib9000_release(struct dvb_frontend *demod)
- DibFreeLock(&state->platform.risc.mbx_lock);
- DibFreeLock(&state->platform.risc.mem_lock);
- DibFreeLock(&state->platform.risc.mem_mbx_lock);
-+ DibFreeLock(&state->demod_lock);
- dibx000_exit_i2c_master(&st->i2c_master);
-
- i2c_del_adapter(&st->tuner_adap);
-@@ -1795,14 +1846,19 @@ static int dib9000_sleep(struct dvb_frontend *fe)
- {
- struct dib9000_state *state = fe->demodulator_priv;
- u8 index_frontend;
-- int ret;
-+ int ret = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) {
- ret = state->fe[index_frontend]->ops.sleep(state->fe[index_frontend]);
- if (ret < 0)
-- return ret;
-+ goto error;
- }
-- return dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0);
-+ ret = dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0);
-+
-+error:
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- static int dib9000_fe_get_tune_settings(struct dvb_frontend *fe, struct dvb_frontend_tune_settings *tune)
-@@ -1816,7 +1872,10 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- struct dib9000_state *state = fe->demodulator_priv;
- u8 index_frontend, sub_index_frontend;
- fe_status_t stat;
-- int ret;
-+ int ret = 0;
-+
-+ if (state->get_frontend_internal == 0)
-+ DibAcquireLock(&state->demod_lock);
-
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) {
- state->fe[index_frontend]->ops.read_status(state->fe[index_frontend], &stat);
-@@ -1846,14 +1905,15 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- state->fe[index_frontend]->dtv_property_cache.rolloff;
- }
- }
-- return 0;
-+ ret = 0;
-+ goto return_value;
- }
- }
-
- /* get the channel from master chip */
- ret = dib9000_fw_get_channel(fe, fep);
- if (ret != 0)
-- return ret;
-+ goto return_value;
-
- /* synchronize the cache with the other frontends */
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) {
-@@ -1866,8 +1926,12 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- state->fe[index_frontend]->dtv_property_cache.code_rate_LP = fe->dtv_property_cache.code_rate_LP;
- state->fe[index_frontend]->dtv_property_cache.rolloff = fe->dtv_property_cache.rolloff;
- }
-+ ret = 0;
-
-- return 0;
-+return_value:
-+ if (state->get_frontend_internal == 0)
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- static int dib9000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state)
-@@ -1912,6 +1976,10 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- dprintk("dib9000: must specify bandwidth ");
- return 0;
- }
-+
-+ state->pid_ctrl_index = -1; /* postpone the pid filtering cmd */
-+ DibAcquireLock(&state->demod_lock);
-+
- fe->dtv_property_cache.delivery_system = SYS_DVBT;
-
- /* set the master status */
-@@ -1974,13 +2042,18 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- /* check the tune result */
- if (exit_condition == 1) { /* tune failed */
- dprintk("tune failed");
-+ DibReleaseLock(&state->demod_lock);
-+ /* tune failed; put all the pid filtering cmd to junk */
-+ state->pid_ctrl_index = -1;
- return 0;
- }
-
- dprintk("tune success on frontend%i", index_frontend_success);
-
- /* synchronize all the channel cache */
-+ state->get_frontend_internal = 1;
- dib9000_get_frontend(state->fe[0], fep);
-+ state->get_frontend_internal = 0;
-
- /* retune the other frontends with the found channel */
- channel_status.status = CHANNEL_STATUS_PARAMETERS_SET;
-@@ -2025,6 +2098,28 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- /* turn off the diversity for the last frontend */
- dib9000_fw_set_diversity_in(state->fe[index_frontend - 1], 0);
-
-+ DibReleaseLock(&state->demod_lock);
-+ if (state->pid_ctrl_index >= 0) {
-+ u8 index_pid_filter_cmd;
-+ u8 pid_ctrl_index = state->pid_ctrl_index;
-+
-+ state->pid_ctrl_index = -2;
-+ for (index_pid_filter_cmd = 0;
-+ index_pid_filter_cmd <= pid_ctrl_index;
-+ index_pid_filter_cmd++) {
-+ if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER_CTRL)
-+ dib9000_fw_pid_filter_ctrl(state->fe[0],
-+ state->pid_ctrl[index_pid_filter_cmd].onoff);
-+ else if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER)
-+ dib9000_fw_pid_filter(state->fe[0],
-+ state->pid_ctrl[index_pid_filter_cmd].id,
-+ state->pid_ctrl[index_pid_filter_cmd].pid,
-+ state->pid_ctrl[index_pid_filter_cmd].onoff);
-+ }
-+ }
-+ /* do not postpone any more the pid filtering */
-+ state->pid_ctrl_index = -2;
-+
- return 0;
- }
-
-@@ -2041,6 +2136,7 @@ static int dib9000_read_status(struct dvb_frontend *fe, fe_status_t * stat)
- u8 index_frontend;
- u16 lock = 0, lock_slave = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++)
- lock_slave |= dib9000_read_lock(state->fe[index_frontend]);
-
-@@ -2059,6 +2155,8 @@ static int dib9000_read_status(struct dvb_frontend *fe, fe_status_t * stat)
- if ((lock & 0x0008) || (lock_slave & 0x0008))
- *stat |= FE_HAS_LOCK;
-
-+ DibReleaseLock(&state->demod_lock);
-+
- return 0;
- }
-
-@@ -2066,10 +2164,14 @@ static int dib9000_read_ber(struct dvb_frontend *fe, u32 * ber)
- {
- struct dib9000_state *state = fe->demodulator_priv;
- u16 *c;
-+ int ret = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- DibAcquireLock(&state->platform.risc.mem_mbx_lock);
-- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0)
-- return -EIO;
-+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) {
-+ ret = -EIO;
-+ goto error;
-+ }
- dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR,
- state->i2c_read_buffer, 16 * 2);
- DibReleaseLock(&state->platform.risc.mem_mbx_lock);
-@@ -2077,7 +2179,10 @@ static int dib9000_read_ber(struct dvb_frontend *fe, u32 * ber)
- c = (u16 *)state->i2c_read_buffer;
-
- *ber = c[10] << 16 | c[11];
-- return 0;
-+
-+error:
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength)
-@@ -2086,7 +2191,9 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength)
- u8 index_frontend;
- u16 *c = (u16 *)state->i2c_read_buffer;
- u16 val;
-+ int ret = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- *strength = 0;
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) {
- state->fe[index_frontend]->ops.read_signal_strength(state->fe[index_frontend], &val);
-@@ -2097,8 +2204,10 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength)
- }
-
- DibAcquireLock(&state->platform.risc.mem_mbx_lock);
-- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0)
-- return -EIO;
-+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) {
-+ ret = -EIO;
-+ goto error;
-+ }
- dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2);
- DibReleaseLock(&state->platform.risc.mem_mbx_lock);
-
-@@ -2107,7 +2216,10 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength)
- *strength = 65535;
- else
- *strength += val;
-- return 0;
-+
-+error:
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- static u32 dib9000_get_snr(struct dvb_frontend *fe)
-@@ -2151,6 +2263,7 @@ static int dib9000_read_snr(struct dvb_frontend *fe, u16 * snr)
- u8 index_frontend;
- u32 snr_master;
-
-+ DibAcquireLock(&state->demod_lock);
- snr_master = dib9000_get_snr(fe);
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++)
- snr_master += dib9000_get_snr(state->fe[index_frontend]);
-@@ -2161,6 +2274,8 @@ static int dib9000_read_snr(struct dvb_frontend *fe, u16 * snr)
- } else
- *snr = 0;
-
-+ DibReleaseLock(&state->demod_lock);
-+
- return 0;
- }
-
-@@ -2168,15 +2283,22 @@ static int dib9000_read_unc_blocks(struct dvb_frontend *fe, u32 * unc)
- {
- struct dib9000_state *state = fe->demodulator_priv;
- u16 *c = (u16 *)state->i2c_read_buffer;
-+ int ret = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- DibAcquireLock(&state->platform.risc.mem_mbx_lock);
-- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0)
-- return -EIO;
-+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) {
-+ ret = -EIO;
-+ goto error;
-+ }
- dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2);
- DibReleaseLock(&state->platform.risc.mem_mbx_lock);
-
- *unc = c[12];
-- return 0;
-+
-+error:
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- int dib9000_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 default_addr, u8 first_addr)
-@@ -2322,6 +2444,10 @@ struct dvb_frontend *dib9000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, c
- DibInitLock(&st->platform.risc.mbx_lock);
- DibInitLock(&st->platform.risc.mem_lock);
- DibInitLock(&st->platform.risc.mem_mbx_lock);
-+ DibInitLock(&st->demod_lock);
-+ st->get_frontend_internal = 0;
-+
-+ st->pid_ctrl_index = -2;
-
- st->fe[0] = fe;
- fe->demodulator_priv = st;
-diff --git a/drivers/media/dvb/frontends/dibx000_common.c b/drivers/media/dvb/frontends/dibx000_common.c
-index dc5d17a..774d507 100644
---- a/drivers/media/dvb/frontends/dibx000_common.c
-+++ b/drivers/media/dvb/frontends/dibx000_common.c
-@@ -1,4 +1,5 @@
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dibx000_common.h"
-
-@@ -10,6 +11,13 @@ MODULE_PARM_DESC(debug, "turn on debugging (default: 0)");
-
- static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- mst->i2c_write_buffer[0] = (reg >> 8) & 0xff;
- mst->i2c_write_buffer[1] = reg & 0xff;
- mst->i2c_write_buffer[2] = (val >> 8) & 0xff;
-@@ -21,11 +29,21 @@ static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val)
- mst->msg[0].buf = mst->i2c_write_buffer;
- mst->msg[0].len = 4;
-
-- return i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ ret = i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ mutex_unlock(&mst->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- mst->i2c_write_buffer[0] = reg >> 8;
- mst->i2c_write_buffer[1] = reg & 0xff;
-
-@@ -42,7 +60,10 @@ static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg)
- if (i2c_transfer(mst->i2c_adap, mst->msg, 2) != 2)
- dprintk("i2c read error on %d", reg);
-
-- return (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1];
-+ ret = (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1];
-+ mutex_unlock(&mst->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static int dibx000_is_i2c_done(struct dibx000_i2c_master *mst)
-@@ -257,6 +278,7 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap,
- struct i2c_msg msg[], int num)
- {
- struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap);
-+ int ret;
-
- if (num > 32) {
- dprintk("%s: too much I2C message to be transmitted (%i).\
-@@ -264,10 +286,15 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap,
- return -ENOMEM;
- }
-
-- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num));
--
- dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_GPIO_6_7);
-
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
-+ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num));
-+
- /* open the gate */
- dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1);
- mst->msg[0].addr = mst->i2c_addr;
-@@ -282,7 +309,11 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap,
- mst->msg[num + 1].buf = &mst->i2c_write_buffer[4];
- mst->msg[num + 1].len = 4;
-
-- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO;
-+ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ?
-+ num : -EIO);
-+
-+ mutex_unlock(&mst->i2c_buffer_lock);
-+ return ret;
- }
-
- static struct i2c_algorithm dibx000_i2c_gated_gpio67_algo = {
-@@ -294,6 +325,7 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap,
- struct i2c_msg msg[], int num)
- {
- struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap);
-+ int ret;
-
- if (num > 32) {
- dprintk("%s: too much I2C message to be transmitted (%i).\
-@@ -301,10 +333,14 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap,
- return -ENOMEM;
- }
-
-- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num));
--
- dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_TUNER);
-
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num));
-+
- /* open the gate */
- dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1);
- mst->msg[0].addr = mst->i2c_addr;
-@@ -319,7 +355,10 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap,
- mst->msg[num + 1].buf = &mst->i2c_write_buffer[4];
- mst->msg[num + 1].len = 4;
-
-- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO;
-+ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ?
-+ num : -EIO);
-+ mutex_unlock(&mst->i2c_buffer_lock);
-+ return ret;
- }
-
- static struct i2c_algorithm dibx000_i2c_gated_tuner_algo = {
-@@ -390,8 +429,18 @@ static int i2c_adapter_init(struct i2c_adapter *i2c_adap,
- int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev,
- struct i2c_adapter *i2c_adap, u8 i2c_addr)
- {
-- u8 tx[4];
-- struct i2c_msg m = {.addr = i2c_addr >> 1,.buf = tx,.len = 4 };
-+ int ret;
-+
-+ mutex_init(&mst->i2c_buffer_lock);
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+ memset(mst->msg, 0, sizeof(struct i2c_msg));
-+ mst->msg[0].addr = i2c_addr >> 1;
-+ mst->msg[0].flags = 0;
-+ mst->msg[0].buf = mst->i2c_write_buffer;
-+ mst->msg[0].len = 4;
-
- mst->device_rev = device_rev;
- mst->i2c_adap = i2c_adap;
-@@ -431,9 +480,12 @@ int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev,
- "DiBX000: could not initialize the master i2c_adapter\n");
-
- /* initialize the i2c-master by closing the gate */
-- dibx000_i2c_gate_ctrl(mst, tx, 0, 0);
-+ dibx000_i2c_gate_ctrl(mst, mst->i2c_write_buffer, 0, 0);
-+
-+ ret = (i2c_transfer(i2c_adap, mst->msg, 1) == 1);
-+ mutex_unlock(&mst->i2c_buffer_lock);
-
-- return i2c_transfer(i2c_adap, &m, 1) == 1;
-+ return ret;
- }
-
- EXPORT_SYMBOL(dibx000_init_i2c_master);
-diff --git a/drivers/media/dvb/frontends/dibx000_common.h b/drivers/media/dvb/frontends/dibx000_common.h
-index f031165..5e01147 100644
---- a/drivers/media/dvb/frontends/dibx000_common.h
-+++ b/drivers/media/dvb/frontends/dibx000_common.h
-@@ -33,6 +33,7 @@ struct dibx000_i2c_master {
- struct i2c_msg msg[34];
- u8 i2c_write_buffer[8];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- extern int dibx000_init_i2c_master(struct dibx000_i2c_master *mst,
-commit 45cbff13693d645fa5dcbba964e802e1746b2e57
-Author: Olivier Grenie <olivier.grenie@dibcom.fr>
-Date: Mon Aug 1 17:45:58 2011 +0200
-
- [media] dib0700: protect the dib0700 buffer access
-
- This patch protects the common buffer access inside the dib0700 in order
- to manage concurrent access. This protection is done using mutex.
-
- Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
- Cc: Florian Mickler <florian@mickler.org>
- Cc: stable@kernel.org
-
- Signed-off-by: Javier Marcet <javier@marcet.info>
- Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
- Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr>
-
-diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c
-index 5eb91b4..291b645 100644
---- a/drivers/media/dvb/dvb-usb/dib0700_core.c
-+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c
-@@ -30,6 +30,11 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion,
- struct dib0700_state *st = d->priv;
- int ret;
-
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0),
- REQUEST_GET_VERSION,
- USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
-@@ -46,6 +51,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion,
- if (fwtype != NULL)
- *fwtype = (st->buf[12] << 24) | (st->buf[13] << 16) |
- (st->buf[14] << 8) | st->buf[15];
-+ mutex_unlock(&d->usb_mutex);
- return ret;
- }
-
-@@ -108,7 +114,12 @@ int dib0700_ctrl_rd(struct dvb_usb_device *d, u8 *tx, u8 txlen, u8 *rx, u8 rxlen
- int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_dir, u8 gpio_val)
- {
- struct dib0700_state *st = d->priv;
-- s16 ret;
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-
- st->buf[0] = REQUEST_SET_GPIO;
- st->buf[1] = gpio;
-@@ -116,6 +127,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_
-
- ret = dib0700_ctrl_wr(d, st->buf, 3);
-
-+ mutex_unlock(&d->usb_mutex);
- return ret;
- }
-
-@@ -125,6 +137,11 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets)
- int ret;
-
- if (st->fw_version >= 0x10201) {
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- st->buf[0] = REQUEST_SET_USB_XFER_LEN;
- st->buf[1] = (nb_ts_packets >> 8) & 0xff;
- st->buf[2] = nb_ts_packets & 0xff;
-@@ -132,6 +149,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets)
- deb_info("set the USB xfer len to %i Ts packet\n", nb_ts_packets);
-
- ret = dib0700_ctrl_wr(d, st->buf, 3);
-+ mutex_unlock(&d->usb_mutex);
- } else {
- deb_info("this firmware does not allow to change the USB xfer len\n");
- ret = -EIO;
-@@ -208,6 +226,10 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
-
- } else {
- /* Write request */
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
- st->buf[0] = REQUEST_NEW_I2C_WRITE;
- st->buf[1] = msg[i].addr << 1;
- st->buf[2] = (en_start << 7) | (en_stop << 6) |
-@@ -227,6 +249,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
- USB_TYPE_VENDOR | USB_DIR_OUT,
- 0, 0, st->buf, msg[i].len + 4,
- USB_CTRL_GET_TIMEOUT);
-+ mutex_unlock(&d->usb_mutex);
- if (result < 0) {
- deb_info("i2c write error (status = %d)\n", result);
- break;
-@@ -249,6 +272,10 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
-
- if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
- return -EAGAIN;
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-
- for (i = 0; i < num; i++) {
- /* fill in the address */
-@@ -279,6 +306,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
- break;
- }
- }
-+ mutex_unlock(&d->usb_mutex);
- mutex_unlock(&d->i2c_mutex);
-
- return i;
-@@ -337,7 +365,12 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll,
- u16 pll_loopdiv, u16 free_div, u16 dsuScaler)
- {
- struct dib0700_state *st = d->priv;
-- s16 ret;
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-
- st->buf[0] = REQUEST_SET_CLOCK;
- st->buf[1] = (en_pll << 7) | (pll_src << 6) |
-@@ -352,6 +385,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll,
- st->buf[9] = dsuScaler & 0xff; /* LSB */
-
- ret = dib0700_ctrl_wr(d, st->buf, 10);
-+ mutex_unlock(&d->usb_mutex);
-
- return ret;
- }
-@@ -360,10 +394,16 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz)
- {
- struct dib0700_state *st = d->priv;
- u16 divider;
-+ int ret;
-
- if (scl_kHz == 0)
- return -EINVAL;
-
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- st->buf[0] = REQUEST_SET_I2C_PARAM;
- divider = (u16) (30000 / scl_kHz);
- st->buf[1] = 0;
-@@ -379,7 +419,11 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz)
- deb_info("setting I2C speed: %04x %04x %04x (%d kHz).",
- (st->buf[2] << 8) | (st->buf[3]), (st->buf[4] << 8) |
- st->buf[5], (st->buf[6] << 8) | st->buf[7], scl_kHz);
-- return dib0700_ctrl_wr(d, st->buf, 8);
-+
-+ ret = dib0700_ctrl_wr(d, st->buf, 8);
-+ mutex_unlock(&d->usb_mutex);
-+
-+ return ret;
- }
-
-
-@@ -515,6 +559,11 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
- }
- }
-
-+ if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- st->buf[0] = REQUEST_ENABLE_VIDEO;
- /* this bit gives a kind of command,
- * rather than enabling something or not */
-@@ -548,7 +597,10 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
-
- deb_info("data for streaming: %x %x\n", st->buf[1], st->buf[2]);
-
-- return dib0700_ctrl_wr(adap->dev, st->buf, 4);
-+ ret = dib0700_ctrl_wr(adap->dev, st->buf, 4);
-+ mutex_unlock(&adap->dev->usb_mutex);
-+
-+ return ret;
- }
-
- int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type)
-@@ -557,6 +609,11 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type)
- struct dib0700_state *st = d->priv;
- int new_proto, ret;
-
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- st->buf[0] = REQUEST_SET_RC;
- st->buf[1] = 0;
- st->buf[2] = 0;
-@@ -567,23 +624,29 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type)
- else if (rc_type == RC_TYPE_NEC)
- new_proto = 0;
- else if (rc_type == RC_TYPE_RC6) {
-- if (st->fw_version < 0x10200)
-- return -EINVAL;
-+ if (st->fw_version < 0x10200) {
-+ ret = -EINVAL;
-+ goto out;
-+ }
-
- new_proto = 2;
-- } else
-- return -EINVAL;
-+ } else {
-+ ret = -EINVAL;
-+ goto out;
-+ }
-
- st->buf[1] = new_proto;
-
- ret = dib0700_ctrl_wr(d, st->buf, 3);
- if (ret < 0) {
- err("ir protocol setup failed");
-- return ret;
-+ goto out;
- }
-
- d->props.rc.core.protocol = rc_type;
-
-+out:
-+ mutex_unlock(&d->usb_mutex);
- return ret;
- }
-
-commit aeb2d456b746164a4bd19e53de0a6678ca63fcad
-Author: Olivier Grenie <olivier.grenie@dibcom.fr>
-Date: Thu Aug 4 18:10:03 2011 +0200
-
- [media] dib0700: correct error message
-
- The goal of this patch is to correct a previous patch. In case of error,
- the err() function should be used instead of dprintk() function.
-
- Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
-
-diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c
-index 291b645..b693ed1 100644
---- a/drivers/media/dvb/dvb-usb/dib0700_core.c
-+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c
-@@ -31,7 +31,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion,
- int ret;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -117,7 +117,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_
- int ret;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -138,7 +138,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets)
-
- if (st->fw_version >= 0x10201) {
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -227,7 +227,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
- } else {
- /* Write request */
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
- st->buf[0] = REQUEST_NEW_I2C_WRITE;
-@@ -273,7 +273,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
- if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
- return -EAGAIN;
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -368,7 +368,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll,
- int ret;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -400,7 +400,7 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz)
- return -EINVAL;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -560,7 +560,7 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
- }
-
- if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -610,7 +610,7 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type)
- int new_proto, ret;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
diff --git a/libre/linux-libre/fix-i915.patch b/libre/linux-libre/fix-i915.patch
deleted file mode 100644
index 3b631361a..000000000
--- a/libre/linux-libre/fix-i915.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
-Tested-by: Santi <santi@agolina.net>
----
- drivers/gpu/drm/i915/intel_tv.c | 9 +++++++++
- 1 files changed, 9 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
-index dc83b7a..c8f67bf 100644
---- a/drivers/gpu/drm/i915/intel_tv.c
-+++ b/drivers/gpu/drm/i915/intel_tv.c
-@@ -1267,6 +1267,15 @@
- DAC_B_0_7_V |
- DAC_C_0_7_V);
-
-+ /*
-+ * The TV sense state should be cleared to zero on cantiga platform. Otherwise
-+ * the TV is misdetected. This is hardware requirement.
-+ */
-+ if (IS_GM45(dev))
-+ tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL |
-+ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL);
-+
-+
- I915_WRITE(TV_CTL, tv_ctl);
- I915_WRITE(TV_DAC, tv_dac);
- POSTING_READ(TV_DAC);
diff --git a/libre/linux-libre/i915-fix-incorrect-error-message.patch b/libre/linux-libre/i915-fix-incorrect-error-message.patch
deleted file mode 100644
index e1addbb05..000000000
--- a/libre/linux-libre/i915-fix-incorrect-error-message.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-commit 6c76e0b94e484ffbdf38d2fe2769b6ca9aa99de4
-Author: Thomas Bächler <thomas@archlinux.org>
-Date: Mon Oct 31 19:16:18 2011 +0100
-
- Change accidental error message to debug message.
-
- According to https://lkml.org/lkml/2011/9/19/80, this is not supposed
- to be an error message, but a debug message. This worries users.
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 04411ad..02d5794 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -5172,7 +5172,7 @@ static void ironlake_update_pch_refclk(struct drm_device *dev)
- } else {
- /* Enable SSC on PCH eDP if needed */
- if (intel_panel_use_ssc(dev_priv)) {
-- DRM_ERROR("enabling SSC on PCH\n");
-+ DRM_DEBUG("enabling SSC on PCH\n");
- temp |= DREF_SUPERSPREAD_SOURCE_ENABLE;
- }
- }
diff --git a/libre/linux-libre/i915-gpu-finish.patch b/libre/linux-libre/i915-gpu-finish.patch
deleted file mode 100644
index 5840c9181..000000000
--- a/libre/linux-libre/i915-gpu-finish.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-commit 389a55581e30607af0fcde6cdb4e54f189cf46cf
-Author: Chris Wilson <chris@chris-wilson.co.uk>
-Date: Tue Nov 29 15:12:16 2011 +0000
-
- drm/i915: Only clear the GPU domains upon a successful finish
-
- By clearing the GPU read domains before waiting upon the buffer, we run
- the risk of the wait being interrupted and the domains prematurely
- cleared. The next time we attempt to wait upon the buffer (after
- userspace handles the signal), we believe that the buffer is idle and so
- skip the wait.
-
- There are a number of bugs across all generations which show signs of an
- overly haste reuse of active buffers.
-
- Such as:
-
- https://bugs.freedesktop.org/show_bug.cgi?id=29046
- https://bugs.freedesktop.org/show_bug.cgi?id=35863
- https://bugs.freedesktop.org/show_bug.cgi?id=38952
- https://bugs.freedesktop.org/show_bug.cgi?id=40282
- https://bugs.freedesktop.org/show_bug.cgi?id=41098
- https://bugs.freedesktop.org/show_bug.cgi?id=41102
- https://bugs.freedesktop.org/show_bug.cgi?id=41284
- https://bugs.freedesktop.org/show_bug.cgi?id=42141
-
- A couple of those pre-date i915_gem_object_finish_gpu(), so may be
- unrelated (such as a wild write from a userspace command buffer), but
- this does look like a convincing cause for most of those bugs.
-
- Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
- Cc: stable@kernel.org
- Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
- Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
-
-diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
-index d560175..036bc58 100644
---- a/drivers/gpu/drm/i915/i915_gem.c
-+++ b/drivers/gpu/drm/i915/i915_gem.c
-@@ -3087,10 +3087,13 @@ i915_gem_object_finish_gpu(struct drm_i915_gem_object *obj)
- return ret;
- }
-
-+ ret = i915_gem_object_wait_rendering(obj);
-+ if (ret)
-+ return ret;
-+
- /* Ensure that we invalidate the GPU's caches and TLBs. */
- obj->base.read_domains &= ~I915_GEM_GPU_DOMAINS;
--
-- return i915_gem_object_wait_rendering(obj);
-+ return 0;
- }
-
- /**
diff --git a/libre/linux-libre/iwlagn-fix-NULL-pointer-dereference.patch b/libre/linux-libre/iwlagn-fix-NULL-pointer-dereference.patch
deleted file mode 100644
index a53a3a425..000000000
--- a/libre/linux-libre/iwlagn-fix-NULL-pointer-dereference.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-This fix regression introduced by commit:
-
-commit 15b3f3b006b42a678523cad989bfd60b76bf4403
-Author: Wey-Yi Guy <wey-yi.w.guy@intel.com>
-Date: Fri Jun 3 07:54:13 2011 -0700
-
- iwlagn: set smps mode after assoc for 1000 device
-
-Also remove unneeded brackets on the way.
-
-Address:
-https://bugzilla.redhat.com/show_bug.cgi?id=744155
-
-If fix will not get 3.1 release, it should be applied in 3.1 stable.
-
-Cc: stable@kernel.org # 3.1+
-Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
----
- drivers/net/wireless/iwlwifi/iwl-agn-rxon.c | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
-index ca632f9..5004342 100644
---- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
-@@ -296,8 +296,8 @@ static int iwlagn_rxon_connect(struct iwl_priv *priv,
- return ret;
- }
-
-- if ((ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION) &&
-- priv->cfg->ht_params->smps_mode)
-+ if (ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION &&
-+ priv->cfg->ht_params && priv->cfg->ht_params->smps_mode)
- ieee80211_request_smps(ctx->vif,
- priv->cfg->ht_params->smps_mode);
-
---
-1.7.1
diff --git a/libre/linux-libre/linux-libre.install b/libre/linux-libre/linux-libre.install
index 6f0d7a347..69465632c 100644
--- a/libre/linux-libre/linux-libre.install
+++ b/libre/linux-libre/linux-libre.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=
-KERNEL_VERSION=3.3.1-1.1-LIBRE
+KERNEL_VERSION=3.3.4-2-LIBRE
post_install () {
# updating module dependencies
diff --git a/libre/linux-libre/linux-libre.preset b/libre/linux-libre/linux-libre.preset
index 7af90ba7a..0ac59eb14 100644
--- a/libre/linux-libre/linux-libre.preset
+++ b/libre/linux-libre/linux-libre.preset
@@ -1,4 +1,4 @@
-# mkinitcpio preset file for the 'linux' package
+# mkinitcpio preset file for the 'linux-libre' package
ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux-libre"
diff --git a/libre/linux-libre/md-raid10-fix-bug-when-activating-a-hot-spare.patch b/libre/linux-libre/md-raid10-fix-bug-when-activating-a-hot-spare.patch
deleted file mode 100644
index 880849db5..000000000
--- a/libre/linux-libre/md-raid10-fix-bug-when-activating-a-hot-spare.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 7fcc7c8acf0fba44d19a713207af7e58267c1179 Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb@suse.de>
-Date: Mon, 31 Oct 2011 12:59:44 +1100
-Subject: md/raid10: Fix bug when activating a hot-spare.
-
-From: NeilBrown <neilb@suse.de>
-
-commit 7fcc7c8acf0fba44d19a713207af7e58267c1179 upstream.
-
-This is a fairly serious bug in RAID10.
-
-When a RAID10 array is degraded and a hot-spare is activated, the
-spare does not take up the empty slot, but rather replaces the first
-working device.
-This is likely to make the array non-functional. It would normally
-be possible to recover the data, but that would need care and is not
-guaranteed.
-
-This bug was introduced in commit
- 2bb77736ae5dca0a189829fbb7379d43364a9dac
-which first appeared in 3.1.
-
-Signed-off-by: NeilBrown <neilb@suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/md/raid10.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/md/raid10.c
-+++ b/drivers/md/raid10.c
-@@ -1337,7 +1337,7 @@ static int raid10_add_disk(mddev_t *mdde
- mirror_info_t *p = &conf->mirrors[mirror];
- if (p->recovery_disabled == mddev->recovery_disabled)
- continue;
-- if (!p->rdev)
-+ if (p->rdev)
- continue;
-
- disk_stack_limits(mddev->gendisk, rdev->bdev,
diff --git a/libre/linux-libre/usb-add-reset-resume-quirk-for-several-webcams.patch b/libre/linux-libre/usb-add-reset-resume-quirk-for-several-webcams.patch
deleted file mode 100644
index 9e570dd3f..000000000
--- a/libre/linux-libre/usb-add-reset-resume-quirk-for-several-webcams.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-commit 2394d67e446bf616a0885167d5f0d397bdacfdfc
-Author: Oliver Neukum <oneukum@suse.de>
-Date: Tue Sep 13 08:42:21 2011 +0200
-
- USB: add RESET_RESUME for webcams shown to be quirky
-
- The new runtime PM code has shown that many webcams suffer
- from a race condition that may crash them upon resume.
- Runtime PM is especially prone to show the problem because
- it retains power to the cameras at all times. However
- system suspension may also crash the devices and retain
- power to the devices.
- The only way to solve this problem without races is in
- usbcore with the RESET_RESUME quirk.
-
- Signed-off-by: Oliver Neukum <oneukum@suse.de>
- Signed-off-by: stable <stable@kernel.org>
- Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
-index 81ce6a8..38f0510 100644
---- a/drivers/usb/core/quirks.c
-+++ b/drivers/usb/core/quirks.c
-@@ -38,6 +38,24 @@ static const struct usb_device_id usb_quirk_list[] = {
- /* Creative SB Audigy 2 NX */
- { USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME },
-
-+ /* Logitech Webcam C200 */
-+ { USB_DEVICE(0x046d, 0x0802), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam C250 */
-+ { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam B/C500 */
-+ { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam Pro 9000 */
-+ { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam C310 */
-+ { USB_DEVICE(0x046d, 0x081b), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam C270 */
-+ { USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME },
-+
- /* Logitech Harmony 700-series */
- { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
-
-@@ -69,6 +87,9 @@ static const struct usb_device_id usb_quirk_list[] = {
- { USB_DEVICE(0x06a3, 0x0006), .driver_info =
- USB_QUIRK_CONFIG_INTF_STRINGS },
-
-+ /* Guillemot Webcam Hercules Dualpix Exchange*/
-+ { USB_DEVICE(0x06f8, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
-+
- /* M-Systems Flash Disk Pioneers */
- { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME },
-
-commit 5b253d88cc6c65a23cefc457a5a4ef139913c5fc
-Author: Jon Levell <linuxusb@coralbark.net>
-Date: Thu Sep 29 20:42:52 2011 +0100
-
- USB: add quirk for Logitech C300 web cam
-
- My webcam is a Logitech C300 and I get "chipmunk"ed squeaky sound.
- The following trivial patch fixes it.
-
- Signed-off-by: Jon Levell <linuxusb@coralbark.net>
- Cc: stable <stable@kernel.org>
- Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
-index 38f0510..d6a8d82 100644
---- a/drivers/usb/core/quirks.c
-+++ b/drivers/usb/core/quirks.c
-@@ -44,6 +44,9 @@ static const struct usb_device_id usb_quirk_list[] = {
- /* Logitech Webcam C250 */
- { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
-
-+ /* Logitech Webcam C300 */
-+ { USB_DEVICE(0x046d, 0x0805), .driver_info = USB_QUIRK_RESET_RESUME },
-+
- /* Logitech Webcam B/C500 */
- { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
-
-diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
-index d6a8d82..caa1991 100644
---- a/drivers/usb/core/quirks.c
-+++ b/drivers/usb/core/quirks.c
-@@ -50,6 +50,9 @@ static const struct usb_device_id usb_quirk_list[] = {
- /* Logitech Webcam B/C500 */
- { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
-
-+ /* Logitech Webcam C600 */
-+ { USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME },
-+
- /* Logitech Webcam Pro 9000 */
- { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME },
-
diff --git a/libre/luxrays-libre/PKGBUILD b/libre/luxrays-libre/PKGBUILD
index c813946c7..564ca267d 100644
--- a/libre/luxrays-libre/PKGBUILD
+++ b/libre/luxrays-libre/PKGBUILD
@@ -3,9 +3,9 @@
# Maintainer (Parabola): Márcio Silva <coadde@adinet.com.uy>
_pkgname=luxrays
pkgname=luxrays-libre
-pkgver=0.8
-_pkgver=ed424ec77571
-pkgrel=7
+pkgver=1.0rc1
+_pkgver=396d39b06aa6
+pkgrel=1
epoch=0
pkgdesc="Accelerate the ray intersection process by using CPUs (without OpenCL)"
arch=('i686' 'x86_64')
@@ -17,14 +17,11 @@ replaces=('luxrays')
conflicts=('luxrays')
provides=("luxrays=$pkgver")
source=(https://bitbucket.org/luxrender/luxrays/get/$_pkgver.tar.bz2)
-md5sums=('2ac9c588675c5971c57f473ef10ac67d')
+md5sums=('a96ac693ec2900d8d1b209f88edd7e94')
build() {
cd "$srcdir/luxrender-$_pkgname-$_pkgver"
- # fix the break caused by the change of the name of the namespace 'detail' to 'ipcdetail'
- sed -i 's|::detail|::ipcdetail|' include/luxrays/utils/core/atomic.h
-
export CXXFLAGS="$CXXFLAGS -lpthread"
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_SKIP_RPATH=ON \
diff --git a/libre/luxrender-libre/PKGBUILD b/libre/luxrender-libre/PKGBUILD
index 38021313d..f4684ee7f 100644
--- a/libre/luxrender-libre/PKGBUILD
+++ b/libre/luxrender-libre/PKGBUILD
@@ -4,9 +4,9 @@
# Contributor: Imanol Celaya <ornitorrincos@archlinux-es.org>
# Maintainer (Parabola): Márcio Silva <coadde@adinet.com.uy>
pkgname=luxrender-libre
-pkgver=0.8
-_pkgver=45d3e13eb94c
-pkgrel=13
+pkgver=1.0rc1
+_pkgver=08ae99830f8e
+pkgrel=1
pkgdesc="Rendering system for physically correct, unbiased image synthesis (without OpenGL)"
arch=('i686' 'x86_64')
url="http://www.luxrender.net/"
@@ -18,14 +18,12 @@ makedepends=('cmake' 'boost' 'qt' 'luxrays-libre' 'python')
replaces=('luxrender')
conflicts=('luxrender')
provides=("luxrender=$pkgver")
-source=(ftp://ftp.archlinux.org/other/community/luxrender/lux-"$pkgver".tar.bz2)
-md5sums=('0f2d856385db72131f51e44a7ee527fa')
+source=(https://bitbucket.org/luxrender/lux/get/"$_pkgver".tar.bz2)
+md5sums=('738616b55ac58c98de431b98f90a05fb')
build() {
cd "$srcdir"/luxrender-lux-$_pkgver
- sed -i 's/FIND_PACKAGE(Boost 1.43 COMPONENTS python REQUIRED)/FIND_PACKAGE(Boost 1.43 COMPONENTS python3 REQUIRED)/' CMakeLists.txt
-
export CXXFLAGS="$CXXFLAGS -lpthread"
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DLUXRAYS_DISABLE_OPENCL=ON \
diff --git a/libre/mariadb/PKGBUILD b/libre/mariadb/PKGBUILD
new file mode 100644
index 000000000..a5b733e9f
--- /dev/null
+++ b/libre/mariadb/PKGBUILD
@@ -0,0 +1,141 @@
+# $Id$
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Maintainer (Parabola): Márcio Silva <coadde@adinet.com.uy>
+
+falsename=mysql
+_falsename=MySQL
+pkgbase=mariadb
+_pkgbase=MariaDB
+pkgname=("lib${pkgbase}client" "${pkgbase}-clients" "${pkgbase}")
+pkgver=5.5.23
+pkgrel=1.5
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.${pkgbase}.org/"
+makedepends=('cmake' 'openssl' 'zlib')
+options=('!libtool')
+source=("http://mirror.aarnet.edu.au/pub/${_pkgbase}/${pkgbase}-${pkgver}/kvm-tarbake-jaunty-x86/${pkgbase}-${pkgver}.tar.gz"
+ "${falsename}d"
+ 'my.cnf')
+md5sums=('7074fa091b3c1489f45a5ddf12cd5e6f'
+ '2234207625baa29b2ff7d7b4f088abce'
+ '1c949c0dbea5206af0db14942d9927b6')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+
+ # CFLAGS/CXXFLAGS as suggested upstream
+ CFLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer" \
+ CXXFLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-rtti" \
+
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSYSCONFDIR=/etc/${falsename} \
+ -DMYSQL_DATADIR=/var/lib/${falsename} \
+ -DMYSQL_UNIX_ADDR=/var/run/${falsename}/${falsename}.sock \
+ -DDEFAULT_CHARSET=utf8 \
+ -DDEFAULT_COLLATION=utf8_unicode_ci \
+ -DENABLED_LOCAL_INFILE=ON \
+ -DINSTALL_INFODIR=share/${falsename}/docs \
+ -DINSTALL_MANDIR=share/man \
+ -DINSTALL_PLUGINDIR=/usr/lib/${falsename}/plugin \
+ -DINSTALL_SCRIPTDIR=bin \
+ -DINSTALL_INCLUDEDIR=include/${falsename} \
+ -DINSTALL_DOCREADMEDIR=share/${falsename} \
+ -DINSTALL_SUPPORTFILESDIR=share/${falsename} \
+ -DINSTALL_MYSQLSHAREDIR=share/${falsename} \
+ -DINSTALL_DOCDIR=share/${falsename}/docs \
+ -DINSTALL_SHAREDIR=share/${falsename} \
+ -DWITH_READLINE=ON \
+ -DWITH_ZLIB=system \
+ -DWITH_SSL=system \
+ -DWITH_LIBWRAP=OFF \
+ -DWITH_MYSQLD_LDFLAGS="${LDFLAGS}" \
+ -DWITH_EXTRA_CHARSETS=complex \
+ -DWITH_EMBEDDED_SERVER=ON \
+ -DWITH_INNOBASE_STORAGE_ENGINE=1 \
+ -DWITH_PARTITION_STORAGE_ENGINE=1 \
+ -DWITH_PBXT_STORAGE_ENGINE=1 \
+ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
+ -DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \
+ -DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1 \
+ -DWITHOUT_FEDERATED_STORAGE_ENGINE=1
+
+ make
+}
+
+package_libmariadbclient(){
+ pkgdesc="${_pkgbase} client libraries (branch of ${_falsename})"
+ depends=('openssl')
+ conflicts=("lib${falsename}client")
+ provides=("lib${falsename}client=${pkgver}")
+
+ cd "${srcdir}"/build
+ for dir in include lib${falsename} lib${falsename}d libservices; do
+ make -C ${dir} DESTDIR="${pkgdir}" install
+ done
+
+ install -d "${pkgdir}"/usr/bin
+ install -m755 scripts/${falsename}_config "${pkgdir}"/usr/bin/
+ install -d "${pkgdir}"/usr/share/man/man1
+ for man in ${falsename}_config ${falsename}_client_test_embedded ${falsename}test_embedded; do
+ install -m644 "${srcdir}"/${pkgbase}-${pkgver}/man/$man.1 "${pkgdir}"/usr/share/man/man1/$man.1
+ done
+}
+
+package_mariadb-clients(){
+ pkgdesc="${_pkgbase} client tools (branch of ${_falsename})"
+ depends=("lib${pkgbase}client")
+ conflicts=("${falsename}-clients")
+ provides=("${falsename}-clients=${pkgver}")
+
+ cd "${srcdir}"/build
+ make -C client DESTDIR="${pkgdir}" install
+
+ # install man pages
+ install -d "${pkgdir}"/usr/share/man/man1
+ for man in ${falsename} ${falsename}admin ${falsename}check ${falsename}dump ${falsename}import ${falsename}show ${falsename}slap; do
+ install -m644 "${srcdir}"/${pkgbase}-${pkgver}/man/$man.1 "${pkgdir}"/usr/share/man/man1/$man.1
+ done
+
+ # provided by mariadb
+ rm "${pkgdir}"/usr/bin/{${falsename}_{plugin,upgrade},${falsename}binlog,${falsename}test}
+}
+
+package_mariadb(){
+ pkgdesc="A fast SQL database server branch of ${_falsename} - ${_pkgbase}"
+ backup=("etc/${pkgbase}/my.cnf")
+ install=${falsename}.install
+ depends=("${pkgbase}-clients")
+ optdepends=('perl-dbi' "perl-dbd-${falsename}")
+ conflicts=("${falsename}")
+ provides=("${falsename}=${pkgver}")
+ options=('emptydirs')
+
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 "${srcdir}"/my.cnf "${pkgdir}"/etc/${falsename}/my.cnf
+ install -Dm755 "${srcdir}"/${falsename}d "${pkgdir}"/etc/rc.d/${falsename}d
+
+ # provided by libmariadbclient
+ rm "${pkgdir}"/usr/bin/{${falsename}_config,${falsename}_client_test_embedded,${falsename}test_embedded}
+ rm "${pkgdir}"/usr/lib/lib${falsename}*
+ rm -r "${pkgdir}"/usr/include/
+ rm "${pkgdir}"/usr/share/man/man1/{${falsename}_config,${falsename}_client_test_embedded,${falsename}test_embedded}.1
+
+ # provided by mariadb-clients
+ rm "${pkgdir}"/usr/bin/{${falsename},${falsename}admin,${falsename}check,${falsename}dump,${falsename}import,${falsename}show,${falsename}slap}
+ rm "${pkgdir}"/usr/share/man/man1/{${falsename},${falsename}admin,${falsename}check,${falsename}dump,${falsename}import,${falsename}show,${falsename}slap}.1
+
+ # not needed
+ rm -r "${pkgdir}"/usr/{data,${falsename}-test,sql-bench}
+ rm "${pkgdir}"/usr/share/man/man1/${falsename}-test-run.pl.1
+
+ install -dm700 "${pkgdir}"/var/lib/${falsename}
+}
diff --git a/libre/mariadb/mariadb.install b/libre/mariadb/mariadb.install
new file mode 100644
index 000000000..f56a0dcaa
--- /dev/null
+++ b/libre/mariadb/mariadb.install
@@ -0,0 +1,26 @@
+post_install(){
+ groupadd -g 89 mysql &>/dev/null
+ useradd -u 89 -g mysql -d /var/lib/mariadb -s /bin/false mysql &>/dev/null
+ /usr/bin/mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mariadb
+ chown -R mysql:mysql /var/lib/mariadb &>/dev/null
+}
+
+post_upgrade(){
+ getent group mysql >/dev/null 2>&1 || groupadd -g 89 mysql &>/dev/null
+ getent passwd mysql >/dev/null 2>&1 || useradd -u 89 -g mysql -d /var/lib/mariadb -s /bin/false mysql &>/dev/null
+
+ if [ "$(vercmp $2 5.5)" -lt 0 ]; then
+ echo " >> "
+ echo " >> Major version update. Consider restart the service, and then running mysql_upgrade after it."
+ echo " >> "
+ fi
+}
+
+post_remove(){
+ if getent passwd mysql >/dev/null 2>&1; then
+ userdel mysql
+ fi
+ if getent group mysql >/dev/null 2>&1; then
+ groupdel mysql
+ fi
+}
diff --git a/libre/mariadb/mariadbd b/libre/mariadb/mariadbd
new file mode 100755
index 000000000..3ae612096
--- /dev/null
+++ b/libre/mariadb/mariadbd
@@ -0,0 +1,77 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+getPID() {
+ echo $(pgrep -u mysql mysqld 2>/dev/null);
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting MariaDB Server"
+ [ ! -d /var/run/mariadb ] && install -d -g mysql -o mysql /var/run/mariadb &>/dev/null
+ if [ -z "$(getPID)" ]; then
+ /usr/bin/mysqld_safe --user=mysql &>/dev/null &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ timeo=30
+ while [ $timeo -gt 0 ]; do
+ response=`/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1` && break
+ echo "$response" | grep -q "mysqld is alive" && break
+ sleep 1
+ let timeo=${timeo}-1
+ done
+ if [ $timeo -eq 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo $(getPID) > /var/run/mariadb/mariadb.pid
+ add_daemon mysqld
+ stat_done
+ fi
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping MariaDB Server"
+ if [ ! -z "$(getPID)" ]; then
+ timeo=30
+ kill $(getPID) &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ fi
+ while [ ! -z "$(getPID)" -a $timeo -gt 0 ]; do
+ sleep 1
+ let timeo=${timeo}-1
+ done
+ if [ -z "$(getPID)" ]; then
+ rm -f /var/run/mariadb/mariadb.pid &>/dev/null
+ rm_daemon mysqld
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/libre/mariadb/my.cnf b/libre/mariadb/my.cnf
new file mode 100644
index 000000000..9a41b4fc3
--- /dev/null
+++ b/libre/mariadb/my.cnf
@@ -0,0 +1,145 @@
+# MySQL config file for medium systems.
+#
+# This is for a system with little memory (32M - 64M) where MySQL plays
+# an important part, or systems up to 128M where MySQL is used together with
+# other programs (such as a web server)
+#
+# MySQL programs look for option files in a set of
+# locations which depend on the deployment platform.
+# You can copy this option file to one of those
+# locations. For information about these locations, see:
+# http://dev.mysql.com/doc/mysql/en/option-files.html
+#
+# In this file, you can use all long options that a program supports.
+# If you want to know which options a program supports, run the program
+# with the "--help" option.
+
+# The following options will be passed to all MySQL clients
+[client]
+#password = your_password
+port = 3306
+socket = /var/run/mysqld/mysqld.sock
+
+# Here follows entries for some specific programs
+
+# The MySQL server
+[mysqld]
+port = 3306
+socket = /var/run/mysqld/mysqld.sock
+datadir = /var/lib/mysql
+skip-external-locking
+key_buffer_size = 16M
+max_allowed_packet = 1M
+table_open_cache = 64
+sort_buffer_size = 512K
+net_buffer_length = 8K
+read_buffer_size = 256K
+read_rnd_buffer_size = 512K
+myisam_sort_buffer_size = 8M
+
+# Don't listen on a TCP/IP port at all. This can be a security enhancement,
+# if all processes that need to connect to mysqld run on the same host.
+# All interaction with mysqld must be made via Unix sockets or named pipes.
+# Note that using this option without enabling named pipes on Windows
+# (via the "enable-named-pipe" option) will render mysqld useless!
+#
+skip-networking
+
+# Replication Master Server (default)
+# binary logging is required for replication
+log-bin=mysql-bin
+
+# binary logging format - mixed recommended
+binlog_format=mixed
+
+# required unique id between 1 and 2^32 - 1
+# defaults to 1 if master-host is not set
+# but will not function as a master if omitted
+server-id = 1
+
+# Replication Slave (comment out master section to use this)
+#
+# To configure this host as a replication slave, you can choose between
+# two methods :
+#
+# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
+# the syntax is:
+#
+# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
+# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
+#
+# where you replace <host>, <user>, <password> by quoted strings and
+# <port> by the master's port number (3306 by default).
+#
+# Example:
+#
+# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
+# MASTER_USER='joe', MASTER_PASSWORD='secret';
+#
+# OR
+#
+# 2) Set the variables below. However, in case you choose this method, then
+# start replication for the first time (even unsuccessfully, for example
+# if you mistyped the password in master-password and the slave fails to
+# connect), the slave will create a master.info file, and any later
+# change in this file to the variables' values below will be ignored and
+# overridden by the content of the master.info file, unless you shutdown
+# the slave server, delete master.info and restart the slaver server.
+# For that reason, you may want to leave the lines below untouched
+# (commented) and instead use CHANGE MASTER TO (see above)
+#
+# required unique id between 2 and 2^32 - 1
+# (and different from the master)
+# defaults to 2 if master-host is set
+# but will not function as a slave if omitted
+#server-id = 2
+#
+# The replication master for this slave - required
+#master-host = <hostname>
+#
+# The username the slave will use for authentication when connecting
+# to the master - required
+#master-user = <username>
+#
+# The password the slave will authenticate with when connecting to
+# the master - required
+#master-password = <password>
+#
+# The port the master is listening on.
+# optional - defaults to 3306
+#master-port = <port>
+#
+# binary logging - not required for slaves, but recommended
+#log-bin=mysql-bin
+
+# Uncomment the following if you are using InnoDB tables
+#innodb_data_home_dir = /var/lib/mysql
+#innodb_data_file_path = ibdata1:10M:autoextend
+#innodb_log_group_home_dir = /var/lib/mysql
+# You can set .._buffer_pool_size up to 50 - 80 %
+# of RAM but beware of setting memory usage too high
+#innodb_buffer_pool_size = 16M
+#innodb_additional_mem_pool_size = 2M
+# Set .._log_file_size to 25 % of buffer pool size
+#innodb_log_file_size = 5M
+#innodb_log_buffer_size = 8M
+#innodb_flush_log_at_trx_commit = 1
+#innodb_lock_wait_timeout = 50
+
+[mysqldump]
+quick
+max_allowed_packet = 16M
+
+[mysql]
+no-auto-rehash
+# Remove the next comment character if you are not familiar with SQL
+#safe-updates
+
+[myisamchk]
+key_buffer_size = 20M
+sort_buffer_size = 20M
+read_buffer = 2M
+write_buffer = 2M
+
+[mysqlhotcopy]
+interactive-timeout
diff --git a/libre/mariadb/mysql.install b/libre/mariadb/mysql.install
new file mode 100644
index 000000000..9a4479215
--- /dev/null
+++ b/libre/mariadb/mysql.install
@@ -0,0 +1,26 @@
+post_install(){
+ groupadd -g 89 mysql &>/dev/null
+ useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql &>/dev/null
+ usr/bin/mysql_install_db --user=mysql --basedir=/usr
+ chown -R mysql:mysql var/lib/mysql &>/dev/null
+}
+
+post_upgrade(){
+ getent group mysql >/dev/null 2>&1 || groupadd -g 89 mysql &>/dev/null
+ getent passwd mysql >/dev/null 2>&1 || useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql &>/dev/null
+
+ if [ "$(vercmp $2 5.5)" -lt 0 ]; then
+ echo " >> "
+ echo " >> Major version update. Consider restart the service, and then running mysql_upgrade after it."
+ echo " >> "
+ fi
+}
+
+post_remove(){
+ if getent passwd mysql >/dev/null 2>&1; then
+ userdel mysql
+ fi
+ if getent group mysql >/dev/null 2>&1; then
+ groupdel mysql
+ fi
+}
diff --git a/libre/mariadb/mysqld b/libre/mariadb/mysqld
new file mode 100644
index 000000000..1ac88a7cc
--- /dev/null
+++ b/libre/mariadb/mysqld
@@ -0,0 +1,77 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+getPID() {
+ echo $(pgrep -u mysql mysqld 2>/dev/null);
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting MySQL Server"
+ [ ! -d /var/run/mysqld ] && install -d -g mysql -o mysql /var/run/mysqld &>/dev/null
+ if [ -z "$(getPID)" ]; then
+ /usr/bin/mysqld_safe --user=mysql &>/dev/null &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ timeo=30
+ while [ $timeo -gt 0 ]; do
+ response=`/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1` && break
+ echo "$response" | grep -q "mysqld is alive" && break
+ sleep 1
+ let timeo=${timeo}-1
+ done
+ if [ $timeo -eq 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo $(getPID) > /var/run/mysqld/mysqld.pid
+ add_daemon mysqld
+ stat_done
+ fi
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping MySQL Server"
+ if [ ! -z "$(getPID)" ]; then
+ timeo=30
+ kill $(getPID) &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ fi
+ while [ ! -z "$(getPID)" -a $timeo -gt 0 ]; do
+ sleep 1
+ let timeo=${timeo}-1
+ done
+ if [ -z "$(getPID)" ]; then
+ rm -f /var/run/mysqld/mysqld.pid &>/dev/null
+ rm_daemon mysqld
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/libre/parabola-archiso-git/PKGBUILD b/libre/parabola-archiso-git/PKGBUILD
new file mode 100644
index 000000000..0b07ddf8d
--- /dev/null
+++ b/libre/parabola-archiso-git/PKGBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+pkgname=parabola-archiso-git
+pkgver=20120506
+pkgrel=1
+pkgdesc="Parabola GNU/Linux-libre livecd/liveusb generation scripts"
+arch=('any')
+url="https://parabolagnulinux.org"
+license=('GPL')
+depends=('libisoburn' 'squashfs-tools' 'rsync')
+optdepends=('qemu: quickly test isos')
+makedepends=('git')
+provides=('archiso')
+conflicts=('archiso')
+source=()
+md5sums=()
+
+_gitroot=git://parabolagnulinux.org/archiso.git
+_gitname=archiso
+
+build() {
+ cd ${srcdir}
+ msg "Connecting to projects.parabolagnulinux.org GIT server..."
+
+ if [ -d ${srcdir}/$_gitname ]; then
+ cd $_gitname && git pull origin
+ msg "The local files are updated."
+ else
+ git clone $_gitroot
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting make..."
+
+ if [ -d ${srcdir}/$_gitname-build ]; then
+ rm -rf ${srcdir}/$_gitname-build
+ fi
+
+ git clone ${srcdir}/$_gitname ${srcdir}/$_gitname-build || return 1
+ cd ${srcdir}/$_gitname-build/$_gitname || return 1
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch b/libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch
new file mode 100644
index 000000000..ed8154df5
--- /dev/null
+++ b/libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch
@@ -0,0 +1,61 @@
+
+# HG changeset patch
+# User Charles-François Natali <neologix@free.fr>
+# Date 1318446474 -7200
+# Node ID ee4fe16d9b4822457ad855ea6c44e65030166304
+# Parent f6feed6ec3f9b024cecd0fd587595c403f55624f
+Issue #13156: revert changeset f6feed6ec3f9, which was only relevant for native
+TLS implementations, and fails with the ad-hoc TLS implementation when a thread
+doesn't have an auto thread state (e.g. a thread created outside of Python
+calling into a subinterpreter).
+
+diff --git a/Include/pystate.h b/Include/pystate.h
+--- a/Include/pystate.h
++++ b/Include/pystate.h
+@@ -111,7 +111,6 @@ PyAPI_FUNC(void) PyThreadState_Clear(PyT
+ PyAPI_FUNC(void) PyThreadState_Delete(PyThreadState *);
+ #ifdef WITH_THREAD
+ PyAPI_FUNC(void) PyThreadState_DeleteCurrent(void);
+-PyAPI_FUNC(void) _PyGILState_Reinit(void);
+ #endif
+
+ PyAPI_FUNC(PyThreadState *) PyThreadState_Get(void);
+diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
+--- a/Modules/signalmodule.c
++++ b/Modules/signalmodule.c
+@@ -976,7 +976,6 @@ void
+ PyOS_AfterFork(void)
+ {
+ #ifdef WITH_THREAD
+- _PyGILState_Reinit();
+ PyEval_ReInitThreads();
+ main_thread = PyThread_get_thread_ident();
+ main_pid = getpid();
+diff --git a/Python/pystate.c b/Python/pystate.c
+--- a/Python/pystate.c
++++ b/Python/pystate.c
+@@ -537,23 +537,6 @@ void
+ autoInterpreterState = NULL;
+ }
+
+-/* Reset the TLS key - called by PyOS_AfterFork.
+- * This should not be necessary, but some - buggy - pthread implementations
+- * don't flush TLS on fork, see issue #10517.
+- */
+-void
+-_PyGILState_Reinit(void)
+-{
+- PyThreadState *tstate = PyGILState_GetThisThreadState();
+- PyThread_delete_key(autoTLSkey);
+- if ((autoTLSkey = PyThread_create_key()) == -1)
+- Py_FatalError("Could not allocate TLS entry");
+-
+- /* re-associate the current thread state with the new key */
+- if (PyThread_set_key_value(autoTLSkey, (void *)tstate) < 0)
+- Py_FatalError("Couldn't create autoTLSkey mapping");
+-}
+-
+ /* When a thread state is created for a thread by some mechanism other than
+ PyGILState_Ensure, it's important that the GILState machinery knows about
+ it so it doesn't try to create another thread state for the thread (this is
+
diff --git a/libre/python2-libre/PKGBUILD b/libre/python2-libre/PKGBUILD
index c4f09188d..e743151b0 100644
--- a/libre/python2-libre/PKGBUILD
+++ b/libre/python2-libre/PKGBUILD
@@ -6,22 +6,23 @@
_pkgname=python2
pkgname=python2-libre
pkgver=2.7.2
-pkgrel=4
+pkgrel=6
_pybasever=2.7
pkgdesc="A high-level scripting language"
arch=('i686' 'x86_64')
license=('PSF')
url="http://www.python.org/"
-depends=('bzip2' 'gdbm' 'openssl' 'zlib' 'expat' 'sqlite3' 'libffi')
+depends=('bzip2' 'gdbm' 'openssl' 'zlib' 'expat' 'sqlite' 'libffi')
makedepends=('tk')
optdepends=('tk: for IDLE')
conflicts=('python<3')
options=('!makeflags')
-source=(http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-${pkgrel}-any.src.tar.xz
+source=(http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-4-any.src.tar.xz
doc_license_change.patch
WDAS.patch
linux2.patch
- gdbm-magic-values.patch)
+ gdbm-magic-values.patch
+ 13156-revert-tls-changeset-subinterpreter.patch)
provides=("$_pkgname=$pkgver")
conflicts=("$_pkgname")
replaces=("$_pkgname")
@@ -33,7 +34,7 @@ build() {
# See http://bugs.python.org/issue10835 for upstream report
sed -i "/progname =/s/python/python${_pybasever}/" Python/pythonrun.c
- # Enable built-in SQLite3 module to load extensions (fix FS#22122)
+ # Enable built-in SQLite module to load extensions (fix FS#22122)
sed -i "/SQLITE_OMIT_LOAD_EXTENSION/d" setup.py
# FS#23997
@@ -47,6 +48,9 @@ build() {
# http://bugs.python.org/issue13007
patch -Np1 -i ../gdbm-magic-values.patch
+ # http://bugs.python.org/issue13156
+ patch -Np1 -i ../13156-revert-tls-changeset-subinterpreter.patch
+
# Ensure that we are using the system copy of various libraries (expat, zlib and libffi),
# rather than copies shipped in the tarball
rm -r Modules/expat
@@ -100,5 +104,6 @@ package() {
md5sums=('456d053a5d418adc913a4971e95fe918'
'1e6595f85a1da7f42b69456119924d50'
'3f8c0e310a0be0bd8b319d6c46bbd427'
- '74c04694573e0d331e2a99d7b9179460'
- '2874e9d93f4f46c1460605a5c7751372')
+ '6099a7c1aed80cf04943ee4affa84b5c'
+ '6de394351179c2ada82e95458ceb13e5'
+ 'daa5110f092f1406c17de23171529e62')
diff --git a/libre/python2-libre/gdbm-magic-values.patch b/libre/python2-libre/gdbm-magic-values.patch
index 5613ae35c..471faf2c7 100644
--- a/libre/python2-libre/gdbm-magic-values.patch
+++ b/libre/python2-libre/gdbm-magic-values.patch
@@ -10,5 +10,3 @@ diff -up Python-2.7.2/Lib/whichdb.py.gdbm-1.9-magic Python-2.7.2/Lib/whichdb.py
return "gdbm"
# Check for old Berkeley db hash file format v2
-diff -up Python-2.7.2/Misc/NEWS.gdbm-1.9-magic Python-2.7.2/Misc/NEWS
-
diff --git a/libre/python2-libre/linux2.patch b/libre/python2-libre/linux2.patch
index 74ae2aa12..670510fde 100644
--- a/libre/python2-libre/linux2.patch
+++ b/libre/python2-libre/linux2.patch
@@ -21,4 +21,3 @@ diff --git a/configure.in b/configure.in
cygwin*) MACHDEP="cygwin";;
darwin*) MACHDEP="darwin";;
atheos*) MACHDEP="atheos";;
-
diff --git a/libre/seamonkey-libre/PKGBUILD b/libre/seamonkey-libre/PKGBUILD
index 8acde2590..dd4bcd0a9 100644
--- a/libre/seamonkey-libre/PKGBUILD
+++ b/libre/seamonkey-libre/PKGBUILD
@@ -1,13 +1,13 @@
-# $Id: PKGBUILD 153522 2012-03-15 14:43:42Z ibiru $
+# $Id: PKGBUILD 157354 2012-04-27 20:50:49Z ibiru $
# Maintainer: Jan de Groot <jgc@archlinux.org>
_pkgname=seamonkey
pkgname=seamonkey-libre
-pkgver=2.8
+pkgver=2.9
pkgrel=1
pkgdesc="SeaMonkey internet suite, with GNUZilla addons"
arch=('i686' 'x86_64')
license=('MPL')
-depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'nss' 'sqlite3' 'startup-notification')
+depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'nss' 'sqlite' 'startup-notification')
makedepends=('unzip' 'zip' 'pkg-config' 'python2' 'yasm' 'wireless_tools' 'mesa' 'autoconf2.13')
replaces=('mozilla' 'seamonkey')
conflicts=('seamonkey')
@@ -18,19 +18,22 @@ source=(ftp://releases.mozilla.org/pub/mozilla.org/$_pkgname/releases/$pkgver/so
mozconfig
seamonkey.desktop
seamonkey-2.0-lang.patch
- libvpx.patch
+ gcc47.patch
+ clrf.patch
gnuzilla-addons.patch)
-md5sums=('a7128f6bcd16bebed4a7c3487b69c38f'
- 'd02b5f002a7cdf8d15dccd2548d09256'
+md5sums=('4af38acf517a8ab850e6aa7a6b085325'
+ 'b8887c39a190e3168a9c7e4355ae3dd4'
'6119a2254716752c9d08e366f8d4c048'
'25b6fe16ac24cd5c852213e5c1adb272'
- '5b2aaff7dfe7f1f94ad965905b20e782'
+ '1e3ad86899c61f0993c429d10913edb4'
+ 'abe8f73faa71ea2a1e4c6f5a33f56c27'
'f7beeb1f94390957259212dd1dbc171f')
build() {
cd "$srcdir/comm-release"
patch -Np1 -i "$srcdir/seamonkey-2.0-lang.patch"
- patch -Np1 -i "$srcdir/libvpx.patch"
+ patch -Np1 -i "$srcdir/gcc47.patch"
+ patch -Np1 -i "$srcdir/clrf.patch"
patch -Np1 -i "${srcdir}/gnuzilla-addons.patch"
cp "$srcdir/mozconfig" .mozconfig
@@ -55,4 +58,5 @@ package() {
install -m644 "$srcdir/seamonkey.desktop" "$pkgdir/usr/share/applications/"
rm -f "$pkgdir/usr/lib/pkgconfig/"seamonkey-ns{s,pr}.pc
+ rm -r "$pkgdir"/usr/{include,lib/seamonkey-devel-$pkgver,share/idl}
}
diff --git a/libre/seamonkey-libre/clrf.patch b/libre/seamonkey-libre/clrf.patch
new file mode 100644
index 000000000..5a77f2b01
--- /dev/null
+++ b/libre/seamonkey-libre/clrf.patch
@@ -0,0 +1,265 @@
+diff -Nur comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp
+--- comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-04-25 01:09:10.468804374 +0000
++++ comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-04-25 01:09:45.928528202 +0000
+@@ -688,7 +688,7 @@
+ PL_strcat(encoding, "{");
+ lengthStr.AppendInt((PRInt32) strlen(value));
+ PL_strcat(encoding, lengthStr.get());
+- PL_strcat(encoding, "}"CRLF);
++ PL_strcat(encoding, "}" CRLF);
+ PL_strcat(encoding, value);
+ return NS_OK;
+ }
+diff -Nur comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp
+--- comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-04-25 01:09:10.475470988 +0000
++++ comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-04-25 01:09:45.928528202 +0000
+@@ -758,7 +758,7 @@
+ }
+ }
+ }
+-#define EXTRA_KEYWORD_HDR " "MSG_LINEBREAK
++#define EXTRA_KEYWORD_HDR " " MSG_LINEBREAK
+
+ // if status offset isn't in the first block, this code won't work. There's no good reason
+ // for the status offset not to be at the beginning of the message anyway.
+@@ -1216,7 +1216,7 @@
+ // check if there's an envelope header; if not, write one.
+ if (strncmp(m_dataBuffer, "From ", 5))
+ {
+- m_fileStream->Write("From "CRLF, 7, &bytesWritten);
++ m_fileStream->Write("From " CRLF, 7, &bytesWritten);
+ m_offlineMsgSize += bytesWritten;
+ }
+ }
+diff -Nur comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp comm-release/mailnews/compose/src/nsSmtpProtocol.cpp
+--- comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp 2012-04-25 01:09:10.542137136 +0000
++++ comm-release/mailnews/compose/src/nsSmtpProtocol.cpp 2012-04-25 01:09:45.928528202 +0000
+@@ -1722,7 +1722,7 @@
+ {
+ m_sendDone = true;
+ nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
+- SendData(url, "QUIT"CRLF); // send a quit command to close the connection with the server.
++ SendData(url, "QUIT" CRLF); // send a quit command to close the connection with the server.
+ m_nextState = SMTP_RESPONSE;
+ m_nextStateAfterResponse = SMTP_DONE;
+ return(0);
+@@ -1969,7 +1969,7 @@
+ {
+ nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
+ // send a quit command to close the connection with the server.
+- if (SendData(url, "QUIT"CRLF) == NS_OK)
++ if (SendData(url, "QUIT" CRLF) == NS_OK)
+ {
+ m_nextState = SMTP_RESPONSE;
+ m_nextStateAfterResponse = SMTP_ERROR_DONE;
+@@ -2118,4 +2118,3 @@
+ NS_ENSURE_SUCCESS(rv,rv);
+ return rv;
+ }
+-
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp comm-release/mailnews/imap/src/nsImapMailFolder.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp 2012-04-25 01:09:10.605469976 +0000
++++ comm-release/mailnews/imap/src/nsImapMailFolder.cpp 2012-04-25 01:09:45.928528202 +0000
+@@ -8309,7 +8309,7 @@
+ bool needMoreData = false;
+ char * newLine = nsnull;
+ PRUint32 numBytesInLine = 0;
+- const char *envelope = "From "CRLF;
++ const char *envelope = "From " CRLF;
+ offlineStore->Write(envelope, strlen(envelope), &bytesWritten);
+ fileSize += bytesWritten;
+ do
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp comm-release/mailnews/imap/src/nsImapProtocol.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp 2012-04-25 01:09:10.605469976 +0000
++++ comm-release/mailnews/imap/src/nsImapProtocol.cpp 2012-04-25 01:09:45.931861509 +0000
+@@ -1409,7 +1409,7 @@
+ {
+ // PRInt32 oldRecent = GetServerStateParser().NumberOfRecentMessages();
+ nsCAutoString commandBuffer(GetServerCommandTag());
+- commandBuffer.Append(" IDLE"CRLF);
++ commandBuffer.Append(" IDLE" CRLF);
+
+ do
+ {
+@@ -3287,7 +3287,7 @@
+ commandString.Append(messageIds);
+ commandString.Append(" (");
+ commandString.Append(attribute);
+- commandString.Append(")"CRLF);
++ commandString.Append(")" CRLF);
+ nsresult rv = SendData(commandString.get());
+
+ if (NS_SUCCEEDED(rv))
+@@ -5283,7 +5283,7 @@
+
+ IncrementCommandTagNumber();
+ nsCAutoString command(GetServerCommandTag());
+- command.Append(" expunge"CRLF);
++ command.Append(" expunge" CRLF);
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -5359,7 +5359,7 @@
+ command.Append(gAppName);
+ command.Append("\" \"version\" \"");
+ command.Append(gAppVersion);
+- command.Append("\")"CRLF);
++ command.Append("\")" CRLF);
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -5816,7 +5816,7 @@
+ nsCAutoString correctedPassword;
+ EscapeUserNamePasswordString(password.get(), &correctedPassword);
+ command.Append(correctedPassword);
+- command.Append("\""CRLF);
++ command.Append("\"" CRLF);
+ rv = SendData(command.get(), true /* suppress logging */);
+ NS_ENSURE_SUCCESS(rv, rv);
+ ParseIMAPandCheckForNewMail();
+@@ -7447,7 +7447,7 @@
+ nsCString command(GetServerCommandTag());
+ command += " create \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if(NS_SUCCEEDED(rv))
+@@ -7550,7 +7550,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " lsub \"\" \"";
+ command += escapedPattern;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ PR_Free(boxnameWithOnlineDirectory);
+
+@@ -7579,7 +7579,7 @@
+ command += useXLIST ?
+ " xlist \"\" \"" : " list \"\" \"";
+ command += escapedPattern;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ PR_Free(boxnameWithOnlineDirectory);
+
+@@ -7600,7 +7600,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " subscribe \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -7618,7 +7618,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " unsubscribe \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -7632,7 +7632,7 @@
+ if (m_urlInProgress)
+ return;
+ nsCAutoString command (GetServerCommandTag());
+- command += " IDLE"CRLF;
++ command += " IDLE" CRLF;
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+ {
+@@ -7659,7 +7659,7 @@
+ nsCOMPtr <nsIAsyncInputStream> asyncInputStream = do_QueryInterface(m_inputStream);
+ if (asyncInputStream)
+ asyncInputStream->AsyncWait(nsnull, 0, 0, nsnull);
+- nsresult rv = SendData("DONE"CRLF);
++ nsresult rv = SendData("DONE" CRLF);
+ // set a short timeout if we don't want to wait for a response
+ if (m_transport && !waitForResponse)
+ m_transport->SetTimeout(nsISocketTransport::TIMEOUT_READ_WRITE, 5);
+@@ -7728,8 +7728,8 @@
+ PRUint32 msgsHandled = 0;
+ const char *formatString;
+ formatString = (idsAreUid)
+- ? "%s uid store %s %s"CRLF
+- : "%s store %s %s"CRLF;
++ ? "%s uid store %s %s" CRLF
++ : "%s store %s %s" CRLF;
+
+ do
+ {
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-04-25 01:09:10.605469976 +0000
++++ comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-04-25 01:09:45.931861509 +0000
+@@ -185,7 +185,7 @@
+
+ NS_ASSERTION(aCurrentCommand && *aCurrentCommand != '\r' &&
+ *aCurrentCommand != '\n' && *aCurrentCommand != ' ', "Invailid command string");
+- bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE"CRLF);
++ bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE" CRLF);
+ if (sendingIdleDone)
+ fWaitingForMoreClientInput = false;
+
+diff -Nur comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp comm-release/mailnews/local/src/nsPop3Protocol.cpp
+--- comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp 2012-04-25 01:09:10.492137526 +0000
++++ comm-release/mailnews/local/src/nsPop3Protocol.cpp 2012-04-25 01:09:45.931861509 +0000
+@@ -2483,7 +2483,7 @@
+ return(MK_OUT_OF_MEMORY);
+ m_pop3ConData->next_state_after_response = POP3_GET_LIST;
+ m_listpos = 0;
+- return SendData(m_url, "LIST"CRLF);
++ return SendData(m_url, "LIST" CRLF);
+ }
+
+
+diff -Nur comm-release.orig/mailnews/mime/src/mimedrft.cpp comm-release/mailnews/mime/src/mimedrft.cpp
+--- comm-release.orig/mailnews/mime/src/mimedrft.cpp 2012-04-25 01:09:10.488804218 +0000
++++ comm-release/mailnews/mime/src/mimedrft.cpp 2012-04-25 01:09:45.931861509 +0000
+@@ -1473,7 +1473,7 @@
+ *newbody = 0;
+ PL_strcatn(newbody, newbodylen, "<PRE>");
+ PL_strcatn(newbody, newbodylen, body);
+- PL_strcatn(newbody, newbodylen, "</PRE>"CRLF);
++ PL_strcatn(newbody, newbodylen, "</PRE>" CRLF);
+ PR_Free(body);
+ body = newbody;
+ }
+diff -Nur comm-release.orig/mailnews/mime/src/mimemult.cpp comm-release/mailnews/mime/src/mimemult.cpp
+--- comm-release.orig/mailnews/mime/src/mimemult.cpp 2012-04-25 01:09:10.488804218 +0000
++++ comm-release/mailnews/mime/src/mimemult.cpp 2012-04-25 01:12:53.383735715 +0000
+@@ -280,7 +280,7 @@
+ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
+ MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: attachment; filename=\""));
+ MimeWriteAString(obj, fileName);
+- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
+ MimeWriteAString(obj, NS_LITERAL_CSTRING("X-Mozilla-External-Attachment-URL: "));
+ MimeWriteAString(obj, obj->options->state->detachedFilePath);
+ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
+@@ -293,10 +293,10 @@
+ status = MimeWriteAString(obj, header);
+ if (status < 0)
+ return status;
+- status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"Content-Transfer-Encoding: 8bit"MSG_LINEBREAK));
++ status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "Content-Transfer-Encoding: 8bit" MSG_LINEBREAK));
+ MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: inline; filename=\"Deleted: "));
+ MimeWriteAString(obj, fileName);
+- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"X-Mozilla-Altered: AttachmentDeleted; date=\""));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "X-Mozilla-Altered: AttachmentDeleted; date=\""));
+ }
+ nsCString result;
+ char timeBuffer[128];
+@@ -306,8 +306,8 @@
+ "%a %b %d %H:%M:%S %Y",
+ &now);
+ MimeWriteAString(obj, nsDependentCString(timeBuffer));
+- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
+- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK"You deleted an attachment from this message. The original MIME headers for the attachment were:"MSG_LINEBREAK));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK "You deleted an attachment from this message. The original MIME headers for the attachment were:" MSG_LINEBREAK));
+ MimeHeaders_write_raw_headers(mult->hdrs, obj->options, false);
+ }
+ PRInt32 old_nchildren = container->nchildren;
diff --git a/libre/seamonkey-libre/gcc47.patch b/libre/seamonkey-libre/gcc47.patch
new file mode 100644
index 000000000..080502c23
--- /dev/null
+++ b/libre/seamonkey-libre/gcc47.patch
@@ -0,0 +1,39 @@
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-24 23:15:57.347221336 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-24 23:18:34.116046872 +0000
+@@ -5,6 +5,9 @@
+ #include "base/file_util.h"
+
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include <string>
+ #include <vector>
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-24 23:15:57.353887955 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-24 23:18:34.116046872 +0000
+@@ -6,6 +6,9 @@
+
+ #include <errno.h>
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include "eintr_wrapper.h"
+ #include "base/logging.h"
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc comm-release/mozilla/ipc/chromium/src/base/time_posix.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-24 23:15:57.350554645 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-24 23:18:34.116046872 +0000
+@@ -13,6 +13,9 @@
+ #else
+ #include <time.h>
+ #endif
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include <limits>
+
diff --git a/libre/seamonkey-libre/mozconfig b/libre/seamonkey-libre/mozconfig
index 8257f8e4f..4d04c96d5 100644
--- a/libre/seamonkey-libre/mozconfig
+++ b/libre/seamonkey-libre/mozconfig
@@ -13,7 +13,8 @@ ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
ac_add_options --enable-system-hunspell
ac_add_options --enable-system-sqlite
-ac_add_options --enable-system-cairo
+ac_add_options --enable-system-ffi
+#ac_add_options --enable-system-cairo
ac_add_options --with-pthreads
# Features
diff --git a/libre/systemd b/libre/systemd
new file mode 160000
+Subproject dd743ddf0d2297079591f90dc75938de160ac55
diff --git a/libre/texlive-bin-libre/PKGBUILD b/libre/texlive-bin-libre/PKGBUILD
index 6fa7ec4c7..6aa88039e 100644
--- a/libre/texlive-bin-libre/PKGBUILD
+++ b/libre/texlive-bin-libre/PKGBUILD
@@ -1,16 +1,16 @@
# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
-# $Id: PKGBUILD 148521 2012-02-03 01:16:06Z remy $
+# $Id: PKGBUILD 154937 2012-03-31 10:46:09Z ronald $
# Maintainer: Rémy Oudompheng <remy@archlinux.org>
# Contributor: francois <francois.archlinux.org>
pkgname=texlive-bin-libre
pkgver=2011.3
_luatex_ver=0.70.1
-pkgrel=4.1
+pkgrel=5
pkgdesc="TeX Live binaries"
license=('GPL')
arch=('i686' 'x86_64' 'mips64el')
-depends=('t1lib' 'gd' 'poppler>=0.18.2' 'libsigsegv' 'zziplib')
+depends=('t1lib' 'gd' 'poppler' 'libsigsegv' 'zziplib')
makedepends=('perl' 'clisp' 'ffcall')
optdepends=('ed: for texconfig')
provides=('lcdf-typetools' 'kpathsea' 'xindy' 'pdfjam' 'texlive-bin')
@@ -343,8 +343,9 @@ vpe"
${_pictures_scripts} \
${_pstricks_scripts} \
${_science_scripts} \
- tlmgr; do
+ tlmgr biber; do # biber is not built from source
rm -f "$pkgdir"/usr/bin/$s
done
###################################################################
}
+
diff --git a/libre/thunderbird-libre/.directory b/libre/thunderbird-libre/.directory
new file mode 100644
index 000000000..6ec9fb1ce
--- /dev/null
+++ b/libre/thunderbird-libre/.directory
@@ -0,0 +1,2 @@
+[Dolphin]
+Timestamp=2012,4,13,6,21,8
diff --git a/libre/thunderbird-libre/PKGBUILD b/libre/thunderbird-libre/PKGBUILD
index c27851dcd..134f0efd0 100644
--- a/libre/thunderbird-libre/PKGBUILD
+++ b/libre/thunderbird-libre/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 155759 2012-04-06 07:48:34Z ibiru $
+# $Id: PKGBUILD 157994 2012-04-30 20:56:00Z ibiru $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
# Contributor: Dale Blount <dale@archlinux.org>
@@ -6,13 +6,13 @@
# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
pkgname=thunderbird-libre
-pkgver=11.0.1
-pkgrel=2
+pkgver=12.0.1
+pkgrel=1
pkgdesc="Standalone Mail/News reader"
arch=('i686' 'x86_64')
license=('MPL' 'GPL')
url="http://www.mozilla.org/thunderbird/"
-depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hicolor-icon-theme' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'nss' 'sqlite3' 'startup-notification')
+depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hicolor-icon-theme' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'nss' 'sqlite' 'startup-notification')
makedepends=('unzip' 'zip' 'pkg-config' 'python2' 'wireless_tools' 'yasm' 'mesa' 'autoconf2.13')
optdepends=('libcanberra: for sound support')
replaces=('thunderbird')
@@ -25,25 +25,27 @@ source=(ftp://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/sourc
thunderbird-install-dir.patch
channel-prefs.js
vendor.js
- libvpx.patch
gcc47.patch
- clrf.patch)
-md5sums=('b500560a006cb10194281263c78841f2'
+ clrf.patch
+ searchplugins-libre.patch)
+md5sums=('64cacde4cb2b1e8736f1c3a0ea6a02db'
'41511a6bcdd04cf56706218e4670e631'
'af3e5b344d2edf1c7d61bb0a5a96de9a'
'aea906acf72c43dd82ead2fabcc1c6db'
'476ec205162340fb0679f522c9d31c3b'
'5a53179d14ae9631b7afe5e4d0fc0b25'
- '5b2aaff7dfe7f1f94ad965905b20e782'
- '07b255039a2ffbcab5b5be7986245e36'
- '5c8d79a9f1ecadffa818205ce1c23f2f')
+ '1e3ad86899c61f0993c429d10913edb4'
+ 'abe8f73faa71ea2a1e4c6f5a33f56c27'
+ '6a1d132b0275876678cb0b08c527805a')
build() {
- cd "$srcdir/comm-release"
+ cd comm-release
patch -Np1 -i "$srcdir/thunderbird-install-dir.patch"
- patch -Np1 -i "$srcdir/libvpx.patch"
patch -Np1 -i "$srcdir/gcc47.patch"
- patch -Np2 -i "$srcdir/clrf.patch"
+ patch -Np1 -i "$srcdir/clrf.patch"
+
+ # Removing non-free search plugins replacing them with duckduckgo and identi.ca
+ patch -Np1 -i "$srcdir/searchplugins-libre.patch"
cp "$srcdir/mozconfig" .mozconfig
@@ -54,7 +56,7 @@ build() {
}
package() {
- cd "$srcdir/comm-release"
+ cd comm-release
make -j1 -f client.mk DESTDIR="$pkgdir" install
install -m644 "$srcdir"/vendor.js "$pkgdir/usr/lib/thunderbird/defaults/pref/"
diff --git a/libre/thunderbird-libre/clrf.patch b/libre/thunderbird-libre/clrf.patch
index 9b6fcb8fb..5a77f2b01 100644
--- a/libre/thunderbird-libre/clrf.patch
+++ b/libre/thunderbird-libre/clrf.patch
@@ -1,7 +1,7 @@
-diff -up thunderbird-11.0/comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp.733867 thunderbird-11.0/comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp
---- thunderbird-11.0/comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp.733867 2012-03-13 03:37:12.000000000 +0100
-+++ thunderbird-11.0/comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-03-16 07:20:29.299342799 +0100
-@@ -688,7 +688,7 @@ nsresult nsMsgSearchAdapter::EncodeImapV
+diff -Nur comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp
+--- comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-04-25 01:09:10.468804374 +0000
++++ comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-04-25 01:09:45.928528202 +0000
+@@ -688,7 +688,7 @@
PL_strcat(encoding, "{");
lengthStr.AppendInt((PRInt32) strlen(value));
PL_strcat(encoding, lengthStr.get());
@@ -10,10 +10,10 @@ diff -up thunderbird-11.0/comm-release/mailnews/base/search/src/nsMsgSearchAdapt
PL_strcat(encoding, value);
return NS_OK;
}
-diff -up thunderbird-11.0/comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp.733867 thunderbird-11.0/comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp
---- thunderbird-11.0/comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp.733867 2012-03-13 03:37:13.000000000 +0100
-+++ thunderbird-11.0/comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-03-16 07:20:29.300342735 +0100
-@@ -753,7 +753,7 @@ nsFolderCompactState::OnDataAvailable(ns
+diff -Nur comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp
+--- comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-04-25 01:09:10.475470988 +0000
++++ comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-04-25 01:09:45.928528202 +0000
+@@ -758,7 +758,7 @@
}
}
}
@@ -22,7 +22,7 @@ diff -up thunderbird-11.0/comm-release/mailnews/base/src/nsMsgFolderCompactor.cp
// if status offset isn't in the first block, this code won't work. There's no good reason
// for the status offset not to be at the beginning of the message anyway.
-@@ -1203,7 +1203,7 @@ nsOfflineStoreCompactState::OnDataAvaila
+@@ -1216,7 +1216,7 @@
// check if there's an envelope header; if not, write one.
if (strncmp(m_dataBuffer, "From ", 5))
{
@@ -31,19 +31,19 @@ diff -up thunderbird-11.0/comm-release/mailnews/base/src/nsMsgFolderCompactor.cp
m_offlineMsgSize += bytesWritten;
}
}
-diff -up thunderbird-11.0/comm-release/mailnews/compose/src/nsSmtpProtocol.cpp.733867 thunderbird-11.0/comm-release/mailnews/compose/src/nsSmtpProtocol.cpp
---- thunderbird-11.0/comm-release/mailnews/compose/src/nsSmtpProtocol.cpp.733867 2012-03-13 03:37:13.000000000 +0100
-+++ thunderbird-11.0/comm-release/mailnews/compose/src/nsSmtpProtocol.cpp 2012-03-16 07:23:01.225877457 +0100
-@@ -1722,7 +1722,7 @@ PRInt32 nsSmtpProtocol::SendQuit()
+diff -Nur comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp comm-release/mailnews/compose/src/nsSmtpProtocol.cpp
+--- comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp 2012-04-25 01:09:10.542137136 +0000
++++ comm-release/mailnews/compose/src/nsSmtpProtocol.cpp 2012-04-25 01:09:45.928528202 +0000
+@@ -1722,7 +1722,7 @@
{
- m_sendDone = PR_TRUE;
+ m_sendDone = true;
nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
- SendData(url, "QUIT"CRLF); // send a quit command to close the connection with the server.
+ SendData(url, "QUIT" CRLF); // send a quit command to close the connection with the server.
m_nextState = SMTP_RESPONSE;
m_nextStateAfterResponse = SMTP_DONE;
return(0);
-@@ -1969,7 +1969,7 @@ nsresult nsSmtpProtocol::LoadUrl(nsIURI
+@@ -1969,7 +1969,7 @@
{
nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
// send a quit command to close the connection with the server.
@@ -52,15 +52,15 @@ diff -up thunderbird-11.0/comm-release/mailnews/compose/src/nsSmtpProtocol.cpp.7
{
m_nextState = SMTP_RESPONSE;
m_nextStateAfterResponse = SMTP_ERROR_DONE;
-@@ -2118,4 +2118,3 @@ nsSmtpProtocol::GetUsernamePassword(nsAC
+@@ -2118,4 +2118,3 @@
NS_ENSURE_SUCCESS(rv,rv);
return rv;
}
-
-diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapMailFolder.cpp.733867 thunderbird-11.0/comm-release/mailnews/imap/src/nsImapMailFolder.cpp
---- thunderbird-11.0/comm-release/mailnews/imap/src/nsImapMailFolder.cpp.733867 2012-03-13 03:37:13.000000000 +0100
-+++ thunderbird-11.0/comm-release/mailnews/imap/src/nsImapMailFolder.cpp 2012-03-16 07:20:29.309342162 +0100
-@@ -8298,7 +8298,7 @@ nsImapMailFolder::CopyFileToOfflineStore
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp comm-release/mailnews/imap/src/nsImapMailFolder.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp 2012-04-25 01:09:10.605469976 +0000
++++ comm-release/mailnews/imap/src/nsImapMailFolder.cpp 2012-04-25 01:09:45.928528202 +0000
+@@ -8309,7 +8309,7 @@
bool needMoreData = false;
char * newLine = nsnull;
PRUint32 numBytesInLine = 0;
@@ -69,10 +69,10 @@ diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapMailFolder.cpp.73
offlineStore->Write(envelope, strlen(envelope), &bytesWritten);
fileSize += bytesWritten;
do
-diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp.733867 thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp
---- thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp.733867 2012-03-13 03:37:13.000000000 +0100
-+++ thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp 2012-03-16 07:20:29.314341844 +0100
-@@ -1410,7 +1410,7 @@ void nsImapProtocol::HandleIdleResponses
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp comm-release/mailnews/imap/src/nsImapProtocol.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp 2012-04-25 01:09:10.605469976 +0000
++++ comm-release/mailnews/imap/src/nsImapProtocol.cpp 2012-04-25 01:09:45.931861509 +0000
+@@ -1409,7 +1409,7 @@
{
// PRInt32 oldRecent = GetServerStateParser().NumberOfRecentMessages();
nsCAutoString commandBuffer(GetServerCommandTag());
@@ -81,7 +81,7 @@ diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp.7338
do
{
-@@ -3290,7 +3290,7 @@ void nsImapProtocol::FetchMsgAttribute(c
+@@ -3287,7 +3287,7 @@
commandString.Append(messageIds);
commandString.Append(" (");
commandString.Append(attribute);
@@ -90,7 +90,7 @@ diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp.7338
nsresult rv = SendData(commandString.get());
if (NS_SUCCEEDED(rv))
-@@ -5283,7 +5283,7 @@ nsImapProtocol::Expunge()
+@@ -5283,7 +5283,7 @@
IncrementCommandTagNumber();
nsCAutoString command(GetServerCommandTag());
@@ -99,7 +99,7 @@ diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp.7338
nsresult rv = SendData(command.get());
if (NS_SUCCEEDED(rv))
-@@ -5359,7 +5359,7 @@ void nsImapProtocol::ID()
+@@ -5359,7 +5359,7 @@
command.Append(gAppName);
command.Append("\" \"version\" \"");
command.Append(gAppVersion);
@@ -108,16 +108,16 @@ diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp.7338
nsresult rv = SendData(command.get());
if (NS_SUCCEEDED(rv))
-@@ -5816,7 +5816,7 @@ nsresult nsImapProtocol::AuthLogin(const
+@@ -5816,7 +5816,7 @@
nsCAutoString correctedPassword;
EscapeUserNamePasswordString(password.get(), &correctedPassword);
command.Append(correctedPassword);
- command.Append("\""CRLF);
+ command.Append("\"" CRLF);
- rv = SendData(command.get(), PR_TRUE /* suppress logging */);
+ rv = SendData(command.get(), true /* suppress logging */);
NS_ENSURE_SUCCESS(rv, rv);
ParseIMAPandCheckForNewMail();
-@@ -7446,7 +7446,7 @@ void nsImapProtocol::CreateMailbox(const
+@@ -7447,7 +7447,7 @@
nsCString command(GetServerCommandTag());
command += " create \"";
command += escapedName;
@@ -126,7 +126,7 @@ diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp.7338
nsresult rv = SendData(command.get());
if(NS_SUCCEEDED(rv))
-@@ -7549,7 +7549,7 @@ void nsImapProtocol::Lsub(const char *ma
+@@ -7550,7 +7550,7 @@
nsCString command (GetServerCommandTag());
command += " lsub \"\" \"";
command += escapedPattern;
@@ -135,7 +135,7 @@ diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp.7338
PR_Free(boxnameWithOnlineDirectory);
-@@ -7578,7 +7578,7 @@ void nsImapProtocol::List(const char *ma
+@@ -7579,7 +7579,7 @@
command += useXLIST ?
" xlist \"\" \"" : " list \"\" \"";
command += escapedPattern;
@@ -144,7 +144,7 @@ diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp.7338
PR_Free(boxnameWithOnlineDirectory);
-@@ -7599,7 +7599,7 @@ void nsImapProtocol::Subscribe(const cha
+@@ -7600,7 +7600,7 @@
nsCString command (GetServerCommandTag());
command += " subscribe \"";
command += escapedName;
@@ -153,7 +153,7 @@ diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp.7338
nsresult rv = SendData(command.get());
if (NS_SUCCEEDED(rv))
-@@ -7617,7 +7617,7 @@ void nsImapProtocol::Unsubscribe(const c
+@@ -7618,7 +7618,7 @@
nsCString command (GetServerCommandTag());
command += " unsubscribe \"";
command += escapedName;
@@ -162,7 +162,7 @@ diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp.7338
nsresult rv = SendData(command.get());
if (NS_SUCCEEDED(rv))
-@@ -7631,7 +7631,7 @@ void nsImapProtocol::Idle()
+@@ -7632,7 +7632,7 @@
if (m_urlInProgress)
return;
nsCAutoString command (GetServerCommandTag());
@@ -171,7 +171,7 @@ diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp.7338
nsresult rv = SendData(command.get());
if (NS_SUCCEEDED(rv))
{
-@@ -7658,7 +7658,7 @@ void nsImapProtocol::EndIdle(bool waitFo
+@@ -7659,7 +7659,7 @@
nsCOMPtr <nsIAsyncInputStream> asyncInputStream = do_QueryInterface(m_inputStream);
if (asyncInputStream)
asyncInputStream->AsyncWait(nsnull, 0, 0, nsnull);
@@ -180,7 +180,7 @@ diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp.7338
// set a short timeout if we don't want to wait for a response
if (m_transport && !waitForResponse)
m_transport->SetTimeout(nsISocketTransport::TIMEOUT_READ_WRITE, 5);
-@@ -7727,8 +7727,8 @@ void nsImapProtocol::Copy(const char * m
+@@ -7728,8 +7728,8 @@
PRUint32 msgsHandled = 0;
const char *formatString;
formatString = (idsAreUid)
@@ -191,22 +191,22 @@ diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapProtocol.cpp.7338
do
{
-diff -up thunderbird-11.0/comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp.733867 thunderbird-11.0/comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp
---- thunderbird-11.0/comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp.733867 2012-03-13 03:37:13.000000000 +0100
-+++ thunderbird-11.0/comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-03-16 07:20:29.316341717 +0100
-@@ -185,7 +185,7 @@ void nsImapServerResponseParser::ParseIM
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-04-25 01:09:10.605469976 +0000
++++ comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-04-25 01:09:45.931861509 +0000
+@@ -185,7 +185,7 @@
NS_ASSERTION(aCurrentCommand && *aCurrentCommand != '\r' &&
*aCurrentCommand != '\n' && *aCurrentCommand != ' ', "Invailid command string");
- bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE"CRLF);
+ bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE" CRLF);
if (sendingIdleDone)
- fWaitingForMoreClientInput = PR_FALSE;
+ fWaitingForMoreClientInput = false;
-diff -up thunderbird-11.0/comm-release/mailnews/local/src/nsPop3Protocol.cpp.733867 thunderbird-11.0/comm-release/mailnews/local/src/nsPop3Protocol.cpp
---- thunderbird-11.0/comm-release/mailnews/local/src/nsPop3Protocol.cpp.733867 2012-03-13 03:37:13.000000000 +0100
-+++ thunderbird-11.0/comm-release/mailnews/local/src/nsPop3Protocol.cpp 2012-03-16 07:23:38.980300990 +0100
-@@ -2483,7 +2483,7 @@ PRInt32 nsPop3Protocol::SendList()
+diff -Nur comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp comm-release/mailnews/local/src/nsPop3Protocol.cpp
+--- comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp 2012-04-25 01:09:10.492137526 +0000
++++ comm-release/mailnews/local/src/nsPop3Protocol.cpp 2012-04-25 01:09:45.931861509 +0000
+@@ -2483,7 +2483,7 @@
return(MK_OUT_OF_MEMORY);
m_pop3ConData->next_state_after_response = POP3_GET_LIST;
m_listpos = 0;
@@ -215,10 +215,10 @@ diff -up thunderbird-11.0/comm-release/mailnews/local/src/nsPop3Protocol.cpp.733
}
-diff -up thunderbird-11.0/comm-release/mailnews/mime/src/mimedrft.cpp.733867 thunderbird-11.0/comm-release/mailnews/mime/src/mimedrft.cpp
---- thunderbird-11.0/comm-release/mailnews/mime/src/mimedrft.cpp.733867 2012-03-13 03:37:13.000000000 +0100
-+++ thunderbird-11.0/comm-release/mailnews/mime/src/mimedrft.cpp 2012-03-16 07:20:29.320341461 +0100
-@@ -1473,7 +1473,7 @@ mime_parse_stream_complete (nsMIMESessio
+diff -Nur comm-release.orig/mailnews/mime/src/mimedrft.cpp comm-release/mailnews/mime/src/mimedrft.cpp
+--- comm-release.orig/mailnews/mime/src/mimedrft.cpp 2012-04-25 01:09:10.488804218 +0000
++++ comm-release/mailnews/mime/src/mimedrft.cpp 2012-04-25 01:09:45.931861509 +0000
+@@ -1473,7 +1473,7 @@
*newbody = 0;
PL_strcatn(newbody, newbodylen, "<PRE>");
PL_strcatn(newbody, newbodylen, body);
@@ -227,10 +227,10 @@ diff -up thunderbird-11.0/comm-release/mailnews/mime/src/mimedrft.cpp.733867 thu
PR_Free(body);
body = newbody;
}
-diff -up thunderbird-11.0/comm-release/mailnews/mime/src/mimemult.cpp.733867 thunderbird-11.0/comm-release/mailnews/mime/src/mimemult.cpp
---- thunderbird-11.0/comm-release/mailnews/mime/src/mimemult.cpp.733867 2012-03-13 03:37:13.000000000 +0100
-+++ thunderbird-11.0/comm-release/mailnews/mime/src/mimemult.cpp 2012-03-16 07:20:29.321341397 +0100
-@@ -280,7 +280,7 @@ MimeMultipart_parse_line (const char *li
+diff -Nur comm-release.orig/mailnews/mime/src/mimemult.cpp comm-release/mailnews/mime/src/mimemult.cpp
+--- comm-release.orig/mailnews/mime/src/mimemult.cpp 2012-04-25 01:09:10.488804218 +0000
++++ comm-release/mailnews/mime/src/mimemult.cpp 2012-04-25 01:12:53.383735715 +0000
+@@ -280,7 +280,7 @@
MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: attachment; filename=\""));
MimeWriteAString(obj, fileName);
@@ -239,7 +239,7 @@ diff -up thunderbird-11.0/comm-release/mailnews/mime/src/mimemult.cpp.733867 thu
MimeWriteAString(obj, NS_LITERAL_CSTRING("X-Mozilla-External-Attachment-URL: "));
MimeWriteAString(obj, obj->options->state->detachedFilePath);
MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
-@@ -293,10 +293,10 @@ MimeMultipart_parse_line (const char *li
+@@ -293,10 +293,10 @@
status = MimeWriteAString(obj, header);
if (status < 0)
return status;
@@ -252,7 +252,7 @@ diff -up thunderbird-11.0/comm-release/mailnews/mime/src/mimemult.cpp.733867 thu
}
nsCString result;
char timeBuffer[128];
-@@ -306,8 +306,8 @@ MimeMultipart_parse_line (const char *li
+@@ -306,8 +306,8 @@
"%a %b %d %H:%M:%S %Y",
&now);
MimeWriteAString(obj, nsDependentCString(timeBuffer));
@@ -260,6 +260,6 @@ diff -up thunderbird-11.0/comm-release/mailnews/mime/src/mimemult.cpp.733867 thu
- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK"You deleted an attachment from this message. The original MIME headers for the attachment were:"MSG_LINEBREAK));
+ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
+ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK "You deleted an attachment from this message. The original MIME headers for the attachment were:" MSG_LINEBREAK));
- MimeHeaders_write_raw_headers(mult->hdrs, obj->options, PR_FALSE);
+ MimeHeaders_write_raw_headers(mult->hdrs, obj->options, false);
}
PRInt32 old_nchildren = container->nchildren;
diff --git a/libre/thunderbird-libre/gcc46.patch b/libre/thunderbird-libre/gcc46.patch
deleted file mode 100644
index 71a3686ea..000000000
--- a/libre/thunderbird-libre/gcc46.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur comm-1.9.2.orig//mozilla/gfx/ots/src/os2.cc comm-1.9.2/mozilla/gfx/ots/src/os2.cc
---- comm-1.9.2.orig//mozilla/gfx/ots/src/os2.cc 2011-04-14 11:37:21.000000000 -0700
-+++ comm-1.9.2/mozilla/gfx/ots/src/os2.cc 2011-04-29 09:10:23.635807433 -0700
-@@ -2,6 +2,8 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <cstddef>
-+
- #include "os2.h"
-
- #include "head.h"
diff --git a/libre/thunderbird-libre/gcc47.patch b/libre/thunderbird-libre/gcc47.patch
index 3e1e9b98a..080502c23 100644
--- a/libre/thunderbird-libre/gcc47.patch
+++ b/libre/thunderbird-libre/gcc47.patch
@@ -1,18 +1,6 @@
-diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util.cc comm-release/mozilla/ipc/chromium/src/base/file_util.cc
---- comm-release.orig/mozilla/ipc/chromium/src/base/file_util.cc 2012-04-03 18:38:11.474783536 +0000
-+++ comm-release/mozilla/ipc/chromium/src/base/file_util.cc 2012-04-03 18:43:29.218995578 +0000
-@@ -8,7 +8,7 @@
- #include <io.h>
- #endif
- #include <stdio.h>
--#if defined(ANDROID)
-+#if defined(ANDROID) || defined(OS_POSIX)
- #include <unistd.h>
- #endif
-
diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc
---- comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-03 18:38:11.381450924 +0000
-+++ comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-03 18:43:29.218995578 +0000
+--- comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-24 23:15:57.347221336 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-24 23:18:34.116046872 +0000
@@ -5,6 +5,9 @@
#include "base/file_util.h"
@@ -24,8 +12,8 @@ diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc com
#include <string>
#include <vector>
diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc
---- comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-03 18:38:11.438117153 +0000
-+++ comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-03 18:43:29.218995578 +0000
+--- comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-24 23:15:57.353887955 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-24 23:18:34.116046872 +0000
@@ -6,6 +6,9 @@
#include <errno.h>
@@ -37,27 +25,15 @@ diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.
#include "eintr_wrapper.h"
#include "base/logging.h"
diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc comm-release/mozilla/ipc/chromium/src/base/time_posix.cc
---- comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-03 18:38:11.418117308 +0000
-+++ comm-release/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-03 18:43:29.218995578 +0000
-@@ -14,6 +14,8 @@
+--- comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-24 23:15:57.350554645 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-24 23:18:34.116046872 +0000
+@@ -13,6 +13,9 @@
+ #else
#include <time.h>
#endif
-
++#if defined(ANDROID) || defined(OS_POSIX)
+#include <unistd.h>
-+
- #include <limits>
++#endif
- #include "base/basictypes.h"
-diff -Nur comm-release.orig/mozilla/toolkit/crashreporter/client/Makefile.in comm-release/mozilla/toolkit/crashreporter/client/Makefile.in
---- comm-release.orig/mozilla/toolkit/crashreporter/client/Makefile.in 2012-04-03 18:38:56.101105510 +0000
-+++ comm-release/mozilla/toolkit/crashreporter/client/Makefile.in 2012-04-03 18:43:29.218995578 +0000
-@@ -69,6 +69,9 @@
- $(STDCXX_COMPAT) \
- $(NULL)
+ #include <limits>
-+# Needed for moz_free
-+LIBS += -L$(LIBXUL_DIST)/lib -lmozalloc
-+
- ifeq ($(OS_ARCH),WINNT)
- CPPSRCS += crashreporter_win.cpp
- LIBS += \
diff --git a/libre/thunderbird-libre/gnuzilla-addons.patch b/libre/thunderbird-libre/gnuzilla-addons.patch
deleted file mode 100644
index 2c0e4a68f..000000000
--- a/libre/thunderbird-libre/gnuzilla-addons.patch
+++ /dev/null
@@ -1,36 +0,0 @@
---- usr/lib/thunderbird-3.1/defaults/pref/all-thunderbird.js 2011-03-04 17:28:11.000000000 -0300
-+++ all-thunderbird.js 2011-03-08 11:22:31.437207173 -0300
-@@ -144,9 +144,9 @@
- pref("extensions.update.interval", 86400); // Check for updates to Extensions and
- // Themes every day
- // Non-symmetric (not shared by extensions) extension-specific [update] preferences
--pref("extensions.getMoreExtensionsURL", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/extensions/");
--pref("extensions.getMoreThemesURL", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/themes/");
--pref("extensions.getMorePluginsURL", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/plugins/");
-+pref("extensions.getMoreExtensionsURL", "http://www.gnu.org/software/gnuzilla/addons.html");
-+pref("extensions.getMoreThemesURL", "http://www.gnu.org/software/gnuzilla/addons.html");
-+pref("extensions.getMorePluginsURL", "http://www.gnu.org/software/gnuzilla/addons.html");
- pref("extensions.dss.enabled", false); // Dynamic Skin Switching
- pref("extensions.dss.switchPending", false); // Non-dynamic switch pending after next
-
-@@ -155,14 +155,14 @@
-
- // Preferences for the Get Add-ons pane
- pref("extensions.getAddons.showPane", true);
--pref("extensions.getAddons.browseAddons", "https://addons.mozilla.org/%LOCALE%/%APP%");
-+pref("extensions.getAddons.browseAddons", "http://www.gnu.org/software/gnuzilla/addons.html");
- pref("extensions.getAddons.maxResults", 5);
--pref("extensions.getAddons.recommended.browseURL", "https://addons.mozilla.org/%LOCALE%/%APP%/recommended");
--pref("extensions.getAddons.recommended.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/list/featured/all/10/%OS%/%VERSION%");
--pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/%APP%/search?q=%TERMS%");
--pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/search/%TERMS%/all/10/%OS%/%VERSION%");
-+pref("extensions.getAddons.recommended.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
-+pref("extensions.getAddons.recommended.url", "http://www.gnu.org/software/gnuzilla/addons.html");
-+pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
-+pref("extensions.getAddons.search.url", "http://www.gnu.org/software/gnuzilla/addons.html");
-
--pref("xpinstall.whitelist.add", "addons.mozilla.org");
-+pref("xpinstall.whitelist.add", "www.gnu.org");
- pref("xpinstall.whitelist.add.36", "getpersonas.com");
-
- pref("mail.shell.checkDefaultClient", true);
diff --git a/libre/thunderbird-libre/libvpx.patch b/libre/thunderbird-libre/libvpx.patch
deleted file mode 100644
index d0f9a0f4c..000000000
--- a/libre/thunderbird-libre/libvpx.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur comm-release.orig/mozilla/configure.in comm-release/mozilla/configure.in
---- comm-release.orig/mozilla/configure.in 2012-02-05 18:02:17.376830377 +0000
-+++ comm-release/mozilla/configure.in 2012-02-05 18:03:25.246274275 +0000
-@@ -5629,7 +5629,7 @@
- dnl v0.9.6 one to check for.
- AC_TRY_COMPILE([
- #include <vpx/vpx_decoder.h>
-- #if !defined(VPX_CODEC_USE_INPUT_PARTITION)
-+ #if !defined(VPX_CODEC_USE_INPUT_FRAGMENTS)
- #error "test failed."
- #endif
- ],
diff --git a/libre/thunderbird-libre/mozilla-notify.patch b/libre/thunderbird-libre/mozilla-notify.patch
deleted file mode 100644
index 952567b0e..000000000
--- a/libre/thunderbird-libre/mozilla-notify.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp.libnotify comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp
---- comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp.libnotify 2010-10-27 09:05:36.000000000 +0200
-+++ comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp 2010-11-08 13:28:04.564002379 +0100
-@@ -204,7 +204,7 @@ nsAlertsIconListener::ShowAlert(GdkPixbu
- {
- NotifyNotification* notify = notify_notification_new(mAlertTitle.get(),
- mAlertText.get(),
-- NULL, NULL);
-+ NULL);
- if (!notify)
- return NS_ERROR_OUT_OF_MEMORY;
-
diff --git a/libre/thunderbird-libre/python2.7.patch b/libre/thunderbird-libre/python2.7.patch
deleted file mode 100644
index 2d159d479..000000000
--- a/libre/thunderbird-libre/python2.7.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure.in 2010-10-13 08:37:29.000000000 -0700
-+++ configure.in~ 2010-10-19 10:32:06.360019362 -0700
-@@ -878,7 +878,7 @@
- AC_MSG_RESULT([yes])
- fi
-
--MOZ_PATH_PROGS(PYTHON, $PYTHON python2.6 python2.5 python2.4 python)
-+MOZ_PATH_PROGS(PYTHON, $PYTHON python2.7 python2.6 python2.5 python2.4 python)
- if test -z "$PYTHON"; then
- AC_MSG_ERROR([python was not found in \$PATH])
- fi
diff --git a/libre/thunderbird-libre/searchplugins-libre.patch b/libre/thunderbird-libre/searchplugins-libre.patch
new file mode 100644
index 000000000..e466a9eb3
--- /dev/null
+++ b/libre/thunderbird-libre/searchplugins-libre.patch
@@ -0,0 +1,144 @@
+--- comm-release.orig/mail/locales/en-US/searchplugins/list.txt 2012-03-27 15:56:00.000000000 -0300
++++ comm-release/mail/locales/en-US/searchplugins/list.txt 2012-04-13 05:43:25.227475353 -0300
+@@ -1,7 +1,5 @@
+-amazondotcom
+-aol-web-search
+-bing
++duckduckgo-ssl
+ eBay
+-twitter
++identica-notice-search
++identica-people-search
+ wikipedia
+-yahoo
+--- comm-release.orig/mail/locales/en-US/searchplugins/amazondotcom.xml 2012-03-27 15:56:00.000000000 -0300
++++ /dev/null 2012-04-12 23:52:53.981159155 -0300
+@@ -1,11 +0,0 @@
+-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+-<ShortName>Amazon.com</ShortName>
+-<Description>Amazon.com Search</Description>
+-<InputEncoding>ISO-8859-1</InputEncoding>
+-<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHgSURBVHjalFM9TNtQEP4cB7PwM1RITUXIgsRaYEEVEyKZwhiyZAQyd0BhpFOlIjoBqhjSqVQMoVMLLAjEwECCQJkSkBqJYDOAFOMKFSf28d7DTUxiUDnp/Pzeu/vuu7t3ICKF6SLTMv2/lB0fRWKfjwDm4JJisYh0Oo3fpZLYT0SjSCQS8JAFMADNDZ3NZsnf1taiqVTKi4nGASruk5lkkmTmMB6JUKFQqO+DfX1eABWeQoVR6f7HSdM0obqu48Yw8G1tDT82NsRd1TSbU9BbGPCog8PDj+jLzurFoAVgMh4XxoNDQ6SqKi0tL9eBvAB8zZwymYxYY7EYAoEA8vm82BNTg6XUIs0MeGTZoR1mhXSnwNl4pmAbjU7mcjkKhkL1ynMnntZ4OEw3VyrV8utk7s5TdW++0QXz+1i3P7IK36t+PCfVn1OQOoOA0gXr5DPak+cPXbBK+/T3S69AtY3LJ98vZ1or/iLr+pTuvr59/A6s003UdqZFJF/PCKQ3o5CUznoBST2AfbEF/9iqYEDaIfwj73VJPEfgNTe0tWNYR0uwy9uOW0OkrgHI7z5ADo2C7v48nLV3XHKAT+x/1m1sX58xsBxg8rZJrDYD8DHHp4aJj/MK09sXjPOt46PcCzAACXY8/u34wN0AAAAASUVORK5CYII=</Image>
+-<Url type="text/html" method="GET" template="http://www.amazon.com/exec/obidos/external-search/">
+- <Param name="field-keywords" value="{searchTerms}"/>
+- <Param name="mode" value="blended"/>
+-</Url>
+-<SearchForm>http://www.amazon.com/</SearchForm>
+-</SearchPlugin>
+--- comm-release.orig/mail/locales/en-US/searchplugins/aol-web-search.xml 2012-03-27 15:56:00.000000000 -0300
++++ /dev/null 2012-04-12 23:52:53.981159155 -0300
+@@ -1,10 +0,0 @@
+-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
+-<os:ShortName>AOL Web Search</os:ShortName>
+-<os:Description>The AOL Search engine delivers great web search results, enhanced by Google, plus relevant multimedia results delivered on a single page-so you can search less and discover more.</os:Description>
+-<os:InputEncoding>UTF-8</os:InputEncoding>
+-<os:Image width="16" height="16">data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%10%00%00%00%10%08%06%00%00%00%1F%F3%FFa%00%00%00%06bKGD%00%FF%00%FF%00%FF%A0%BD%A7%93%00%00%00%09pHYs%00%00%00H%00%00%00H%00F%C9k%3E%00%00%00%FAIDAT8%CB%9D%D3%B1q%C2%40%10%85%E1%0F%8F%0B%A0%04%97%00%1D%40%05%C6%01%B9%95*1%AA%C0C%05%E0%84%D4%E4%0A%0C%15H%EE%40%1D%98%12%D4%81%1D%E84%C8B%60%C9%2F9%AD%EE%EE%9F%DD%B7%7B%23%B0%DC%7D%A3D%22%8D%F7%06h%D4%00%D4*%02(%EF%03%B8%EB%F87Af%B9%7B%EF%03%B8o%C59%DE%A4%F1%E1%3F%25%EC%91%60%83%87%B0%FF%89m%F8%5Et%F9S%032%3C%E1%0B%E3%D6%99%02s%7C%848%91%C6E%1B0%C1%0B%9E%AFd%9A%E0%D4%80l%B1%96%C6eebE%9C%DC(%F51dRk%15%B2%FD%D5%85%B1a*%CF%80%AA%84%FC%C6%E1%23f%8Dx%8D)%E76n%10aq%C5%C4%03%B2%B0%26%D2%F8To%D6%80Y0q%8AW%97m%1C%23%EA%9A%CE%E6%20%AD%82%91%5D%83T%AA%BAp%A1%AE%B7Pk%2F%8D%A3%BF%9C%ECz%0B9%E6%7D.7K(%C3%3A%F89%FF%00_%82G%C3%D5%0E(%3E%00%00%00%00IEND%AEB%60%82</os:Image>
+-<SearchForm>http://search.aol.com</SearchForm>
+-<os:Url type="text/html" method="GET" template="http://search.aol.com/aol/search">
+- <os:Param name="query" value="{searchTerms}"/>
+-</os:Url>
+-</SearchPlugin>
+--- comm-release.orig/mail/locales/en-US/searchplugins/bing.xml 2012-03-27 15:56:00.000000000 -0300
++++ /dev/null 2012-04-12 23:52:53.981159155 -0300
+@@ -1,21 +0,0 @@
+-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+- <ShortName>Bing</ShortName>
+- <Description>Bing. Search by Microsoft.</Description>
+- <InputEncoding>UTF-8</InputEncoding>
+- <Image width="16" height="16" type="image/x-icon">data:image/x-icon;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAABMLAAATCwAAAAAAAAAAAAAVpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8ysf97zf+24//F6f/F6f/F6f+K0/9QvP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8krP+Z2P/////////w+f/F6f/F6f/i9P/////////T7v9Bt/8Vpv8Vpv8Vpv8Vpv/T7v/////w+f97zf8Vpv8Vpv8Vpv8Vpv9QvP/T7v/////w+f9Bt/8Vpv8Vpv97zf////////9QvP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8krP/i9P/////i9P8Vpv8Vpv+24//////i9P8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv+K0/////////8Vpv8Vpv/F6f////////8krP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv+n3v/////w+f8Vpv8Vpv/F6f////////+n3v8krP8Vpv8Vpv8Vpv8Vpv8Vpv9tx/////////+Z2P8Vpv8Vpv/F6f/////////////i9P+K0/9QvP9QvP9tx//F6f////////+n3v8Vpv8Vpv8Vpv/F6f/////T7v+Z2P/i9P////////////////////+24/9QvP8Vpv8Vpv8Vpv8Vpv/F6f/////F6f8Vpv8Vpv8krP9QvP9QvP9Bt/8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv/F6f/////F6f8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv9Bt/9QvP9Bt/8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8AAHBsAABhdAAAbiAAAHJ0AABsaQAAdGkAACBDAABlbgAAUEEAAEVYAAAuQwAAOy4AAEU7AABBVAAAQ00AAC5W</Image>
+- <Url type="application/x-suggestions+json" template="http://api.bing.com/osjson.aspx">
+- <Param name="query" value="{searchTerms}"/>
+- <Param name="form" value="OSDJAS"/>
+- </Url>
+- <Url type="text/html" method="GET" template="http://www.bing.com/search">
+- <Param name="q" value="{searchTerms}"/>
+- <Param name="form" value="MOZESB"/>
+- <MozParam name="pc" condition="pref" pref="ms-pc"/>
+- </Url>
+- <Url type="application/x-moz-keywordsearch" method="GET" template="http://www.bing.com/search">
+- <Param name="q" value="{searchTerms}"/>
+- <Param name="form" value="MOZESB"/>
+- <MozParam name="pc" condition="pref" pref="ms-pc"/>
+- </Url>
+- <SearchForm>http://www.bing.com/search</SearchForm>
+-</SearchPlugin>
+--- comm-release.orig/mail/locales/en-US/searchplugins/google.xml 2012-03-27 15:56:00.000000000 -0300
++++ /dev/null 2012-04-12 23:52:53.981159155 -0300
+@@ -1,14 +0,0 @@
+-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+-<ShortName>Google</ShortName>
+-<Description>Google Search</Description>
+-<InputEncoding>UTF-8</InputEncoding>
+-<Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%2BTzvb2%2B%2Fne4dFJeBw0egA%2FfAJAfAA8ewBBegAAAAD%2B%2FPtft98Mp%2BwWsfAVsvEbs%2FQeqvF8xO7%2F%2F%2F63yqkxdgM7gwE%2FggM%2BfQA%2BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%2FQvq%2Bfz%2Bf%2F%2B%2B%2FZKhR05hgBBhQI8hgBAgAI9ewD0%2B%2Fg3pswAtO8Cxf4Kw%2FsJvvYAqupKsNv%2B%2Fv7%2F%2FP5VkSU0iQA7jQA9hgBDgQU%2BfQH%2F%2Ff%2FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%2Fv%2Fg6Nc%2Fhg05kAA8jAM9iQI%2BhQA%2BgQDQu6b97uv%2F%2F%2F7V8Pqw3eiWz97q8%2Ff%2F%2F%2F%2F7%2FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%2F%2B%2F%2F39%2F%2F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%2F%2B%2Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%2BooT8%2Fv%2F7%2F%2F%2FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%2BhwGfXifWvqz%2B%2Ff%2F58u%2Fev6Dt4tr%2B%2F%2F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%2FkwBChwHt4dv%2F%2F%2F728ei1bCi7VAC5XQ7kz7n%2F%2F%2F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%2F%2F%2F9%2F%2F%2FSqYK5UwDKZAS9WALIkFn%2B%2F%2F3%2F%2BP8oKccGGcIRJrERILYFEMwAAuEAAdX%2F%2Ff7%2F%2FP%2B%2BfDvGXQLIZgLEWgLOjlf7%2F%2F%2F%2F%2F%2F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%2F%2F%2F%2F7%2B%2Fu2bCTIYwDPZgDBWQDSr4P%2F%2Fv%2F%2F%2FP5GRuABAPkAA%2FwBAfkDAPAAAesAAN%2F%2F%2B%2Fz%2F%2F%2F64g1C5VwDMYwK8Yg7y5tz8%2Fv%2FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%2F%2FPvi28ymXyChTATRrIb8%2F%2F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA</Image>
+-<Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&amp;hl={moz:locale}&amp;q={searchTerms}"/>
+-<Url type="text/html" method="GET" template="http://www.google.com/search">
+- <Param name="q" value="{searchTerms}"/>
+- <Param name="ie" value="utf-8"/>
+- <Param name="oe" value="utf-8"/>
+- <Param name="aq" value="t"/>
+-</Url>
+-<SearchForm>http://www.google.com</SearchForm>
+-</SearchPlugin>
+--- comm-release.orig/mail/locales/en-US/searchplugins/twitter.xml 2012-03-27 15:56:00.000000000 -0300
++++ /dev/null 2012-04-12 23:52:53.981159155 -0300
+@@ -1,10 +0,0 @@
+-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+-<ShortName>Twitter Search</ShortName>
+-<Description>Realtime Twitter Search</Description>
+-<InputEncoding>UTF-8</InputEncoding>
+-<Image width="16" height="16">data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%20%00%00%00%20%08%06%00%00%00szz%F4%00%00%00%19tEXtSoftware%00Adobe%20ImageReadyq%C9e%3C%00%00%06%60IDATx%DA%ACWMLSY%14%BE%F7%F5%97%B6%96%96%16P%84q%02H%A0%01%85%08%26%C4%18%C9D%60%D8L2%0Bfm2%89%86%85%3B%E2l%5D%BA%9Ad%E2%CEY%B8%18c2a%8C%B3%10%893%02e%98d%F0%07%22c%D0%22%88%C4%01K)%D0%3F%FA%FF%DE%BB%F3%DD%F7Z%82%B5%16%A8%DE%E4%B6%AF%AF%EF%DD%F3%DDs%BEs%BEs)c%8C%F0A)%25%D9q%F9%F2eC%7F%7F%7F%1D.%BF%12%04%A1%F30F%22%91%10%A3%D1%E8%92%C1%60ponn%FE%3D99%E9%BDz%F5%AAL%3Ea(%B6%F9G%16%04%1F%83%83%83%E6%B1%B1%B1oVVV%86%E2%F1%F8%7F%C9d2%22%8Ab%2C%95J%C5p%1D%8A%C5b%9E%85%85%85%1F%EF%DF%BF%DF%06%90%9A%CF%0A%00%3B%D2%3Fy%F2%A4okkk%0C%06%A3%B8%CF%D22c1%91%B1%B8%C4%98%84kY%96%19%3C%B1%B6%B8%B8%F83F%13w%DE%E7%02%40%1F%3E%7CX%BB%BA%BAz%0B%C6%23%DCx%24%CD%D8%F30c%7F%FAe%E6%DE%90%D9%1B%40JIL%19%E1px%05%5E%F8a%60%60%C0%FE)%00%B4%D9%1F%D8%BDA%92%A4%13v%BB%FD%8CN%A7%B3D%25B%A6%02%8C%3C%0E2%12H1%A2%C1%3EkJ(%E9rP%D2x%88%92%92%92%92J%97%CB%F5%F5%F2%F2%F2%08%5E%0FcJ%C5%80%D8%01p%EC%D81%23%10%B94%1A%8DM%82C%BC%09BfB%8C%F8%93%8Cp~%8A%A0%DB%9B%18%23V%1D!%D5%00R%AA%D3j%9DNg%3D%80%B8n%DF%BE%ED%EB%EC%ECL%EE%5E8%18%0C%12%84J%9A%9B%9BK%5C%BAt)%BD'%00%B0%5D%83Lp%02%84%86%03%88%88%8C%84E%D5%B8%40%D4H%F3%FB~%98%89c%AF%1C%08%3CU%D6%D6%D6%F6%9D%CDfs%99%CD%E64%F8%B1%C3%07%AC%25%E9%F5%FA%8D%8E%8E%0E%CF%F8%F8%F8%FC%C4%C4%C4z%BE%AC%D1%E6%FC%D6dl%91%EC%93%BB%19%C6%C1H%84%E1%3F%CE%1BJ%60%C0%D4%D4%D4%D4%AB%D5j%BBr%C9%98%E1V%1A%E9%EB%F5%F9%7C%7F%9C%3Bw%EE%D7%8B%17%2F%CE%DE%B8q%23%5D%08%40%C1A3%93%7B%22%8DI9w%B5z%93H%88%E9%83g%E16-%1E%B6X%2C%0E%84%F5%08%C0V%9D%3F%7F%FE%A7%40%200%3D44%24%15%0D%20%81W%E7%B7%19%F1%26%0B%E7%9F%11%00%1CzJ%9Cz%22%80'%E5eee%3D%B5%B5%B5%1B%ED%ED%ED%EF%00%60%A5(%00%0A%B9%E0%C0%F1%0D%BEuV%F09%9E5%87%0D%94%9C%B6S%D2b%A5%C4d29%EB%EA%EA%BE%9E%99%99%19%ED%EA%EA%DAp%BB%DD%09%85%7B%C5%A4NB%DE%7Bn%23.%8BQF%FEA*%AF'9%5CJP%C6%2B0%DBz%7B%7BKv%C8_%0C%00%BA%8F)P%D5G%3E%A4%F1%26%08%23%AA%0E%D3%19%8D%C6%A3%C8%16%FD'%018%C8%1023%ABu(v4%9DNgq%1E%9C%03d%CF%E8%ABCfd%A7zV%80%8C%3C%23R%B2%9C%0E%85B%3E%BF%DF%9F%CE.s%60%00%DC%B5%A5Z%F5%BB0%09)%A92%12%D2%5E%8AL0%A8%85%01)%E8%F7z%BDsSSS%F1%A2%B2%80C%B6%A3%02v%97%0B%CA%A2TY7%0FG%A8%0A%E0%10%CA%9AE%ABz%C2%EF%DF%D8z%F4%E8%91%7Bzz%FA%19f%B2%E84%D4!%A0G%60%BC%D2H%F7%24%10%F7%12%E2-n%05%83%5BH%BF%C9%7B%F7%EE%0D%0D%0F%0F%2F%EF%16.m1%F1%CF%EA%C3%5Ea%E0%C6%D1%BC%2CC%07%1E%8C%8E%8E%FE~%E7%CE%9D%C7%3C%8BsI%BA%BB~%B3%BDH%26g%CA%F0~%DA%10%A6%F4%2Fr%10%A5x%B1%B2%B2r%1E%B7%22%B9%CB%EFx%00%82%22%A3%F5%8AB%C5d%BEC%BD%A0%C6.w%F0%02%F36F%88%13%5C0%EF%E1%3F%D4%7F%7DCCC3%A4%FEBww%B7%EE%E4%C9%93%B7%20%CD%DE%BC%1E%98%9D%9D%15%A1%E1k%40%2CrI%2CE%DE%98%81%20%D7%1B1D%EF)%9A%14tJ%8A4%87E.%DD%1FN~%9F%CB%B6N%AF7B%90N%94%97%97%7F%7F%FC%F8%F1o%A1%88%A5y%3D%80%064%05%97-!n%DB(%97%0E%0E%80%A7%91%2F%99%89%7Bf%F2%EB%95%04%23%0F%FC%10%1B4%2C%5Cth%1EO%F1M%1C%C6%FB'%AC%02%BE)%85%16%D4566%F6%9F%3Auj%1A%7F%3D%CD%12q%C7%03%D7%AF_O%A1%C1XX__%7F%89j%952a%85F%0BUr%5Ef%EF%97a%3Ex%B3%C2%3B%A4%97P%C6%17%91%0F%E7%BF%F0%D0%C4%86%3A%03)%A5%E1%D1Z%ADV%DEqu%5C%B9r%C5%94%8F%84%CC%E3%F1%AC%A3%85%FA%0BMD%88%A7%5B%BD%99%12%17%FA%3F%83%A0%F6%00%B9ZPP%2F%F0%40%1C%A2%B4%00A%E2z%C0%B5%00%C6%E1%08SCEE%85!o%16%A0e%8A%A0L%8E%A2-%9F%85%17%D2%A5%20%DAi%BB%A0%82%D0%A8%20%D8%01D%89%A7i%12%EEK%CA%AA%17%11b8B%B0%80g%DA%8Fi%81%84%5C%F5%A0%D9%FC%0D%C4%F9%02MDC5%E2%D8%E5%14%00%40%26sp%2B%EF%96%E5%7Dx%80e%AA%A4MG%89%15%7C%D2(%ED%1C%91%E1%DD%08%0E7%F2G%0B%D1%C8%C8H%B8%BE%BE~%18%00%8E%B6%B6%B6%5Ep8%1C55Po%B3F%20%D5FF%3C%88%EF%BB%04%CF%06%F6%5EX%F2%15%2B%1BD%A8%0DZ%C0%C9%C8%01%80%E8%DBkkk%8B(%C9%89%82b%04B%AEB%B7%7F%C1%A5%01%20x%D7%5B%E3%D0k4%ED6%AA%10%937%18%5C%E3%A3%A2%1A%16%9A%07%80%5E%A3vD_*%E0%15%E3%C9%D7%AF_%3F%C7%89%EA%196%19%CF%ED%5E%F3%F2%08%A7%9EZ%F4o%83x%F11NB!%14*)%7B%5CKH%EA%91%AD%D0%E4%CF%F1%C1%8D%BFz%F5%EA%D9%B5k%D7%06%AA%AA%AA%9C%D9%08r%BB4%DF%E9x7%88%BE%BE%3E%E7%D9%B3g%CF477%F7%B5%B4%B4t%22%24UHWd6%E5%E7%08%0Af%D3%DC%0D%F0%B5%F8%19%92%D7a%C4%3B%B6%B4%B4%F4%12%C7%BE%BB7o%DE%BC%3B%3F%3F%FF6%5B%03%F6%03%40%19%D5%D5%D5%25%3D%3D%3DG%90%C7%AD%A8%E9%EDh.%1BA%D4%0A%FC6%E1%5BGs%5E%86%5D%02%EDO%E3%3C%10x%81%81*%EB%86%18M%E1%DC%B9%86%BF%C5%DD%DE%FF_%80%01%00%94%13%9D%26%E9%81%03P%00%00%00%00IEND%AEB%60%82</Image>
+-<Url type="text/html" method="get"
+- template="http://search.twitter.com/search?q={searchTerms}"/>
+-<SearchForm>http://search.twitter.com/</SearchForm>
+-</SearchPlugin>
+-
+--- comm-release.orig/mail/locales/en-US/searchplugins/yahoo.xml 2012-03-27 15:56:00.000000000 -0300
++++ /dev/null 2012-04-12 23:52:53.981159155 -0300
+@@ -1,13 +0,0 @@
+-<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+-<ShortName>Yahoo</ShortName>
+-<Description>Yahoo Search</Description>
+-<InputEncoding>UTF-8</InputEncoding>
+-<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgJqAIoCdgCaAnoAnhKCAKYijgCuLpIAskKeALpSpgC+Yq4AzHy8ANqezgDmvt4A7tLqAPz5+wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKlRFIoABWAKERERE6ADcKMzzu2hOgAAhERK8REWCWBERE36ERMHMEREvo6iEgY6hEn6Pu0mAzqkz/xjMzoDNwpERERDoAMzAKlERIoAAzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AADAOQAAgBkAAAAPAAAACQAAAAkAAAAIAAAACAAAAAgAAIAYAADAOAAA//8AAP//AAD//wAA</Image>
+-<Url type="application/x-suggestions+json" method="GET"
+- template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command={searchTerms}" />
+-<Url type="text/html" method="GET" template="http://search.yahoo.com/search">
+- <Param name="p" value="{searchTerms}"/>
+- <Param name="ei" value="UTF-8"/>
+-</Url>
+-<SearchForm>http://search.yahoo.com/</SearchForm>
+-</SearchPlugin>
+--- /dev/null 2012-04-12 23:52:53.981159155 -0300
++++ comm-release/mail/locales/en-US/searchplugins/duckduckgo-ssl.xml 2012-04-09 14:43:56.000000000 -0300
+@@ -0,0 +1,11 @@
++<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
++<os:ShortName>DuckDuckGo RU SSL</os:ShortName>
++<os:Description>DDG Search + Google's suggestions (Russian)</os:Description>
++<os:InputEncoding>UTF-8</os:InputEncoding>
++<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8nIOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rBUv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n//////05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v////////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9hXPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8nIOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDsAScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMADAADwDwAA+B8AAA==</os:Image>
++<SearchForm>https://duckduckgo.com/</SearchForm>
++<os:Url type="text/html" method="GET" template="https://duckduckgo.com/?q={searchTerms}&amp;kl=ru-ru">
++</os:Url><os:Url type="application/x-suggestions+json" method="GET" template="http://ddgg.nfriedly.com/complete/search?output=firefox&amp;hl=ru&amp;q={searchTerms}">
++</os:Url><os:Url type="application/opensearchdescription+xml" method="GET" template="http://mycroft.mozdev.org/updateos.php/id0/duckduckgo_ssl.xml" rel="self">
++</os:Url>
++</SearchPlugin>
+--- /dev/null 2012-04-12 23:52:53.981159155 -0300
++++ comm-release/mail/locales/en-US/searchplugins/identica-notice-search.xml 2012-04-13 05:15:55.000000000 -0300
+@@ -0,0 +1,7 @@
++<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
++<os:ShortName>Identi.ca Notice Search</os:ShortName>
++<os:InputEncoding>UTF-8</os:InputEncoding>
++<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAABGD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA//8AAP//AAA=</os:Image>
++<os:Url type="text/html" method="GET" template="http://identi.ca/search/notice?q={searchTerms}">
++</os:Url>
++</SearchPlugin>
+--- /dev/null 2012-04-12 23:52:53.981159155 -0300
++++ comm-release/mail/locales/en-US/searchplugins/identica-people-search.xml 2012-04-13 05:15:53.000000000 -0300
+@@ -0,0 +1,7 @@
++<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
++<os:ShortName>Identi.ca People Search</os:ShortName>
++<os:InputEncoding>UTF-8</os:InputEncoding>
++<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAABGD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA//8AAP//AAA=</os:Image>
++<os:Url type="text/html" method="GET" template="http://identi.ca/search/people?q={searchTerms}">
++</os:Url>
++</SearchPlugin>
diff --git a/libre/thunderbird-libre/thunderbird-appversion.patch b/libre/thunderbird-libre/thunderbird-appversion.patch
deleted file mode 100644
index 3f7a54686..000000000
--- a/libre/thunderbird-libre/thunderbird-appversion.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nru comm-1.9.2.orig/mail/installer/Makefile.in comm-1.9.2/mail/installer/Makefile.in
---- comm-1.9.2.orig/mail/installer/Makefile.in 2010-04-30 22:41:37.000000000 +0300
-+++ comm-1.9.2/mail/installer/Makefile.in 2010-05-05 20:20:29.551660469 +0300
-@@ -42,6 +42,8 @@
-
- include $(DEPTH)/config/autoconf.mk
-
-+MOZ_APP_VERSION="3.1"
-+
- include $(topsrcdir)/config/rules.mk
-
- MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in
diff --git a/libre/thunderbird-libre/thunderbird-preferences.patch b/libre/thunderbird-libre/thunderbird-preferences.patch
deleted file mode 100644
index 627f02434..000000000
--- a/libre/thunderbird-libre/thunderbird-preferences.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -Nur comm-1.9.2.orig/mail/app/profile/all-thunderbird.js comm-1.9.2/mail/app/profile/all-thunderbird.js
---- comm-1.9.2.orig/mail/app/profile/all-thunderbird.js 2010-06-23 20:43:08.000000000 +0300
-+++ comm-1.9.2/mail/app/profile/all-thunderbird.js 2010-06-25 00:37:36.518929684 +0300
-@@ -125,7 +125,7 @@
- pref("app.update.showInstalledUI", false);
-
- // Release notes URL
--pref("app.releaseNotesURL", "http://live.mozillamessaging.com/%APP%/releasenotes?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-+pref("app.releaseNotesURL", "http://www.mozillamessaging.com/%APP%/%VERSION%/releasenotes?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-
- // Base URL for web-based support pages.
- pref("app.support.baseURL", "http://support.live.mozillamessaging.com/%LOCALE%/%APP%/%APPBUILDID%/");
-diff -Nur comm-1.9.2.orig/mail/branding/nightly/thunderbird-branding.js comm-1.9.2/mail/branding/nightly/thunderbird-branding.js
---- comm-1.9.2.orig/mail/branding/nightly/thunderbird-branding.js 2010-06-23 20:43:08.000000000 +0300
-+++ comm-1.9.2/mail/branding/nightly/thunderbird-branding.js 2010-06-25 00:36:10.605569121 +0300
-@@ -1,11 +1,11 @@
- // Default start page
--pref("mailnews.start_page.url","https://live.mozillamessaging.com/%APP%/start?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-+pref("mailnews.start_page.url","https://www.mozillamessaging.com/%APP%/%VERSION%/start?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-
- // first launch welcome page
--pref("mailnews.start_page.welcome_url","https://live.mozillamessaging.com/%APP%/firstrun?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-+pref("mailnews.start_page.welcome_url","https://www.mozillamessaging.com/%APP%/%VERSION%/firstrun?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-
- // start page override to load after an update
--pref("mailnews.start_page.override_url","https://live.mozillamessaging.com/%APP%/whatsnew?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-+pref("mailnews.start_page.override_url","https://www.mozillamessaging.com/%APP%/%VERSION%/whatsnew?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-
- // Interval: Time between checks for a new version (in seconds)
- // nightly=8 hours, official=24 hours
diff --git a/libre/thunderbird-libre/thunderbird-shared-error.patch b/libre/thunderbird-libre/thunderbird-shared-error.patch
deleted file mode 100644
index ae41bbc1e..000000000
--- a/libre/thunderbird-libre/thunderbird-shared-error.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up comm-central/mail/installer/Makefile.in.shared-error comm-central/mail/installer/Makefile.in
---- comm-central/mail/installer/Makefile.in.shared-error 2009-09-16 13:47:43.000000000 +0200
-+++ comm-central/mail/installer/Makefile.in 2009-09-16 13:48:25.000000000 +0200
-@@ -95,9 +95,11 @@ endif
- # mozconfig instead.
- ifndef MAIL_PKG_SHARED
- ifndef BUILD_STATIC_LIBS
-+ifeq (BUILD_STATIC_LIBS, 1)
- $(error you need an "--enable-static" build to package a build)
- endif
- endif
-+endif
-
- # On mozilla-central, packager.mk uses core_abspath to redefine DIST
- # As the comm-central config.mk doesn't set it, do it ourselves instead
diff --git a/libre/thunderbird-libre/xulrunner-png14.patch b/libre/thunderbird-libre/xulrunner-png14.patch
deleted file mode 100644
index 1dc0ecda5..000000000
--- a/libre/thunderbird-libre/xulrunner-png14.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.cpp.orig 2010-01-17 00:15:53.979744638 +0100
-+++ mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.cpp 2010-01-17 00:16:07.855993411 +0100
-@@ -135,7 +135,7 @@
-
- // initialize
- mPNG = png_create_write_struct(PNG_LIBPNG_VER_STRING,
-- png_voidp_NULL,
-+ NULL,
- ErrorCallback,
- ErrorCallback);
- if (! mPNG)
diff --git a/libre/unarchiver/PKGBUILD b/libre/unarchiver/PKGBUILD
index 9c0cf3978..3e2e316a9 100644
--- a/libre/unarchiver/PKGBUILD
+++ b/libre/unarchiver/PKGBUILD
@@ -2,36 +2,41 @@
# Contributor: N30N <archlinux@alunamation.com>
pkgname=unarchiver
-pkgver=3.0
-pkgrel=1.1
+pkgver=3.1
+pkgrel=1
pkgdesc="An Objective-C application for uncompressing archive files"
arch=('x86_64' 'i686')
-url="http://wakaba.c3.cx/s/apps/unarchiver.html"
+url="http://unarchiver.c3.cx/"
license=('LGPL2.1')
depends=('gnustep-base' 'openssl' 'bzip2' 'icu' 'gcc-libs' 'zlib')
makedepends=('gcc-objc')
source=("http://theunarchiver.googlecode.com/files/TheUnarchiver${pkgver}_src.zip"
"native_obj_exceptions.patch"
"libz.patch")
+sha1sums=('a8a28e3372a8811689c39871f5de86c64c8c466c'
+ 'b8024026607dc2de758479b73d8b01ca6f692b59'
+ '003d114a0ba9a919af602881ef5e04cdba2e4c50')
build() {
- cd $srcdir/
+ cd "$srcdir/The Unarchiver"
+
+ patch -p1 < ../native_obj_exceptions.patch
+ patch -p1 < ../libz.patch
- patch -Np1 -i native_obj_exceptions.patch
- patch -Np1 -i libz.patch
-
cd XADMaster
. /usr/share/GNUstep/Makefiles/GNUstep.sh
make -f Makefile.linux
}
package() {
- cd "$srcdir/XADMaster"
+ cd "$srcdir/The Unarchiver/XADMaster"
install -d "$pkgdir/usr/bin/"
install -m755 unar lsar "$pkgdir/usr/bin/"
+
+ cd "$srcdir/The Unarchiver/Extra"
+ install -d "$pkgdir/usr/share/man/man1"
+ gzip -c lsar.1 > "$pkgdir/usr/share/man/man1"/lsar.1.gz
+ gzip -c unar.1 > "$pkgdir/usr/share/man/man1"/unar.1.gz
}
# vim:set ts=2 sw=2 et:
-md5sums=('c7c42cd3640bf477b79b21436344f098'
- '4fa4ecc6e4ba14d3b6952d064e728511'
- '665d01bf93191cc6f57dc80d8c1d3d5a')
diff --git a/libre/ununrar/PKGBUILD b/libre/ununrar/PKGBUILD
index 050cfb484..2e5aa615c 100644
--- a/libre/ununrar/PKGBUILD
+++ b/libre/ununrar/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
pkgname=ununrar
-pkgver=0.0a0dev20110715
+pkgver=0.0a0dev20120412
pkgrel=1
pkgdesc="An unrar-compatible interface to Unarchiver"
arch=('any')
@@ -12,7 +12,7 @@ provides=('unrar' 'unrar-libre')
conflicts=('unrar' 'unrar-libre')
options=(!emptydirs)
source=("http://mtjm.eu/releases/Ununrar-${pkgver}.tar.gz")
-sha512sums=('ea2a6805c16be3aad81b18e5e9e044d73ca2f8f87ce078c35e64cdffb12d5f0e4c96e66901af54f388349edbb88c6252ed0e0329e9813cce5e7b9b480802cf44')
+sha512sums=('3593198e76643b8873d06db770bf24a8d2fdab6d2ab7880850e29cb6c2f94836bcc032f6cc919dfe39deb030c2bcd942ab870231def3aee14e8e89cf78fc3d6f')
package() {
cd "$srcdir/Ununrar-$pkgver"
diff --git a/libre/virtualbox-libre/PKGBUILD b/libre/virtualbox-libre/PKGBUILD
index 82bf28b8b..e11921fc7 100644
--- a/libre/virtualbox-libre/PKGBUILD
+++ b/libre/virtualbox-libre/PKGBUILD
@@ -11,8 +11,8 @@
#Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgbase=virtualbox-libre
pkgname=('virtualbox-libre' 'virtualbox-parabola-additions' 'virtualbox-sdk' 'virtualbox-source')
-pkgver=4.1.12
-pkgrel=1
+pkgver=4.1.14
+pkgrel=2
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL' 'custom')
@@ -116,7 +116,7 @@ package_virtualbox-libre() {
install -D -m 0644 "$srcdir/VirtualBox-${pkgver}/COPYING" \
"$pkgdir/usr/share/licenses/virtualbox/LICENSE"
install -D -m 0644 "$srcdir/10-vboxdrv.rules" \
- "$pkgdir/lib/udev/rules.d/10-vboxdrv.rules"
+ "$pkgdir/usr/lib/udev/rules.d/10-vboxdrv.rules"
# install rc.d script
install -D -m755 "$srcdir/vboxweb.rc" "$pkgdir/etc/rc.d/vboxweb"
@@ -186,7 +186,7 @@ package_virtualbox-parabola-additions(){
install -d "$pkgdir/usr/lib/xorg/modules/dri"
install -m755 VBoxOGL*.so "$pkgdir/usr/lib"
ln -s /usr/lib/VBoxOGL.so "$pkgdir/usr/lib/xorg/modules/dri/vboxvideo_dri.so"
- install -m755 -D pam_vbox.so "$pkgdir/lib/security/pam_vbox.so"
+ install -m755 -D pam_vbox.so "$pkgdir/usr/lib/security/pam_vbox.so"
# install rc.d script
install -D -m755 "$srcdir/vbox-service.rc" "$pkgdir/etc/rc.d/vbox-service"
@@ -194,7 +194,7 @@ package_virtualbox-parabola-additions(){
# install sample config
install -D -m644 "$srcdir/vbox-service.conf" "$pkgdir/etc/conf.d/vbox-service"
}
-md5sums=('4e385d2333e1a4832e5618b982fddee5'
+md5sums=('f8baa04e6d589bc6b1fb4e7079fbe414'
'5f85710e0b8606de967716ded7b2d351'
'755ab0dd9bcacf2c00d2275b1ca69547'
'a1ff1d1b4423556887e48a32978226a6'
diff --git a/libre/virtualbox-modules-lts/60-vboxguest.rules b/libre/virtualbox-modules-lts/60-vboxguest.rules
new file mode 100644
index 000000000..6285f7249
--- /dev/null
+++ b/libre/virtualbox-modules-lts/60-vboxguest.rules
@@ -0,0 +1,2 @@
+ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600"
+ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666"
diff --git a/libre/virtualbox-modules-lts/LocalConfig.kmk b/libre/virtualbox-modules-lts/LocalConfig.kmk
new file mode 100644
index 000000000..af79f90cd
--- /dev/null
+++ b/libre/virtualbox-modules-lts/LocalConfig.kmk
@@ -0,0 +1,19 @@
+VBOX_WITH_ADDITION_DRIVERS =
+VBOX_WITH_INSTALLER = 1
+VBOX_WITH_LINUX_ADDITIONS = 1
+VBOX_WITH_X11_ADDITIONS =
+VBOX_WITH_TESTCASES =
+VBOX_WITH_TESTSUITE =
+VBOX_WITH_ORIGIN :=
+VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox
+VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox
+VBOX_PATH_APP_DOCS := /usr/share/virtualbox
+VBOX_WITH_REGISTRATION_REQUEST =
+VBOX_WITH_UPDATE_REQUEST =
+VBOX_WITH_VNC := 1
+VBOX_BLD_PYTHON = python2
+VBOX_JAVA_HOME = /usr/lib/jvm/java-6-openjdk
+VBOX_GCC_WERR =
+VBOX_GCC_WARN =
diff --git a/libre/virtualbox-modules-lts/PKGBUILD b/libre/virtualbox-modules-lts/PKGBUILD
new file mode 100644
index 000000000..8ff59d712
--- /dev/null
+++ b/libre/virtualbox-modules-lts/PKGBUILD
@@ -0,0 +1,101 @@
+# $Id$
+# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
+# Maintainer (Parabola): Márcio Silva <coadde@adinet.com.uy>
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+# Maintainer (Parabola): Jorge López <jorginho@adinet.com.uy>
+
+pkgbase=virtualbox-modules-lts
+pkgname=('virtualbox-modules-lts' 'virtualbox-parabola-modules-lts')
+pkgver=4.1.14
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://virtualbox.org'
+license=('GPL')
+makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'libidl2' 'xalan-c' 'sdl' 'linux-libre-lts' 'linux-libre-lts-headers')
+[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
+source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
+ LocalConfig.kmk 60-vboxguest.rules)
+md5sums=('f8baa04e6d589bc6b1fb4e7079fbe414'
+ '4c88bd122677a35f68abd76eb01b378b'
+ 'ed1341881437455d9735875ddf455fbe')
+
+_extramodules=extramodules-3.0-LIBRE-LTS
+_kernver=$(pacman -Ss linux-libre-lts | awk 'NR==1{print $2}')-LIBRE-LTS
+
+export KERN_DIR=/lib/modules/${_kernver}/build
+export KERN_INCL=/usr/src/linux-${_kernver}/include/
+
+build() {
+ cd "$srcdir/VirtualBox-${pkgver}"
+
+ cp "$srcdir/LocalConfig.kmk" .
+
+ ./configure \
+ --with-linux=/usr/src/linux-${_kernver} \
+ --disable-java \
+ --disable-docs \
+ --disable-xpcom \
+ --disable-python \
+ --disable-sdl-ttf \
+ --disable-alsa \
+ --disable-pulse \
+ --disable-dbus \
+ --disable-opengl \
+ --build-headless \
+ --nofatal
+ source ./env.sh
+ kmk all
+
+ make -C "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src"
+ make -C "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
+}
+
+package_virtualbox-parabola-modules-lts(){
+ pkgdesc="Additions only for Parabola guests (long-term supported kernel modules)"
+ license=('GPL')
+ install=virtualbox-parabola-modules-lts.install
+ depends=('linux-libre-lts>=3.0' 'linux-libre-lts<3.1')
+ replaces=('virtualbox-archlinux-modules-lts')
+ conflicts=('virtualbox-archlinux-modules-lts')
+ provides=("virtualbox-parabola-modules=$pkgver" "virtualbox-archlinux-modules=$pkgver" "virtualbox-archlinux-modules-lts=$pkgver")
+
+ source "$srcdir/VirtualBox-${pkgver}/env.sh"
+
+ cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
+
+ for module in vboxguest.ko vboxsf.ko vboxvideo.ko; do
+ install -D -m644 ${module} \
+ "$pkgdir/lib/modules/${_extramodules}/${module}"
+ done
+
+ install -D -m 0644 "$srcdir/60-vboxguest.rules" \
+ "$pkgdir/usr/lib/udev/rules.d/60-vboxguest.rules"
+
+ find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
+}
+
+package_virtualbox-modules-lts(){
+ pkgdesc="Long-term supported kernel modules for VirtualBox"
+ license=('GPL')
+ install=virtualbox-modules-lts.install
+ depends=('linux-libre-lts>=3.0' 'linux-libre-lts<3.1')
+ provides=("virtualbox-modules=$pkgver")
+
+ source "$srcdir/VirtualBox-${pkgver}/env.sh"
+
+ cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src"
+
+ install -D -m644 vboxdrv.ko \
+ "$pkgdir/lib/modules/${_extramodules}/vboxdrv.ko"
+
+ install -D -m644 vboxnetadp.ko \
+ "$pkgdir/lib/modules/${_extramodules}/vboxnetadp.ko"
+
+ install -D -m644 vboxnetflt.ko \
+ "$pkgdir/lib/modules/${_extramodules}/vboxnetflt.ko"
+
+ install -D -m644 vboxpci.ko \
+ "$pkgdir/lib/modules/${_extramodules}/vboxpci.ko"
+
+ find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
+}
diff --git a/libre/virtualbox-modules-lts/virtualbox-modules-lts.install b/libre/virtualbox-modules-lts/virtualbox-modules-lts.install
new file mode 100644
index 000000000..014fa0b88
--- /dev/null
+++ b/libre/virtualbox-modules-lts/virtualbox-modules-lts.install
@@ -0,0 +1,18 @@
+EXTRAMODULES='extramodules-3.0-LIBRE-LTS'
+
+post_install() {
+/bin/cat << EOF
+===> You must load vboxdrv module before starting VirtualBox:
+===> # modprobe vboxdrv
+EOF
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
+
+post_upgrade() {
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+ echo 'In order to use the new version, reload all virtualbox modules manually.'
+}
+
+post_remove() {
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
diff --git a/libre/virtualbox-modules-lts/virtualbox-parabola-modules-lts.install b/libre/virtualbox-modules-lts/virtualbox-parabola-modules-lts.install
new file mode 100644
index 000000000..80d966a9d
--- /dev/null
+++ b/libre/virtualbox-modules-lts/virtualbox-parabola-modules-lts.install
@@ -0,0 +1,16 @@
+EXTRAMODULES='extramodules-3.0-LIBRE-LTS'
+
+post_install() {
+cat << EOF
+===> You may want to load vboxguest, vboxsf and vboxvideo
+EOF
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
+
+post_upgrade() {
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
+
+post_remove() {
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
diff --git a/libre/virtualbox-modules/PKGBUILD b/libre/virtualbox-modules/PKGBUILD
index 60a903615..9b36d7cf3 100644
--- a/libre/virtualbox-modules/PKGBUILD
+++ b/libre/virtualbox-modules/PKGBUILD
@@ -5,19 +5,16 @@
pkgbase=virtualbox-modules
pkgname=('virtualbox-modules' 'virtualbox-parabola-modules')
-pkgver=4.1.12
-pkgrel=2
+pkgver=4.1.14
+pkgrel=2.1
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL')
makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'libidl2' 'xalan-c' 'sdl' 'linux-libre-headers')
-replaces=('virtualbox-modules')
-conflicts=('virtualbox-modules')
-provides=("virtualbox-modules=$pkgver")
[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
LocalConfig.kmk 60-vboxguest.rules)
-md5sums=('4e385d2333e1a4832e5618b982fddee5'
+md5sums=('f8baa04e6d589bc6b1fb4e7079fbe414'
'4c88bd122677a35f68abd76eb01b378b'
'ed1341881437455d9735875ddf455fbe')
@@ -57,8 +54,8 @@ package_virtualbox-parabola-modules(){
license=('GPL')
install=virtualbox-parabola-modules.install
depends=('linux-libre>=3.3' 'linux-libre<3.4')
- replaces=('virtualbox-guest-modules' 'virtualbox-archlinux-modules')
- conflicts=('virtualbox-guest-modules' 'virtualbox-archlinux-modules')
+ replaces=('virtualbox-archlinux-modules')
+ conflicts=('virtualbox-archlinux-modules')
provides=("virtualbox-archlinux-modules=$pkgver")
source "$srcdir/VirtualBox-${pkgver}/env.sh"
@@ -71,7 +68,7 @@ package_virtualbox-parabola-modules(){
done
install -D -m 0644 "$srcdir/60-vboxguest.rules" \
- "$pkgdir/lib/udev/rules.d/60-vboxguest.rules"
+ "$pkgdir/usr/lib/udev/rules.d/60-vboxguest.rules"
find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
diff --git a/libre/xulrunner-libre/PKGBUILD b/libre/xulrunner-libre/PKGBUILD
new file mode 100644
index 000000000..af4b45aae
--- /dev/null
+++ b/libre/xulrunner-libre/PKGBUILD
@@ -0,0 +1,102 @@
+# $Id: PKGBUILD 153514 2012-03-15 13:26:26Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+# With many changes from iceweasel-libre.
+
+# We're getting this from Debian Sid
+_debname=iceweasel
+_debver=12.0
+_debrel=3
+_debrepo=http://ftp.debian.org/debian/pool/main/
+debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
+
+_pkgname=xulrunner
+pkgname=xulrunner-libre
+pkgver=${_debver}.${_debrel}
+pkgrel=1
+pkgdesc="Mozilla Runtime Environment"
+arch=('i686' 'x86_64' 'mips64el')
+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' 'autoconf2.13' 'quilt')
+url="http://wiki.mozilla.org/XUL:Xul_Runner"
+source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.bz2"
+ "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.debian.tar.gz"
+ "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.dsc"
+ mozconfig
+ mozilla-pkgconfig.patch
+ gcc47.patch)
+options=('!emptydirs')
+conflicts=('xulrunner')
+provides=("xulrunner=${_debver}")
+replaces=('xulrunner-oss' 'xulrunner')
+md5sums=('b45f57bfe21b0e6db4f0683e794917cb'
+ '2b66fb2e51631ef3b07de89ef9d17d0c'
+ '552adcf5da3b07757e7fe29c8bd2ec2d'
+ 'f2f4f4a573f549e8b494e33b3ad226bc'
+ '27271ce647a83906ef7a24605e840d61'
+ '5a8563f8fda7ad30405c86764267a19c')
+
+dpkg-source() {
+ # This will simulate dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc
+ export QUILT_PATCHES=debian/patches
+ export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index'
+ export QUILT_DIFF_ARGS='--no-timestamps'
+ mv mozilla-release "${_debname}-${_debver}"
+ mv debian "${_debname}-${_debver}"
+ cd "${_debname}-${_debver}"
+
+# Doesn't apply and seems unimportant
+ rm -v debian/patches/l10n/Place-google-and-gmail-before-yandex.patch || true
+
+ quilt push -a
+ find .pc -name .timestamp -delete # why isn't "--no-timestamps" doing this?
+ cd ..
+}
+
+build() {
+# Don't run this if we're using -e
+if [ $NOEXTRACT -eq 0 ]; then
+ msg2 "Applying Debian patches..."
+ cd "${srcdir}"
+ dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc
+
+ msg2 "Starting normal build..."
+ mv "${_debname}-${_debver}" "$srcdir/mozilla-release"
+ cd "$srcdir/mozilla-release"
+
+ cp "$srcdir/mozconfig" .mozconfig
+
+ # Fails, claiming the page size to have changed.
+ [ "$CARCH" = "mips64el" ] && echo 'ac_add_options --disable-jemalloc' >> .mozconfig
+
+ #fix libdir/sdkdir - fedora
+ patch -Np1 -i "$srcdir/mozilla-pkgconfig.patch"
+ patch -Np1 -i "$srcdir/gcc47.patch"
+fi
+
+ export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/xulrunner-${_debver}"
+ export PYTHON="/usr/bin/python2"
+
+ make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS"
+}
+
+package() {
+ cd "$srcdir/mozilla-release"
+ make -j1 -f client.mk DESTDIR="$pkgdir" install
+
+ rm -rf "$pkgdir"/usr/lib/xulrunner-$pkgver/{dictionaries,hyphenation}
+ ln -sf /usr/share/hunspell "$pkgdir/usr/lib/xulrunner-${_debver}/dictionaries"
+ ln -sf /usr/share/hyphen "$pkgdir/usr/lib/xulrunner-${_debver}/hyphenation"
+
+ # add xulrunner library path to ld.so.conf
+ install -d $pkgdir/etc/ld.so.conf.d
+ echo "/usr/lib/xulrunner-${_debver}" > $pkgdir/etc/ld.so.conf.d/xulrunner.conf
+
+ chmod +x "${pkgdir}/usr/lib/xulrunner-devel-${_debver}/sdk/bin/xpt.py"
+ sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' "$pkgdir/usr/lib/xulrunner-devel-${_debver}/sdk/bin/xpt.py"
+ sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' "$pkgdir/usr/lib/xulrunner-devel-${_debver}/sdk/bin/header.py"
+ sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' "$pkgdir/usr/lib/xulrunner-devel-${_debver}/sdk/bin/typelib.py"
+ sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' "$pkgdir/usr/lib/xulrunner-devel-${_debver}/sdk/bin/xpidl.py"
+}
diff --git a/libre/xulrunner-libre/gcc47.patch b/libre/xulrunner-libre/gcc47.patch
new file mode 100644
index 000000000..5cea6769d
--- /dev/null
+++ b/libre/xulrunner-libre/gcc47.patch
@@ -0,0 +1,77 @@
+
+# HG changeset patch
+# User Martin Stránský <stransky@redhat.com>
+# Date 1328886461 -3600
+# Node ID 87a5ed480992788832387ba91a77c69fbe9fe349
+# Parent 67017dd3b7f6650e6bcd5b6f545e0309e8de7049
+Bug 725655 - gcc 4.7 build failures (missing headers). r=benjamin
+
+diff --git a/ipc/chromium/src/base/file_util_linux.cc b/ipc/chromium/src/base/file_util_linux.cc
+--- a/ipc/chromium/src/base/file_util_linux.cc
++++ b/ipc/chromium/src/base/file_util_linux.cc
+@@ -1,15 +1,18 @@
+ // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+ #include "base/file_util.h"
+
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include <string>
+ #include <vector>
+
+ #include "base/eintr_wrapper.h"
+ #include "base/file_path.h"
+ #include "base/string_util.h"
+
+diff --git a/ipc/chromium/src/base/message_pump_libevent.cc b/ipc/chromium/src/base/message_pump_libevent.cc
+--- a/ipc/chromium/src/base/message_pump_libevent.cc
++++ b/ipc/chromium/src/base/message_pump_libevent.cc
+@@ -1,16 +1,19 @@
+ // Copyright (c) 2008 The Chromium Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+ #include "base/message_pump_libevent.h"
+
+ #include <errno.h>
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include "eintr_wrapper.h"
+ #include "base/logging.h"
+ #include "base/scoped_nsautorelease_pool.h"
+ #include "base/scoped_ptr.h"
+ #include "base/time.h"
+ #include "third_party/libevent/event.h"
+
+diff --git a/ipc/chromium/src/base/time_posix.cc b/ipc/chromium/src/base/time_posix.cc
+--- a/ipc/chromium/src/base/time_posix.cc
++++ b/ipc/chromium/src/base/time_posix.cc
+@@ -8,16 +8,19 @@
+ #include <mach/mach_time.h>
+ #endif
+ #include <sys/time.h>
+ #ifdef ANDROID
+ #include <time64.h>
+ #else
+ #include <time.h>
+ #endif
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include <limits>
+
+ #include "base/basictypes.h"
+ #include "base/logging.h"
+
+ namespace base {
+
+
diff --git a/libre/xulrunner-libre/mozconfig b/libre/xulrunner-libre/mozconfig
new file mode 100644
index 000000000..34c5a6137
--- /dev/null
+++ b/libre/xulrunner-libre/mozconfig
@@ -0,0 +1,38 @@
+. $topsrcdir/xulrunner/config/mozconfig
+
+ac_add_options --prefix=/usr
+ac_add_options --libdir=/usr/lib
+
+# System libraries
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-zlib
+ac_add_options --with-system-bz2
+ac_add_options --with-system-png
+ac_add_options --with-system-libevent
+ac_add_options --with-system-libvpx
+ac_add_options --enable-system-hunspell
+ac_add_options --enable-system-sqlite
+ac_add_options --enable-system-ffi
+#ac_add_options --enable-system-cairo
+ac_add_options --enable-system-pixman
+ac_add_options --with-pthreads
+
+# Features
+ac_add_options --disable-safe-browsing
+ac_add_options --enable-startup-notification
+ac_add_options --enable-gio
+
+ac_add_options --disable-gnomevfs
+ac_add_options --disable-crashreporter
+ac_add_options --disable-updater
+ac_add_options --disable-tests
+ac_add_options --disable-mochitest
+ac_add_options --disable-installer
+
+# Optimization
+ac_add_options --enable-optimize
+
+export MOZILLA_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
diff --git a/libre/xulrunner-libre/mozilla-pkgconfig.patch b/libre/xulrunner-libre/mozilla-pkgconfig.patch
new file mode 100644
index 000000000..037d4aee0
--- /dev/null
+++ b/libre/xulrunner-libre/mozilla-pkgconfig.patch
@@ -0,0 +1,40 @@
+diff -Nur mozilla-release.orig/xulrunner/installer/libxul-embedding.pc.in mozilla-release/xulrunner/installer/libxul-embedding.pc.in
+--- mozilla-release.orig/xulrunner/installer/libxul-embedding.pc.in 2011-12-19 22:11:38.100005674 +0000
++++ mozilla-release/xulrunner/installer/libxul-embedding.pc.in 2011-12-19 22:14:35.095147521 +0000
+@@ -6,5 +6,6 @@
+ Name: libxul-embedding
+ Description: Static library for version-independent embedding of the Mozilla runtime
+ Version: %MOZILLA_VERSION%
++Requires: %NSPR_NAME% >= %NSPR_VERSION%
+ Libs: -L${sdkdir}/lib -lxpcomglue -ldl
+ Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS%
+diff -Nur mozilla-release.orig/xulrunner/installer/libxul.pc.in mozilla-release/xulrunner/installer/libxul.pc.in
+--- mozilla-release.orig/xulrunner/installer/libxul.pc.in 2011-12-19 22:11:38.126672110 +0000
++++ mozilla-release/xulrunner/installer/libxul.pc.in 2011-12-19 22:14:04.375412141 +0000
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+ idldir=%idldir%
+
+diff -Nur mozilla-release.orig/xulrunner/installer/Makefile.in mozilla-release/xulrunner/installer/Makefile.in
+--- mozilla-release.orig/xulrunner/installer/Makefile.in 2011-12-19 22:11:38.126672110 +0000
++++ mozilla-release/xulrunner/installer/Makefile.in 2011-12-19 22:18:28.743135321 +0000
+@@ -108,6 +108,7 @@
+ -e "s|%includedir%|$(includedir)|" \
+ -e "s|%idldir%|$(idldir)|" \
+ -e "s|%sdkdir%|$(sdkdir)|" \
++ -e "s|%libdir%|$(installdir)|" \
+ -e "s|%MOZ_APP_NAME%|$(MOZ_APP_NAME)|" \
+ -e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
+ -e "s|%WCHAR_CFLAGS%|$(WCHAR_CFLAGS)|" \
+diff -Nur mozilla-release.orig/xulrunner/installer/mozilla-js.pc.in mozilla-release/xulrunner/installer/mozilla-js.pc.in
+--- mozilla-release.orig/xulrunner/installer/mozilla-js.pc.in 2011-12-19 22:11:38.126672110 +0000
++++ mozilla-release/xulrunner/installer/mozilla-js.pc.in 2011-12-19 22:18:55.569571004 +0000
+@@ -7,4 +7,4 @@
+ Version: %MOZILLA_VERSION%
+ Requires: %NSPR_NAME% >= %NSPR_VERSION%
+ Libs: -L${sdkdir}/lib %MOZ_JS_LINK%
+-Cflags: -I${includedir} -DXP_UNIX -DJS_THREADSAFE
++Cflags: -I${includedir} -I${includedir}/js -DXP_UNIX -DJS_THREADSAFE