summaryrefslogtreecommitdiff
path: root/libre
diff options
context:
space:
mode:
authorshackra <elcorreo@deshackra.com>2014-05-18 23:19:29 -0600
committershackra <elcorreo@deshackra.com>2014-05-18 23:19:29 -0600
commit113793e5d19301552423a95947efc704424a7167 (patch)
treec1804e43e11d5f9a152436b42a7ce182e88d500b /libre
parent01011325d60e0262ba0d5a51c4d3b2be57f5924c (diff)
parent1287ab2629ed3997b6ec6e603847eafb1e6aa199 (diff)
downloadabslibre-113793e5d19301552423a95947efc704424a7167.tar.gz
abslibre-113793e5d19301552423a95947efc704424a7167.tar.bz2
abslibre-113793e5d19301552423a95947efc704424a7167.zip
Merge branch 'master' of ssh://projects.parabolagnulinux.org:1863/srv/git/abslibre
Diffstat (limited to 'libre')
-rw-r--r--libre/abiword-libre/PKGBUILD6
-rw-r--r--libre/abs/PKGBUILD18
-rw-r--r--libre/abuse-libre/PKGBUILD16
-rw-r--r--libre/acpi_call-libre-lts/PKGBUILD12
-rw-r--r--libre/acpi_call-libre/PKGBUILD14
-rw-r--r--libre/angband-libre/PKGBUILD24
-rw-r--r--libre/antlr2/PKGBUILD4
-rw-r--r--libre/apache-ant/PKGBUILD8
-rw-r--r--libre/arora-libre/PKGBUILD14
-rw-r--r--libre/atool-libre/PKGBUILD31
-rw-r--r--libre/atool-libre/libre.patch309
-rw-r--r--libre/atool-libre/rePKGBUILD27
-rw-r--r--libre/atril-libre/PKGBUILD15
-rw-r--r--libre/atril-libre/libarchive.patch91
-rw-r--r--libre/audacious-plugins-libre/PKGBUILD29
-rw-r--r--libre/audex-libre/PKGBUILD16
-rw-r--r--libre/audio-convert-libre/PKGBUILD12
-rw-r--r--libre/avidemux-libre/PKGBUILD4
-rw-r--r--libre/avidemux-libre/PKGBUILD.WIP4
-rw-r--r--libre/bbswitch-libre/PKGBUILD14
-rw-r--r--libre/bfgminer-libre/PKGBUILD10
-rw-r--r--libre/bitlbee-libre/PKGBUILD20
-rw-r--r--libre/blackbox-libre/PKGBUILD14
-rw-r--r--libre/blender-addon-luxrender/PKGBUILD4
-rw-r--r--libre/blender-libre/PKGBUILD18
-rw-r--r--libre/bogofilter-libre/PKGBUILD6
-rw-r--r--libre/bumblebee-libre/PKGBUILD4
-rw-r--r--libre/cacert-dot-org/PKGBUILD4
-rw-r--r--libre/calibre-libre/PKGBUILD52
-rw-r--r--libre/calibre-libre/libre.patch761
-rw-r--r--libre/cdrkit-libre/PKGBUILD4
-rw-r--r--libre/clementine-libre/PKGBUILD44
-rw-r--r--libre/clementine-libre/clementine-unistd.patch11
-rw-r--r--libre/crosstool-ng/PKGBUILD6
-rw-r--r--libre/cups-filters-libre/PKGBUILD10
-rw-r--r--libre/doublecmd-libre/PKGBUILD50
-rw-r--r--libre/doublecmd-libre/help-libre.patch153
-rw-r--r--libre/doublecmd-libre/libre.patch407
-rw-r--r--libre/dvdrip-libre/PKGBUILD6
-rw-r--r--libre/dvdrtools-libre/PKGBUILD8
-rw-r--r--libre/ecasound-libre/PKGBUILD14
-rw-r--r--libre/engrampa-libre/PKGBUILD11
-rw-r--r--libre/epdfview-libre/PKGBUILD14
-rw-r--r--libre/epiphany-libre/PKGBUILD12
-rw-r--r--libre/evince-libre/PKGBUILD51
-rw-r--r--libre/evince-libre/evince.install13
-rw-r--r--libre/evince-libre/libarchive.patch91
-rw-r--r--libre/file-roller-libre/PKGBUILD4
-rw-r--r--libre/filesystem/PKGBUILD6
-rw-r--r--libre/gloobus-preview-libre/PKGBUILD8
-rw-r--r--libre/gnome-boxes-libre/PKGBUILD44
-rw-r--r--libre/gnome-boxes-libre/gnome-boxes.install12
-rw-r--r--libre/gnome-boxes-libre/libre.patch69
-rw-r--r--libre/gnome-menus/PKGBUILD2
-rw-r--r--libre/gnormalize-libre/PKGBUILD16
-rw-r--r--libre/grub-legacy/PKGBUILD8
-rw-r--r--libre/grub/PKGBUILD23
-rw-r--r--libre/grub/grub-10_linux-detect-parabola-initramfs.patch54
-rw-r--r--libre/grub/grub-10_linux-rebrand-free-distros.patch (renamed from libre/grub/10_linux.in.patch)0
-rw-r--r--libre/grub/grub.default3
-rw-r--r--libre/gst-plugins-bad-libre/PKGBUILD8
-rw-r--r--libre/gstreamer0.10-bad-libre/PKGBUILD6
-rw-r--r--libre/gummiboot/PKGBUILD10
-rw-r--r--libre/hardinfo/PKGBUILD4
-rw-r--r--libre/hexchat-libre/PKGBUILD12
-rw-r--r--libre/hplip-libre/PKGBUILD14
-rw-r--r--libre/hydrogen-libre/PKGBUILD14
-rw-r--r--libre/icecat-adblock-plus/PKGBUILD10
-rw-r--r--libre/icecat-firebug/PKGBUILD10
-rw-r--r--libre/icecat-noscript/PKGBUILD12
-rw-r--r--libre/icecat-raismth/PKGBUILD2
-rw-r--r--libre/icecat-spell-ru/PKGBUILD4
-rw-r--r--libre/icecat/PKGBUILD10
-rw-r--r--libre/icedove-l10n/PKGBUILD114
-rw-r--r--libre/icedove-libre/PKGBUILD8
-rw-r--r--libre/iceweasel-adblock-plus/PKGBUILD10
-rw-r--r--libre/iceweasel-firebug/PKGBUILD10
-rw-r--r--libre/iceweasel-l10n/PKGBUILD168
-rw-r--r--libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch4
-rw-r--r--libre/iceweasel-libre/PKGBUILD57
-rw-r--r--libre/iceweasel-libre/iceweasel-install-dir.patch30
-rw-r--r--libre/iceweasel-libre/mozconfig1
-rw-r--r--libre/iceweasel-libre/vendor.js3
-rw-r--r--libre/iceweasel-noscript/PKGBUILD12
-rw-r--r--libre/iceweasel-raismth/PKGBUILD2
-rw-r--r--libre/iceweasel-spell-ru/PKGBUILD4
-rw-r--r--libre/kdebase-konqueror-libre/PKGBUILD8
-rw-r--r--libre/kdebase-runtime-libre/PKGBUILD10
-rw-r--r--libre/kdelibs-libre/PKGBUILD6
-rw-r--r--libre/kdenetwork-kopete-libre/PKGBUILD10
-rw-r--r--libre/kdeutils-ark-libre/PKGBUILD4
-rw-r--r--libre/kile-libre/PKGBUILD8
-rw-r--r--libre/kipi-plugins-libre/PKGBUILD32
-rw-r--r--libre/lesspipe-libre/PKGBUILD53
-rw-r--r--libre/lesspipe-libre/lesspipe.sh1
-rw-r--r--libre/lesspipe-libre/libarchive.patch100
-rw-r--r--libre/libclc-svn/PKGBUILD2
-rw-r--r--libre/libosinfo-libre/PKGBUILD62
-rw-r--r--libre/libosinfo-libre/libre.patch272
-rw-r--r--libre/libquicktime-libre/PKGBUILD6
-rw-r--r--libre/libretools/PKGBUILD25
-rw-r--r--libre/licenses-libre/PKGBUILD32
-rw-r--r--libre/liferea-libre/PKGBUILD12
-rw-r--r--libre/linux-libre-api-headers/PKGBUILD28
-rw-r--r--libre/linux-libre-api-headers/linux-3.14-xattr_header.patch76
-rw-r--r--libre/linux-libre-grsec/0007-x86-efi-Correct-EFI-boot-stub-use-of-code32_start.patch110
-rw-r--r--libre/linux-libre-grsec/0008-futex-avoid-race-between-requeue-and-wake.patch94
-rw-r--r--libre/linux-libre-grsec/0009-iwlwifi-mvm-rs-fix-search-cycle-rules.patch125
-rw-r--r--libre/linux-libre-grsec/0011-kernfs-fix-removed-error-check.patch13
-rw-r--r--libre/linux-libre-grsec/0012-fix-saa7134.patch37
-rw-r--r--libre/linux-libre-grsec/0013-net-Start-with-correct-mac_len-in-skb_network_protocol.patch13
-rw-r--r--libre/linux-libre-grsec/0015-fix-xsdt-validation.patch42
-rw-r--r--libre/linux-libre-grsec/PKGBUILD112
-rw-r--r--libre/linux-libre-grsec/config.i6869
-rw-r--r--libre/linux-libre-grsec/config.x86_6413
-rw-r--r--libre/linux-libre-lts/PKGBUILD24
-rw-r--r--libre/linux-libre-manpages/PKGBUILD6
-rw-r--r--libre/linux-libre-tools/PKGBUILD4
-rw-r--r--libre/linux-libre/0011-kernfs-fix-removed-error-check.patch13
-rw-r--r--libre/linux-libre/0012-fix-saa7134.patch37
-rw-r--r--libre/linux-libre/0013-net-Start-with-correct-mac_len-in-skb_network_protocol.patch13
-rw-r--r--libre/linux-libre/0015-fix-xsdt-validation.patch42
-rw-r--r--libre/linux-libre/PKGBUILD90
-rw-r--r--libre/linux-libre/config.i6869
-rw-r--r--libre/linux-libre/config.x86_649
-rw-r--r--libre/lirc-libre/PKGBUILD4
-rw-r--r--libre/lsb-release/PKGBUILD10
-rw-r--r--libre/luxrender-libre/PKGBUILD12
-rw-r--r--libre/mc-libre/PKGBUILD28
-rw-r--r--libre/mc-libre/libre.patch319
-rw-r--r--libre/mcomix-libre/PKGBUILD25
-rw-r--r--libre/mcomix-libre/libre.patch421
-rw-r--r--libre/mesa-demos-libre/PKGBUILD6
-rw-r--r--libre/mesa-libcl/PKGBUILD4
-rw-r--r--libre/midori-libre-gtk3/PKGBUILD14
-rw-r--r--libre/midori-libre/PKGBUILD18
-rw-r--r--libre/mime-types/PKGBUILD6
-rw-r--r--libre/mkisolinux/PKGBUILD2
-rw-r--r--libre/mkpxelinux/PKGBUILD2
-rw-r--r--libre/mksyslinux/PKGBUILD2
-rw-r--r--libre/mozilla-searchplugins/PKGBUILD6
-rw-r--r--libre/mplayer-libre-vaapi/PKGBUILD12
-rw-r--r--libre/mplayer-libre/PKGBUILD10
-rw-r--r--libre/netsurf-libre/PKGBUILD61
-rw-r--r--libre/netsurf-libre/netsurf.sh4
-rw-r--r--libre/nss/PKGBUILD16
-rw-r--r--libre/ogmrip-libre/PKGBUILD16
-rw-r--r--libre/ogre-libre/PKGBUILD2
-rw-r--r--libre/openexr-libre/PKGBUILD10
-rw-r--r--libre/openimageio/PKGBUILD6
-rw-r--r--libre/openshot-libre/PKGBUILD12
-rw-r--r--libre/oss-libre/PKGBUILD10
-rw-r--r--libre/p7zip-libre/9.04-makefile.patch19
-rw-r--r--libre/p7zip-libre/PKGBUILD48
-rw-r--r--libre/p7zip-libre/libre.patch170
-rw-r--r--libre/p7zip-libre/p7zip-libre.patch6540
-rw-r--r--libre/p7zip-libre/parent-folder-icon.patch33
-rw-r--r--libre/pacman-mirrorlist-libre/PKGBUILD6
-rw-r--r--libre/pacman/PKGBUILD45
-rw-r--r--libre/parabola-artwork/PKGBUILD19
-rw-r--r--libre/parabola-gnome/PKGBUILD31
-rw-r--r--libre/parabola-gnome/parabola-gnome.install11
-rw-r--r--libre/parabola-themes-slim/PKGBUILD4
-rw-r--r--libre/parabola-xdg-menu/PKGBUILD6
-rw-r--r--libre/parabolaiso/PKGBUILD6
-rw-r--r--libre/ponysay-libre/PKGBUILD14
-rw-r--r--libre/povray-libre/PKGBUILD12
-rw-r--r--libre/psi/PKGBUILD4
-rw-r--r--libre/psutils-libre/PKGBUILD10
-rw-r--r--libre/python-reportlab-libre/PKGBUILD24
-rw-r--r--libre/qupzilla-libre/PKGBUILD10
-rw-r--r--libre/reflector/PKGBUILD4
-rw-r--r--libre/rp-pppoe-libre/PKGBUILD6
-rw-r--r--libre/ruby-rdiscount/PKGBUILD2
-rw-r--r--libre/sdl-libre/PKGBUILD21
-rw-r--r--libre/sdl-libre/X11_KeyToUnicode.patch52
-rw-r--r--libre/soundkonverter-libre/PKGBUILD16
-rw-r--r--libre/spectrwm-libre/PKGBUILD14
-rw-r--r--libre/stuntrally-data-libre/PKGBUILD41
-rw-r--r--libre/stuntrally-data-libre/libre.patch792
-rw-r--r--libre/syslinux/PKGBUILD8
-rw-r--r--libre/texlive-bin-libre/PKGBUILD23
-rw-r--r--libre/texlive-bin-libre/poppler-0.26.patch104
-rw-r--r--libre/texlive-core-libre/PKGBUILD6
-rw-r--r--libre/texlive-fontsextra-libre/PKGBUILD6
-rw-r--r--libre/texlive-latexextra-libre/PKGBUILD8
-rw-r--r--libre/tokyocabinet/PKGBUILD4
-rw-r--r--libre/tp_smapi-libre-lts/PKGBUILD18
-rw-r--r--libre/tp_smapi-libre/PKGBUILD18
-rw-r--r--libre/unar/PKGBUILD6
-rw-r--r--libre/unzip-libre/PKGBUILD6
-rw-r--r--libre/usermin/PKGBUILD2
-rw-r--r--libre/vhba-module-libre/PKGBUILD8
-rw-r--r--libre/vim-colorsamplerpack-libre/PKGBUILD12
-rw-r--r--libre/vim-runtime/PKGBUILD18
-rw-r--r--libre/webmin/PKGBUILD2
-rw-r--r--libre/wings3d-libre/PKGBUILD6
-rw-r--r--libre/xarchiver-libre/PKGBUILD35
-rw-r--r--libre/xarchiver-libre/xarchiver-0.5.3-add-mime-types.patch18
-rw-r--r--libre/xarchiver-libre/xarchiver-0.5.3-add-unar-support.patch545
-rw-r--r--libre/xarchiver-libre/xarchiver-0.5.3-remove-nonfree-unrar-support.patch525
-rw-r--r--libre/xbmc-libre-lts/PKGBUILD138
-rw-r--r--libre/xbmc-libre-lts/polkit.rules12
-rw-r--r--libre/xbmc-libre-lts/xbmc.install19
-rw-r--r--libre/xbmc-libre-lts/xbmc.service16
-rw-r--r--libre/xbmc-libre/0001-rtmp-check-m_rtmp-for-non-NULL-fixes-crashes-with-mi.patch75
-rw-r--r--libre/xbmc-libre/ChangeLog69
-rw-r--r--libre/xbmc-libre/PKGBUILD152
-rw-r--r--libre/xbmc-libre/enable-external-ffmpeg.patch100
-rw-r--r--libre/xbmc-pvr-addons-lts/PKGBUILD30
-rw-r--r--libre/xchat-libre/PKGBUILD4
-rw-r--r--libre/xmlstarlet/PKGBUILD6
-rw-r--r--libre/xorg-fonts-100dpi-libre/PKGBUILD6
-rw-r--r--libre/xorg-fonts-75dpi-libre/PKGBUILD4
-rw-r--r--libre/xorg-fonts-type1-libre/PKGBUILD2
-rw-r--r--libre/xscreensaver-libre/PKGBUILD4
-rw-r--r--libre/xsp/PKGBUILD4
217 files changed, 7000 insertions, 8833 deletions
diff --git a/libre/abiword-libre/PKGBUILD b/libre/abiword-libre/PKGBUILD
index 0139961e0..b49c27a84 100644
--- a/libre/abiword-libre/PKGBUILD
+++ b/libre/abiword-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 209913 2014-04-08 14:24:40Z andyrtr $
-# Contributor: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: Maël Lavault <moimael@neuf.fr>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Contributor (Arch): Giovanni Scafora <giovanni@archlinux.org>
+# Contributor (Arch): Maël Lavault <moimael@neuf.fr>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgbase=abiword
pkgbase=abiword-libre
diff --git a/libre/abs/PKGBUILD b/libre/abs/PKGBUILD
index f7e85d0ef..cde9187b5 100644
--- a/libre/abs/PKGBUILD
+++ b/libre/abs/PKGBUILD
@@ -1,16 +1,15 @@
-# $Id$
-# Maintainer: Allan McRae <allan@archlinux.org>
-
-replaces=('abs-libre')
-conflicts=('abs-libre')
+# $Id: PKGBUILD 166402 2012-09-07 16:49:13Z dreisner $
+# Maintainer (Arch): Allan McRae <allan@archlinux.org>
pkgname=abs
pkgver=2.4.4
-pkgrel=1.1
-pkgdesc="Utilities to download and work with the Arch Build System (ABS)"
+pkgrel=1.2
+pkgdesc="Utilities to download and work with the Arch Build System (ABS), with Parabola repos support"
arch=('i686' 'x86_64' 'mips64el')
url="http://projects.archlinux.org/abs.git/"
license=('GPL')
+replaces=('abs-libre')
+conflicts=('abs-libre')
depends=('bash' 'rsync')
backup=(etc/abs.conf)
source=(ftp://ftp.archlinux.org/other/abs/${pkgname}-${pkgver}.tar.gz{,.sig})
@@ -33,10 +32,15 @@ package() {
install -Dm644 README "${pkgdir}"/var/abs/README
# make adjustments to abs.conf
+ sed -i -e 's|i686 or x86_64|i686, x86_64 or mips64el|' "${pkgdir}"/etc/abs.conf
sed -i -e 's|rsync.archlinux.org|parabolagnulinux.org|' "${pkgdir}"/etc/abs.conf
sed -i -e 's|(core|(libre !libre-testing core|' "${pkgdir}"/etc/abs.conf
+ sed -i -e 's|!staging !community-staging !gnome-unstable !kde-unstable|!pcr !nonprism !kernels !cross !java !java-ugly !~smv !~xihh !~brendan !~lukeshu !~emulatorman !~aurelien !~jorginho !~coadde !~drtan|' "${pkgdir}"/etc/abs.conf
if [[ $CARCH != "x86_64" ]]; then
sed -i -e 's| multilib||' -e 's| !multilib-testing||' "${pkgdir}"/etc/abs.conf
fi
+ if [[ $CARCH = "x86_64" ]]; then
+ sed -i -e 's|community|community libre-multilib|' -e 's|!community-testing|!community-testing !libre-multilib-testing|' "${pkgdir}"/etc/abs.conf
+ fi
sed -i "s/ARCH=.*/ARCH=$CARCH/" "${pkgdir}"/etc/abs.conf
}
diff --git a/libre/abuse-libre/PKGBUILD b/libre/abuse-libre/PKGBUILD
index 26c5d1fbd..dfffa4947 100644
--- a/libre/abuse-libre/PKGBUILD
+++ b/libre/abuse-libre/PKGBUILD
@@ -1,9 +1,9 @@
# $Id: PKGBUILD 101370 2013-11-23 19:00:48Z arodseth $
-# Maintainer: Alexander Rødseth <rodseth@gmail.com>
-# Contributor: Lukas Fleischer <archlinux at cryptocrack dot de>
-# Contributor: jlvsimoes <jlvsimoes@oninet.pt>
-# Contributor: kevin <kevin@archlinux.org>
-# Contributor (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Alexander Rødseth <rodseth@gmail.com>
+# Contributor (Arch): Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor (Arch): jlvsimoes <jlvsimoes@oninet.pt>
+# Contributor (Arch): kevin <kevin@archlinux.org>
+# Contributor: André Silva <emulatorman@parabola.nu>
_pkgname=abuse
pkgname=abuse-libre
@@ -13,9 +13,9 @@ pkgdesc='Side-scroller action game that pits you against ruthless alien killers,
arch=('x86_64' 'i686' 'mips64el')
url='http://abuse.zoy.org/'
license=('GPL' 'custom')
-provides=$_pkgname=$pkgver
-replaces=$_pkgname
-conflicts=$_pkgname
+provides=($_pkgname=$pkgver)
+replaces=($_pkgname)
+conflicts=($_pkgname)
depends=('gcc-libs' 'libgl' 'sdl_mixer' 'glu' 'desktop-file-utils')
makedepends=('gendesk' 'mesa-libgl' 'glu')
install="$_pkgname.install"
diff --git a/libre/acpi_call-libre-lts/PKGBUILD b/libre/acpi_call-libre-lts/PKGBUILD
index 2c3816004..5dfcc3ed3 100644
--- a/libre/acpi_call-libre-lts/PKGBUILD
+++ b/libre/acpi_call-libre-lts/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 106771 2014-03-07 14:36:15Z bpiotrowski $
-# Maintainer: Maxime Gauduin <alucryd@gmail.com>
-# Contributor: mortzu <me@mortzu.de>
-# Contributor: fnord0 <fnord0@riseup.net>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Maxime Gauduin <alucryd@gmail.com>
+# Contributor (Arch): mortzu <me@mortzu.de>
+# Contributor (Arch): fnord0 <fnord0@riseup.net>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=acpi_call-lts
pkgname=acpi_call-libre-lts
@@ -15,8 +15,8 @@ url="http://github.com/mkottman/${_pkgname%-*}"
license=('GPL')
depends=('linux-libre-lts>=3.10.26')
makedepends=('linux-libre-lts-headers>=3.10.26')
-replaces="${_pkgname}"
-conflicts="${_pkgname}"
+replaces=("${_pkgname}")
+conflicts=("${_pkgname}")
provides=("${_pkgname%-*}" "${_pkgname}=${pkgver}")
install="${_pkgname%-*}.install"
source=("${url}/archive/v${pkgver}.tar.gz")
diff --git a/libre/acpi_call-libre/PKGBUILD b/libre/acpi_call-libre/PKGBUILD
index 95967339f..2fd6569a6 100644
--- a/libre/acpi_call-libre/PKGBUILD
+++ b/libre/acpi_call-libre/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 108706 2014-04-01 22:24:11Z thomas $
-# Maintainer: Maxime Gauduin <alucryd@gmail.com>
-# Contributor: mortzu <me@mortzu.de>
-# Contributor: fnord0 <fnord0@riseup.net>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Maxime Gauduin <alucryd@gmail.com>
+# Contributor (Arch): mortzu <me@mortzu.de>
+# Contributor (Arch): fnord0 <fnord0@riseup.net>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=acpi_call
pkgname=acpi_call-libre
@@ -15,9 +15,9 @@ url="http://github.com/mkottman/${_pkgname}"
license=('GPL')
depends=('linux-libre>=3.14' 'linux-libre<3.15')
makedepends=('linux-libre-headers>=3.14' 'linux-libre-headers<3.15')
-replaces="${_pkgname}"
-conflicts="${_pkgname}"
-provides="${_pkgname}=${pkgver}"
+replaces=("${_pkgname}")
+conflicts=("${_pkgname}")
+provides=("${_pkgname}=${pkgver}")
install="${_pkgname}.install"
source=("${url}/archive/v${pkgver}.tar.gz")
sha256sums=('d0d14b42944282724fca76f57d598eed794ef97448f387d1c489d85ad813f2f0')
diff --git a/libre/angband-libre/PKGBUILD b/libre/angband-libre/PKGBUILD
index 13e58963b..e8a827150 100644
--- a/libre/angband-libre/PKGBUILD
+++ b/libre/angband-libre/PKGBUILD
@@ -1,12 +1,12 @@
-# Maintainer: schuay <jakob.gruber@gmail.com>
-# Contributor: Mike Sampson <mike at sambodata dot com>
-# Contributor: Adrian Stratulat <adrian.stratulat at inboxcom>
-# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
-# Contributor: KillaB <xGenoBlast@gmail.com>
-# Contributor: Callan Barrett <wizzomafizzo@gmail.com>
-# Contributor: Christian Schmidt <xmucknertx@googlemail.com>
-# Contributor: Sebastian Sareyko <public@nooms.de>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): schuay <jakob.gruber@gmail.com>
+# Contributor (Arch): Mike Sampson <mike at sambodata dot com>
+# Contributor (Arch): Adrian Stratulat <adrian.stratulat at inboxcom>
+# Contributor (Arch): Anton Bazhenov <anton.bazhenov at gmail>
+# Contributor (Arch): KillaB <xGenoBlast@gmail.com>
+# Contributor (Arch): Callan Barrett <wizzomafizzo@gmail.com>
+# Contributor (Arch): Christian Schmidt <xmucknertx@googlemail.com>
+# Contributor (Arch): Sebastian Sareyko <public@nooms.de>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=angband
pkgname=angband-libre
@@ -16,9 +16,9 @@ pkgdesc="A roguelike dungeon exploration game based on the writings of JRR Tolki
arch=('i686' 'x86_64' 'mips64el')
url="http://rephial.org/"
license=('GPL2' 'custom')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
depends=('sdl_image' 'sdl_ttf' 'sdl_mixer' 'ncurses')
mksource=("http://rephial.org/downloads/${pkgver:0:3}/${_pkgname}-v${pkgver}.tar.gz" 'libre.patch')
source=("https://repo.parabolagnulinux.org/other/${pkgname}/${pkgname}-v${pkgver}.tar.gz")
diff --git a/libre/antlr2/PKGBUILD b/libre/antlr2/PKGBUILD
index 4b69536c8..5d0fd6eb0 100644
--- a/libre/antlr2/PKGBUILD
+++ b/libre/antlr2/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
# Maintainer (Arch): Andrea Scarpino <andrea@archlinux.org>
-# Contributor: George Giorgidze <giorgidze (at) gmail.com>
-# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor (Arch): George Giorgidze <giorgidze (at) gmail.com>
+# Contributor (Arch): Stefan Husmann <stefan-husmann@t-online.de>
pkgbase=antlr2
pkgname=(antlr2 antlr2-{java,python2,cxx,sharp})
diff --git a/libre/apache-ant/PKGBUILD b/libre/apache-ant/PKGBUILD
index a635c6e90..7601f526a 100644
--- a/libre/apache-ant/PKGBUILD
+++ b/libre/apache-ant/PKGBUILD
@@ -1,9 +1,9 @@
# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
# Maintainer (Arch): Paul Mattal <paul@archlinux.org>
-# Contributor: Andrew Wright <andreww@photism.org>
+# Contributor (Arch): Andrew Wright <andreww@photism.org>
pkgname=apache-ant
-pkgver=1.9.3
+pkgver=1.9.4
pkgdesc="A Java-based build tool"
license=('Apache' 'custom:BSD3')
url="http://ant.apache.org/"
@@ -12,7 +12,7 @@ provides=("apache-ant-libre=$pkgver")
replaces=("apache-ant-libre")
conflicts=("apache-ant-libre")
-pkgrel=2.2 # newer than Arch's 1.9.3-2
+pkgrel=1
arch=('any')
depends=('java-environment')
makedepends=('jh')
@@ -20,7 +20,7 @@ makedepends=('jh')
_mirror=http://archive.apache.org/dist
source=($_mirror/ant/source/${pkgname}-${pkgver}-src.tar.bz2
${pkgname}.sh ${pkgname}.csh)
-md5sums=('995f21618acdf35beacc465c84d79534'
+md5sums=('7a7253ec047195d755c5318a4de8a3a4'
'bd63c881be406f515fc4d22635e8326a'
'aaa615512cbe1ed7f3b62c1ff46802f8')
diff --git a/libre/arora-libre/PKGBUILD b/libre/arora-libre/PKGBUILD
index 0b9aa4f4c..d10fb8ade 100644
--- a/libre/arora-libre/PKGBUILD
+++ b/libre/arora-libre/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 188496 2013-06-15 04:38:11Z bisson $
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
-# Contributor: Pierre Schmitz <pierre@archlinux.de>
-# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Gaetan Bisson <bisson@archlinux.org>
+# Contributor (Arch): Pierre Schmitz <pierre@archlinux.de>
+# Contributor (Arch): Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=arora
pkgname=arora-libre
@@ -12,9 +12,9 @@ pkgdesc='Lightweight cross-platform Web browser, without nonfree flash recommend
url='http://code.google.com/p/arora/'
license=('GPL')
arch=('i686' 'x86_64' 'mips64el')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
depends=('qtwebkit' 'desktop-file-utils')
source=("http://${_pkgname}.googlecode.com/files/${_pkgname}-${pkgver}.tar.gz"
'searchengines.qrc'
diff --git a/libre/atool-libre/PKGBUILD b/libre/atool-libre/PKGBUILD
index f7b13644c..2255022b6 100644
--- a/libre/atool-libre/PKGBUILD
+++ b/libre/atool-libre/PKGBUILD
@@ -1,16 +1,16 @@
# $Id: PKGBUILD 78820 2012-10-25 06:47:28Z foutrelis $
-# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
-# Contributor: leif_thande <leif.thande@gmail.com>
-# Contributor: tranquility <trankas@gmail.com>
-# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
-# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
-# Contributor (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor (Arch): leif_thande <leif.thande@gmail.com>
+# Contributor (Arch): tranquility <trankas@gmail.com>
+# Contributor (Arch): Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: Márcio Silva <coadde@parabola.nu>
+# Contributor: André Silva <emulatorman@parabola.nu>
_pkgname=atool
pkgname=atool-libre
pkgver=0.39.0
-pkgrel=1.2
-pkgdesc="A script for managing file archives of various types, with unar support included and nonfree unace recommendation removed"
+pkgrel=1.3
+pkgdesc="A script for managing file archives of various types, without nonfree unace and unrar support"
arch=('any')
url="http://www.nongnu.org/atool/"
license=('GPL3')
@@ -26,18 +26,19 @@ optdepends=('bzip2: for using atool with bzip2 compressed archives'
'lzop: for using atool with lzop compressed archives'
'p7zip: for using atool with 7z archives'
'tar: for using atool with tar archives'
- 'unar: for using atool for unpacking rar archives'
'zip: for using atool for creating zip archives'
- 'unzip: for using atool for unpacking zip archives')
-
-source=(http://savannah.nongnu.org/download/$_pkgname/$_pkgname-$pkgver.tar.gz)
-sha256sums=('aaf60095884abb872e25f8e919a8a63d0dabaeca46faeba87d12812d6efc703b')
+ 'unzip: for using atool for unpacking archives')
+changelog=$_pkgname.changelog
+source=(http://savannah.nongnu.org/download/$_pkgname/$_pkgname-$pkgver.tar.gz
+ libre.patch)
+sha256sums=('aaf60095884abb872e25f8e919a8a63d0dabaeca46faeba87d12812d6efc703b'
+ 'c9aa3c72e4c979d236dd659f16cc1eb6841f0860e6ef4d2c90f021d6e5aca578')
prepare() {
cd ${srcdir}/${_pkgname}-${pkgver}
- # replace nonfree unrar to unar
- sed -i 's|unrar|unar|g' $(grep -rlI 'unrar')
+ # remove nonfree unace and unrar support
+ patch -Np1 -i ../libre.patch
}
build() {
diff --git a/libre/atool-libre/libre.patch b/libre/atool-libre/libre.patch
new file mode 100644
index 000000000..11f3b3cb8
--- /dev/null
+++ b/libre/atool-libre/libre.patch
@@ -0,0 +1,309 @@
+diff -Nur atool-0.39.0.orig/atool atool-0.39.0/atool
+--- atool-0.39.0.orig/atool 2012-04-02 15:09:10.000000000 -0300
++++ atool-0.39.0/atool 2014-05-06 04:33:46.263005816 -0300
+@@ -111,16 +111,13 @@
+ $::cfg_path_pbzip2 = 'pbzip2'; # pbzip2 program
+ $::cfg_path_pigz = 'pigz'; # pigz program
+ $::cfg_path_plzip = 'plzip'; # plzip program
+-$::cfg_path_rar = 'rar'; # rar program
+ $::cfg_path_rpm = 'rpm'; # rpm program
+ $::cfg_path_rpm2cpio = 'rpm2cpio'; # rpm2cpio program
+ $::cfg_path_rzip = 'rzip'; # rzip program
+ $::cfg_path_syscfg = File::Spec->catfile($::SYSCONFDIR, $::PROGRAM.'.conf'); # system-wide configuration file
+ $::cfg_path_tar = 'tar'; # tar program
+-$::cfg_path_unace = 'unace'; # unace program
+ $::cfg_path_unalz = 'unalz'; # unalz program
+ $::cfg_path_unarj = 'unarj'; # unarj program
+-$::cfg_path_unrar = 'unrar'; # unrar program
+ $::cfg_path_unzip = 'unzip'; # unzip program
+ $::cfg_path_usercfg = '.'.$::PROGRAM.'rc'; # user configuration file
+ $::cfg_path_xargs = 'xargs'; # xargs program
+@@ -141,7 +138,6 @@
+ $::cfg_use_pbzip2 = 0; # use pbzip2 instead of bzip2
+ $::cfg_use_pigz = 0; # use pigz instead of gzip
+ $::cfg_use_plzip = 0; # use plzip instead of lzip
+-$::cfg_use_rar_for_unpack = 0; # use rar to unpack rar files?
+ $::cfg_use_tar_bzip2_option = 1; # does tar support --bzip2?
+ $::cfg_use_tar_lzma_option = 1; # does tar support --lzma?
+ $::cfg_use_tar_lzip_option = 0; # does tar support --lzip?
+@@ -592,26 +588,6 @@
+ @cmd = handle_empty_add(@cmd) if ($mode eq 'add' && @args == 0);
+ return multiarchivecmd($archive, $outdir, $mode, 0, 0, \@args, @cmd);
+ }
+- elsif ($format eq 'rar') {
+- return undef if ($mode eq 'extract' && !defined ($outdir = makeoutdir()));
+- if ($mode eq 'add' || $::cfg_use_rar_for_unpack) {
+- push @cmd, $::cfg_path_rar;
+- } else {
+- push @cmd, $::cfg_path_unrar;
+- }
+- push @cmd, 'a' if $mode eq 'add';
+- push @cmd, 'vt' if $mode eq 'list' && $::opt_verbosity >= 3;
+- push @cmd, 'v' if $mode eq 'list' && $::opt_verbosity == 2;
+- push @cmd, 'l' if $mode eq 'list' && $::opt_verbosity <= 1;
+- push @cmd, 'x' if ($mode eq 'extract' || $mode eq 'extract-to');
+- push @cmd, '-ierr', 'p' if $mode eq 'cat';
+- push @cmd, '-r0' if ($mode eq 'add');
+- push @cmd, $archive, @args;
+- push @cmd, tailslash($outdir) if $mode eq 'extract';
+- push @cmd, tailslash($::opt_cmd_extract_to) if $mode eq 'extract-to';
+- @cmd = handle_empty_add(@cmd) if ($mode eq 'add' && @args == 0);
+- return multiarchivecmd($archive, $outdir, $mode, 0, 0, \@args, @cmd);
+- }
+ elsif ($format eq '7z') {
+ # 7z has the -so option for writing data to stdout, but it doesn't
+ # write data to terminal even if the file is designed to be
+@@ -673,23 +649,6 @@
+ @cmd = handle_empty_add(@cmd) if ($mode eq 'add' && @args == 0);
+ return multiarchivecmd($archive, $outdir, $mode, 0, 0, \@args, @cmd);
+ }
+- elsif ($format eq 'ace') {
+- return undef if ($mode eq 'extract' && !defined ($outdir = makeoutdir()));
+- push @cmd, $::cfg_path_unace;
+- if ($mode eq 'add' || $mode eq 'cat') {
+- warn "$::basename: ".quote($archive).": $mode command not supported for $format archives\n";
+- return undef;
+- }
+- push @cmd, 'v', '-c' if $mode eq 'list' && $::opt_verbosity >= 3;
+- push @cmd, 'v' if $mode eq 'list' && $::opt_verbosity == 2;
+- push @cmd, 'l' if $mode eq 'list' && $::opt_verbosity <= 1;
+- push @cmd, 'x' if ($mode eq 'extract' || $mode eq 'extract-to');
+- push @cmd, $archive, @args;
+- push @cmd, tailslash($outdir) if $mode eq 'extract';
+- push @cmd, tailslash($::opt_cmd_extract_to) if $mode eq 'extract-to';
+- @cmd = handle_empty_add(@cmd) if ($mode eq 'add' && @args == 0);
+- return multiarchivecmd($archive, $outdir, $mode, 0, 0, \@args, @cmd);
+- }
+ elsif ($format eq 'arj') {
+ return undef if ($mode eq 'extract' && !defined ($outdir = makeoutdir()));
+ if ($mode eq 'cat') {
+@@ -1321,9 +1280,7 @@
+ return $file if ($file =~ s/\.jar$//);
+ return $file if ($file =~ s/\.war$//);
+ return $file if ($file =~ s/\.Z$//);
+- return $file if ($file =~ s/\.rar$//);
+ return $file if ($file =~ s/\.(lha|lzh)$//);
+- return $file if ($file =~ s/\.ace$//);
+ return $file if ($file =~ s/\.arj$//);
+ return $file if ($file =~ s/\.a$//);
+ return $file if ($file =~ s/\.lzma$//);
+@@ -1363,8 +1320,6 @@
+ return '.zip' if $format eq 'zip';
+ return '.jar' if $format eq 'jar';
+ return '.Z' if $format eq 'compress';
+- return '.rar' if $format eq 'rar';
+- return '.ace' if $format eq 'ace';
+ return '.a' if $format eq 'ar';
+ return '.arj' if $format eq 'arj';
+ return '.lha' if $format eq 'lha';
+@@ -1411,7 +1366,6 @@
+ ['zip', qr/ \(Zip archive data[^)]*\)$/],
+ ['zip', qr/^Zip archive data(\W|$)/],
+ ['zip', qr/^MS-DOS executable (.*), ZIP self-extracting archive(\W|$)/],
+- ['rar', qr/^RAR archive data(\W|$)/],
+ ['lha', qr/^LHa \(2\.x\) archive data /],
+ ['lha', qr/^LHa 2\.x\? archive data /],
+ ['lha', qr/^LHarc 1\.x archive data /],
+@@ -1453,7 +1407,6 @@
+ ['tar+xz', qr/(\.tar\.xz|\.txz)$/],
+
+ ['7z', qr/\.7z$/],
+- ['ace', qr/\.ace$/],
+ ['alzip', qr/\.alz$/],
+ ['ar', qr/\.a$/],
+ ['arc', qr/\.arc$/],
+@@ -1471,7 +1424,6 @@
+ ['lzip', qr/\.lz$/],
+ ['lzma', qr/\.lzma$/],
+ ['lzop', qr/\.lzo$/],
+- ['rar', qr/\.rar$/],
+ ['rpm', qr/\.rpm$/],
+ ['rzip', qr/\.rz$/],
+ ['tar', qr/\.tar$/],
+@@ -1620,15 +1572,12 @@
+ 'path_pbzip2' => [ 'option', \$::cfg_path_pbzip2, qr/.*/ ],
+ 'path_pigz' => [ 'option', \$::cfg_path_pigz, qr/.*/ ],
+ 'path_plzip' => [ 'option', \$::cfg_path_plzip, qr/.*/ ],
+- 'path_rar' => [ 'option', \$::cfg_path_rar, qr/.*/ ],
+ 'path_rpm' => [ 'option', \$::cfg_path_rpm, qr/.*/ ],
+ 'path_rpm2cpio' => [ 'option', \$::cfg_path_rpm2cpio, qr/.*/ ],
+ 'path_rzip' => [ 'option', \$::cfg_path_rzip, qr/.*/ ],
+ 'path_tar' => [ 'option', \$::cfg_path_tar, qr/.*/ ],
+- 'path_unace' => [ 'option', \$::cfg_path_unace, qr/.*/ ],
+ 'path_unalz' => [ 'option', \$::cfg_path_unalz, qr/.*/ ],
+ 'path_unarj' => [ 'option', \$::cfg_path_unarj, qr/.*/ ],
+- 'path_unrar' => [ 'option', \$::cfg_path_unrar, qr/.*/ ],
+ 'path_unzip' => [ 'option', \$::cfg_path_unzip, qr/.*/ ],
+ 'path_usercfg' => [ 'option', \$::cfg_path_usercfg, qr/.*/ ],
+ 'path_xargs' => [ 'option', \$::cfg_path_xargs, qr/.*/ ],
+@@ -1649,8 +1598,6 @@
+ 'use_pbzip2' => [ 'option', \$::cfg_use_pbzip2, qr/^(0|1)$/ ],
+ 'use_pigz' => [ 'option', \$::cfg_use_pigz, qr/^(0|1)$/ ],
+ 'use_plzip' => [ 'option', \$::cfg_use_plzip, qr/^(0|1)$/ ],
+- 'use_rar_for_unpack' => [ 'option', \$::cfg_use_rar_for_unpack, qr/^(0|1)$/ ],
+- 'use_rar_for_unrar' => [ 'obsolete', 'use_rar_for_unpack' ],
+ 'use_tar_bzip2_option' => [ 'option', \$::cfg_use_tar_bzip2_option, qr/^(0|1)$/ ],
+ 'use_tar_lzma_option' => [ 'option', \$::cfg_use_tar_lzma_option, qr/^(0|1)$/ ],
+ 'use_tar_lzop_option' => [ 'option', \$::cfg_use_tar_lzop_option, qr/^(0|1)$/ ],
+diff -Nur atool-0.39.0.orig/atool.1 atool-0.39.0/atool.1
+--- atool-0.39.0.orig/atool.1 2012-03-15 04:31:41.000000000 -0300
++++ atool-0.39.0/atool.1 2014-05-06 04:34:36.830099616 -0300
+@@ -146,7 +146,7 @@
+ When extracting from files, allow overwriting of local files.
+ When creating an archive, allow the archive file to be overwritten
+ if it already exists. Note that it is possible to add files to
+-existing RAR and Zip archives (this is not possible for many
++existing Zip archives (this is not possible for many
+ other formats).
+ .TP
+ .B \-D, \-\-subdir
+@@ -262,9 +262,6 @@
+ List, extract, and add commands are supported.
+ Cat is supported if use_jar_program is disabled.
+ .TP
+-.RI \fBrar\fP " " ( .rar )
+-All commands are supported.
+-.TP
+ .RI \fBlha\fP " " ( .lha ", " .lzh )
+ All commands are supported.
+ .TP
+@@ -274,9 +271,6 @@
+ .RI \fBalzip\fP " " ( .alz )
+ Extract command is supported.
+ .TP
+-.RI \fBace\fP " " ( .ace )
+-Extract and list commands are supported.
+-.TP
+ .RI \fBar\fP " " ( .a )
+ All commands are supported.
+ .TP
+@@ -406,11 +400,6 @@
+ Enable this if you want to use gzip instead of uncompress when
+ decompressing compress'ed files (`.Z' files).
+ .TP
+-.B use_rar_for_unpack \fR(default: 0)\fR
+-Enable this if you want to always use rar instead of unrar
+-when possible. This makes atool use the rar command
+-(path_rar) even when listing and extracting RAR files.
+-.TP
+ .B use_arc_for_unpack \fR(default: 0)\fR
+ Enable this if you want to always use arc instead of nomarch
+ when possible. This makes atool use the arc command
+@@ -530,10 +519,6 @@
+ .TP
+ .B path_lzip \fR(default: lzip)\fR
+ .TP
+-.B path_rar \fR(default: rar)\fR
+-.TP
+-.B path_unrar \fR(default: unrar)\fR
+-.TP
+ .B path_lbzip2 \fR(default: lbzip2)\fR
+ .TP
+ .B path_pigz \fR(default: pigz)\fR
+@@ -546,8 +531,6 @@
+ .TP
+ .B path_lha \fR(default: lha)\fR
+ .TP
+-.B path_unace \fR(default: unace)\fR
+-.TP
+ .B path_ar \fR(default: ar)\fR
+ .TP
+ .B path_arj \fR(default: arj)\fR
+@@ -661,10 +644,6 @@
+ .br
+ \fBacat \-p myarchive.zip baz\fP
+ .PP
+-To list contents of the rar archive `stuff.rar':
+-.br
+- \fBals stuff.rar\fP
+-.PP
+ To create three archives, `dir1.tar.gz', `dir2.tar.gz' and `dir3.tar.gz',
+ so that the first one contains all files in dir1, the second all
+ in dir2 and the third all dir3:
+diff -Nur atool-0.39.0.orig/atool.1.in atool-0.39.0/atool.1.in
+--- atool-0.39.0.orig/atool.1.in 2012-03-15 04:31:39.000000000 -0300
++++ atool-0.39.0/atool.1.in 2014-05-06 04:35:30.100547318 -0300
+@@ -146,7 +146,7 @@
+ When extracting from files, allow overwriting of local files.
+ When creating an archive, allow the archive file to be overwritten
+ if it already exists. Note that it is possible to add files to
+-existing RAR and Zip archives (this is not possible for many
++existing Zip archives (this is not possible for many
+ other formats).
+ .TP
+ .B \-D, \-\-subdir
+@@ -262,9 +262,6 @@
+ List, extract, and add commands are supported.
+ Cat is supported if use_jar_program is disabled.
+ .TP
+-.RI \fBrar\fP " " ( .rar )
+-All commands are supported.
+-.TP
+ .RI \fBlha\fP " " ( .lha ", " .lzh )
+ All commands are supported.
+ .TP
+@@ -274,9 +271,6 @@
+ .RI \fBalzip\fP " " ( .alz )
+ Extract command is supported.
+ .TP
+-.RI \fBace\fP " " ( .ace )
+-Extract and list commands are supported.
+-.TP
+ .RI \fBar\fP " " ( .a )
+ All commands are supported.
+ .TP
+@@ -406,11 +400,6 @@
+ Enable this if you want to use gzip instead of uncompress when
+ decompressing compress'ed files (`.Z' files).
+ .TP
+-.B use_rar_for_unpack \fR(default: 0)\fR
+-Enable this if you want to always use rar instead of unrar
+-when possible. This makes atool use the rar command
+-(path_rar) even when listing and extracting RAR files.
+-.TP
+ .B use_arc_for_unpack \fR(default: 0)\fR
+ Enable this if you want to always use arc instead of nomarch
+ when possible. This makes atool use the arc command
+@@ -530,10 +519,6 @@
+ .TP
+ .B path_lzip \fR(default: lzip)\fR
+ .TP
+-.B path_rar \fR(default: rar)\fR
+-.TP
+-.B path_unrar \fR(default: unrar)\fR
+-.TP
+ .B path_lbzip2 \fR(default: lbzip2)\fR
+ .TP
+ .B path_pigz \fR(default: pigz)\fR
+@@ -546,8 +531,6 @@
+ .TP
+ .B path_lha \fR(default: lha)\fR
+ .TP
+-.B path_unace \fR(default: unace)\fR
+-.TP
+ .B path_ar \fR(default: ar)\fR
+ .TP
+ .B path_arj \fR(default: arj)\fR
+@@ -661,10 +644,6 @@
+ .br
+ \fBacat \-p myarchive.zip baz\fP
+ .PP
+-To list contents of the rar archive `stuff.rar':
+-.br
+- \fBals stuff.rar\fP
+-.PP
+ To create three archives, `dir1.tar.gz', `dir2.tar.gz' and `dir3.tar.gz',
+ so that the first one contains all files in dir1, the second all
+ in dir2 and the third all dir3:
+diff -Nur atool-0.39.0.orig/extra/bash-completion-atool_0.1-1 atool-0.39.0/extra/bash-completion-atool_0.1-1
+--- atool-0.39.0.orig/extra/bash-completion-atool_0.1-1 2007-12-10 20:01:38.000000000 -0200
++++ atool-0.39.0/extra/bash-completion-atool_0.1-1 2014-05-06 04:36:01.504143499 -0300
+@@ -15,7 +15,7 @@
+ --quiet --verbose --page --null --explain --simulate --config=' -- $cur ) )
+ ;;
+ *)
+- _filedir '@(rar|RAR|zip|ZIP|tar.gz|tgz|tar.bz|tbz|tar.Z|tZ|tar.lzo|tzo|tar.7z|t7z|tar|jar|JAR|war|lha|lzh|7z|ace|ACE|arj|ARJ|a|arc|ARC|rpm|deb|gz|bz|bz2|Z|lzo|cpio)'
++ _filedir '@(zip|ZIP|tar.gz|tgz|tar.bz|tbz|tar.Z|tZ|tar.lzo|tzo|tar.7z|t7z|tar|jar|JAR|war|lha|lzh|7z|arj|ARJ|a|arc|ARC|rpm|deb|gz|bz|bz2|Z|lzo|cpio)'
+ ;;
+ esac
+
diff --git a/libre/atool-libre/rePKGBUILD b/libre/atool-libre/rePKGBUILD
deleted file mode 100644
index e684320d0..000000000
--- a/libre/atool-libre/rePKGBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Maintainer: Nicolás Reynolds <fauno@kiwwwi.com.ar>
-source PKGBUILD
-unset build package md5sums source
-CARCH=any
-PKGEXT=.pkg.tar.gz
-_repo=community # Put the repo here
-_mirror=http://mirrors.kernel.org/archlinux # Put mirror here
-source=(PKGBUILD
- "${_mirror}/${_repo}/os/i686/${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT"
- # files for pkg modifications below this line
- )
-options=(!strip)
-
-build() {
- cd "${srcdir}/"
- rm .{INSTALL,PKGINFO} || true
- # put actions for package modifications below this line
-
-}
-
-package() {
- find ${srcdir} -maxdepth 1 -type l -delete
- cp -a ${srcdir}/* ${pkgdir}
-}
-
-
-# vim:set ts=2 sw=2 et:
diff --git a/libre/atril-libre/PKGBUILD b/libre/atril-libre/PKGBUILD
index d4b98a231..a082a1bce 100644
--- a/libre/atril-libre/PKGBUILD
+++ b/libre/atril-libre/PKGBUILD
@@ -1,12 +1,12 @@
# $Id: PKGBUILD 106531 2014-03-05 20:16:04Z flexiondotorg $
-# Maintainer : Martin Wimpress <code@flexion.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Martin Wimpress <code@flexion.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=atril
pkgname=atril-libre
pkgver=1.8.0
-pkgrel=1
-pkgdesc="Simply a document viewer, with libarchive recommendation"
+pkgrel=1.1
+pkgdesc="Simply a document viewer, with libarchive support"
url="http://mate-desktop.org"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
@@ -26,13 +26,16 @@ provides=('mate-document-viewer' "$_pkgname=$pkgver")
conflicts=('mate-document-viewer' "$_pkgname")
options=('!emptydirs')
groups=('mate-extra')
-source=("http://pub.mate-desktop.org/releases/1.8/${_pkgname}-${pkgver}.tar.xz")
-sha1sums=('8327437ba12df61326b83342cea746d1764727d0')
+source=("http://pub.mate-desktop.org/releases/1.8/${_pkgname}-${pkgver}.tar.xz"
+ 'libarchive.patch')
+sha1sums=('8327437ba12df61326b83342cea746d1764727d0'
+ 'e88168d61b18ce8e340ef3db9c6df6bb66c65d14')
install=${_pkgname}.install
prepare() {
cd "${srcdir}/${_pkgname}-${pkgver}"
NOCONFIGURE=1 ./autogen.sh
+ patch -Np1 -i ../libarchive.patch
}
build() {
diff --git a/libre/atril-libre/libarchive.patch b/libre/atril-libre/libarchive.patch
new file mode 100644
index 000000000..f86908267
--- /dev/null
+++ b/libre/atril-libre/libarchive.patch
@@ -0,0 +1,91 @@
+diff --git a/backend/comics/comics-document.c b/backend/comics/comics-document.c
+index a135a74..380cb54 100644
+--- a/backend/comics/comics-document.c
++++ b/backend/comics/comics-document.c
+@@ -54,8 +54,7 @@
+
+ typedef enum
+ {
+- RARLABS,
+- GNAUNRAR,
++ LIBARCHIVE,
+ UNZIP,
+ P7ZIP,
+ TAR
+@@ -107,11 +106,8 @@ typedef struct {
+ } ComicBookDecompressCommand;
+
+ static const ComicBookDecompressCommand command_usage_def[] = {
+- /* RARLABS unrar */
+- {"%s p -c- -ierr --", "%s vb -c- -- %s", NULL , FALSE, NO_OFFSET},
+-
+- /* GNA! unrar */
+- {NULL , "%s t %s" , "%s -xf %s %s" , FALSE, NO_OFFSET},
++ /* libarchive */
++ {NULL , "%s tf %s" , "%s xf %s %s" , FALSE, NO_OFFSET},
+
+ /* unzip */
+ {"%s -p -C --" , "%s %s" , NULL , TRUE , OFFSET_ZIP},
+@@ -282,7 +278,7 @@ comics_generate_command_lines (ComicsDocument *comics_document,
+ if (comics_document->dir == NULL)
+ return FALSE;
+
+- /* unrar-free can't create directories, but ev_mkdtemp already created the dir */
++ /* libarchive can't create directories on rar support, but ev_mkdtemp already created the dir */
+
+ comics_document->decompress_tmp =
+ g_strdup_printf (command_usage_def[type].decompress_tmp,
+@@ -321,51 +317,10 @@ comics_check_decompress_command (gchar *mime_type,
+
+ if (!strcmp (mime_type, "application/x-cbr") ||
+ !strcmp (mime_type, "application/x-rar")) {
+- /* The RARLAB provides a no-charge proprietary (freeware)
+- * decompress-only client for Linux called unrar. Another
+- * option is a GPLv2-licensed command-line tool developed by
+- * the Gna! project. Confusingly enough, the free software RAR
+- * decoder is also named unrar. For this reason we need to add
+- * some lines for disambiguation. Sorry for the added the
+- * complexity but it's life :)
+- * Finally, some distributions, like Debian, rename this free
+- * option as unrar-free.
+- * */
+- comics_document->selected_command =
+- g_find_program_in_path ("unrar");
+- if (comics_document->selected_command) {
+- /* We only use std_err to avoid printing useless error
+- * messages on the terminal */
+- success =
+- g_spawn_command_line_sync (
+- comics_document->selected_command,
+- &std_out, &std_err,
+- &retval, &err);
+- if (!success) {
+- g_propagate_error (error, err);
+- g_error_free (err);
+- return FALSE;
+- /* I don't check retval status because RARLAB unrar
+- * doesn't have a way to return 0 without involving an
+- * operation with a file*/
+- } else if (WIFEXITED (retval)) {
+- if (g_strrstr (std_out,"freeware") != NULL)
+- /* The RARLAB freeware client */
+- comics_document->command_usage = RARLABS;
+- else
+- /* The Gna! free software client */
+- comics_document->command_usage = GNAUNRAR;
+-
+- g_free (std_out);
+- g_free (std_err);
+- return TRUE;
+- }
+- }
+- /* The Gna! free software client with Debian naming convention */
+ comics_document->selected_command =
+- g_find_program_in_path ("unrar-free");
++ g_find_program_in_path ("bsdtar");
+ if (comics_document->selected_command) {
+- comics_document->command_usage = GNAUNRAR;
++ comics_document->command_usage = LIBARCHIVE;
+ return TRUE;
+ }
+
diff --git a/libre/audacious-plugins-libre/PKGBUILD b/libre/audacious-plugins-libre/PKGBUILD
index 8c631469b..0760361a1 100644
--- a/libre/audacious-plugins-libre/PKGBUILD
+++ b/libre/audacious-plugins-libre/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 204037 2014-01-14 11:53:55Z jgc $
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
-# Contributor: Alexander Fehr <pizzapunk gmail com>
-# Contributor: William Rea <sillywilly@gmail.com>
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
-# Maintainer (Parabola): Brendan Tildesley
-# Contributor (Parabola): Jorge Lopez <jorginho@lavabit.com>
+# $Id: PKGBUILD 211911 2014-04-29 17:16:51Z bisson $
+# Maintainer (Arch): Gaetan Bisson <bisson@archlinux.org>
+# Contributor (Arch): Alexander Fehr <pizzapunk gmail com>
+# Contributor (Arch): William Rea <sillywilly@gmail.com>
+# Maintainer (Arch): Gaetan Bisson <bisson@archlinux.org>
+# Maintainer: Brendan Tildesley
+# Contributor: Jorge Lopez <jorginho@parabola.nu>
_pkgname=audacious-plugins
pkgname=audacious-plugins-libre
-pkgver=3.4.3
-pkgrel=2.1
+pkgver=3.5
+pkgrel=2
pkgdesc='Plugins for Audacious, without nonfree plugins'
url='http://audacious-media-player.org/'
license=('GPL' 'GPL3' 'LGPL' 'custom:BSD')
@@ -24,15 +24,15 @@ arch=('i686' 'x86_64' 'mips64el')
#
# All the other custom licensed plugins I think are mostly modified BSD or ISC.
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
makedepends=("audacious>=${pkgver}"
'glib2' 'python2' # for gdbus-codegen
'alsa-lib' 'pulseaudio' 'jack2' 'lame' 'libvorbis' 'flac'
'mpg123' 'faad2' 'ffmpeg' 'libmodplug' 'fluidsynth' 'libcdio-paranoia' 'libsidplayfp' 'wavpack'
- 'libnotify' 'lirc-utils' 'curl' 'libmtp'
+ 'dbus-glib' 'libnotify' 'lirc-utils' 'curl' 'libmtp'
'neon' 'libmms' 'libcue')
optdepends=('alsa-lib: Advanced Linux Sound Arch. output'
@@ -51,6 +51,7 @@ optdepends=('alsa-lib: Advanced Linux Sound Arch. output'
'libsidplayfp: Commodore 64 audio input'
'wavpack: WavPack input'
+ 'dbus-glib: Gnome Shortcuts Plugin'
'libnotify: libnotify OSD'
'lirc-utils: LIRC'
'curl: AudioScrobbler Client'
@@ -61,7 +62,7 @@ optdepends=('alsa-lib: Advanced Linux Sound Arch. output'
'libcue: CUE playlist format')
source=("http://distfiles.audacious-media-player.org/${_pkgname}-${pkgver}.tar.bz2")
-sha1sums=('bcccd4304692a62d1b7963322f64059a0fb9532a')
+sha1sums=('b4fe19010eecb0a62c24fe31a2d84e2954c40c8a')
prepare() {
cd "${srcdir}/${_pkgname}-${pkgver}"
diff --git a/libre/audex-libre/PKGBUILD b/libre/audex-libre/PKGBUILD
index 890df887f..df50539b9 100644
--- a/libre/audex-libre/PKGBUILD
+++ b/libre/audex-libre/PKGBUILD
@@ -1,9 +1,9 @@
# $Id: PKGBUILD 106445 2014-03-03 14:51:50Z lcarlier $
-# Maintainer: Laurent Carlier <lordheavym@gmail.com>
-# Contributor: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: mightyjaym <jmambrosino@gmail.com>
-# Contributor: moostik <mooostik_at_gmail.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Laurent Carlier <lordheavym@gmail.com>
+# Contributor (Arch): Andrea Scarpino <andrea@archlinux.org>
+# Contributor (Arch): mightyjaym <jmambrosino@gmail.com>
+# Contributor (Arch): moostik <mooostik_at_gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=audex
pkgname=audex-libre
@@ -13,9 +13,9 @@ pkgdesc="A CDDA extraction tool with a ftp upload function for KDE, without nonf
arch=('i686' 'x86_64')
url="http://kde-apps.org/content/show.php?content=77125"
license=('GPL')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
depends=('kdebase-runtime' 'libkcddb' 'libkcompactdisc' 'cdparanoia')
makedepends=('cmake' 'automoc4')
optdepends=('vorbis-tools: OGG encoder'
diff --git a/libre/audio-convert-libre/PKGBUILD b/libre/audio-convert-libre/PKGBUILD
index 0824a036c..d6807b701 100644
--- a/libre/audio-convert-libre/PKGBUILD
+++ b/libre/audio-convert-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 91081 2013-05-18 21:26:27Z jlichtblau $
-# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
-# Contributor: Igor Galic <i.galic@gmail.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor (Arch): Igor Galic <i.galic@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=audio-convert
pkgname=audio-convert-libre
@@ -19,9 +19,9 @@ optdepends=('faad2: for aac support'
'mplayer: for wma support'
'musepack-tools: for mpc support'
'vorbis-tools: for ogg support')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
source=(http://savannah.nongnu.org/download/$_pkgname/$_pkgname-$pkgver.tar.bz2)
sha256sums=('7b37d5fc2a4dd62885910b6424f5ff6870c329ed4f4f51feeeb952152c7d9d2b')
diff --git a/libre/avidemux-libre/PKGBUILD b/libre/avidemux-libre/PKGBUILD
index 797135fd3..f4c612093 100644
--- a/libre/avidemux-libre/PKGBUILD
+++ b/libre/avidemux-libre/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 208659 2014-03-24 20:18:17Z eric $
-# Maintainer: Eric Bélanger <eric@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Eric Bélanger <eric@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgbase=avidemux
pkgbase=avidemux-libre
diff --git a/libre/avidemux-libre/PKGBUILD.WIP b/libre/avidemux-libre/PKGBUILD.WIP
index e08bbc795..2929c4e22 100644
--- a/libre/avidemux-libre/PKGBUILD.WIP
+++ b/libre/avidemux-libre/PKGBUILD.WIP
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 160693 2012-06-03 22:00:17Z eric $
-# Maintainer: Eric Bélanger <eric@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Eric Bélanger <eric@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgbase=avidemux
pkgbase=avidemux-libre
diff --git a/libre/bbswitch-libre/PKGBUILD b/libre/bbswitch-libre/PKGBUILD
index 0f5642581..e054cb2c7 100644
--- a/libre/bbswitch-libre/PKGBUILD
+++ b/libre/bbswitch-libre/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 108708 2014-04-01 22:26:43Z thomas $
-# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
-# Contributor: M0Rf30
-# Contributor: Samsagax <samsagax@gmail.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor (Arch): M0Rf30
+# Contributor (Arch): Samsagax <samsagax@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=bbswitch
pkgname=bbswitch-libre
@@ -15,9 +15,9 @@ url=("http://github.com/Bumblebee-Project/bbswitch")
license=('GPL')
depends=('linux-libre>=3.14' 'linux-libre<3.15')
makedepends=('linux-libre-headers>=3.14' 'linux-libre-headers<3.15')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
install=bbswitch.install
source=("https://github.com/Bumblebee-Project/bbswitch/archive/v${pkgver}.tar.gz")
md5sums=('5b116b31ace3604ddf9d1fc1f4bc5807')
diff --git a/libre/bfgminer-libre/PKGBUILD b/libre/bfgminer-libre/PKGBUILD
index 01f21dc28..e29ba491e 100644
--- a/libre/bfgminer-libre/PKGBUILD
+++ b/libre/bfgminer-libre/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 106211 2014-02-25 15:02:06Z bpiotrowski $
-# Maintainer: Timothy Redaelli <timothy.redaelli@gmail.com>
-# Contributor: Andy Weidenbaum <archbaum@gmail.com>
+# Maintainer (Arch): Timothy Redaelli <timothy.redaelli@gmail.com>
+# Contributor (Arch): Andy Weidenbaum <archbaum@gmail.com>
_pkgname=bfgminer
pkgname=bfgminer-libre
@@ -10,9 +10,9 @@ pkgdesc="Bitcoin miner featuring overclocking, monitoring, fan speed control and
arch=('i686' 'x86_64' 'mips64el')
depends=('curl' 'jansson' 'libevent' 'libmicrohttpd' 'libusbx' 'lm_sensors')
makedepends=('uthash' 'yasm')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
url='https://bitcointalk.org/index.php?topic=168174.0'
license=('GPL3')
source=(http://luke.dashjr.org/programs/bitcoin/files/$_pkgname/$pkgver/$_pkgname-$pkgver.tbz2
diff --git a/libre/bitlbee-libre/PKGBUILD b/libre/bitlbee-libre/PKGBUILD
index 575fc6979..0a5e6d5f8 100644
--- a/libre/bitlbee-libre/PKGBUILD
+++ b/libre/bitlbee-libre/PKGBUILD
@@ -1,12 +1,12 @@
# $Id: PKGBUILD 202378 2013-12-21 14:01:44Z andyrtr $
-# Contributor: FUBAR <mrfubar@gmail.com>
-# Contributor: simo <simo@archlinux.org>
-# Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org>
-# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
-# Contributor: Gaetan Bisson <bisson@archlinux.org>
-# Maintainer: Dave Reisner <dreisner@archlinux.org>
-# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
+# Contributor (Arch): FUBAR <mrfubar@gmail.com>
+# Contributor (Arch): simo <simo@archlinux.org>
+# Contributor (Arch): Jeff 'codemac' Mickey <jeff@archlinux.org>
+# Contributor (Arch): Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor (Arch): Gaetan Bisson <bisson@archlinux.org>
+# Maintainer (Arch): Dave Reisner <dreisner@archlinux.org>
+# Maintainer: Márcio Silva <coadde@parabola.nu>
_pkgname=bitlbee
pkgname=bitlbee-libre
@@ -20,9 +20,9 @@ depends=('gnutls' 'glib2')
makedepends=('asciidoc' 'libotr3')
optdepends=('libotr3: for OTR encryption support'
'xinetd: to run bitlbee through xinetd')
-provides=$_pkgname=$pkgver
-conflicts=$_pkgname
-replaces=$_pkgname
+provides=($_pkgname=$pkgver)
+conflicts=($_pkgname)
+replaces=($_pkgname)
source=("http://get.bitlbee.org/src/${_pkgname}-${pkgver}.tar.gz"
'xinetd'
'bitlbee.tmpfiles')
diff --git a/libre/blackbox-libre/PKGBUILD b/libre/blackbox-libre/PKGBUILD
index ecf2fec48..2ab972baf 100644
--- a/libre/blackbox-libre/PKGBUILD
+++ b/libre/blackbox-libre/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 100133 2013-11-01 20:20:45Z spupykin $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: durbatuluk <dvdscripter@gmail.org>
-# Contributor: Steve Ponsford <sp4d@lavabit.com>
-# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor (Arch): durbatuluk <dvdscripter@gmail.org>
+# Contributor (Arch): Steve Ponsford <sp4d@lavabit.com>
+# Maintainer: Márcio Silva <coadde@parabola.nu>
_pkgname=blackbox
pkgname=${_pkgname}-libre
@@ -12,9 +12,9 @@ pkgdesc="A window manager for X11, without nonfree programs on the menu"
url="http://blackboxwm.sourceforge.net/"
arch=('i686' 'x86_64')
depends=('gcc-libs' 'libxft' 'libxext' 'libx11' 'libxt')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
license=('MIT')
source=(http://downloads.sourceforge.net/blackboxwm/$_pkgname-$pkgver.tar.gz
gcc4.3.patch
diff --git a/libre/blender-addon-luxrender/PKGBUILD b/libre/blender-addon-luxrender/PKGBUILD
index 5b409413b..3da3a5e4e 100644
--- a/libre/blender-addon-luxrender/PKGBUILD
+++ b/libre/blender-addon-luxrender/PKGBUILD
@@ -21,8 +21,8 @@ depends=(
"$_bldname-libre<$(($_bldep+1)):${_bldver::2}$((${_bldver:2:4}+1))"
)
provides=($_pkgname=$_pkgver)
-conflicts=$_pkgname
-replaces=$_pkgname
+conflicts=($_pkgname)
+replaces=($_pkgname)
source=http://src.$_srcname.net/$_pkgname/archive/$_srcver.tar.bz2
sha512sums=7bfd64abde07d9ad90d5e80a95f6fe5478ff65a8ff6965bd3a6c9671907a9a940affa5fb1a593884dc9eb6a5c967eaa1386a3225edc9cbbbb4c20c5d26198aa1
diff --git a/libre/blender-libre/PKGBUILD b/libre/blender-libre/PKGBUILD
index 815aa8a4d..9345b076a 100644
--- a/libre/blender-libre/PKGBUILD
+++ b/libre/blender-libre/PKGBUILD
@@ -3,7 +3,7 @@
_pkgname=blender
epoch=12
_pkgver=2.70a
-pkgrel=1
+pkgrel=2
_jpgver=1.5
_pyver=3.4
@@ -21,7 +21,9 @@ arch=(
x86_64
i686
)
-license=GPL
+license=(
+ GPL
+)
url=http://www.$_pkgname.org
depends=(
boost-libs
@@ -78,12 +80,16 @@ makedepends=(
[[ $_spn == true ]] && provides+=("$_pkgname-libre=$epoch:$pkgver" $_pkgname$_spnname-libre)
[[ $_spn != true ]] && conflicts=($_pkgname)
[[ $_spn == true ]] && conflicts+=($_pkgname-libre $_pkgname$_spnname-libre)
-[[ $_spn != true ]] && replaces=$_pkgname
-[[ $_spn == true ]] && replaces=$_pkgname$_spnname-libre
+[[ $_spn != true ]] && replaces=($_pkgname)
+[[ $_spn == true ]] && replaces=($_pkgname$_spnname-libre)
options=(!strip)
install=$_pkgname.install
-source=http://download.$_pkgname.org/source/$_pkgname-$pkgver.tar.gz
-sha512sums=777938abf30a336bab83a7418461d8d435cc3dc1421aeddc36657d5b8bae1742a38ee468020cee04f4089b646bff1c3715ad9ceb987d649eb3d015047f1869d7
+source=(
+ http://download.$_pkgname.org/source/$_pkgname-$pkgver.tar.gz
+)
+sha512sums=(
+ 777938abf30a336bab83a7418461d8d435cc3dc1421aeddc36657d5b8bae1742a38ee468020cee04f4089b646bff1c3715ad9ceb987d649eb3d015047f1869d7
+)
prepare() {
cd $srcdir/$_pkgname-v$pkgver
diff --git a/libre/bogofilter-libre/PKGBUILD b/libre/bogofilter-libre/PKGBUILD
index 357e49752..086cc1cd7 100644
--- a/libre/bogofilter-libre/PKGBUILD
+++ b/libre/bogofilter-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 196818 2013-10-20 08:27:26Z andyrtr $
-# Maintainer: AndyRTR <andyrtr@archlinux.org>
-# Contributor: tobias <tobias@archlinux.org>
-# Contributor: Low Kian Seong <fastmail_low@speedymail.org>
+# Maintainer (Arch): AndyRTR <andyrtr@archlinux.org>
+# Contributor (Arch): tobias <tobias@archlinux.org>
+# Contributor (Arch): Low Kian Seong <fastmail_low@speedymail.org>
_pkgname=bogofilter
pkgname=bogofilter-libre
diff --git a/libre/bumblebee-libre/PKGBUILD b/libre/bumblebee-libre/PKGBUILD
index 4bebcc704..70158aac1 100644
--- a/libre/bumblebee-libre/PKGBUILD
+++ b/libre/bumblebee-libre/PKGBUILD
@@ -1,5 +1,5 @@
-# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Sven-Hendrik Haase <sh@lutzhaase.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=bumblebee
pkgname=bumblebee-libre
diff --git a/libre/cacert-dot-org/PKGBUILD b/libre/cacert-dot-org/PKGBUILD
index 421b46942..c55ddf9a4 100644
--- a/libre/cacert-dot-org/PKGBUILD
+++ b/libre/cacert-dot-org/PKGBUILD
@@ -1,5 +1,5 @@
-# Maintainer: Prurigro
-# Contributor: Neal <neal.oakey-at-oakey-dev.de>
+# Maintainer (Arch): Prurigro
+# Contributor (Arch): Neal <neal.oakey-at-oakey-dev.de>
pkgname=cacert-dot-org
pkgver=20140223
diff --git a/libre/calibre-libre/PKGBUILD b/libre/calibre-libre/PKGBUILD
index 57adf177c..75fc57164 100644
--- a/libre/calibre-libre/PKGBUILD
+++ b/libre/calibre-libre/PKGBUILD
@@ -1,16 +1,16 @@
-# $Id: PKGBUILD 109846 2014-04-19 07:55:26Z jelle $
-# Maintainer: jelle van der Waa <jelle@vdwaa.nl>
-# Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com>
-# Contributor: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: Petrov Roman <nwhisper@gmail.com>
-# Contributor: Andrea Fagiani <andfagiani _at_ gmail dot com>
-# Contributor: Larry Hajali <larryhaja@gmail.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# $Id: PKGBUILD 111362 2014-05-17 12:56:09Z jelle $
+# Maintainer (Arch): Jelle van der Waa <jelle@vdwaa.nl>
+# Maintainer (Arch): Daniel Wallace <danielwallace at gtmanfred dot com>
+# Contributor (Arch): Giovanni Scafora <giovanni@archlinux.org>
+# Contributor (Arch): Petrov Roman <nwhisper@gmail.com>
+# Contributor (Arch): Andrea Fagiani <andfagiani _at_ gmail dot com>
+# Contributor (Arch): Larry Hajali <larryhaja@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=calibre
pkgname=calibre-libre
-pkgver=1.33.0
-pkgrel=2
+pkgver=1.37.0
+pkgrel=1
pkgdesc="Ebook management application, without nonfree libunrar support"
arch=('i686' 'x86_64' 'mips64el')
url="http://calibre-ebook.com/"
@@ -23,19 +23,37 @@ depends=('python2-six' 'python2-dateutil' 'python2-cssutils' 'python2-cherrypy'
'python2-netifaces' 'python2-cssselect' 'python2-apsw')
makedepends=('python2-pycountry' 'qt4-private-headers')
optdepends=('ipython2: to use calibre-debug')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
install=calibre.install
-source=("http://download.calibre-ebook.com/${pkgver}/calibre-${pkgver}.tar.xz"
+mksource=("http://download.calibre-ebook.com/${pkgver}/calibre-${pkgver}.tar.xz")
+source=("https://repo.parabolagnulinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz"
'desktop_integration.patch'
- 'calibre-mount-helper')
-md5sums=('df51094fe6d5f2e1f10bc070b3d65a68'
+ 'calibre-mount-helper'
+ 'libre.patch')
+mkmd5sums=('e57c708292694b315eff36a8eca6140b')
+md5sums=('3e7250c608d2544c78e10abf8f62669a'
'ece36dfd737fa4a346f0a0e59395e949'
- '675cd87d41342119827ef706055491e7')
+ '675cd87d41342119827ef706055491e7'
+ '64b6798f526165146084e447cc3d9e1a')
+
+mksource(){
+ cd "${srcdir}/${_pkgname}"
+
+ # Remove nonfree unRAR utility files from the source
+ rm -rv src/unrar
+}
prepare(){
cd "${srcdir}/${_pkgname}"
+
+ # Remove nonfree libunrar/cbr support and references
+ rm -v src/calibre/{ebooks/metadata/rar.py,utils/unrar.{cpp,py}}
+ rm -v resources/images/mimetypes/{cbr,rar}.png
+ rm -v imgsrc/mimetypes/rar.svg
+ patch -Np1 -i "${srcdir}/libre.patch"
+
#rm -rf src/{cherrypy,pyPdf}
rm -rf src/cherrypy
rm -rf resources/${pkgname}-portable.*
diff --git a/libre/calibre-libre/libre.patch b/libre/calibre-libre/libre.patch
new file mode 100644
index 000000000..cff783d15
--- /dev/null
+++ b/libre/calibre-libre/libre.patch
@@ -0,0 +1,761 @@
+diff --git a/resources/images.qrc b/resources/images.qrc
+index 4daf069..f7569d1 100644
+--- a/resources/images.qrc
++++ b/resources/images.qrc
+@@ -159,7 +159,6 @@
+ <file>images/textures/grey_wash_wall.png</file>
+ <file>images/mimetypes/djvu.png</file>
+ <file>images/mimetypes/rtf.png</file>
+-<file>images/mimetypes/cbr.png</file>
+ <file>images/mimetypes/lrf.png</file>
+ <file>images/mimetypes/jpeg.png</file>
+ <file>images/mimetypes/pdf.png</file>
+@@ -181,7 +180,6 @@
+ <file>images/mimetypes/txt.png</file>
+ <file>images/mimetypes/snb.png</file>
+ <file>images/mimetypes/odt.png</file>
+-<file>images/mimetypes/rar.png</file>
+ <file>images/mimetypes/azw2.png</file>
+ <file>images/mimetypes/zip.png</file>
+ <file>images/mimetypes/dir.png</file>
+@@ -212,4 +210,4 @@
+ <file>images/devices/tablet.png</file>
+ <file>images/devices/folder.png</file>
+ </qresource>
+-</RCC>
+\ No newline at end of file
++</RCC>
+diff --git a/resources/mime.types b/resources/mime.types
+index b7c33e9..055ea61 100644
+--- a/resources/mime.types
++++ b/resources/mime.types
+@@ -137,7 +137,6 @@ application/prs.cww cww
+ application/prs.nprend
+ application/prs.plucker
+ application/qsig
+-application/rar rar
+ application/rdf+xml rdf
+ application/reginfo+xml rif
+ application/relax-ng-compact-syntax rnc
+@@ -849,7 +848,6 @@ application/x-pkcs7-certreqresp p7r
+ application/x-pkcs7-crl crl
+ application/x-python-code pyc pyo
+ application/x-quicktimeplayer qtl
+-application/x-rar-compressed rar
+ application/x-redhat-package-manager rpm
+ application/x-sh sh
+ application/x-shar shar
+@@ -1372,7 +1370,6 @@ application/x-mobipocket-subscription pobi
+ application/x-kindle-application azw2
+ application/x-mobi8-ebook azw3
+ application/x-cbz cbz
+-application/x-cbr cbr
+ application/x-cb7 cb7
+ application/x-koboreader-ebook kobo
+ image/wmf wmf
+diff --git a/session.vim b/session.vim
+index 67502c2..b7f24d3 100644
+--- a/session.vim
++++ b/session.vim
+@@ -11,7 +11,6 @@ let g:syntastic_cpp_include_dirs = [
+ \'/usr/include/freetype2',
+ \'/usr/include/fontconfig',
+ \'src/qtcurve/common', 'src/qtcurve',
+- \'src/unrar',
+ \'src/qt-harfbuzz/src',
+ \'/usr/include/ImageMagick',
+ \]
+diff --git a/setup/extensions.py b/setup/extensions.py
+index b9d92f6..2ac13a9 100644
+--- a/setup/extensions.py
++++ b/setup/extensions.py
+@@ -224,24 +224,6 @@ extensions = [
+ sip_files=['calibre/ebooks/pdf/render/qt_hack.sip']
+ ),
+
+- Extension('unrar',
+- ['unrar/%s.cpp'%(x.partition('.')[0]) for x in '''
+- rar.o strlist.o strfn.o pathfn.o savepos.o smallfn.o global.o file.o
+- filefn.o filcreat.o archive.o arcread.o unicode.o system.o
+- isnt.o crypt.o crc.o rawread.o encname.o resource.o match.o
+- timefn.o rdwrfn.o consio.o options.o ulinks.o errhnd.o rarvm.o
+- secpassword.o rijndael.o getbits.o sha1.o extinfo.o extract.o
+- volume.o list.o find.o unpack.o cmddata.o filestr.o scantree.o
+- '''.split()] + ['calibre/utils/unrar.cpp'],
+- inc_dirs=['unrar'],
+- cflags=[('/' if iswindows else '-') + x for x in (
+- 'DSILENT', 'DRARDLL', 'DUNRAR')] + (
+- [] if iswindows else ['-D_FILE_OFFSET_BITS=64',
+- '-D_LARGEFILE_SOURCE']),
+- optimize_level=2,
+- libraries=['User32', 'Advapi32', 'kernel32', 'Shell32'] if iswindows else []
+- ),
+-
+ ]
+
+
+diff --git a/setup/installer/windows/freeze.py b/setup/installer/windows/freeze.py
+index 08aa91f..7ee523b 100644
+--- a/setup/installer/windows/freeze.py
++++ b/setup/installer/windows/freeze.py
+@@ -635,7 +635,7 @@ class Win32Freeze(Command, WixMixIn):
+ # Because of https://github.com/fancycode/MemoryModule/issues/4
+ # any extensions that use C++ exceptions must be loaded
+ # from files
+- 'unrar.pyd', 'wpd.pyd', 'podofo.pyd',
++ 'wpd.pyd', 'podofo.pyd',
+ 'progress_indicator.pyd', 'hunspell.pyd',
+ # As per this https://bugs.launchpad.net/bugs/1087816
+ # on some systems magick.pyd fails to load from memory
+diff --git a/setup/resources.py b/setup/resources.py
+index 1bcc288..7d6c72f 100644
+--- a/setup/resources.py
++++ b/setup/resources.py
+@@ -282,7 +282,7 @@ class Resources(Command): # {{{
+ log = Log()
+ #log.outputs = []
+ for inf in supported_input_formats():
+- if inf in ('zip', 'rar', 'oebzip'):
++ if inf in ('zip', 'oebzip'):
+ continue
+ for ouf in available_output_formats():
+ of = ouf if ouf == 'oeb' else 'dummy.'+ouf
+diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py
+index fcb627c..3289865 100644
+--- a/src/calibre/__init__.py
++++ b/src/calibre/__init__.py
+@@ -271,10 +271,7 @@ def extract(path, dir):
+ # First use the file header to identify its type
+ with open(path, 'rb') as f:
+ id_ = f.read(3)
+- if id_ == b'Rar':
+- from calibre.utils.unrar import extract as rarextract
+- extractor = rarextract
+- elif id_.startswith(b'PK'):
++ if id_.startswith(b'PK'):
+ from calibre.libunzip import extract as zipextract
+ extractor = zipextract
+ if extractor is None:
+@@ -283,9 +280,6 @@ def extract(path, dir):
+ if ext in ['zip', 'cbz', 'epub', 'oebzip']:
+ from calibre.libunzip import extract as zipextract
+ extractor = zipextract
+- elif ext in ['cbr', 'rar']:
+- from calibre.utils.unrar import extract as rarextract
+- extractor = rarextract
+ if extractor is None:
+ raise Exception('Unknown archive type')
+ extractor(path, dir)
+diff --git a/src/calibre/constants.py b/src/calibre/constants.py
+index a250521..5d891b8 100644
+--- a/src/calibre/constants.py
++++ b/src/calibre/constants.py
+@@ -137,7 +137,6 @@ class Plugins(collections.Mapping):
+ 'speedup',
+ 'freetype',
+ 'woff',
+- 'unrar',
+ 'qt_hack',
+ '_regex',
+ 'hunspell',
+diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py
+index a74951c..a91abb6 100644
+--- a/src/calibre/customize/builtins.py
++++ b/src/calibre/customize/builtins.py
+@@ -127,7 +127,7 @@ plugins += [HTML2ZIP, PML2PMLZ, TXT2TXTZ, ArchiveExtract,]
+ class ComicMetadataReader(MetadataReaderPlugin):
+
+ name = 'Read comic metadata'
+- file_types = set(['cbr', 'cbz'])
++ file_types = set(['cbz'])
+ description = _('Extract cover from comic files')
+
+ def customization_help(self, gui=False):
+@@ -138,14 +138,8 @@ class ComicMetadataReader(MetadataReaderPlugin):
+ pos = stream.tell()
+ id_ = stream.read(3)
+ stream.seek(pos)
+- if id_ == b'Rar':
+- ftype = 'cbr'
+- elif id_.startswith(b'PK'):
++ if id_.startswith(b'PK'):
+ ftype = 'cbz'
+- if ftype == 'cbr':
+- from calibre.utils.unrar import extract_first_alphabetically as extract_first
+- extract_first
+- else:
+ from calibre.libunzip import extract_member
+ extract_first = functools.partial(extract_member,
+ sort_alphabetically=True)
+@@ -153,7 +147,7 @@ class ComicMetadataReader(MetadataReaderPlugin):
+ ret = extract_first(stream)
+ mi = MetaInformation(None, None)
+ stream.seek(0)
+- if ftype in {'cbr', 'cbz'}:
++ if ftype in {'cbz'}:
+ series_index = self.site_customization
+ if series_index not in {'volume', 'issue'}:
+ series_index = 'volume'
+@@ -336,16 +330,6 @@ class PMLMetadataReader(MetadataReaderPlugin):
+ from calibre.ebooks.metadata.pml import get_metadata
+ return get_metadata(stream)
+
+-class RARMetadataReader(MetadataReaderPlugin):
+-
+- name = 'Read RAR metadata'
+- file_types = set(['rar'])
+- description = _('Read metadata from ebooks in RAR archives')
+-
+- def get_metadata(self, stream, ftype):
+- from calibre.ebooks.metadata.rar import get_metadata
+- return get_metadata(stream)
+-
+ class RBMetadataReader(MetadataReaderPlugin):
+
+ name = 'Read RB metadata'
+diff --git a/src/calibre/customize/ui.py b/src/calibre/customize/ui.py
+index 2e1cc23..c9a3701 100644
+--- a/src/calibre/customize/ui.py
++++ b/src/calibre/customize/ui.py
+@@ -436,7 +436,7 @@ def available_input_formats():
+ if not is_disabled(plugin):
+ for format in plugin.file_types:
+ formats.add(format)
+- formats.add('zip'), formats.add('rar')
++ formats.add('zip')
+ return formats
+
+
+diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py
+index aca5e86..1c2064f 100644
+--- a/src/calibre/devices/kobo/driver.py
++++ b/src/calibre/devices/kobo/driver.py
+@@ -77,7 +77,7 @@ class KOBO(USBMS):
+ book_class = Book
+
+ # Ordered list of supported formats
+- FORMATS = ['kepub', 'epub', 'pdf', 'txt', 'cbz', 'cbr']
++ FORMATS = ['kepub', 'epub', 'pdf', 'txt', 'cbz']
+ CAN_SET_METADATA = ['collections']
+
+ VENDOR_ID = [0x2237]
+diff --git a/src/calibre/devices/mtp/filesystem_cache.py b/src/calibre/devices/mtp/filesystem_cache.py
+index 3acb026..f3626ab 100644
+--- a/src/calibre/devices/mtp/filesystem_cache.py
++++ b/src/calibre/devices/mtp/filesystem_cache.py
+@@ -18,7 +18,7 @@ from calibre.utils.date import local_tz, as_utc
+ from calibre.utils.icu import sort_key, lower
+ from calibre.ebooks import BOOK_EXTENSIONS
+
+-bexts = frozenset(BOOK_EXTENSIONS) - {'mbp', 'tan', 'rar', 'zip', 'xml'}
++bexts = frozenset(BOOK_EXTENSIONS) - {'mbp', 'tan', 'zip', 'xml'}
+
+ class FileOrFolder(object):
+
+diff --git a/src/calibre/ebooks/__init__.py b/src/calibre/ebooks/__init__.py
+index 3d01f84..8818bcb 100644
+--- a/src/calibre/ebooks/__init__.py
++++ b/src/calibre/ebooks/__init__.py
+@@ -26,9 +26,9 @@ class DRMError(ValueError):
+ class ParserError(ValueError):
+ pass
+
+-BOOK_EXTENSIONS = ['lrf', 'rar', 'zip', 'rtf', 'lit', 'txt', 'txtz', 'text', 'htm', 'xhtm',
++BOOK_EXTENSIONS = ['lrf', 'zip', 'rtf', 'lit', 'txt', 'txtz', 'text', 'htm', 'xhtm',
+ 'html', 'htmlz', 'xhtml', 'pdf', 'pdb', 'updb', 'pdr', 'prc', 'mobi', 'azw', 'doc',
+- 'epub', 'fb2', 'djv', 'djvu', 'lrx', 'cbr', 'cbz', 'cbc', 'oebzip',
++ 'epub', 'fb2', 'djv', 'djvu', 'lrx', 'cbz', 'cbc', 'oebzip',
+ 'rb', 'imp', 'odt', 'chm', 'tpz', 'azw1', 'pml', 'pmlz', 'mbp', 'tan', 'snb',
+ 'xps', 'oxps', 'azw4', 'book', 'zbf', 'pobi', 'docx', 'docm', 'md',
+ 'textile', 'markdown', 'ibook', 'iba', 'azw3', 'ps']
+diff --git a/src/calibre/ebooks/conversion/plugins/comic_input.py b/src/calibre/ebooks/conversion/plugins/comic_input.py
+index e66ca49..3caa2db 100644
+--- a/src/calibre/ebooks/conversion/plugins/comic_input.py
++++ b/src/calibre/ebooks/conversion/plugins/comic_input.py
+@@ -17,8 +17,8 @@ class ComicInput(InputFormatPlugin):
+
+ name = 'Comic Input'
+ author = 'Kovid Goyal'
+- description = 'Optimize comic files (.cbz, .cbr, .cbc) for viewing on portable devices'
+- file_types = set(['cbz', 'cbr', 'cbc'])
++ description = 'Optimize comic files (.cbz, .cbc) for viewing on portable devices'
++ file_types = set(['cbz', 'cbc'])
+ is_image_collection = True
+ core_usage = -1
+
+diff --git a/src/calibre/ebooks/conversion/plumber.py b/src/calibre/ebooks/conversion/plumber.py
+index cb49801..689c5aa 100644
+--- a/src/calibre/ebooks/conversion/plumber.py
++++ b/src/calibre/ebooks/conversion/plumber.py
+@@ -42,7 +42,7 @@ various stages of conversion. The stages are:
+
+ def supported_input_formats():
+ fmts = available_input_formats()
+- for x in ('zip', 'rar', 'oebzip'):
++ for x in ('zip', 'oebzip'):
+ fmts.add(x)
+ return fmts
+
+@@ -60,7 +60,7 @@ class CompositeProgressReporter(object):
+ (self.global_max - self.global_min)
+ self.global_reporter(global_frac, msg)
+
+-ARCHIVE_FMTS = ('zip', 'rar', 'oebzip')
++ARCHIVE_FMTS = ('zip', 'oebzip')
+
+ class Plumber(object):
+ '''
+diff --git a/src/calibre/ebooks/metadata/archive.py b/src/calibre/ebooks/metadata/archive.py
+index 7b8ecd2..f5c31ac 100644
+--- a/src/calibre/ebooks/metadata/archive.py
++++ b/src/calibre/ebooks/metadata/archive.py
+@@ -27,8 +27,6 @@ def archive_type(stream):
+ ans = None
+ if id_ == stringFileHeader:
+ ans = 'zip'
+- elif id_.startswith('Rar'):
+- ans = 'rar'
+ try:
+ stream.seek(pos)
+ except:
+@@ -40,29 +38,20 @@ class ArchiveExtract(FileTypePlugin):
+ name = 'Archive Extract'
+ author = 'Kovid Goyal'
+ description = _('Extract common e-book formats from archives '
+- '(zip/rar) files. Also try to autodetect if they are actually '
+- 'cbz/cbr files.')
+- file_types = set(['zip', 'rar'])
++ 'zip files. Also try to autodetect if they are actually '
++ 'cbz files.')
++ file_types = set(['zip'])
+ supported_platforms = ['windows', 'osx', 'linux']
+ on_import = True
+
+ def run(self, archive):
+ from calibre.utils.zipfile import ZipFile
+- is_rar = archive.lower().endswith('.rar')
+- if is_rar:
+- from calibre.utils.unrar import extract_member, names
+- else:
+- zf = ZipFile(archive, 'r')
+-
+- if is_rar:
+- with open(archive, 'rb') as rf:
+- fnames = list(names(rf))
+- else:
+- fnames = zf.namelist()
++ zf = ZipFile(archive, 'r')
++ fnames = zf.namelist()
+
+ fnames = [x for x in fnames if '.' in x and x.lower().rpartition('/')[-1] != 'thumbs.db']
+ if is_comic(fnames):
+- ext = '.cbr' if is_rar else '.cbz'
++ ext = '.cbz'
+ of = self.temporary_file('_archive_extract'+ext)
+ with open(archive, 'rb') as f:
+ of.write(f.read())
+@@ -78,12 +67,7 @@ class ArchiveExtract(FileTypePlugin):
+
+ of = self.temporary_file('_archive_extract.'+ext)
+ with closing(of):
+- if is_rar:
+- with open(archive, 'rb') as f:
+- data = extract_member(f, match=None, name=fname)[1]
+- of.write(data)
+- else:
+- of.write(zf.read(fname))
++ of.write(zf.read(fname))
+ return of.name
+
+ def get_comic_book_info(d, mi, series_index='volume'):
+@@ -141,10 +125,6 @@ def get_comic_metadata(stream, stream_type, series_index='volume'):
+ from calibre.utils.zipfile import ZipFile
+ zf = ZipFile(stream)
+ comment = zf.comment
+- elif stream_type == 'cbr':
+- from calibre.utils.unrar import RARFile
+- f = RARFile(stream, get_comment=True)
+- comment = f.comment
+
+ if comment:
+ import json
+diff --git a/src/calibre/ebooks/oeb/iterator/book.py b/src/calibre/ebooks/oeb/iterator/book.py
+index 8868e7c..4662f67 100644
+--- a/src/calibre/ebooks/oeb/iterator/book.py
++++ b/src/calibre/ebooks/oeb/iterator/book.py
+@@ -127,7 +127,7 @@ class EbookIterator(BookmarksMixin):
+ self.spine = []
+ Spiny = partial(SpineItem, read_anchor_map=read_anchor_map,
+ run_char_count=run_char_count, from_epub=self.book_format == 'EPUB')
+- is_comic = plumber.input_fmt.lower() in {'cbc', 'cbz', 'cbr', 'cb7'}
++ is_comic = plumber.input_fmt.lower() in {'cbc', 'cbz', 'cb7'}
+ for i in ordered:
+ spath = i.path
+ mt = None
+diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py
+index e419685..ee83d7b 100644
+--- a/src/calibre/gui2/__init__.py
++++ b/src/calibre/gui2/__init__.py
+@@ -488,7 +488,6 @@ class FileIconProvider(QFileIconProvider):
+ 'png' : 'png',
+ 'bmp' : 'bmp',
+ 'cbz' : 'cbz',
+- 'cbr' : 'cbr',
+ 'svg' : 'svg',
+ 'html' : 'html',
+ 'htmlz' : 'html',
+@@ -500,7 +499,6 @@ class FileIconProvider(QFileIconProvider):
+ 'lrx' : 'lrx',
+ 'pdf' : 'pdf',
+ 'pdr' : 'zero',
+- 'rar' : 'rar',
+ 'zip' : 'zip',
+ 'txt' : 'txt',
+ 'text' : 'txt',
+diff --git a/src/calibre/gui2/actions/add.py b/src/calibre/gui2/actions/add.py
+index 3e3c48b..a605ff5 100644
+--- a/src/calibre/gui2/actions/add.py
++++ b/src/calibre/gui2/actions/add.py
+@@ -38,8 +38,8 @@ def get_filters():
+ (_('Text books'), ['txt', 'text', 'rtf']),
+ (_('PDF Books'), ['pdf', 'azw4']),
+ (_('SNB Books'), ['snb']),
+- (_('Comics'), ['cbz', 'cbr', 'cbc']),
+- (_('Archives'), ['zip', 'rar']),
++ (_('Comics'), ['cbz', 'cbc']),
++ (_('Archives'), ['zip']),
+ (_('Wordprocessor files'), ['odt', 'doc', 'docx']),
+ ]
+
+@@ -66,7 +66,7 @@ class AddAction(InterfaceAction):
+ 'sub directories (Multiple books per directory, assumes every '
+ 'ebook file is a different book)')).triggered.connect(
+ self.add_recursive_multiple)
+- arm = self.add_archive_menu = self.add_menu.addMenu(_('Add multiple books from archive (ZIP/RAR)'))
++ arm = self.add_archive_menu = self.add_menu.addMenu(_('Add multiple books from archive (ZIP)'))
+ self.create_menu_action(arm, 'recursive-single-archive', _(
+ 'One book per directory in the archive')).triggered.connect(partial(self.add_archive, True))
+ self.create_menu_action(arm, 'recursive-multiple-archive', _(
+@@ -144,7 +144,7 @@ class AddAction(InterfaceAction):
+ def add_archive(self, single):
+ paths = choose_files(
+ self.gui, 'recursive-archive-add', _('Choose archive file'),
+- filters=[(_('Archives'), ('zip', 'rar'))], all_files=False, select_only_single_file=True)
++ filters=[(_('Archives'), ('zip'))], all_files=False, select_only_single_file=True)
+ if paths:
+ self.do_add_recursive(paths[0], single)
+
+diff --git a/src/calibre/gui2/add.py b/src/calibre/gui2/add.py
+index d849846..50aa6d9 100644
+--- a/src/calibre/gui2/add.py
++++ b/src/calibre/gui2/add.py
+@@ -84,11 +84,8 @@ class RecursiveFind(QThread): # {{{
+ prints('Corrupt ZIP file, trying to use local headers')
+ from calibre.utils.localunzip import extractall
+ extractall(self.path, self.tdir)
+- elif self.path.lower().endswith('.rar'):
+- from calibre.utils.unrar import extract
+- extract(self.path, self.tdir)
+ else:
+- raise ValueError('Can only process ZIP or RAR archives')
++ raise ValueError('Can only process ZIP archives')
+
+ def run(self):
+ if self.tdir is not None:
+@@ -292,7 +289,7 @@ class Adder(QObject): # {{{
+ self.pd.canceled_signal.connect(self.canceled)
+
+ def add_recursive(self, root, single=True):
+- if os.path.exists(root) and os.path.isfile(root) and root.lower().rpartition('.')[-1] in {'zip', 'rar'}:
++ if os.path.exists(root) and os.path.isfile(root) and root.lower().rpartition('.')[-1] in {'zip'}:
+ self.path = tdir = PersistentTemporaryDirectory('_arcv_')
+ else:
+ self.path = root
+diff --git a/src/calibre/library/server/opds.py b/src/calibre/library/server/opds.py
+index 5e9ca44..f5d230d 100644
+--- a/src/calibre/library/server/opds.py
++++ b/src/calibre/library/server/opds.py
+@@ -29,7 +29,7 @@ BASE_HREFS = {
+ 1 : '/opds',
+ }
+
+-STANZA_FORMATS = frozenset(['epub', 'pdb', 'pdf', 'cbr', 'cbz', 'djvu'])
++STANZA_FORMATS = frozenset(['epub', 'pdb', 'pdf', 'cbz', 'djvu'])
+
+ def url_for(name, version, **kwargs):
+ if not name.endswith('_'):
+diff --git a/src/calibre/linux.py b/src/calibre/linux.py
+index c746606..d6b2c6c 100644
+--- a/src/calibre/linux.py
++++ b/src/calibre/linux.py
+@@ -314,7 +314,7 @@ class ZshCompleter(object): # {{{
+ ):
+ for fmt in fmts:
+ is_input = group_title == input_group
+- if is_input and fmt in {'rar', 'zip', 'oebzip'}:
++ if is_input and fmt in {'zip', 'oebzip'}:
+ continue
+ p = (get_parser(input_fmt=fmt) if is_input
+ else get_parser(output_fmt=fmt))
+diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py
+index fd9a36d..130d08d 100644
+--- a/src/calibre/test_build.py
++++ b/src/calibre/test_build.py
+@@ -102,11 +102,6 @@ def test_imaging():
+ raise RuntimeError('PIL choked!')
+ print ('PIL OK!')
+
+-def test_unrar():
+- from calibre.utils.unrar import test_basic
+- test_basic()
+- print ('Unrar OK!')
+-
+ def test_ssl():
+ import ssl
+ ssl
+@@ -146,7 +141,6 @@ def test():
+ test_ssl()
+ test_sqlite()
+ test_imaging()
+- test_unrar()
+ test_icu()
+ test_woff()
+ test_qt()
+diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot
+index 1775b71..65cf8c4 100644
+--- a/src/calibre/translations/calibre.pot
++++ b/src/calibre/translations/calibre.pot
+@@ -3870,7 +3870,7 @@ msgid "Set book ID"
+ msgstr ""
+
+ #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/archive.py:42
+-msgid "Extract common e-book formats from archives (zip/rar) files. Also try to autodetect if they are actually cbz/cbr files."
++msgid "Extract common e-book formats from archives (zip) files. Also try to autodetect if they are actually cbz files."
+ msgstr ""
+
+ #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:644
+@@ -10866,7 +10866,7 @@ msgid "You can also customise the plugin locations using <b>Preferences -> Custo
+ msgstr ""
+
+ #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:33
+-msgid "Set defaults for conversion of comics (CBR/CBZ files)"
++msgid "Set defaults for conversion of comics (CBZ files)"
+ msgstr ""
+
+ #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48
+diff --git a/src/calibre/utils/search_query_parser.py b/src/calibre/utils/search_query_parser.py
+index d395057..4804b28 100644
+--- a/src/calibre/utils/search_query_parser.py
++++ b/src/calibre/utils/search_query_parser.py
+@@ -445,16 +445,16 @@ class Tester(SearchQueryParser):
+ u'Tor Books',
+ u'lrf'],
+ 8: [u'Stalky and Co.', u'Rudyard Kipling', u'manybooks.net', u'lrf'],
+- 9: [u'A Game of Thrones', u'George R. R. Martin', None, u'lrf,rar'],
+- 10: [u'A Clash of Kings', u'George R. R. Martin', None, u'lrf,rar'],
+- 11: [u'A Storm of Swords', u'George R. R. Martin', None, u'lrf,rar'],
++ 9: [u'A Game of Thrones', u'George R. R. Martin', None, u'lrf'],
++ 10: [u'A Clash of Kings', u'George R. R. Martin', None, u'lrf'],
++ 11: [u'A Storm of Swords', u'George R. R. Martin', None, u'lrf'],
+ 12: [u'Biggles - Pioneer Air Fighter', u'W. E. Johns', None, u'lrf,rtf'],
+ 13: [u'Biggles of the Camel Squadron',
+ u'W. E. Johns',
+ u'London:Thames, (1977)',
+ u'lrf,rtf'],
+- 14: [u'A Feast for Crows', u'George R. R. Martin', None, u'lrf,rar'],
+- 15: [u'Cryptonomicon', u'Neal Stephenson', None, u'lrf,rar'],
++ 14: [u'A Feast for Crows', u'George R. R. Martin', None, u'lrf'],
++ 15: [u'Cryptonomicon', u'Neal Stephenson', None, u'lrf'],
+ 16: [u'Quicksilver', u'Neal Stephenson', None, u'lrf,zip'],
+ 17: [u'The Comedies of William Shakespeare',
+ u'William Shakespeare',
+@@ -469,15 +469,15 @@ class Tester(SearchQueryParser):
+ None,
+ u'lrf'],
+ 20: [u'An Ideal Husband', u'Oscar Wilde', u'manybooks.net', u'lrf'],
+- 21: [u'Flight of the Nighthawks', u'Raymond E. Feist', None, u'lrf,rar'],
+- 22: [u'Into a Dark Realm', u'Raymond E. Feist', None, u'lrf,rar'],
+- 23: [u'The Sundering', u'Walter Jon Williams', None, u'lrf,rar'],
+- 24: [u'The Praxis', u'Walter Jon Williams', None, u'lrf,rar'],
+- 25: [u'Conventions of War', u'Walter Jon Williams', None, u'lrf,rar'],
+- 26: [u'Banewreaker', u'Jacqueline Carey', None, u'lrf,rar'],
+- 27: [u'Godslayer', u'Jacqueline Carey', None, u'lrf,rar'],
+- 28: [u"Kushiel's Scion", u'Jacqueline Carey', None, u'lrf,rar'],
+- 29: [u'Underworld', u'Don DeLillo', None, u'lrf,rar'],
++ 21: [u'Flight of the Nighthawks', u'Raymond E. Feist', None, u'lrf'],
++ 22: [u'Into a Dark Realm', u'Raymond E. Feist', None, u'lrf'],
++ 23: [u'The Sundering', u'Walter Jon Williams', None, u'lrf'],
++ 24: [u'The Praxis', u'Walter Jon Williams', None, u'lrf'],
++ 25: [u'Conventions of War', u'Walter Jon Williams', None, u'lrf'],
++ 26: [u'Banewreaker', u'Jacqueline Carey', None, u'lrf'],
++ 27: [u'Godslayer', u'Jacqueline Carey', None, u'lrf'],
++ 28: [u"Kushiel's Scion", u'Jacqueline Carey', None, u'lrf'],
++ 29: [u'Underworld', u'Don DeLillo', None, u'lrf'],
+ 30: [u'Genghis Khan and The Making of the Modern World',
+ u'Jack Weatherford Orc',
+ u'Three Rivers Press',
+@@ -488,9 +488,9 @@ class Tester(SearchQueryParser):
+ u'lrf,zip'],
+ 32: [u'The Killer Angels', u'Michael Shaara', None, u'html,lrf'],
+ 33: [u'Band Of Brothers', u'Stephen E Ambrose', None, u'lrf,txt'],
+- 34: [u'The Gates of Rome', u'Conn Iggulden', None, u'lrf,rar'],
++ 34: [u'The Gates of Rome', u'Conn Iggulden', None, u'lrf'],
+ 35: [u'The Death of Kings', u'Conn Iggulden', u'Bantam Dell', u'lit,lrf'],
+- 36: [u'The Field of Swords', u'Conn Iggulden', None, u'lrf,rar'],
++ 36: [u'The Field of Swords', u'Conn Iggulden', None, u'lrf'],
+ 37: [u'Masterman Ready', u'Marryat, Captain Frederick', None, u'lrf'],
+ 38: [u'With the Lightnings',
+ u'David Drake',
+@@ -503,16 +503,16 @@ class Tester(SearchQueryParser):
+ 40: [u'The Far Side of The Stars',
+ u'David Drake',
+ u'Baen Publishing Enterprises',
+- u'lrf,rar'],
++ u'lrf'],
+ 41: [u'The Way to Glory',
+ u'David Drake',
+ u'Baen Publishing Enterprises',
+- u'lrf,rar'],
+- 42: [u'Some Golden Harbor', u'David Drake', u'Baen Books', u'lrf,rar'],
++ u'lrf'],
++ 42: [u'Some Golden Harbor', u'David Drake', u'Baen Books', u'lrf'],
+ 43: [u'Harry Potter And The Half-Blood Prince',
+ u'J. K. Rowling',
+ None,
+- u'lrf,rar'],
++ u'lrf'],
+ 44: [u'Harry Potter and the Order of the Phoenix',
+ u'J. K. Rowling',
+ None,
+@@ -521,12 +521,12 @@ class Tester(SearchQueryParser):
+ 46: [u'The Stars at War II',
+ u'Steve White',
+ u'Baen Publishing Enterprises',
+- u'lrf,rar'],
+- 47: [u'Exodus', u'Steve White,Shirley Meier', u'Baen Books', u'lrf,rar'],
++ u'lrf'],
++ 47: [u'Exodus', u'Steve White,Shirley Meier', u'Baen Books', u'lrf'],
+ 48: [u'Harry Potter and the Goblet of Fire',
+ u'J. K. Rowling',
+ None,
+- u'lrf,rar'],
++ u'lrf'],
+ 49: [u'Harry Potter and the Prisoner of Azkaban',
+ u'J. K. Rowling',
+ None,
+@@ -539,20 +539,20 @@ class Tester(SearchQueryParser):
+ u'J.K. Rowling',
+ None,
+ u'lit,lrf,pdf'],
+- 52: [u"His Majesty's Dragon", u'Naomi Novik', None, u'lrf,rar'],
++ 52: [u"His Majesty's Dragon", u'Naomi Novik', None, u'lrf'],
+ 53: [u'Throne of Jade', u'Naomi Novik', u'Del Rey', u'lit,lrf'],
+- 54: [u'Black Powder War', u'Naomi Novik', u'Del Rey', u'lrf,rar'],
++ 54: [u'Black Powder War', u'Naomi Novik', u'Del Rey', u'lrf'],
+ 55: [u'War and Peace', u'Leo Tolstoy', u'gutenberg.org', u'lrf,txt'],
+ 56: [u'Anna Karenina', u'Leo Tolstoy', u'gutenberg.org', u'lrf,txt'],
+ 57: [u'A Shorter History of Rome',
+ u'Eugene Lawrence,Sir William Smith',
+ u'gutenberg.org',
+ u'lrf,zip'],
+- 58: [u'The Name of the Rose', u'Umberto Eco', None, u'lrf,rar'],
++ 58: [u'The Name of the Rose', u'Umberto Eco', None, u'lrf'],
+ 71: [u"Wind Rider's Oath", u'David Weber', u'Baen', u'lrf'],
+ 74: [u'Rally Cry', u'William R Forstchen', None, u'htm,lrf'],
+- 86: [u'Empire of Ivory', u'Naomi Novik', None, u'lrf,rar'],
+- 87: [u"Renegade's Magic", u'Robin Hobb', None, u'lrf,rar'],
++ 86: [u'Empire of Ivory', u'Naomi Novik', None, u'lrf'],
++ 87: [u"Renegade's Magic", u'Robin Hobb', None, u'lrf'],
+ 89: [u'Master and commander',
+ u"Patrick O'Brian",
+ u'Fontana,\n1971',
+@@ -560,7 +560,7 @@ class Tester(SearchQueryParser):
+ 91: [u'A Companion to Wolves',
+ u'Sarah Monette,Elizabeth Beär',
+ None,
+- u'lrf,rar'],
++ u'lrf'],
+ 92: [u'The Lions of al-Rassan', u'Guy Gavriel Kay', u'Eos', u'lit,lrf'],
+ 93: [u'Gardens of the Moon', u'Steven Erikson', u'Tor Fantasy', u'lit,lrf'],
+ 95: [u'The Master and Margarita',
+@@ -584,7 +584,7 @@ class Tester(SearchQueryParser):
+ 144: [u'Atonement',
+ u'Ian McEwan',
+ u'New York : Nan A. Talese/Doubleday, 2002.',
+- u'lrf,rar'],
++ u'lrf'],
+ 146: [u'1632', u'Eric Flint', u'Baen Books', u'lit,lrf'],
+ 147: [u'1633', u'David Weber,Eric Flint,Dru Blair', u'Baen', u'lit,lrf'],
+ 148: [u'1634: The Baltic War',
+@@ -637,7 +637,7 @@ class Tester(SearchQueryParser):
+ 253: [u"Hunter's Run",
+ u'George R. R. Martin,Gardner Dozois,Daniel Abraham',
+ u'Eos',
+- u'lrf,rar'],
++ u'lrf'],
+ 257: [u'Knife of Dreams', u'Robert Jordan', None, u'lit,lrf'],
+ 258: [u'Saturday',
+ u'Ian McEwan',
+@@ -657,7 +657,7 @@ class Tester(SearchQueryParser):
+ u'New York : Random House, 2005.',
+ u'lit,lrf'],
+ 269: [u'Reap the Whirlwind', u'David Mack', u'Star Trek', u'lit,lrf'],
+- 272: [u'Mistborn', u'Brandon Sanderson', u'Tor Fantasy', u'lrf,rar'],
++ 272: [u'Mistborn', u'Brandon Sanderson', u'Tor Fantasy', u'lrf'],
+ 273: [u'The Thousandfold Thought',
+ u'R. Scott Bakker',
+ u'Overlook TP',
+@@ -665,17 +665,17 @@ class Tester(SearchQueryParser):
+ 276: [u'Elantris',
+ u'Brandon Sanderson',
+ u'New York : Tor, 2005.',
+- u'lrf,rar'],
++ u'lrf'],
+ 291: [u'Sundiver',
+ u'David Brin',
+ u'New York : Bantam Books, 1995.',
+ u'lit,lrf'],
+- 299: [u'Imperium', u'Robert Harris', u'Arrow', u'lrf,rar'],
++ 299: [u'Imperium', u'Robert Harris', u'Arrow', u'lrf'],
+ 300: [u'Startide Rising', u'David Brin', u'Bantam', u'htm,lrf'],
+ 301: [u'The Uplift War', u'David Brin', u'Spectra', u'lit,lrf'],
+- 304: [u'Brightness Reef', u'David Brin', u'Orbit', u'lrf,rar'],
++ 304: [u'Brightness Reef', u'David Brin', u'Orbit', u'lrf'],
+ 305: [u"Infinity's Shore", u'David Brin', u'Spectra', u'txt'],
+- 306: [u"Heaven's Reach", u'David Brin', u'Spectra', u'lrf,rar'],
++ 306: [u"Heaven's Reach", u'David Brin', u'Spectra', u'lrf'],
+ 325: [u"Foundation's Triumph", u'David Brin', u'Easton Press', u'lit,lrf'],
+ 327: [u'I am Charlotte Simmons', u'Tom Wolfe', u'Vintage', u'htm,lrf'],
+ 335: [u'The Currents of Space', u'Isaac Asimov', None, u'lit,lrf'],
+@@ -705,15 +705,15 @@ class Tester(SearchQueryParser):
+ u'Aspect',
+ u'lit,lrf'],
+ 356: [u'The Naked God', u'Peter F. Hamilton', u'Aspect', u'lit,lrf'],
+- 421: [u'A Shadow in Summer', u'Daniel Abraham', u'Tor Fantasy', u'lrf,rar'],
++ 421: [u'A Shadow in Summer', u'Daniel Abraham', u'Tor Fantasy', u'lrf'],
+ 427: [u'Lonesome Dove', u'Larry M\\cMurtry', None, u'lit,lrf'],
+ 440: [u'Ghost', u'John Ringo', u'Baen', u'lit,lrf'],
+ 441: [u'Kildar', u'John Ringo', u'Baen', u'lit,lrf'],
+- 443: [u'Hidden Empire ', u'Kevin J. Anderson', u'Aspect', u'lrf,rar'],
++ 443: [u'Hidden Empire ', u'Kevin J. Anderson', u'Aspect', u'lrf'],
+ 444: [u'The Gun Seller',
+ u'Hugh Laurie',
+ u'Washington Square Press',
+- u'lrf,rar']
++ u'lrf']
+ }
+
+ tests = {
+diff --git a/src/calibre/web/feeds/feedparser.py b/src/calibre/web/feeds/feedparser.py
+index 16085cf..420efaa 100755
+--- a/src/calibre/web/feeds/feedparser.py
++++ b/src/calibre/web/feeds/feedparser.py
+@@ -2081,7 +2081,7 @@ class _MicroformatsParser:
+ EMAIL = 5
+
+ known_xfn_relationships = set(['contact', 'acquaintance', 'friend', 'met', 'co-worker', 'coworker', 'colleague', 'co-resident', 'coresident', 'neighbor', 'child', 'parent', 'sibling', 'brother', 'sister', 'spouse', 'wife', 'husband', 'kin', 'relative', 'muse', 'crush', 'date', 'sweetheart', 'me'])
+- known_binary_extensions = set(['zip','rar','exe','gz','tar','tgz','tbz2','bz2','z','7z','dmg','img','sit','sitx','hqx','deb','rpm','bz2','jar','rar','iso','bin','msi','mp2','mp3','ogg','ogm','mp4','m4v','m4a','avi','wma','wmv'])
++ known_binary_extensions = set(['zip','exe','gz','tar','tgz','tbz2','bz2','z','7z','dmg','img','sit','sitx','hqx','deb','rpm','bz2','jar','iso','bin','msi','mp2','mp3','ogg','ogm','mp4','m4v','m4a','avi','wma','wmv'])
+
+ def __init__(self, data, baseuri, encoding):
+ self.document = BeautifulSoup.BeautifulSoup(data)
diff --git a/libre/cdrkit-libre/PKGBUILD b/libre/cdrkit-libre/PKGBUILD
index a598a15f6..d64f0018e 100644
--- a/libre/cdrkit-libre/PKGBUILD
+++ b/libre/cdrkit-libre/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 186761 2013-05-31 04:50:41Z allan $
-# Maintainer: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Maintainer (Arch): Andrea Scarpino <andrea@archlinux.org>
+# Contributor (Arch): Alexander Fehr <pizzapunk gmail com>
_pkgname=cdrkit
pkgname=cdrkit-libre
diff --git a/libre/clementine-libre/PKGBUILD b/libre/clementine-libre/PKGBUILD
index 7ec75cd14..a54b2b1ad 100644
--- a/libre/clementine-libre/PKGBUILD
+++ b/libre/clementine-libre/PKGBUILD
@@ -1,20 +1,23 @@
-# $Id: PKGBUILD 106122 2014-02-23 15:32:14Z alucryd $
-# Maintainer: Maxime Gauduin <alucryd@gmail.com>
-# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
-# Contributor: BlackEagle <ike.devolder@gmail.com>
-# Contributor: Dany Martineau <dany.luc.martineau@gmail.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Kete <kete@ninthfloor.org>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# $Id: PKGBUILD 110102 2014-04-24 07:51:18Z alucryd $
+# Maintainer (Arch): Maxime Gauduin <alucryd@gmail.com>
+# Contributor (Arch): Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor (Arch): BlackEagle <ike.devolder@gmail.com>
+# Contributor (Arch): Dany Martineau <dany.luc.martineau@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Kete <kete@ninthfloor.org>
+# Contributor: Márcio Silva <coadde@parabola.nu>
_pkgname=clementine
pkgname=clementine-libre
-pkgver=1.2.2
+pkgver=1.2.3
pkgrel=1
-pkgdesc="A music player and library organizer, without nonfree artwork and spotify support"
-url="http://www.clementine-player.org/"
+pkgdesc='A modern music player and library organizer, without nonfree artwork and Spotify support'
+url='http://www.clementine-player.org/'
license=('GPL')
arch=('i686' 'x86_64')
+replaces=('clementine')
+conflicts=('clementine')
+provides=("clementine=$pkgver")
depends=('chromaprint' 'glew' 'gstreamer0.10-base' 'libcdio' 'libgpod' 'liblastfm' 'libmtp' 'libmygpo-qt' 'protobuf' 'qca-ossl' 'taglib')
makedepends=('cmake' 'boost' 'mesa' 'sparsehash')
optdepends=('gstreamer0.10-base-plugins: "Base" plugin libraries'
@@ -22,20 +25,15 @@ optdepends=('gstreamer0.10-base-plugins: "Base" plugin libraries'
'gstreamer0.10-bad-plugins: "Bad" plugin libraries'
'gstreamer0.10-ugly-plugins: "Ugly" plugin libraries'
'gvfs: Various devices support')
-replaces=('clementine')
-conflicts=('clementine')
-provides=("clementine=$pkgver")
-install=clementine.install
+install="${_pkgname}.install"
mksource=("${_pkgname}-${pkgver}.tar.gz::https://github.com/clementine-player/Clementine/archive/${pkgver}.tar.gz"
'remove-nonfree-artwork-and-spotify.patch'
'moognu.png')
-source=("https://repo.parabolagnulinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz"
- "${_pkgname}-unistd.patch")
-mksha256sums=('1f674c42f05c476baf74f1dd37b1aa357ff9199e4493173052c856a53e5f0a96'
+source=("https://repo.parabolagnulinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+mksha256sums=('7df5650445a005c09f5f0e1a1b0d077037c37ecbe4ee77baf9d45f121308a1bf'
'48bfbf42c84ac1891021638627c10780194fcc59eda1c69e157be3aebe8ee10b'
'c6918617769152f3617c61f721819e69d03f671b85760b11cfe45abd53955bc4')
-sha256sums=('02d799056435f244a319eea110672c404c8804a2418677253d5cdd4ea01a340f'
- 'bb02f82c3bcdad542396fc0788010321d618fc0545d34d00fee63bed987a0bbf')
+sha256sums=('c68275373b839b5b256b813b5bed85d501f94e12bef3dd8ed69e90094af3f769')
mksource() {
cd Clementine-${pkgver}
@@ -63,12 +61,6 @@ mksource() {
touch data/schema/schema-30.sql
}
-prepare() {
- cd Clementine-${pkgver}
-
- patch -Np1 -i ../${_pkgname}-unistd.patch
-}
-
build() {
cd Clementine-${pkgver}
diff --git a/libre/clementine-libre/clementine-unistd.patch b/libre/clementine-libre/clementine-unistd.patch
deleted file mode 100644
index 9bd053b60..000000000
--- a/libre/clementine-libre/clementine-unistd.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -rupN Clementine-1.2.2.orig/src/core/utilities.cpp Clementine-1.2.2/src/core/utilities.cpp
---- Clementine-1.2.2.orig/src/core/utilities.cpp 2014-02-23 16:14:06.919406700 +0100
-+++ Clementine-1.2.2/src/core/utilities.cpp 2014-02-23 16:16:12.107064900 +0100
-@@ -50,6 +50,7 @@
- #endif
-
- #ifdef Q_OS_LINUX
-+# include <unistd.h>
- # include <sys/syscall.h>
- #endif
- #ifdef Q_OS_DARWIN
diff --git a/libre/crosstool-ng/PKGBUILD b/libre/crosstool-ng/PKGBUILD
index 5147cce61..5f4fa3ab7 100644
--- a/libre/crosstool-ng/PKGBUILD
+++ b/libre/crosstool-ng/PKGBUILD
@@ -1,6 +1,6 @@
-# Contributor: jwwolf <jwwolf+arch@gmail.com>
-# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# Contributor (Arch): jwwolf <jwwolf+arch@gmail.com>
+# Maintainer: fauno <fauno@kiwwwi.com.ar>
+# Contributor: Márcio Silva <coadde@parabola.nu>
pkgname=crosstool-ng
pkgver=1.19.0
diff --git a/libre/cups-filters-libre/PKGBUILD b/libre/cups-filters-libre/PKGBUILD
index 7b231aa6d..9c8ae1354 100644
--- a/libre/cups-filters-libre/PKGBUILD
+++ b/libre/cups-filters-libre/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 209918 2014-04-08 15:37:24Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# $Id: PKGBUILD 211789 2014-04-26 10:47:56Z andyrtr $
+# Maintainer (Arch): Andreas Radke <andyrtr@archlinux.org>
pkgname=cups-filters-libre
_pkgname=cups-filters
-pkgver=1.0.52
-pkgrel=1
+pkgver=1.0.53
+pkgrel=2
pkgdesc="OpenPrinting CUPS Filters, without foomatic-db-nonfree recommendation"
arch=('i686' 'x86_64')
url="http://www.linuxfoundation.org/collaborate/workgroups/openprinting"
@@ -20,7 +20,7 @@ source=(http://www.openprinting.org/download/cups-filters/$_pkgname-$pkgver.tar.
provides=("${_pkgname}=${pkgver}" 'foomatic-filters')
replaces=("${_pkgname}" 'foomatic-filters')
conflicts=("${_pkgname}" 'foomatic-filters')
-md5sums=('64825cb330c2ef6dcb29215158e701bb')
+md5sums=('f9df275dd161eb0364f40c6f00d755a4')
build() {
cd $_pkgname-$pkgver
diff --git a/libre/doublecmd-libre/PKGBUILD b/libre/doublecmd-libre/PKGBUILD
index 1e14d5588..f5c5a16c5 100644
--- a/libre/doublecmd-libre/PKGBUILD
+++ b/libre/doublecmd-libre/PKGBUILD
@@ -1,14 +1,14 @@
# vim:set ft=sh:
-# $Id: PKGBUILD 108140 2014-03-23 19:43:34Z idevolder $
-# Maintainer: BlackIkeEagle <ike DOT devolder AT gmail DOT com>
-# Contributor: (sirocco AT ngs.ru)
+# $Id: PKGBUILD 111059 2014-05-12 18:14:06Z idevolder $
+# Maintainer (Arch): BlackIkeEagle <ike DOT devolder AT gmail DOT com>
+# Contributor (Arch): (sirocco AT ngs.ru)
_pkgbase=doublecmd
pkgbase=doublecmd-libre
pkgname=('doublecmd-libre-gtk2' 'doublecmd-libre-qt')
-pkgver=0.5.9
+pkgver=0.5.10
_helpver=0.5.5
-pkgrel=1.1
+pkgrel=1
url="http://doublecmd.sourceforge.net/"
arch=('i686' 'x86_64')
license=('GPL')
@@ -19,12 +19,39 @@ optdepends=(
'lua51: scripting'
'p7zip: support for 7zip archives'
)
-source=(
+mksource=(
"http://downloads.sourceforge.net/project/$_pkgbase/Double%20Commander%20Source/$_pkgbase-$pkgver-src.tar.gz"
+)
+source=(
+ "https://repo.parabolagnulinux.org/other/$pkgbase/$pkgbase-$pkgver-src.tar.gz"
"http://downloads.sourceforge.net/project/$_pkgbase/Double%20Commander%20Source/$_pkgbase-help-$_helpver-src.tar.gz"
"http://www.herecura.be/files/lazarus-20140321-2.tar.gz"
+ 'libre.patch'
+ 'help-libre.patch'
)
+mksource() {
+ cd "$srcdir/$_pkgbase-$pkgver"
+
+ msg2 'remove nonfree unRAR utility files from the source'
+ rm -rv install/linux/deb/libunrar
+}
+
+prepare() {
+ cd "$srcdir/$_pkgbase-$pkgver"
+
+ msg2 'remove nonfree libunrar, unace, unarj support and references'
+ rm -rv plugins/wcx/unrar
+ rm -v install/linux/rpm/libunrar.spec
+ rm -v install/darwin/make-unrar.sh
+ patch -Np1 -i ../libre.patch
+
+ cd "$srcdir/$_pkgbase-help-$_helpver"
+
+ msg2 'remove nonfree libunrar, unace, unarj support and references on the help'
+ patch -Np1 -i ../help-libre.patch
+}
+
build() {
cp -a $_pkgbase-$pkgver $_pkgbase-gtk
cp -a $_pkgbase-$pkgver $_pkgbase-qt
@@ -48,7 +75,7 @@ build() {
}
package_doublecmd-libre-gtk2() {
- pkgdesc="twin-panel (commander-style) file manager (GTK), without nonfree libunrar recommendation"
+ pkgdesc="twin-panel (commander-style) file manager (GTK), without nonfree libunrar, unace and unarj support"
depends=('gtk2')
conflicts=('doublecmd-libre-qt' 'doublecmd-gtk2' 'doublecmd-gtk2-libre')
replaces=('doublecmd-gtk2' 'doublecmd-gtk2-libre')
@@ -62,7 +89,7 @@ package_doublecmd-libre-gtk2() {
}
package_doublecmd-libre-qt() {
- pkgdesc="twin-panel (commander-style) file manager (QT), without nonfree libunrar recommendation"
+ pkgdesc="twin-panel (commander-style) file manager (QT), without nonfree libunrar, unace and unarj support"
depends=('qt4pas')
conflicts=('doublecmd-libre-gtk2' 'doublecmd-qt' 'doublecmd-qt-libre')
replaces=('doublecmd-qt' 'doublecmd-qt-libre')
@@ -75,6 +102,9 @@ package_doublecmd-libre-qt() {
cp -a * "$pkgdir/usr/share/$_pkgbase/doc/"
}
-sha256sums=('d5b3c93b3029f4b0a45b7c9912d34f753445e031c93bc0268d4cb4c313d06ba4'
+mksha256sums=('cc54a2d973836f46f6f99fff1b8dd631bc96d8aa8524c3cd9cfc60b0c7a3dc12')
+sha256sums=('7a194a40930aaffc7772a2ad14f53af287bdc61cc967d4179223815da4a169a7'
'5c5d00187df811df0734bf751a581bce7e1bdd4cf4639b2a1101f1da8743daaf'
- '16560ad7403ffbee1800384768828e1fad924d03068c6248b68a78c393fc4e20')
+ '16560ad7403ffbee1800384768828e1fad924d03068c6248b68a78c393fc4e20'
+ '79853d83a2fa7cdb54ab79586c2c3d123de90f849dd52d1a712b1e4a1eeaefcd'
+ '3f0de0b4a35ec3c8a172864f3e6fd2ad11d3c32c3eee05d08b51d06002d05f7f')
diff --git a/libre/doublecmd-libre/help-libre.patch b/libre/doublecmd-libre/help-libre.patch
new file mode 100644
index 000000000..c1d859d8b
--- /dev/null
+++ b/libre/doublecmd-libre/help-libre.patch
@@ -0,0 +1,153 @@
+diff --git a/en/about.html b/en/about.html
+index 7a1b2d0..6ab90ab 100644
+--- a/en/about.html
++++ b/en/about.html
+@@ -20,7 +20,7 @@
+ <li><p>customizable columns</p></li>
+ <li><p>built-in file viewer (F3) to view files of ANY SIZE in hexadecimal, binary or text format</p></li>
+ <li><p>built-in text editor (F4) with syntax highlighting</p></li>
+- <li><p>archives are handled like subdirectories. You can easily copy files to and from the archive. Supports following types: ZIP, TAR GZ, TGZ, BZ2, RPM, CPIO, DEB, RAR</p></li>
++ <li><p>archives are handled like subdirectories. You can easily copy files to and from the archive. Supports following types: ZIP, TAR GZ, TGZ, BZ2, RPM, CPIO, DEB</p></li>
+ <li><p>extended search function with full text search in any files</p></li>
+ <li><p>supports WCX, WLX, WDX and WFX plugins from Total Commander (also supports own DSX plugin format)</p></li>
+ <li><p>operations log</p></li>
+diff --git a/en/help.html b/en/help.html
+index a53a867..a473c9f 100644
+--- a/en/help.html
++++ b/en/help.html
+@@ -53,7 +53,7 @@
+ <p>Double Commander is a cross-platform (both GNU/Linux and Windows) file manager, supporting
+ WCX, WFX, WDX, WLX and DSX plugin types. The last type (DSX) is DC's own search plugin type.
+ The Windows version of Double Commander is compatible with many plugins from Total Commander (TC), which is more than half of those which I tried.
+- The Linux version has no such programs at all. DC comes installed with some WCX (archiver) plugins to work with cpio, deb, rpm, bz2, rar, zip, tar, gz, tgz archives as
++ The Linux version has no such programs at all. DC comes installed with some WCX (archiver) plugins to work with cpio, deb, rpm, bz2, zip, tar, gz, tgz archives as
+ directories (VFS), also a search plugin (DSX) and a lister videoplayer plugin for Linux (WLX). Other plugins can be installed manually.</p>
+ <p class="FIGURE"><img title="Double Commander" alt="Double Commander" src="images/imgDC/pic05.png" width="730" height="458"/></p>
+
+@@ -190,7 +190,7 @@
+ file renaming.
+
+ <p>By selecting item <a name="08_upakovat"><span class="bold">Pack files</span></a> (internal command
+- <tt><a name="cm_PackFiles">cm_PackFiles</a></tt>) we call a standard dialog to pack files to the zip, tar.gz, tgz and, possibly, rar archive formats.</p>
++ <tt><a name="cm_PackFiles">cm_PackFiles</a></tt>) we call a standard dialog to pack files to the zip, tar.gz, tgz.</p>
+ <p class="FIGURE"><img alt="Pack" title="Pack" src="images/imgDC/pic14-5.png" width="368" height="183"/></p>
+
+ <p>Also we can unpack files via <a name="09_raspakovat">
+diff --git a/en/multiarc.html b/en/multiarc.html
+index d1cbc7d..c2284ad 100644
+--- a/en/multiarc.html
++++ b/en/multiarc.html
+@@ -280,8 +280,6 @@ p,ul,ol /* Paragraph Style */
+ <p class=rvps2><span class=rvts18>Command = String representing a command</span></p>
+ <p class=rvps2><span class=rvts18>Flag = 0 or 1 depending on state of this flag</span></p>
+ <p class=rvps3><span class=rvts20>TypeName</span><span class=rvts21> is a short name for archive type. It is required and must be unique.</span></p>
+-<p class=rvps3><span class=rvts22>Example:</span></p>
+-<p class=rvps3><span class=rvts21>[ARJ] </span></p>
+ <p class=rvps3><span class=rvts23>Parameters</span></p>
+ <p class=rvps3><span class=rvts20>Archiver</span><span class=rvts21> Path to archiver utilit. Pach can contain enviropment variable such as %WINDIR% or %COMMANDER_PATH%.</span></p>
+ <p class=rvps3><span class=rvts20>ID</span><span class=rvts21> (optional) archive ID (2-digit hex numbers delimited with spaces). </span></p>
+diff --git a/ru/about.html b/ru/about.html
+index 99d1c43..5e177d8 100644
+--- a/ru/about.html
++++ b/ru/about.html
+@@ -26,7 +26,7 @@
+ двоичном или текстовом формате</p></li>
+ <li><p>встроенный текстовый редактор (F4) c подсветкой синтаксиса</p></li>
+ <li><p>работа с архивами так же, как с подкаталогами. Вы можете легко копировать файлы в архив
+- и из него. Поддерживаются следующие типы архивов ZIP, TAR GZ, TGZ, а также BZ2, RPM, CPIO, DEB, RAR</p></li>
++ и из него. Поддерживаются следующие типы архивов ZIP, TAR GZ, TGZ, а также BZ2, RPM, CPIO, DEB</p></li>
+ <li><p>расширенный поиск файлов, включая поиск текста в любых файлах</p></li>
+ <li><p>поддержка WCX, WDX и WFX плагинов от Total Commander</p></li>
+ <li><p>протоколирование файловых операций</p></li>
+@@ -45,4 +45,4 @@
+ </div>
+ </body>
+
+-</html>
+\ No newline at end of file
++</html>
+diff --git a/ru/help.html b/ru/help.html
+index a2ccba9..a138ef2 100644
+--- a/ru/help.html
++++ b/ru/help.html
+@@ -56,7 +56,7 @@
+ работают многие плагины от Total Commander (TC), а это более половины из тех, которыми я
+ пользовался). А Linux версия, вообще не имеет аналогов подобного типа. После установки в
+ составе DC уже имеются WCX (архиваторные) плагины и можно работать с архивами cpio, deb, rpm,
+- bz2, rar, zip, tar, gz, tgz как с каталогами, так же поисковый плагин (DSX) и плагин для
++ bz2, zip, tar, gz, tgz как с каталогами, так же поисковый плагин (DSX) и плагин для
+ просмотра видео с помощью Mplayer в Linux (WLX), остальные можно установить самостоятельно.</p>
+ <p class="FIGURE"><img title="Double Commander" alt="Double Commander" src="images/imgDC/ris05.png" width="651" height="440"/></p>
+
+@@ -213,8 +213,7 @@
+ расположение лог-файла.</p>
+
+ <p>Выбрав пункт <a name="08_upakovat"><span class="bold">Упаковать</span></a> (команда
+- <tt><a name="cm_PackFiles">cm_PackFiles</a></tt>) мы вызовем стандартный диалог упаковки файлов в архивы zip, tar.gz, tgz,
+- может быть и rar, если в системе установлен соответствующий архиватор.</p>
++ <tt><a name="cm_PackFiles">cm_PackFiles</a></tt>) мы вызовем стандартный диалог упаковки файлов в архивы zip, tar.gz, tgz.</p>
+ <p class="FIGURE"><img alt="Упаковать" title="Упаковать" src="images/imgDC/ris14-5.png" width="368" height="183"/></p>
+
+ <p>Обратное действие можно выполнить, воспользовавшись пунктом <a name="09_raspakovat">
+diff --git a/ru/multiarc.html b/ru/multiarc.html
+index 882f5eb..00cb39d 100644
+--- a/ru/multiarc.html
++++ b/ru/multiarc.html
+@@ -272,8 +272,6 @@ p,ul,ol /* Paragraph Style */
+ <p class=rvps3><span class=rvts18>Команда= строка команды</span></p>
+ <p class=rvps3><span class=rvts18>Флаг = 0 или 1 в зависимости от состояния флага.</span></p>
+ <p class=rvps4><span class=rvts20>Имя_типа</span><span class=rvts21> краткое имя типа архиватора. Обязательно, и должно быть уникальным. Должно быть набрано символами английского алфавита.</span></p>
+-<p class=rvps4><span class=rvts22>Пример:</span></p>
+-<p class=rvps4><span class=rvts21>[ARJ] </span></p>
+ <p class=rvps4><span class=rvts23>Параметры</span></p>
+ <p class=rvps4><span class=rvts20>Archiver</span><span class=rvts21> Путь к архиватору. Путь может содержать переменные окружения, например %WINDIR% или %COMMANDER_PATH%.</span></p>
+ <p class=rvps4><span class=rvts20>ID</span><span class=rvts21> (необязательный) -- сигнатура (ID) архиватора, используется для определения является ли данный файл архивом этого типа. Записывается группами по 2 шестнадцатеричных символа, разделенные пробелами. Если архиватор может обрабатывать несколько версий архивов с разными сигнатурами, они разделяются запятыми.</span></p>
+diff --git a/uk_UA/about.html b/uk_UA/about.html
+index 757fc73..a53de54 100644
+--- a/uk_UA/about.html
++++ b/uk_UA/about.html
+@@ -26,7 +26,7 @@
+ двійковому або текстовому форматі</p></li>
+ <li><p>вбудований текстовий редактор (F4) c підсвіткою синтаксису</p></li>
+ <li><p>робота з архівами так як і з підкаталогами. Ви можете легко копіювати файли в архів
+- і з нього. Підтримуються наступні типи архівів ZIP, TAR GZ, TGZ, а також BZ2, RPM, CPIO, DEB, RAR</p></li>
++ і з нього. Підтримуються наступні типи архівів ZIP, TAR GZ, TGZ, а також BZ2, RPM, CPIO, DEB</p></li>
+ <li><p>розширений пошук файлів, включаючи пошук тексту в будь-яких файлах</p></li>
+ <li><p>підтримка WCX, WDX і WFX плагінів від Total Commander</p></li>
+ <li><p>протоколювання файлових операцій</p></li>
+diff --git a/uk_UA/help.html b/uk_UA/help.html
+index 5420b30..29b3411 100644
+--- a/uk_UA/help.html
++++ b/uk_UA/help.html
+@@ -56,7 +56,7 @@
+ працює багато плагінів від Total Commander (TC), а це більше половини з тих, якими я
+ користувався). А Linux версія, взагалі не має аналогів подібногу типу. Після встановлення у
+ складі DC вже є WCX (архіваторні) плагіни і можна працювати з архівами cpio, deb, rpm,
+- bz2, rar, zip, tar, gz, tgz як з каталогами, пошуковий плагін (DSX) і плагін для
++ bz2, zip, tar, gz, tgz як з каталогами, пошуковий плагін (DSX) і плагін для
+ перегляду відео з допомогою Mplayer в Linux (WLX), інші можна встановити власноруч.</p>
+ <p class="FIGURE"><img title="Double Commander" alt="Double Commander" src="images/imgDC/ris05.png" width="651" height="440"/></p>
+
+@@ -214,8 +214,7 @@
+ місцезнаходження лог-файлу.</p>
+
+ <p>Вибравши пункт <a name="08_upakovat"><span class="bold">Упакувати</span></a> (команда
+- <tt><a name="cm_PackFiles">cm_PackFiles</a></tt>) ми викличемо стандартний діалог упакування файлів в архіви zip, tar.gz, tgz,
+- може бути і rar, якщо в системі встановлено відповідний архіватор.</p>
++ <tt><a name="cm_PackFiles">cm_PackFiles</a></tt>) ми викличемо стандартний діалог упакування файлів в архіви zip, tar.gz, tgz.</p>
+ <p class="FIGURE"><img alt="Упакувати" title="Упакувати" src="images/imgDC/ris14-5.png" width="368" height="183"/></p>
+
+ <p>Звортню дію можна виконати, скориставшися пунктом <a name="09_raspakovat">
+diff --git a/uk_UA/multiarc.html b/uk_UA/multiarc.html
+index bb0a81f..9d9ee80 100644
+--- a/uk_UA/multiarc.html
++++ b/uk_UA/multiarc.html
+@@ -272,8 +272,6 @@ p,ul,ol /* Paragraph Style */
+ <p class=rvps3><span class=rvts18>Команда= рядок команди</span></p>
+ <p class=rvps3><span class=rvts18>Прапорець = 0 чи 1 в залежності від стану прапорця.</span></p>
+ <p class=rvps4><span class=rvts20>Ім’я_типу</span><span class=rvts21> коротке ім’я типу архіватора. Обов’язково повинно бути унікальним і бути набраним символами англійського алфавіту.</span></p>
+-<p class=rvps4><span class=rvts22>Наприклад:</span></p>
+-<p class=rvps4><span class=rvts21>[ARJ] </span></p>
+ <p class=rvps4><span class=rvts23>Параметри</span></p>
+ <p class=rvps4><span class=rvts20>Archiver</span><span class=rvts21> Шлях до архіватора. Шлях може містити змінні оточення, наприклад %WINDIR% або %COMMANDER_PATH%.</span></p>
+ <p class=rvps4><span class=rvts20>ID</span><span class=rvts21> (необовязковий) -- сигнатура (ID) архіватора, використовується для визначення чи являється данний файл архівом цього типу. Записується групами по 2 шістнадцяткових символа, разділених пробілами. Якщо архіватор може оброблювати кілька версій архівів з різними сигнатурами, вони розділяються комами.</span></p>
diff --git a/libre/doublecmd-libre/libre.patch b/libre/doublecmd-libre/libre.patch
new file mode 100644
index 000000000..83c017125
--- /dev/null
+++ b/libre/doublecmd-libre/libre.patch
@@ -0,0 +1,407 @@
+diff --git a/clean.bat b/clean.bat
+index 910f591..0989998 100644
+--- a/clean.bat
++++ b/clean.bat
+@@ -22,7 +22,6 @@
+ @del /Q /S plugins\wcx\lzma\lib\*.*
+ @del /Q /S plugins\wcx\rpm\lib\*.*
+ @del /Q /S plugins\wcx\unbz2\lib\*.*
+-@del /Q /S plugins\wcx\unrar\lib\*.*
+ @del /Q /S plugins\wcx\zip\lib\*.*
+
+ @del /Q /S plugins\wdx\deb_wdx\lib\*.*
+@@ -45,7 +44,6 @@
+ @del /Q plugins\wcx\lzma\src\*.bak
+ @del /Q plugins\wcx\zip\src\*.bak
+ @del /Q plugins\wcx\unbz2\src\*.bak
+-@del /Q plugins\wcx\unrar\src\*.bak
+
+ @del /Q plugins\wcx\cpio\src\*.*~
+ @del /Q plugins\wcx\rpm\src\*.*~
+@@ -53,7 +51,6 @@
+ @del /Q plugins\wcx\lzma\src\*.*~
+ @del /Q plugins\wcx\zip\src\*.*~
+ @del /Q plugins\wcx\unbz2\src\*.*~
+-@del /Q plugins\wcx\unrar\src\*.*~
+
+ @echo Clean up components output directories
+
+@@ -66,4 +63,4 @@
+ @del /Q /S components\viewer\lib\*.*
+ @del /Q /S components\ZVDateTimeCtrls\lib\*.*
+
+-@echo Done.
+\ No newline at end of file
++@echo Done.
+diff --git a/doublecmd.ext.example b/doublecmd.ext.example
+index 24f4f9b..4e4307d 100644
+--- a/doublecmd.ext.example
++++ b/doublecmd.ext.example
+@@ -236,13 +236,6 @@ View={!VIEWER} <?lharc l %f?>
+ Extract={!SHELL} lharc x %f '*'
+ #Extract (with flags)=I=%{Enter any LHarc flags:}; if test -n "$I"; then lharc x $I %f; fi
+
+-# arj
+-[arj]
+-Open={!VFS}
+-View={!VIEWER} <?unarj l %p?>
+-Extract={!SHELL} unarj x %f '*'
+-#Extract (with flags)=I=%{Enter any Unarj flags:}; if test -n "$I"; then unarj x $I %f; fi
+-
+ # ha
+ [ha]
+ Open={!VFS}
+@@ -250,13 +243,6 @@ View={!VIEWER} <?ha lf %p?>
+ Extract={!SHELL} ha xy %f '*'
+ # Extract (with flags)=I=%{Enter any HA flags:}; if test -n "$I"; then ha xy $I %f; fi
+
+-# rar
+-[rar|r00|r02|r02|r03|r04|r05|r06|r07|r08|r09]
+-Open={!VFS}
+-View={!VIEWER} <?rar v -c- %p?>
+-Extract={!SHELL} rar x -c- %f '*'
+-# Extract (with flags)=I=%{Enter any RAR flags:}; if test -n "$I";then rar x $I %f; fi
+-
+ #compress
+ [Z]
+ Open={!VFS}
+@@ -287,11 +273,6 @@ Open={!VFS}
+ View={!VIEWER} <?bzip -dc %f 2>/dev/null?>
+ Uncompress={!SHELL} bunzip %f
+
+-# ace
+-[ace]
+-Open={!VFS}
+-Uncompress={!SHELL} unace e %p
+-
+ # Source RPMs (SuSE uses *.spm, others use *.src.rpm)
+ [spm|srcm]
+ Open={!VFS}
+diff --git a/install/darwin/doublecmd.xml b/install/darwin/doublecmd.xml
+index 3fffe77..4c2b8a4 100644
+--- a/install/darwin/doublecmd.xml
++++ b/install/darwin/doublecmd.xml
+@@ -92,11 +92,6 @@
+ <Path>%commander_path%/plugins/wcx/rpm/rpm.wcx</Path>
+ <Flags>4</Flags>
+ </WcxPlugin>
+- <WcxPlugin Enabled="True">
+- <ArchiveExt>rar</ArchiveExt>
+- <Path>%commander_path%/plugins/wcx/unrar/unrar.wcx</Path>
+- <Flags>68</Flags>
+- </WcxPlugin>
+ </WcxPlugins>
+ <WdxPlugins>
+ <WdxPlugin>
+diff --git a/install/darwin/install.sh b/install/darwin/install.sh
+index 48ca896..db3093c 100755
+--- a/install/darwin/install.sh
++++ b/install/darwin/install.sh
+@@ -18,7 +18,6 @@ mkdir -p $DC_INSTALL_DIR/plugins/wcx/cpio
+ mkdir -p $DC_INSTALL_DIR/plugins/wcx/deb
+ mkdir -p $DC_INSTALL_DIR/plugins/wcx/lzma
+ mkdir -p $DC_INSTALL_DIR/plugins/wcx/rpm
+-mkdir -p $DC_INSTALL_DIR/plugins/wcx/unrar
+ mkdir -p $DC_INSTALL_DIR/plugins/wcx/zip
+ # WDX plugins directories
+ mkdir -p $DC_INSTALL_DIR/plugins/wdx
+@@ -45,7 +44,6 @@ install -m 644 plugins/wcx/cpio/lib/cpio.wcx $DC_INSTALL_DIR/plugins/wcx/
+ install -m 644 plugins/wcx/deb/lib/deb.wcx $DC_INSTALL_DIR/plugins/wcx/deb/
+ install -m 644 plugins/wcx/lzma/lib/lzma.wcx $DC_INSTALL_DIR/plugins/wcx/lzma/
+ install -m 644 plugins/wcx/rpm/lib/rpm.wcx $DC_INSTALL_DIR/plugins/wcx/rpm/
+-install -m 644 plugins/wcx/unrar/lib/unrar.wcx $DC_INSTALL_DIR/plugins/wcx/unrar/
+ install -m 644 plugins/wcx/zip/lib/zip.wcx $DC_INSTALL_DIR/plugins/wcx/zip/
+ # WDX
+ install -m 644 plugins/wdx/rpm_wdx/lib/rpm_wdx.wdx $DC_INSTALL_DIR/plugins/wdx/rpm_wdx/
+diff --git a/install/darwin/lib/readme.txt b/install/darwin/lib/readme.txt
+index 5b81e6e..830ba48 100644
+--- a/install/darwin/lib/readme.txt
++++ b/install/darwin/lib/readme.txt
+@@ -1,2 +1 @@
+ Before create packages (before run create_packages.mac) copy in this directory third-party libraries:
+-- libunrar.dylib - needed for unrar plugin
+\ No newline at end of file
+diff --git a/install/linux/doublecmd.xml b/install/linux/doublecmd.xml
+index 8822d35..43a0e39 100644
+--- a/install/linux/doublecmd.xml
++++ b/install/linux/doublecmd.xml
+@@ -84,11 +84,6 @@
+ <Path>%commander_path%/plugins/wcx/rpm/rpm.wcx</Path>
+ <Flags>4</Flags>
+ </WcxPlugin>
+- <WcxPlugin Enabled="True">
+- <ArchiveExt>rar</ArchiveExt>
+- <Path>%commander_path%/plugins/wcx/unrar/unrar.wcx</Path>
+- <Flags>68</Flags>
+- </WcxPlugin>
+ </WcxPlugins>
+ <WdxPlugins>
+ <WdxPlugin>
+diff --git a/install/linux/install.sh b/install/linux/install.sh
+index a759335..2b19802 100755
+--- a/install/linux/install.sh
++++ b/install/linux/install.sh
+@@ -48,7 +48,6 @@ mkdir -p $DC_INSTALL_DIR/plugins/wcx/cpio
+ mkdir -p $DC_INSTALL_DIR/plugins/wcx/deb
+ mkdir -p $DC_INSTALL_DIR/plugins/wcx/lzma
+ mkdir -p $DC_INSTALL_DIR/plugins/wcx/rpm
+-mkdir -p $DC_INSTALL_DIR/plugins/wcx/unrar
+ mkdir -p $DC_INSTALL_DIR/plugins/wcx/zip
+ # WDX plugins directories
+ mkdir -p $DC_INSTALL_DIR/plugins/wdx
+@@ -80,7 +79,6 @@ install -m 644 plugins/wcx/cpio/lib/cpio.wcx $DC_INSTALL_DIR/plugins/wcx/
+ install -m 644 plugins/wcx/deb/lib/deb.wcx $DC_INSTALL_DIR/plugins/wcx/deb/
+ install -m 644 plugins/wcx/lzma/lib/lzma.wcx $DC_INSTALL_DIR/plugins/wcx/lzma/
+ install -m 644 plugins/wcx/rpm/lib/rpm.wcx $DC_INSTALL_DIR/plugins/wcx/rpm/
+-install -m 644 plugins/wcx/unrar/lib/unrar.wcx $DC_INSTALL_DIR/plugins/wcx/unrar/
+ install -m 644 plugins/wcx/zip/lib/zip.wcx $DC_INSTALL_DIR/plugins/wcx/zip/
+ # WDX
+ install -m 644 plugins/wdx/rpm_wdx/lib/rpm_wdx.wdx $DC_INSTALL_DIR/plugins/wdx/rpm_wdx/
+diff --git a/install/linux/lib/readme.txt b/install/linux/lib/readme.txt
+index 901d6b4..54df3a8 100644
+--- a/install/linux/lib/readme.txt
++++ b/install/linux/lib/readme.txt
+@@ -1,3 +1,2 @@
+ Before create packages (before run create_packages.sh) copy in this directory third-party libraries:
+-- libunrar.so - needed for unrar plugin
+-- libqt4intf.so - needed for qt4 version of Double Commander
+\ No newline at end of file
++- libqt4intf.so - needed for qt4 version of Double Commander
+diff --git a/install/windows/doublecmd.xml b/install/windows/doublecmd.xml
+index ad9b8c3..8105eef 100644
+--- a/install/windows/doublecmd.xml
++++ b/install/windows/doublecmd.xml
+@@ -72,11 +72,6 @@
+ <Path>%commander_path%\plugins\wcx\rpm\rpm.wcx</Path>
+ <Flags>4</Flags>
+ </WcxPlugin>
+- <WcxPlugin Enabled="True">
+- <ArchiveExt>rar</ArchiveExt>
+- <Path>%commander_path%\plugins\wcx\unrar\unrar.wcx</Path>
+- <Flags>68</Flags>
+- </WcxPlugin>
+ </WcxPlugins>
+ <WdxPlugins>
+ <WdxPlugin>
+diff --git a/install/windows/install.bat b/install/windows/install.bat
+index 5d55c99..ed32bf2 100644
+--- a/install/windows/install.bat
++++ b/install/windows/install.bat
+@@ -13,7 +13,6 @@ mkdir %DC_INSTALL_DIR%\plugins\wcx\cpio
+ mkdir %DC_INSTALL_DIR%\plugins\wcx\deb
+ mkdir %DC_INSTALL_DIR%\plugins\wcx\lzma
+ mkdir %DC_INSTALL_DIR%\plugins\wcx\rpm
+-mkdir %DC_INSTALL_DIR%\plugins\wcx\unrar
+ mkdir %DC_INSTALL_DIR%\plugins\wcx\zip
+ rem WDX plugins directories
+ mkdir %DC_INSTALL_DIR%\plugins\wdx
+@@ -45,7 +44,6 @@ copy plugins\wcx\cpio\lib\cpio.wcx %DC_INSTALL_DIR%\plugins\wcx\cpio\
+ copy plugins\wcx\deb\lib\deb.wcx %DC_INSTALL_DIR%\plugins\wcx\deb\
+ copy plugins\wcx\lzma\lib\lzma.wcx %DC_INSTALL_DIR%\plugins\wcx\lzma\
+ copy plugins\wcx\rpm\lib\rpm.wcx %DC_INSTALL_DIR%\plugins\wcx\rpm\
+-copy plugins\wcx\unrar\lib\unrar.wcx %DC_INSTALL_DIR%\plugins\wcx\unrar\
+ copy plugins\wcx\zip\lib\zip.wcx %DC_INSTALL_DIR%\plugins\wcx\zip\
+ rem WDX
+ copy plugins\wdx\rpm_wdx\lib\rpm_wdx.wdx %DC_INSTALL_DIR%\plugins\wdx\rpm_wdx\
+diff --git a/install/windows/lib/readme.txt b/install/windows/lib/readme.txt
+index 3aa11d8..5223b9d 100644
+--- a/install/windows/lib/readme.txt
++++ b/install/windows/lib/readme.txt
+@@ -1,2 +1 @@
+ Before create packages (before run create_packages.bat) copy in this directory third-party libraries:
+-- unrar.dll - needed for unrar plugin
+\ No newline at end of file
+diff --git a/multiarc.ini b/multiarc.ini
+index 7cad464..a837e36 100644
+--- a/multiarc.ini
++++ b/multiarc.ini
+@@ -37,89 +37,6 @@ Enabled=0
+ Output=0
+ Debug=0
+
+-[ACE]
+-Archiver=ace
+-Description=ACE v2.0.4
+-Extension=ace
+-Start=^Date
+-End=^listed:
+-Format0=dd.tt.yy hh:mm ppppppppppp zzzzzzzzz nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
+-List=%P v -y %AQA
+-Extract=%P x -y {-p%W} {%S} %AQA @%LQA
+-ExtractWithoutPath=%P e -y {-p%W} {%S} %AQA @%LQA
+-Test=%P t -y %AQA
+-Delete=%P d -y %AQA @%LQA
+-Add=%P a -y {-p%W} {-v%V} {%S} %AQA @%LQA
+-AddSelfExtract=%P a -y -sfx {-p%W} {-v%V} {%S} %AQA @%LQA
+-Enabled=0
+-Output=0
+-Debug=0
+-
+-[ARJ]
+-Description=ARJ 3.15 by ARJ Software, Inc.
+-Archiver=arj
+-ID=60 EA
+-IDPos=0
+-Extension=arj
+-Start=^------------
+-End=^------------
+-Format0=* nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
+-Format1=???????????? zzzzzzzzzz pppppppppp yy-tt-dd hh:mm:ss aaaaaa
+-Format2=?
+-Format3=?
+-List=%P v %AQA
+-Extract=%P x -y {-g%W} {%S} %AQA !%LQA
+-ExtractWithoutPath=%P e -y {-g%W} {%S} %AQA !%LQA
+-Test=%P t -y {%S} %AQA
+-Delete=%P d -y {%S} %AQA !%LQA
+-Add=%P a -y {-g%W} {-v%V} {%S} %AQA !%LQA
+-Enabled=0
+-Output=0
+-Debug=0
+-
+-[RAR]
+-Description=RAR 4.00 - http://www.rarlab.com
+-Extension=rar
+-Archiver=rar
+-Start=^------------
+-End=^------------
+-Format0=?nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
+-Format1=zzzzzzzzzzzzzzzzzzzzzz pppppppp dd-tt-yy hh:mm aaaaaaa
+-List=%P v %AQA
+-Extract=%P x -y {-p%W} {%S} %AQA @%LQ
+-ExtractWithoutPath=%P e -y {-p%W} {%S} %AQA @%LQ
+-Test=%P t -y {%S} %AQA
+-Delete=%P d -y {%S} %AQA @%LQ
+-Add=%P a -y {-p%W} {-v%V} {%S} %AQA @%LQ
+-AddSelfExtract=%P a -y -sfx {-p%W} {-v%V} {%S} %AQA @%LQ
+-PasswordQuery=Enter password
+-Enabled=0
+-Output=0
+-Debug=0
+-
+-[RAR (5)]
+-Archiver=rar
+-Description=RAR 5.x - http://www.rarlab.com
+-ID=52 61 72 21
+-IDPos=<SeekID>
+-IDSeekRange=
+-Extension=rar
+-Start=^-----------
+-End=^-----------
+-Format0=aaaaaaaaaaa zzzzzzzzz dd-tt-yy hh:mm nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
+-List=%P l %AQA
+-Extract=%P x -y {-p%W} {%S} %AQA @%LQA
+-ExtractWithoutPath=%P e -y {-p%W} {%S} %AQA @%LQA
+-Test=%P t -y {%S} %AQA
+-Delete=%P d -y {%S} %AQA @%LQA
+-Add=%P a -y {-p%W} {-v%V} {%S} %AQA @%LQA
+-AddSelfExtract=%P a -y -sfx {-p%W} {-v%V} {%S} %AQA @%LQA
+-PasswordQuery=Enter password
+-FormMode=0
+-Enabled=0
+-Output=0
+-Debug=0
+-
+ [TXZ]
+ Archiver=tar
+ Description=Compressed tar file (tar.xz)
+diff --git a/plugins/build.bat b/plugins/build.bat
+index bc52bb4..44688ad 100644
+--- a/plugins/build.bat
++++ b/plugins/build.bat
+@@ -14,7 +14,6 @@ lazbuild wcx\cpio\src\cpio.lpi %DC_ARCH%
+ lazbuild wcx\deb\src\deb.lpi %DC_ARCH%
+ lazbuild wcx\lzma\src\lzma.lpi %DC_ARCH%
+ lazbuild wcx\rpm\src\rpm.lpi %DC_ARCH%
+-lazbuild wcx\unrar\src\unrar.lpi %DC_ARCH%
+ lazbuild wcx\zip\src\zip.lpi %DC_ARCH%
+
+ rem WDX plugins
+@@ -43,10 +42,6 @@ pushd wcx\rpm\lib\
+ strip --strip-all rpm.wcx
+ popd
+
+-pushd wcx\unrar\lib\
+-strip --strip-all unrar.wcx
+-popd
+-
+ pushd wcx\zip\lib\
+ strip --strip-all zip.wcx
+ popd
+diff --git a/plugins/build.sh b/plugins/build.sh
+index a9c34ba..fc34b91 100755
+--- a/plugins/build.sh
++++ b/plugins/build.sh
+@@ -14,7 +14,6 @@ $lazbuild wcx/cpio/src/cpio.lpi $DC_ARCH
+ $lazbuild wcx/deb/src/deb.lpi $DC_ARCH
+ $lazbuild wcx/lzma/src/lzma.lpi $DC_ARCH
+ $lazbuild wcx/rpm/src/rpm.lpi $DC_ARCH
+-$lazbuild wcx/unrar/src/unrar.lpi $DC_ARCH
+ $lazbuild wcx/zip/src/Zip.lpi $DC_ARCH
+
+ # WDX plugins
+@@ -50,10 +49,6 @@ cd wcx/rpm/lib/
+ strip --strip-all rpm.wcx
+ cd $pluginsdir
+
+-cd wcx/unrar/lib/
+-strip --strip-all unrar.wcx
+-cd $pluginsdir
+-
+ cd wcx/zip/lib/
+ strip --strip-all zip.wcx
+ cd $pluginsdir
+diff --git a/plugins/wcx/lzma/LZMA/Methods.txt b/plugins/wcx/lzma/LZMA/Methods.txt
+index 393e1b0..9426718 100644
+--- a/plugins/wcx/lzma/LZMA/Methods.txt
++++ b/plugins/wcx/lzma/LZMA/Methods.txt
+@@ -73,13 +73,6 @@ List of defined IDs
+ 12 - BZip2 (not used). Use {04 02 02} instead
+ 02 - BZip
+ 02 - BZip2
+- 03 - Rar
+- 01 - Rar15
+- 02 - Rar20
+- 03 - Rar29
+- 04 - Arj
+- 01 - Arj (1,2,3)
+- 02 - Arj 4
+ 05 - Z
+ 06 - Lzh
+ 07 - Reserved for 7z
+@@ -109,9 +102,6 @@ List of defined IDs
+ F1 - Misc Ciphers (Combine)
+ 01 - Zip
+ 01 - Main Zip crypto algo
+- 03 - RAR
+- 02 -
+- 03 - Rar29 AES-128 + (modified SHA-1)
+ 07 - 7z
+ 01 - AES-256 + SHA-256
+
+@@ -126,8 +116,6 @@ List of defined IDs
+ F0 - Misc Hash
+
+ F1 - Misc
+- 03 - RAR
+- 03 - Rar29 Password Hashing (modified SHA1)
+ 07 - 7z
+ 01 - SHA-256 Password Hashing
+
+diff --git a/src/platform/udefaultplugins.pas b/src/platform/udefaultplugins.pas
+index 7dfa48a..5045f03 100644
+--- a/src/platform/udefaultplugins.pas
++++ b/src/platform/udefaultplugins.pas
+@@ -149,12 +149,6 @@ begin
+ else
+ gWCXPlugins.Flags[I]:= 4;
+
+- I:= gWCXPlugins.IndexOfName('rar');
+- if I < 0 then
+- gWCXPlugins.Add('rar', 68, Folder + 'unrar' + PathDelim + 'unrar.wcx')
+- else
+- gWCXPlugins.Flags[I]:= 68;
+-
+ // Wfx plugins
+ Folder:= '%commander_path%' + PathDelim + 'plugins' + PathDelim + 'wfx' + PathDelim;
+
diff --git a/libre/dvdrip-libre/PKGBUILD b/libre/dvdrip-libre/PKGBUILD
index 06dee1752..3ec202039 100644
--- a/libre/dvdrip-libre/PKGBUILD
+++ b/libre/dvdrip-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 102182 2013-12-06 12:17:23Z giovanni $
-# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
-# Contributor: Fredrik Hammar <Horney_C86@Hotmail.com>
-# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer (Arch): Giovanni Scafora <giovanni@archlinux.org>
+# Contributor (Arch): Fredrik Hammar <Horney_C86@Hotmail.com>
+# Maintainer: Márcio Silva <coadde@parabola.nu>
_pkgname=dvdrip
pkgname=dvdrip-libre
diff --git a/libre/dvdrtools-libre/PKGBUILD b/libre/dvdrtools-libre/PKGBUILD
index 63a3fba1d..81fb29999 100644
--- a/libre/dvdrtools-libre/PKGBUILD
+++ b/libre/dvdrtools-libre/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 78820 2012-10-25 06:47:28Z foutrelis $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: dorphell <dorphell@archlinux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Alexander Baldeck <alexander@archlinux.org>
+# Contributor (Arch): dorphell <dorphell@archlinux.org>
+# Contributor (Arch): Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=dvdrtools
pkgname=dvdrtools-libre
diff --git a/libre/ecasound-libre/PKGBUILD b/libre/ecasound-libre/PKGBUILD
index 4c2586f5d..029fc5643 100644
--- a/libre/ecasound-libre/PKGBUILD
+++ b/libre/ecasound-libre/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 205044 2014-02-03 17:11:21Z schiv $
-# Maintainer: Ray Rashif <schiv@archlinux.org>
-# Contributor: Eric Belanger <eric@archlinux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Ray Rashif <schiv@archlinux.org>
+# Contributor (Arch): Eric Belanger <eric@archlinux.org>
+# Contributor (Arch): Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=ecasound
pkgname=ecasound-libre
@@ -22,9 +22,9 @@ optdepends=('python2: ecamonitor, ECI API'
'faad2: AAC decoding'
'timidity++: MIDI file input'
'libmikmod: tracker module')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
source=("http://ecasound.seul.org/download/$_pkgname-$pkgver.tar.gz"
'ruby2.patch')
md5sums=('13c7be1e4eddc0bbf3792dc17777e465'
diff --git a/libre/engrampa-libre/PKGBUILD b/libre/engrampa-libre/PKGBUILD
index a109e8839..3a5a35e21 100644
--- a/libre/engrampa-libre/PKGBUILD
+++ b/libre/engrampa-libre/PKGBUILD
@@ -1,16 +1,16 @@
-# $Id: PKGBUILD 106530 2014-03-05 20:15:56Z flexiondotorg $
-# Maintainer : Martin Wimpress <code@flexion.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# $Id: PKGBUILD 107641 2014-03-18 11:10:40Z flexiondotorg $
+# Maintainer (Arch): Martin Wimpress <code@flexion.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=engrampa
pkgname=engrampa-libre
pkgver=1.8.0
-pkgrel=1
+pkgrel=1.1
pkgdesc="Archive manipulator for MATE, with unar recommendation included and nonfree unace recommendation removed"
url="http://mate-desktop.org"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
-depends=('bzip2' 'caja' 'desktop-file-utils' 'gtk2' 'gzip' 'libarchive' 'tar')
+depends=('bzip2' 'caja' 'desktop-file-utils' 'gtk2' 'gzip' 'libarchive' 'tar' 'json-glib')
makedepends=('mate-common' 'perl-xml-parser' 'yelp-tools')
optdepends=('unar: for RAR uncompression'
'zip: for ZIP archives' 'unzip: for ZIP archives'
@@ -19,7 +19,6 @@ optdepends=('unar: for RAR uncompression'
replaces=('mate-file-archiver' "$_pkgname")
provides=('mate-file-archiver' "$_pkgname=$pkgver")
conflicts=('mate-file-archiver' "$_pkgname")
-options=( '!emptydirs')
groups=('mate-extra')
source=("http://pub.mate-desktop.org/releases/1.8/${_pkgname}-${pkgver}.tar.xz"
fr-rpm-bsdtar.patch)
diff --git a/libre/epdfview-libre/PKGBUILD b/libre/epdfview-libre/PKGBUILD
index c3e4e2bb3..b5ab969a6 100644
--- a/libre/epdfview-libre/PKGBUILD
+++ b/libre/epdfview-libre/PKGBUILD
@@ -1,11 +1,11 @@
# $Id: PKGBUILD 105182 2014-02-02 12:39:48Z bpiotrowski $
-# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
-# Maintainer: Kyle Keen <keenerd@gmail.com>
-# Contributor: schuay <jakob.gruber@gmail.com>
-# Contributor: Tom K <tomk@runbox.com>
-# Contributor: Thayer Williams <thayer@archlinux.org>
-# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
-# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
+# Maintainer (Arch): Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+# Maintainer (Arch): Kyle Keen <keenerd@gmail.com>
+# Contributor (Arch): schuay <jakob.gruber@gmail.com>
+# Contributor (Arch): Tom K <tomk@runbox.com>
+# Contributor (Arch): Thayer Williams <thayer@archlinux.org>
+# Maintainer: Márcio Silva <coadde@parabola.nu>
+# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
pkgname=epdfview-libre
_pkgname=epdfview
diff --git a/libre/epiphany-libre/PKGBUILD b/libre/epiphany-libre/PKGBUILD
index c514c7156..54c337d9f 100644
--- a/libre/epiphany-libre/PKGBUILD
+++ b/libre/epiphany-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 209155 2014-03-29 20:13:41Z heftig $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer (Arch): Jan de Groot <jgc@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Márcio Silva <coadde@parabola.nu>
_pkgname=epiphany
pkgname=epiphany-libre
@@ -13,9 +13,9 @@ arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
depends=('libsoup' 'libnotify' 'gsettings-desktop-schemas' 'webkitgtk' 'nss' 'iso-codes' 'dconf' 'desktop-file-utils' 'gnome-icon-theme-symbolic' 'gcr' 'gnome-desktop' 'libwnck3' 'gnome-themes-standard')
makedepends=('intltool' 'itstool' 'docbook-xml' 'startup-notification' 'gobject-introspection')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
options=('!emptydirs')
groups=('gnome')
url="https://wiki.gnome.org/Apps/Web"
diff --git a/libre/evince-libre/PKGBUILD b/libre/evince-libre/PKGBUILD
new file mode 100644
index 000000000..d63bd54d9
--- /dev/null
+++ b/libre/evince-libre/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 210357 2014-04-14 17:00:49Z jgc $
+# Maintainer (Arch): Jan de Groot <jgc@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+
+_pkgname=evince
+pkgname=evince-libre
+pkgver=3.12.1
+pkgrel=1
+pkgdesc="Document viewer (PDF, Postscript, djvu, tiff, dvi, XPS, SyncTex support with gedit, comics books (cbr,cbz,cb7 and cbt)), with libarchive support"
+url="https://wiki.gnome.org/Apps/Evince"
+arch=(i686 x86_64 mips64el)
+license=(GPL)
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
+depends=(gtk3 libgxps libspectre gsfonts poppler-glib djvulibre gnome-icon-theme t1lib libsecret desktop-file-utils dconf gsettings-desktop-schemas)
+makedepends=(itstool libnautilus-extension texlive-bin intltool gobject-introspection docbook-xsl python)
+optdepends=('texlive-bin: DVI support'
+ 'gvfs: bookmark support and session saving'
+ 'p7zip: cbz and cb7 compressed comic books'
+ 'tar: cbt compressed comic books'
+ 'libarchive: cbr compressed comic books')
+groups=(gnome)
+install=evince.install
+options=('!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver:0:4}/$_pkgname-$pkgver.tar.xz
+ libarchive.patch)
+sha256sums=('ef22cc29a7cbe70d2e7ce8c0b5b7ee774187ea69f3ae49a64c6d4a91559ef137'
+ '023f01f40c5efb8bf245d97067b3ef1da74f96a0bc53e53eb3d990d6c29b9e5e')
+prepare() {
+ cd $_pkgname-$pkgver
+ patch -Np1 -i ../libarchive.patch
+}
+
+build() {
+ cd $_pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib/evince \
+ --disable-static --enable-nautilus \
+ --enable-pdf --enable-tiff \
+ --enable-djvu --enable-dvi \
+ --enable-t1lib --enable-comics \
+ --disable-scrollkeeper --disable-schemas-compile \
+ --enable-introspection
+ make
+}
+
+package() {
+ cd $_pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/libre/evince-libre/evince.install b/libre/evince-libre/evince.install
new file mode 100644
index 000000000..1571179ca
--- /dev/null
+++ b/libre/evince-libre/evince.install
@@ -0,0 +1,13 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/evince-libre/libarchive.patch b/libre/evince-libre/libarchive.patch
new file mode 100644
index 000000000..f86908267
--- /dev/null
+++ b/libre/evince-libre/libarchive.patch
@@ -0,0 +1,91 @@
+diff --git a/backend/comics/comics-document.c b/backend/comics/comics-document.c
+index a135a74..380cb54 100644
+--- a/backend/comics/comics-document.c
++++ b/backend/comics/comics-document.c
+@@ -54,8 +54,7 @@
+
+ typedef enum
+ {
+- RARLABS,
+- GNAUNRAR,
++ LIBARCHIVE,
+ UNZIP,
+ P7ZIP,
+ TAR
+@@ -107,11 +106,8 @@ typedef struct {
+ } ComicBookDecompressCommand;
+
+ static const ComicBookDecompressCommand command_usage_def[] = {
+- /* RARLABS unrar */
+- {"%s p -c- -ierr --", "%s vb -c- -- %s", NULL , FALSE, NO_OFFSET},
+-
+- /* GNA! unrar */
+- {NULL , "%s t %s" , "%s -xf %s %s" , FALSE, NO_OFFSET},
++ /* libarchive */
++ {NULL , "%s tf %s" , "%s xf %s %s" , FALSE, NO_OFFSET},
+
+ /* unzip */
+ {"%s -p -C --" , "%s %s" , NULL , TRUE , OFFSET_ZIP},
+@@ -282,7 +278,7 @@ comics_generate_command_lines (ComicsDocument *comics_document,
+ if (comics_document->dir == NULL)
+ return FALSE;
+
+- /* unrar-free can't create directories, but ev_mkdtemp already created the dir */
++ /* libarchive can't create directories on rar support, but ev_mkdtemp already created the dir */
+
+ comics_document->decompress_tmp =
+ g_strdup_printf (command_usage_def[type].decompress_tmp,
+@@ -321,51 +317,10 @@ comics_check_decompress_command (gchar *mime_type,
+
+ if (!strcmp (mime_type, "application/x-cbr") ||
+ !strcmp (mime_type, "application/x-rar")) {
+- /* The RARLAB provides a no-charge proprietary (freeware)
+- * decompress-only client for Linux called unrar. Another
+- * option is a GPLv2-licensed command-line tool developed by
+- * the Gna! project. Confusingly enough, the free software RAR
+- * decoder is also named unrar. For this reason we need to add
+- * some lines for disambiguation. Sorry for the added the
+- * complexity but it's life :)
+- * Finally, some distributions, like Debian, rename this free
+- * option as unrar-free.
+- * */
+- comics_document->selected_command =
+- g_find_program_in_path ("unrar");
+- if (comics_document->selected_command) {
+- /* We only use std_err to avoid printing useless error
+- * messages on the terminal */
+- success =
+- g_spawn_command_line_sync (
+- comics_document->selected_command,
+- &std_out, &std_err,
+- &retval, &err);
+- if (!success) {
+- g_propagate_error (error, err);
+- g_error_free (err);
+- return FALSE;
+- /* I don't check retval status because RARLAB unrar
+- * doesn't have a way to return 0 without involving an
+- * operation with a file*/
+- } else if (WIFEXITED (retval)) {
+- if (g_strrstr (std_out,"freeware") != NULL)
+- /* The RARLAB freeware client */
+- comics_document->command_usage = RARLABS;
+- else
+- /* The Gna! free software client */
+- comics_document->command_usage = GNAUNRAR;
+-
+- g_free (std_out);
+- g_free (std_err);
+- return TRUE;
+- }
+- }
+- /* The Gna! free software client with Debian naming convention */
+ comics_document->selected_command =
+- g_find_program_in_path ("unrar-free");
++ g_find_program_in_path ("bsdtar");
+ if (comics_document->selected_command) {
+- comics_document->command_usage = GNAUNRAR;
++ comics_document->command_usage = LIBARCHIVE;
+ return TRUE;
+ }
+
diff --git a/libre/file-roller-libre/PKGBUILD b/libre/file-roller-libre/PKGBUILD
index d49171165..61a93256a 100644
--- a/libre/file-roller-libre/PKGBUILD
+++ b/libre/file-roller-libre/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 210597 2014-04-15 08:53:40Z jgc $
-# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# Maintainer (Arch): Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor (Arch): Jan de Groot <jgc@archlinux.org>
_pkgname=file-roller
pkgname=file-roller-libre
diff --git a/libre/filesystem/PKGBUILD b/libre/filesystem/PKGBUILD
index 69edeeb16..1ed9e7d46 100644
--- a/libre/filesystem/PKGBUILD
+++ b/libre/filesystem/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 180021 2013-03-14 19:23:11Z dreisner $
-# Maintainer: Tom Gundersen <teg@jklm.no>
-# Maintainer (Parabola): Nicolás Reynolds <fauno@kiwwwi.com.ar>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Tom Gundersen <teg@jklm.no>
+# Maintainer: Nicolás Reynolds <fauno@kiwwwi.com.ar>
+# Maintainer: André Silva <emulatorman@parabola.nu>
pkgname=filesystem
pkgver=2013.05
diff --git a/libre/gloobus-preview-libre/PKGBUILD b/libre/gloobus-preview-libre/PKGBUILD
index 0a7cf95d5..63fbe916e 100644
--- a/libre/gloobus-preview-libre/PKGBUILD
+++ b/libre/gloobus-preview-libre/PKGBUILD
@@ -1,5 +1,5 @@
# $Id: PKGBUILD 104564 2014-01-22 21:49:14Z bgyorgy $
-# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+# Maintainer (Arch): Balló György <ballogyor+arch at gmail dot com>
_pkgname=gloobus-preview
pkgname=gloobus-preview-libre
@@ -12,9 +12,9 @@ url="http://gloobus.net/"
license=('GPL')
depends=('gstreamer0.10-base-plugins' 'gtksourceview3' 'poppler-glib' 'python2-dbus' 'python2-gobject' 'gconf' 'taglib' 'xdg-utils')
makedepends=('boost' 'bzr' 'djvulibre' 'libspectre')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
optdepends=('djvulibre: Preview DjVu documents'
'gstreamer0.10-bad-plugins: Extra media codecs'
'gstreamer0.10-good-plugins: Extra media codecs'
diff --git a/libre/gnome-boxes-libre/PKGBUILD b/libre/gnome-boxes-libre/PKGBUILD
new file mode 100644
index 000000000..2e516655e
--- /dev/null
+++ b/libre/gnome-boxes-libre/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 109557 2014-04-15 23:23:01Z bgyorgy $
+# Maintainer (Arch): Balló György <ballogyor+arch at gmail dot com>
+# Contributor (Arch): Stefano Facchini <stefano.facchini@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Daniel Milewski <niitotantei@gmail.com>
+
+_pkgname=gnome-boxes
+pkgname=gnome-boxes-libre
+pkgver=3.12.1
+pkgrel=1
+pkgdesc="Simple GNOME 3 application to access remote or virtual systems, without nonfree system logos"
+arch=('i686' 'x86_64')
+url="https://wiki.gnome.org/Apps/Boxes"
+license=('LGPL')
+provides=($_pkgname=$pkgver)
+conflicts=($_pkgname)
+replaces=($_pkgname)
+depends=('clutter-gtk' 'gtk-vnc' 'libosinfo' 'libsoup' 'libvirt-glib' 'spice-gtk3'
+ 'libtracker-sparql' 'qemu' 'cdrkit' 'libcdio' 'mtools' 'dconf'
+ 'gnome-icon-theme' 'gnome-themes-standard')
+makedepends=('gobject-introspection' 'intltool' 'itstool' 'spice-protocol' 'vala')
+install=$_pkgname.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$_pkgname/${pkgver%.*}/$_pkgname-$pkgver.tar.xz
+ libre.patch)
+sha256sums=('b5e27756a9c485ce2dea3f8eae867b6c7be70862b16cc44f9b55d86dd633bb83'
+ '2a93935ba94b9f327645a92f11d1a3d23cbeab8e5c800e414c6762181f51d4c0')
+
+prepare() {
+ cd $_pkgname-$pkgver
+
+ patch -Np1 -i "$srcdir/libre.patch"
+}
+
+build() {
+ cd $_pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$_pkgname \
+ --disable-static --disable-schemas-compile --enable-smartcard
+ make
+}
+
+package() {
+ cd $_pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/libre/gnome-boxes-libre/gnome-boxes.install b/libre/gnome-boxes-libre/gnome-boxes.install
new file mode 100644
index 000000000..c0ed9a0d7
--- /dev/null
+++ b/libre/gnome-boxes-libre/gnome-boxes.install
@@ -0,0 +1,12 @@
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/gnome-boxes-libre/libre.patch b/libre/gnome-boxes-libre/libre.patch
new file mode 100644
index 000000000..0caf82691
--- /dev/null
+++ b/libre/gnome-boxes-libre/libre.patch
@@ -0,0 +1,69 @@
+diff -Nur gnome-boxes-3.12.1.orig/data/gnome-boxes-logos-db.xml gnome-boxes-3.12.1/data/gnome-boxes-logos-db.xml
+--- gnome-boxes-3.12.1.orig/data/gnome-boxes-logos-db.xml 2014-03-18 14:33:22.000000000 +0100
++++ gnome-boxes-3.12.1/data/gnome-boxes-logos-db.xml 2014-04-27 22:40:15.543230347 +0200
+@@ -2,40 +2,4 @@
+
+ <!-- Please read README.logos for any questions about usage of product logos in Boxes. !-->
+
+- <os id="http://debian.org/debian/1.0">
+- <logo>http://www.debian.org/logos/openlogo-nd.svg</logo>
+- </os>
+-
+- <os id="http://fedoraproject.org/fedora/1">
+- <logo>http://people.gnome.org/~zeeshanak/logos/fedora.svg</logo>
+- </os>
+-
+- <os id="http://opensuse.org/opensuse/10.2">
+- <logo>http://people.gnome.org/~zeeshanak/logos/opensuse.svg</logo>
+- </os>
+-
+- <os id="http://ubuntu.com/ubuntu/4.10">
+- <logo>http://people.gnome.org/~zeeshanak/logos/ubuntu.svg</logo>
+- </os>
+-
+- <os id="http://gnome.org/3.6">
+- <logo>http://people.gnome.org/~zeeshanak/logos/gnome-logo.svg</logo>
+- </os>
+-
+- <os id="http://redhat.com/rhel/4.0">
+- <logo>http://people.gnome.org/~zeeshanak/logos/shadownman-pill.svg</logo>
+- </os>
+-
+- <os id="http://redhat.com/rhel/5.0">
+- <logo>http://people.gnome.org/~zeeshanak/logos/shadownman-pill.svg</logo>
+- </os>
+-
+- <os id="http://redhat.com/rhel/6.0">
+- <logo>http://people.gnome.org/~zeeshanak/logos/shadownman-pill.svg</logo>
+- </os>
+-
+- <os id="http://redhat.com/rhel/7.0">
+- <logo>http://people.gnome.org/~zeeshanak/logos/shadownman-pill.svg</logo>
+- </os>
+-
+ </libosinfo>
+diff -Nur gnome-boxes-3.12.1.orig/help/C/why-do-i-need-virtual-machine.page gnome-boxes-3.12.1/help/C/why-do-i-need-virtual-machine.page
+--- gnome-boxes-3.12.1.orig/help/C/why-do-i-need-virtual-machine.page 2014-03-25 12:30:55.000000000 -0300
++++ gnome-boxes-3.12.1/help/C/why-do-i-need-virtual-machine.page 2014-05-08 03:25:21.826398198 -0300
+@@ -27,8 +27,7 @@
+ <title>Why do I need a virtual machine?</title>
+
+ <p>A virtual machine can be useful when you need to run applications that will
+- only run on another operating system, on Microsoft Windows™ for instance. A
+- virtual machine can also be used during software development, to test in a
+- pristine environment.</p>
++ only run on another operating system. A virtual machine can also be used during
++ software development, to test in a pristine environment.</p>
+
+ </page>
+diff -Nur gnome-boxes-3.12.1.orig/help/es/why-do-i-need-virtual-machine.page gnome-boxes-3.12.1/help/es/why-do-i-need-virtual-machine.page
+--- gnome-boxes-3.12.1.orig/help/es/why-do-i-need-virtual-machine.page 2014-04-15 13:04:58.000000000 -0300
++++ gnome-boxes-3.12.1/help/es/why-do-i-need-virtual-machine.page 2014-05-08 03:26:15.686908834 -0300
+@@ -30,6 +30,6 @@
+
+ <title>¿Para qué necesito una máquina virtual?</title>
+
+- <p>Una máquina virtual puede ser útil cuando necesita ejecutar aplicaciones que sólo funcionan en otro sistema operativo, por ejemplo en Microsoft Windows™. También puede usar una máquina virtual durante el desarrollo de un software, para probarlo en un entorno limpio.</p>
++ <p>Una máquina virtual puede ser útil cuando necesita ejecutar aplicaciones que sólo funcionan en otro sistema operativo. También puede usar una máquina virtual durante el desarrollo de un software, para probarlo en un entorno limpio.</p>
+
+ </page>
diff --git a/libre/gnome-menus/PKGBUILD b/libre/gnome-menus/PKGBUILD
index 186473b5b..07f64ea10 100644
--- a/libre/gnome-menus/PKGBUILD
+++ b/libre/gnome-menus/PKGBUILD
@@ -1,5 +1,5 @@
# $Id$
-# Maintainer: Jan de Groot <jan@archlinux.org>
+# Maintainer (Arch): Jan de Groot <jan@archlinux.org>
pkgname=gnome-menus
pkgver=3.6.2
diff --git a/libre/gnormalize-libre/PKGBUILD b/libre/gnormalize-libre/PKGBUILD
index 75edbfc1e..36219be72 100644
--- a/libre/gnormalize-libre/PKGBUILD
+++ b/libre/gnormalize-libre/PKGBUILD
@@ -1,9 +1,9 @@
# $Id: PKGBUILD 91575 2013-05-24 12:41:56Z arodseth $
-# Maintainer: Alexander Rødseth <rodseth@gmail.com>
-# Contributor: Chris Brannon <cmbrannon79@gmail.com>
-# Contributor: Corrado Primier <bardo@aur.archlinux.org>
-# Contributor:JZsolt Varadi (karmaxxl)
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Alexander Rødseth <rodseth@gmail.com>
+# Contributor (Arch): Chris Brannon <cmbrannon79@gmail.com>
+# Contributor (Arch): Corrado Primier <bardo@aur.archlinux.org>
+# Contributor (Arch):JZsolt Varadi (karmaxxl)
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=gnormalize
pkgname=gnormalize-libre
@@ -26,9 +26,9 @@ optdepends=('flac: FLAC encoding, FLAC playing in conjunction with mplayer'
'cdparanoia: CD ripping'
'cdrkit: CD ripping - alternative to cdparanoia'
'wavegain: sound normalization')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
install=gnormalize.install
source=("http://downloads.sourceforge.net/sourceforge/gnormalize/${_pkgname}-${pkgver}.tar.gz")
sha256sums=('80fd9aa2da8d7fcc88bd180be2adce1aed863bedba7d715144029bd95b61ccb6')
diff --git a/libre/grub-legacy/PKGBUILD b/libre/grub-legacy/PKGBUILD
index 57aaa2840..41c63052a 100644
--- a/libre/grub-legacy/PKGBUILD
+++ b/libre/grub-legacy/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 142375 2011-11-08 22:04:23Z ronald $
-# Maintainer: Ronald van Haren <ronald.archlinux.org>
-# Maintainer: ava1ar <mail(dot)avatar(at)gmail(dot)com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Jorge López <jorginho@lavabit.com>
+# Maintainer (Arch): Ronald van Haren <ronald.archlinux.org>
+# Maintainer (Arch): ava1ar <mail(dot)avatar(at)gmail(dot)com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Jorge López <jorginho@lavabit.com>
pkgname=grub-legacy
_srcname=grub
diff --git a/libre/grub/PKGBUILD b/libre/grub/PKGBUILD
index ecf9bade2..f105a8932 100644
--- a/libre/grub/PKGBUILD
+++ b/libre/grub/PKGBUILD
@@ -1,8 +1,8 @@
-# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
-# Maintainer : Ronald van Haren <ronald.archlinux.org>
-# Contributor: Keshav Padram Amburay <(the ddoott ridikulus ddoott rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer (Arch): Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer (Arch): Ronald van Haren <ronald.archlinux.org>
+# Contributor (Arch): Keshav Padram Amburay <(the ddoott ridikulus ddoott rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Márcio Silva <coadde@parabola.nu>
_pkgver="2.02"
_GRUB_GIT_TAG="grub-2.02-beta2"
@@ -15,7 +15,7 @@ _UNIFONT_VER="6.3.20131217"
pkgname="grub"
pkgdesc="GNU GRand Unified Bootloader (2), (Parabola rebranded)"
pkgver=2.02.beta2
-pkgrel=2.1
+pkgrel=3.1
epoch="1"
url="https://www.gnu.org/software/grub/"
arch=('x86_64' 'i686')
@@ -47,7 +47,8 @@ source=("grub-${_pkgver}::git+git://git.sv.gnu.org/grub.git#tag=${_GRUB_GIT_TAG}
'09_parabola'
'60_memtest86+'
'grub.default'
- '10_linux.in.patch')
+ 'grub-10_linux-rebrand-free-distros.patch')
+
md5sums=('SKIP'
'SKIP'
'728b7439ac733a7c0d56049adec364c7'
@@ -55,10 +56,10 @@ md5sums=('SKIP'
'e506ae4a9f9f7d1b765febfa84e10d48'
'9f67330f2979a153acb32af706e0c094'
'be55eabc102f2c60b38ed35c203686d6'
- '52d374e0194e3f2e39ff7c92ecd58a6c'
+ '8d1dd54ae4a1b550c097e056892ce953'
'b23a144b7001c88734b79ed3bec491c4')
-pkgver() {
+_pkgver() {
cd "${srcdir}/grub-${_pkgver}/"
echo "$(git describe --tags)" | sed -e 's|grub.||g' -e 's|-|\.|g'
}
@@ -76,7 +77,7 @@ prepare() {
sed 's|/usr/share/fonts/dejavu|/usr/share/fonts/dejavu /usr/share/fonts/TTF|g' -i "${srcdir}/grub-${_pkgver}/configure.ac"
msg "Rebranding for some free distros"
- patch -Np1 -i "${srcdir}/10_linux.in.patch"
+ patch -Np1 -i "${srcdir}/grub-10_linux-rebrand-free-distros.patch"
echo
msg "Fix mkinitcpio 'rw' FS#36275"
@@ -236,7 +237,7 @@ _package_grub-common_and_bios() {
rm -f "${pkgdir}/usr/lib/grub/i386-pc"/*.module || true
rm -f "${pkgdir}/usr/lib/grub/i386-pc"/*.image || true
rm -f "${pkgdir}/usr/lib/grub/i386-pc"/{kernel.exec,gdb_grub,gmodule.pl} || true
-
+
msg "Install 09_parabola helper script for grub-mkconfig"
install -D -m0755 "${srcdir}/09_parabola" "${pkgdir}/etc/grub.d/09_parabola"
diff --git a/libre/grub/grub-10_linux-detect-parabola-initramfs.patch b/libre/grub/grub-10_linux-detect-parabola-initramfs.patch
new file mode 100644
index 000000000..18d9d520c
--- /dev/null
+++ b/libre/grub/grub-10_linux-detect-parabola-initramfs.patch
@@ -0,0 +1,54 @@
+From b470ffd22e43acc7c11231180187a720efd88de1 Mon Sep 17 00:00:00 2001
+From: Keshav Amburay <the.ridikulus.rat@gmail.com>
+Date: Sat, 5 Apr 2014 20:40:51 -0400
+Subject: [PATCH] 10_linux: Detect Arch Linux main and fallback initramfs
+ images
+
+---
+ util/grub.d/10_linux.in | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
+index 00d1931..7d4086b 100644
+--- a/util/grub.d/10_linux.in
++++ b/util/grub.d/10_linux.in
+@@ -81,6 +81,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
+@@ -180,7 +182,7 @@ while [ "x$list" != "x" ] ; do
+ basename=`basename $linux`
+ dirname=`dirname $linux`
+ rel_dirname=`make_system_path_relative_to_its_root $dirname`
+- version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
++ version=`echo $basename | sed -e "s,vmlinuz-,,g"`
+ alt_version=`echo $version | sed -e "s,\.old$,,g"`
+ linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
+
+@@ -236,6 +238,18 @@ while [ "x$list" != "x" ] ; do
+
+ linux_entry "${OS}" "${version}" advanced \
+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
++
++ if test -e "${dirname}/initramfs-${version}-fallback.img" ; then
++ initrd="initramfs-${version}-fallback.img"
++
++ if test -n "${initrd}" ; then
++ gettext_printf "Found fallback initramfs image: %s\n" "${dirname}/${initrd}" >&2
++ fi
++
++ linux_entry "${OS}" "${version}" fallback \
++ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
++ fi
++
+ if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
+ linux_entry "${OS}" "${version}" recovery \
+ "single ${GRUB_CMDLINE_LINUX}"
+--
+1.9.1
+
diff --git a/libre/grub/10_linux.in.patch b/libre/grub/grub-10_linux-rebrand-free-distros.patch
index c9285e699..c9285e699 100644
--- a/libre/grub/10_linux.in.patch
+++ b/libre/grub/grub-10_linux-rebrand-free-distros.patch
diff --git a/libre/grub/grub.default b/libre/grub/grub.default
index 8455b67dd..56585a47d 100644
--- a/libre/grub/grub.default
+++ b/libre/grub/grub.default
@@ -45,3 +45,6 @@ GRUB_COLOR_HIGHLIGHT="white/magenta"
#GRUB_INIT_TUNE="480 440 1"
#GRUB_SAVEDEFAULT="true"
+
+# Disable advanced submenu
+GRUB_DISABLE_SUBMENU="y"
diff --git a/libre/gst-plugins-bad-libre/PKGBUILD b/libre/gst-plugins-bad-libre/PKGBUILD
index 359e1e79b..fe437a478 100644
--- a/libre/gst-plugins-bad-libre/PKGBUILD
+++ b/libre/gst-plugins-bad-libre/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 211613 2014-04-21 16:52:40Z jgc $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer (Arch): Jan de Groot <jgc@archlinux.org>
+# Maintainer: Márcio Silva <coadde@parabola.nu>
_pkgname=gst-plugins-bad
pkgname=$_pkgname-libre
@@ -14,8 +14,8 @@ depends=('mjpegtools' 'gst-plugins-base-libs' 'curl' 'chromaprint' 'libmms' 'faa
makedepends=('schroedinger' 'libexif' 'libdvdread' 'libvdpau' 'libmpeg2' 'python' 'valgrind' 'wildmidi' 'librsvg'
'gobject-introspection' 'gtk-doc')
provides=($_pkgname=$pkgver)
-conflicts=$_pkgname
-replaces=$_pkgname
+conflicts=($_pkgname)
+replaces=($_pkgname)
options=(!emptydirs)
source=(${url}/src/$_pkgname/$_pkgname-$pkgver.tar.xz)
sha256sums=('984c133ec9d5d705e313d9e2bbd1472b93c6567460602a9a316578925ffe2eca')
diff --git a/libre/gstreamer0.10-bad-libre/PKGBUILD b/libre/gstreamer0.10-bad-libre/PKGBUILD
index ead094736..3c8d52824 100644
--- a/libre/gstreamer0.10-bad-libre/PKGBUILD
+++ b/libre/gstreamer0.10-bad-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 207669 2014-03-12 23:48:57Z foutrelis $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Jan de Groot <jgc@archlinux.org>
+# Maintainer: fauno <fauno@kiwwwi.com.ar>
+# Maintainer: André Silva <emulatorman@parabola.nu>
pkgbase=gstreamer0.10-bad-libre
pkgname=('gstreamer0.10-bad-libre' 'gstreamer0.10-bad-libre-plugins')
diff --git a/libre/gummiboot/PKGBUILD b/libre/gummiboot/PKGBUILD
index 7792e37f9..6fe1a376b 100644
--- a/libre/gummiboot/PKGBUILD
+++ b/libre/gummiboot/PKGBUILD
@@ -1,9 +1,9 @@
# $Id: PKGBUILD 210183 2014-04-10 18:38:19Z bpiotrowski $
-# Maintainer: Tom Gundersen <teg@jklm.no>
-# Contributor: Tobias Powalowski <tpowa@archlinux.org>
-# Contributor: Keshav P R <(the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
-# Contributor: Mantas Mikulėnas <grawity@gmail.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Tom Gundersen <teg@jklm.no>
+# Contributor (Arch): Tobias Powalowski <tpowa@archlinux.org>
+# Contributor (Arch): Keshav P R <(the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
+# Contributor (Arch): Mantas Mikulėnas <grawity@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
pkgname=gummiboot
pkgver=44
diff --git a/libre/hardinfo/PKGBUILD b/libre/hardinfo/PKGBUILD
index 99451eced..cd6fb5264 100644
--- a/libre/hardinfo/PKGBUILD
+++ b/libre/hardinfo/PKGBUILD
@@ -1,6 +1,6 @@
# $Id$
-# Maintainer: Eric Bélanger <eric@archlinux.org>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer (Arch): Eric Bélanger <eric@archlinux.org>
+# Contributor: Márcio Silva <coadde@parabola.nu>
pkgname=hardinfo
pkgver=0.5.1
diff --git a/libre/hexchat-libre/PKGBUILD b/libre/hexchat-libre/PKGBUILD
index 3c430015a..336cb4dd6 100644
--- a/libre/hexchat-libre/PKGBUILD
+++ b/libre/hexchat-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 107420 2014-03-17 10:06:48Z alucryd $
-# Maintainer: Maxime Gauduin <alucryd@gmail.com>
-# Contributor: TingPing <tingping@tingping.se>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Maxime Gauduin <alucryd@gmail.com>
+# Contributor (Arch): TingPing <tingping@tingping.se>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=hexchat
pkgname=hexchat-libre
@@ -17,9 +17,9 @@ optdepends=('enchant: Spell check'
'perl: Perl plugin'
'python: Python plugin')
install="${_pkgname}.install"
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
source=("http://dl.hexchat.org/${_pkgname}/${_pkgname}-${pkgver}.tar.xz")
sha256sums=('6267ff3c4d0aec8a808365b384115a769d5001d99dbb10403634667c43966470')
diff --git a/libre/hplip-libre/PKGBUILD b/libre/hplip-libre/PKGBUILD
index c7951610f..89fb50fd2 100644
--- a/libre/hplip-libre/PKGBUILD
+++ b/libre/hplip-libre/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 210088 2014-04-09 19:22:29Z andyrtr $
-# Maintainer: Tom Gundersen <teg@jklm.no>
-# Contributor : Rémy Oudompheng <remy@archlinux.org>
-# Contributor: Morgan LEFIEUX <comete@archlinuxfr.org>
-# Maintainer (Parabola): Jorge López <jorginho@lavabit.com>
+# Maintainer (Arch): Tom Gundersen <teg@jklm.no>
+# Contributor (Arch): Rémy Oudompheng <remy@archlinux.org>
+# Contributor (Arch): Morgan LEFIEUX <comete@archlinuxfr.org>
+# Maintainer: Jorge López <jorginho@lavabit.com>
_pkgname=hplip
pkgname=hplip-libre
@@ -25,9 +25,9 @@ optdepends=('cups: for printing support'
'python2-pyqt4: for running hp-toolbox'
'python2-gobject2: for running hp-toolbox'
'libusb: for advanced usb support')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
install=hplip.install
source=(http://downloads.sourceforge.net/${_pkgname}/$_pkgname-$pkgver.tar.gz{,.asc}
disable_upgrade.patch)
diff --git a/libre/hydrogen-libre/PKGBUILD b/libre/hydrogen-libre/PKGBUILD
index 0f9dfb3e3..df866a6c1 100644
--- a/libre/hydrogen-libre/PKGBUILD
+++ b/libre/hydrogen-libre/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 184270 2013-05-05 10:45:11Z schiv $
-# Maintainer: Ray Rashif <schiv@archlinux.org>
-# Contributor: tobias <tobias@archlinux.org>
-# Contributor: K. Piche <kpiche@rogers.com>
-# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Maintainer (Arch): Ray Rashif <schiv@archlinux.org>
+# Contributor (Arch): tobias <tobias@archlinux.org>
+# Contributor (Arch): K. Piche <kpiche@rogers.com>
+# Contributor (Arch): Giovanni Scafora <giovanni@archlinux.org>
_pkgname=hydrogen
pkgname=hydrogen-libre
@@ -14,9 +14,9 @@ license=('GPL')
url="http://www.hydrogen-music.org/"
depends=('libarchive' 'liblrdf' 'qt4' 'jack')
makedepends=('scons' 'optipng')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
source=("http://downloads.sourceforge.net/$_pkgname/$_pkgname-$pkgver.tar.gz"
'lrdf_raptor2.patch'
'install.patch')
diff --git a/libre/icecat-adblock-plus/PKGBUILD b/libre/icecat-adblock-plus/PKGBUILD
index 412535caf..935584aa1 100644
--- a/libre/icecat-adblock-plus/PKGBUILD
+++ b/libre/icecat-adblock-plus/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 106267 2014-02-26 10:45:17Z spupykin $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# $Id: PKGBUILD 110697 2014-05-05 09:47:45Z spupykin $
+# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=icecat-adblock-plus
-pkgver=2.5.1
-_addons_file=244872
+pkgver=2.6
+_addons_file=254870
pkgrel=1
pkgdesc="plugin for icecat which block ads and banners"
arch=('any')
@@ -14,7 +14,7 @@ makedepends=('unzip')
provides=(firefox-adblock-plus=$pkgver)
noextract=("adblock_plus-$pkgver-fx+tb+fn+sm.xpi")
source=(https://addons.mozilla.org/firefox/downloads/file/${_addons_file}/adblock_plus-$pkgver-fx+tb+fn+sm.xpi)
-md5sums=('7e1c072961be0d108c81ab91bd89d687')
+md5sums=('fa3ccbbd5f9ea6718fbb8cfbb321e556')
package() {
# _ffver=`pacman -Q firefox | cut -f2 -d\ | cut -f1-2 -d.`
diff --git a/libre/icecat-firebug/PKGBUILD b/libre/icecat-firebug/PKGBUILD
index a6ae920fd..ebe8a4fc9 100644
--- a/libre/icecat-firebug/PKGBUILD
+++ b/libre/icecat-firebug/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 108086 2014-03-22 15:16:00Z speps $
-# Maintainer: speps <speps at aur dot archlinux dot org>
+# $Id: PKGBUILD 111003 2014-05-11 21:13:52Z speps $
+# Maintainer (Arch): speps <speps at aur dot archlinux dot org>
pkgname=icecat-firebug
-pkgver=1.12.7
+pkgver=1.12.8
pkgrel=1
pkgdesc="IceCat plugin with tools for web development."
arch=(any)
@@ -12,11 +12,9 @@ groups=('icecat-addons')
depends=('icecat')
provides=('firebug' firefox-firebug=$pkgver)
source=("${url}releases/firebug/${pkgver%.*}/firebug-$pkgver.xpi")
-md5sums=('4d1580a5f6cee3c24c7deedd14a60862')
+md5sums=('b93528ff22c76f6c3f63f81fe5e49496')
package() {
- cd "$srcdir"
-
# extension
_dest="$pkgdir/usr/lib/icecat/browser/extensions/firebug@software.joehewitt.com"
find . -type d -exec install -d {} $_dest/{} \;
diff --git a/libre/icecat-noscript/PKGBUILD b/libre/icecat-noscript/PKGBUILD
index 67865faeb..89a4e398e 100644
--- a/libre/icecat-noscript/PKGBUILD
+++ b/libre/icecat-noscript/PKGBUILD
@@ -1,20 +1,20 @@
-# $Id: PKGBUILD 108368 2014-03-27 09:25:40Z spupykin $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# $Id: PKGBUILD 111326 2014-05-16 16:00:18Z spupykin $
+# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=firefox-noscript
pkgname=icecat-noscript
-pkgver=2.6.8.19
+pkgver=2.6.8.24
pkgrel=1
pkgdesc="plugin for icecat which disables script"
arch=('any')
url="http://noscript.net/"
license=('GPL2')
depends=()
-provides=$_pkgname=$pkgver
+provides=($_pkgname=$pkgver)
makedepends=('unzip')
source=(https://secure.informaction.com/download/releases/noscript-$pkgver.xpi)
-md5sums=('9d1e6ff5f01b4758e84465f5d3ca976d')
+md5sums=('8a7909823e31cf83660b18735d7f3671')
package() {
# _ffver=`pacman -Q icecat | cut -f2 -d\ | cut -f1 -d-`
diff --git a/libre/icecat-raismth/PKGBUILD b/libre/icecat-raismth/PKGBUILD
index 83b545767..fb2e072d5 100644
--- a/libre/icecat-raismth/PKGBUILD
+++ b/libre/icecat-raismth/PKGBUILD
@@ -1,5 +1,5 @@
# $Id: PKGBUILD 101450 2013-11-25 21:16:28Z speps $
-# Maintainer: speps <speps at aur dot archlinux dot org>
+# Maintainer (Arch): speps <speps at aur dot archlinux dot org>
pkgname=icecat-raismth
pkgver=4.0.1
diff --git a/libre/icecat-spell-ru/PKGBUILD b/libre/icecat-spell-ru/PKGBUILD
index 5b088817a..ecb7a2607 100644
--- a/libre/icecat-spell-ru/PKGBUILD
+++ b/libre/icecat-spell-ru/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 90907 2013-05-15 13:06:09Z spupykin $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: Maciej Sitarz <macieks@freesco.pl>
+# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor (Arch): Maciej Sitarz <macieks@freesco.pl>
pkgname=icecat-spell-ru
pkgver=0.4.4
diff --git a/libre/icecat/PKGBUILD b/libre/icecat/PKGBUILD
index 4dbe6009e..5422c8a99 100644
--- a/libre/icecat/PKGBUILD
+++ b/libre/icecat/PKGBUILD
@@ -1,10 +1,10 @@
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Maintainer: Márcio Silva <coadde@parabola.nu>
# Contributor (ConnochaetOS): Henry Jensen <hjensen@connochaetos.org>
-# Contributor (Parabola): Luke Shumaker <lukeshu@sbcglobal.net>
+# Contributor: Luke Shumaker <lukeshu@sbcglobal.net>
# Contributor: Figue <ffigue at gmail>
-# Contributor (Parabola): fauno <fauno@kiwwwi.com.ar>
-# Contributor (Parabola): vando <facundo@esdebian.org>
+# Contributor: fauno <fauno@kiwwwi.com.ar>
+# Contributor: vando <facundo@esdebian.org>
# Contributor (Arch): Jakub Schmidtke <sjakub@gmail.com>
# Thank you very much to the older contributors:
# Contributor: evr <evanroman at gmail>
diff --git a/libre/icedove-l10n/PKGBUILD b/libre/icedove-l10n/PKGBUILD
index 3f7cd97ec..ea320b005 100644
--- a/libre/icedove-l10n/PKGBUILD
+++ b/libre/icedove-l10n/PKGBUILD
@@ -10,8 +10,8 @@ pkgname=(
done)
)
epoch=1
-_pkgver=24.4.0
-pkgver=24.4.0.deb1
+_pkgver=24.5.0
+pkgver=24.5.0.deb1
pkgrel=1
pkgdesc="Language packs for Debian Icedove."
@@ -58,58 +58,58 @@ done
md5sums=('d5b2567a8cc8f64591f313a6efdaaffc'
'f3719964e893c1002b7a923e8f95f923'
- 'c93121b73fdf2d39afccd1d7fd60caeb'
- '57fca5d7db9a2a37e7a0d201af2a60b3'
- '6d03ecb778960fc2c6566b8446b62464'
- 'b70885875e7782a83aff337b5902e21d'
- '7d701ee758ee54f9d88244699c7138e3'
- 'fee5fe03c66ae9cda9f3059a70fc83c9'
- '6376a5852220121283ea313b0b39e130'
- '6c75e768ca2f68082afa26760f0b4ead'
- '3d308869a1a30c0833ec4c33c1767520'
- '37e8dfd5b1221d4f72195a06497fad72'
- 'd719de92a69b45bd484aabf4306ba381'
- 'c2070ce6b1f73a2f06551af1cf82cff6'
- 'fc373863e6840544efe4299000dccbe4'
- 'b6bab7f30edb369a0ba4626d3ec6ce93'
- 'f009615785602b3ca245049da9639150'
- '710a86030ec210c6c445ddcc2d28ab1d'
- 'e68b6bb74550bedddfcfeba881389728'
- '6c082285c132cb0142060193c75705a1'
- '8dc1f11fb8245fd4a204843bf8594523'
- '1de07a0a23c12c4ca64d88555b520c4a'
- 'd9c0e3ada62ed9c054e7cebfcc36bc68'
- '0daf1191b0030635c9308245f68f257e'
- '279f6b97ac045ba3e4480a9c9bd71744'
- 'ba0a5b5a036cb697b36111836f5861b5'
- 'a48efe83aaaa2a7f8329065731ee8a35'
- '839cea908690c20dc8614827337a9c99'
- 'a96f075ea17f05c5ad8e87a42faa4a1a'
- '97d7c494bcfe7d11a6b6343dd0e4a4ad'
- '6b115ff2a5ea92a230f3ec1016779384'
- 'c4ea285c1beed7c5284744380b9ffcae'
- 'a610bf078d35617eea8629d05c5bafbd'
- '1e1fec3a3d3e41672af1493c506cf5c8'
- '196f87e18f671043eacb427018b1673a'
- 'fa0f146d7a490be0b9d3f19efbe55508'
- 'b9b42d45be5e1a22fb1f9a8991215b86'
- 'fc318ea8b805bf14c92d4fb66e20fe84'
- '8d469a4689d390db43f4410361847c09'
- '26440002e34ef51b920d0382e46faa37'
- '49765ce7a015a477313e22eb8d771e8c'
- '29f3b1273e896b563d1f14d9ccc9a066'
- '92e12e47e8f774c9d2bbdbc0ac94b4a9'
- '884f2346fcf1ac6fa1a1b695ab40f1fd'
- '25eb46d720d366297461f594710fa3bd'
- '2a8418e9d4a9a87b1376827bfafdc21b'
- 'b4403e9140f8a6689303540ba0f7202c'
- '82eda2c5ab8ebaaf468084f4c3b06198'
- '30ac79a8878c1a1ab38dff17ba946ae0'
- '13ae166d1ef84de79b6f745e9858824b'
- 'a6add04eacdcad4d02a9aac8abdcebba'
- 'e411c419e6661ca676a7673dca2c4258'
- '630a49e221fc6338ac6b4ac24d51a6b3'
- 'f771ba594831dde641f321886de24fe9'
- '27c64d8de7a261091def28986b41009d'
- 'd42570097f0dd843789519c7104d387a'
- '8889a460ebec9c2d88651ce3a9e46892')
+ 'c2b8e92209dee18a05b94e09495f1385'
+ 'f6cac4c6774a7d51d0e3a22a03e61c03'
+ 'da248970bf31af33021397bb13b1d750'
+ 'a457ad88eddc7ada60fc04b8ef6336a6'
+ '930b436e34a7766fa192ef6813716a0d'
+ 'caff4414033312e1a2ff725eabfdbca2'
+ 'b73b185ed157581bc86dbad70140f781'
+ '66c0d28927983ae37589a41b62acbda0'
+ '26bb279c4ae7d5987fd2dc834e265609'
+ '2cd9b504b4c4d52cb0f6f7a09b12897b'
+ 'f2d9ab2811ddfe4dec979aae63aadc63'
+ '68bb674911996827fb985ab4e0d7f081'
+ '5c7304dad3182be7d1a1a0b5b6b517f8'
+ '1e6ef27a0f757e1bf3bd48dfcff988c4'
+ 'bd6530a1f5c3a06d2f974f440b6d8d00'
+ '68225d967e08411f1b825bc6d5e4c17c'
+ 'e507d0dd7391ebe61ea6dae549db79bf'
+ '11dbf8261b1cafa849f25d9349e85805'
+ 'a4dead940907cda0bfa633ce7d641028'
+ '165952170f601ab004c148d5fa1c5068'
+ '73e2a9b97d1b837acbda9bae9e54adab'
+ 'ec738fc347191482dd771270891a9554'
+ 'b61b62c115850b57a9b9d20550da4475'
+ '921e5a2f5884e63be3b6d048b3050836'
+ 'dfbdeafbb865244131c3909c5ea8dcb4'
+ '4866218c8e0d95028dba65c571b32444'
+ '005ea48a3f6b0ed0c49ef0fe8df056e6'
+ '5e2380bd5cf3f060bdf89119c78711c6'
+ '722629d32b0378356fb4aae9f9231f61'
+ '177fb699efbb8b30cd64971b6d0f6e75'
+ '790e2882c8084e995503d1f8f8b79b02'
+ '16f4e54fcaa46f44fd8fad365b30c335'
+ 'b17a85308b26e06e1d97e252469a4317'
+ 'dda3a2db757797e1fa0178b71b5cd962'
+ '297211f4484ae43cbe2efdcfbd4ee1c1'
+ '070c2bad3853f2045025a07b3025ed79'
+ '6a537cde801fc16caefd7bf7c84dde97'
+ 'aa0976c319f0363d2c64edd2f104c0f4'
+ '85c978c58c59227516e195fd946859d4'
+ '221d467d340b5e8d5bfee54b0c78995f'
+ '8fc6fc5c4902800a030a45dfdd0e2f66'
+ '6dd39f9c8598f3da3397ac304c604042'
+ '53b97beda7d2f610c41d97e39eef2c4e'
+ '8256a23a300fc2da822f7ba60604d1a2'
+ 'd8bc9e2baeff937a4d67e2f339a3cee9'
+ '9bafb577debd20b9ef3b4e2f583c66ce'
+ '18dc25d9341b70464809690bf2df4dd3'
+ '22bdcfbb2ba9fe31378c4421b19dac68'
+ 'e715a23c6f4c5f5830f02c13aefc04c2'
+ 'df57a059f59ede99d67d54ce28c09cef'
+ '73a0368e45b6f7dd46457903e710e96b'
+ '794888d55fad6a8ecc24ad68791add17'
+ '71b4452650ee04a3051572340f66557c'
+ 'fe35bcccdafb436a4ce36a3679071c78'
+ '744d692118ac876260d47247d79590bc')
diff --git a/libre/icedove-libre/PKGBUILD b/libre/icedove-libre/PKGBUILD
index 8ec9f26fd..61fb92709 100644
--- a/libre/icedove-libre/PKGBUILD
+++ b/libre/icedove-libre/PKGBUILD
@@ -3,8 +3,8 @@
# We're getting this from Debian Sid
_debname=icedove
-_debver=24.4.0
-_debrel=deb1
+_debver=24.5.0
+_debrel=deb2
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -30,8 +30,8 @@ source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.xz"
vendor.js
${_pkgname}.desktop)
options=(!emptydirs)
-md5sums=('bfe7e2d0d7bf13070745849a98cf1ef0'
- 'bfb4b90eba2586b890c9735a91c3ab1f'
+md5sums=('f5fdb857b1da3e7419acbd5922b4966d'
+ '051ee07e7ca1f28b114e60524a7f72d2'
'c46cf2a671c8fdefcabd4c87e38f3d40'
'5a53179d14ae9631b7afe5e4d0fc0b25'
'e785e0c267f4435ae1a9aa0b03bcacfb')
diff --git a/libre/iceweasel-adblock-plus/PKGBUILD b/libre/iceweasel-adblock-plus/PKGBUILD
index 5d30cd52c..3b2077b2a 100644
--- a/libre/iceweasel-adblock-plus/PKGBUILD
+++ b/libre/iceweasel-adblock-plus/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 106267 2014-02-26 10:45:17Z spupykin $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# $Id: PKGBUILD 110697 2014-05-05 09:47:45Z spupykin $
+# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=iceweasel-adblock-plus
-pkgver=2.5.1
-_addons_file=244872
+pkgver=2.6
+_addons_file=254870
pkgrel=1
pkgdesc="plugin for iceweasel which block ads and banners"
arch=('any')
@@ -14,7 +14,7 @@ makedepends=('unzip')
provides=(firefox-adblock-plus=$pkgver)
noextract=("adblock_plus-$pkgver-fx+tb+fn+sm.xpi")
source=(https://addons.mozilla.org/firefox/downloads/file/${_addons_file}/adblock_plus-$pkgver-fx+tb+fn+sm.xpi)
-md5sums=('7e1c072961be0d108c81ab91bd89d687')
+md5sums=('fa3ccbbd5f9ea6718fbb8cfbb321e556')
package() {
# _ffver=`pacman -Q firefox | cut -f2 -d\ | cut -f1-2 -d.`
diff --git a/libre/iceweasel-firebug/PKGBUILD b/libre/iceweasel-firebug/PKGBUILD
index f57abe28d..2c897ae21 100644
--- a/libre/iceweasel-firebug/PKGBUILD
+++ b/libre/iceweasel-firebug/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 108086 2014-03-22 15:16:00Z speps $
-# Maintainer: speps <speps at aur dot archlinux dot org>
+# $Id: PKGBUILD 111003 2014-05-11 21:13:52Z speps $
+# Maintainer (Arch): speps <speps at aur dot archlinux dot org>
pkgname=iceweasel-firebug
-pkgver=1.12.7
+pkgver=1.12.8
pkgrel=1
pkgdesc="Iceweasel plugin with tools for web development."
arch=(any)
@@ -12,11 +12,9 @@ groups=('iceweasel-addons')
depends=('iceweasel-libre')
provides=('firebug' firefox-firebug=$pkgver)
source=("${url}releases/firebug/${pkgver%.*}/firebug-$pkgver.xpi")
-md5sums=('4d1580a5f6cee3c24c7deedd14a60862')
+md5sums=('b93528ff22c76f6c3f63f81fe5e49496')
package() {
- cd "$srcdir"
-
# extension
_dest="$pkgdir/usr/lib/iceweasel/browser/extensions/firebug@software.joehewitt.com"
find . -type d -exec install -d {} $_dest/{} \;
diff --git a/libre/iceweasel-l10n/PKGBUILD b/libre/iceweasel-l10n/PKGBUILD
index dcb615fb2..d0ce56f79 100644
--- a/libre/iceweasel-l10n/PKGBUILD
+++ b/libre/iceweasel-l10n/PKGBUILD
@@ -6,7 +6,7 @@
# Based on icecat-l10n package, which is in turn based on firefox-i18n
_debname=iceweasel
-_debver=28.0
+_debver=29.0.1
_debrel=deb1
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -25,7 +25,7 @@ pkgrel=1
pkgdesc="Language packs for Debian Iceweasel."
arch=('any')
-url="http://packages.debian.org/experimental/iceweasel"
+url="http://packages.debian.org/sid/iceweasel"
license=('MPL' 'GPL')
depends=("iceweasel-libre>=$epoch:$pkgver")
makedepends=('unzip' 'zip')
@@ -71,85 +71,85 @@ for lang in ${_langpacks[@]}; do
done
md5sums=('a4593936bf1c7a9ec9368ff249f9cc56'
- '4c98d0c477318f1c3d2cc2298ee29f0b'
- '3a692f452edb66dc38be3df7032815c6'
- 'f7d80f448e6b74b778d1f53d15946944'
- 'da99de99e5c5a91d7881a7ff0d72fc0e'
- '52b083ef3be1874b3df8a9aacd7ddc48'
- '8ceb0b1bcbcbbb8857c047af7d6c9bf2'
- 'c7506a5d650f8a231f1cc31f513bfa97'
- '37bdd39f4697322b53f65894dcf954bd'
- '5cc06b98d6b17120cfb128f9658a1985'
- '32af1c5b14aec2da6f37604e4227bc6c'
- '8e164bbc01867718896f749d06697707'
- '6d1d18a1a14ac48f3d5a17af82256757'
- 'afa3fa9e08db03317f47b76c56385dc0'
- '8d891fa6b8cf6c48d5841c10edbe1784'
- 'a8563dc2766ca0b2ec022c25383cd956'
- 'f1be6d7b737c78553c3dfe24788700d5'
- 'd635359e60f7c11ef295eff187b6c7e5'
- 'b9ce01cd82b843d755dbd31f6864fb80'
- 'c382040b8c7d485dfff1ef44ce29e8d1'
- 'b707a1e7a7ae4b29e5984133a26638b1'
- '88aafa96e3ed5fac54449b4515bce8e5'
- '66b7abd745673b129256e0bb41396342'
- 'ae89a7c603cfb7fb1d03991dc799b7c4'
- '7d0d7fec327e5d5c4e56fc73b62c715d'
- '70de24a0fd0cf0d3bb5679adc896722e'
- '600af32eeffada27344155887fa58bd2'
- '2e0b277babeca678fd5fc0c03886216b'
- 'ad365b5c45431993732c8a022e2999d0'
- '85536c9ad2c7621e8551c3df26977260'
- 'c91061552a0d6cb5750edb619e500d5a'
- '4972188b511436ac90d486f41fb52957'
- 'daec7d9c806390067dffafb8e006f8e1'
- '2a00e2ac93826f96907ba8e18e419cb9'
- '51f3cae225b53cff038c722f5d0abb0d'
- '7596d5532f8dd063686b26a25063c41c'
- '5e03ef819ae45637da38618b47a7f343'
- '0766f9d9dd2caae775b9b29bb1539fb8'
- 'ae68e82f361cfbeb433c311a9ea664ea'
- 'e1965b478743b2d97cfba144a5d10230'
- 'a3ba5d86319e6e6b1a26b8979e81622a'
- '4b331746e061033fd2339c8e66803f90'
- 'dffe05b06576ee5bc01cf41f802f09f4'
- 'f2278f1773f2a783b2a50351b90a5614'
- 'ead52c5bb81a8a8484f253b1b43a5684'
- '257b69e5f65ac485c13338f742b63fea'
- '6a58bf9b1c82c1f612792fd848e8bacf'
- 'b7621c5afa18e6326b8b01428f051303'
- '27140ee773b68e8afa296bb1b4d8ee1d'
- '0be494a05e6e86b9a40a574752d11e1b'
- '6381be5a72067a1ecbb1f0653bd58518'
- '75bcd12bb4cd2f0df6607c90c950067a'
- 'ce331890e803fa47fde373f0b875c9be'
- 'a30ae7f1f0c35609740edfd5809645f0'
- 'c7fe87be2f24d49607e5e15825ce71ca'
- 'ea81a726f80feb11bcadcc23aa150d6b'
- '41a3f8c774ce81152f19bb527ad4feb5'
- 'ef930f8d20b10bddbd3930642a0882cd'
- '794042c6e59bad954c5167c13db2d320'
- '9a007643c4b3da83291b44e09dc38e66'
- 'af69db8d39d3881e667e012a6d50b05a'
- '9e22c68f1a0b1cafc05de19340d99f69'
- 'fa65e8b98c5fb14703a2659851561a55'
- 'b926283d546b36328d3e6f92e5a0c8ec'
- '4b40dc3418a8f533cd05f06abcef5fa5'
- '9b874eff827033170a50bce75fd6d03a'
- '0d128c33f2ccd125063119937c38143b'
- '8c0219d8e1d4d1b94c2388a85a3c0042'
- '8e5472f5faafd5e51d27f27d1742034f'
- 'fe406de17b7d599d85d23dd177de4320'
- '40df0996f9962c39fc1d0a32c34f2871'
- '3864cdbdda46a667a15597d88bec65bc'
- '0a5dd0fc74ea84f8e231c1a54071786f'
- 'bd5300e7d7bc47f5cd42ec6e365ec1dd'
- '69f34da54d0a69377d4c863109982933'
- 'a461fd71bf08d3e253b81f02b4607971'
- 'e970e09f404f513ae07c5694be75b500'
- 'f80da0d906b61caab5f334262672140e'
- '577ca0f3454f585a5a02e572e7f86c0d'
- 'c59a3c185a1658c44e32fa7ee1947f21'
- '5c091f1a800a6ec2af85382448ce3909'
- 'edfac679acb397f454159b5121858e8d'
- '37982e0113af242ad492bc24acddbce6')
+ '20dde1067babde81f704ce50a82c8b62'
+ '130f1505b2f503eaf65c4a67837de0dc'
+ '6f234ab023f9c285ff71ed9042acc01c'
+ '70fbc98150dfd4ced3f71fb755088d4c'
+ '242820f1e1c31e068273f53df94fde47'
+ '669ff3dd0895f3de07c87bc1addcd839'
+ '290324aa7427e5247441d11ac5308f05'
+ 'b34f0474fcfd2784fdb5e765feccafda'
+ '1d64b7e693aa424aae5a677fed806fff'
+ 'da414b29277c6f9395f1822d8fd3fb16'
+ '8cfd124fe26f0fe8833e926fe28bb41e'
+ '78699a359bad9cb649c86018f2ce0031'
+ '0318e32537e525aeb79562de9eb3e405'
+ '3c6e2e018427a6553216799806d08cd4'
+ '983b3e1b1303435b71e9965cab38e505'
+ '2d815e408a65b179ff1f2d7e5421bebf'
+ 'e63148547572c94e0f505ff331a75991'
+ 'f33d574fe96014c96c31c461eb387cb2'
+ 'd1487628607a6cbbc2527da013c75c4a'
+ '3e38e0beba7e960ceaff6cccf24ebbc5'
+ 'b9f0427f83b0576f05965390e657b92d'
+ 'c21fdac75c0f810f6a4dea2f6a39a44a'
+ '49772d62a8312d35f6c1684850f5d139'
+ '0b1e295e26ae135249ec9a941c838494'
+ '8a3b5b38eac912562236cf686b3372fe'
+ 'c8f1ed871e127f67622ca6dc764d9222'
+ '570a67198b8a424e1d085b0b45fe71ef'
+ 'c54101710572a2185643e0e8cf6bfa02'
+ '439410e99bef6eff125750dbd8815850'
+ 'd211e12fa6659e23dc7f4d843d5ffefb'
+ '4bc6c2eb3c0e217d9866d36bb3329443'
+ 'e51882ad2c40e5c457a9bf61182ca881'
+ 'ee05d8d0b1a048063184cf1c3a22d395'
+ '14311b4f0ebc3e63b13891a96e17ab92'
+ '72ebba1330c54521d656299981d46bba'
+ 'a6ae3915646efecde58deb461ad90cd2'
+ '7a4f663fd7a1867c634a472c1d37d032'
+ 'fd1c2058aed78cf53dbe90a21088f8d9'
+ 'c97cec2305426d84c47669bbc4cca0b8'
+ '4504dc398cf0214d1c9df9bf1e9fd365'
+ 'd05eca95062df11cb7019a79a55479d8'
+ 'ead9cb17376d80046b3a48a3e297bf82'
+ '28c3e5862cf3d186151e47c1b0a83031'
+ 'ec60cd1f8cdef6a1069b675de2f6357f'
+ '9900061870f2252a28310bb3baa0d1e9'
+ '7294910167abd6bcf6d7e8e8a1e8d4e1'
+ '4d71034756fb940678b2c77a3b8683e7'
+ '7113e80e35fe85d3c138a4a973567874'
+ '0a098bddeb1e04eaa97adade548c228a'
+ 'b191cd52ab880d0f36af7d70449e641f'
+ '4c576697466ee6b52a2d502decc28978'
+ '41810076a48aec035dba12bb67784adf'
+ '898b1e051e5c347ad5ae85f0891da64b'
+ '3dbf3834bc756cf55b3830b628a02f7c'
+ '0170b0d6ff6096df489f83c28abc1d30'
+ '2f51cb285bb60c90b6d48ebb467cc9f4'
+ '85c135a859c7229b8f6857ca1b74ad39'
+ '1fd72abb889f8a2bb2f7474197c91d08'
+ '7a1f4f9490140667d28a7986b36f3f00'
+ '5c549e8015c7fbe454c7c7301e9af88d'
+ '10fd3c2aea6466fd05918e201ced9823'
+ '178a02a586e167175ffb92ed5cd6c02c'
+ '0298f96910350ae32f43dbac1f31e1fa'
+ 'be67fcd4df0122b4be1b8ded5c64b674'
+ '9ce98993196822a136526775364ff69b'
+ 'd18749f86456012caa8220a56cd98490'
+ 'd0a4c1001e368eb3795fd4ef84c4baef'
+ '9ab638e71f8b4231c76394b3352dd58b'
+ '599074d30d653e0c764a0bd9f31f4548'
+ '657eaa5b81006d9133f993db41269b53'
+ '5003c5660c36b64230f7badc8b4f0486'
+ '2c59b068cc242a55206a243c9c2c128e'
+ '9a960c5cd163aa39bd8eed460a4e1424'
+ '2a17ec767d0bab5c3934c16f3a1fa7d8'
+ 'fc316bead4b1f44eec5f561c9a253ba5'
+ 'cc95521aa45992e95e9353be2b689ef9'
+ '8f240861e41f4a5f7bf0c927a373b6ea'
+ '3446dfdd6c3880c0157a5fb487e20933'
+ '19759937f5ba7e19c060fc322f468375'
+ '359819e547abdb5cfecb91048c05d15c'
+ 'c4f2fc13c9130a2ca6a8b44676905da7'
+ '4d2a8afbe9586d7a8fe1360901e62e35')
diff --git a/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch b/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch
index 8ce9f48cc..56de11354 100644
--- a/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch
+++ b/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch
@@ -273,10 +273,10 @@ index f35c227..7062886 100644
%{C++
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
-index 90d6c51..c25a301 100644
+index fe66f3b..2ddcd3b 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
-@@ -3926,7 +3926,7 @@ XREMain::XRE_mainRun()
+@@ -3952,7 +3952,7 @@ XREMain::XRE_mainRun()
if (gDoProfileReset) {
// Automatically migrate from the current application if we just
// reset the profile.
diff --git a/libre/iceweasel-libre/PKGBUILD b/libre/iceweasel-libre/PKGBUILD
index 1fafebea5..3a2fcaa9f 100644
--- a/libre/iceweasel-libre/PKGBUILD
+++ b/libre/iceweasel-libre/PKGBUILD
@@ -1,9 +1,9 @@
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Márcio Silva <coadde@parabola.nu>
# Contributor (ConnochaetOS): Henry Jensen <hjensen@connochaetos.org>
-# Contributor (Parabola): Luke Shumaker <lukeshu@sbcglobal.net>
-# Contributor (Parabola): fauno <fauno@kiwwwi.com.ar>
-# Contributor (Parabola): vando <facundo@esdebian.org>
+# Contributor: Luke Shumaker <lukeshu@sbcglobal.net>
+# Contributor: fauno <fauno@kiwwwi.com.ar>
+# Contributor: vando <facundo@esdebian.org>
# Contributor (Arch): Jakub Schmidtke <sjakub@gmail.com>
# Contributor: Figue <ffigue at gmail>
# Thank you very much to the older contributors:
@@ -12,9 +12,9 @@
_pgo=true
-# We're getting this from Debian Experimental
+# We're getting this from Debian Sid
_debname=iceweasel
-_debver=28.0
+_debver=29.0.1
_debrel=deb1
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -23,13 +23,13 @@ _pkgname=iceweasel
pkgname=iceweasel-libre
epoch=1
pkgver=$_debver.$_debrel
-pkgrel=1
+pkgrel=2
pkgdesc="A libre version of Debian Iceweasel, the standalone web browser based on Mozilla Firefox."
arch=(i686 x86_64 mips64el)
license=(MPL GPL LGPL)
-depends=(alsa-lib dbus-glib desktop-file-utils gtk2 hicolor-icon-theme hunspell libevent libnotify libvpx libxt mime-types mozilla-common mozilla-searchplugins nss sqlite startup-notification)
-makedepends=(autoconf2.13 diffutils gstreamer0.10-base imagemagick imake inetutils libidl2 libpulse librsvg libxslt mesa pkg-config python2 quilt unzip zip)
+depends=(alsa-lib dbus-glib desktop-file-utils gtk2 hicolor-icon-theme hunspell icu libevent libnotify libvpx libxt mime-types mozilla-common mozilla-searchplugins nss sqlite startup-notification)
+makedepends=(autoconf2.13 clang diffutils gstreamer0.10-base imagemagick imake inetutils libidl2 libpulse librsvg libxslt mesa pkg-config python2 quilt unzip zip)
[ "$CARCH" != "mips64el" ] && makedepends+=('yasm')
options=(!emptydirs !makeflags)
if $_pgo; then
@@ -43,7 +43,7 @@ optdepends=('networkmanager: Location detection via available WiFi networks'
'gstreamer0.10-ugly-plugins: h.264 and mp3 decoding'
'gstreamer0.10-ffmpeg: more decoders'
'libpulse: PulseAudio audio driver')
-url="http://packages.debian.org/experimental/${_pkgname}"
+url="http://packages.debian.org/sid/${_pkgname}"
install=iceweasel.install
replaces=('firefox')
conflicts=('firefox')
@@ -60,17 +60,17 @@ source=("$_debrepo/`debfile $_debname`_$_debver.orig.tar.bz2"
iceweasel-20.0.1-fixed-loading-icon.png
Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch
Fixup-Reset-Firefox-after-bad-merge.patch)
-md5sums=('8b53f3d7c1eea0338408f743f619eec1'
- 'e5399fd8ea49c227b9a4c45997dc7111'
- '023120a970670dc85cea19393f0b94b6'
+md5sums=('4db358c753cb15a526dfe79c6602c886'
+ '134a1bfe72a940ec6673ee6883a03b68'
+ '92a08a18995b915d6a6d0dab93ec6c1d'
'df08eaa1ac3bc6c2356be4fbf8ec8932'
'5d22063ebea2472dd0b1163b32b2050b'
'b03a979a78484503ba8dddad4f2c96d1'
'7b9e5996dd9fe0b186a43a297db1c6b5'
- '6620e724ec9a1be74e65089d81d802f7'
- '816013881cfc9a1f4f0ede72b014f8b3'
+ '1c42509891cf6843660a5f3c69896e80'
+ '783a5927246f014855b96a3abb92566b'
'6e335a517c68488941340ee1c23f97b0'
- '032553b17a61a9a79c7a03c8967251b2'
+ '9d1cc7b80085a4438305e9e37d42745b'
'8e165ef85ddd72491f0b48f8954afca6')
prepare() {
@@ -105,6 +105,11 @@ prepare() {
sed -i 's|Adobe Flash|SWF Player|g;
' browser/base/content/pageinfo/permissions.js \
browser/base/content/browser-plugins.js
+ sed -i '\|["]displayName["][:] ["]Flash["]| s|Flash|SWF Player|
+ \|["]displayName["][:] ["]Shockwave["]| s|Shockwave|DCR Player|
+ \|["]displayName["][:] ["]QuickTime["]| s|QuickTime|MOV Player|
+ \|installLinux| s|true|false|
+ ' browser/base/content/browser-plugins.js
sed -i '\|URL of the GeoLocation backend|d;
\|geo[.]wifi[.]uri|d;
' browser/app/profile/firefox.js \
@@ -113,11 +118,12 @@ prepare() {
sed -i "\|abouthome/snippet|d" browser/base/jar.mn
# Replace common URLs
- sed -i '\|extensions[.]getAddons[.]get[.]url| s|https://services[.]addons[.]mozilla[.]org.\+["][)][;]|http://directory.fsf.org/wiki/GNU_IceCat");|g;
- \|extensions[.]getAddons[.]search[.]browseURL| s|https://addons[.]mozilla[.]org.\+["][)][;]|http://directory.fsf.org/wiki/GNU_IceCat");|g;
- \|extensions[.]getAddons[.]search[.]url| s|https://services[.]addons[.]mozilla[.]org.\+["][)][;]|http://directory.fsf.org/wiki/GNU_IceCat");|g;
- \|extensions[.]webservice[.]discoverURL| s|https://services[.]addons[.]mozilla[.]org.\+["][)][;]|http://directory.fsf.org/wiki/GNU_IceCat");|g;
- \|browser[.]search[.]searchEnginesURL| s|https://addons[.]mozilla[.]org.\+["][)][;]|http://directory.fsf.org/wiki/GNU_IceCat");|g;
+ sed -i '\|extensions[.]getAddons[.]get[.]url| s|https://services[.]addons[.]mozilla[.]org.\+["][)][;]|https://trisquel.info/en/browser");|g;
+ \|extensions[.]getAddons[.]search[.]browseURL| s|https://addons[.]mozilla[.]org.\+["][)][;]|https://trisquel.info/en/browser");|g;
+ \|extensions[.]getAddons[.]search[.]url| s|https://services[.]addons[.]mozilla[.]org.\+["][)][;]|https://trisquel.info/en/browser");|g;
+ \|extensions[.]webservice[.]discoverURL| s|https://services[.]addons[.]mozilla[.]org.\+["][)][;]|https://trisquel.info/en/browser");|g;
+ \|browser[.]search[.]searchEnginesURL| s|https://addons[.]mozilla[.]org.\+["][)][;]|https://trisquel.info/en/browser");|g;
+ \|plugins[.]update[.]url| s|https://www[.]mozilla[.]org/[%]LOCALE[%]/plugincheck/["][)][;]|https://trisquel.info/en/browser");|g;
' browser/app/profile/firefox.js
cp "$srcdir/mozconfig" .mozconfig # Load our build config, disable SafeSearch
@@ -180,6 +186,8 @@ build() {
export PATH="$srcdir/path:$PATH"
export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/$_pkgname"
export PYTHON="/usr/bin/python2"
+ export CC=clang
+ export CXX=clang++
if [[ $CARCH == i686 ]]; then
# Work around memory address space exhaustion during linking on i686
@@ -206,7 +214,7 @@ package() {
export DEBIAN_BUILD="mozilla-release"
cd "$srcdir/$DEBIAN_BUILD"
- make -f client.mk DESTDIR="$pkgdir" install
+ make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install
install -Dm644 ../vendor.js "$pkgdir/usr/lib/$_pkgname/browser/defaults/preferences/vendor.js"
@@ -231,9 +239,6 @@ package() {
ln -sf /usr/lib/mozilla/plugins "$pkgdir/usr/lib/$_pkgname/browser/plugins"
ln -sf /usr/lib/mozilla/searchplugins "$pkgdir/usr/lib/$_pkgname/browser/searchplugins"
- # We don't want the development stuff
- rm -rf "$pkgdir"/usr/{include,lib/$_pkgname-devel,share/idl}
-
# Workaround for now: https://bugzilla.mozilla.org/show_bug.cgi?id=658850
ln -sf $_pkgname "$pkgdir/usr/lib/$_pkgname/$_pkgname-bin"
}
diff --git a/libre/iceweasel-libre/iceweasel-install-dir.patch b/libre/iceweasel-libre/iceweasel-install-dir.patch
index 3938c0b3e..af113fa85 100644
--- a/libre/iceweasel-libre/iceweasel-install-dir.patch
+++ b/libre/iceweasel-libre/iceweasel-install-dir.patch
@@ -1,29 +1,13 @@
diff --git a/config/baseconfig.mk b/config/baseconfig.mk
-index 9c70e24..eff0fd2 100644
+index 7ca8e35..6e92846 100644
--- a/config/baseconfig.mk
+++ b/config/baseconfig.mk
-@@ -1,8 +1,8 @@
+@@ -5,7 +5,7 @@
MOZ_APP_BASE_VERSION = $(firstword $(subst ., ,$(MOZ_APP_VERSION))).$(word 2,$(subst ., ,$(MOZ_APP_VERSION)))
--includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_BASE_VERSION)
--idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_BASE_VERSION)
+ includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_BASE_VERSION)
+ idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_BASE_VERSION)
-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_BASE_VERSION)
--sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_BASE_VERSION)
-+includedir := $(includedir)/$(MOZ_APP_NAME)
-+idldir = $(datadir)/idl/$(MOZ_APP_NAME)
+installdir = $(libdir)/$(MOZ_APP_NAME)
-+sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel
- DIST = $(DEPTH)/dist
-
- # We do magic with OBJ_SUFFIX in config.mk, the following ensures we don't
-diff --git a/js/src/config/baseconfig.mk b/js/src/config/baseconfig.mk
-index 1ff076c..5386569 100644
---- a/js/src/config/baseconfig.mk
-+++ b/js/src/config/baseconfig.mk
-@@ -1,5 +1,5 @@
--installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
-+installdir = $(libdir)/$(MOZ_APP_NAME)
-+sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel
-
- ifneq (,$(filter /%,$(TOP_DIST)))
- DIST = $(TOP_DIST)
+ sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_BASE_VERSION)
+ ifndef TOP_DIST
+ TOP_DIST = dist
diff --git a/libre/iceweasel-libre/mozconfig b/libre/iceweasel-libre/mozconfig
index 957ea0dbf..8b2b2a5e3 100644
--- a/libre/iceweasel-libre/mozconfig
+++ b/libre/iceweasel-libre/mozconfig
@@ -16,6 +16,7 @@ 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 --with-system-icu
ac_add_options --enable-system-hunspell
ac_add_options --enable-system-sqlite
ac_add_options --enable-system-ffi
diff --git a/libre/iceweasel-libre/vendor.js b/libre/iceweasel-libre/vendor.js
index 6510944a7..da8118138 100644
--- a/libre/iceweasel-libre/vendor.js
+++ b/libre/iceweasel-libre/vendor.js
@@ -20,3 +20,6 @@ pref("dom.storage.enabled", false);
// Disable missing nonfree flash notification
pref("plugins.notifyMissingFlash", false);
+
+// Disable "alt" as a shortcut key to open full menu bar. Conflicts with "alt" as a modifier
+pref("ui.key.menuAccessKeyFocuses", false);
diff --git a/libre/iceweasel-noscript/PKGBUILD b/libre/iceweasel-noscript/PKGBUILD
index f39297529..1da4dd8e6 100644
--- a/libre/iceweasel-noscript/PKGBUILD
+++ b/libre/iceweasel-noscript/PKGBUILD
@@ -1,20 +1,20 @@
-# $Id: PKGBUILD 108368 2014-03-27 09:25:40Z spupykin $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# $Id: PKGBUILD 111326 2014-05-16 16:00:18Z spupykin $
+# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=firefox-noscript
pkgname=iceweasel-noscript
-pkgver=2.6.8.19
+pkgver=2.6.8.24
pkgrel=1
pkgdesc="plugin for iceweasel which disables script"
arch=('any')
url="http://noscript.net/"
license=('GPL2')
depends=()
-provides=$_pkgname=$pkgver
+provides=($_pkgname=$pkgver)
makedepends=('unzip')
source=(https://secure.informaction.com/download/releases/noscript-$pkgver.xpi)
-md5sums=('9d1e6ff5f01b4758e84465f5d3ca976d')
+md5sums=('8a7909823e31cf83660b18735d7f3671')
package() {
# _ffver=`pacman -Q iceweasel-libre | cut -f2 -d\ | cut -f1 -d-`
diff --git a/libre/iceweasel-raismth/PKGBUILD b/libre/iceweasel-raismth/PKGBUILD
index ee3b9119e..377e452fd 100644
--- a/libre/iceweasel-raismth/PKGBUILD
+++ b/libre/iceweasel-raismth/PKGBUILD
@@ -1,5 +1,5 @@
# $Id: PKGBUILD 101450 2013-11-25 21:16:28Z speps $
-# Maintainer: speps <speps at aur dot archlinux dot org>
+# Maintainer (Arch): speps <speps at aur dot archlinux dot org>
pkgname=iceweasel-raismth
pkgver=4.0.1
diff --git a/libre/iceweasel-spell-ru/PKGBUILD b/libre/iceweasel-spell-ru/PKGBUILD
index b9bb8b6f9..4f759efd7 100644
--- a/libre/iceweasel-spell-ru/PKGBUILD
+++ b/libre/iceweasel-spell-ru/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 90907 2013-05-15 13:06:09Z spupykin $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: Maciej Sitarz <macieks@freesco.pl>
+# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor (Arch): Maciej Sitarz <macieks@freesco.pl>
pkgname=iceweasel-spell-ru
pkgver=0.4.4
diff --git a/libre/kdebase-konqueror-libre/PKGBUILD b/libre/kdebase-konqueror-libre/PKGBUILD
index 29524cd6d..0f8740785 100644
--- a/libre/kdebase-konqueror-libre/PKGBUILD
+++ b/libre/kdebase-konqueror-libre/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 210205 2014-04-11 16:54:08Z andrea $
-# Maintainer: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: Pierre Schmitz <pierre@archlinux.de>
-# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Andrea Scarpino <andrea@archlinux.org>
+# Contributor (Arch): Pierre Schmitz <pierre@archlinux.de>
+# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname='kdebase-konqueror'
pkgname='kdebase-konqueror-libre'
diff --git a/libre/kdebase-runtime-libre/PKGBUILD b/libre/kdebase-runtime-libre/PKGBUILD
index f87a28b47..6ffbd48fd 100644
--- a/libre/kdebase-runtime-libre/PKGBUILD
+++ b/libre/kdebase-runtime-libre/PKGBUILD
@@ -1,12 +1,12 @@
# $Id: PKGBUILD 211506 2014-04-18 18:32:36Z andrea $
-# Maintainer: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: Pierre Schmitz <pierre@archlinux.de>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Andrea Scarpino <andrea@archlinux.org>
+# Contributor (Arch): Pierre Schmitz <pierre@archlinux.de>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=kdebase-runtime
pkgname=kdebase-runtime-libre
pkgver=4.13.0
-pkgrel=3
+pkgrel=4
pkgdesc="Plugins and applications necessary for the running of KDE applications, without non-privacy search providers"
arch=('i686' 'x86_64' 'mips64el')
url='https://projects.kde.org/projects/kde/kde-runtime'
@@ -14,7 +14,7 @@ license=('GPL' 'LGPL')
replaces=("${_pkgname}")
conflicts=("${_pkgname}")
provides=("${_pkgname}=${pkgver}")
-depends=("kdelibs>=${pkgver}" 'kactivities' 'smbclient' 'libssh' 'libcanberra'
+depends=("kdelibs>=${pkgver}" 'kactivities' 'libkactivities4' 'smbclient' 'libssh' 'libcanberra'
'oxygen-icons' 'xorg-xauth' 'libwebp')
makedepends=('pkg-config' 'cmake' 'automoc4' 'kdepimlibs' 'openslp' 'doxygen'
'networkmanager' 'boost')
diff --git a/libre/kdelibs-libre/PKGBUILD b/libre/kdelibs-libre/PKGBUILD
index 89d33b41a..d0f8cd91a 100644
--- a/libre/kdelibs-libre/PKGBUILD
+++ b/libre/kdelibs-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 210205 2014-04-11 16:54:08Z andrea $
-# Maintainer: Andrea Scarpino <andrea@archlinux.org
-# Contributor: Pierre Schmitz <pierre@archlinux.de>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Andrea Scarpino <andrea@archlinux.org
+# Contributor (Arch): Pierre Schmitz <pierre@archlinux.de>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=kdelibs
pkgname=kdelibs-libre
diff --git a/libre/kdenetwork-kopete-libre/PKGBUILD b/libre/kdenetwork-kopete-libre/PKGBUILD
index b9198c4ac..b37dac11f 100644
--- a/libre/kdenetwork-kopete-libre/PKGBUILD
+++ b/libre/kdenetwork-kopete-libre/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 210205 2014-04-11 16:54:08Z andrea $
-# Maintainer: Andrea Scarpino <andrea@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Andrea Scarpino <andrea@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=kdenetwork-kopete
pkgname=kdenetwork-kopete-libre
@@ -11,9 +11,9 @@ url='http://kde.org/applications/internet/kopete/'
arch=('i686' 'x86_64' 'mips64el')
license=('GPL' 'LGPL' 'FDL')
groups=('kde' 'kdenetwork')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr' 'libmsn' 'libidn'
'qimageblitz' 'libgadu' 'mediastreamer' 'jsoncpp')
makedepends=('cmake' 'automoc4' 'boost')
diff --git a/libre/kdeutils-ark-libre/PKGBUILD b/libre/kdeutils-ark-libre/PKGBUILD
index 54b58cb5d..86ec10729 100644
--- a/libre/kdeutils-ark-libre/PKGBUILD
+++ b/libre/kdeutils-ark-libre/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 210205 2014-04-11 16:54:08Z andrea $
-# Maintainer: Andrea Scarpino <andrea@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Andrea Scarpino <andrea@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=kdeutils-ark
pkgname=kdeutils-ark-libre
diff --git a/libre/kile-libre/PKGBUILD b/libre/kile-libre/PKGBUILD
index 7bd98b5f5..f746bce87 100644
--- a/libre/kile-libre/PKGBUILD
+++ b/libre/kile-libre/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 171256 2012-11-16 22:51:16Z allan $
-# Maintainer: Ronald van Haren <ronald.archlinux.org>
-# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
-# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
-# Contributor (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Ronald van Haren <ronald.archlinux.org>
+# Contributor (Arch): Damir Perisa <damir.perisa@bluewin.ch>
+# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
+# Contributor: André Silva <emulatorman@parabola.nu>
_pkgname=kile
pkgname=kile-libre
diff --git a/libre/kipi-plugins-libre/PKGBUILD b/libre/kipi-plugins-libre/PKGBUILD
index dcbbdc492..83db25a64 100644
--- a/libre/kipi-plugins-libre/PKGBUILD
+++ b/libre/kipi-plugins-libre/PKGBUILD
@@ -1,22 +1,22 @@
-# $Id: PKGBUILD 211141 2014-04-17 06:54:31Z andrea $
-# Maintainer: Ronald van Haren <ronald@archlinux.org>
-# Contributor: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: Tobias Powalowski <tpowa@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# $Id: PKGBUILD 213016 2014-05-17 10:20:26Z ronald $
+# Maintainer (Arch): Ronald van Haren <ronald@archlinux.org>
+# Contributor (Arch): Andrea Scarpino <andrea@archlinux.org>
+# Contributor (Arch): Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Márcio Silva <coadde@parabola.nu>
pkgbase=digikam
_pkgname=kipi-plugins
pkgname=kipi-plugins-libre
-pkgver=3.5.0
-pkgrel=4
+pkgver=4.0.0
+pkgrel=1
pkgdesc="A collection of plugins extending the KDE graphics and image applications as digiKam, without nonfree jAlbum and SimpleViewer support"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
url="http://www.digikam.org/"
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
makedepends=('kdepimlibs' 'libkexiv2' 'libkdcraw' 'libkipi' 'libksane' 'liblqr'
'kdeedu-marble' 'opencv' 'boost' 'libgpod' 'qjson' 'hugin' 'libgphoto2'
'cmake' 'automoc4' 'doxygen' 'lensfun' 'qt-gstreamer' 'imagemagick' 'eigen')
@@ -31,7 +31,7 @@ optdepends=('libkgeomap: Geolocalize tool'
options=('staticlibs')
install=kipi-plugins.install
source=("http://download.kde.org/stable/${pkgbase}/${pkgbase}-${pkgver}.tar.bz2")
-sha1sums=('9e44fcf219312cbcbbaee0cc9a7f460a01769224')
+sha1sums=('23fd1e31e1f0518265c3165e620beb15cef4d41e')
prepare() {
cd ${srcdir}/${pkgbase}-${pkgver}
@@ -56,4 +56,12 @@ build() {
package() {
cd build/extra/kipi-plugins
make DESTDIR="${pkgdir}" install
+
+ cd ../../../build/po
+ make DESTDIR="${pkgdir}" install
+ # Put these in the relevant splitted packages
+ rm "${pkgdir}"/usr/share/locale/*/LC_MESSAGES/libkgeomap.mo
+ rm "${pkgdir}"/usr/share/locale/*/LC_MESSAGES/digikam.mo
+ # Fix conflicts with kde-l10n-* (FS#33762)
+ rm "${pkgdir}"/usr/share/locale/*/LC_MESSAGES/libkipi.mo
}
diff --git a/libre/lesspipe-libre/PKGBUILD b/libre/lesspipe-libre/PKGBUILD
new file mode 100644
index 000000000..42b2d1569
--- /dev/null
+++ b/libre/lesspipe-libre/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 83837 2013-02-05 15:58:20Z spupykin $
+# Maintainer (Arch): Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor (Arch): solsTiCe d'Hiver <solstice.dhiver@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+
+_pkgname=lesspipe
+pkgname=lesspipe-libre
+pkgver=1.82
+pkgrel=1
+pkgdesc='an input filter for the pager less, with libarchive support'
+depends=('less')
+arch=('any')
+license=('GPL')
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
+optdepends=('perl'
+ 'rpmextract: support for rpm files'
+ 'fastjar: support for jar files'
+ 'unzip: support for zip files'
+ 'libarchive: support for rar files'
+ 'p7zip: support for 7za files'
+ 'cabextract: support for cab files'
+ 'cdrkit: support for iso files'
+ 'html2text: support for html files'
+ 'antiword: support for word file'
+ 'unrtf: support for rtf file'
+ 'imagemagick: support for some image file')
+url="http://www-zeuthen.desy.de/~friebel/unix/lesspipe.html"
+source=(http://downloads.sourceforge.net/project/lesspipe/lesspipe/$pkgver/lesspipe-$pkgver.tar.gz
+ lesspipe.sh
+ libarchive.patch)
+md5sums=('dd6f7bc9b9f9afaf04c9aa0cdbe9fe56'
+ '675b56f560c600f43108adfd98222251'
+ 'ec452ea980d5c1e254e9775fd424c18c')
+
+prepare() {
+ cd $srcdir/$_pkgname-$pkgver
+ patch -Np1 -i ../libarchive.patch
+}
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ ./configure --prefix=/usr --yes
+ make
+}
+
+package() {
+ cd $srcdir/$_pkgname-$pkgver
+ mkdir -p $pkgdir/usr/share/man/man1
+ make install PREFIX=$pkgdir/usr
+ install -D $srcdir/lesspipe.sh $pkgdir/etc/profile.d/lesspipe.sh
+}
diff --git a/libre/lesspipe-libre/lesspipe.sh b/libre/lesspipe-libre/lesspipe.sh
new file mode 100644
index 000000000..ae6076f6b
--- /dev/null
+++ b/libre/lesspipe-libre/lesspipe.sh
@@ -0,0 +1 @@
+export LESSOPEN='|/usr/bin/lesspipe.sh %s'
diff --git a/libre/lesspipe-libre/libarchive.patch b/libre/lesspipe-libre/libarchive.patch
new file mode 100644
index 000000000..b4fb48788
--- /dev/null
+++ b/libre/lesspipe-libre/libarchive.patch
@@ -0,0 +1,100 @@
+diff --git a/configure b/configure
+index cbd34af..5df4a31 100755
+--- a/configure
++++ b/configure
+@@ -405,8 +405,7 @@ LESS_ADVANCED_PREPROCESSOR N # always interpret textlike files (html, ...)
+ # compression programs
+ bzip2 Y # include bzip2 and unzip code, it is fairly essential
+ unzip Y
+-rar Y
+-unrar Y
++bsdtar Y # bsdtar is the best free as in freedom alternative for rar
+ lzip N # default for lzma, lzip, xz, 7za should probably be N
+ lzma Y
+ xz Y
+diff --git a/lesspipe.sh b/lesspipe.sh
+index c80c75b..262a47b 100755
+--- a/lesspipe.sh
++++ b/lesspipe.sh
+@@ -276,12 +276,8 @@ get_cmd () {
+ cmd=(isrpm "$2" "$file2")
+ elif [[ "$1" = *Zip* || "$1" = *ZIP* ]] && cmd_exist unzip; then
+ cmd=(istemp "unzip -avp" "$2" "$file2")
+- elif [[ "$1" = *RAR\ archive* ]]; then
+- if cmd_exist unrar; then
+- cmd=(istemp "unrar p -inul" "$2" "$file2")
+- elif cmd_exist rar; then
+- cmd=(istemp "rar p -inul" "$2" "$file2")
+- fi
++ elif [[ "$1" = *RAR\ archive* ]] && cmd_exist bsdtar; then
++ cmd=(bsdtar xOf "$2" "$file2")
+ elif [[ "$1" = *7-zip\ archive* || "$1" = *7z\ archive* ]] && cmd_exist 7za; then
+ cmd=(istemp "7za e -so" "$2" "$file2")
+ elif [[ "$1" = *7-zip\ archive* || "$1" = *7z\ archive* ]] && cmd_exist 7zr; then
+@@ -534,14 +530,9 @@ isfinal() {
+ elif [[ "$1" = *Zip* || "$1" = *ZIP* ]] && cmd_exist unzip; then
+ msg "use zip_file${sep}contained_file to view a file in the archive"
+ istemp "unzip -lv" "$2"
+- elif [[ "$1" = *RAR\ archive* ]]; then
+- if cmd_exist unrar; then
+- msg "use rar_file${sep}contained_file to view a file in the archive"
+- istemp "unrar v" "$2"
+- elif cmd_exist rar; then
+- msg "use rar_file${sep}contained_file to view a file in the archive"
+- istemp "rar v" "$2"
+- fi
++ elif [[ "$1" = *RAR\ archive* ]] && cmd_exist bsdtar; then
++ msg "use rar_file${sep}contained_file to view a file in the archive"
++ bsdtar tf "$2"
+ elif [[ "$1" = *7-zip\ archive* || "$1" = *7z\ archive* ]] && cmd_exist 7za; then
+ typeset res
+ res=$(istemp "7za l" "$2")
+diff --git a/lesspipe.sh.in b/lesspipe.sh.in
+index 407bc7d..753f3c5 100755
+--- a/lesspipe.sh.in
++++ b/lesspipe.sh.in
+@@ -323,17 +323,10 @@ get_cmd () {
+ elif [[ "$1" = *Zip* || "$1" = *ZIP* ]] && cmd_exist unzip; then
+ set -A cmd istemp "unzip -avp" "$2" "$file2"
+ #endif
+-#ifdef unrar
+- elif [[ "$1" = *RAR\ archive* ]]; then
+- if cmd_exist unrar; then
+- set -A cmd istemp "unrar p -inul" "$2" "$file2"
+- elif cmd_exist rar; then
+- set -A cmd istemp "rar p -inul" "$2" "$file2"
+- fi
+-#elif rar
+- elif [[ "$1" = *RAR\ archive* ]] && cmd_exist rar; then
+- set -A cmd istemp "rar p -inul" "$2" "$file2"
+-#endif
++#ifdef bsdtar
++ elif [[ "$1" = *RAR\ archive* ]] && cmd_exist bsdtar; then
++ set -A cmd bsdtar xOf "$2" "$file2"
++#endif
+ #ifdef 7za
+ elif [[ "$1" = *7-zip\ archive* || "$1" = *7z\ archive* ]] && cmd_exist 7za; then
+ set -A cmd istemp "7za e -so" "$2" "$file2"
+@@ -705,19 +698,10 @@ isfinal() {
+ msg "use zip_file${sep}contained_file to view a file in the archive"
+ istemp "unzip -lv" "$2"
+ #endif
+-#ifdef unrar
+- elif [[ "$1" = *RAR\ archive* ]]; then
+- if cmd_exist unrar; then
+- msg "use rar_file${sep}contained_file to view a file in the archive"
+- istemp "unrar v" "$2"
+- elif cmd_exist rar; then
+- msg "use rar_file${sep}contained_file to view a file in the archive"
+- istemp "rar v" "$2"
+- fi
+-#elif rar
+- elif [[ "$1" = *RAR\ archive* ]] && cmd_exist rar; then
++#ifdef bsdtar
++ elif [[ "$1" = *RAR\ archive* ]] && cmd_exist bsdtar; then
+ msg "use rar_file${sep}contained_file to view a file in the archive"
+- istemp "rar v" "$2"
++ bsdtar tf "$2"
+ #endif
+ #ifdef 7za
+ elif [[ "$1" = *7-zip\ archive* || "$1" = *7z\ archive* ]] && cmd_exist 7za; then
diff --git a/libre/libclc-svn/PKGBUILD b/libre/libclc-svn/PKGBUILD
index 2240a1894..c221dba1f 100644
--- a/libre/libclc-svn/PKGBUILD
+++ b/libre/libclc-svn/PKGBUILD
@@ -11,7 +11,7 @@ license=MIT
depends=llvm-libs
makedepends=(clang python2 svn)
provides=($_pkgname)
-conflicts=$_pkgname
+conflicts=($_pkgname)
source=$_pkgname::svn+http://llvm.org/svn/llvm-project/libclc/trunk
sha512sums=SKIP
diff --git a/libre/libosinfo-libre/PKGBUILD b/libre/libosinfo-libre/PKGBUILD
new file mode 100644
index 000000000..5e759d2c2
--- /dev/null
+++ b/libre/libosinfo-libre/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 109557 2014-04-15 23:23:01Z bgyorgy $
+# Maintainer (Arch): Balló György <ballogyor+arch at gmail dot com>
+# Contributor (Arch): Stefano Facchini <stefano.facchini@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Daniel Milewski <niitotantei@gmail.com>
+
+_pkgname=libosinfo
+pkgname=libosinfo-libre
+pkgver=0.2.10
+pkgrel=2
+pkgdesc="GObject based library API for managing information about operating systems, hypervisors and the (virtual) hardware devices they can support, without support for nonfree systems"
+arch=('i686' 'x86_64')
+url="http://libosinfo.org/"
+license=('GPL' 'LGPL')
+depends=('glib2' 'libxslt')
+makedepends=('check' 'gobject-introspection' 'intltool' 'libsoup' 'vala')
+provides=($_pkgname=$pkgver)
+conflicts=($_pkgname)
+replaces=($_pkgname)
+options=('!libtool')
+source=(https://fedorahosted.org/releases/l/i/$_pkgname/$_pkgname-$pkgver.tar.gz
+ libre.patch)
+sha256sums=('564bd487a39dc09a10917c1d7a95f739ee7701d9cd0fbabcacea64f615e20a2d'
+ '46d1c192f3730b5b02a52140a8f1abbacd6d41968c29cec9205f0cec77336a17')
+
+prepare() {
+ cd $_pkgname-$pkgver
+
+ rm data/datamaps/windows-lang.xml \
+ data/hypervisors/rhel-xen.xml{,.in} \
+ data/install-scripts/*.xml \
+ data/oses/*.xml{,.in}
+ rm -r test/isodata/*
+
+ patch -Np1 -i ../libre.patch
+
+ cd po
+ for file in *.po; do
+ intltool-update ${file%.*}
+ msgattrib --no-obsolete -o $file $file
+ done
+}
+
+build() {
+ cd $_pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --enable-udev \
+ --with-udev-rulesdir=/usr/lib/udev/rules.d \
+ --with-usb-ids-path=/usr/share/hwdata/usb.ids \
+ --with-pci-ids-path=/usr/share/hwdata/pci.ids
+ make
+}
+
+check() {
+ cd $_pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $_pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/libre/libosinfo-libre/libre.patch b/libre/libosinfo-libre/libre.patch
new file mode 100644
index 000000000..50213db8b
--- /dev/null
+++ b/libre/libosinfo-libre/libre.patch
@@ -0,0 +1,272 @@
+diff -ruN libosinfo-0.2.10/data/datamaps/Makefile.am libosinfo-0.2.10-libre/data/datamaps/Makefile.am
+--- libosinfo-0.2.10/data/datamaps/Makefile.am 2013-11-21 16:58:04.000000000 +0100
++++ libosinfo-0.2.10-libre/data/datamaps/Makefile.am 2014-04-27 16:45:16.440167522 +0200
+@@ -1,7 +1,6 @@
+
+ datamapdir = $(pkgdatadir)/db/datamaps/
+ datamap_DATA = \
+- windows-lang.xml \
+ x11-keyboard.xml \
+ $(NULL)
+
+diff -ruN libosinfo-0.2.10/data/datamaps/Makefile.in libosinfo-0.2.10-libre/data/datamaps/Makefile.in
+--- libosinfo-0.2.10/data/datamaps/Makefile.in 2014-03-20 18:52:11.000000000 +0100
++++ libosinfo-0.2.10-libre/data/datamaps/Makefile.in 2014-04-27 16:45:39.787204801 +0200
+@@ -331,7 +331,6 @@
+ top_srcdir = @top_srcdir@
+ datamapdir = $(pkgdatadir)/db/datamaps/
+ datamap_DATA = \
+- windows-lang.xml \
+ x11-keyboard.xml \
+ $(NULL)
+
+diff -ruN libosinfo-0.2.10/data/hypervisors/Makefile.am libosinfo-0.2.10-libre/data/hypervisors/Makefile.am
+--- libosinfo-0.2.10/data/hypervisors/Makefile.am 2013-11-21 16:58:04.000000000 +0100
++++ libosinfo-0.2.10-libre/data/hypervisors/Makefile.am 2014-04-27 16:51:11.999126605 +0200
+@@ -1,6 +1,6 @@
+
+ databasedir = $(pkgdatadir)/db/hypervisors/
+-database_in_files = kvm.xml.in qemu.xml.in rhel-xen.xml.in xen.xml.in
++database_in_files = kvm.xml.in qemu.xml.in xen.xml.in
+
+ database_DATA = $(database_in_files:.xml.in=.xml)
+
+diff -ruN libosinfo-0.2.10/data/hypervisors/Makefile.in libosinfo-0.2.10-libre/data/hypervisors/Makefile.in
+--- libosinfo-0.2.10/data/hypervisors/Makefile.in 2014-03-20 18:52:11.000000000 +0100
++++ libosinfo-0.2.10-libre/data/hypervisors/Makefile.in 2014-04-27 16:51:25.042665608 +0200
+@@ -330,7 +330,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ databasedir = $(pkgdatadir)/db/hypervisors/
+-database_in_files = kvm.xml.in qemu.xml.in rhel-xen.xml.in xen.xml.in
++database_in_files = kvm.xml.in qemu.xml.in xen.xml.in
+ database_DATA = $(database_in_files:.xml.in=.xml)
+ EXTRA_DIST = $(database_in_files) $(database_DATA)
+ all: all-am
+diff -ruN libosinfo-0.2.10/data/install-scripts/Makefile.am libosinfo-0.2.10-libre/data/install-scripts/Makefile.am
+--- libosinfo-0.2.10/data/install-scripts/Makefile.am 2014-03-06 22:42:00.000000000 +0100
++++ libosinfo-0.2.10-libre/data/install-scripts/Makefile.am 2014-04-27 16:57:22.658340718 +0200
+@@ -1,14 +1,6 @@
+
+ databasedir = $(pkgdatadir)/db/install-scripts/
+ database_DATA = \
+- debian.xml \
+- fedora.xml \
+- rhel.xml \
+- ubuntu.xml \
+- windows-sif.xml \
+- windows-cmd.xml \
+- windows-reg.xml \
+- windows-unattend.xml \
+ $(NULL)
+
+ EXTRA_DIST = $(database_DATA)
+diff -ruN libosinfo-0.2.10/data/install-scripts/Makefile.in libosinfo-0.2.10-libre/data/install-scripts/Makefile.in
+--- libosinfo-0.2.10/data/install-scripts/Makefile.in 2014-03-20 18:52:11.000000000 +0100
++++ libosinfo-0.2.10-libre/data/install-scripts/Makefile.in 2014-04-27 16:57:57.302215753 +0200
+@@ -331,14 +331,6 @@
+ top_srcdir = @top_srcdir@
+ databasedir = $(pkgdatadir)/db/install-scripts/
+ database_DATA = \
+- debian.xml \
+- fedora.xml \
+- rhel.xml \
+- ubuntu.xml \
+- windows-sif.xml \
+- windows-cmd.xml \
+- windows-reg.xml \
+- windows-unattend.xml \
+ $(NULL)
+
+ EXTRA_DIST = $(database_DATA)
+diff -ruN libosinfo-0.2.10/data/oses/Makefile.am libosinfo-0.2.10-libre/data/oses/Makefile.am
+--- libosinfo-0.2.10/data/oses/Makefile.am 2014-02-21 15:14:17.000000000 +0100
++++ libosinfo-0.2.10-libre/data/oses/Makefile.am 2014-04-27 17:04:12.968082285 +0200
+@@ -1,27 +1,6 @@
+
+ databasedir = $(pkgdatadir)/db/oses/
+ database_in_files = \
+- altlinux.xml.in \
+- centos.xml.in \
+- debian.xml.in \
+- dos.xml.in \
+- fedora.xml.in \
+- freebsd.xml.in \
+- gnome.xml.in \
+- mageia.xml.in \
+- mandriva.xml.in \
+- mandrake.xml.in \
+- netbsd.xml.in \
+- netware.xml.in \
+- macos.xml.in \
+- openbsd.xml.in \
+- opensuse.xml.in \
+- rhl.xml.in \
+- rhel.xml.in \
+- solaris.xml.in \
+- suse.xml.in \
+- ubuntu.xml.in \
+- windows.xml.in \
+ $(NULL)
+
+ database_DATA = $(database_in_files:.xml.in=.xml)
+diff -ruN libosinfo-0.2.10/data/oses/Makefile.in libosinfo-0.2.10-libre/data/oses/Makefile.in
+--- libosinfo-0.2.10/data/oses/Makefile.in 2014-03-20 18:52:11.000000000 +0100
++++ libosinfo-0.2.10-libre/data/oses/Makefile.in 2014-04-27 17:05:17.082415532 +0200
+@@ -331,27 +331,6 @@
+ top_srcdir = @top_srcdir@
+ databasedir = $(pkgdatadir)/db/oses/
+ database_in_files = \
+- altlinux.xml.in \
+- centos.xml.in \
+- debian.xml.in \
+- dos.xml.in \
+- fedora.xml.in \
+- freebsd.xml.in \
+- gnome.xml.in \
+- mageia.xml.in \
+- mandriva.xml.in \
+- mandrake.xml.in \
+- netbsd.xml.in \
+- netware.xml.in \
+- macos.xml.in \
+- openbsd.xml.in \
+- opensuse.xml.in \
+- rhl.xml.in \
+- rhel.xml.in \
+- solaris.xml.in \
+- suse.xml.in \
+- ubuntu.xml.in \
+- windows.xml.in \
+ $(NULL)
+
+ database_DATA = $(database_in_files:.xml.in=.xml)
+diff -ruN libosinfo-0.2.10/po/POTFILES.in libosinfo-0.2.10-libre/po/POTFILES.in
+--- libosinfo-0.2.10/po/POTFILES.in 2014-02-21 15:14:17.000000000 +0100
++++ libosinfo-0.2.10-libre/po/POTFILES.in 2014-04-27 17:09:40.876525788 +0200
+@@ -1,31 +1,9 @@
+-data/oses/netware.xml.in
+-data/oses/solaris.xml.in
+-data/oses/dos.xml.in
+-data/oses/mageia.xml.in
+-data/oses/mandrake.xml.in
+-data/oses/mandriva.xml.in
+-data/oses/suse.xml.in
+-data/oses/gnome.xml.in
+-data/oses/rhel.xml.in
+-data/oses/fedora.xml.in
+-data/oses/windows.xml.in
+-data/oses/opensuse.xml.in
+-data/oses/macos.xml.in
+-data/oses/debian.xml.in
+-data/oses/ubuntu.xml.in
+-data/oses/centos.xml.in
+-data/oses/openbsd.xml.in
+-data/oses/freebsd.xml.in
+-data/oses/rhl.xml.in
+-data/oses/netbsd.xml.in
+-data/oses/altlinux.xml.in
+ data/devices/qemu-ps2.xml.in
+ data/devices/qemu-pci.xml.in
+ data/devices/virtio-pci.xml.in
+ data/devices/qemu-usb.xml.in
+ data/hypervisors/kvm.xml.in
+ data/hypervisors/qemu.xml.in
+-data/hypervisors/rhel-xen.xml.in
+ data/hypervisors/xen.xml.in
+ osinfo/osinfo_avatar_format.c
+ osinfo/osinfo_deployment.c
+diff -ruN libosinfo-0.2.10/test/test-isodetect.c libosinfo-0.2.10-libre/test/test-isodetect.c
+--- libosinfo-0.2.10/test/test-isodetect.c 2014-02-21 15:14:17.000000000 +0100
++++ libosinfo-0.2.10-libre/test/test-isodetect.c 2014-04-27 16:27:40.353497937 +0200
+@@ -342,72 +342,6 @@
+ g_object_unref(loader);
+ }
+
+-START_TEST(test_fedora)
+-{
+- test_one("fedora");
+-}
+-END_TEST
+-
+-START_TEST(test_rhel)
+-{
+- test_one("rhel");
+-}
+-END_TEST
+-
+-START_TEST(test_ubuntu)
+-{
+- test_one("ubuntu");
+-}
+-END_TEST
+-
+-START_TEST(test_debian)
+-{
+- test_one("debian");
+-}
+-END_TEST
+-
+-START_TEST(test_windows)
+-{
+- test_one("windows");
+-}
+-END_TEST
+-
+-START_TEST(test_openbsd)
+-{
+- test_one("openbsd");
+-}
+-END_TEST
+-
+-START_TEST(test_opensuse)
+-{
+- test_one("opensuse");
+-}
+-END_TEST
+-
+-START_TEST(test_centos)
+-{
+- test_one("centos");
+-}
+-END_TEST
+-
+-START_TEST(test_gnome)
+-{
+- test_one("gnome");
+-}
+-END_TEST
+-
+-START_TEST(test_altlinux)
+-{
+- test_one("altlinux");
+-}
+-END_TEST
+-
+-START_TEST(test_mageia)
+-{
+- test_one("mageia");
+-}
+-END_TEST
+-
+ static Suite *
+ list_suite(void)
+ {
+@@ -415,17 +349,6 @@
+ TCase *tc = tcase_create("Core");
+ tcase_set_timeout(tc, 20);
+
+- tcase_add_test(tc, test_fedora);
+- tcase_add_test(tc, test_rhel);
+- tcase_add_test(tc, test_ubuntu);
+- tcase_add_test(tc, test_debian);
+- tcase_add_test(tc, test_windows);
+- tcase_add_test(tc, test_openbsd);
+- tcase_add_test(tc, test_opensuse);
+- tcase_add_test(tc, test_centos);
+- tcase_add_test(tc, test_gnome);
+- tcase_add_test(tc, test_altlinux);
+- tcase_add_test(tc, test_mageia);
+ suite_add_tcase(s, tc);
+ return s;
+ }
diff --git a/libre/libquicktime-libre/PKGBUILD b/libre/libquicktime-libre/PKGBUILD
index 5f44d0c5d..becd2420f 100644
--- a/libre/libquicktime-libre/PKGBUILD
+++ b/libre/libquicktime-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 108180 2014-03-24 09:50:56Z bpiotrowski $
-# Maintainer: Federico Cinelli <cinelli@aur.archlinux.org>
-# Maintainer: Mateusz Herych <heniekk@gmail.com>
-# Contributor (Parabola): Jorge Lopez <jorginho@lavabit.com>
+# Maintainer (Arch): Federico Cinelli <cinelli@aur.archlinux.org>
+# Maintainer (Arch): Mateusz Herych <heniekk@gmail.com>
+# Contributor: Jorge Lopez <jorginho@lavabit.com>
pkgname=libquicktime-libre
_pkgname=libquicktime
diff --git a/libre/libretools/PKGBUILD b/libre/libretools/PKGBUILD
index ef46c6954..f1fdd8ebf 100644
--- a/libre/libretools/PKGBUILD
+++ b/libre/libretools/PKGBUILD
@@ -1,5 +1,5 @@
# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-# Contributor: Joshua Haase <hahj87@gmail.com>
+# Contributor (Arch): Joshua Haase <hahj87@gmail.com>
# Contributor: fauno <fauno@kiwwwi.com.ar>
# Contributor: Márcio Silva <coadde@parabola.nu>
@@ -9,11 +9,11 @@ pkgdesc="Programs for Parabola development"
url="https://projects.parabolagnulinux.org/packages/libretools.git/"
license=('GPL3' 'GPL2')
-pkgver=20140322
-_libretools_commit=ff15727c30e5b9af5225869e38cbcfa2b08da6c2
-_devtools_commit=534d2015b45e013b37e1edbb997bd4df27d7b8fd
-md5sums=('36c7ef4d4f7e0b1fc6836babd40bb004'
- 'ec69dffa68829f063224de19bbd55fa9')
+pkgver=20140515
+_libretools_commit=22bb572086ff1c1667d553ac8233fc053a1556f2
+_devtools_commit=d732aae2ca57430f3dd95c0ed4dcc05df4014f91
+md5sums=('fd9d872b8fe28e8d64d76b3ef2d0b6ec'
+ '615db785531757d3a849614bb117fba4')
_packages_url=https://projects.parabolagnulinux.org/packages
source=($_packages_url/libretools.git/snapshot/libretools-$_libretools_commit.tar.bz2
@@ -38,9 +38,10 @@ check() {
}
package_librelib() {
- pkgdesc="Shell library portion of libretools"
+ pkgdesc="The shell library portion of libretools"
+ license=(GPL2)
depends=(
- wget # `aur` and `lib/blacklist.sh`
+ wget # `blacklist`
)
cd "$srcdir/$pkgbase-$_libretools_commit"
@@ -48,6 +49,8 @@ package_librelib() {
}
package_gitget() {
+ pkgdesc="A simple to use downloader for git URLs"
+ license=(GPL2)
depends=("librelib=$pkgver" git)
provides=("libregit=$pkgver")
@@ -62,17 +65,18 @@ package_libretools() {
backup=(etc/libretools.conf etc/libretools.d/chroot.conf etc/libretools.d/librefetch.conf)
install=libretools.install
replaces=(chroottools)
- conflicts=(devtools)
+ conflicts=(devtools chroottools)
depends=(
"librelib=$pkgver"
"gitget=$pkgver" # `createworkdir`
+ "systemd>=212" # force newer systemd
arch-install-scripts # `archroot` uses `pacstrap`
openssh # `librerelease`
rsync # `librerelease` and `makechrootpkg.sh`
subversion # `diff-unfree`
tokyocabinet # `treepkg`
- "systemd>208" # force newer systemd
+ wget # `aur`
)
optdepends=('namcap: to check package files')
@@ -82,6 +86,7 @@ package_libretools() {
package_libretools-mips64el() {
pkgdesc="Scripts for Parabola development (for mips64el architecture)"
+ license=(GPL3)
depends=("$pkgbase=$pkgver"
git # mips-add
)
diff --git a/libre/licenses-libre/PKGBUILD b/libre/licenses-libre/PKGBUILD
index 19012126c..7ca0036bb 100644
--- a/libre/licenses-libre/PKGBUILD
+++ b/libre/licenses-libre/PKGBUILD
@@ -1,11 +1,12 @@
# $Id: PKGBUILD 176952 2013-02-03 00:38:36Z dan $
-# Maintainer: Dan McGee <dan@archlinux.org>
-# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
-# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Dan McGee <dan@archlinux.org>
+# Maintainer: fauno <fauno@kiwwwi.com.ar>
+# Maintainer: Márcio Silva <coadde@parabola.nu>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Luke Shumaker <lukeshu@sbcglobal.net>
pkgname=licenses-libre
-pkgver=20130203
+pkgver=20140516
pkgrel=1.1
pkgdesc="The standard licenses distribution package"
arch=('any')
@@ -15,7 +16,6 @@ groups=('base')
provides=("licenses=${pkgver}")
conflicts=('licenses')
replaces=('licenses')
-makedepends=(links)
source=(apache-2.0.txt::http://www.apache.org/licenses/LICENSE-2.0.txt
cc-by-3.0.txt
cc-by-sa-3.0.txt
@@ -31,6 +31,7 @@ source=(apache-2.0.txt::http://www.apache.org/licenses/LICENSE-2.0.txt
http://www.gnu.org/licenses/fdl-1.3.txt
http://www.latex-project.org/lppl.txt
mpl-1.1.txt::http://www.mozilla.org/MPL/1.1/index.txt
+ mpl-2.0.txt::http://www.mozilla.org/MPL/2.0/index.txt
perlartistic.txt
http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt
php-3.0.txt::http://www.php.net/license/3_0.txt
@@ -38,6 +39,7 @@ source=(apache-2.0.txt::http://www.apache.org/licenses/LICENSE-2.0.txt
cpl-1.0.txt
python-2.txt
w3c.txt
+ wtfpl-2.txt::http://www.wtfpl.net/txt/copying/
ZopePublicLicense.txt)
md5sums=('3b83ef96387f14655fc854ddc3c6bd57'
'ffb24d1bbf8b83d373f0b8edc3feb0c6'
@@ -53,14 +55,16 @@ md5sums=('3b83ef96387f14655fc854ddc3c6bd57'
'24ea4c7092233849b4394699333b5c56'
'10b9de612d532fdeeb7fe8fcd1435cc6'
'9f4337828d782bdea41f03dd2ad1b808'
- 'bfe1f75d606912a4111c90743d6c7325'
+ 'b7426de1c630b269dc95ba20ea82a290'
+ '815ca599c9df247a0c7f619bab123dad'
'd09c120ca7db95ef2aeecec0cb08293b'
'b4a94da2a1f918b217ef5156634fc9e0'
'a45bb1bbeed9e26b26c5763df1d3913d'
- 'f24b942d957112d759762054b6e7cf34'
+ '837b32593517ae48b9c3b5c87a5d288c'
'f083e41c43db25e18f36c91e57750b64'
'a055911c32fb4ed6e96c453ceaeba857'
'6f2095b5d61770740852873b195a4d21'
+ '8365d07beeb5f39d87e846dca3ae7b64'
'dc8502850eab9e1ff330a12d7ca18a19')
package() {
@@ -111,8 +115,12 @@ package() {
mkdir LPPL
cp "$srcdir"/lppl.txt LPPL/license.txt
- mkdir MPL
- cp "$srcdir"/mpl-1.1.txt MPL/license.txt
+ mkdir MPL1.1
+ cp "$srcdir"/mpl-1.1.txt MPL1.1/license.txt
+ ln -s MPL1.1 MPL
+
+ mkdir MPL2
+ cp "$srcdir"/mpl-2.0.txt MPL2/license.txt
mkdir PerlArtistic
cp "$srcdir"/perlartistic.txt PerlArtistic/license.txt
@@ -129,6 +137,10 @@ package() {
mkdir W3C
cp "$srcdir"/w3c.txt W3C/license.txt
+ mkdir WTFPL2
+ cp "$srcdir"/wtfpl-2.txt WTFPL2/license.txt
+ ln -s WTFPL2 WTFPL
+
mkdir ZPL
cp "$srcdir"/ZopePublicLicense.txt ZPL/license.txt
}
diff --git a/libre/liferea-libre/PKGBUILD b/libre/liferea-libre/PKGBUILD
index 54d262de3..f0c0b685a 100644
--- a/libre/liferea-libre/PKGBUILD
+++ b/libre/liferea-libre/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 208122 2014-03-18 04:03:06Z eric $
-# Maintainer: Eric Bélanger <eric@archlinux.org>
-# Contributor (Parabola): bitlord
-# Contributor (Parabola): André Silva <emulatorman@parabola.nu>
+# $Id: PKGBUILD 211690 2014-04-23 14:07:47Z eric $
+# Maintainer (Arch): Eric Bélanger <eric@archlinux.org>
+# Contributor: bitlord
+# Contributor: André Silva <emulatorman@parabola.nu>
_pkgname=liferea
pkgname=liferea-libre
-pkgver=1.10.7
+pkgver=1.10.9
pkgrel=1
pkgdesc="A desktop news aggregator for online news feeds and weblogs, without nonfree suggestions"
arch=('i686' 'x86_64')
@@ -26,7 +26,7 @@ options=('!emptydirs')
install=liferea.install
source=(https://github.com/lwindolf/liferea/releases/download/v${pkgver}/liferea-${pkgver}.tar.bz2
remove-non-free-suggestions.patch)
-sha1sums=('da0ae3457fc8525bb6e43fef01c3a52bea7e96cf'
+sha1sums=('04ff66e4f08ad2f46563a6784c656439cda1f223'
'855de60c91b5fee71c7ec88dd04b7d24a02dc0d1')
build() {
diff --git a/libre/linux-libre-api-headers/PKGBUILD b/libre/linux-libre-api-headers/PKGBUILD
index 087a0cae8..245282994 100644
--- a/libre/linux-libre-api-headers/PKGBUILD
+++ b/libre/linux-libre-api-headers/PKGBUILD
@@ -1,12 +1,12 @@
-# $Id: PKGBUILD 205569 2014-02-07 22:36:57Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# $Id: PKGBUILD 211667 2014-04-23 02:10:08Z allan $
+# Maintainer (Arch): Allan McRae <allan@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
# toolchain build order: linux-libre-api-headers->glibc->binutils->gcc->binutils->glibc
pkgname=linux-libre-api-headers
-_basekernel=3.13
-_sublevel=2
+_basekernel=3.14
+_sublevel=1
pkgver=${_basekernel}.${_sublevel}
pkgrel=1
pkgdesc="Kernel headers sanitized for use in userspace"
@@ -17,17 +17,27 @@ provides=("linux-api-headers=${pkgver}")
conflicts=('linux-api-headers')
replaces=('linux-api-headers')
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=('98a8e803e0ed08557f3cdd4d56b0ddc1'
- '5594978ab8b62033274cf36305baf238')
+ "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basekernel}-gnu-${pkgver}-gnu.xz"
+ linux-3.14-xattr_header.patch)
+md5sums=('c108ec52eeb2a9b9ddbb8d12496ff25f'
+ '2b4862b3c76011e66e536f18fbf0fb27'
+ '22926521588b2e95f3c2a2cb428e7cf9')
-build() {
+prepare() {
cd ${srcdir}/linux-${_basekernel}
if [ "${_basekernel}" != "${pkgver}" ]; then
patch -p1 -i "${srcdir}/patch-${_basekernel}-gnu-${pkgver}-gnu"
fi
+ # fix xattr.h dual inclusion issues
+ # https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=ea1a8217
+ patch -p1 -i $srcdir/linux-3.14-xattr_header.patch
+}
+
+build() {
+ cd ${srcdir}/linux-${_basekernel}
+
make mrproper
make headers_check
}
diff --git a/libre/linux-libre-api-headers/linux-3.14-xattr_header.patch b/libre/linux-libre-api-headers/linux-3.14-xattr_header.patch
new file mode 100644
index 000000000..1ea583d86
--- /dev/null
+++ b/libre/linux-libre-api-headers/linux-3.14-xattr_header.patch
@@ -0,0 +1,76 @@
+From ea1a8217b06b41b31a2b60b0b83f75c77ef9c873 Mon Sep 17 00:00:00 2001
+From: Serge Hallyn <serge.hallyn@ubuntu.com>
+Date: Thu, 3 Apr 2014 14:48:33 -0700
+Subject: xattr: guard against simultaneous glibc header inclusion
+
+If the glibc xattr.h header is included after the uapi header,
+compilation fails due to an enum re-using a #define from the uapi
+header.
+
+Protect against this by guarding the define and enum inclusions against
+each other.
+
+(See https://lists.debian.org/debian-glibc/2014/03/msg00029.html
+and https://sourceware.org/glibc/wiki/Synchronizing_Headers
+for more information.)
+
+Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
+Cc: Andrew Morton <akpm@linux-foundation.org>
+Cc: Allan McRae <allan@archlinux.org>
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+
+diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
+index 335e8a7..c140620 100644
+--- a/include/uapi/linux/libc-compat.h
++++ b/include/uapi/linux/libc-compat.h
+@@ -85,6 +85,12 @@
+
+ #endif /* _NETINET_IN_H */
+
++/* Definitions for xattr.h */
++#if defined(_SYS_XATTR_H)
++#define __UAPI_DEF_XATTR 0
++#else
++#define __UAPI_DEF_XATTR 1
++#endif
+
+ /* If we did not see any headers from any supported C libraries,
+ * or we are being included in the kernel, then define everything
+@@ -98,6 +104,9 @@
+ #define __UAPI_DEF_IPV6_MREQ 1
+ #define __UAPI_DEF_IPPROTO_V6 1
+
++/* Definitions for xattr.h */
++#define __UAPI_DEF_XATTR 1
++
+ #endif /* __GLIBC__ */
+
+ #endif /* _UAPI_LIBC_COMPAT_H */
+diff --git a/include/uapi/linux/xattr.h b/include/uapi/linux/xattr.h
+index 40bbc04..c38355c 100644
+--- a/include/uapi/linux/xattr.h
++++ b/include/uapi/linux/xattr.h
+@@ -7,11 +7,18 @@
+ Copyright (c) 2001-2002 Silicon Graphics, Inc. All Rights Reserved.
+ Copyright (c) 2004 Red Hat, Inc., James Morris <jmorris@redhat.com>
+ */
++
++#include <linux/libc-compat.h>
++
+ #ifndef _UAPI_LINUX_XATTR_H
+ #define _UAPI_LINUX_XATTR_H
+
++#ifdef __UAPI_DEF_XATTR
++#define __USE_KERNEL_XATTR_DEFS
++
+ #define XATTR_CREATE 0x1 /* set value, fail if attr already exists */
+ #define XATTR_REPLACE 0x2 /* set value, fail if attr does not exist */
++#endif
+
+ /* Namespaces */
+ #define XATTR_OS2_PREFIX "os2."
+--
+cgit v0.10.1
+
diff --git a/libre/linux-libre-grsec/0007-x86-efi-Correct-EFI-boot-stub-use-of-code32_start.patch b/libre/linux-libre-grsec/0007-x86-efi-Correct-EFI-boot-stub-use-of-code32_start.patch
deleted file mode 100644
index 898ee1543..000000000
--- a/libre/linux-libre-grsec/0007-x86-efi-Correct-EFI-boot-stub-use-of-code32_start.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From 720a9dbf61c88bd57d6f8198ed8ccb2bd4a6abd8 Mon Sep 17 00:00:00 2001
-From: Matt Fleming <matt@console-pimps.org>
-Date: Wed, 9 Apr 2014 10:33:49 +0200
-Subject: [PATCH 07/10] x86/efi: Correct EFI boot stub use of code32_start
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-code32_start should point at the start of the protected mode code, and
-*not* at the beginning of the bzImage. This is much easier to do in
-assembly so document that callers of make_boot_params() need to fill out
-code32_start.
-
-The fallout from this bug is that we would end up relocating the image
-but copying the image at some offset, resulting in what appeared to be
-memory corruption.
-
-Reported-by: Thomas Bächler <thomas@archlinux.org>
-Signed-off-by: Matt Fleming <matt.fleming@intel.com>
----
- arch/x86/boot/compressed/eboot.c | 5 +++--
- arch/x86/boot/compressed/head_32.S | 14 ++++++++------
- arch/x86/boot/compressed/head_64.S | 9 +++------
- 3 files changed, 14 insertions(+), 14 deletions(-)
-
-diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
-index a7677ba..78cbb2d 100644
---- a/arch/x86/boot/compressed/eboot.c
-+++ b/arch/x86/boot/compressed/eboot.c
-@@ -425,6 +425,9 @@ void setup_graphics(struct boot_params *boot_params)
- * Because the x86 boot code expects to be passed a boot_params we
- * need to create one ourselves (usually the bootloader would create
- * one for us).
-+ *
-+ * The caller is responsible for filling out ->code32_start in the
-+ * returned boot_params.
- */
- struct boot_params *make_boot_params(void *handle, efi_system_table_t *_table)
- {
-@@ -483,8 +486,6 @@ struct boot_params *make_boot_params(void *handle, efi_system_table_t *_table)
- hdr->vid_mode = 0xffff;
- hdr->boot_flag = 0xAA55;
-
-- hdr->code32_start = (__u64)(unsigned long)image->image_base;
--
- hdr->type_of_loader = 0x21;
-
- /* Convert unicode cmdline to ascii */
-diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
-index 9116aac..f45ab7a 100644
---- a/arch/x86/boot/compressed/head_32.S
-+++ b/arch/x86/boot/compressed/head_32.S
-@@ -50,6 +50,13 @@ ENTRY(efi_pe_entry)
- pushl %eax
- pushl %esi
- pushl %ecx
-+
-+ call reloc
-+reloc:
-+ popl %ecx
-+ subl reloc, %ecx
-+ movl %ecx, BP_code32_start(%eax)
-+
- sub $0x4, %esp
-
- ENTRY(efi_stub_entry)
-@@ -63,12 +70,7 @@ ENTRY(efi_stub_entry)
- hlt
- jmp 1b
- 2:
-- call 3f
--3:
-- popl %eax
-- subl $3b, %eax
-- subl BP_pref_address(%esi), %eax
-- add BP_code32_start(%esi), %eax
-+ movl BP_code32_start(%esi), %eax
- leal preferred_addr(%eax), %eax
- jmp *%eax
-
-diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
-index c5c1ae0..b10fa66 100644
---- a/arch/x86/boot/compressed/head_64.S
-+++ b/arch/x86/boot/compressed/head_64.S
-@@ -217,6 +217,8 @@ ENTRY(efi_pe_entry)
- cmpq $0,%rax
- je 1f
- mov %rax, %rdx
-+ leaq startup_32(%rip), %rax
-+ movl %eax, BP_code32_start(%rdx)
- popq %rsi
- popq %rdi
-
-@@ -230,12 +232,7 @@ ENTRY(efi_stub_entry)
- hlt
- jmp 1b
- 2:
-- call 3f
--3:
-- popq %rax
-- subq $3b, %rax
-- subq BP_pref_address(%rsi), %rax
-- add BP_code32_start(%esi), %eax
-+ movl BP_code32_start(%esi), %eax
- leaq preferred_addr(%rax), %rax
- jmp *%rax
-
---
-1.9.2
-
diff --git a/libre/linux-libre-grsec/0008-futex-avoid-race-between-requeue-and-wake.patch b/libre/linux-libre-grsec/0008-futex-avoid-race-between-requeue-and-wake.patch
deleted file mode 100644
index 8685e1168..000000000
--- a/libre/linux-libre-grsec/0008-futex-avoid-race-between-requeue-and-wake.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From aafcd8f8692fb9e389608c1efad2e57c0bbb9362 Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds@linux-foundation.org>
-Date: Tue, 8 Apr 2014 15:30:07 -0700
-Subject: [PATCH 08/10] futex: avoid race between requeue and wake
-
-commit 69cd9eba38867a493a043bb13eb9b33cad5f1a9a upstream.
-
-Jan Stancek reported:
- "pthread_cond_broadcast/4-1.c testcase from openposix testsuite (LTP)
- occasionally fails, because some threads fail to wake up.
-
- Testcase creates 5 threads, which are all waiting on same condition.
- Main thread then calls pthread_cond_broadcast() without holding mutex,
- which calls:
-
- futex(uaddr1, FUTEX_CMP_REQUEUE_PRIVATE, 1, 2147483647, uaddr2, ..)
-
- This immediately wakes up single thread A, which unlocks mutex and
- tries to wake up another thread:
-
- futex(uaddr2, FUTEX_WAKE_PRIVATE, 1)
-
- If thread A manages to call futex_wake() before any waiters are
- requeued for uaddr2, no other thread is woken up"
-
-The ordering constraints for the hash bucket waiter counting are that
-the waiter counts have to be incremented _before_ getting the spinlock
-(because the spinlock acts as part of the memory barrier), but the
-"requeue" operation didn't honor those rules, and nobody had even
-thought about that case.
-
-This fairly simple patch just increments the waiter count for the target
-hash bucket (hb2) when requeing a futex before taking the locks. It
-then decrements them again after releasing the lock - the code that
-actually moves the futex(es) between hash buckets will do the additional
-required waiter count housekeeping.
-
-Reported-and-tested-by: Jan Stancek <jstancek@redhat.com>
-Acked-by: Davidlohr Bueso <davidlohr@hp.com>
-Cc: Peter Zijlstra <peterz@infradead.org>
-Cc: Thomas Gleixner <tglx@linutronix.de>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- kernel/futex.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/kernel/futex.c b/kernel/futex.c
-index 08ec814..16b1f2c 100644
---- a/kernel/futex.c
-+++ b/kernel/futex.c
-@@ -1450,6 +1450,7 @@ retry:
- hb2 = hash_futex(&key2);
-
- retry_private:
-+ hb_waiters_inc(hb2);
- double_lock_hb(hb1, hb2);
-
- if (likely(cmpval != NULL)) {
-@@ -1459,6 +1460,7 @@ retry_private:
-
- if (unlikely(ret)) {
- double_unlock_hb(hb1, hb2);
-+ hb_waiters_dec(hb2);
-
- ret = get_user(curval, uaddr1);
- if (ret)
-@@ -1508,6 +1510,7 @@ retry_private:
- break;
- case -EFAULT:
- double_unlock_hb(hb1, hb2);
-+ hb_waiters_dec(hb2);
- put_futex_key(&key2);
- put_futex_key(&key1);
- ret = fault_in_user_writeable(uaddr2);
-@@ -1517,6 +1520,7 @@ retry_private:
- case -EAGAIN:
- /* The owner was exiting, try again. */
- double_unlock_hb(hb1, hb2);
-+ hb_waiters_dec(hb2);
- put_futex_key(&key2);
- put_futex_key(&key1);
- cond_resched();
-@@ -1592,6 +1596,7 @@ retry_private:
-
- out_unlock:
- double_unlock_hb(hb1, hb2);
-+ hb_waiters_dec(hb2);
-
- /*
- * drop_futex_key_refs() must be called outside the spinlocks. During
---
-1.9.2
-
diff --git a/libre/linux-libre-grsec/0009-iwlwifi-mvm-rs-fix-search-cycle-rules.patch b/libre/linux-libre-grsec/0009-iwlwifi-mvm-rs-fix-search-cycle-rules.patch
deleted file mode 100644
index 5acbf53dd..000000000
--- a/libre/linux-libre-grsec/0009-iwlwifi-mvm-rs-fix-search-cycle-rules.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 06af061dd673d749d5516bea41e2becb034e00b8 Mon Sep 17 00:00:00 2001
-From: Eyal Shapira <eyal@wizery.com>
-Date: Sun, 16 Mar 2014 05:23:21 +0200
-Subject: [PATCH 09/10] iwlwifi: mvm: rs: fix search cycle rules
-
-commit 8930b05090acd321b1fc7c642528c697cb105c42 upstream.
-
-We should explore all possible columns when searching to be
-as resilient as possible to changing conditions. This fixes
-for example a scenario where even after a sudden creation of
-rssi difference between the 2 antennas we would keep doing MIMO
-at a low rate instead of switching to SISO at a higher rate using
-the better antenna which was the optimal configuration.
-
-Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com>
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/net/wireless/iwlwifi/mvm/rs.c | 36 +++++++++++++++++------------------
- 1 file changed, 18 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/mvm/rs.c b/drivers/net/wireless/iwlwifi/mvm/rs.c
-index 6abf74e..5bc8715 100644
---- a/drivers/net/wireless/iwlwifi/mvm/rs.c
-+++ b/drivers/net/wireless/iwlwifi/mvm/rs.c
-@@ -211,9 +211,9 @@ static const struct rs_tx_column rs_tx_columns[] = {
- .next_columns = {
- RS_COLUMN_LEGACY_ANT_B,
- RS_COLUMN_SISO_ANT_A,
-+ RS_COLUMN_SISO_ANT_B,
- RS_COLUMN_MIMO2,
-- RS_COLUMN_INVALID,
-- RS_COLUMN_INVALID,
-+ RS_COLUMN_MIMO2_SGI,
- },
- },
- [RS_COLUMN_LEGACY_ANT_B] = {
-@@ -221,10 +221,10 @@ static const struct rs_tx_column rs_tx_columns[] = {
- .ant = ANT_B,
- .next_columns = {
- RS_COLUMN_LEGACY_ANT_A,
-+ RS_COLUMN_SISO_ANT_A,
- RS_COLUMN_SISO_ANT_B,
- RS_COLUMN_MIMO2,
-- RS_COLUMN_INVALID,
-- RS_COLUMN_INVALID,
-+ RS_COLUMN_MIMO2_SGI,
- },
- },
- [RS_COLUMN_SISO_ANT_A] = {
-@@ -234,8 +234,8 @@ static const struct rs_tx_column rs_tx_columns[] = {
- RS_COLUMN_SISO_ANT_B,
- RS_COLUMN_MIMO2,
- RS_COLUMN_SISO_ANT_A_SGI,
-- RS_COLUMN_INVALID,
-- RS_COLUMN_INVALID,
-+ RS_COLUMN_SISO_ANT_B_SGI,
-+ RS_COLUMN_MIMO2_SGI,
- },
- .checks = {
- rs_siso_allow,
-@@ -248,8 +248,8 @@ static const struct rs_tx_column rs_tx_columns[] = {
- RS_COLUMN_SISO_ANT_A,
- RS_COLUMN_MIMO2,
- RS_COLUMN_SISO_ANT_B_SGI,
-- RS_COLUMN_INVALID,
-- RS_COLUMN_INVALID,
-+ RS_COLUMN_SISO_ANT_A_SGI,
-+ RS_COLUMN_MIMO2_SGI,
- },
- .checks = {
- rs_siso_allow,
-@@ -263,8 +263,8 @@ static const struct rs_tx_column rs_tx_columns[] = {
- RS_COLUMN_SISO_ANT_B_SGI,
- RS_COLUMN_MIMO2_SGI,
- RS_COLUMN_SISO_ANT_A,
-- RS_COLUMN_INVALID,
-- RS_COLUMN_INVALID,
-+ RS_COLUMN_SISO_ANT_B,
-+ RS_COLUMN_MIMO2,
- },
- .checks = {
- rs_siso_allow,
-@@ -279,8 +279,8 @@ static const struct rs_tx_column rs_tx_columns[] = {
- RS_COLUMN_SISO_ANT_A_SGI,
- RS_COLUMN_MIMO2_SGI,
- RS_COLUMN_SISO_ANT_B,
-- RS_COLUMN_INVALID,
-- RS_COLUMN_INVALID,
-+ RS_COLUMN_SISO_ANT_A,
-+ RS_COLUMN_MIMO2,
- },
- .checks = {
- rs_siso_allow,
-@@ -292,10 +292,10 @@ static const struct rs_tx_column rs_tx_columns[] = {
- .ant = ANT_AB,
- .next_columns = {
- RS_COLUMN_SISO_ANT_A,
-+ RS_COLUMN_SISO_ANT_B,
-+ RS_COLUMN_SISO_ANT_A_SGI,
-+ RS_COLUMN_SISO_ANT_B_SGI,
- RS_COLUMN_MIMO2_SGI,
-- RS_COLUMN_INVALID,
-- RS_COLUMN_INVALID,
-- RS_COLUMN_INVALID,
- },
- .checks = {
- rs_mimo_allow,
-@@ -307,10 +307,10 @@ static const struct rs_tx_column rs_tx_columns[] = {
- .sgi = true,
- .next_columns = {
- RS_COLUMN_SISO_ANT_A_SGI,
-+ RS_COLUMN_SISO_ANT_B_SGI,
-+ RS_COLUMN_SISO_ANT_A,
-+ RS_COLUMN_SISO_ANT_B,
- RS_COLUMN_MIMO2,
-- RS_COLUMN_INVALID,
-- RS_COLUMN_INVALID,
-- RS_COLUMN_INVALID,
- },
- .checks = {
- rs_mimo_allow,
---
-1.9.2
-
diff --git a/libre/linux-libre-grsec/0011-kernfs-fix-removed-error-check.patch b/libre/linux-libre-grsec/0011-kernfs-fix-removed-error-check.patch
new file mode 100644
index 000000000..b597595c6
--- /dev/null
+++ b/libre/linux-libre-grsec/0011-kernfs-fix-removed-error-check.patch
@@ -0,0 +1,13 @@
+diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c
+index 8034706..e01ea4a 100644
+--- a/fs/kernfs/file.c
++++ b/fs/kernfs/file.c
+@@ -484,6 +484,8 @@ static int kernfs_fop_mmap(struct file *file, struct vm_area_struct *vma)
+
+ ops = kernfs_ops(of->kn);
+ rc = ops->mmap(of, vma);
++ if (rc)
++ goto out_put;
+
+ /*
+ * PowerPC's pci_mmap of legacy_mem uses shmem_zero_setup()
diff --git a/libre/linux-libre-grsec/0012-fix-saa7134.patch b/libre/linux-libre-grsec/0012-fix-saa7134.patch
new file mode 100644
index 000000000..070fbc8eb
--- /dev/null
+++ b/libre/linux-libre-grsec/0012-fix-saa7134.patch
@@ -0,0 +1,37 @@
+--- a/drivers/media/pci/saa7134/saa7134-video.c
++++ a/drivers/media/pci/saa7134/saa7134-video.c
+@@ -1243,6 +1243,7 @@ static int video_release(struct file *file)
+ videobuf_streamoff(&dev->cap);
+ res_free(dev, fh, RESOURCE_VIDEO);
+ videobuf_mmap_free(&dev->cap);
++ INIT_LIST_HEAD(&dev->cap.stream);
+ }
+ if (dev->cap.read_buf) {
+ buffer_release(&dev->cap, dev->cap.read_buf);
+@@ -1254,6 +1255,7 @@ static int video_release(struct file *file)
+ videobuf_stop(&dev->vbi);
+ res_free(dev, fh, RESOURCE_VBI);
+ videobuf_mmap_free(&dev->vbi);
++ INIT_LIST_HEAD(&dev->vbi.stream);
+ }
+
+ /* ts-capture will not work in planar mode, so turn it off Hac: 04.05*/
+@@ -1987,17 +1989,12 @@ int saa7134_streamoff(struct file *file, void *priv,
+ enum v4l2_buf_type type)
+ {
+ struct saa7134_dev *dev = video_drvdata(file);
+- int err;
+ int res = saa7134_resource(file);
+
+ if (res != RESOURCE_EMPRESS)
+ pm_qos_remove_request(&dev->qos_request);
+
+- err = videobuf_streamoff(saa7134_queue(file));
+- if (err < 0)
+- return err;
+- res_free(dev, priv, res);
+- return 0;
++ return videobuf_streamoff(saa7134_queue(file));
+ }
+ EXPORT_SYMBOL_GPL(saa7134_streamoff);
+
diff --git a/libre/linux-libre-grsec/0013-net-Start-with-correct-mac_len-in-skb_network_protocol.patch b/libre/linux-libre-grsec/0013-net-Start-with-correct-mac_len-in-skb_network_protocol.patch
new file mode 100644
index 000000000..2840f190c
--- /dev/null
+++ b/libre/linux-libre-grsec/0013-net-Start-with-correct-mac_len-in-skb_network_protocol.patch
@@ -0,0 +1,13 @@
+diff --git a/net/core/dev.c b/net/core/dev.c
+index 45fa2f1..6088927 100644
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -2289,7 +2289,7 @@ EXPORT_SYMBOL(skb_checksum_help);
+ __be16 skb_network_protocol(struct sk_buff *skb, int *depth)
+ {
+ __be16 type = skb->protocol;
+- int vlan_depth = ETH_HLEN;
++ int vlan_depth = skb->mac_len;
+
+ /* Tunnel gso handlers can set protocol to ethernet. */
+ if (type == htons(ETH_P_TEB)) {
diff --git a/libre/linux-libre-grsec/0015-fix-xsdt-validation.patch b/libre/linux-libre-grsec/0015-fix-xsdt-validation.patch
new file mode 100644
index 000000000..82dd2be25
--- /dev/null
+++ b/libre/linux-libre-grsec/0015-fix-xsdt-validation.patch
@@ -0,0 +1,42 @@
+@@ -, +, @@
+ acpi_tb_parse_root_table().
+ Commit: 671cc68dc61f029d44b43a681356078e02d8dab8
+ Subject: ACPICA: Back port and refine validation of the XSDT root table.
+---
+ drivers/acpi/acpica/tbutils.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+--- a/drivers/acpi/acpica/tbutils.c
++++ a/drivers/acpi/acpica/tbutils.c
+@@ -461,6 +461,7 @@ acpi_status __init acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
+ u32 table_count;
+ struct acpi_table_header *table;
+ acpi_physical_address address;
++ acpi_physical_address rsdt_address;
+ u32 length;
+ u8 *table_entry;
+ acpi_status status;
+@@ -488,11 +489,13 @@ acpi_status __init acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
+ * as per the ACPI specification.
+ */
+ address = (acpi_physical_address) rsdp->xsdt_physical_address;
++ rsdt_address = (acpi_physical_address) rsdp->rsdt_physical_address;
+ table_entry_size = ACPI_XSDT_ENTRY_SIZE;
+ } else {
+ /* Root table is an RSDT (32-bit physical addresses) */
+
+ address = (acpi_physical_address) rsdp->rsdt_physical_address;
++ rsdt_address = address;
+ table_entry_size = ACPI_RSDT_ENTRY_SIZE;
+ }
+
+@@ -515,8 +518,7 @@ acpi_status __init acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
+
+ /* Fall back to the RSDT */
+
+- address =
+- (acpi_physical_address) rsdp->rsdt_physical_address;
++ address = rsdt_address;
+ table_entry_size = ACPI_RSDT_ENTRY_SIZE;
+ }
+ }
+
diff --git a/libre/linux-libre-grsec/PKGBUILD b/libre/linux-libre-grsec/PKGBUILD
index 576441ea3..6f7e20edf 100644
--- a/libre/linux-libre-grsec/PKGBUILD
+++ b/libre/linux-libre-grsec/PKGBUILD
@@ -1,24 +1,24 @@
-# Maintainer: Daniel Micay <danielmicay@gmail.com>
-# Contributor: Tobias Powalowski <tpowa@archlinux.org>
-# Contributor: Thomas Baechler <thomas@archlinux.org>
-# Contributor: henning mueller <henning@orgizm.net>
-# Contributor: Thomas Dwyer http://tomd.tel
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Nicolás Reynolds <fauno@kiwwwi.com.ar>
-# Contributor (Parabola): Sorin-Mihai Vârgolici <smv@yobicore.org>
-# Contributor (Parabola): Michał Masłowski <mtjm@mtjm.eu>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer (Arch): Daniel Micay <danielmicay@gmail.com>
+# Contributor (Arch): Tobias Powalowski <tpowa@archlinux.org>
+# Contributor (Arch): Thomas Baechler <thomas@archlinux.org>
+# Contributor (Arch): henning mueller <henning@orgizm.net>
+# Contributor (Arch): Thomas Dwyer http://tomd.tel
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Nicolás Reynolds <fauno@kiwwwi.com.ar>
+# Contributor: Sorin-Mihai Vârgolici <smv@yobicore.org>
+# Contributor: Michał Masłowski <mtjm@mtjm.eu>
+# Contributor: Márcio Silva <coadde@parabola.nu>
pkgbase=linux-libre-grsec # Build stock -LIBRE-GRSEC kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
_basekernel=3.14
-_sublevel=1
+_sublevel=4
_grsecver=3.0
-_timestamp=201404201132
+_timestamp=201405141623
_pkgver=${_basekernel}.${_sublevel}
pkgver=${_basekernel}.${_sublevel}.${_timestamp}
pkgrel=1
-_lxopkgver=${_basekernel}.0 # nearly always the same as pkgver
+_lxopkgver=${_basekernel}.4 # nearly always the same as pkgver
arch=('i686' 'x86_64' 'mips64el')
url="https://grsecurity.net/"
license=('GPL2')
@@ -42,35 +42,41 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'0004-fs-Don-t-return-0-from-get_anon_bdev.patch'
'0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch'
'0006-genksyms-fix-typeof-handling.patch'
- '0007-x86-efi-Correct-EFI-boot-stub-use-of-code32_start.patch'
'0010-iwlwifi-mvm-delay-enabling-smart-FIFO-until-after-be.patch'
+ '0011-kernfs-fix-removed-error-check.patch'
+ '0012-fix-saa7134.patch'
+ '0013-net-Start-with-correct-mac_len-in-skb_network_protocol.patch'
+ '0015-fix-xsdt-validation.patch'
'sysctl.conf'
"http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.xz")
-md5sums=('c108ec52eeb2a9b9ddbb8d12496ff25f'
- '2b4862b3c76011e66e536f18fbf0fb27'
- 'db16c597af55a82da6fbe1059377c5cd'
- 'SKIP'
- '51ead958a4bb74ca5f5702b97740719b'
- '0822a5655cef86bb6f449692d8b3f3d2'
- '5f66bed97a5c37e48eb2f71b2d354b9a'
- '2967cecc3af9f954ccc822fd63dca6ff'
- '8267264d9a8966e57fdacd1fa1fc65c4'
- '14bb375a8a1d86d2875f72fcbaa03f3e'
- '98beb36f9b8cf16e58de2483ea9985e3'
- '6839ddec74a5300beff1709a81b0e4f3'
- '706549e8a05f33f7fc697f28c0ca71d2'
- 'd23fc66be93ebce698bd7da844789de1'
- 'b240cc8ebb4b5d74e94b4c72d033f726'
- 'a89d593774ccb955eb8368d3bc87ce26'
- '16a161979f846b049e90daea907c35dd'
- '00727251b0d337a25d3ca392218afdf4'
- '353b553d69da810ef954618aca60e1e2'
- '7a052645280da78a98bfe8cf805ddab5'
- '385f03abf27baa73731d27721eafd1c1')
+sha256sums=('477555c709b9407fe37dbd70d3331ff9dde1f9d874aba2741f138d07ae6f281b'
+ '01de5e15a2081197859e617c441de5cac9ddf60bed6fcf4dcff7a54e210e7815'
+ 'e41e5dea54db4311655ccc68b371ac15dcc48f8767ca0a02150af70e831d2e4d'
+ 'SKIP'
+ '0b6dbdf4d1677a39b9a0d55e8d7c66fe644fa77d769e3b673064181222b17467'
+ '8207a533f4fbad05ad26061f924957a7a92436d44a5dd7ca10e61d730c5e0ef9'
+ '9d2f34f1a8c514a7117b9b017a1f7312fb351f4d0b079eed102f89361534d486'
+ 'c5451d5e1eafc4f8d28b1a2958ec3102c124433a414a86450fc32058e004156b'
+ '55bf07738a3286168a7929ae16dbca29defd14e77b9d24c487ae4c3d12bb9eb9'
+ 'f913384dd6dbafca476fcf4ccd35f0f497dda5f3074866022facdb92647771f6'
+ 'faced4eb4c47c4eb1a9ee8a5bf8a7c4b49d6b4d78efbe426e410730e6267d182'
+ '6d72e14552df59e6310f16c176806c408355951724cd5b48a47bf01591b8be02'
+ '52dec83a8805a8642d74d764494acda863e0aa23e3d249e80d4b457e20a3fd29'
+ '65d58f63215ee3c5f9c4fc6bce36fc5311a6c7dbdbe1ad29de40647b47ff9c0d'
+ '1e1ae0f31f722e80da083ecada1f1be57f9ddad133941820c4483b0240e494c1'
+ '3fffb01cf97a5a7ab9601cb277d2468c0fb1e1cceba4225915f3ffae3a5694ec'
+ 'cf2e7a2d00787f754028e7459688c2755a406e632ce48b60952fa4ff7ed6f4b7'
+ 'c0af4622f75c89fef62183e18b7d49998228d4eaa906c6accaf4aa4ff0134f85'
+ '04f44bf5c181d6dc31905937c1bdccb0f5aecaad3a579e99b302502b9cbe0f7a'
+ '79359454c9d8446eb55add2b1cdbf8332bd67dafb01fefb5b1ca090225f64d18'
+ 'f2a5e22c1ba6e9b8a32a7bd4a5327ee95538aa10edcee3cd12578f8ff49bf6be'
+ '384dd13fd4248fd6809da8c6ae29ced55d4a5cacc33ac2ae7522093ec0fb26d4'
+ 'a37823f0cdf3f318ec3f486f6e4035a7a8f887522d3a563d4dfe155f143ba24f'
+ '3cd53473e049a4809d9dde8ebef73307ce87076d707f3fd5c100844d4a9e8255')
if [ "$CARCH" != "mips64el" ]; then
# don't use the Loongson-specific patches on non-mips64el arches.
unset source[${#source[@]}-1]
- unset md5sums[${#md5sums[@]}-1]
+ unset sha256sums[${#sha256sums[@]}-1]
fi
_kernelname=${pkgbase#linux-libre}
@@ -118,15 +124,29 @@ prepare() {
# http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dc53324060f324e8af6867f57bf4891c13c6ef18
patch -p1 -i "${srcdir}/0006-genksyms-fix-typeof-handling.patch"
- # Fix the use of code32_start in the EFI boot stub
- # http://permalink.gmane.org/gmane.linux.kernel/1679881
- # https://git.kernel.org/cgit/linux/kernel/git/mfleming/efi.git/commit/?h=urgent&id=7e8213c1f3acc064aef37813a39f13cbfe7c3ce7
- patch -p1 -i "${srcdir}/0007-x86-efi-Correct-EFI-boot-stub-use-of-code32_start.patch"
-
# https://git.kernel.org/cgit/linux/kernel/git/iwlwifi/iwlwifi-fixes.git/commit/?id=12f853a89e29f50b17698e17e73c328a35f1498d
# FS#39815
patch -p1 -i "${srcdir}/0010-iwlwifi-mvm-delay-enabling-smart-FIFO-until-after-be.patch"
+ # fix Xorg crash with i810 chipset due to wrong removed error check
+ # References: http://lkml.kernel.org/g/533D01BD.1010200@googlemail.com
+ patch -Np1 -i "${srcdir}/0011-kernfs-fix-removed-error-check.patch"
+
+ # fix saa7134 video
+ # https://bugs.archlinux.org/task/39904
+ # https://bugzilla.kernel.org/show_bug.cgi?id=73361
+ patch -Np1 -i "${srcdir}/0012-fix-saa7134.patch"
+
+ # fix tun/openvpn performance
+ # https://bugs.archlinux.org/task/40089
+ # https://bugzilla.kernel.org/show_bug.cgi?id=74051
+ patch -Np1 -i "${srcdir}/0013-net-Start-with-correct-mac_len-in-skb_network_protocol.patch"
+
+ # fix xsdt validation bug
+ # https://bugs.archlinux.org/task/39811
+ # https://bugzilla.kernel.org/show_bug.cgi?id=73911
+ patch -Np1 -i "${srcdir}/0015-fix-xsdt-validation.patch"
+
if [ "$CARCH" == "mips64el" ]; then
sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre-grsec|" Makefile
sed -r "s|^( SUBLEVEL = ).*|\1$_sublevel|" \
@@ -155,7 +175,7 @@ prepare() {
fi
# set extraversion to pkgrel
- sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
+ sed -ri "s|^(EXTRAVERSION =).*|\1 .${_timestamp}-${pkgrel}|" Makefile
# don't run depmod on 'make install'. We'll do this ourselves in packaging
sed -i '2iexit 0' scripts/depmod.sh
@@ -215,7 +235,7 @@ _package() {
# get kernel version
_kernver="$(make LOCALVERSION= kernelrelease)"
_basekernel=${_kernver%%-*}
- _basekernel=${_basekernel%.*}
+ _basekernel=${_basekernel%.*.*}
mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
@@ -272,6 +292,12 @@ _package() {
# add vmlinux
install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux"
+ # add grsecurity gcc plugins
+ mkdir -p "$pkgdir/usr/lib/modules/${_kernver}/build/tools/gcc"
+ cp -a tools/gcc/*.h "$pkgdir/usr/lib/modules/${_kernver}/build/tools/gcc/"
+ cp -a tools/gcc/Makefile "$pkgdir/usr/lib/modules/${_kernver}/build/tools/gcc/"
+ install -m644 tools/gcc/*.so "$pkgdir/usr/lib/modules/${_kernver}/build/tools/gcc/"
+
# install sysctl configuration for grsecurity switches
install -Dm600 "${srcdir}/sysctl.conf" "${pkgdir}/etc/sysctl.d/05-grsecurity.conf"
}
diff --git a/libre/linux-libre-grsec/config.i686 b/libre/linux-libre-grsec/config.i686
index 76ef4273e..845032842 100644
--- a/libre/linux-libre-grsec/config.i686
+++ b/libre/linux-libre-grsec/config.i686
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 3.14.1-1 Kernel Configuration
+# Linux/x86 3.14.3-1 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -1487,7 +1487,8 @@ CONFIG_DMA_SHARED_BUFFER=y
#
# Bus devices
#
-CONFIG_CONNECTOR=m
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
CONFIG_MTD=m
CONFIG_MTD_TESTS=m
CONFIG_MTD_REDBOOT_PARTS=m
@@ -1663,7 +1664,7 @@ CONFIG_BLK_DEV_DAC960=m
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
# CONFIG_DRBD_FAULT_INJECTION is not set
@@ -6220,7 +6221,7 @@ CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_PER_CPU_MAPS is not set
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
-# CONFIG_DEBUG_STACKOVERFLOW is not set
+CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_HAVE_ARCH_KMEMCHECK=y
# CONFIG_DEBUG_SHIRQ is not set
diff --git a/libre/linux-libre-grsec/config.x86_64 b/libre/linux-libre-grsec/config.x86_64
index 14c7909bc..e97911510 100644
--- a/libre/linux-libre-grsec/config.x86_64
+++ b/libre/linux-libre-grsec/config.x86_64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 3.14.1-1 Kernel Configuration
+# Linux/x86 3.14.3-1 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -260,8 +260,8 @@ CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_CC_STACKPROTECTOR=y
CONFIG_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR_NONE is not set
-CONFIG_CC_STACKPROTECTOR_REGULAR=y
-# CONFIG_CC_STACKPROTECTOR_STRONG is not set
+# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
+CONFIG_CC_STACKPROTECTOR_STRONG=y
CONFIG_HAVE_CONTEXT_TRACKING=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
@@ -1472,7 +1472,8 @@ CONFIG_DMA_SHARED_BUFFER=y
#
# Bus devices
#
-CONFIG_CONNECTOR=m
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
CONFIG_MTD=m
CONFIG_MTD_TESTS=m
CONFIG_MTD_REDBOOT_PARTS=m
@@ -1628,7 +1629,7 @@ CONFIG_BLK_DEV_DAC960=m
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
# CONFIG_DRBD_FAULT_INJECTION is not set
@@ -6001,7 +6002,7 @@ CONFIG_HAVE_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_PER_CPU_MAPS is not set
CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
-# CONFIG_DEBUG_STACKOVERFLOW is not set
+CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_HAVE_ARCH_KMEMCHECK=y
# CONFIG_DEBUG_SHIRQ is not set
diff --git a/libre/linux-libre-lts/PKGBUILD b/libre/linux-libre-lts/PKGBUILD
index 73eb56657..ed8d7474b 100644
--- a/libre/linux-libre-lts/PKGBUILD
+++ b/libre/linux-libre-lts/PKGBUILD
@@ -1,19 +1,19 @@
-# $Id: PKGBUILD 210405 2014-04-14 20:05:28Z andyrtr $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Nicolás Reynolds <fauno@kiwwwi.com.ar>
-# Contributor (Parabola): Sorin-Mihai Vârgolici <smv@yobicore.org>
-# Contributor (Parabola): Michał Masłowski <mtjm@mtjm.eu>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# $Id: PKGBUILD 212335 2014-05-13 13:51:20Z bpiotrowski $
+# Maintainer (Arch): Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer (Arch): Thomas Baechler <thomas@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Nicolás Reynolds <fauno@kiwwwi.com.ar>
+# Contributor: Sorin-Mihai Vârgolici <smv@yobicore.org>
+# Contributor: Michał Masłowski <mtjm@mtjm.eu>
+# Contributor: Márcio Silva <coadde@parabola.nu>
pkgbase=linux-libre-lts # Build stock -LIBRE-LTS kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
_basekernel=3.10
-_sublevel=37
+_sublevel=40
pkgver=${_basekernel}.${_sublevel}
pkgrel=1
-_lxopkgver=${_basekernel}.36 # nearly always the same as pkgver
+_lxopkgver=${_basekernel}.39 # nearly always the same as pkgver
arch=('i686' 'x86_64' 'mips64el')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
@@ -32,7 +32,7 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'criu-no-expert.patch'
"http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.xz")
md5sums=('d562fd52580a3b6b18b6eeb5921d1d5c'
- '2a1d5d0eef6b18029f3e4f472bd9e76f'
+ '778a6856efdd2377f6073326ef2d3996'
'85ce008eaacbb2fc54b81116d35cf946'
'16867e648e4b9f89bec949cb643888c2'
'c072b17032e80debc6a8626299245d46'
@@ -41,7 +41,7 @@ md5sums=('d562fd52580a3b6b18b6eeb5921d1d5c'
'04b21c79df0a952c22d681dd4f4562df'
'f3def2cefdcbb954c21d8505d23cc83c'
'd50c1ac47394e9aec637002ef3392bd1'
- '110cc22534f63853ddb84f01e63c129a')
+ '64e128839d1e32bd0789cf1b3fc3d64b')
if [ "$CARCH" != "mips64el" ]; then
# don't use the Loongson-specific patches on non-mips64el arches.
unset source[${#source[@]}-1]
diff --git a/libre/linux-libre-manpages/PKGBUILD b/libre/linux-libre-manpages/PKGBUILD
index 75c0dd12f..088f6c6c1 100644
--- a/libre/linux-libre-manpages/PKGBUILD
+++ b/libre/linux-libre-manpages/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 209733 2014-04-01 23:08:31Z thomas $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer (Arch): Thomas Baechler <thomas@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
pkgname=linux-libre-manpages
pkgver=3.14
diff --git a/libre/linux-libre-tools/PKGBUILD b/libre/linux-libre-tools/PKGBUILD
index ef8516155..5371822a3 100644
--- a/libre/linux-libre-tools/PKGBUILD
+++ b/libre/linux-libre-tools/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 109662 2014-04-17 21:37:35Z seblu $
-# Maintainer: Sébastien Luttringer <seblu@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Sébastien Luttringer <seblu@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
pkgbase=linux-libre-tools
pkgname=(
diff --git a/libre/linux-libre/0011-kernfs-fix-removed-error-check.patch b/libre/linux-libre/0011-kernfs-fix-removed-error-check.patch
new file mode 100644
index 000000000..b597595c6
--- /dev/null
+++ b/libre/linux-libre/0011-kernfs-fix-removed-error-check.patch
@@ -0,0 +1,13 @@
+diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c
+index 8034706..e01ea4a 100644
+--- a/fs/kernfs/file.c
++++ b/fs/kernfs/file.c
+@@ -484,6 +484,8 @@ static int kernfs_fop_mmap(struct file *file, struct vm_area_struct *vma)
+
+ ops = kernfs_ops(of->kn);
+ rc = ops->mmap(of, vma);
++ if (rc)
++ goto out_put;
+
+ /*
+ * PowerPC's pci_mmap of legacy_mem uses shmem_zero_setup()
diff --git a/libre/linux-libre/0012-fix-saa7134.patch b/libre/linux-libre/0012-fix-saa7134.patch
new file mode 100644
index 000000000..070fbc8eb
--- /dev/null
+++ b/libre/linux-libre/0012-fix-saa7134.patch
@@ -0,0 +1,37 @@
+--- a/drivers/media/pci/saa7134/saa7134-video.c
++++ a/drivers/media/pci/saa7134/saa7134-video.c
+@@ -1243,6 +1243,7 @@ static int video_release(struct file *file)
+ videobuf_streamoff(&dev->cap);
+ res_free(dev, fh, RESOURCE_VIDEO);
+ videobuf_mmap_free(&dev->cap);
++ INIT_LIST_HEAD(&dev->cap.stream);
+ }
+ if (dev->cap.read_buf) {
+ buffer_release(&dev->cap, dev->cap.read_buf);
+@@ -1254,6 +1255,7 @@ static int video_release(struct file *file)
+ videobuf_stop(&dev->vbi);
+ res_free(dev, fh, RESOURCE_VBI);
+ videobuf_mmap_free(&dev->vbi);
++ INIT_LIST_HEAD(&dev->vbi.stream);
+ }
+
+ /* ts-capture will not work in planar mode, so turn it off Hac: 04.05*/
+@@ -1987,17 +1989,12 @@ int saa7134_streamoff(struct file *file, void *priv,
+ enum v4l2_buf_type type)
+ {
+ struct saa7134_dev *dev = video_drvdata(file);
+- int err;
+ int res = saa7134_resource(file);
+
+ if (res != RESOURCE_EMPRESS)
+ pm_qos_remove_request(&dev->qos_request);
+
+- err = videobuf_streamoff(saa7134_queue(file));
+- if (err < 0)
+- return err;
+- res_free(dev, priv, res);
+- return 0;
++ return videobuf_streamoff(saa7134_queue(file));
+ }
+ EXPORT_SYMBOL_GPL(saa7134_streamoff);
+
diff --git a/libre/linux-libre/0013-net-Start-with-correct-mac_len-in-skb_network_protocol.patch b/libre/linux-libre/0013-net-Start-with-correct-mac_len-in-skb_network_protocol.patch
new file mode 100644
index 000000000..2840f190c
--- /dev/null
+++ b/libre/linux-libre/0013-net-Start-with-correct-mac_len-in-skb_network_protocol.patch
@@ -0,0 +1,13 @@
+diff --git a/net/core/dev.c b/net/core/dev.c
+index 45fa2f1..6088927 100644
+--- a/net/core/dev.c
++++ b/net/core/dev.c
+@@ -2289,7 +2289,7 @@ EXPORT_SYMBOL(skb_checksum_help);
+ __be16 skb_network_protocol(struct sk_buff *skb, int *depth)
+ {
+ __be16 type = skb->protocol;
+- int vlan_depth = ETH_HLEN;
++ int vlan_depth = skb->mac_len;
+
+ /* Tunnel gso handlers can set protocol to ethernet. */
+ if (type == htons(ETH_P_TEB)) {
diff --git a/libre/linux-libre/0015-fix-xsdt-validation.patch b/libre/linux-libre/0015-fix-xsdt-validation.patch
new file mode 100644
index 000000000..82dd2be25
--- /dev/null
+++ b/libre/linux-libre/0015-fix-xsdt-validation.patch
@@ -0,0 +1,42 @@
+@@ -, +, @@
+ acpi_tb_parse_root_table().
+ Commit: 671cc68dc61f029d44b43a681356078e02d8dab8
+ Subject: ACPICA: Back port and refine validation of the XSDT root table.
+---
+ drivers/acpi/acpica/tbutils.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+--- a/drivers/acpi/acpica/tbutils.c
++++ a/drivers/acpi/acpica/tbutils.c
+@@ -461,6 +461,7 @@ acpi_status __init acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
+ u32 table_count;
+ struct acpi_table_header *table;
+ acpi_physical_address address;
++ acpi_physical_address rsdt_address;
+ u32 length;
+ u8 *table_entry;
+ acpi_status status;
+@@ -488,11 +489,13 @@ acpi_status __init acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
+ * as per the ACPI specification.
+ */
+ address = (acpi_physical_address) rsdp->xsdt_physical_address;
++ rsdt_address = (acpi_physical_address) rsdp->rsdt_physical_address;
+ table_entry_size = ACPI_XSDT_ENTRY_SIZE;
+ } else {
+ /* Root table is an RSDT (32-bit physical addresses) */
+
+ address = (acpi_physical_address) rsdp->rsdt_physical_address;
++ rsdt_address = address;
+ table_entry_size = ACPI_RSDT_ENTRY_SIZE;
+ }
+
+@@ -515,8 +518,7 @@ acpi_status __init acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
+
+ /* Fall back to the RSDT */
+
+- address =
+- (acpi_physical_address) rsdp->rsdt_physical_address;
++ address = rsdt_address;
+ table_entry_size = ACPI_RSDT_ENTRY_SIZE;
+ }
+ }
+
diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD
index bfeda0206..d6b5755dc 100644
--- a/libre/linux-libre/PKGBUILD
+++ b/libre/linux-libre/PKGBUILD
@@ -1,19 +1,19 @@
-# $Id: PKGBUILD 210383 2014-04-14 19:13:09Z tpowa $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Nicolás Reynolds <fauno@kiwwwi.com.ar>
-# Contributor (Parabola): Sorin-Mihai Vârgolici <smv@yobicore.org>
-# Contributor (Parabola): Michał Masłowski <mtjm@mtjm.eu>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# $Id: PKGBUILD 212338 2014-05-13 15:06:31Z tpowa $
+# Maintainer (Arch): Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer (Arch): Thomas Baechler <thomas@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Nicolás Reynolds <fauno@kiwwwi.com.ar>
+# Contributor: Sorin-Mihai Vârgolici <smv@yobicore.org>
+# Contributor: Michał Masłowski <mtjm@mtjm.eu>
+# Contributor: Márcio Silva <coadde@parabola.nu>
pkgbase=linux-libre # Build stock -LIBRE kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
_basekernel=3.14
-_sublevel=1
+_sublevel=4
pkgver=${_basekernel}.${_sublevel}
pkgrel=1
-_lxopkgver=${_basekernel}.0 # nearly always the same as pkgver
+_lxopkgver=${_basekernel}.3 # nearly always the same as pkgver
arch=('i686' 'x86_64' 'mips64el')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
@@ -35,31 +35,37 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'0004-fs-Don-t-return-0-from-get_anon_bdev.patch'
'0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch'
'0006-genksyms-fix-typeof-handling.patch'
- '0007-x86-efi-Correct-EFI-boot-stub-use-of-code32_start.patch'
'0010-iwlwifi-mvm-delay-enabling-smart-FIFO-until-after-be.patch'
+ '0011-kernfs-fix-removed-error-check.patch'
+ '0012-fix-saa7134.patch'
+ '0013-net-Start-with-correct-mac_len-in-skb_network_protocol.patch'
+ '0015-fix-xsdt-validation.patch'
"http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.xz")
-md5sums=('c108ec52eeb2a9b9ddbb8d12496ff25f'
- '2b4862b3c76011e66e536f18fbf0fb27'
- '13ee684b40757b16beae1f0192fd6003'
- '43355af4f467ca93a0bc5f7209fc4810'
- 'e49ac236dfeef709f91a3d993ea7b62c'
- '2967cecc3af9f954ccc822fd63dca6ff'
- '8267264d9a8966e57fdacd1fa1fc65c4'
- '44260d2cb1a8b51c119d2ce1f83e457a'
- '98beb36f9b8cf16e58de2483ea9985e3'
- '6839ddec74a5300beff1709a81b0e4f3'
- '706549e8a05f33f7fc697f28c0ca71d2'
- 'd23fc66be93ebce698bd7da844789de1'
- 'b240cc8ebb4b5d74e94b4c72d033f726'
- 'a89d593774ccb955eb8368d3bc87ce26'
- '16a161979f846b049e90daea907c35dd'
- '00727251b0d337a25d3ca392218afdf4'
- '353b553d69da810ef954618aca60e1e2'
- '385f03abf27baa73731d27721eafd1c1')
+sha256sums=('477555c709b9407fe37dbd70d3331ff9dde1f9d874aba2741f138d07ae6f281b'
+ '01de5e15a2081197859e617c441de5cac9ddf60bed6fcf4dcff7a54e210e7815'
+ '71891ae6903598f4686e86fdb0d371ff9e179e8dac1d2cf60ca16c5190916745'
+ 'fca0060bde385e2c292489087af0aa5f48da594221a6d162fc6f8ba2159571e8'
+ 'dfe01c93d83cdac9ca502715ceb6ac9502d327c939fec2e3052a5a58422dc176'
+ 'c5451d5e1eafc4f8d28b1a2958ec3102c124433a414a86450fc32058e004156b'
+ '55bf07738a3286168a7929ae16dbca29defd14e77b9d24c487ae4c3d12bb9eb9'
+ '8303b426b1a6dce456b2350003558ae312d21cab0ae6c1f0d7b9d21395f4e177'
+ 'faced4eb4c47c4eb1a9ee8a5bf8a7c4b49d6b4d78efbe426e410730e6267d182'
+ '6d72e14552df59e6310f16c176806c408355951724cd5b48a47bf01591b8be02'
+ '52dec83a8805a8642d74d764494acda863e0aa23e3d249e80d4b457e20a3fd29'
+ '65d58f63215ee3c5f9c4fc6bce36fc5311a6c7dbdbe1ad29de40647b47ff9c0d'
+ '1e1ae0f31f722e80da083ecada1f1be57f9ddad133941820c4483b0240e494c1'
+ '3fffb01cf97a5a7ab9601cb277d2468c0fb1e1cceba4225915f3ffae3a5694ec'
+ 'cf2e7a2d00787f754028e7459688c2755a406e632ce48b60952fa4ff7ed6f4b7'
+ 'c0af4622f75c89fef62183e18b7d49998228d4eaa906c6accaf4aa4ff0134f85'
+ '04f44bf5c181d6dc31905937c1bdccb0f5aecaad3a579e99b302502b9cbe0f7a'
+ '79359454c9d8446eb55add2b1cdbf8332bd67dafb01fefb5b1ca090225f64d18'
+ 'f2a5e22c1ba6e9b8a32a7bd4a5327ee95538aa10edcee3cd12578f8ff49bf6be'
+ '384dd13fd4248fd6809da8c6ae29ced55d4a5cacc33ac2ae7522093ec0fb26d4'
+ '43d975e9c9c68de131005a87c3c755fadef1eaed6c551bcafd08f2746f9d71fd')
if [ "$CARCH" != "mips64el" ]; then
# don't use the Loongson-specific patches on non-mips64el arches.
unset source[${#source[@]}-1]
- unset md5sums[${#md5sums[@]}-1]
+ unset sha256sums[${#sha256sums[@]}-1]
fi
_kernelname=${pkgbase#linux-libre}
@@ -103,14 +109,28 @@ prepare() {
# http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dc53324060f324e8af6867f57bf4891c13c6ef18
patch -p1 -i "${srcdir}/0006-genksyms-fix-typeof-handling.patch"
- # Fix the use of code32_start in the EFI boot stub
- # http://permalink.gmane.org/gmane.linux.kernel/1679881
- # https://git.kernel.org/cgit/linux/kernel/git/mfleming/efi.git/commit/?h=urgent&id=7e8213c1f3acc064aef37813a39f13cbfe7c3ce7
- patch -p1 -i "${srcdir}/0007-x86-efi-Correct-EFI-boot-stub-use-of-code32_start.patch"
-
# https://git.kernel.org/cgit/linux/kernel/git/iwlwifi/iwlwifi-fixes.git/commit/?id=12f853a89e29f50b17698e17e73c328a35f1498d
# FS#39815
patch -p1 -i "${srcdir}/0010-iwlwifi-mvm-delay-enabling-smart-FIFO-until-after-be.patch"
+
+ # fix Xorg crash with i810 chipset due to wrong removed error check
+ # References: http://lkml.kernel.org/g/533D01BD.1010200@googlemail.com
+ patch -Np1 -i "${srcdir}/0011-kernfs-fix-removed-error-check.patch"
+
+ # fix saa7134 video
+ # https://bugs.archlinux.org/task/39904
+ # https://bugzilla.kernel.org/show_bug.cgi?id=73361
+ patch -Np1 -i "${srcdir}/0012-fix-saa7134.patch"
+
+ # fix tun/openvpn performance
+ # https://bugs.archlinux.org/task/40089
+ # https://bugzilla.kernel.org/show_bug.cgi?id=74051
+ patch -Np1 -i "${srcdir}/0013-net-Start-with-correct-mac_len-in-skb_network_protocol.patch"
+
+ # fix xsdt validation bug
+ # https://bugs.archlinux.org/task/39811
+ # https://bugzilla.kernel.org/show_bug.cgi?id=73911
+ patch -Np1 -i "${srcdir}/0015-fix-xsdt-validation.patch"
if [ "$CARCH" == "mips64el" ]; then
sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre|" Makefile
diff --git a/libre/linux-libre/config.i686 b/libre/linux-libre/config.i686
index 91c9f7b8c..184db97b8 100644
--- a/libre/linux-libre/config.i686
+++ b/libre/linux-libre/config.i686
@@ -252,8 +252,8 @@ CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_CC_STACKPROTECTOR=y
CONFIG_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR_NONE is not set
-CONFIG_CC_STACKPROTECTOR_REGULAR=y
-# CONFIG_CC_STACKPROTECTOR_STRONG is not set
+# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
+CONFIG_CC_STACKPROTECTOR_STRONG=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
@@ -1500,7 +1500,8 @@ CONFIG_DMA_SHARED_BUFFER=y
#
# Bus devices
#
-CONFIG_CONNECTOR=m
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
CONFIG_MTD=m
CONFIG_MTD_TESTS=m
CONFIG_MTD_REDBOOT_PARTS=m
@@ -1676,7 +1677,7 @@ CONFIG_BLK_DEV_DAC960=m
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
# CONFIG_DRBD_FAULT_INJECTION is not set
diff --git a/libre/linux-libre/config.x86_64 b/libre/linux-libre/config.x86_64
index f111c0b2d..1a32c7bf7 100644
--- a/libre/linux-libre/config.x86_64
+++ b/libre/linux-libre/config.x86_64
@@ -261,8 +261,8 @@ CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_CC_STACKPROTECTOR=y
CONFIG_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR_NONE is not set
-CONFIG_CC_STACKPROTECTOR_REGULAR=y
-# CONFIG_CC_STACKPROTECTOR_STRONG is not set
+# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
+CONFIG_CC_STACKPROTECTOR_STRONG=y
CONFIG_HAVE_CONTEXT_TRACKING=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
@@ -1481,7 +1481,8 @@ CONFIG_DMA_SHARED_BUFFER=y
#
# Bus devices
#
-CONFIG_CONNECTOR=m
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
CONFIG_MTD=m
CONFIG_MTD_TESTS=m
CONFIG_MTD_REDBOOT_PARTS=m
@@ -1637,7 +1638,7 @@ CONFIG_BLK_DEV_DAC960=m
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
# CONFIG_DRBD_FAULT_INJECTION is not set
diff --git a/libre/lirc-libre/PKGBUILD b/libre/lirc-libre/PKGBUILD
index 5a629fd29..9ca6f8ff6 100644
--- a/libre/lirc-libre/PKGBUILD
+++ b/libre/lirc-libre/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 209729 2014-04-01 21:55:59Z thomas $
-# Maintainer: Paul Mattal <paul@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Paul Mattal <paul@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgbase=lirc
pkgbase=lirc-libre
diff --git a/libre/lsb-release/PKGBUILD b/libre/lsb-release/PKGBUILD
index c6cbe5863..d35195267 100644
--- a/libre/lsb-release/PKGBUILD
+++ b/libre/lsb-release/PKGBUILD
@@ -1,9 +1,9 @@
# $Id: PKGBUILD 101477 2013-11-26 10:23:04Z svenstaro $
-# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
-# Contributor: Malte Rabenseifner <malte@zearan.de>
-# Contributor: John Gerritse <reaphsharc@gmail.com>
-# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
-# Contributor (Parabola): André Silva emulatorman@parabola.nu>
+# Maintainer (Arch): Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor (Arch): Malte Rabenseifner <malte@zearan.de>
+# Contributor (Arch): John Gerritse <reaphsharc@gmail.com>
+# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
+# Contributor: André Silva emulatorman@parabola.nu>
pkgname=lsb-release
pkgver=1.4
diff --git a/libre/luxrender-libre/PKGBUILD b/libre/luxrender-libre/PKGBUILD
index 9a9ab1ddc..d9edab932 100644
--- a/libre/luxrender-libre/PKGBUILD
+++ b/libre/luxrender-libre/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 108997 2014-04-09 10:03:56Z stativ $
-# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
-# Contributor: flixie <69one@gmx.net>
-# Contributor: Imanol Celaya <ornitorrincos@archlinux-es.org>
-# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer (Arch): Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Contributor (Arch): flixie <69one@gmx.net>
+# Contributor (Arch): Imanol Celaya <ornitorrincos@archlinux-es.org>
+# Maintainer: Márcio Silva <coadde@parabola.nu>
_pkgname=luxrender
pkgname=$_pkgname-libre
pkgver=1.3.1
@@ -17,8 +17,8 @@ optdepends=('blender-addon-luxrender: Blender exporter' 'qt4: Qt GUI' \
'python: Python interface (pylux)')
makedepends=('cmake' 'boost' 'mesa' 'qt4' "luxrays=$pkgver" 'python' 'opencl-headers')
provides=($_pkgname=$pkgver)
-conflicts=$_pkgname
-replaces=$_pkgname
+conflicts=($_pkgname)
+replaces=($_pkgname)
source=(https://bitbucket.org/$_pkgname/lux/get/$_pkgver.tar.bz2 \
force_python3.diff)
md5sums=('cbe749f56a1e1976745f5458100efa8a'
diff --git a/libre/mc-libre/PKGBUILD b/libre/mc-libre/PKGBUILD
index c9f3d03dd..4ad1a0338 100644
--- a/libre/mc-libre/PKGBUILD
+++ b/libre/mc-libre/PKGBUILD
@@ -1,15 +1,15 @@
# $Id: PKGBUILD 108693 2014-04-01 12:31:56Z schuay $
-# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
-# Maintainer: schuay <jakob.gruber@gmail.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# Contributor (Arch): Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer (Arch): schuay <jakob.gruber@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Márcio Silva <coadde@parabola.nu>
_pkgname=mc
pkgname=mc-libre
pkgver=4.8.12
-pkgrel=1
-pkgdesc="Midnight Commander is a text based filemanager/shell that emulates Norton Commander, with arj recommendation included and nonfree unace and unrar recommendation removed"
-arch=('i686' 'x86_64')
+pkgrel=1.1
+pkgdesc="Midnight Commander is a text based filemanager/shell that emulates Norton Commander, with arj recommendation included and nonfree unace and unrar support removed"
+arch=('i686' 'x86_64' 'mips64el')
url="http://www.ibiblio.org/mc/"
license=('GPL')
depends=(
@@ -45,7 +45,16 @@ backup=('etc/mc/edit.indent.rc'
'etc/mc/mc.keymap'
'etc/mc/mc.menu'
'etc/mc/sfs.ini')
-source=("http://www.midnight-commander.org/downloads/${_pkgname}-${pkgver}.tar.bz2")
+source=("http://www.midnight-commander.org/downloads/${_pkgname}-${pkgver}.tar.bz2"
+ 'libre.patch')
+
+prepare() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+
+ patch -Np1 -i ../libre.patch
+ rm -v src/vfs/extfs/helpers/u{ace,rar}.in
+}
+
build() {
cd "${srcdir}/${_pkgname}-${pkgver}"
@@ -69,4 +78,5 @@ package() {
-i "${pkgdir}/usr/lib/mc/extfs.d/s3+"
}
-md5sums=('a64c426364bfaee56b628f6c0738aade')
+md5sums=('a64c426364bfaee56b628f6c0738aade'
+ '008b3132beba7061578a6a59885f93f8')
diff --git a/libre/mc-libre/libre.patch b/libre/mc-libre/libre.patch
new file mode 100644
index 000000000..df88e6c9f
--- /dev/null
+++ b/libre/mc-libre/libre.patch
@@ -0,0 +1,319 @@
+diff --git a/configure b/configure
+index 01e8c83..710d411 100755
+--- a/configure
++++ b/configure
+@@ -27316,7 +27316,7 @@ _ACEOF
+ ac_config_files="$ac_config_files src/man2hlp/man2hlp"
+
+
+-ac_config_files="$ac_config_files Makefile contrib/Makefile contrib/dist/Makefile contrib/dist/gentoo/Makefile contrib/dist/redhat/Makefile contrib/dist/redhat/mc.spec contrib/dist/pkginfo contrib/dist/prototype misc/Makefile misc/skins/Makefile misc/ext.d/Makefile misc/ext.d/doc.sh misc/ext.d/misc.sh misc/ext.d/text.sh misc/ext.d/web.sh misc/macros.d/Makefile misc/mc.ext src/Makefile src/consaver/Makefile src/editor/Makefile src/man2hlp/Makefile src/viewer/Makefile src/diffviewer/Makefile src/filemanager/Makefile src/vfs/Makefile src/vfs/cpio/Makefile src/vfs/extfs/Makefile src/vfs/extfs/helpers/Makefile src/vfs/extfs/helpers/a+ src/vfs/extfs/helpers/apt+ src/vfs/extfs/helpers/audio src/vfs/extfs/helpers/deb src/vfs/extfs/helpers/deba src/vfs/extfs/helpers/debd src/vfs/extfs/helpers/dpkg+ src/vfs/extfs/helpers/iso9660 src/vfs/extfs/helpers/hp48+ src/vfs/extfs/helpers/lslR src/vfs/extfs/helpers/mailfs src/vfs/extfs/helpers/patchfs src/vfs/extfs/helpers/rpms+ src/vfs/extfs/helpers/s3+ src/vfs/extfs/helpers/uace src/vfs/extfs/helpers/ualz src/vfs/extfs/helpers/uar src/vfs/extfs/helpers/uarc src/vfs/extfs/helpers/uarj src/vfs/extfs/helpers/uc1541 src/vfs/extfs/helpers/ucab src/vfs/extfs/helpers/uha src/vfs/extfs/helpers/ulha src/vfs/extfs/helpers/ulib src/vfs/extfs/helpers/urar src/vfs/extfs/helpers/uzip src/vfs/extfs/helpers/uzoo src/vfs/fish/Makefile src/vfs/fish/helpers/Makefile src/vfs/ftpfs/Makefile src/vfs/sftpfs/Makefile src/vfs/local/Makefile src/vfs/sfs/Makefile src/vfs/smbfs/Makefile src/vfs/tar/Makefile src/vfs/undelfs/Makefile lib/Makefile lib/event/Makefile lib/filehighlight/Makefile lib/mcconfig/Makefile lib/search/Makefile lib/skin/Makefile lib/strutil/Makefile lib/tty/Makefile lib/vfs/Makefile lib/widget/Makefile misc/syntax/Makefile misc/syntax/Syntax doc/Makefile doc/hints/Makefile doc/hints/l10n/Makefile doc/man/Makefile doc/man/es/Makefile doc/man/hu/Makefile doc/man/it/Makefile doc/man/pl/Makefile doc/man/ru/Makefile doc/man/sr/Makefile doc/hlp/Makefile doc/hlp/es/Makefile doc/hlp/hu/Makefile doc/hlp/it/Makefile doc/hlp/pl/Makefile doc/hlp/ru/Makefile doc/hlp/sr/Makefile intl/Makefile po/Makefile.in"
++ac_config_files="$ac_config_files Makefile contrib/Makefile contrib/dist/Makefile contrib/dist/gentoo/Makefile contrib/dist/redhat/Makefile contrib/dist/redhat/mc.spec contrib/dist/pkginfo contrib/dist/prototype misc/Makefile misc/skins/Makefile misc/ext.d/Makefile misc/ext.d/doc.sh misc/ext.d/misc.sh misc/ext.d/text.sh misc/ext.d/web.sh misc/macros.d/Makefile misc/mc.ext src/Makefile src/consaver/Makefile src/editor/Makefile src/man2hlp/Makefile src/viewer/Makefile src/diffviewer/Makefile src/filemanager/Makefile src/vfs/Makefile src/vfs/cpio/Makefile src/vfs/extfs/Makefile src/vfs/extfs/helpers/Makefile src/vfs/extfs/helpers/a+ src/vfs/extfs/helpers/apt+ src/vfs/extfs/helpers/audio src/vfs/extfs/helpers/deb src/vfs/extfs/helpers/deba src/vfs/extfs/helpers/debd src/vfs/extfs/helpers/dpkg+ src/vfs/extfs/helpers/iso9660 src/vfs/extfs/helpers/hp48+ src/vfs/extfs/helpers/lslR src/vfs/extfs/helpers/mailfs src/vfs/extfs/helpers/patchfs src/vfs/extfs/helpers/rpms+ src/vfs/extfs/helpers/s3+ src/vfs/extfs/helpers/ualz src/vfs/extfs/helpers/uar src/vfs/extfs/helpers/uarc src/vfs/extfs/helpers/uarj src/vfs/extfs/helpers/uc1541 src/vfs/extfs/helpers/ucab src/vfs/extfs/helpers/uha src/vfs/extfs/helpers/ulha src/vfs/extfs/helpers/ulib src/vfs/extfs/helpers/uzip src/vfs/extfs/helpers/uzoo src/vfs/fish/Makefile src/vfs/fish/helpers/Makefile src/vfs/ftpfs/Makefile src/vfs/sftpfs/Makefile src/vfs/local/Makefile src/vfs/sfs/Makefile src/vfs/smbfs/Makefile src/vfs/tar/Makefile src/vfs/undelfs/Makefile lib/Makefile lib/event/Makefile lib/filehighlight/Makefile lib/mcconfig/Makefile lib/search/Makefile lib/skin/Makefile lib/strutil/Makefile lib/tty/Makefile lib/vfs/Makefile lib/widget/Makefile misc/syntax/Makefile misc/syntax/Syntax doc/Makefile doc/hints/Makefile doc/hints/l10n/Makefile doc/man/Makefile doc/man/es/Makefile doc/man/hu/Makefile doc/man/it/Makefile doc/man/pl/Makefile doc/man/ru/Makefile doc/man/sr/Makefile doc/hlp/Makefile doc/hlp/es/Makefile doc/hlp/hu/Makefile doc/hlp/it/Makefile doc/hlp/pl/Makefile doc/hlp/ru/Makefile doc/hlp/sr/Makefile intl/Makefile po/Makefile.in"
+
+
+ if test x$enable_tests != xno; then
+@@ -28576,7 +28576,6 @@ do
+ "src/vfs/extfs/helpers/patchfs") CONFIG_FILES="$CONFIG_FILES src/vfs/extfs/helpers/patchfs" ;;
+ "src/vfs/extfs/helpers/rpms+") CONFIG_FILES="$CONFIG_FILES src/vfs/extfs/helpers/rpms+" ;;
+ "src/vfs/extfs/helpers/s3+") CONFIG_FILES="$CONFIG_FILES src/vfs/extfs/helpers/s3+" ;;
+- "src/vfs/extfs/helpers/uace") CONFIG_FILES="$CONFIG_FILES src/vfs/extfs/helpers/uace" ;;
+ "src/vfs/extfs/helpers/ualz") CONFIG_FILES="$CONFIG_FILES src/vfs/extfs/helpers/ualz" ;;
+ "src/vfs/extfs/helpers/uar") CONFIG_FILES="$CONFIG_FILES src/vfs/extfs/helpers/uar" ;;
+ "src/vfs/extfs/helpers/uarc") CONFIG_FILES="$CONFIG_FILES src/vfs/extfs/helpers/uarc" ;;
+@@ -28586,7 +28585,6 @@ do
+ "src/vfs/extfs/helpers/uha") CONFIG_FILES="$CONFIG_FILES src/vfs/extfs/helpers/uha" ;;
+ "src/vfs/extfs/helpers/ulha") CONFIG_FILES="$CONFIG_FILES src/vfs/extfs/helpers/ulha" ;;
+ "src/vfs/extfs/helpers/ulib") CONFIG_FILES="$CONFIG_FILES src/vfs/extfs/helpers/ulib" ;;
+- "src/vfs/extfs/helpers/urar") CONFIG_FILES="$CONFIG_FILES src/vfs/extfs/helpers/urar" ;;
+ "src/vfs/extfs/helpers/uzip") CONFIG_FILES="$CONFIG_FILES src/vfs/extfs/helpers/uzip" ;;
+ "src/vfs/extfs/helpers/uzoo") CONFIG_FILES="$CONFIG_FILES src/vfs/extfs/helpers/uzoo" ;;
+ "src/vfs/fish/Makefile") CONFIG_FILES="$CONFIG_FILES src/vfs/fish/Makefile" ;;
+diff --git a/configure.ac b/configure.ac
+index 6591c53..8ac2163 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -547,7 +547,6 @@ src/vfs/extfs/helpers/mailfs
+ src/vfs/extfs/helpers/patchfs
+ src/vfs/extfs/helpers/rpms+
+ src/vfs/extfs/helpers/s3+
+-src/vfs/extfs/helpers/uace
+ src/vfs/extfs/helpers/ualz
+ src/vfs/extfs/helpers/uar
+ src/vfs/extfs/helpers/uarc
+@@ -557,7 +556,6 @@ src/vfs/extfs/helpers/ucab
+ src/vfs/extfs/helpers/uha
+ src/vfs/extfs/helpers/ulha
+ src/vfs/extfs/helpers/ulib
+-src/vfs/extfs/helpers/urar
+ src/vfs/extfs/helpers/uzip
+ src/vfs/extfs/helpers/uzoo
+
+diff --git a/misc/ext.d/archive.sh b/misc/ext.d/archive.sh
+index 2264b12..39885ae 100755
+--- a/misc/ext.d/archive.sh
++++ b/misc/ext.d/archive.sh
+@@ -61,8 +61,7 @@ do_view_action() {
+ lha l "${MC_EXT_FILENAME}"
+ ;;
+ arj)
+- arj l "${MC_EXT_FILENAME}" 2>/dev/null || \
+- unarj l "${MC_EXT_FILENAME}"
++ arj l "${MC_EXT_FILENAME}" 2>/dev/null
+ ;;
+ cab)
+ cabextract -l "${MC_EXT_FILENAME}"
+@@ -70,10 +69,6 @@ do_view_action() {
+ ha)
+ ha lf "${MC_EXT_FILENAME}"
+ ;;
+- rar)
+- rar v -c- "${MC_EXT_FILENAME}" 2>/dev/null || \
+- unrar v -c- "${MC_EXT_FILENAME}"
+- ;;
+ alz)
+ unalz -l "${MC_EXT_FILENAME}"
+ ;;
+@@ -93,9 +88,6 @@ do_view_action() {
+ 7z l "${MC_EXT_FILENAME}"
+
+ ;;
+- ace)
+- unace l "${MC_EXT_FILENAME}"
+- ;;
+ arc)
+ arc l "${MC_EXT_FILENAME}"
+ ;;
+diff --git a/misc/filehighlight.ini b/misc/filehighlight.ini
+index 8bc1722..430bebb 100644
+--- a/misc/filehighlight.ini
++++ b/misc/filehighlight.ini
+@@ -28,7 +28,7 @@
+ regexp=(^#.*|.*~$)
+
+ [archive]
+- extensions=gz;bz2;tar;tgz;rpm;Z;rar;zip;arj;cab;lzh;lha;zoo;arc;ark;xz;tbz;tbz2;7z;ace
++ extensions=gz;bz2;tar;tgz;rpm;Z;zip;arj;cab;lzh;lha;zoo;arc;ark;xz;tbz;tbz2;7z
+
+ [doc]
+ extensions=txt;doc;rtf;diz;ctl;me;ps;pdf;xml;xsd;xslt;dtd;html;shtml;htm;mail;msg;lsm;po;nroff;man;tex;sgml;css;text;letter;chm;docx;docm;xlsx;xlsm;pptx;pptm
+diff --git a/misc/mc.ext.in b/misc/mc.ext.in
+index 68c6819..aefb267 100644
+--- a/misc/mc.ext.in
++++ b/misc/mc.ext.in
+@@ -175,11 +175,6 @@ shell/i/.ha
+ Open=%cd %p/uha://
+ View=%view{ascii} @EXTHELPERSDIR@/archive.sh view ha
+
+-# rar
+-regex/i/\.r(ar|[0-9][0-9])$
+- Open=%cd %p/urar://
+- View=%view{ascii} @EXTHELPERSDIR@/archive.sh view rar
+-
+ # ALZip
+ shell/i/.alz
+ Open=%cd %p/ualz://
+@@ -667,12 +662,6 @@ shell/i/.torrent
+
+ ### Plain compressed files ###
+
+-# ace
+-shell/i/.ace
+- Open=%cd %p/uace://
+- View=%view{ascii} @EXTHELPERSDIR@/archive.sh view ace
+- Extract=unace x %f
+-
+ # arc
+ shell/i/.arc
+ Open=%cd %p/uarc://
+diff --git a/misc/syntax/php.syntax b/misc/syntax/php.syntax
+index ebefb7e..7a4ec29 100644
+--- a/misc/syntax/php.syntax
++++ b/misc/syntax/php.syntax
+@@ -2174,22 +2174,6 @@ context default
+ # Radius constants
+ keyword whole RADIUS\_\[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_\] white
+
+-# Rar Functions
+- keyword whole rar_close yellow
+- keyword whole rar_entry_get yellow
+- keyword whole rar_list yellow
+- keyword whole rar_open yellow
+-
+-# Rar Functions Rar methods
+- keyword whole Rar yellow
+-
+-# Rar Functions constants
+- keyword whole RAR_HOST_BEOS white
+- keyword whole RAR_HOST_MSDOS white
+- keyword whole RAR_HOST_OS2 white
+- keyword whole RAR_HOST_UNIX white
+- keyword whole RAR_HOST_WIN32 white
+-
+ # GNU Readline
+ keyword whole readline\[0123456789_abcdefghijklmnopqrstuvwxyz\] yellow
+
+diff --git a/misc/syntax/sh.syntax b/misc/syntax/sh.syntax
+index f5537df..e3b3017 100644
+--- a/misc/syntax/sh.syntax
++++ b/misc/syntax/sh.syntax
+@@ -610,7 +610,6 @@ wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._
+ keyword whole pwunconv cyan
+ keyword whole ramsize cyan
+ keyword whole ranlib cyan
+- keyword whole rar cyan
+ keyword whole rarp cyan
+ keyword whole raw cyan
+ keyword whole rbash cyan
+@@ -782,7 +781,6 @@ wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._
+ keyword whole ul cyan
+ keyword whole umount cyan
+ keyword whole uname cyan
+- keyword whole unarj cyan
+ keyword whole uncompress cyan
+ keyword whole unexpand cyan
+ keyword whole unicode_start cyan
+@@ -1712,7 +1710,6 @@ wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._
+ keyword whole pwunconv cyan
+ keyword whole ramsize cyan
+ keyword whole ranlib cyan
+- keyword whole rar cyan
+ keyword whole rarp cyan
+ keyword whole raw cyan
+ keyword whole rbash cyan
+@@ -1884,7 +1881,6 @@ wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._
+ keyword whole ul cyan
+ keyword whole umount cyan
+ keyword whole uname cyan
+- keyword whole unarj cyan
+ keyword whole uncompress cyan
+ keyword whole unexpand cyan
+ keyword whole unicode_start cyan
+diff --git a/src/vfs/extfs/helpers/Makefile.am b/src/vfs/extfs/helpers/Makefile.am
+index 06ea789..099acf1 100644
+--- a/src/vfs/extfs/helpers/Makefile.am
++++ b/src/vfs/extfs/helpers/Makefile.am
+@@ -24,7 +24,6 @@ EXTFS_IN = \
+ patchfs.in \
+ rpms+.in \
+ s3+.in \
+- uace.in \
+ ualz.in \
+ uar.in \
+ uarc.in \
+@@ -34,7 +33,6 @@ EXTFS_IN = \
+ uha.in \
+ ulha.in \
+ ulib.in \
+- urar.in \
+ uzip.in \
+ uzoo.in
+
+@@ -54,7 +52,6 @@ EXTFS_OUT = \
+ patchfs \
+ rpms+ \
+ s3+ \
+- uace \
+ ualz \
+ uar \
+ uarc \
+@@ -64,7 +61,6 @@ EXTFS_OUT = \
+ uha \
+ ulha \
+ ulib \
+- urar \
+ uzip \
+ uzoo
+
+diff --git a/src/vfs/extfs/helpers/Makefile.in b/src/vfs/extfs/helpers/Makefile.in
+index b5f4864..d166e55 100644
+--- a/src/vfs/extfs/helpers/Makefile.in
++++ b/src/vfs/extfs/helpers/Makefile.in
+@@ -86,10 +86,10 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(srcdir)/deba.in $(srcdir)/debd.in $(srcdir)/dpkg+.in \
+ $(srcdir)/iso9660.in $(srcdir)/hp48+.in $(srcdir)/lslR.in \
+ $(srcdir)/mailfs.in $(srcdir)/patchfs.in $(srcdir)/rpms+.in \
+- $(srcdir)/s3+.in $(srcdir)/uace.in $(srcdir)/ualz.in \
++ $(srcdir)/s3+.in $(srcdir)/ualz.in \
+ $(srcdir)/uar.in $(srcdir)/uarc.in $(srcdir)/uarj.in \
+ $(srcdir)/uc1541.in $(srcdir)/ucab.in $(srcdir)/uha.in \
+- $(srcdir)/ulha.in $(srcdir)/ulib.in $(srcdir)/urar.in \
++ $(srcdir)/ulha.in $(srcdir)/ulib.in \
+ $(srcdir)/uzip.in $(srcdir)/uzoo.in README
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \
+@@ -149,8 +149,8 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES = a+ apt+ audio deb deba debd dpkg+ iso9660 hp48+ \
+- lslR mailfs patchfs rpms+ s3+ uace ualz uar uarc uarj uc1541 \
+- ucab uha ulha ulib urar uzip uzoo
++ lslR mailfs patchfs rpms+ s3+ ualz uar uarc uarj uc1541 \
++ ucab uha ulha ulib uzip uzoo
+ CONFIG_CLEAN_VPATH_FILES =
+ am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+ am__vpath_adj = case $$p in \
+@@ -439,7 +439,6 @@ EXTFS_IN = \
+ patchfs.in \
+ rpms+.in \
+ s3+.in \
+- uace.in \
+ ualz.in \
+ uar.in \
+ uarc.in \
+@@ -449,7 +448,6 @@ EXTFS_IN = \
+ uha.in \
+ ulha.in \
+ ulib.in \
+- urar.in \
+ uzip.in \
+ uzoo.in
+
+@@ -470,7 +468,6 @@ EXTFS_OUT = \
+ patchfs \
+ rpms+ \
+ s3+ \
+- uace \
+ ualz \
+ uar \
+ uarc \
+@@ -480,7 +477,6 @@ EXTFS_OUT = \
+ uha \
+ ulha \
+ ulib \
+- urar \
+ uzip \
+ uzoo
+
+@@ -550,8 +546,6 @@ rpms+: $(top_builddir)/config.status $(srcdir)/rpms+.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+ s3+: $(top_builddir)/config.status $(srcdir)/s3+.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+-uace: $(top_builddir)/config.status $(srcdir)/uace.in
+- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+ ualz: $(top_builddir)/config.status $(srcdir)/ualz.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+ uar: $(top_builddir)/config.status $(srcdir)/uar.in
+@@ -570,8 +564,6 @@ ulha: $(top_builddir)/config.status $(srcdir)/ulha.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+ ulib: $(top_builddir)/config.status $(srcdir)/ulib.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+-urar: $(top_builddir)/config.status $(srcdir)/urar.in
+- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+ uzip: $(top_builddir)/config.status $(srcdir)/uzip.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+ uzoo: $(top_builddir)/config.status $(srcdir)/uzoo.in
+diff --git a/src/vfs/extfs/helpers/uarj.in b/src/vfs/extfs/helpers/uarj.in
+index 15549a0..7dffc37 100644
+--- a/src/vfs/extfs/helpers/uarj.in
++++ b/src/vfs/extfs/helpers/uarj.in
+@@ -3,9 +3,8 @@
+ # Written by Viatcheslav Odintsov (2:5020/181)
+ # (C) 2002 ARJ Software Russia.
+ #
+-# This is an updated parser for ARJ archives in Midnight Commander. You need
+-# full ARJ rather than UNARJ. Open-source ARJ v 3.10 for Unix platforms can
+-# be obtained here:
++# This is an updated parser for ARJ archives in Midnight Commander.
++# Open-source ARJ v 3.10 for Unix platforms can be obtained here:
+ #
+ # - http://www.sourceforge.net/projects/arj/
+ # - http://arj.sourceforge.net/
diff --git a/libre/mcomix-libre/PKGBUILD b/libre/mcomix-libre/PKGBUILD
index 97c3bde0f..c512a26cd 100644
--- a/libre/mcomix-libre/PKGBUILD
+++ b/libre/mcomix-libre/PKGBUILD
@@ -1,13 +1,13 @@
# $Id: PKGBUILD 106934 2014-03-10 18:30:38Z schuay $
-# Maintainer: schuay <jakob.gruber@gmail.com>
-# Contributor: Ray Powell <ray_al@xphoniexx.net>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): schuay <jakob.gruber@gmail.com>
+# Contributor (Arch): Ray Powell <ray_al@xphoniexx.net>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=mcomix
pkgname=mcomix-libre
pkgver=1.00
-pkgrel=6
-pkgdesc="A user-friendly, customizable image viewer specifically designed to handle comic books, without nonfree unrar recommendation"
+pkgrel=6.2
+pkgdesc="A user-friendly, customizable image viewer specifically designed to handle comic books, without nonfree unrar support"
arch=('any')
url="http://sourceforge.net/projects/mcomix/"
license=('GPL')
@@ -19,7 +19,17 @@ replaces=('mcomix' 'comix')
provides=("mcomix=${pkgver}")
install='mcomix.install'
source=("http://downloads.sourceforge.net/project/mcomix/MComix-${pkgver}/mcomix-${pkgver}.tar.bz2"
- 'zoom.patch')
+ 'zoom.patch'
+ 'libre.patch')
+
+prepare() {
+ cd ${srcdir}/${_pkgname}-${pkgver}
+
+ # Remove nonfree unRAR support
+ rm -v mcomix/archive/rar{,file}.py
+ rm -v mime/icons/*/application-x-cbr.png
+ patch -Np1 -i ${srcdir}/libre.patch
+}
build() {
cd ${srcdir}/${_pkgname}-${pkgver}
@@ -53,4 +63,5 @@ package() {
}
md5sums=('3a916dd9da17043ab59ccd17e26eb932'
- 'c80705bf6f132bfba20dcb84b79c9cb7')
+ 'c80705bf6f132bfba20dcb84b79c9cb7'
+ 'cbb3730d3bed153b88208163e83d60e2')
diff --git a/libre/mcomix-libre/libre.patch b/libre/mcomix-libre/libre.patch
new file mode 100644
index 000000000..e3f12f703
--- /dev/null
+++ b/libre/mcomix-libre/libre.patch
@@ -0,0 +1,421 @@
+diff --git a/mcomix/about_dialog.py b/mcomix/about_dialog.py
+index 9f956d5..10ff0be 100644
+--- a/mcomix/about_dialog.py
++++ b/mcomix/about_dialog.py
+@@ -27,7 +27,7 @@ class _AboutDialog(gtk.AboutDialog):
+ comment = \
+ _('%s is an image viewer specifically designed to handle comic books.') % \
+ constants.APPNAME + u' ' + \
+- _('It reads ZIP, RAR and tar archives, as well as plain image files.')
++ _('It reads ZIP and tar archives, as well as plain image files.')
+ self.set_comments(comment)
+
+ license = \
+diff --git a/mcomix/archive_extractor.py b/mcomix/archive_extractor.py
+index afed5c7..bc969bf 100644
+--- a/mcomix/archive_extractor.py
++++ b/mcomix/archive_extractor.py
+@@ -12,8 +12,8 @@ class Extractor:
+
+ """Extractor is a threaded class for extracting different archive formats.
+
+- The Extractor can be loaded with paths to archives (currently ZIP, tar,
+- or RAR archives) and a path to a destination directory. Once an archive
++ The Extractor can be loaded with paths to archives (currently ZIP or tar
++ archives) and a path to a destination directory. Once an archive
+ has been set it is possible to filter out the files to be extracted and
+ set the order in which they should be extracted. The extraction can
+ then be started in a new thread in which files are extracted one by one,
+diff --git a/mcomix/archive_tools.py b/mcomix/archive_tools.py
+index 66c3f14..151a904 100644
+--- a/mcomix/archive_tools.py
++++ b/mcomix/archive_tools.py
+@@ -8,7 +8,6 @@ import tarfile
+ from mcomix import constants
+ from mcomix import log
+ from mcomix.archive import zip
+-from mcomix.archive import rar
+ from mcomix.archive import tar
+ from mcomix.archive import sevenzip
+ from mcomix.archive import lha
+@@ -16,9 +15,6 @@ from mcomix.archive import lha
+ def szip_available():
+ return sevenzip.SevenZipArchive.is_available()
+
+-def rar_available():
+- return rar.RarArchive.is_available() or szip_available()
+-
+ def lha_available():
+ return lha.LhaArchive.is_available() or szip_available()
+
+@@ -31,9 +27,6 @@ def get_supported_archive_regex():
+ if szip_available():
+ formats.extend(constants.SZIP_FORMATS[1])
+
+- if rar_available():
+- formats.extend(constants.RAR_FORMATS[1])
+-
+ if lha_available():
+ formats.extend(constants.LHA_FORMATS[1])
+
+@@ -71,10 +64,7 @@ def archive_mime_type(path):
+ else:
+ return constants.TAR
+
+- if magic == 'Rar!':
+- return constants.RAR
+-
+- elif magic == '7z\xBC\xAF':
++ if magic == '7z\xBC\xAF':
+ return constants.SEVENZIP
+
+ elif magic[2:] == '-l':
+@@ -124,11 +114,6 @@ def get_archive_handler(path):
+ return zip.ZipArchive(path)
+ elif mime in (constants.TAR, constants.GZIP, constants.BZIP2):
+ return tar.TarArchive(path)
+- elif mime == constants.RAR and rar.RarArchive.is_available():
+- return rar.RarArchive(path)
+- elif mime == constants.RAR and sevenzip.SevenZipArchive.is_available():
+- log.info('Using Sevenzip for RAR archives.')
+- return sevenzip.SevenZipArchive(path)
+ elif mime == constants.SEVENZIP and sevenzip.SevenZipArchive.is_available():
+ return sevenzip.SevenZipArchive(path)
+ elif mime == constants.LHA and lha.LhaArchive.is_available():
+diff --git a/mcomix/constants.py b/mcomix/constants.py
+index fad3b78..3c225c5 100644
+--- a/mcomix/constants.py
++++ b/mcomix/constants.py
+@@ -28,7 +28,7 @@ FILEINFO_PICKLE_PATH = os.path.join(DATA_DIR, 'file.pickle')
+ PREFERENCE_PICKLE_PATH = os.path.join(CONFIG_DIR, 'preferences.pickle')
+
+ ZOOM_MODE_BEST, ZOOM_MODE_WIDTH, ZOOM_MODE_HEIGHT, ZOOM_MODE_MANUAL, ZOOM_MODE_SIZE = range(5)
+-ZIP, RAR, TAR, GZIP, BZIP2, PDF, SEVENZIP, LHA = range(8)
++ZIP, TAR, GZIP, BZIP2, PDF, SEVENZIP, LHA = range(7)
+ NORMAL_CURSOR, GRAB_CURSOR, WAIT_CURSOR, NO_CURSOR = range(4)
+ LIBRARY_DRAG_EXTERNAL_ID, LIBRARY_DRAG_BOOK_ID, LIBRARY_DRAG_COLLECTION_ID = range(3)
+ AUTOROTATE_NEVER, AUTOROTATE_WIDTH_90, AUTOROTATE_WIDTH_270, \
+@@ -57,9 +57,6 @@ SUPPORTED_IMAGE_REGEX = re.compile(r'\.(jpg|jpeg|png|gif|tif|tiff|bmp|ppm|pgm|pb
+ ZIP_FORMATS = (
+ ('application/x-zip', 'application/zip', 'application/x-zip-compressed', 'application/x-cbz'),
+ ('*.zip', '*.cbz'))
+-RAR_FORMATS = (
+- ('application/x-rar', 'application/x-cbr'),
+- ('*.rar', '*.cbr'))
+ TAR_FORMATS = (
+ ('application/x-tar', 'application/x-gzip', 'application/x-bzip2', 'application/x-cbt'),
+ ('*.tar', '*.gz', '*.bz2', '*.bzip2', '*.cbt'))
+diff --git a/mcomix/file_chooser_base_dialog.py b/mcomix/file_chooser_base_dialog.py
+index 4d2a34e..c518842 100644
+--- a/mcomix/file_chooser_base_dialog.py
++++ b/mcomix/file_chooser_base_dialog.py
+@@ -88,9 +88,6 @@ class _BaseFileChooserDialog(gtk.Dialog):
+ # extractor availability.
+ mimetypes = constants.ZIP_FORMATS[0] + constants.TAR_FORMATS[0]
+ patterns = constants.ZIP_FORMATS[1] + constants.TAR_FORMATS[1]
+- if archive_tools.rar_available():
+- mimetypes += constants.RAR_FORMATS[0]
+- patterns += constants.RAR_FORMATS[1]
+ if archive_tools.szip_available():
+ mimetypes += constants.SZIP_FORMATS[0]
+ patterns += constants.SZIP_FORMATS[1]
+@@ -107,10 +104,6 @@ class _BaseFileChooserDialog(gtk.Dialog):
+ self.add_filter(_('Tar archives'),
+ *constants.TAR_FORMATS)
+
+- if archive_tools.rar_available():
+- self.add_filter(_('RAR archives'),
+- *constants.RAR_FORMATS)
+-
+ if archive_tools.szip_available():
+ self.add_filter(_('7z archives'),
+ *constants.SZIP_FORMATS)
+diff --git a/mcomix/messages/mcomix.pot b/mcomix/messages/mcomix.pot
+index 54ece85..482c051 100644
+--- a/mcomix/messages/mcomix.pot
++++ b/mcomix/messages/mcomix.pot
+@@ -24,7 +24,7 @@ msgid "%s is an image viewer specifically designed to handle comic books."
+ msgstr ""
+
+ #: mcomix/about_dialog.py:30
+-msgid "It reads ZIP, RAR and tar archives, as well as plain image files."
++msgid "It reads ZIP and tar archives, as well as plain image files."
+ msgstr ""
+
+ #: mcomix/about_dialog.py:34
+@@ -241,10 +241,6 @@ msgstr ""
+ msgid "Tar archives"
+ msgstr ""
+
+-#: mcomix/file_chooser_base_dialog.py:111
+-msgid "RAR archives"
+-msgstr ""
+-
+ #: mcomix/file_chooser_base_dialog.py:115
+ msgid "7z archives"
+ msgstr ""
+@@ -1345,10 +1341,6 @@ msgstr ""
+ msgid "Bzip2 compressed tar archive"
+ msgstr ""
+
+-#: mcomix/strings.py:13
+-msgid "RAR archive"
+-msgstr ""
+-
+ #: mcomix/strings.py:14
+ msgid "7z archive"
+ msgstr ""
+diff --git a/mcomix/process.py b/mcomix/process.py
+index 4ba60c6..c37699d 100644
+--- a/mcomix/process.py
++++ b/mcomix/process.py
+@@ -10,10 +10,7 @@ from mcomix import i18n
+ class Process:
+
+ """The subprocess and popen2 modules in Python are broken (see issue
+- #1336). The problem (i.e. complete crash) they can cause happen fairly
+- often (once is too often) in MComix when calling "rar" or "unrar" to
+- extract specific files from archives. We roll our own very simple
+- process spawning module here instead.
++ #1336). We roll our own very simple process spawning module here instead.
+ """
+ # TODO: I can no longer reproduce the issue. Check if this version of
+ # process.py still solves it.
+diff --git a/mcomix/recent.py b/mcomix/recent.py
+index 3d4613d..3f5c511 100644
+--- a/mcomix/recent.py
++++ b/mcomix/recent.py
+@@ -30,8 +30,7 @@ class RecentFilesMenu(gtk.RecentChooserMenu):
+ rfilter.add_pixbuf_formats()
+
+ mimetypes, patterns = itertools.izip(constants.ZIP_FORMATS,
+- constants.RAR_FORMATS, constants.TAR_FORMATS,
+- constants.SZIP_FORMATS)
++ constants.TAR_FORMATS, constants.SZIP_FORMATS)
+
+ for mimetype in itertools.chain.from_iterable(mimetypes):
+ rfilter.add_mime_type(mimetype)
+diff --git a/mcomix/strings.py b/mcomix/strings.py
+index c5ca21f..cc69236 100644
+--- a/mcomix/strings.py
++++ b/mcomix/strings.py
+@@ -3,14 +3,13 @@
+ This file should only be imported after gettext has been correctly initialized
+ and installed in the global namespace. """
+
+-from mcomix.constants import ZIP, TAR, GZIP, BZIP2, RAR, SEVENZIP, LHA
++from mcomix.constants import ZIP, TAR, GZIP, BZIP2, SEVENZIP, LHA
+
+ ARCHIVE_DESCRIPTIONS = {
+ ZIP: _('ZIP archive'),
+ TAR: _('Tar archive'),
+ GZIP: _('Gzip compressed tar archive'),
+ BZIP2: _('Bzip2 compressed tar archive'),
+- RAR: _('RAR archive'),
+ SEVENZIP: _('7z archive'),
+ LHA: _('LHA archive')
+ }
+diff --git a/mcomix.egg-info/SOURCES.txt b/mcomix.egg-info/SOURCES.txt
+index 62de3ad..85a65df 100644
+--- a/mcomix.egg-info/SOURCES.txt
++++ b/mcomix.egg-info/SOURCES.txt
+@@ -77,8 +77,6 @@ mcomix.egg-info/top_level.txt
+ mcomix/archive/__init__.py
+ mcomix/archive/archive_base.py
+ mcomix/archive/lha.py
+-mcomix/archive/rar.py
+-mcomix/archive/rarfile.py
+ mcomix/archive/sevenzip.py
+ mcomix/archive/tar.py
+ mcomix/archive/zip.py
+@@ -183,18 +181,13 @@ mime/comicthumb.1.gz
+ mime/mcomix.desktop
+ mime/mcomix.thumbnailer
+ mime/mcomix.xml
+-mime/icons/16x16/application-x-cbr.png
+ mime/icons/16x16/application-x-cbt.png
+ mime/icons/16x16/application-x-cbz.png
+-mime/icons/22x22/application-x-cbr.png
+ mime/icons/22x22/application-x-cbt.png
+ mime/icons/22x22/application-x-cbz.png
+-mime/icons/24x24/application-x-cbr.png
+ mime/icons/24x24/application-x-cbt.png
+ mime/icons/24x24/application-x-cbz.png
+-mime/icons/32x32/application-x-cbr.png
+ mime/icons/32x32/application-x-cbt.png
+ mime/icons/32x32/application-x-cbz.png
+-mime/icons/48x48/application-x-cbr.png
+ mime/icons/48x48/application-x-cbt.png
+-mime/icons/48x48/application-x-cbz.png
+\ No newline at end of file
++mime/icons/48x48/application-x-cbz.png
+diff --git a/mime/comicbook.schemas b/mime/comicbook.schemas
+index cdc4a4a..21b6214 100644
+--- a/mime/comicbook.schemas
++++ b/mime/comicbook.schemas
+@@ -1,28 +1,6 @@
+ <gconfschemafile>
+ <schemalist>
+ <schema>
+- <key>/schemas/desktop/gnome/thumbnailers/application@x-cbr/enable</key>
+- <applyto>/desktop/gnome/thumbnailers/application@x-cbr/enable</applyto>
+- <owner>comicthumb</owner>
+- <type>bool</type>
+- <default>true</default>
+- <locale name="C">
+- <short></short>
+- <long></long>
+- </locale>
+- </schema>
+- <schema>
+- <key>/schemas/desktop/gnome/thumbnailers/application@x-cbr/command</key>
+- <applyto>/desktop/gnome/thumbnailers/application@x-cbr/command</applyto>
+- <owner>comicthumb</owner>
+- <type>string</type>
+- <default>comicthumb %i %o %s</default>
+- <locale name="C">
+- <short></short>
+- <long></long>
+- </locale>
+- </schema>
+- <schema>
+ <key>/schemas/desktop/gnome/thumbnailers/application@x-cbz/enable</key>
+ <applyto>/desktop/gnome/thumbnailers/application@x-cbz/enable</applyto>
+ <owner>comicthumb</owner>
+diff --git a/mime/comicthumb b/mime/comicthumb
+index 5728e2a..d77a4a1 100755
+--- a/mime/comicthumb
++++ b/mime/comicthumb
+@@ -7,7 +7,7 @@ comicthumb is dependent on the Python Imaging Library (PIL).
+ comicthumb was originally written by Christoph Wolk, this version was
+ re-written from scratch for Comix 4 by Pontus Ekberg.
+
+-Supported formats: ZIP, RAR and tar (.cbz, .cbr, .cbt)
++Supported formats: ZIP and tar (.cbz, .cbt)
+
+ Usage: comicthumb INFILE OUTFILE [SIZE]
+ """
+@@ -28,16 +28,13 @@ except ImportError:
+ print __doc__
+ sys.exit(1)
+
+-ZIP, RAR, TAR, GZIP, BZIP2 = range(5)
++ZIP, TAR, GZIP, BZIP2 = range(5)
+
+
+ class Process:
+
+ """The subprocess and popen2 modules in Python are broken (see issue
+- #1336). The problem (i.e. complete crash) they can cause happen fairly
+- often (once is too often) in Comix when calling "rar" or "unrar" to
+- extract specific files from archives. We roll our own very simple
+- process spawning module here instead.
++ #1336). We roll our own very simple process spawning module here instead.
+ """
+ # TODO: I can no longer reproduce the issue. Check if this version of
+ # process.py still solves it.
+@@ -94,19 +91,6 @@ class Extractor:
+ elif self._type in [TAR, GZIP, BZIP2]:
+ self._tfile = tarfile.open(src, 'r')
+ self._files = self._tfile.getnames()
+- elif self._type == RAR:
+- self._rar = None
+- for command in ('unrar', 'rar'):
+- if Process([command]).spawn() is not None:
+- self._rar = command
+- if self._rar == None:
+- print '! Could not find the "rar" or "unrar" executable.'
+- sys.exit(1)
+- proc = Process([self._rar, 'vb', src])
+- fobj = proc.spawn()
+- self._files = fobj.readlines()
+- proc.wait()
+- self._files = [name.rstrip('\n') for name in self._files]
+
+ def get_files(self):
+ """Return a list of the files in the archive."""
+@@ -121,11 +105,6 @@ class Extractor:
+ return cStringIO.StringIO(self._zfile.read(chosen))
+ elif self._type in [TAR, GZIP, BZIP2]:
+ return cStringIO.StringIO(self._tfile.extractfile(chosen).read())
+- elif self._type == RAR:
+- proc = Process([self._rar, 'p', '-inul', '-p-', '--',
+- self._src, chosen])
+- fobj = proc.spawn()
+- return cStringIO.StringIO(fobj.read())
+
+
+ def archive_mime_type(path):
+@@ -145,8 +124,6 @@ def archive_mime_type(path):
+ if magic.startswith('\037\213'):
+ return GZIP
+ return TAR
+- if magic == 'Rar!':
+- return RAR
+ except Exception:
+ print '! Error while reading', path
+ return None
+diff --git a/mime/mcomix.desktop b/mime/mcomix.desktop
+index ee6d8b9..19ec7cd 100644
+--- a/mime/mcomix.desktop
++++ b/mime/mcomix.desktop
+@@ -19,4 +19,4 @@ Terminal=false
+ Type=Application
+ StartupNotify=true
+ Categories=Graphics;Viewer;
+-MimeType=application/x-cbz;application/x-cbr;application/x-cbt;image/jpeg;image/png;image/gif;image/tiff;image/bmp;image/x-icon;image/x-xpixmap;image/x-xbitmap;application/x-zip;application/zip;application/x-rar;application/x-tar;application/x-gzip;application/x-bzip2;image/svg+xml;image/svg;image/svg-xml;image/vnd.adobe.svg+xml;text/xml-svg;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-pcx;image/x-cmu-raster;image/x-sun-raster;image/x-tga;application/x-7z-compressed;application/x-cb7;application/x-lzh;application/x-lha;application/x-lzh-compressed;
++MimeType=application/x-cbz;application/x-cbt;image/jpeg;image/png;image/gif;image/tiff;image/bmp;image/x-icon;image/x-xpixmap;image/x-xbitmap;application/x-zip;application/zip;application/x-tar;application/x-gzip;application/x-bzip2;image/svg+xml;image/svg;image/svg-xml;image/vnd.adobe.svg+xml;text/xml-svg;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-pcx;image/x-cmu-raster;image/x-sun-raster;image/x-tga;application/x-7z-compressed;application/x-cb7;application/x-lzh;application/x-lha;application/x-lzh-compressed;
+diff --git a/mime/mcomix.thumbnailer b/mime/mcomix.thumbnailer
+index 4dcfc67..667dc8b 100644
+--- a/mime/mcomix.thumbnailer
++++ b/mime/mcomix.thumbnailer
+@@ -1,4 +1,4 @@
+ [Thumbnailer Entry]
+ TryExec=comicthumb
+ Exec=comicthumb %u %o %s
+-MimeType=application/x-cbr;application/x-cbz;application/x-cbt;
++MimeType=application/x-cbz;application/x-cbt;
+diff --git a/mime/mcomix.xml b/mime/mcomix.xml
+index 765c254..b13e2da 100644
+--- a/mime/mcomix.xml
++++ b/mime/mcomix.xml
+@@ -5,11 +5,6 @@
+ <comment xml:lang="en">Comic Book Archive (Zip compressed)</comment>
+ <glob pattern="*.cbz"/>
+ </mime-type>
+- <mime-type type="application/x-cbr">
+- <sub-class-of type="application/x-rar"/>
+- <comment xml:lang="en">Comic Book Archive (RAR compressed)</comment>
+- <glob pattern="*.cbr"/>
+- </mime-type>
+ <mime-type type="application/x-cbt">
+ <sub-class-of type="application/x-compressed-tar"/>
+ <sub-class-of type="application/x-bzip-compressed-tar"/>
+diff --git a/setup.py b/setup.py
+index 9eb7782..9979111 100755
+--- a/setup.py
++++ b/setup.py
+@@ -78,23 +78,18 @@ setuptools.setup(
+ ('share/icons/hicolor/48x48/apps', ['mcomix/images/48x48/mcomix.png']),
+ ('share/icons/hicolor/16x16/mimetypes',
+ ['mime/icons/16x16/application-x-cbz.png',
+- 'mime/icons/16x16/application-x-cbr.png',
+ 'mime/icons/16x16/application-x-cbt.png']),
+ ('share/icons/hicolor/22x22/mimetypes',
+ ['mime/icons/22x22/application-x-cbz.png',
+- 'mime/icons/22x22/application-x-cbr.png',
+ 'mime/icons/22x22/application-x-cbt.png']),
+ ('share/icons/hicolor/24x24/mimetypes',
+ ['mime/icons/24x24/application-x-cbz.png',
+- 'mime/icons/24x24/application-x-cbr.png',
+ 'mime/icons/24x24/application-x-cbt.png']),
+ ('share/icons/hicolor/32x32/mimetypes',
+ ['mime/icons/32x32/application-x-cbz.png',
+- 'mime/icons/32x32/application-x-cbr.png',
+ 'mime/icons/32x32/application-x-cbt.png']),
+ ('share/icons/hicolor/48x48/mimetypes',
+ ['mime/icons/48x48/application-x-cbz.png',
+- 'mime/icons/48x48/application-x-cbr.png',
+ 'mime/icons/48x48/application-x-cbt.png'])],
+
+ # Package metadata
diff --git a/libre/mesa-demos-libre/PKGBUILD b/libre/mesa-demos-libre/PKGBUILD
index 78ecbc563..2838b51b9 100644
--- a/libre/mesa-demos-libre/PKGBUILD
+++ b/libre/mesa-demos-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 178740 2013-02-26 16:15:13Z andyrtr $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Jan de Groot <jgc@archlinux.org>
+# Maintainer (Arch): Andreas Radke <andyrtr@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
pkgname='mesa-demos-libre'
pkgver=8.1.0
diff --git a/libre/mesa-libcl/PKGBUILD b/libre/mesa-libcl/PKGBUILD
index 3f898e726..414abd6db 100644
--- a/libre/mesa-libcl/PKGBUILD
+++ b/libre/mesa-libcl/PKGBUILD
@@ -5,7 +5,7 @@ pkgbase=mesa
_pkgname=libcl
pkgname=$pkgbase-$_pkgname
_pkgflag=libre
-pkgver=10.1.1
+pkgver=10.1.3
pkgrel=1
pkgdesc='Mesa 3-D OpenCL library'
url=http://${pkgbase}3d.sourceforge.net
@@ -30,7 +30,7 @@ provides=($_pkgname-$_pkgflag $_pkgname opencl-nvidia opencl-nvidia-304xx)
conflicts=($_pkgname-$_pkgflag $_pkgname opencl-nvidia opencl-nvidia-304xx)
replaces=($_pkgname-$_pkgflag $_pkgname opencl-nvidia opencl-nvidia-304xx)
source=ftp://ftp.freedesktop.org/pub/$pkgbase/${pkgver%.0}/${pkgbase^}Lib-$pkgver.tar.bz2
-sha512sums=f136d25f6da47bb9f582eafa2f89804b1eae9f0b834a1513cf9f940ef5bd8f438b72600d992d4d9436d2899e0a91d48f4eaabb24bd149c71d3192af5e386dec7
+sha512sums=3c15b3c26db4d104450155c9b48264b6abd9fbe5b1bbe812299c9ce993cde54f8e0c1ffb2b25b9d46c818e870a514c41cac9b88fc1826d735bdf26fad498ce45
build() {
cd $srcdir/${pkgbase^}-$pkgver
diff --git a/libre/midori-libre-gtk3/PKGBUILD b/libre/midori-libre-gtk3/PKGBUILD
index 9909fe33a..938454573 100644
--- a/libre/midori-libre-gtk3/PKGBUILD
+++ b/libre/midori-libre-gtk3/PKGBUILD
@@ -1,11 +1,11 @@
# $Id: PKGBUILD 108941 2014-04-07 21:25:27Z arodseth $
-# Maintainer: Alexander Rødseth <rodseth@gmail.com>
-# Contributor: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
-# Contributor: Andreas Radke <andyrtr@archlinux.org>
-# Contributor: rabyte <rabyte.at.gmail.dot.com>
-# Contributor: Johannes Krampf <wuischke.at.amule.dot.org>
-# Contributor: Bartłomiej Piotrowski <barthalion@gmail.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Alexander Rødseth <rodseth@gmail.com>
+# Contributor (Arch): Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
+# Contributor (Arch): Andreas Radke <andyrtr@archlinux.org>
+# Contributor (Arch): rabyte <rabyte.at.gmail.dot.com>
+# Contributor (Arch): Johannes Krampf <wuischke.at.amule.dot.org>
+# Contributor (Arch): Bartłomiej Piotrowski <barthalion@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=midori-gtk3
pkgname=midori-libre-gtk3
diff --git a/libre/midori-libre/PKGBUILD b/libre/midori-libre/PKGBUILD
index 9ceaf662e..9dd09b6dc 100644
--- a/libre/midori-libre/PKGBUILD
+++ b/libre/midori-libre/PKGBUILD
@@ -1,10 +1,10 @@
# $Id: PKGBUILD 108939 2014-04-07 21:17:17Z arodseth $
-# Maintainer: Alexander Rødseth <rodseth@gmail.com>
-# Contributor: Andreas Radke <andyrtr@archlinux.org>
-# Contributor: rabyte <rabyte.at.gmail.dot.com>
-# Contributor: Johannes Krampf <wuischke.at.amule.dot.org>
-# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Alexander Rødseth <rodseth@gmail.com>
+# Contributor (Arch): Andreas Radke <andyrtr@archlinux.org>
+# Contributor (Arch): rabyte <rabyte.at.gmail.dot.com>
+# Contributor (Arch): Johannes Krampf <wuischke.at.amule.dot.org>
+# Contributor (Arch): Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=midori
pkgname=midori-libre
@@ -15,9 +15,9 @@ arch=('x86_64' 'i686')
url='http://www.midori-browser.org/'
license=('LGPL2.1')
install='midori.install'
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
depends=('libzeitgeist' 'webkitgtk2' 'libnotify' 'libxss' 'hicolor-icon-theme' 'desktop-file-utils' 'libunique')
makedepends=('bzr' 'python2' 'intltool' 'vala' 'librsvg' 'cmake')
optdepends=('aria2: download utility')
diff --git a/libre/mime-types/PKGBUILD b/libre/mime-types/PKGBUILD
index 31e373545..1e6d45342 100644
--- a/libre/mime-types/PKGBUILD
+++ b/libre/mime-types/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 188113 2013-06-10 01:37:40Z bisson $
-# Contributor: Jan de Groot <jgc@archlinux.org>
-# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor (Arch): Jan de Groot <jgc@archlinux.org>
+# Contributor (Arch): Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer (Arch): Gaetan Bisson <bisson@archlinux.org>
pkgname=mime-types
pkgver=9
diff --git a/libre/mkisolinux/PKGBUILD b/libre/mkisolinux/PKGBUILD
index e2900d521..77e2c31b6 100644
--- a/libre/mkisolinux/PKGBUILD
+++ b/libre/mkisolinux/PKGBUILD
@@ -1,5 +1,5 @@
# $Id: PKGBUILD 12670 2008-09-17 21:19:05Z tpowa $
-# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer (Arch): Tobias Powalowski <tpowa@archlinux.org>
pkgname=mkisolinux
pkgver=2013.05
diff --git a/libre/mkpxelinux/PKGBUILD b/libre/mkpxelinux/PKGBUILD
index 5596983b0..c0c30f18c 100644
--- a/libre/mkpxelinux/PKGBUILD
+++ b/libre/mkpxelinux/PKGBUILD
@@ -1,5 +1,5 @@
# $Id: PKGBUILD 197074 2013-10-21 15:42:46Z tpowa $
-# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer (Arch): Tobias Powalowski <tpowa@archlinux.org>
pkgname=mkpxelinux
pkgver=2013.10
diff --git a/libre/mksyslinux/PKGBUILD b/libre/mksyslinux/PKGBUILD
index f01c844a9..4628c66e6 100644
--- a/libre/mksyslinux/PKGBUILD
+++ b/libre/mksyslinux/PKGBUILD
@@ -1,5 +1,5 @@
# $Id: PKGBUILD 187120 2013-06-04 06:46:39Z tpowa $
-# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer (Arch): Tobias Powalowski <tpowa@archlinux.org>
pkgname=mksyslinux
pkgver=2013.06
diff --git a/libre/mozilla-searchplugins/PKGBUILD b/libre/mozilla-searchplugins/PKGBUILD
index a55f73b0c..7df354571 100644
--- a/libre/mozilla-searchplugins/PKGBUILD
+++ b/libre/mozilla-searchplugins/PKGBUILD
@@ -1,9 +1,9 @@
# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
# Contributor: Figue <ffigue at gmail>
# Contributor: Figue <ffigue at gmail>
-# Contributor (Parabola): fauno <fauno@kiwwwi.com.ar>
-# Contributor (Parabola): vando <facundo@esdebian.org>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# Contributor: fauno <fauno@kiwwwi.com.ar>
+# Contributor: vando <facundo@esdebian.org>
+# Contributor: Márcio Silva <coadde@parabola.nu>
# Thank you very much to the older contributors:
# Contributor: evr <evanroman at gmail>
# Contributor: Muhammad 'MJ' Jassim <UnbreakableMJ@gmail.com>
diff --git a/libre/mplayer-libre-vaapi/PKGBUILD b/libre/mplayer-libre-vaapi/PKGBUILD
index 68873d749..1461c5ec7 100644
--- a/libre/mplayer-libre-vaapi/PKGBUILD
+++ b/libre/mplayer-libre-vaapi/PKGBUILD
@@ -1,10 +1,10 @@
# $Id: PKGBUILD 108189 2014-03-24 13:39:00Z foutrelis $
-# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
-# Contributor: Ionut Biru <ibiru@archlinux.org>
-# Contributor: Hugo Doria <hugo@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Nicolás Reynolds <fauno@kiwwwi.com.ar>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer (Arch): Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor (Arch): Ionut Biru <ibiru@archlinux.org>
+# Contributor (Arch): Hugo Doria <hugo@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Nicolás Reynolds <fauno@kiwwwi.com.ar>
+# Contributor: Márcio Silva <coadde@parabola.nu>
_pkgname=mplayer-vaapi
pkgname=mplayer-libre-vaapi
diff --git a/libre/mplayer-libre/PKGBUILD b/libre/mplayer-libre/PKGBUILD
index 9c4dd49ab..5be143165 100644
--- a/libre/mplayer-libre/PKGBUILD
+++ b/libre/mplayer-libre/PKGBUILD
@@ -1,9 +1,9 @@
# $Id: PKGBUILD 208941 2014-03-28 21:27:08Z bpiotrowski $
-# Maintainer: Ionut Biru <ibiru@archlinux.org>
-# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
-# Contributor: Hugo Doria <hugo@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer (Arch): Ionut Biru <ibiru@archlinux.org>
+# Maintainer (Arch): Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+# Contributor (Arch): Hugo Doria <hugo@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Márcio Silva <coadde@parabola.nu>
_pkgbase=mplayer
pkgbase=mplayer-libre
diff --git a/libre/netsurf-libre/PKGBUILD b/libre/netsurf-libre/PKGBUILD
index 6d028e732..21cedb2a4 100644
--- a/libre/netsurf-libre/PKGBUILD
+++ b/libre/netsurf-libre/PKGBUILD
@@ -1,30 +1,30 @@
-# $Id: PKGBUILD 105500 2014-02-09 11:01:04Z arodseth $
-# Maintainer: Alexander Rødseth <rodseth@gmail.com>
-# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
-# Contributor: Georgij Kondratjev <smpuj@bk.ru>
-# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# $Id: PKGBUILD 110427 2014-04-29 13:53:01Z arodseth $
+# Maintainer (Arch): Alexander Rødseth <rodseth@gmail.com>
+# Contributor (Arch): Paulo Matias <matiasΘarchlinux-br·org>
+# Contributor (Arch): Georgij Kondratjev <smpuj@bk.ru>
+# Contributor (Arch): Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=netsurf
pkgname=netsurf-libre
-pkgver=3.0
-pkgrel=7
+pkgver=3.1
+pkgrel=1
pkgdesc='Lightweight and fast web browser, without non-privacy search providers'
arch=('x86_64' 'i686' 'mips64el')
url='http://www.netsurf-browser.org/'
license=('MIT' 'GPL2')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
-depends=('gtk2' 'libmng' 'curl' 'librsvg' 'desktop-file-utils' 'libnsbmp' 'libnsgif' 'libcss' 'libwebp' 'libdom' 'lcms') # 'libharu' 'gstreamer0.10'
-makedepends=('js' 're2c' 'gendesk' 'netsurf-buildsystem' 'libglade' 'addinclude')
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
+depends=('libmng' 'librsvg' 'libwebp' 'curl' 'lcms' 'desktop-file-utils' 'libnsbmp>=0.1.1' 'libnsgif>=0.1.1' 'libcss>=0.3.0' 'libdom>=0.1.0' 'js185' 'gtk2') # gtk3
+makedepends=('js185' 're2c' 'gendesk' 'netsurf-buildsystem' 'perl-html-parser' 'nsgenbind' 'inetutils')
install="$_pkgname.install"
source=("netsurf.png::http://ubuntu.allmyapps.com/data/n/e/netsurf-netsurf-web-browser/icon_48x48_netsurf.png"
"http://download.$_pkgname-browser.org/$_pkgname/releases/source/$_pkgname-$pkgver-src.tar.gz"
'netsurf.sh')
sha256sums=('f0dbcc5d80bf03d706aa8b28a322aa7f169a40813848c2d1505691f6e2c7ef00'
- '7c6a48d3cc3e9a3e3a51b532ddf60f7697e97bf8b61a6d3b2ced1a2e89fbccc6'
- '7aef20cc7b2e2e7225237f2f94b5a0074caeb8ec07075c58429b0345ca566f8d')
+ '1ef12b2e2bc68f9eff8465646b7359e3cb483e1042aed750cc283a70dd4c540c'
+ '70310682d1612457d7bb3096549110b6ec127f50e97853259fada6be0c52924b')
prepare() {
cd "$_pkgname-$pkgver"
@@ -91,36 +91,43 @@ prepare() {
\!NetSurf/Resources/en/welcome.html\,faf \
\!NetSurf/Resources/it/welcome.html\,faf \
\!NetSurf/Resources/ja/welcome.html\,faf
+ sed -i 's|nsgenbind -g|nsgenbind|
+ ' javascript/Makefile
- addinclude image/rsvg.c stdio
- addinclude image/mng.c stdio
- addinclude image/png.c stdio
+ cd ..
gendesk -f --pkgname "$_pkgname" --pkgdesc "$pkgdesc" --exec 'netsurf %U' \
--genericname 'Web Browser' --comment 'Lightweight web browser' \
--mimetypes 'text/html;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/geo'
+
+ # If patching the GTK3 deprecated errors by including files from
+ # /usr/include/gtk-3.0/gtk/deprecated, something like this might be useful:
+ #setconf "$_pkgname-$pkgver/Makefile.defaults" \
+ # CFLAGS " -DGTK_COMPILATION"
}
build() {
- cd "$_pkgname-$pkgver"
-
- make \
+ make -C "$_pkgname-$pkgver" \
PREFIX=/usr \
TARGET=gtk \
NETSURF_USE_WEBP=YES \
NETSURF_USE_VIDEO=NO
+ #NETSURF_GTK_MAJOR=3 # The latest version of GTK3 has deprecated several
+ # features that are used by NetSurf.
}
package() {
- cd "$_pkgname-$pkgver"
-
- make install PREFIX=/usr DESTDIR="$pkgdir" NETSURF_USE_WEBP=YES
+ make -C "$_pkgname-$pkgver" install PREFIX=/usr DESTDIR="$pkgdir"
mv "$pkgdir/usr/bin/$_pkgname" "$pkgdir/usr/bin/$_pkgname.elf"
- install -Dm755 "../$_pkgname.sh" "$pkgdir/usr/bin/$_pkgname"
- install -Dm644 "../$_pkgname.png" "$pkgdir/usr/share/pixmaps/$_pkgname.png"
+ install -Dm755 "$_pkgname.sh" "$pkgdir/usr/bin/$_pkgname"
+ install -Dm644 "$_pkgname.png" "$pkgdir/usr/share/pixmaps/$_pkgname.png"
install -Dm644 "$_pkgname.desktop" \
"$pkgdir/usr/share/applications/$_pkgname.desktop"
- install -Dm644 COPYING "$pkgdir/usr/share/licenses/$_pkgname/LICENSE"
+ install -Dm644 "$_pkgname-$pkgver/COPYING" \
+ "$pkgdir/usr/share/licenses/$_pkgname/LICENSE"
+ # use softlinks instead of hardlinks
+ rm -r "$pkgdir/usr/share/netsurf/C"
+ ln -s '/usr/share/netsurf/en' "$pkgdir/usr/share/netsurf/C"
}
# vim:set ts=2 sw=2 et:
diff --git a/libre/netsurf-libre/netsurf.sh b/libre/netsurf-libre/netsurf.sh
index b74f388af..01ff68450 100644
--- a/libre/netsurf-libre/netsurf.sh
+++ b/libre/netsurf-libre/netsurf.sh
@@ -1,7 +1,7 @@
#!/bin/sh
shortname=`echo $LANG | cut -b1-2`
if [[ -d /usr/share/netsurf/$shortname ]]; then
- /usr/bin/netsurf.elf "$@"
+ /usr/bin/netsurf.elf "$@"
else
- LANG=en /usr/bin/netsurf.elf "$@"
+ LANG=en /usr/bin/netsurf.elf "$@"
fi
diff --git a/libre/nss/PKGBUILD b/libre/nss/PKGBUILD
index 218c331b2..1676dc44d 100644
--- a/libre/nss/PKGBUILD
+++ b/libre/nss/PKGBUILD
@@ -1,16 +1,16 @@
-# $Id: PKGBUILD 209930 2014-04-09 10:55:26Z jgc $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Luke Shumaker <lukeshu@sbcglobal.net>
+# $Id: PKGBUILD 212171 2014-05-09 18:25:02Z jgc $
+# Maintainer (Arch): Jan de Groot <jgc@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Luke Shumaker <lukeshu@sbcglobal.net>
pkgname=nss
-pkgver=3.16
-pkgrel=1.1
+pkgver=3.16.1
+pkgrel=1
pkgdesc="Mozilla Network Security Services, with CAcert CA certificates support"
arch=(i686 x86_64)
url="http://www.mozilla.org/projects/security/pki/nss/"
license=('MPL' 'GPL')
-_nsprver=4.10.4
+_nsprver=4.10.5
depends=("nspr>=${_nsprver}" 'sqlite' 'zlib' 'sh')
makedepends=('perl')
options=('!strip' '!makeflags' 'staticlibs')
@@ -19,7 +19,7 @@ source=(ftp://ftp.mozilla.org/pub/security/nss/releases/NSS_${pkgver//./_}_RTM/s
nss-config.in
ssl-renegotiate-transitional.patch
add_cacert_ca_certs.patch)
-sha1sums=('981dc6ef2f1e69ec7e2b277ce27c7005e9837f95'
+sha1sums=('450a88dde8c7e4533507ac8340dbf94be28a759b'
'aa5b2c0aa38d3c1066d511336cf28d1333e3aebd'
'cb744cc3e56b604e4754bc3c7d9f25bb9a0a136c'
'8a964a744ba098711b80c0d279a2993524e8eb92'
diff --git a/libre/ogmrip-libre/PKGBUILD b/libre/ogmrip-libre/PKGBUILD
index ef0fc1202..c5af35221 100644
--- a/libre/ogmrip-libre/PKGBUILD
+++ b/libre/ogmrip-libre/PKGBUILD
@@ -1,9 +1,9 @@
# $Id: PKGBUILD 103017 2013-12-25 16:56:14Z jlichtblau $
-# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
-# Contributor: Daenyth
-# Contributor: Allan McRae <allan@archlinux.org>
-# Contributor: Vrob (Markus Heuser) mheuser@mi.fu-berlin.de
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor (Arch): Daenyth
+# Contributor (Arch): Allan McRae <allan@archlinux.org>
+# Contributor (Arch): Vrob (Markus Heuser) mheuser@mi.fu-berlin.de
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=ogmrip
pkgname=ogmrip-libre
@@ -24,9 +24,9 @@ optdepends=('lame: support for the MP3 audio codec'
'gocr: support for the SRT subtitle format'
'ocrad: support for the SRT subtitle format'
'tesseract: support for the SRT subtitle format')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
options=('!makeflags')
changelog=$_pkgname.changelog
install=$_pkgname.install
diff --git a/libre/ogre-libre/PKGBUILD b/libre/ogre-libre/PKGBUILD
index e7bf84fcf..890b46163 100644
--- a/libre/ogre-libre/PKGBUILD
+++ b/libre/ogre-libre/PKGBUILD
@@ -14,7 +14,7 @@ pkgname=(
#$_bldname-addon-$pkgbase # package unstable
)
pkgver=1.9.0
-pkgrel=5
+pkgrel=6
pkgdesc='Scene-oriented, flexible 3D engine written in C++, without nonfree software support and files'
arch=(
mips64el
diff --git a/libre/openexr-libre/PKGBUILD b/libre/openexr-libre/PKGBUILD
index 8580dbbce..dfc8a8a19 100644
--- a/libre/openexr-libre/PKGBUILD
+++ b/libre/openexr-libre/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 198354 2013-10-30 14:21:29Z allan $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=openexr
pkgname=openexr-libre
@@ -13,9 +13,9 @@ license=('BSD')
depends=('zlib' 'ilmbase')
makedepends=('libcups' 'libxinerama')
[ "$CARCH" != "mips64el" ] && makedepends+=('libreoffice-writer' 'jre7-openjdk-headless')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
mksource=("http://download.savannah.nongnu.org/releases/${_pkgname}/${_pkgname}-${pkgver}.tar.gz"
"https://repo.parabolagnulinux.org/other/${pkgname}/MultiViewOpenEXR.odt"
"https://repo.parabolagnulinux.org/other/${pkgname}/OpenEXRFileLayout.odt"
diff --git a/libre/openimageio/PKGBUILD b/libre/openimageio/PKGBUILD
index 9e7217250..3b3b2eed1 100644
--- a/libre/openimageio/PKGBUILD
+++ b/libre/openimageio/PKGBUILD
@@ -2,8 +2,8 @@
# based of Arch pkg
pkgname=openimageio
-pkgver=1.3.12
-pkgrel=2
+pkgver=1.3.13
+pkgrel=1
pkgdesc='A library for reading and writing images, including classes, utilities, and applications (built for the blender-libre package)'
arch=(
mips64el
@@ -38,7 +38,7 @@ optdepends=(
'python2: bindings support'
)
source=https://github.com/OpenImageIO/oiio/archive/Release-$pkgver.tar.gz
-sha512sums=SKIP
+sha512sums=6a8061da573f43954d6df3e67f81fbf2760482ecfb062f0ccac86fee878afc74a2e886d090760836e96c9d3ee866a971b0ee1dee404a626fe341237f9e3c32f1
prepare() {
cd oiio-Release-$pkgver
diff --git a/libre/openshot-libre/PKGBUILD b/libre/openshot-libre/PKGBUILD
index ca5b029e7..473592202 100644
--- a/libre/openshot-libre/PKGBUILD
+++ b/libre/openshot-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 97284 2013-09-16 08:04:43Z bluewind $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: Asa Marco <marcoasa90[at]gmail[.]com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor (Arch): Asa Marco <marcoasa90[at]gmail[.]com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=openshot
pkgname=openshot-libre
@@ -15,9 +15,9 @@ depends=('mlt-python-bindings' 'pygoocanvas' 'sdl' 'librsvg' 'mplayer'
'pyxdg' 'pygtk' 'python2-httplib2' 'python2-pillow')
optdepends=('dvgrab: for IEEE digital sources'
'libquicktime' 'libavc1394' 'jack' 'jack-rack' 'ladspa')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
install=openshot.install
source=(http://launchpad.net/openshot/${pkgver%.*}/$pkgver/+download/$_pkgname-$pkgver.tar.gz)
md5sums=('5ec82a7e8b7700ee4a359458aedf19e9')
diff --git a/libre/oss-libre/PKGBUILD b/libre/oss-libre/PKGBUILD
index 7d1777b43..a2c7b10b5 100644
--- a/libre/oss-libre/PKGBUILD
+++ b/libre/oss-libre/PKGBUILD
@@ -1,9 +1,9 @@
# $Id: PKGBUILD 92058 2013-05-31 02:02:47Z seblu $
-# Maintainer: Kyle Keen <keenerd@gmail.com>
-# Contributor: Florian Pritz <bluewind@xinu.at>
-# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
-# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Kyle Keen <keenerd@gmail.com>
+# Contributor (Arch): Florian Pritz <bluewind@xinu.at>
+# Contributor (Arch): Paulo Matias <matiasΘarchlinux-br·org>
+# Contributor (Arch): Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: André Silva <emulatorman@parabola.nu>
pkgname=oss-libre
pkgver=4.2_2007
diff --git a/libre/p7zip-libre/9.04-makefile.patch b/libre/p7zip-libre/9.04-makefile.patch
deleted file mode 100644
index 93a99cc90..000000000
--- a/libre/p7zip-libre/9.04-makefile.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- p7zip_9.04/CPP/7zip/Bundles/Format7zFree/makefile.orig 2010-01-04 13:58:54.527887746 +0100
-+++ p7zip_9.04/CPP/7zip/Bundles/Format7zFree/makefile 2010-01-04 13:59:10.290868343 +0100
-@@ -247,8 +247,6 @@
- MyAes.o \
- Pbkdf2HmacSha1.o \
- RandGen.o \
-- Rar20Crypto.o \
-- RarAes.o \
- Sha1.o \
- WzAes.o \
- ZipCrypto.o \
-@@ -298,7 +296,6 @@
- $(HFS_OBJS) \
- $(ISO_OBJS) \
- $(NSIS_OBJS) \
-- $(RAR_OBJS) \
- $(TAR_OBJS) \
- $(UDF_OBJS) \
- $(WIM_OBJS) \
diff --git a/libre/p7zip-libre/PKGBUILD b/libre/p7zip-libre/PKGBUILD
index fb803b74c..dc3e1562f 100644
--- a/libre/p7zip-libre/PKGBUILD
+++ b/libre/p7zip-libre/PKGBUILD
@@ -1,15 +1,15 @@
# $Id: PKGBUILD 203246 2014-01-06 19:32:24Z bpiotrowski $
-# Contributor: Thayer Williams <thayer@archlinux.org>
-# Contributor: Hugo Doria <hugo@archlinux.org>
-# Contributor: TuxSpirit<tuxspirit@archlinux.fr> 2007/11/17 21:22:36 UTC
-# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor (Arch): Thayer Williams <thayer@archlinux.org>
+# Contributor (Arch): Hugo Doria <hugo@archlinux.org>
+# Contributor (Arch): TuxSpirit<tuxspirit@archlinux.fr> 2007/11/17 21:22:36 UTC
+# Contributor (Arch): Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer (Arch): Gaetan Bisson <bisson@archlinux.org>
pkgname=p7zip-libre
_pkgname=${pkgname%-libre}
pkgver=9.20.1
-pkgrel=9.2
-pkgdesc='Command-line version of the 7zip compressed file archiver, without nonfree unrar support'
+pkgrel=9.4
+pkgdesc='Command-line version of the 7zip compressed file archiver, without nonfree decompression engine for RAR archives'
url='http://p7zip.sourceforge.net/'
license=('GPL')
arch=('i686' 'x86_64' 'mips64el')
@@ -20,34 +20,36 @@ depends=('gcc-libs' 'bash')
optdepends=('wxgtk2.8: GUI'
'desktop-file-utils: desktop entries')
makedepends=('yasm' 'nasm' 'wxgtk2.8')
-mksource=("http://downloads.sourceforge.net/project/${_pkgname}/${_pkgname}/${pkgver}/${_pkgname}_${pkgver}_src_all.tar.bz2"
- 'p7zip-libre.patch' 'parent-folder-icon.patch')
+mksource=("http://downloads.sourceforge.net/project/${_pkgname}/${_pkgname}/${pkgver}/${_pkgname}_${pkgver}_src_all.tar.bz2")
source=("https://repo.parabolagnulinux.org/other/${pkgname}/${pkgname}_${pkgver}_src_all.tar.bz2"
- '7zFM.desktop')
-mksha1sums=('1cd567e043ee054bf08244ce15f32cb3258306b7'
- '8fc0e6e80aeec371a8c80e7a6082594ac6d08aed'
- '335a4a38d457d2b0166538d514ffd3c183bbb37f')
-sha1sums=('ef3f668f5d75941f7a3ba7873e4b234b9f97445b'
- 'f2c370d6f1b286b7ce9a2804e22541b755616a40')
+ '7zFM.desktop' 'libre.patch')
+mksha1sums=('1cd567e043ee054bf08244ce15f32cb3258306b7')
+sha1sums=('4e5ba097a90f3e00ad072023030c87f0707733b8'
+ 'f2c370d6f1b286b7ce9a2804e22541b755616a40'
+ 'bd929fdcbc05dcc783f7fa7d156ed15d38b0b4b3')
options=('!makeflags')
install=install
mksource() {
cd "${srcdir}/${_pkgname}_${pkgver}"
- msg "Removing unRar"
- # Generate patch
- # sed -e '/Rar/d' -i makefile*
- # find -name '*Rar*' -print0 | xargs -0 rm -rvf
- # Remove Rar mentions in CPP/7zip/Bundles/Format7zFree/makefile
- patch -Np1 -i ../p7zip-libre.patch
- msg 'Replacing the parent folder icon'
+
+ # Remove nonfree decompression engine for RAR archives
+ rm -rv CPP/7zip/{Archive,Compress}/Rar
+ rm -v CPP/7zip/Compress/{Rar{2,3}Decoder.{cpp,h},Rar3Vm.{cpp,h},RarCodecsRegister.cpp}
+ rm -v CPP/7zip/Crypto/{Rar20Crypto,RarAes}.{cpp,h}
+ rm -v DOCS/unRarLicense.txt
+
+ # Remove nonfree parent folder icon
rm CPP/7zip/UI/FileManager/res/ParentFolder.h
- patch -Np1 -i ../parent-folder-icon.patch
}
prepare() {
cd "${srcdir}/${_pkgname}_${pkgver}"
+
+ # remove rar and parent folder icon references
+ patch -Np1 -i ../libre.patch
+
rm GUI/kde4/p7zip_compress.desktop
[[ $CARCH = x86_64 ]] \
&& cp makefile.linux_amd64_asm makefile.machine \
diff --git a/libre/p7zip-libre/libre.patch b/libre/p7zip-libre/libre.patch
new file mode 100644
index 000000000..86b2caebc
--- /dev/null
+++ b/libre/p7zip-libre/libre.patch
@@ -0,0 +1,170 @@
+diff -Nur p7zip_9.20.1.orig/CPP/7zip/Bundles/Format7zFree/makefile p7zip_9.20.1/CPP/7zip/Bundles/Format7zFree/makefile
+--- p7zip_9.20.1.orig/CPP/7zip/Bundles/Format7zFree/makefile 2010-11-07 13:41:43.000000000 -0200
++++ p7zip_9.20.1/CPP/7zip/Bundles/Format7zFree/makefile 2014-05-03 11:19:47.618563272 -0300
+@@ -158,14 +158,6 @@
+ NsisIn.o \
+ NsisRegister.o \
+
+-RAR_OBJS = \
+- RarHandler.o \
+- RarHeader.o \
+- RarIn.o \
+- RarItem.o \
+- RarVolumeInStream.o \
+- RarRegister.o \
+-
+ TAR_OBJS = \
+ TarHandler.o \
+ TarHandlerOut.o \
+@@ -243,13 +235,6 @@
+ ZlibEncoder.o \
+ ZDecoder.o \
+
+-COMPRESS_OBJS_NON_FREE = \
+- Rar1Decoder.o \
+- Rar2Decoder.o \
+- Rar3Decoder.o \
+- Rar3Vm.o \
+- RarCodecsRegister.o \
+-
+ CRYPTO_OBJS = \
+ 7zAes.o \
+ 7zAesRegister.o \
+@@ -257,8 +242,6 @@
+ MyAes.o \
+ Pbkdf2HmacSha1.o \
+ RandGen.o \
+- Rar20Crypto.o \
+- RarAes.o \
+ Sha1.o \
+ WzAes.o \
+ ZipCrypto.o \
+diff -Nur p7zip_9.20.1.orig/CPP/7zip/UI/FileManager/FM_rc.cpp p7zip_9.20.1/CPP/7zip/UI/FileManager/FM_rc.cpp
+--- p7zip_9.20.1.orig/CPP/7zip/UI/FileManager/FM_rc.cpp 2010-11-07 13:55:36.000000000 -0200
++++ p7zip_9.20.1/CPP/7zip/UI/FileManager/FM_rc.cpp 2014-05-03 11:28:17.542065931 -0300
+@@ -774,8 +774,6 @@
+
+ /////////////////////////////////////////////////////
+
+-#include "res/ParentFolder.h"
+-
+ SevenZipPanel::SevenZipPanel(MyFrame *frame, wxWindow *parent,int id,int panelIndex) :
+ wxPanel(parent,id) , m_frame(frame), _wList(0)
+ {
+@@ -793,7 +791,7 @@
+ int sizes[] = {150, 250, 350, -1};
+ wxArrayString pathArray;
+ wxBoxSizer *pPathSizer = new wxBoxSizer(wxHORIZONTAL);
+- m_pBmpButtonParentFolder = new wxBitmapButton(this, kParentFolderID, wxGetBitmapFromMemory(PARENT_FOLDER), wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
++ m_pBmpButtonParentFolder = new wxBitmapButton(this, kParentFolderID, wxArtProvider::GetBitmap(wxART_GO_DIR_UP, wxART_TOOLBAR, wxDefaultSize), wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
+ m_pComboBoxPath = new wxComboBox(this, _comboBoxID, wxEmptyString, wxDefaultPosition, wxSize(300,-1), pathArray, wxCB_DROPDOWN | wxCB_SORT );
+ pPathSizer->Add(m_pBmpButtonParentFolder, 0, wxALL|wxEXPAND, 0);
+ pPathSizer->Add(m_pComboBoxPath, 1, wxALL|wxEXPAND, 5);
+diff -Nur p7zip_9.20.1.orig/CPP/7zip/UI/FileManager/makefile.depend p7zip_9.20.1/CPP/7zip/UI/FileManager/makefile.depend
+--- p7zip_9.20.1.orig/CPP/7zip/UI/FileManager/makefile.depend 2011-02-19 07:33:17.000000000 -0200
++++ p7zip_9.20.1/CPP/7zip/UI/FileManager/makefile.depend 2014-05-03 11:28:17.545399286 -0300
+@@ -714,7 +714,7 @@
+ res/Move2PNG.h res/DeletePNG.h res/Delete2PNG.h res/InfoPNG.h \
+ res/Info2PNG.h LangUtils.h ../../../Common/Lang.h \
+ ../../../Common/MyString.h ../../../Windows/ResourceString.h \
+- /usr/include/wx-2.8/wx/mstream.h res/ParentFolder.h
++ /usr/include/wx-2.8/wx/mstream.h
+ OpenCallback.o: OpenCallback.cpp ../../../myWindows/StdAfx.h \
+ ../../../myWindows/config.h ../../../Common/MyWindows.h \
+ ../../../Common/MyGuidDef.h ../../../Common/Types.h \
+diff -Nur p7zip_9.20.1.orig/makefile p7zip_9.20.1/makefile
+--- p7zip_9.20.1.orig/makefile 2011-03-13 08:52:45.000000000 -0300
++++ p7zip_9.20.1/makefile 2014-05-03 11:19:47.618563272 -0300
+@@ -56,7 +56,6 @@
+ $(MAKE) -C CPP/7zip/UI/Client7z depend
+ $(MAKE) -C CPP/7zip/UI/Console depend
+ $(MAKE) -C CPP/7zip/Bundles/Format7zFree depend
+- $(MAKE) -C CPP/7zip/Compress/Rar depend
+ $(MAKE) -C CPP/7zip/UI/GUI depend
+ $(MAKE) -C CPP/7zip/UI/FileManager depend
+ $(MAKE) -C check/my_86_filter depend
+@@ -68,7 +67,6 @@
+ common7z:common
+ $(MKDIR) bin/Codecs
+ $(MAKE) -C CPP/7zip/Bundles/Format7zFree all
+- $(MAKE) -C CPP/7zip/Compress/Rar all
+
+ 7z: common7z
+ $(MAKE) -C CPP/7zip/UI/Console all
+@@ -93,7 +91,6 @@
+ $(MAKE) -C CPP/7zip/UI/FileManager clean
+ $(MAKE) -C CPP/7zip/UI/GUI clean
+ $(MAKE) -C CPP/7zip/Bundles/Format7zFree clean
+- $(MAKE) -C CPP/7zip/Compress/Rar clean
+ $(MAKE) -C CPP/7zip/Compress/LZMA_Alone clean
+ $(MAKE) -C CPP/7zip/Bundles/AloneGCOV clean
+ $(MAKE) -C CPP/7zip/TEST/TestUI clean
+diff -Nur p7zip_9.20.1.orig/makefile.oldmake p7zip_9.20.1/makefile.oldmake
+--- p7zip_9.20.1.orig/makefile.oldmake 2011-03-13 08:53:08.000000000 -0300
++++ p7zip_9.20.1/makefile.oldmake 2014-05-03 11:19:47.618563272 -0300
+@@ -56,7 +56,6 @@
+ cd CPP/7zip/UI/Client7z ; $(MAKE) depend
+ cd CPP/7zip/UI/Console ; $(MAKE) depend
+ cd CPP/7zip/Bundles/Format7zFree ; $(MAKE) depend
+- cd CPP/7zip/Compress/Rar ; $(MAKE) depend
+ cd CPP/7zip/UI/GUI ; $(MAKE) depend
+ cd CPP/7zip/UI/FileManager ; $(MAKE) depend
+ cd check/my_86_filter ; $(MAKE) depend
+@@ -68,7 +67,6 @@
+ common7z:common
+ $(MKDIR) bin/Codecs
+ cd CPP/7zip/Bundles/Format7zFree ; $(MAKE) all
+- cd CPP/7zip/Compress/Rar ; $(MAKE) all
+
+ 7z: common7z
+ cd CPP/7zip/UI/Console ; $(MAKE) all
+@@ -93,7 +91,6 @@
+ cd CPP/7zip/UI/FileManager ; $(MAKE) clean
+ cd CPP/7zip/UI/GUI ; $(MAKE) clean
+ cd CPP/7zip/Bundles/Format7zFree ; $(MAKE) clean
+- cd CPP/7zip/Compress/Rar ; $(MAKE) clean
+ cd CPP/7zip/Compress/LZMA_Alone ; $(MAKE) clean
+ cd CPP/7zip/Bundles/AloneGCOV ; $(MAKE) clean
+ cd CPP/7zip/TEST/TestUI ; $(MAKE) clean
+diff -Nur p7zip_9.20.1.orig/makefile.qnx_shared.so p7zip_9.20.1/makefile.qnx_shared.so
+--- p7zip_9.20.1.orig/makefile.qnx_shared.so 2007-06-28 04:34:14.000000000 -0300
++++ p7zip_9.20.1/makefile.qnx_shared.so 2014-05-03 11:19:47.618563272 -0300
+@@ -1,5 +1,4 @@
+ ###################################################
+-# makefile.machine for "7z.so , Codecs/Rar29.so" :
+ # tested with p7zip-4.47_beta on qnx-6.3.0 sp3 x86 target
+
+ OPTFLAGS=-O
+diff -Nur p7zip_9.20.1.orig/makefile.rules p7zip_9.20.1/makefile.rules
+--- p7zip_9.20.1.orig/makefile.rules 2010-11-07 14:08:51.000000000 -0200
++++ p7zip_9.20.1/makefile.rules 2014-05-03 11:19:47.621896630 -0300
+@@ -448,18 +448,6 @@
+ NsisRegister.o : ../../Archive/Nsis/NsisRegister.cpp
+ $(CXX) $(CXXFLAGS) ../../Archive/Nsis/NsisRegister.cpp
+
+-RarHandler.o : ../../Archive/Rar/RarHandler.cpp
+- $(CXX) $(CXXFLAGS) ../../Archive/Rar/RarHandler.cpp
+-RarHeader.o : ../../Archive/Rar/RarHeader.cpp
+- $(CXX) $(CXXFLAGS) ../../Archive/Rar/RarHeader.cpp
+-RarIn.o : ../../Archive/Rar/RarIn.cpp
+- $(CXX) $(CXXFLAGS) ../../Archive/Rar/RarIn.cpp
+-RarItem.o : ../../Archive/Rar/RarItem.cpp
+- $(CXX) $(CXXFLAGS) ../../Archive/Rar/RarItem.cpp
+-RarVolumeInStream.o : ../../Archive/Rar/RarVolumeInStream.cpp
+- $(CXX) $(CXXFLAGS) ../../Archive/Rar/RarVolumeInStream.cpp
+-RarRegister.o : ../../Archive/Rar/RarRegister.cpp
+- $(CXX) $(CXXFLAGS) ../../Archive/Rar/RarRegister.cpp
+
+ UdfHandler.o : ../../Archive/Udf/UdfHandler.cpp
+ $(CXX) $(CXXFLAGS) ../../Archive/Udf/UdfHandler.cpp
+@@ -535,10 +523,6 @@
+ $(CXX) $(CXXFLAGS) ../../Crypto/7zAesRegister.cpp
+ WzAes.o : ../../Crypto/WzAes.cpp
+ $(CXX) $(CXXFLAGS) ../../Crypto/WzAes.cpp
+-Rar20Crypto.o : ../../Crypto/Rar20Crypto.cpp
+- $(CXX) $(CXXFLAGS) ../../Crypto/Rar20Crypto.cpp
+-RarAes.o : ../../Crypto/RarAes.cpp
+- $(CXX) $(CXXFLAGS) ../../Crypto/RarAes.cpp
+ HmacSha1.o : ../../Crypto/HmacSha1.cpp
+ $(CXX) $(CXXFLAGS) ../../Crypto/HmacSha1.cpp
+ Pbkdf2HmacSha1.o : ../../Crypto/Pbkdf2HmacSha1.cpp
diff --git a/libre/p7zip-libre/p7zip-libre.patch b/libre/p7zip-libre/p7zip-libre.patch
deleted file mode 100644
index 742faf52d..000000000
--- a/libre/p7zip-libre/p7zip-libre.patch
+++ /dev/null
@@ -1,6540 +0,0 @@
-diff -ruNa p7zip_9.20.1/CPP/7zip/Archive/Rar/RarHandler.cpp p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarHandler.cpp
---- p7zip_9.20.1/CPP/7zip/Archive/Rar/RarHandler.cpp 2011-01-08 06:41:37.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarHandler.cpp 1969-12-31 21:00:00.000000000 -0300
-@@ -1,869 +0,0 @@
--// RarHandler.cpp
--
--#include "StdAfx.h"
--
--#include "Common/ComTry.h"
--#include "Common/IntToString.h"
--#include "Common/StringConvert.h"
--
--#include "Windows/PropVariant.h"
--#include "Windows/PropVariantUtils.h"
--#include "Windows/Time.h"
--
--#include "../../IPassword.h"
--
--#include "../../Common/CreateCoder.h"
--#include "../../Common/FilterCoder.h"
--#include "../../Common/MethodId.h"
--#include "../../Common/ProgressUtils.h"
--
--#include "../../Compress/CopyCoder.h"
--
--#include "../../Crypto/Rar20Crypto.h"
--#include "../../Crypto/RarAes.h"
--
--#include "../Common/ItemNameUtils.h"
--#include "../Common/OutStreamWithCRC.h"
--
--#include "RarHandler.h"
--
--using namespace NWindows;
--using namespace NTime;
--
--namespace NArchive {
--namespace NRar {
--
--static const wchar_t *kHostOS[] =
--{
-- L"MS DOS",
-- L"OS/2",
-- L"Win32",
-- L"Unix",
-- L"Mac OS",
-- L"BeOS"
--};
--
--static const int kNumHostOSes = sizeof(kHostOS) / sizeof(kHostOS[0]);
--
--static const wchar_t *kUnknownOS = L"Unknown";
--
--static const CUInt32PCharPair k_Flags[] =
--{
-- { 0, "Volume" },
-- { 1, "Comment" },
-- { 2, "Lock" },
-- { 3, "Solid" },
-- { 4, "NewVolName" }, // pack_comment in old versuons
-- { 5, "Authenticity" },
-- { 6, "Recovery" },
-- { 7, "BlockEncryption" },
-- { 8, "FirstVolume" },
-- { 9, "EncryptVer" }
--};
--
--static const STATPROPSTG kProps[] =
--{
-- { NULL, kpidPath, VT_BSTR},
-- { NULL, kpidIsDir, VT_BOOL},
-- { NULL, kpidSize, VT_UI8},
-- { NULL, kpidPackSize, VT_UI8},
-- { NULL, kpidMTime, VT_FILETIME},
-- { NULL, kpidCTime, VT_FILETIME},
-- { NULL, kpidATime, VT_FILETIME},
-- { NULL, kpidAttrib, VT_UI4},
--
-- { NULL, kpidEncrypted, VT_BOOL},
-- { NULL, kpidSolid, VT_BOOL},
-- { NULL, kpidCommented, VT_BOOL},
-- { NULL, kpidSplitBefore, VT_BOOL},
-- { NULL, kpidSplitAfter, VT_BOOL},
-- { NULL, kpidCRC, VT_UI4},
-- { NULL, kpidHostOS, VT_BSTR},
-- { NULL, kpidMethod, VT_BSTR},
-- { NULL, kpidUnpackVer, VT_UI1}
--};
--
--static const STATPROPSTG kArcProps[] =
--{
-- { NULL, kpidCharacts, VT_BSTR},
-- { NULL, kpidSolid, VT_BOOL},
-- { NULL, kpidNumBlocks, VT_UI4},
-- // { NULL, kpidEncrypted, VT_BOOL},
-- { NULL, kpidIsVolume, VT_BOOL},
-- { NULL, kpidNumVolumes, VT_UI4},
-- { NULL, kpidPhySize, VT_UI8}
-- // { NULL, kpidCommented, VT_BOOL}
--};
--
--IMP_IInArchive_Props
--IMP_IInArchive_ArcProps
--
--UInt64 CHandler::GetPackSize(int refIndex) const
--{
-- const CRefItem &refItem = _refItems[refIndex];
-- UInt64 totalPackSize = 0;
-- for (int i = 0; i < refItem.NumItems; i++)
-- totalPackSize += _items[refItem.ItemIndex + i].PackSize;
-- return totalPackSize;
--}
--
--STDMETHODIMP CHandler::GetArchiveProperty(PROPID propID, PROPVARIANT *value)
--{
-- COM_TRY_BEGIN
-- NWindows::NCOM::CPropVariant prop;
-- switch(propID)
-- {
-- case kpidSolid: prop = _archiveInfo.IsSolid(); break;
-- case kpidCharacts: FLAGS_TO_PROP(k_Flags, _archiveInfo.Flags, prop); break;
-- // case kpidEncrypted: prop = _archiveInfo.IsEncrypted(); break; // it's for encrypted names.
-- case kpidIsVolume: prop = _archiveInfo.IsVolume(); break;
-- case kpidNumVolumes: prop = (UInt32)_archives.Size(); break;
-- case kpidOffset: if (_archiveInfo.StartPosition != 0) prop = _archiveInfo.StartPosition; break;
-- // case kpidCommented: prop = _archiveInfo.IsCommented(); break;
-- case kpidNumBlocks:
-- {
-- UInt32 numBlocks = 0;
-- for (int i = 0; i < _refItems.Size(); i++)
-- if (!IsSolid(i))
-- numBlocks++;
-- prop = (UInt32)numBlocks;
-- break;
-- }
-- case kpidError: if (!_errorMessage.IsEmpty()) prop = _errorMessage; break;
-- }
-- prop.Detach(value);
-- return S_OK;
-- COM_TRY_END
--}
--
--STDMETHODIMP CHandler::GetNumberOfItems(UInt32 *numItems)
--{
-- *numItems = _refItems.Size();
-- return S_OK;
--}
--
--static bool RarTimeToFileTime(const CRarTime &rarTime, FILETIME &result)
--{
-- if (!DosTimeToFileTime(rarTime.DosTime, result))
-- return false;
-- UInt64 value = (((UInt64)result.dwHighDateTime) << 32) + result.dwLowDateTime;
-- value += (UInt64)rarTime.LowSecond * 10000000;
-- value += ((UInt64)rarTime.SubTime[2] << 16) +
-- ((UInt64)rarTime.SubTime[1] << 8) +
-- ((UInt64)rarTime.SubTime[0]);
-- result.dwLowDateTime = (DWORD)value;
-- result.dwHighDateTime = DWORD(value >> 32);
-- return true;
--}
--
--static void RarTimeToProp(const CRarTime &rarTime, NWindows::NCOM::CPropVariant &prop)
--{
-- FILETIME localFileTime, utcFileTime;
-- if (RarTimeToFileTime(rarTime, localFileTime))
-- {
-- if (!LocalFileTimeToFileTime(&localFileTime, &utcFileTime))
-- utcFileTime.dwHighDateTime = utcFileTime.dwLowDateTime = 0;
-- }
-- else
-- utcFileTime.dwHighDateTime = utcFileTime.dwLowDateTime = 0;
-- prop = utcFileTime;
--}
--
--STDMETHODIMP CHandler::GetProperty(UInt32 index, PROPID propID, PROPVARIANT *value)
--{
-- COM_TRY_BEGIN
-- NWindows::NCOM::CPropVariant prop;
-- const CRefItem &refItem = _refItems[index];
-- const CItemEx &item = _items[refItem.ItemIndex];
-- switch(propID)
-- {
-- case kpidPath:
-- {
-- UString u;
-- if (item.HasUnicodeName() && !item.UnicodeName.IsEmpty())
-- u = item.UnicodeName;
-- else
-- u = MultiByteToUnicodeString(item.Name, CP_OEMCP);
-- prop = (const wchar_t *)NItemName::WinNameToOSName(u);
-- break;
-- }
-- case kpidIsDir: prop = item.IsDir(); break;
-- case kpidSize: prop = item.Size; break;
-- case kpidPackSize: prop = GetPackSize(index); break;
-- case kpidMTime: RarTimeToProp(item.MTime, prop); break;
-- case kpidCTime: if (item.CTimeDefined) RarTimeToProp(item.CTime, prop); break;
-- case kpidATime: if (item.ATimeDefined) RarTimeToProp(item.ATime, prop); break;
-- case kpidAttrib: prop = item.GetWinAttributes(); break;
-- case kpidEncrypted: prop = item.IsEncrypted(); break;
-- case kpidSolid: prop = IsSolid(index); break;
-- case kpidCommented: prop = item.IsCommented(); break;
-- case kpidSplitBefore: prop = item.IsSplitBefore(); break;
-- case kpidSplitAfter: prop = _items[refItem.ItemIndex + refItem.NumItems - 1].IsSplitAfter(); break;
-- case kpidCRC:
-- {
-- const CItemEx &lastItem = _items[refItem.ItemIndex + refItem.NumItems - 1];
-- prop = ((lastItem.IsSplitAfter()) ? item.FileCRC : lastItem.FileCRC);
-- break;
-- }
-- case kpidUnpackVer: prop = item.UnPackVersion; break;
-- case kpidMethod:
-- {
-- UString method;
-- if (item.Method >= Byte('0') && item.Method <= Byte('5'))
-- {
-- method = L"m";
-- wchar_t temp[32];
-- ConvertUInt64ToString(item.Method - Byte('0'), temp);
-- method += temp;
-- if (!item.IsDir())
-- {
-- method += L":";
-- ConvertUInt64ToString(16 + item.GetDictSize(), temp);
-- method += temp;
-- }
-- }
-- else
-- {
-- wchar_t temp[32];
-- ConvertUInt64ToString(item.Method, temp);
-- method += temp;
-- }
-- prop = method;
-- break;
-- }
-- case kpidHostOS: prop = (item.HostOS < kNumHostOSes) ? (kHostOS[item.HostOS]) : kUnknownOS; break;
-- }
-- prop.Detach(value);
-- return S_OK;
-- COM_TRY_END
--}
--
--class CVolumeName
--{
-- bool _first;
-- bool _newStyle;
-- UString _unchangedPart;
-- UString _changedPart;
-- UString _afterPart;
--public:
-- CVolumeName(): _newStyle(true) {};
--
-- bool InitName(const UString &name, bool newStyle)
-- {
-- _first = true;
-- _newStyle = newStyle;
-- int dotPos = name.ReverseFind('.');
-- UString basePart = name;
-- if (dotPos >= 0)
-- {
-- UString ext = name.Mid(dotPos + 1);
-- if (ext.CompareNoCase(L"rar") == 0)
-- {
-- _afterPart = name.Mid(dotPos);
-- basePart = name.Left(dotPos);
-- }
-- else if (ext.CompareNoCase(L"exe") == 0)
-- {
-- _afterPart = L".rar";
-- basePart = name.Left(dotPos);
-- }
-- else if (!_newStyle)
-- {
-- if (ext.CompareNoCase(L"000") == 0 ||
-- ext.CompareNoCase(L"001") == 0 ||
-- ext.CompareNoCase(L"r00") == 0 ||
-- ext.CompareNoCase(L"r01") == 0)
-- {
-- _afterPart.Empty();
-- _first = false;
-- _changedPart = ext;
-- _unchangedPart = name.Left(dotPos + 1);
-- return true;
-- }
-- }
-- }
--
-- if (!_newStyle)
-- {
-- _afterPart.Empty();
-- _unchangedPart = basePart + UString(L".");
-- _changedPart = L"r00";
-- return true;
-- }
--
-- int numLetters = 1;
-- if (basePart.Right(numLetters) == L"1" || basePart.Right(numLetters) == L"0")
-- {
-- while (numLetters < basePart.Length())
-- {
-- if (basePart[basePart.Length() - numLetters - 1] != '0')
-- break;
-- numLetters++;
-- }
-- }
-- else
-- return false;
-- _unchangedPart = basePart.Left(basePart.Length() - numLetters);
-- _changedPart = basePart.Right(numLetters);
-- return true;
-- }
--
-- UString GetNextName()
-- {
-- UString newName;
-- if (_newStyle || !_first)
-- {
-- int i;
-- int numLetters = _changedPart.Length();
-- for (i = numLetters - 1; i >= 0; i--)
-- {
-- wchar_t c = _changedPart[i];
-- if (c == L'9')
-- {
-- c = L'0';
-- newName = c + newName;
-- if (i == 0)
-- newName = UString(L'1') + newName;
-- continue;
-- }
-- c++;
-- newName = UString(c) + newName;
-- i--;
-- for (; i >= 0; i--)
-- newName = _changedPart[i] + newName;
-- break;
-- }
-- _changedPart = newName;
-- }
-- _first = false;
-- return _unchangedPart + _changedPart + _afterPart;
-- }
--};
--
--HRESULT CHandler::Open2(IInStream *stream,
-- const UInt64 *maxCheckStartPosition,
-- IArchiveOpenCallback *openCallback)
--{
-- {
-- CMyComPtr<IArchiveOpenVolumeCallback> openVolumeCallback;
-- CMyComPtr<ICryptoGetTextPassword> getTextPassword;
-- CMyComPtr<IArchiveOpenCallback> openArchiveCallbackWrap = openCallback;
--
-- CVolumeName seqName;
--
-- UInt64 totalBytes = 0;
-- UInt64 curBytes = 0;
--
-- if (openCallback)
-- {
-- openArchiveCallbackWrap.QueryInterface(IID_IArchiveOpenVolumeCallback, &openVolumeCallback);
-- openArchiveCallbackWrap.QueryInterface(IID_ICryptoGetTextPassword, &getTextPassword);
-- }
--
-- for (;;)
-- {
-- CMyComPtr<IInStream> inStream;
-- if (!_archives.IsEmpty())
-- {
-- if (!openVolumeCallback)
-- break;
--
-- if (_archives.Size() == 1)
-- {
-- if (!_archiveInfo.IsVolume())
-- break;
-- UString baseName;
-- {
-- NCOM::CPropVariant prop;
-- RINOK(openVolumeCallback->GetProperty(kpidName, &prop));
-- if (prop.vt != VT_BSTR)
-- break;
-- baseName = prop.bstrVal;
-- }
-- seqName.InitName(baseName, _archiveInfo.HaveNewVolumeName());
-- }
--
-- UString fullName = seqName.GetNextName();
-- HRESULT result = openVolumeCallback->GetStream(fullName, &inStream);
-- if (result == S_FALSE)
-- break;
-- if (result != S_OK)
-- return result;
-- if (!stream)
-- break;
-- }
-- else
-- inStream = stream;
--
-- UInt64 endPos = 0;
-- RINOK(stream->Seek(0, STREAM_SEEK_END, &endPos));
-- RINOK(stream->Seek(0, STREAM_SEEK_SET, NULL));
-- if (openCallback)
-- {
-- totalBytes += endPos;
-- RINOK(openCallback->SetTotal(NULL, &totalBytes));
-- }
--
-- NArchive::NRar::CInArchive archive;
-- RINOK(archive.Open(inStream, maxCheckStartPosition));
--
-- if (_archives.IsEmpty())
-- archive.GetArchiveInfo(_archiveInfo);
--
-- CItemEx item;
-- for (;;)
-- {
-- if (archive.m_Position > endPos)
-- {
-- AddErrorMessage("Unexpected end of archive");
-- break;
-- }
-- bool decryptionError;
-- AString errorMessageLoc;
-- HRESULT result = archive.GetNextItem(item, getTextPassword, decryptionError, errorMessageLoc);
-- if (errorMessageLoc)
-- AddErrorMessage(errorMessageLoc);
-- if (result == S_FALSE)
-- {
-- if (decryptionError && _items.IsEmpty())
-- return S_FALSE;
-- break;
-- }
-- RINOK(result);
-- if (item.IgnoreItem())
-- continue;
--
-- bool needAdd = true;
-- if (item.IsSplitBefore())
-- {
-- if (!_refItems.IsEmpty())
-- {
-- CRefItem &refItem = _refItems.Back();
-- refItem.NumItems++;
-- needAdd = false;
-- }
-- }
-- if (needAdd)
-- {
-- CRefItem refItem;
-- refItem.ItemIndex = _items.Size();
-- refItem.NumItems = 1;
-- refItem.VolumeIndex = _archives.Size();
-- _refItems.Add(refItem);
-- }
-- _items.Add(item);
-- if (openCallback && _items.Size() % 100 == 0)
-- {
-- UInt64 numFiles = _items.Size();
-- UInt64 numBytes = curBytes + item.Position;
-- RINOK(openCallback->SetCompleted(&numFiles, &numBytes));
-- }
-- }
-- curBytes += endPos;
-- _archives.Add(archive);
-- }
-- }
-- return S_OK;
--}
--
--STDMETHODIMP CHandler::Open(IInStream *stream,
-- const UInt64 *maxCheckStartPosition,
-- IArchiveOpenCallback *openCallback)
--{
-- COM_TRY_BEGIN
-- Close();
-- try
-- {
-- HRESULT res = Open2(stream, maxCheckStartPosition, openCallback);
-- if (res != S_OK)
-- Close();
-- return res;
-- }
-- catch(const CInArchiveException &) { Close(); return S_FALSE; }
-- catch(...) { Close(); throw; }
-- COM_TRY_END
--}
--
--STDMETHODIMP CHandler::Close()
--{
-- COM_TRY_BEGIN
-- _errorMessage.Empty();
-- _refItems.Clear();
-- _items.Clear();
-- _archives.Clear();
-- return S_OK;
-- COM_TRY_END
--}
--
--struct CMethodItem
--{
-- Byte RarUnPackVersion;
-- CMyComPtr<ICompressCoder> Coder;
--};
--
--
--STDMETHODIMP CHandler::Extract(const UInt32 *indices, UInt32 numItems,
-- Int32 testMode, IArchiveExtractCallback *extractCallback)
--{
-- COM_TRY_BEGIN
-- CMyComPtr<ICryptoGetTextPassword> getTextPassword;
-- UInt64 censoredTotalUnPacked = 0,
-- // censoredTotalPacked = 0,
-- importantTotalUnPacked = 0;
-- // importantTotalPacked = 0;
-- bool allFilesMode = (numItems == (UInt32)-1);
-- if (allFilesMode)
-- numItems = _refItems.Size();
-- if (numItems == 0)
-- return S_OK;
-- int lastIndex = 0;
-- CRecordVector<int> importantIndexes;
-- CRecordVector<bool> extractStatuses;
--
-- for (UInt32 t = 0; t < numItems; t++)
-- {
-- int index = allFilesMode ? t : indices[t];
-- const CRefItem &refItem = _refItems[index];
-- const CItemEx &item = _items[refItem.ItemIndex];
-- censoredTotalUnPacked += item.Size;
-- // censoredTotalPacked += item.PackSize;
-- int j;
-- for (j = lastIndex; j <= index; j++)
-- // if (!_items[_refItems[j].ItemIndex].IsSolid())
-- if (!IsSolid(j))
-- lastIndex = j;
-- for (j = lastIndex; j <= index; j++)
-- {
-- const CRefItem &refItem = _refItems[j];
-- const CItemEx &item = _items[refItem.ItemIndex];
--
-- // const CItemEx &item = _items[j];
--
-- importantTotalUnPacked += item.Size;
-- // importantTotalPacked += item.PackSize;
-- importantIndexes.Add(j);
-- extractStatuses.Add(j == index);
-- }
-- lastIndex = index + 1;
-- }
--
-- RINOK(extractCallback->SetTotal(importantTotalUnPacked));
-- UInt64 currentImportantTotalUnPacked = 0;
-- UInt64 currentImportantTotalPacked = 0;
-- UInt64 currentUnPackSize, currentPackSize;
--
-- CObjectVector<CMethodItem> methodItems;
--
-- NCompress::CCopyCoder *copyCoderSpec = new NCompress::CCopyCoder;
-- CMyComPtr<ICompressCoder> copyCoder = copyCoderSpec;
--
-- CFilterCoder *filterStreamSpec = new CFilterCoder;
-- CMyComPtr<ISequentialInStream> filterStream = filterStreamSpec;
--
-- NCrypto::NRar20::CDecoder *rar20CryptoDecoderSpec = NULL;
-- CMyComPtr<ICompressFilter> rar20CryptoDecoder;
-- NCrypto::NRar29::CDecoder *rar29CryptoDecoderSpec = NULL;
-- CMyComPtr<ICompressFilter> rar29CryptoDecoder;
--
-- CFolderInStream *folderInStreamSpec = NULL;
-- CMyComPtr<ISequentialInStream> folderInStream;
--
-- CLocalProgress *lps = new CLocalProgress;
-- CMyComPtr<ICompressProgressInfo> progress = lps;
-- lps->Init(extractCallback, false);
--
-- bool solidStart = true;
-- for (int i = 0; i < importantIndexes.Size(); i++,
-- currentImportantTotalUnPacked += currentUnPackSize,
-- currentImportantTotalPacked += currentPackSize)
-- {
-- lps->InSize = currentImportantTotalPacked;
-- lps->OutSize = currentImportantTotalUnPacked;
-- RINOK(lps->SetCur());
-- CMyComPtr<ISequentialOutStream> realOutStream;
--
-- Int32 askMode;
-- if (extractStatuses[i])
-- askMode = testMode ?
-- NExtract::NAskMode::kTest :
-- NExtract::NAskMode::kExtract;
-- else
-- askMode = NExtract::NAskMode::kSkip;
--
-- UInt32 index = importantIndexes[i];
--
-- const CRefItem &refItem = _refItems[index];
-- const CItemEx &item = _items[refItem.ItemIndex];
--
-- currentUnPackSize = item.Size;
--
-- currentPackSize = GetPackSize(index);
--
-- if (item.IgnoreItem())
-- continue;
--
-- RINOK(extractCallback->GetStream(index, &realOutStream, askMode));
--
-- if (!IsSolid(index))
-- solidStart = true;
-- if (item.IsDir())
-- {
-- RINOK(extractCallback->PrepareOperation(askMode));
-- RINOK(extractCallback->SetOperationResult(NExtract::NOperationResult::kOK));
-- continue;
-- }
--
-- bool mustBeProcessedAnywhere = false;
-- if (i < importantIndexes.Size() - 1)
-- {
-- // const CRefItem &nextRefItem = _refItems[importantIndexes[i + 1]];
-- // const CItemEx &nextItemInfo = _items[nextRefItem.ItemIndex];
-- // mustBeProcessedAnywhere = nextItemInfo.IsSolid();
-- mustBeProcessedAnywhere = IsSolid(importantIndexes[i + 1]);
-- }
--
-- if (!mustBeProcessedAnywhere && !testMode && !realOutStream)
-- continue;
--
-- if (!realOutStream && !testMode)
-- askMode = NExtract::NAskMode::kSkip;
--
-- RINOK(extractCallback->PrepareOperation(askMode));
--
-- COutStreamWithCRC *outStreamSpec = new COutStreamWithCRC;
-- CMyComPtr<ISequentialOutStream> outStream(outStreamSpec);
-- outStreamSpec->SetStream(realOutStream);
-- outStreamSpec->Init();
-- realOutStream.Release();
--
-- /*
-- for (int partIndex = 0; partIndex < 1; partIndex++)
-- {
-- CMyComPtr<ISequentialInStream> inStream;
--
-- // item redefinition
-- const CItemEx &item = _items[refItem.ItemIndex + partIndex];
--
-- NArchive::NRar::CInArchive &archive = _archives[refItem.VolumeIndex + partIndex];
--
-- inStream.Attach(archive.CreateLimitedStream(item.GetDataPosition(),
-- item.PackSize));
-- */
-- if (!folderInStream)
-- {
-- folderInStreamSpec = new CFolderInStream;
-- folderInStream = folderInStreamSpec;
-- }
--
-- folderInStreamSpec->Init(&_archives, &_items, refItem);
--
-- UInt64 packSize = currentPackSize;
--
-- // packedPos += item.PackSize;
-- // unpackedPos += 0;
--
-- CMyComPtr<ISequentialInStream> inStream;
-- if (item.IsEncrypted())
-- {
-- CMyComPtr<ICryptoSetPassword> cryptoSetPassword;
-- if (item.UnPackVersion >= 29)
-- {
-- if (!rar29CryptoDecoder)
-- {
-- rar29CryptoDecoderSpec = new NCrypto::NRar29::CDecoder;
-- rar29CryptoDecoder = rar29CryptoDecoderSpec;
-- // RINOK(rar29CryptoDecoder.CoCreateInstance(CLSID_CCryptoRar29Decoder));
-- }
-- rar29CryptoDecoderSpec->SetRar350Mode(item.UnPackVersion < 36);
-- CMyComPtr<ICompressSetDecoderProperties2> cryptoProperties;
-- RINOK(rar29CryptoDecoder.QueryInterface(IID_ICompressSetDecoderProperties2,
-- &cryptoProperties));
-- RINOK(cryptoProperties->SetDecoderProperties2(item.Salt, item.HasSalt() ? sizeof(item.Salt) : 0));
-- filterStreamSpec->Filter = rar29CryptoDecoder;
-- }
-- else if (item.UnPackVersion >= 20)
-- {
-- if (!rar20CryptoDecoder)
-- {
-- rar20CryptoDecoderSpec = new NCrypto::NRar20::CDecoder;
-- rar20CryptoDecoder = rar20CryptoDecoderSpec;
-- // RINOK(rar20CryptoDecoder.CoCreateInstance(CLSID_CCryptoRar20Decoder));
-- }
-- filterStreamSpec->Filter = rar20CryptoDecoder;
-- }
-- else
-- {
-- outStream.Release();
-- RINOK(extractCallback->SetOperationResult(NExtract::NOperationResult::kUnSupportedMethod));
-- continue;
-- }
-- RINOK(filterStreamSpec->Filter.QueryInterface(IID_ICryptoSetPassword,
-- &cryptoSetPassword));
--
-- if (!getTextPassword)
-- extractCallback->QueryInterface(IID_ICryptoGetTextPassword, (void **)&getTextPassword);
-- if (getTextPassword)
-- {
-- CMyComBSTR password;
-- RINOK(getTextPassword->CryptoGetTextPassword(&password));
-- if (item.UnPackVersion >= 29)
-- {
-- CByteBuffer buffer;
-- UString unicodePassword(password);
-- const UInt32 sizeInBytes = unicodePassword.Length() * 2;
-- buffer.SetCapacity(sizeInBytes);
-- for (int i = 0; i < unicodePassword.Length(); i++)
-- {
-- wchar_t c = unicodePassword[i];
-- ((Byte *)buffer)[i * 2] = (Byte)c;
-- ((Byte *)buffer)[i * 2 + 1] = (Byte)(c >> 8);
-- }
-- RINOK(cryptoSetPassword->CryptoSetPassword(
-- (const Byte *)buffer, sizeInBytes));
-- }
-- else
-- {
-- AString oemPassword = UnicodeStringToMultiByte(
-- (const wchar_t *)password, CP_OEMCP);
-- RINOK(cryptoSetPassword->CryptoSetPassword(
-- (const Byte *)(const char *)oemPassword, oemPassword.Length()));
-- }
-- }
-- else
-- {
-- RINOK(cryptoSetPassword->CryptoSetPassword(0, 0));
-- }
-- filterStreamSpec->SetInStream(folderInStream);
-- inStream = filterStream;
-- }
-- else
-- {
-- inStream = folderInStream;
-- }
-- CMyComPtr<ICompressCoder> commonCoder;
-- switch(item.Method)
-- {
-- case '0':
-- {
-- commonCoder = copyCoder;
-- break;
-- }
-- case '1':
-- case '2':
-- case '3':
-- case '4':
-- case '5':
-- {
-- /*
-- if (item.UnPackVersion >= 29)
-- {
-- outStream.Release();
-- RINOK(extractCallback->SetOperationResult(NExtract::NOperationResult::kUnSupportedMethod));
-- continue;
-- }
-- */
-- int m;
-- for (m = 0; m < methodItems.Size(); m++)
-- if (methodItems[m].RarUnPackVersion == item.UnPackVersion)
-- break;
-- if (m == methodItems.Size())
-- {
-- CMethodItem mi;
-- mi.RarUnPackVersion = item.UnPackVersion;
--
-- mi.Coder.Release();
-- if (item.UnPackVersion <= 30)
-- {
-- UInt32 methodID = 0x040300;
-- if (item.UnPackVersion < 20)
-- methodID += 1;
-- else if (item.UnPackVersion < 29)
-- methodID += 2;
-- else
-- methodID += 3;
-- RINOK(CreateCoder(EXTERNAL_CODECS_VARS methodID, mi.Coder, false));
-- }
--
-- if (mi.Coder == 0)
-- {
-- outStream.Release();
-- RINOK(extractCallback->SetOperationResult(NExtract::NOperationResult::kUnSupportedMethod));
-- continue;
-- }
--
-- m = methodItems.Add(mi);
-- }
-- CMyComPtr<ICompressCoder> decoder = methodItems[m].Coder;
--
-- CMyComPtr<ICompressSetDecoderProperties2> compressSetDecoderProperties;
-- RINOK(decoder.QueryInterface(IID_ICompressSetDecoderProperties2,
-- &compressSetDecoderProperties));
--
-- Byte isSolid = (Byte)((IsSolid(index) || item.IsSplitBefore()) ? 1: 0);
-- if (solidStart)
-- {
-- isSolid = false;
-- solidStart = false;
-- }
--
--
-- RINOK(compressSetDecoderProperties->SetDecoderProperties2(&isSolid, 1));
--
-- commonCoder = decoder;
-- break;
-- }
-- default:
-- outStream.Release();
-- RINOK(extractCallback->SetOperationResult(NExtract::NOperationResult::kUnSupportedMethod));
-- continue;
-- }
-- HRESULT result = commonCoder->Code(inStream, outStream, &packSize, &item.Size, progress);
-- if (item.IsEncrypted())
-- filterStreamSpec->ReleaseInStream();
-- if (result == S_FALSE)
-- {
-- outStream.Release();
-- RINOK(extractCallback->SetOperationResult(NExtract::NOperationResult::kDataError));
-- continue;
-- }
-- if (result != S_OK)
-- return result;
--
-- /*
-- if (refItem.NumItems == 1 &&
-- !item.IsSplitBefore() && !item.IsSplitAfter())
-- */
-- {
-- const CItemEx &lastItem = _items[refItem.ItemIndex + refItem.NumItems - 1];
-- bool crcOK = outStreamSpec->GetCRC() == lastItem.FileCRC;
-- outStream.Release();
-- RINOK(extractCallback->SetOperationResult(crcOK ?
-- NExtract::NOperationResult::kOK:
-- NExtract::NOperationResult::kCRCError));
-- }
-- /*
-- else
-- {
-- bool crcOK = true;
-- for (int partIndex = 0; partIndex < refItem.NumItems; partIndex++)
-- {
-- const CItemEx &item = _items[refItem.ItemIndex + partIndex];
-- if (item.FileCRC != folderInStreamSpec->CRCs[partIndex])
-- {
-- crcOK = false;
-- break;
-- }
-- }
-- RINOK(extractCallback->SetOperationResult(crcOK ?
-- NExtract::NOperationResult::kOK:
-- NExtract::NOperationResult::kCRCError));
-- }
-- */
-- }
-- return S_OK;
-- COM_TRY_END
--}
--
--IMPL_ISetCompressCodecsInfo
--
--}}
-diff -ruNa p7zip_9.20.1/CPP/7zip/Archive/Rar/RarHandler.h p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarHandler.h
---- p7zip_9.20.1/CPP/7zip/Archive/Rar/RarHandler.h 2011-01-08 06:41:27.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarHandler.h 1969-12-31 21:00:00.000000000 -0300
-@@ -1,66 +0,0 @@
--// Rar/Handler.h
--
--#ifndef __RAR_HANDLER_H
--#define __RAR_HANDLER_H
--
--#include "../IArchive.h"
--
--#include "../../Common/CreateCoder.h"
--
--#include "RarIn.h"
--#include "RarVolumeInStream.h"
--
--namespace NArchive {
--namespace NRar {
--
--class CHandler:
-- public IInArchive,
-- PUBLIC_ISetCompressCodecsInfo
-- public CMyUnknownImp
--{
-- CRecordVector<CRefItem> _refItems;
-- CObjectVector<CItemEx> _items;
-- CObjectVector<CInArchive> _archives;
-- NArchive::NRar::CInArchiveInfo _archiveInfo;
-- AString _errorMessage;
--
-- DECL_EXTERNAL_CODECS_VARS
--
-- UInt64 GetPackSize(int refIndex) const;
--
-- bool IsSolid(int refIndex)
-- {
-- const CItemEx &item = _items[_refItems[refIndex].ItemIndex];
-- if (item.UnPackVersion < 20)
-- {
-- if (_archiveInfo.IsSolid())
-- return (refIndex > 0);
-- return false;
-- }
-- return item.IsSolid();
-- }
-- void AddErrorMessage(const AString &s)
-- {
-- if (!_errorMessage.IsEmpty())
-- _errorMessage += '\n';
-- _errorMessage += s;
-- }
--
-- HRESULT Open2(IInStream *stream,
-- const UInt64 *maxCheckStartPosition,
-- IArchiveOpenCallback *openCallback);
--
--public:
-- MY_QUERYINTERFACE_BEGIN2(IInArchive)
-- QUERY_ENTRY_ISetCompressCodecsInfo
-- MY_QUERYINTERFACE_END
-- MY_ADDREF_RELEASE
--
-- INTERFACE_IInArchive(;)
--
-- DECL_ISetCompressCodecsInfo
--};
--
--}}
--
--#endif
-diff -ruNa p7zip_9.20.1/CPP/7zip/Archive/Rar/RarHeader.cpp p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarHeader.cpp
---- p7zip_9.20.1/CPP/7zip/Archive/Rar/RarHeader.cpp 2008-08-14 06:11:25.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarHeader.cpp 1969-12-31 21:00:00.000000000 -0300
-@@ -1,21 +0,0 @@
--// Archive/Rar/Headers.cpp
--
--#include "StdAfx.h"
--
--#include "RarHeader.h"
--
--namespace NArchive{
--namespace NRar{
--namespace NHeader{
--
--Byte kMarker[kMarkerSize] = {0x52 + 1, 0x61, 0x72, 0x21, 0x1a, 0x07, 0x00};
--
--class CMarkerInitializer
--{
--public:
-- CMarkerInitializer() { kMarker[0]--; };
--};
--
--static CMarkerInitializer markerInitializer;
--
--}}}
-diff -ruNa p7zip_9.20.1/CPP/7zip/Archive/Rar/RarHeader.h p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarHeader.h
---- p7zip_9.20.1/CPP/7zip/Archive/Rar/RarHeader.h 2011-01-08 06:41:27.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarHeader.h 1969-12-31 21:00:00.000000000 -0300
-@@ -1,205 +0,0 @@
--// Archive/RarHeader.h
--
--#ifndef __ARCHIVE_RAR_HEADER_H
--#define __ARCHIVE_RAR_HEADER_H
--
--#include "Common/Types.h"
--
--namespace NArchive {
--namespace NRar {
--namespace NHeader {
--
--const int kMarkerSize = 7;
--extern Byte kMarker[kMarkerSize];
--
--const int kArchiveSolid = 0x1;
--
--namespace NBlockType
--{
-- enum EBlockType
-- {
-- kMarker = 0x72,
-- kArchiveHeader,
-- kFileHeader,
-- kCommentHeader,
-- kOldAuthenticity,
-- kOldSubBlock,
-- kRecoveryRecord,
-- kAuthenticity,
-- kSubBlock,
-- kEndOfArchive
-- };
--}
--
--namespace NArchive
--{
-- const UInt16 kVolume = 1;
-- const UInt16 kComment = 2;
-- const UInt16 kLock = 4;
-- const UInt16 kSolid = 8;
-- const UInt16 kNewVolName = 0x10; // ('volname.partN.rar')
-- const UInt16 kAuthenticity = 0x20;
-- const UInt16 kRecovery = 0x40;
-- const UInt16 kBlockEncryption = 0x80;
-- const UInt16 kFirstVolume = 0x100; // (set only by RAR 3.0 and later)
-- const UInt16 kEncryptVer = 0x200; // RAR 3.6 there is EncryptVer Byte in End of MainHeader
--
-- const int kHeaderSizeMin = 7;
--
-- const int kArchiveHeaderSize = 13;
--
-- const int kBlockHeadersAreEncrypted = 0x80;
--
--}
--
--namespace NFile
--{
-- const int kSplitBefore = 1 << 0;
-- const int kSplitAfter = 1 << 1;
-- const int kEncrypted = 1 << 2;
-- const int kComment = 1 << 3;
-- const int kSolid = 1 << 4;
--
-- const int kDictBitStart = 5;
-- const int kNumDictBits = 3;
-- const int kDictMask = (1 << kNumDictBits) - 1;
-- const int kDictDirectoryValue = 0x7;
--
-- const int kSize64Bits = 1 << 8;
-- const int kUnicodeName = 1 << 9;
-- const int kSalt = 1 << 10;
-- const int kOldVersion = 1 << 11;
-- const int kExtTime = 1 << 12;
-- // const int kExtFlags = 1 << 13;
-- // const int kSkipIfUnknown = 1 << 14;
--
-- const int kLongBlock = 1 << 15;
--
-- /*
-- struct CBlock
-- {
-- // UInt16 HeadCRC;
-- // Byte Type;
-- // UInt16 Flags;
-- // UInt16 HeadSize;
-- UInt32 PackSize;
-- UInt32 UnPackSize;
-- Byte HostOS;
-- UInt32 FileCRC;
-- UInt32 Time;
-- Byte UnPackVersion;
-- Byte Method;
-- UInt16 NameSize;
-- UInt32 Attributes;
-- };
-- */
--
-- /*
-- struct CBlock32
-- {
-- UInt16 HeadCRC;
-- Byte Type;
-- UInt16 Flags;
-- UInt16 HeadSize;
-- UInt32 PackSize;
-- UInt32 UnPackSize;
-- Byte HostOS;
-- UInt32 FileCRC;
-- UInt32 Time;
-- Byte UnPackVersion;
-- Byte Method;
-- UInt16 NameSize;
-- UInt32 Attributes;
-- UInt16 GetRealCRC(const void *aName, UInt32 aNameSize,
-- bool anExtraDataDefined = false, Byte *anExtraData = 0) const;
-- };
-- struct CBlock64
-- {
-- UInt16 HeadCRC;
-- Byte Type;
-- UInt16 Flags;
-- UInt16 HeadSize;
-- UInt32 PackSizeLow;
-- UInt32 UnPackSizeLow;
-- Byte HostOS;
-- UInt32 FileCRC;
-- UInt32 Time;
-- Byte UnPackVersion;
-- Byte Method;
-- UInt16 NameSize;
-- UInt32 Attributes;
-- UInt32 PackSizeHigh;
-- UInt32 UnPackSizeHigh;
-- UInt16 GetRealCRC(const void *aName, UInt32 aNameSize) const;
-- };
-- */
--
-- const int kLabelFileAttribute = 0x08;
-- const int kWinFileDirectoryAttributeMask = 0x10;
--
-- enum CHostOS
-- {
-- kHostMSDOS = 0,
-- kHostOS2 = 1,
-- kHostWin32 = 2,
-- kHostUnix = 3,
-- kHostMacOS = 4,
-- kHostBeOS = 5
-- };
--}
--
--namespace NBlock
--{
-- const UInt16 kLongBlock = 1 << 15;
-- struct CBlock
-- {
-- UInt16 CRC;
-- Byte Type;
-- UInt16 Flags;
-- UInt16 HeadSize;
-- // UInt32 DataSize;
-- };
--}
--
--/*
--struct CSubBlock
--{
-- UInt16 HeadCRC;
-- Byte HeadType;
-- UInt16 Flags;
-- UInt16 HeadSize;
-- UInt32 DataSize;
-- UInt16 SubType;
-- Byte Level; // Reserved : Must be 0
--};
--
--struct CCommentBlock
--{
-- UInt16 HeadCRC;
-- Byte HeadType;
-- UInt16 Flags;
-- UInt16 HeadSize;
-- UInt16 UnpSize;
-- Byte UnpVer;
-- Byte Method;
-- UInt16 CommCRC;
--};
--
--
--struct CProtectHeader
--{
-- UInt16 HeadCRC;
-- Byte HeadType;
-- UInt16 Flags;
-- UInt16 HeadSize;
-- UInt32 DataSize;
-- Byte Version;
-- UInt16 RecSectors;
-- UInt32 TotalBlocks;
-- Byte Mark[8];
--};
--*/
--
--}}}
--
--#endif
-diff -ruNa p7zip_9.20.1/CPP/7zip/Archive/Rar/RarIn.cpp p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarIn.cpp
---- p7zip_9.20.1/CPP/7zip/Archive/Rar/RarIn.cpp 2011-01-08 06:41:37.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarIn.cpp 1969-12-31 21:00:00.000000000 -0300
-@@ -1,478 +0,0 @@
--// Archive/RarIn.cpp
--
--#include "StdAfx.h"
--
--#include "../../../../C/7zCrc.h"
--#include "../../../../C/CpuArch.h"
--
--#include "Common/StringConvert.h"
--#include "Common/UTFConvert.h"
--
--#include "../../Common/LimitedStreams.h"
--#include "../../Common/StreamUtils.h"
--
--#include "../Common/FindSignature.h"
--
--#include "RarIn.h"
--
--#define Get16(p) GetUi16(p)
--#define Get32(p) GetUi32(p)
--#define Get64(p) GetUi64(p)
--
--namespace NArchive {
--namespace NRar {
--
--static const char *k_UnexpectedEnd = "Unexpected end of archive";
--static const char *k_DecryptionError = "Decryption Error";
--
--void CInArchive::ThrowExceptionWithCode(
-- CInArchiveException::CCauseType cause)
--{
-- throw CInArchiveException(cause);
--}
--
--HRESULT CInArchive::Open(IInStream *inStream, const UInt64 *searchHeaderSizeLimit)
--{
-- try
-- {
-- Close();
-- HRESULT res = Open2(inStream, searchHeaderSizeLimit);
-- if (res == S_OK)
-- return res;
-- Close();
-- return res;
-- }
-- catch(...) { Close(); throw; }
--}
--
--void CInArchive::Close()
--{
-- m_Stream.Release();
--}
--
--HRESULT CInArchive::ReadBytesSpec(void *data, size_t *resSize)
--{
-- if (m_CryptoMode)
-- {
-- size_t size = *resSize;
-- *resSize = 0;
-- const Byte *bufData = m_DecryptedDataAligned;
-- UInt32 bufSize = m_DecryptedDataSize;
-- size_t i;
-- for (i = 0; i < size && m_CryptoPos < bufSize; i++)
-- ((Byte *)data)[i] = bufData[m_CryptoPos++];
-- *resSize = i;
-- return S_OK;
-- }
-- return ReadStream(m_Stream, data, resSize);
--}
--
--bool CInArchive::ReadBytesAndTestSize(void *data, UInt32 size)
--{
-- size_t processed = size;
-- if (ReadBytesSpec(data, &processed) != S_OK)
-- return false;
-- return processed == size;
--}
--
--HRESULT CInArchive::Open2(IInStream *stream, const UInt64 *searchHeaderSizeLimit)
--{
-- m_CryptoMode = false;
-- RINOK(stream->Seek(0, STREAM_SEEK_SET, &m_StreamStartPosition));
-- m_Position = m_StreamStartPosition;
--
-- UInt64 arcStartPos;
-- RINOK(FindSignatureInStream(stream, NHeader::kMarker, NHeader::kMarkerSize,
-- searchHeaderSizeLimit, arcStartPos));
-- m_Position = arcStartPos + NHeader::kMarkerSize;
-- RINOK(stream->Seek(m_Position, STREAM_SEEK_SET, NULL));
-- Byte buf[NHeader::NArchive::kArchiveHeaderSize + 1];
--
-- RINOK(ReadStream_FALSE(stream, buf, NHeader::NArchive::kArchiveHeaderSize));
-- AddToSeekValue(NHeader::NArchive::kArchiveHeaderSize);
--
--
-- UInt32 blockSize = Get16(buf + 5);
--
-- _header.EncryptVersion = 0;
-- _header.Flags = Get16(buf + 3);
--
-- UInt32 headerSize = NHeader::NArchive::kArchiveHeaderSize;
-- if (_header.IsThereEncryptVer())
-- {
-- if (blockSize <= headerSize)
-- return S_FALSE;
-- RINOK(ReadStream_FALSE(stream, buf + NHeader::NArchive::kArchiveHeaderSize, 1));
-- AddToSeekValue(1);
-- _header.EncryptVersion = buf[NHeader::NArchive::kArchiveHeaderSize];
-- headerSize += 1;
-- }
-- if (blockSize < headerSize ||
-- buf[2] != NHeader::NBlockType::kArchiveHeader ||
-- (UInt32)Get16(buf) != (CrcCalc(buf + 2, headerSize - 2) & 0xFFFF))
-- return S_FALSE;
--
-- size_t commentSize = blockSize - headerSize;
-- _comment.SetCapacity(commentSize);
-- RINOK(ReadStream_FALSE(stream, _comment, commentSize));
-- AddToSeekValue(commentSize);
-- m_Stream = stream;
-- _header.StartPosition = arcStartPos;
-- return S_OK;
--}
--
--void CInArchive::GetArchiveInfo(CInArchiveInfo &archiveInfo) const
--{
-- archiveInfo = _header;
--}
--
--static void DecodeUnicodeFileName(const char *name, const Byte *encName,
-- int encSize, wchar_t *unicodeName, int maxDecSize)
--{
-- int encPos = 0;
-- int decPos = 0;
-- int flagBits = 0;
-- Byte flags = 0;
-- Byte highByte = encName[encPos++];
-- while (encPos < encSize && decPos < maxDecSize)
-- {
-- if (flagBits == 0)
-- {
-- flags = encName[encPos++];
-- flagBits = 8;
-- }
-- switch(flags >> 6)
-- {
-- case 0:
-- unicodeName[decPos++] = encName[encPos++];
-- break;
-- case 1:
-- unicodeName[decPos++] = (wchar_t)(encName[encPos++] + (highByte << 8));
-- break;
-- case 2:
-- unicodeName[decPos++] = (wchar_t)(encName[encPos] + (encName[encPos + 1] << 8));
-- encPos += 2;
-- break;
-- case 3:
-- {
-- int length = encName[encPos++];
-- if (length & 0x80)
-- {
-- Byte correction = encName[encPos++];
-- for (length = (length & 0x7f) + 2;
-- length > 0 && decPos < maxDecSize; length--, decPos++)
-- unicodeName[decPos] = (wchar_t)(((name[decPos] + correction) & 0xff) + (highByte << 8));
-- }
-- else
-- for (length += 2; length > 0 && decPos < maxDecSize; length--, decPos++)
-- unicodeName[decPos] = name[decPos];
-- }
-- break;
-- }
-- flags <<= 2;
-- flagBits -= 2;
-- }
-- unicodeName[decPos < maxDecSize ? decPos : maxDecSize - 1] = 0;
--}
--
--void CInArchive::ReadName(CItemEx &item, int nameSize)
--{
-- item.UnicodeName.Empty();
-- if (nameSize > 0)
-- {
-- m_NameBuffer.EnsureCapacity(nameSize + 1);
-- char *buffer = (char *)m_NameBuffer;
--
-- for (int i = 0; i < nameSize; i++)
-- buffer[i] = ReadByte();
--
-- int mainLen;
-- for (mainLen = 0; mainLen < nameSize; mainLen++)
-- if (buffer[mainLen] == '\0')
-- break;
-- buffer[mainLen] = '\0';
-- item.Name = buffer;
--
-- if(item.HasUnicodeName())
-- {
-- if(mainLen < nameSize)
-- {
-- int unicodeNameSizeMax = MyMin(nameSize, (0x400));
-- _unicodeNameBuffer.EnsureCapacity(unicodeNameSizeMax + 1);
-- DecodeUnicodeFileName(buffer, (const Byte *)buffer + mainLen + 1,
-- nameSize - (mainLen + 1), _unicodeNameBuffer, unicodeNameSizeMax);
-- item.UnicodeName = _unicodeNameBuffer;
-- }
-- else if (!ConvertUTF8ToUnicode(item.Name, item.UnicodeName))
-- item.UnicodeName.Empty();
-- }
-- }
-- else
-- item.Name.Empty();
--}
--
--Byte CInArchive::ReadByte()
--{
-- if (m_CurPos >= m_PosLimit)
-- throw CInArchiveException(CInArchiveException::kIncorrectArchive);
-- return m_CurData[m_CurPos++];
--}
--
--UInt16 CInArchive::ReadUInt16()
--{
-- UInt16 value = 0;
-- for (int i = 0; i < 2; i++)
-- {
-- Byte b = ReadByte();
-- value |= (UInt16(b) << (8 * i));
-- }
-- return value;
--}
--
--UInt32 CInArchive::ReadUInt32()
--{
-- UInt32 value = 0;
-- for (int i = 0; i < 4; i++)
-- {
-- Byte b = ReadByte();
-- value |= (UInt32(b) << (8 * i));
-- }
-- return value;
--}
--
--void CInArchive::ReadTime(Byte mask, CRarTime &rarTime)
--{
-- rarTime.LowSecond = (Byte)(((mask & 4) != 0) ? 1 : 0);
-- int numDigits = (mask & 3);
-- rarTime.SubTime[0] = rarTime.SubTime[1] = rarTime.SubTime[2] = 0;
-- for (int i = 0; i < numDigits; i++)
-- rarTime.SubTime[3 - numDigits + i] = ReadByte();
--}
--
--void CInArchive::ReadHeaderReal(CItemEx &item)
--{
-- item.Flags = m_BlockHeader.Flags;
-- item.PackSize = ReadUInt32();
-- item.Size = ReadUInt32();
-- item.HostOS = ReadByte();
-- item.FileCRC = ReadUInt32();
-- item.MTime.DosTime = ReadUInt32();
-- item.UnPackVersion = ReadByte();
-- item.Method = ReadByte();
-- int nameSize = ReadUInt16();
-- item.Attrib = ReadUInt32();
--
-- item.MTime.LowSecond = 0;
-- item.MTime.SubTime[0] =
-- item.MTime.SubTime[1] =
-- item.MTime.SubTime[2] = 0;
--
-- if((item.Flags & NHeader::NFile::kSize64Bits) != 0)
-- {
-- item.PackSize |= ((UInt64)ReadUInt32() << 32);
-- item.Size |= ((UInt64)ReadUInt32() << 32);
-- }
--
-- ReadName(item, nameSize);
--
-- if (item.HasSalt())
-- for (int i = 0; i < sizeof(item.Salt); i++)
-- item.Salt[i] = ReadByte();
--
-- // some rar archives have HasExtTime flag without field.
-- if (m_CurPos < m_PosLimit && item.HasExtTime())
-- {
-- Byte accessMask = (Byte)(ReadByte() >> 4);
-- Byte b = ReadByte();
-- Byte modifMask = (Byte)(b >> 4);
-- Byte createMask = (Byte)(b & 0xF);
-- if ((modifMask & 8) != 0)
-- ReadTime(modifMask, item.MTime);
-- item.CTimeDefined = ((createMask & 8) != 0);
-- if (item.CTimeDefined)
-- {
-- item.CTime.DosTime = ReadUInt32();
-- ReadTime(createMask, item.CTime);
-- }
-- item.ATimeDefined = ((accessMask & 8) != 0);
-- if (item.ATimeDefined)
-- {
-- item.ATime.DosTime = ReadUInt32();
-- ReadTime(accessMask, item.ATime);
-- }
-- }
--
-- UInt16 fileHeaderWithNameSize = (UInt16)m_CurPos;
--
-- item.Position = m_Position;
-- item.MainPartSize = fileHeaderWithNameSize;
-- item.CommentSize = (UInt16)(m_BlockHeader.HeadSize - fileHeaderWithNameSize);
--
-- if (m_CryptoMode)
-- item.AlignSize = (UInt16)((16 - ((m_BlockHeader.HeadSize) & 0xF)) & 0xF);
-- else
-- item.AlignSize = 0;
-- AddToSeekValue(m_BlockHeader.HeadSize);
--}
--
--void CInArchive::AddToSeekValue(UInt64 addValue)
--{
-- m_Position += addValue;
--}
--
--HRESULT CInArchive::GetNextItem(CItemEx &item, ICryptoGetTextPassword *getTextPassword, bool &decryptionError, AString &errorMessage)
--{
-- decryptionError = false;
-- for (;;)
-- {
-- SeekInArchive(m_Position);
-- if (!m_CryptoMode && (_header.Flags &
-- NHeader::NArchive::kBlockHeadersAreEncrypted) != 0)
-- {
-- m_CryptoMode = false;
-- if (getTextPassword == 0)
-- return S_FALSE;
-- if (!m_RarAES)
-- {
-- m_RarAESSpec = new NCrypto::NRar29::CDecoder;
-- m_RarAES = m_RarAESSpec;
-- }
-- m_RarAESSpec->SetRar350Mode(_header.IsEncryptOld());
--
-- // Salt
-- const UInt32 kSaltSize = 8;
-- Byte salt[kSaltSize];
-- if(!ReadBytesAndTestSize(salt, kSaltSize))
-- return S_FALSE;
-- m_Position += kSaltSize;
-- RINOK(m_RarAESSpec->SetDecoderProperties2(salt, kSaltSize))
-- // Password
-- CMyComBSTR password;
-- RINOK(getTextPassword->CryptoGetTextPassword(&password))
-- UString unicodePassword(password);
--
-- CByteBuffer buffer;
-- const UInt32 sizeInBytes = unicodePassword.Length() * 2;
-- buffer.SetCapacity(sizeInBytes);
-- for (int i = 0; i < unicodePassword.Length(); i++)
-- {
-- wchar_t c = unicodePassword[i];
-- ((Byte *)buffer)[i * 2] = (Byte)c;
-- ((Byte *)buffer)[i * 2 + 1] = (Byte)(c >> 8);
-- }
--
-- RINOK(m_RarAESSpec->CryptoSetPassword((const Byte *)buffer, sizeInBytes));
--
-- const UInt32 kDecryptedBufferSize = (1 << 12);
-- if (m_DecryptedData.GetCapacity() == 0)
-- {
-- const UInt32 kAlign = 16;
-- m_DecryptedData.SetCapacity(kDecryptedBufferSize + kAlign);
-- m_DecryptedDataAligned = (Byte *)((ptrdiff_t)((Byte *)m_DecryptedData + kAlign - 1) & ~(ptrdiff_t)(kAlign - 1));
-- }
-- RINOK(m_RarAES->Init());
-- size_t decryptedDataSizeT = kDecryptedBufferSize;
-- RINOK(ReadStream(m_Stream, m_DecryptedDataAligned, &decryptedDataSizeT));
-- m_DecryptedDataSize = (UInt32)decryptedDataSizeT;
-- m_DecryptedDataSize = m_RarAES->Filter(m_DecryptedDataAligned, m_DecryptedDataSize);
--
-- m_CryptoMode = true;
-- m_CryptoPos = 0;
-- }
--
-- m_FileHeaderData.EnsureCapacity(7);
-- size_t processed = 7;
-- RINOK(ReadBytesSpec((Byte *)m_FileHeaderData, &processed));
-- if (processed != 7)
-- {
-- if (processed != 0)
-- errorMessage = k_UnexpectedEnd;
-- return S_FALSE;
-- }
--
-- m_CurData = (Byte *)m_FileHeaderData;
-- m_CurPos = 0;
-- m_PosLimit = 7;
-- m_BlockHeader.CRC = ReadUInt16();
-- m_BlockHeader.Type = ReadByte();
-- m_BlockHeader.Flags = ReadUInt16();
-- m_BlockHeader.HeadSize = ReadUInt16();
--
-- if (m_BlockHeader.HeadSize < 7)
-- ThrowExceptionWithCode(CInArchiveException::kIncorrectArchive);
--
-- if (m_BlockHeader.Type == NHeader::NBlockType::kEndOfArchive)
-- return S_FALSE;
--
-- if (m_BlockHeader.Type == NHeader::NBlockType::kFileHeader)
-- {
-- m_FileHeaderData.EnsureCapacity(m_BlockHeader.HeadSize);
-- m_CurData = (Byte *)m_FileHeaderData;
-- m_PosLimit = m_BlockHeader.HeadSize;
-- if (!ReadBytesAndTestSize(m_CurData + m_CurPos, m_BlockHeader.HeadSize - 7))
-- {
-- errorMessage = k_UnexpectedEnd;
-- return S_FALSE;
-- }
--
-- ReadHeaderReal(item);
-- if ((CrcCalc(m_CurData + 2,
-- m_BlockHeader.HeadSize - item.CommentSize - 2) & 0xFFFF) != m_BlockHeader.CRC)
-- ThrowExceptionWithCode(CInArchiveException::kFileHeaderCRCError);
--
-- FinishCryptoBlock();
-- m_CryptoMode = false;
-- SeekInArchive(m_Position); // Move Position to compressed Data;
-- AddToSeekValue(item.PackSize); // m_Position points to next header;
-- return S_OK;
-- }
-- if (m_CryptoMode && m_BlockHeader.HeadSize > (1 << 10))
-- {
-- decryptionError = true;
-- errorMessage = k_DecryptionError;
-- return S_FALSE;
-- }
-- if ((m_BlockHeader.Flags & NHeader::NBlock::kLongBlock) != 0)
-- {
-- m_FileHeaderData.EnsureCapacity(7 + 4);
-- m_CurData = (Byte *)m_FileHeaderData;
-- if (!ReadBytesAndTestSize(m_CurData + m_CurPos, 4))
-- {
-- errorMessage = k_UnexpectedEnd;
-- return S_FALSE;
-- }
-- m_PosLimit = 7 + 4;
-- UInt32 dataSize = ReadUInt32();
-- AddToSeekValue(dataSize);
-- if (m_CryptoMode && dataSize > (1 << 27))
-- {
-- decryptionError = true;
-- errorMessage = k_DecryptionError;
-- return S_FALSE;
-- }
-- m_CryptoPos = m_BlockHeader.HeadSize;
-- }
-- else
-- m_CryptoPos = 0;
-- AddToSeekValue(m_BlockHeader.HeadSize);
-- FinishCryptoBlock();
-- m_CryptoMode = false;
-- }
--}
--
--void CInArchive::SeekInArchive(UInt64 position)
--{
-- m_Stream->Seek(position, STREAM_SEEK_SET, NULL);
--}
--
--ISequentialInStream* CInArchive::CreateLimitedStream(UInt64 position, UInt64 size)
--{
-- CLimitedSequentialInStream *streamSpec = new CLimitedSequentialInStream;
-- CMyComPtr<ISequentialInStream> inStream(streamSpec);
-- SeekInArchive(position);
-- streamSpec->SetStream(m_Stream);
-- streamSpec->Init(size);
-- return inStream.Detach();
--}
--
--}}
-diff -ruNa p7zip_9.20.1/CPP/7zip/Archive/Rar/RarIn.h p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarIn.h
---- p7zip_9.20.1/CPP/7zip/Archive/Rar/RarIn.h 2011-01-08 06:41:27.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarIn.h 1969-12-31 21:00:00.000000000 -0300
-@@ -1,123 +0,0 @@
--// RarIn.h
--
--#ifndef __ARCHIVE_RAR_IN_H
--#define __ARCHIVE_RAR_IN_H
--
--#include "Common/DynamicBuffer.h"
--#include "Common/MyCom.h"
--
--#include "../../ICoder.h"
--#include "../../IStream.h"
--
--#include "../../Common/StreamObjects.h"
--
--#include "../../Crypto/RarAes.h"
--
--#include "RarHeader.h"
--#include "RarItem.h"
--
--namespace NArchive {
--namespace NRar {
--
--class CInArchiveException
--{
--public:
-- enum CCauseType
-- {
-- kUnexpectedEndOfArchive = 0,
-- kArchiveHeaderCRCError,
-- kFileHeaderCRCError,
-- kIncorrectArchive
-- }
-- Cause;
-- CInArchiveException(CCauseType cause) : Cause(cause) {}
--};
--
--
--struct CInArchiveInfo
--{
-- UInt32 Flags;
-- Byte EncryptVersion;
-- UInt64 StartPosition;
--
-- bool IsSolid() const { return (Flags & NHeader::NArchive::kSolid) != 0; }
-- bool IsCommented() const { return (Flags & NHeader::NArchive::kComment) != 0; }
-- bool IsVolume() const { return (Flags & NHeader::NArchive::kVolume) != 0; }
-- bool HaveNewVolumeName() const { return (Flags & NHeader::NArchive::kNewVolName) != 0; }
-- bool IsEncrypted() const { return (Flags & NHeader::NArchive::kBlockEncryption) != 0; }
-- bool IsThereEncryptVer() const { return (Flags & NHeader::NArchive::kEncryptVer) != 0; }
-- bool IsEncryptOld() const { return (!IsThereEncryptVer() || EncryptVersion < 36); }
--};
--
--class CInArchive
--{
-- CMyComPtr<IInStream> m_Stream;
--
-- UInt64 m_StreamStartPosition;
--
-- CInArchiveInfo _header;
-- CDynamicBuffer<char> m_NameBuffer;
-- CDynamicBuffer<wchar_t> _unicodeNameBuffer;
--
-- CByteBuffer _comment;
--
-- void ReadName(CItemEx &item, int nameSize);
-- void ReadHeaderReal(CItemEx &item);
--
-- HRESULT ReadBytesSpec(void *data, size_t *size);
-- bool ReadBytesAndTestSize(void *data, UInt32 size);
--
-- HRESULT Open2(IInStream *stream, const UInt64 *searchHeaderSizeLimit);
--
-- void ThrowExceptionWithCode(CInArchiveException::CCauseType cause);
-- void ThrowUnexpectedEndOfArchiveException();
--
-- void AddToSeekValue(UInt64 addValue);
--
-- CDynamicBuffer<Byte> m_FileHeaderData;
--
-- NHeader::NBlock::CBlock m_BlockHeader;
--
-- NCrypto::NRar29::CDecoder *m_RarAESSpec;
-- CMyComPtr<ICompressFilter> m_RarAES;
--
-- Byte *m_CurData; // it must point to start of Rar::Block
-- UInt32 m_CurPos;
-- UInt32 m_PosLimit;
-- Byte ReadByte();
-- UInt16 ReadUInt16();
-- UInt32 ReadUInt32();
-- void ReadTime(Byte mask, CRarTime &rarTime);
--
-- CBuffer<Byte> m_DecryptedData;
-- Byte *m_DecryptedDataAligned;
-- UInt32 m_DecryptedDataSize;
--
-- bool m_CryptoMode;
-- UInt32 m_CryptoPos;
-- void FinishCryptoBlock()
-- {
-- if (m_CryptoMode)
-- while ((m_CryptoPos & 0xF) != 0)
-- {
-- m_CryptoPos++;
-- m_Position++;
-- }
-- }
--
--public:
-- UInt64 m_Position;
--
-- HRESULT Open(IInStream *inStream, const UInt64 *searchHeaderSizeLimit);
-- void Close();
-- HRESULT GetNextItem(CItemEx &item, ICryptoGetTextPassword *getTextPassword, bool &decryptionError, AString &errorMessage);
--
-- void GetArchiveInfo(CInArchiveInfo &archiveInfo) const;
--
-- void SeekInArchive(UInt64 position);
-- ISequentialInStream *CreateLimitedStream(UInt64 position, UInt64 size);
--};
--
--}}
--
--#endif
-diff -ruNa p7zip_9.20.1/CPP/7zip/Archive/Rar/RarItem.cpp p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarItem.cpp
---- p7zip_9.20.1/CPP/7zip/Archive/Rar/RarItem.cpp 2008-08-14 06:11:25.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarItem.cpp 1969-12-31 21:00:00.000000000 -0300
-@@ -1,55 +0,0 @@
--// RarItem.cpp
--
--#include "StdAfx.h"
--
--#include "RarItem.h"
--
--namespace NArchive{
--namespace NRar{
--
--bool CItem::IgnoreItem() const
--{
-- switch(HostOS)
-- {
-- case NHeader::NFile::kHostMSDOS:
-- case NHeader::NFile::kHostOS2:
-- case NHeader::NFile::kHostWin32:
-- return ((Attrib & NHeader::NFile::kLabelFileAttribute) != 0);
-- }
-- return false;
--}
--
--bool CItem::IsDir() const
--{
-- if (GetDictSize() == NHeader::NFile::kDictDirectoryValue)
-- return true;
-- switch(HostOS)
-- {
-- case NHeader::NFile::kHostMSDOS:
-- case NHeader::NFile::kHostOS2:
-- case NHeader::NFile::kHostWin32:
-- if ((Attrib & FILE_ATTRIBUTE_DIRECTORY) != 0)
-- return true;
-- }
-- return false;
--}
--
--UInt32 CItem::GetWinAttributes() const
--{
-- UInt32 winAttributes;
-- switch(HostOS)
-- {
-- case NHeader::NFile::kHostMSDOS:
-- case NHeader::NFile::kHostOS2:
-- case NHeader::NFile::kHostWin32:
-- winAttributes = Attrib;
-- break;
-- default:
-- winAttributes = 0; // must be converted from unix value;
-- }
-- if (IsDir())
-- winAttributes |= NHeader::NFile::kWinFileDirectoryAttributeMask;
-- return winAttributes;
--}
--
--}}
-diff -ruNa p7zip_9.20.1/CPP/7zip/Archive/Rar/RarItem.h p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarItem.h
---- p7zip_9.20.1/CPP/7zip/Archive/Rar/RarItem.h 2008-08-14 06:11:12.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarItem.h 1969-12-31 21:00:00.000000000 -0300
-@@ -1,79 +0,0 @@
--// RarItem.h
--
--#ifndef __ARCHIVE_RAR_ITEM_H
--#define __ARCHIVE_RAR_ITEM_H
--
--#include "Common/Types.h"
--#include "Common/MyString.h"
--
--#include "RarHeader.h"
--
--namespace NArchive{
--namespace NRar{
--
--struct CRarTime
--{
-- UInt32 DosTime;
-- Byte LowSecond;
-- Byte SubTime[3];
--};
--
--struct CItem
--{
-- UInt64 Size;
-- UInt64 PackSize;
--
-- CRarTime CTime;
-- CRarTime ATime;
-- CRarTime MTime;
--
-- UInt32 FileCRC;
-- UInt32 Attrib;
--
-- UInt16 Flags;
-- Byte HostOS;
-- Byte UnPackVersion;
-- Byte Method;
--
-- bool CTimeDefined;
-- bool ATimeDefined;
--
-- AString Name;
-- UString UnicodeName;
--
-- Byte Salt[8];
--
-- bool IsEncrypted() const { return (Flags & NHeader::NFile::kEncrypted) != 0; }
-- bool IsSolid() const { return (Flags & NHeader::NFile::kSolid) != 0; }
-- bool IsCommented() const { return (Flags & NHeader::NFile::kComment) != 0; }
-- bool IsSplitBefore() const { return (Flags & NHeader::NFile::kSplitBefore) != 0; }
-- bool IsSplitAfter() const { return (Flags & NHeader::NFile::kSplitAfter) != 0; }
-- bool HasSalt() const { return (Flags & NHeader::NFile::kSalt) != 0; }
-- bool HasExtTime() const { return (Flags & NHeader::NFile::kExtTime) != 0; }
-- bool HasUnicodeName()const { return (Flags & NHeader::NFile::kUnicodeName) != 0; }
-- bool IsOldVersion() const { return (Flags & NHeader::NFile::kOldVersion) != 0; }
--
-- UInt32 GetDictSize() const { return (Flags >> NHeader::NFile::kDictBitStart) & NHeader::NFile::kDictMask; }
-- bool IsDir() const;
-- bool IgnoreItem() const;
-- UInt32 GetWinAttributes() const;
--
-- CItem(): CTimeDefined(false), ATimeDefined(false) {}
--};
--
--class CItemEx: public CItem
--{
--public:
-- UInt64 Position;
-- UInt16 MainPartSize;
-- UInt16 CommentSize;
-- UInt16 AlignSize;
-- UInt64 GetFullSize() const { return MainPartSize + CommentSize + AlignSize + PackSize; };
-- // DWORD GetHeaderWithCommentSize() const { return MainPartSize + CommentSize; };
-- UInt64 GetCommentPosition() const { return Position + MainPartSize; };
-- UInt64 GetDataPosition() const { return GetCommentPosition() + CommentSize + AlignSize; };
--};
--
--}}
--
--#endif
-diff -ruNa p7zip_9.20.1/CPP/7zip/Archive/Rar/RarRegister.cpp p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarRegister.cpp
---- p7zip_9.20.1/CPP/7zip/Archive/Rar/RarRegister.cpp 2009-12-21 08:46:32.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarRegister.cpp 1969-12-31 21:00:00.000000000 -0300
-@@ -1,13 +0,0 @@
--// RarRegister.cpp
--
--#include "StdAfx.h"
--
--#include "../../Common/RegisterArc.h"
--
--#include "RarHandler.h"
--static IInArchive *CreateArc() { return new NArchive::NRar::CHandler; }
--
--static CArcInfo g_ArcInfo =
-- { L"Rar", L"rar r00", 0, 3, {0x52 , 0x61, 0x72, 0x21, 0x1a, 0x07, 0x00}, 7, false, CreateArc, 0, };
--
--REGISTER_ARC(Rar)
-diff -ruNa p7zip_9.20.1/CPP/7zip/Archive/Rar/RarVolumeInStream.cpp p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarVolumeInStream.cpp
---- p7zip_9.20.1/CPP/7zip/Archive/Rar/RarVolumeInStream.cpp 2009-05-30 17:19:19.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarVolumeInStream.cpp 1969-12-31 21:00:00.000000000 -0300
-@@ -1,78 +0,0 @@
--// RarVolumeInStream.cpp
--
--#include "StdAfx.h"
--
--#include "../../../../C/7zCrc.h"
--
--#include "RarVolumeInStream.h"
--
--namespace NArchive {
--namespace NRar {
--
--void CFolderInStream::Init(
-- CObjectVector<CInArchive> *archives,
-- const CObjectVector<CItemEx> *items,
-- const CRefItem &refItem)
--{
-- _archives = archives;
-- _items = items;
-- _refItem = refItem;
-- _curIndex = 0;
-- CRCs.Clear();
-- _fileIsOpen = false;
--}
--
--HRESULT CFolderInStream::OpenStream()
--{
-- while (_curIndex < _refItem.NumItems)
-- {
-- const CItemEx &item = (*_items)[_refItem.ItemIndex + _curIndex];
-- _stream.Attach((*_archives)[_refItem.VolumeIndex + _curIndex].
-- CreateLimitedStream(item.GetDataPosition(), item.PackSize));
-- _curIndex++;
-- _fileIsOpen = true;
-- _crc = CRC_INIT_VAL;
-- return S_OK;
-- }
-- return S_OK;
--}
--
--HRESULT CFolderInStream::CloseStream()
--{
-- CRCs.Add(CRC_GET_DIGEST(_crc));
-- _stream.Release();
-- _fileIsOpen = false;
-- return S_OK;
--}
--
--STDMETHODIMP CFolderInStream::Read(void *data, UInt32 size, UInt32 *processedSize)
--{
-- UInt32 realProcessedSize = 0;
-- while ((_curIndex < _refItem.NumItems || _fileIsOpen) && size > 0)
-- {
-- if (_fileIsOpen)
-- {
-- UInt32 localProcessedSize;
-- RINOK(_stream->Read(
-- ((Byte *)data) + realProcessedSize, size, &localProcessedSize));
-- _crc = CrcUpdate(_crc, ((Byte *)data) + realProcessedSize, localProcessedSize);
-- if (localProcessedSize == 0)
-- {
-- RINOK(CloseStream());
-- continue;
-- }
-- realProcessedSize += localProcessedSize;
-- size -= localProcessedSize;
-- break;
-- }
-- else
-- {
-- RINOK(OpenStream());
-- }
-- }
-- if (processedSize != 0)
-- *processedSize = realProcessedSize;
-- return S_OK;
--}
--
--}}
-diff -ruNa p7zip_9.20.1/CPP/7zip/Archive/Rar/RarVolumeInStream.h p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarVolumeInStream.h
---- p7zip_9.20.1/CPP/7zip/Archive/Rar/RarVolumeInStream.h 2008-08-14 06:11:12.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Archive/Rar/RarVolumeInStream.h 1969-12-31 21:00:00.000000000 -0300
-@@ -1,49 +0,0 @@
--// RarVolumeInStream.h
--
--#ifndef __RAR_VOLUME_IN_STREAM_H
--#define __RAR_VOLUME_IN_STREAM_H
--
--#include "../../IStream.h"
--#include "RarIn.h"
--
--namespace NArchive {
--namespace NRar {
--
--struct CRefItem
--{
-- int VolumeIndex;
-- int ItemIndex;
-- int NumItems;
--};
--
--class CFolderInStream:
-- public ISequentialInStream,
-- public CMyUnknownImp
--{
--public:
-- MY_UNKNOWN_IMP
--
-- STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize);
--
--private:
-- CObjectVector<CInArchive> *_archives;
-- const CObjectVector<CItemEx> *_items;
-- CRefItem _refItem;
-- int _curIndex;
-- UInt32 _crc;
-- bool _fileIsOpen;
-- CMyComPtr<ISequentialInStream> _stream;
--
-- HRESULT OpenStream();
-- HRESULT CloseStream();
--public:
-- void Init(CObjectVector<CInArchive> *archives,
-- const CObjectVector<CItemEx> *items,
-- const CRefItem &refItem);
--
-- CRecordVector<UInt32> CRCs;
--};
--
--}}
--
--#endif
-diff -ruNa p7zip_9.20.1/CPP/7zip/Bundles/Format7zFree/makefile p7zip-libre_9.20.1/CPP/7zip/Bundles/Format7zFree/makefile
---- p7zip_9.20.1/CPP/7zip/Bundles/Format7zFree/makefile 2010-11-07 12:41:43.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Bundles/Format7zFree/makefile 2011-09-07 15:42:04.000000000 -0300
-@@ -158,14 +158,6 @@
- NsisIn.o \
- NsisRegister.o \
-
--RAR_OBJS = \
-- RarHandler.o \
-- RarHeader.o \
-- RarIn.o \
-- RarItem.o \
-- RarVolumeInStream.o \
-- RarRegister.o \
--
- TAR_OBJS = \
- TarHandler.o \
- TarHandlerOut.o \
-@@ -243,13 +235,6 @@
- ZlibEncoder.o \
- ZDecoder.o \
-
--COMPRESS_OBJS_NON_FREE = \
-- Rar1Decoder.o \
-- Rar2Decoder.o \
-- Rar3Decoder.o \
-- Rar3Vm.o \
-- RarCodecsRegister.o \
--
- CRYPTO_OBJS = \
- 7zAes.o \
- 7zAesRegister.o \
-@@ -257,8 +242,6 @@
- MyAes.o \
- Pbkdf2HmacSha1.o \
- RandGen.o \
-- Rar20Crypto.o \
-- RarAes.o \
- Sha1.o \
- WzAes.o \
- ZipCrypto.o \
-diff -ruNa p7zip_9.20.1/CPP/7zip/Compress/Rar/makefile p7zip-libre_9.20.1/CPP/7zip/Compress/Rar/makefile
---- p7zip_9.20.1/CPP/7zip/Compress/Rar/makefile 2010-03-16 17:21:18.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Compress/Rar/makefile 1969-12-31 21:00:00.000000000 -0300
-@@ -1,34 +0,0 @@
--PROG=../../../../bin/Codecs/Rar29.so
--
--LOCAL_FLAGS=$(CC_SHARED) -DUNICODE -D_UNICODE
--
--MY_WINDOWS=
--
--include ../../../../makefile.crc32
--include ../../../../makefile.machine
--
--LOCAL_SHARED=$(LINK_SHARED)
--LIBS=$(LOCAL_LIBS)
--
--OBJS = \
--MyWindows.o \
--CRC.o\
--MyVector.o\
--CodecExports.o \
--DllExports.o \
--Rar1Decoder.o \
--Rar2Decoder.o \
--Rar3Decoder.o \
--Rar3Vm.o \
--RarCodecsRegister.o \
--$(OBJ_CRC32) \
--InBuffer.o \
--OutBuffer.o \
--StreamUtils.o \
--LzOutWindow.o \
--Ppmd7.o \
--Ppmd7Dec.o \
--Alloc.o
--
--include ../../../../makefile.glb
--
-diff -ruNa p7zip_9.20.1/CPP/7zip/Compress/Rar/makefile.depend p7zip-libre_9.20.1/CPP/7zip/Compress/Rar/makefile.depend
---- p7zip_9.20.1/CPP/7zip/Compress/Rar/makefile.depend 2011-02-19 06:33:10.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Compress/Rar/makefile.depend 1969-12-31 21:00:00.000000000 -0300
-@@ -1,158 +0,0 @@
--CRC.o: ../../../Common/CRC.cpp ../../../myWindows/StdAfx.h \
-- ../../../myWindows/config.h ../../../Common/MyWindows.h \
-- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
-- ../../../Common/../../C/Types.h ../../../Common/Types.h \
-- ../../../include_windows/windows.h ../../../include_windows/basetyps.h \
-- ../../../include_windows/tchar.h ../../../Common/../../C/7zCrc.h \
-- ../../../Common/../../C/Types.h
--MyWindows.o: ../../../Common/MyWindows.cpp ../../../myWindows/StdAfx.h \
-- ../../../myWindows/config.h ../../../Common/MyWindows.h \
-- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
-- ../../../Common/../../C/Types.h ../../../Common/Types.h \
-- ../../../include_windows/windows.h ../../../include_windows/basetyps.h \
-- ../../../include_windows/tchar.h ../../../Common/MyWindows.h
--MyVector.o: ../../../Common/MyVector.cpp ../../../myWindows/StdAfx.h \
-- ../../../myWindows/config.h ../../../Common/MyWindows.h \
-- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
-- ../../../Common/../../C/Types.h ../../../Common/Types.h \
-- ../../../include_windows/windows.h ../../../include_windows/basetyps.h \
-- ../../../include_windows/tchar.h ../../../Common/MyVector.h \
-- ../../../Common/Defs.h
--InBuffer.o: ../../Common/InBuffer.cpp ../../../myWindows/StdAfx.h \
-- ../../../myWindows/config.h ../../../Common/MyWindows.h \
-- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
-- ../../../Common/../../C/Types.h ../../../Common/Types.h \
-- ../../../include_windows/windows.h ../../../include_windows/basetyps.h \
-- ../../../include_windows/tchar.h ../../Common/../../../C/Alloc.h \
-- ../../Common/InBuffer.h ../../Common/../IStream.h \
-- ../../Common/../../Common/MyUnknown.h \
-- ../../Common/../../Common/MyWindows.h ../../Common/../../Common/Types.h \
-- ../../Common/../IDecl.h ../../Common/../../Common/MyCom.h \
-- ../../Common/../../Common/MyException.h
--StreamUtils.o: ../../Common/StreamUtils.cpp ../../../myWindows/StdAfx.h \
-- ../../../myWindows/config.h ../../../Common/MyWindows.h \
-- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
-- ../../../Common/../../C/Types.h ../../../Common/Types.h \
-- ../../../include_windows/windows.h ../../../include_windows/basetyps.h \
-- ../../../include_windows/tchar.h ../../Common/StreamUtils.h \
-- ../../Common/../IStream.h ../../Common/../../Common/MyUnknown.h \
-- ../../Common/../../Common/MyWindows.h ../../Common/../../Common/Types.h \
-- ../../Common/../IDecl.h
--OutBuffer.o: ../../Common/OutBuffer.cpp ../../../myWindows/StdAfx.h \
-- ../../../myWindows/config.h ../../../Common/MyWindows.h \
-- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
-- ../../../Common/../../C/Types.h ../../../Common/Types.h \
-- ../../../include_windows/windows.h ../../../include_windows/basetyps.h \
-- ../../../include_windows/tchar.h ../../Common/../../../C/Alloc.h \
-- ../../Common/OutBuffer.h ../../Common/../IStream.h \
-- ../../Common/../../Common/MyUnknown.h \
-- ../../Common/../../Common/MyWindows.h ../../Common/../../Common/Types.h \
-- ../../Common/../IDecl.h ../../Common/../../Common/MyCom.h \
-- ../../Common/../../Common/MyException.h
--LzOutWindow.o: ../LzOutWindow.cpp ../../../myWindows/StdAfx.h \
-- ../../../myWindows/config.h ../../../Common/MyWindows.h \
-- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
-- ../../../Common/../../C/Types.h ../../../Common/Types.h \
-- ../../../include_windows/windows.h ../../../include_windows/basetyps.h \
-- ../../../include_windows/tchar.h ../LzOutWindow.h ../../IStream.h \
-- ../../../Common/MyUnknown.h ../../../Common/MyWindows.h \
-- ../../../Common/Types.h ../../IDecl.h ../../Common/OutBuffer.h \
-- ../../Common/../IStream.h ../../Common/../../Common/MyCom.h \
-- ../../Common/../../Common/MyWindows.h \
-- ../../Common/../../Common/MyException.h
--CodecExports.o: ../CodecExports.cpp ../../../myWindows/StdAfx.h \
-- ../../../myWindows/config.h ../../../Common/MyWindows.h \
-- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
-- ../../../Common/../../C/Types.h ../../../Common/Types.h \
-- ../../../include_windows/windows.h ../../../include_windows/basetyps.h \
-- ../../../include_windows/tchar.h ../../../Common/ComTry.h \
-- ../../../Common/MyWindows.h ../../../Windows/PropVariant.h \
-- ../../../Windows/../Common/MyWindows.h \
-- ../../../Windows/../Common/Types.h ../../ICoder.h ../../IStream.h \
-- ../../../Common/MyUnknown.h ../../../Common/Types.h ../../IDecl.h \
-- ../../Common/RegisterCodec.h ../../Common/../Common/MethodId.h \
-- ../../Common/../Common/../../Common/Types.h
--DllExports.o: ../DllExports.cpp ../../../myWindows/StdAfx.h \
-- ../../../myWindows/config.h ../../../Common/MyWindows.h \
-- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
-- ../../../Common/../../C/Types.h ../../../Common/Types.h \
-- ../../../include_windows/windows.h ../../../include_windows/basetyps.h \
-- ../../../include_windows/tchar.h ../../../Common/MyInitGuid.h \
-- ../../ICoder.h ../../IStream.h ../../../Common/MyUnknown.h \
-- ../../../Common/MyWindows.h ../../../Common/Types.h ../../IDecl.h \
-- ../../Common/RegisterCodec.h ../../Common/../Common/MethodId.h \
-- ../../Common/../Common/../../Common/Types.h
--Rar1Decoder.o: ../Rar1Decoder.cpp ../../../myWindows/StdAfx.h \
-- ../../../myWindows/config.h ../../../Common/MyWindows.h \
-- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
-- ../../../Common/../../C/Types.h ../../../Common/Types.h \
-- ../../../include_windows/windows.h ../../../include_windows/basetyps.h \
-- ../../../include_windows/tchar.h ../Rar1Decoder.h \
-- ../../../Common/MyCom.h ../../../Common/MyWindows.h ../../ICoder.h \
-- ../../IStream.h ../../../Common/MyUnknown.h ../../../Common/Types.h \
-- ../../IDecl.h ../../Common/InBuffer.h ../../Common/../IStream.h \
-- ../../Common/../../Common/MyCom.h \
-- ../../Common/../../Common/MyException.h \
-- ../../Common/../../Common/MyWindows.h ../BitmDecoder.h ../../IStream.h \
-- ../HuffmanDecoder.h ../../../Common/Types.h ../LzOutWindow.h \
-- ../../Common/OutBuffer.h
--Rar2Decoder.o: ../Rar2Decoder.cpp ../../../myWindows/StdAfx.h \
-- ../../../myWindows/config.h ../../../Common/MyWindows.h \
-- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
-- ../../../Common/../../C/Types.h ../../../Common/Types.h \
-- ../../../include_windows/windows.h ../../../include_windows/basetyps.h \
-- ../../../include_windows/tchar.h ../Rar2Decoder.h \
-- ../../../Common/MyCom.h ../../../Common/MyWindows.h ../../ICoder.h \
-- ../../IStream.h ../../../Common/MyUnknown.h ../../../Common/Types.h \
-- ../../IDecl.h ../../Common/InBuffer.h ../../Common/../IStream.h \
-- ../../Common/../../Common/MyCom.h \
-- ../../Common/../../Common/MyException.h \
-- ../../Common/../../Common/MyWindows.h ../BitmDecoder.h ../../IStream.h \
-- ../HuffmanDecoder.h ../../../Common/Types.h ../LzOutWindow.h \
-- ../../Common/OutBuffer.h
--Rar3Decoder.o: ../Rar3Decoder.cpp ../../../myWindows/StdAfx.h \
-- ../../../myWindows/config.h ../../../Common/MyWindows.h \
-- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
-- ../../../Common/../../C/Types.h ../../../Common/Types.h \
-- ../../../include_windows/windows.h ../../../include_windows/basetyps.h \
-- ../../../include_windows/tchar.h ../../../../C/Alloc.h \
-- ../../Common/StreamUtils.h ../../Common/../IStream.h \
-- ../../Common/../../Common/MyUnknown.h \
-- ../../Common/../../Common/MyWindows.h ../../Common/../../Common/Types.h \
-- ../../Common/../IDecl.h ../Rar3Decoder.h ../../../../C/Ppmd7.h \
-- ../../../../C/Ppmd.h ../../../../C/Types.h ../../../../C/CpuArch.h \
-- ../../../Common/MyCom.h ../../../Common/MyWindows.h ../../ICoder.h \
-- ../../IStream.h ../../Common/InBuffer.h \
-- ../../Common/../../Common/MyCom.h \
-- ../../Common/../../Common/MyException.h ../BitmDecoder.h ../../IStream.h \
-- ../HuffmanDecoder.h ../../../Common/Types.h ../Rar3Vm.h \
-- ../../../../C/CpuArch.h ../../../Common/MyVector.h \
-- ../../../Common/Defs.h
--Rar3Vm.o: ../Rar3Vm.cpp ../../../myWindows/StdAfx.h \
-- ../../../myWindows/config.h ../../../Common/MyWindows.h \
-- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
-- ../../../Common/../../C/Types.h ../../../Common/Types.h \
-- ../../../include_windows/windows.h ../../../include_windows/basetyps.h \
-- ../../../include_windows/tchar.h ../../../../C/7zCrc.h \
-- ../../../../C/Types.h ../../../../C/Alloc.h ../Rar3Vm.h \
-- ../../../../C/CpuArch.h ../../../Common/MyVector.h \
-- ../../../Common/Defs.h
--RarCodecsRegister.o: ../RarCodecsRegister.cpp ../../../myWindows/StdAfx.h \
-- ../../../myWindows/config.h ../../../Common/MyWindows.h \
-- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
-- ../../../Common/../../C/Types.h ../../../Common/Types.h \
-- ../../../include_windows/windows.h ../../../include_windows/basetyps.h \
-- ../../../include_windows/tchar.h ../../Common/RegisterCodec.h \
-- ../../Common/../Common/MethodId.h \
-- ../../Common/../Common/../../Common/Types.h ../Rar1Decoder.h \
-- ../../../Common/MyCom.h ../../../Common/MyWindows.h ../../ICoder.h \
-- ../../IStream.h ../../../Common/MyUnknown.h ../../../Common/Types.h \
-- ../../IDecl.h ../../Common/InBuffer.h ../../Common/../IStream.h \
-- ../../Common/../../Common/MyCom.h \
-- ../../Common/../../Common/MyException.h \
-- ../../Common/../../Common/MyWindows.h ../BitmDecoder.h ../../IStream.h \
-- ../HuffmanDecoder.h ../../../Common/Types.h ../LzOutWindow.h \
-- ../../Common/OutBuffer.h ../Rar2Decoder.h ../Rar3Decoder.h \
-- ../../../../C/Ppmd7.h ../../../../C/Ppmd.h ../../../../C/Types.h \
-- ../../../../C/CpuArch.h ../Rar3Vm.h ../../../../C/CpuArch.h \
-- ../../../Common/MyVector.h ../../../Common/Defs.h
-diff -ruNa p7zip_9.20.1/CPP/7zip/Compress/Rar/makefile.list p7zip-libre_9.20.1/CPP/7zip/Compress/Rar/makefile.list
---- p7zip_9.20.1/CPP/7zip/Compress/Rar/makefile.list 2010-03-16 17:23:04.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Compress/Rar/makefile.list 1969-12-31 21:00:00.000000000 -0300
-@@ -1,64 +0,0 @@
--SRCS=\
-- ../../../Common/CRC.cpp \
-- ../../../Common/MyWindows.cpp \
-- ../../../Common/MyVector.cpp \
-- ../../Common/InBuffer.cpp \
-- ../../Common/StreamUtils.cpp \
-- ../../Common/OutBuffer.cpp \
--../LzOutWindow.cpp \
--../CodecExports.cpp \
--../DllExports.cpp \
--../Rar1Decoder.cpp \
--../Rar2Decoder.cpp \
--../Rar3Decoder.cpp \
--../Rar3Vm.cpp \
--../RarCodecsRegister.cpp
--
--SRCS_C=\
-- ../../../../C/Alloc.c \
-- ../../../../C/Ppmd7.c \
-- ../../../../C/Ppmd7Dec.c
--
--CRC.o : ../../../Common/CRC.cpp
-- $(CXX) $(CC_SHARED) $(CXXFLAGS) ../../../Common/CRC.cpp
--MyWindows.o : ../../../Common/MyWindows.cpp
-- $(CXX) $(CC_SHARED) $(CXXFLAGS) ../../../Common/MyWindows.cpp
--MyVector.o : ../../../Common/MyVector.cpp
-- $(CXX) $(CC_SHARED) $(CXXFLAGS) ../../../Common/MyVector.cpp
--DllExports.o : ../DllExports.cpp
-- $(CXX) $(CC_SHARED) $(CXXFLAGS) ../DllExports.cpp
--CodecExports.o : ../CodecExports.cpp
-- $(CXX) $(CC_SHARED) $(CXXFLAGS) ../CodecExports.cpp
--InBuffer.o : ../../Common/InBuffer.cpp
-- $(CXX) $(CC_SHARED) $(CXXFLAGS) ../../Common/InBuffer.cpp
--LzOutWindow.o : ../LzOutWindow.cpp
-- $(CXX) $(CC_SHARED) $(CXXFLAGS) ../LzOutWindow.cpp
--StreamUtils.o : ../../Common/StreamUtils.cpp
-- $(CXX) $(CC_SHARED) $(CXXFLAGS) ../../Common/StreamUtils.cpp
--OutBuffer.o : ../../Common/OutBuffer.cpp
-- $(CXX) $(CC_SHARED) $(CXXFLAGS) ../../Common/OutBuffer.cpp
--Rar1Decoder.o : ../Rar1Decoder.cpp
-- $(CXX) $(CC_SHARED) $(CXXFLAGS) ../Rar1Decoder.cpp
--Rar2Decoder.o : ../Rar2Decoder.cpp
-- $(CXX) $(CC_SHARED) $(CXXFLAGS) ../Rar2Decoder.cpp
--Rar3Decoder.o : ../Rar3Decoder.cpp
-- $(CXX) $(CC_SHARED) $(CXXFLAGS) ../Rar3Decoder.cpp
--Rar3Vm.o : ../Rar3Vm.cpp
-- $(CXX) $(CC_SHARED) $(CXXFLAGS) ../Rar3Vm.cpp
--RarCodecsRegister.o : ../RarCodecsRegister.cpp
-- $(CXX) $(CC_SHARED) $(CXXFLAGS) ../RarCodecsRegister.cpp
--Alloc.o : ../../../../C/Alloc.c
-- $(CC) $(CC_SHARED) $(CFLAGS) ../../../../C/Alloc.c
--Ppmd7.o : ../../../../C/Ppmd7.c
-- $(CC) $(CC_SHARED) $(CFLAGS) ../../../../C/Ppmd7.c
--Ppmd7Dec.o : ../../../../C/Ppmd7Dec.c
-- $(CC) $(CC_SHARED) $(CFLAGS) ../../../../C/Ppmd7Dec.c
--
--# CRC32, C version
--7zCrc.o : ../../../../C/7zCrc.c
-- $(CC) $(CC_SHARED) $(CFLAGS) ../../../../C/7zCrc.c
--7zCrcOpt.o : ../../../../C/7zCrcOpt.c
-- $(CC) $(CC_SHARED) $(CFLAGS) ../../../../C/7zCrcOpt.c
--# CRC32, ASM version
--7zCrcT8.o : ../../../../C/7zCrcT8.c
-- $(CC) $(CC_SHARED) $(CFLAGS) ../../../../C/7zCrcT8.c
-diff -ruNa p7zip_9.20.1/CPP/7zip/Compress/Rar1Decoder.cpp p7zip-libre_9.20.1/CPP/7zip/Compress/Rar1Decoder.cpp
---- p7zip_9.20.1/CPP/7zip/Compress/Rar1Decoder.cpp 2009-12-21 08:46:36.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Compress/Rar1Decoder.cpp 1969-12-31 21:00:00.000000000 -0300
-@@ -1,480 +0,0 @@
--// Rar1Decoder.cpp
--// According to unRAR license, this code may not be used to develop
--// a program that creates RAR archives
--
--#include "StdAfx.h"
--
--#include "Rar1Decoder.h"
--
--namespace NCompress {
--namespace NRar1 {
--
--static UInt32 PosL1[]={0,0,0,2,3,5,7,11,16,20,24,32,32, 256};
--static UInt32 PosL2[]={0,0,0,0,5,7,9,13,18,22,26,34,36, 256};
--static UInt32 PosHf0[]={0,0,0,0,0,8,16,24,33,33,33,33,33, 257};
--static UInt32 PosHf1[]={0,0,0,0,0,0,4,44,60,76,80,80,127, 257};
--static UInt32 PosHf2[]={0,0,0,0,0,0,2,7,53,117,233, 257,0};
--static UInt32 PosHf3[]={0,0,0,0,0,0,0,2,16,218,251, 257,0};
--static UInt32 PosHf4[]={0,0,0,0,0,0,0,0,0,255, 257,0,0};
--
--static const UInt32 kHistorySize = (1 << 16);
--
--class CCoderReleaser
--{
-- CDecoder *m_Coder;
--public:
-- CCoderReleaser(CDecoder *coder): m_Coder(coder) {}
-- ~CCoderReleaser() { m_Coder->ReleaseStreams(); }
--};
--
--CDecoder::CDecoder(): m_IsSolid(false) { }
--
--void CDecoder::InitStructures()
--{
-- for(int i = 0; i < kNumRepDists; i++)
-- m_RepDists[i] = 0;
-- m_RepDistPtr = 0;
-- LastLength = 0;
-- LastDist = 0;
--}
--
--UInt32 CDecoder::ReadBits(int numBits) { return m_InBitStream.ReadBits(numBits); }
--
--HRESULT CDecoder::CopyBlock(UInt32 distance, UInt32 len)
--{
-- if (len == 0)
-- return S_FALSE;
-- m_UnpackSize -= len;
-- return m_OutWindowStream.CopyBlock(distance, len) ? S_OK : S_FALSE;
--}
--
--
--UInt32 CDecoder::DecodeNum(const UInt32 *posTab)
--{
-- UInt32 startPos = 2;
-- UInt32 num = m_InBitStream.GetValue(12);
-- for (;;)
-- {
-- UInt32 cur = (posTab[startPos + 1] - posTab[startPos]) << (12 - startPos);
-- if (num < cur)
-- break;
-- startPos++;
-- num -= cur;
-- }
-- m_InBitStream.MovePos(startPos);
-- return((num >> (12 - startPos)) + posTab[startPos]);
--}
--
--static Byte kShortLen1[] = {1,3,4,4,5,6,7,8,8,4,4,5,6,6 };
--static Byte kShortLen1a[] = {1,4,4,4,5,6,7,8,8,4,4,5,6,6,4 };
--static Byte kShortLen2[] = {2,3,3,3,4,4,5,6,6,4,4,5,6,6 };
--static Byte kShortLen2a[] = {2,3,3,4,4,4,5,6,6,4,4,5,6,6,4 };
--static UInt32 kShortXor1[] = {0,0xa0,0xd0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xc0,0x80,0x90,0x98,0x9c,0xb0};
--static UInt32 kShortXor2[] = {0,0x40,0x60,0xa0,0xd0,0xe0,0xf0,0xf8,0xfc,0xc0,0x80,0x90,0x98,0x9c,0xb0};
--
--HRESULT CDecoder::ShortLZ()
--{
-- UInt32 len, saveLen, dist;
-- int distancePlace;
-- Byte *kShortLen;
-- const UInt32 *kShortXor;
-- NumHuf = 0;
--
-- if (LCount == 2)
-- {
-- if (ReadBits(1))
-- return CopyBlock(LastDist, LastLength);
-- LCount = 0;
-- }
--
-- UInt32 bitField = m_InBitStream.GetValue(8);
--
-- if (AvrLn1 < 37)
-- {
-- kShortLen = Buf60 ? kShortLen1a : kShortLen1;
-- kShortXor = kShortXor1;
-- }
-- else
-- {
-- kShortLen = Buf60 ? kShortLen2a : kShortLen2;
-- kShortXor = kShortXor2;
-- }
--
-- for (len = 0; ((bitField ^ kShortXor[len]) & (~(0xff >> kShortLen[len]))) != 0; len++);
-- m_InBitStream.MovePos(kShortLen[len]);
--
-- if (len >= 9)
-- {
-- if (len == 9)
-- {
-- LCount++;
-- return CopyBlock(LastDist, LastLength);
-- }
-- if (len == 14)
-- {
-- LCount = 0;
-- len = DecodeNum(PosL2) + 5;
-- dist = 0x8000 + ReadBits(15) - 1;
-- LastLength = len;
-- LastDist = dist;
-- return CopyBlock(dist, len);
-- }
--
-- LCount = 0;
-- saveLen = len;
-- dist = m_RepDists[(m_RepDistPtr - (len - 9)) & 3];
-- len = DecodeNum(PosL1) + 2;
-- if (len == 0x101 && saveLen == 10)
-- {
-- Buf60 ^= 1;
-- return S_OK;
-- }
-- if (dist >= 256)
-- len++;
-- if (dist >= MaxDist3 - 1)
-- len++;
-- }
-- else
-- {
-- LCount = 0;
-- AvrLn1 += len;
-- AvrLn1 -= AvrLn1 >> 4;
--
-- distancePlace = DecodeNum(PosHf2) & 0xff;
-- dist = ChSetA[distancePlace];
-- if (--distancePlace != -1)
-- {
-- PlaceA[dist]--;
-- UInt32 lastDistance = ChSetA[distancePlace];
-- PlaceA[lastDistance]++;
-- ChSetA[distancePlace + 1] = lastDistance;
-- ChSetA[distancePlace] = dist;
-- }
-- len += 2;
-- }
-- m_RepDists[m_RepDistPtr++] = dist;
-- m_RepDistPtr &= 3;
-- LastLength = len;
-- LastDist = dist;
-- return CopyBlock(dist, len);
--}
--
--
--HRESULT CDecoder::LongLZ()
--{
-- UInt32 len;
-- UInt32 dist;
-- UInt32 distancePlace, newDistancePlace;
-- UInt32 oldAvr2, oldAvr3;
--
-- NumHuf = 0;
-- Nlzb += 16;
-- if (Nlzb > 0xff)
-- {
-- Nlzb = 0x90;
-- Nhfb >>= 1;
-- }
-- oldAvr2=AvrLn2;
--
-- if (AvrLn2 >= 122)
-- len = DecodeNum(PosL2);
-- else if (AvrLn2 >= 64)
-- len = DecodeNum(PosL1);
-- else
-- {
-- UInt32 bitField = m_InBitStream.GetValue(16);
-- if (bitField < 0x100)
-- {
-- len = bitField;
-- m_InBitStream.MovePos(16);
-- }
-- else
-- {
-- for (len = 0; ((bitField << len) & 0x8000) == 0; len++)
-- ;
-- m_InBitStream.MovePos(len + 1);
-- }
-- }
--
-- AvrLn2 += len;
-- AvrLn2 -= AvrLn2 >> 5;
--
-- if (AvrPlcB > 0x28ff)
-- distancePlace = DecodeNum(PosHf2);
-- else if (AvrPlcB > 0x6ff)
-- distancePlace = DecodeNum(PosHf1);
-- else
-- distancePlace = DecodeNum(PosHf0);
--
-- AvrPlcB += distancePlace;
-- AvrPlcB -= AvrPlcB >> 8;
-- for (;;)
-- {
-- dist = ChSetB[distancePlace & 0xff];
-- newDistancePlace = NToPlB[dist++ & 0xff]++;
-- if (!(dist & 0xff))
-- CorrHuff(ChSetB,NToPlB);
-- else
-- break;
-- }
--
-- ChSetB[distancePlace] = ChSetB[newDistancePlace];
-- ChSetB[newDistancePlace] = dist;
--
-- dist = ((dist & 0xff00) >> 1) | ReadBits(7);
--
-- oldAvr3 = AvrLn3;
-- if (len != 1 && len != 4)
-- if (len == 0 && dist <= MaxDist3)
-- {
-- AvrLn3++;
-- AvrLn3 -= AvrLn3 >> 8;
-- }
-- else
-- if (AvrLn3 > 0)
-- AvrLn3--;
-- len += 3;
-- if (dist >= MaxDist3)
-- len++;
-- if (dist <= 256)
-- len += 8;
-- if (oldAvr3 > 0xb0 || AvrPlc >= 0x2a00 && oldAvr2 < 0x40)
-- MaxDist3 = 0x7f00;
-- else
-- MaxDist3 = 0x2001;
-- m_RepDists[m_RepDistPtr++] = --dist;
-- m_RepDistPtr &= 3;
-- LastLength = len;
-- LastDist = dist;
-- return CopyBlock(dist, len);
--}
--
--
--HRESULT CDecoder::HuffDecode()
--{
-- UInt32 curByte, newBytePlace;
-- UInt32 len;
-- UInt32 dist;
-- int bytePlace;
--
-- if (AvrPlc > 0x75ff) bytePlace = DecodeNum(PosHf4);
-- else if (AvrPlc > 0x5dff) bytePlace = DecodeNum(PosHf3);
-- else if (AvrPlc > 0x35ff) bytePlace = DecodeNum(PosHf2);
-- else if (AvrPlc > 0x0dff) bytePlace = DecodeNum(PosHf1);
-- else bytePlace = DecodeNum(PosHf0);
-- if (StMode)
-- {
-- if (--bytePlace == -1)
-- {
-- if (ReadBits(1))
-- {
-- NumHuf = StMode = 0;
-- return S_OK;
-- }
-- else
-- {
-- len = (ReadBits(1)) ? 4 : 3;
-- dist = DecodeNum(PosHf2);
-- dist = (dist << 5) | ReadBits(5);
-- return CopyBlock(dist - 1, len);
-- }
-- }
-- }
-- else if (NumHuf++ >= 16 && FlagsCnt == 0)
-- StMode = 1;
-- bytePlace &= 0xff;
-- AvrPlc += bytePlace;
-- AvrPlc -= AvrPlc >> 8;
-- Nhfb+=16;
-- if (Nhfb > 0xff)
-- {
-- Nhfb=0x90;
-- Nlzb >>= 1;
-- }
--
-- m_UnpackSize --;
-- m_OutWindowStream.PutByte((Byte)(ChSet[bytePlace] >> 8));
--
-- for (;;)
-- {
-- curByte = ChSet[bytePlace];
-- newBytePlace = NToPl[curByte++ & 0xff]++;
-- if ((curByte & 0xff) > 0xa1)
-- CorrHuff(ChSet, NToPl);
-- else
-- break;
-- }
--
-- ChSet[bytePlace] = ChSet[newBytePlace];
-- ChSet[newBytePlace] = curByte;
-- return S_OK;
--}
--
--
--void CDecoder::GetFlagsBuf()
--{
-- UInt32 flags, newFlagsPlace;
-- UInt32 flagsPlace = DecodeNum(PosHf2);
--
-- for (;;)
-- {
-- flags = ChSetC[flagsPlace];
-- FlagBuf = flags >> 8;
-- newFlagsPlace = NToPlC[flags++ & 0xff]++;
-- if ((flags & 0xff) != 0)
-- break;
-- CorrHuff(ChSetC, NToPlC);
-- }
--
-- ChSetC[flagsPlace] = ChSetC[newFlagsPlace];
-- ChSetC[newFlagsPlace] = flags;
--}
--
--void CDecoder::InitData()
--{
-- if (!m_IsSolid)
-- {
-- AvrPlcB = AvrLn1 = AvrLn2 = AvrLn3 = NumHuf = Buf60 = 0;
-- AvrPlc = 0x3500;
-- MaxDist3 = 0x2001;
-- Nhfb = Nlzb = 0x80;
-- }
-- FlagsCnt = 0;
-- FlagBuf = 0;
-- StMode = 0;
-- LCount = 0;
--}
--
--void CDecoder::CorrHuff(UInt32 *CharSet,UInt32 *NumToPlace)
--{
-- int i;
-- for (i = 7; i >= 0; i--)
-- for (int j = 0; j < 32; j++, CharSet++)
-- *CharSet = (*CharSet & ~0xff) | i;
-- memset(NumToPlace, 0, sizeof(NToPl));
-- for (i = 6; i >= 0; i--)
-- NumToPlace[i] = (7 - i) * 32;
--}
--
--void CDecoder::InitHuff()
--{
-- for (UInt32 i = 0; i < 256; i++)
-- {
-- Place[i] = PlaceA[i] = PlaceB[i] = i;
-- PlaceC[i] = (~i + 1) & 0xff;
-- ChSet[i] = ChSetB[i] = i << 8;
-- ChSetA[i] = i;
-- ChSetC[i] = ((~i + 1) & 0xff) << 8;
-- }
-- memset(NToPl, 0, sizeof(NToPl));
-- memset(NToPlB, 0, sizeof(NToPlB));
-- memset(NToPlC, 0, sizeof(NToPlC));
-- CorrHuff(ChSetB, NToPlB);
--}
--
--HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *outStream,
-- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo * /* progress */)
--{
-- if (inSize == NULL || outSize == NULL)
-- return E_INVALIDARG;
--
-- if (!m_OutWindowStream.Create(kHistorySize))
-- return E_OUTOFMEMORY;
-- if (!m_InBitStream.Create(1 << 20))
-- return E_OUTOFMEMORY;
--
-- m_UnpackSize = (Int64)*outSize;
-- m_OutWindowStream.SetStream(outStream);
-- m_OutWindowStream.Init(m_IsSolid);
-- m_InBitStream.SetStream(inStream);
-- m_InBitStream.Init();
--
-- CCoderReleaser coderReleaser(this);
-- InitData();
-- if (!m_IsSolid)
-- {
-- InitStructures();
-- InitHuff();
-- }
-- if (m_UnpackSize > 0)
-- {
-- GetFlagsBuf();
-- FlagsCnt = 8;
-- }
--
-- while (m_UnpackSize > 0)
-- {
-- if (StMode)
-- {
-- RINOK(HuffDecode());
-- continue;
-- }
--
-- if (--FlagsCnt < 0)
-- {
-- GetFlagsBuf();
-- FlagsCnt=7;
-- }
--
-- if (FlagBuf & 0x80)
-- {
-- FlagBuf <<= 1;
-- if (Nlzb > Nhfb)
-- {
-- RINOK(LongLZ());
-- }
-- else
-- {
-- RINOK(HuffDecode());
-- }
-- }
-- else
-- {
-- FlagBuf <<= 1;
-- if (--FlagsCnt < 0)
-- {
-- GetFlagsBuf();
-- FlagsCnt = 7;
-- }
-- if (FlagBuf & 0x80)
-- {
-- FlagBuf <<= 1;
-- if (Nlzb > Nhfb)
-- {
-- RINOK(HuffDecode());
-- }
-- else
-- {
-- RINOK(LongLZ());
-- }
-- }
-- else
-- {
-- FlagBuf <<= 1;
-- RINOK(ShortLZ());
-- }
-- }
-- }
-- if (m_UnpackSize < 0)
-- return S_FALSE;
-- return m_OutWindowStream.Flush();
--}
--
--STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream *outStream,
-- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress)
--{
-- try { return CodeReal(inStream, outStream, inSize, outSize, progress); }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(const CLzOutWindowException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
--}
--
--STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
--{
-- if (size < 1)
-- return E_INVALIDARG;
-- m_IsSolid = (data[0] != 0);
-- return S_OK;
--}
--
--}}
-diff -ruNa p7zip_9.20.1/CPP/7zip/Compress/Rar1Decoder.h p7zip-libre_9.20.1/CPP/7zip/Compress/Rar1Decoder.h
---- p7zip_9.20.1/CPP/7zip/Compress/Rar1Decoder.h 2009-02-07 15:06:28.000000000 -0200
-+++ p7zip-libre_9.20.1/CPP/7zip/Compress/Rar1Decoder.h 1969-12-31 21:00:00.000000000 -0300
-@@ -1,88 +0,0 @@
--// Rar1Decoder.h
--// According to unRAR license, this code may not be used to develop
--// a program that creates RAR archives
--
--#ifndef __COMPRESS_RAR1_DECODER_H
--#define __COMPRESS_RAR1_DECODER_H
--
--#include "../../Common/MyCom.h"
--
--#include "../ICoder.h"
--
--#include "../Common/InBuffer.h"
--
--#include "BitmDecoder.h"
--#include "HuffmanDecoder.h"
--#include "LzOutWindow.h"
--
--namespace NCompress {
--namespace NRar1 {
--
--const UInt32 kNumRepDists = 4;
--
--typedef NBitm::CDecoder<CInBuffer> CBitDecoder;
--
--class CDecoder :
-- public ICompressCoder,
-- public ICompressSetDecoderProperties2,
-- public CMyUnknownImp
--{
--public:
-- CLzOutWindow m_OutWindowStream;
-- CBitDecoder m_InBitStream;
--
-- UInt32 m_RepDists[kNumRepDists];
-- UInt32 m_RepDistPtr;
--
-- UInt32 LastDist;
-- UInt32 LastLength;
--
-- Int64 m_UnpackSize;
-- bool m_IsSolid;
--
-- UInt32 ReadBits(int numBits);
-- HRESULT CopyBlock(UInt32 distance, UInt32 len);
--
-- UInt32 DecodeNum(const UInt32 *posTab);
-- HRESULT ShortLZ();
-- HRESULT LongLZ();
-- HRESULT HuffDecode();
-- void GetFlagsBuf();
-- void InitData();
-- void InitHuff();
-- void CorrHuff(UInt32 *CharSet, UInt32 *NumToPlace);
-- void OldUnpWriteBuf();
--
-- UInt32 ChSet[256],ChSetA[256],ChSetB[256],ChSetC[256];
-- UInt32 Place[256],PlaceA[256],PlaceB[256],PlaceC[256];
-- UInt32 NToPl[256],NToPlB[256],NToPlC[256];
-- UInt32 FlagBuf,AvrPlc,AvrPlcB,AvrLn1,AvrLn2,AvrLn3;
-- int Buf60,NumHuf,StMode,LCount,FlagsCnt;
-- UInt32 Nhfb,Nlzb,MaxDist3;
--
-- void InitStructures();
--
-- HRESULT CodeReal(ISequentialInStream *inStream, ISequentialOutStream *outStream,
-- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);
--
--public:
-- CDecoder();
--
-- MY_UNKNOWN_IMP1(ICompressSetDecoderProperties2)
--
-- void ReleaseStreams()
-- {
-- m_OutWindowStream.ReleaseStream();
-- m_InBitStream.ReleaseStream();
-- }
--
-- STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream,
-- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);
--
-- STDMETHOD(SetDecoderProperties2)(const Byte *data, UInt32 size);
--
--};
--
--}}
--
--#endif
-diff -ruNa p7zip_9.20.1/CPP/7zip/Compress/Rar2Decoder.cpp p7zip-libre_9.20.1/CPP/7zip/Compress/Rar2Decoder.cpp
---- p7zip_9.20.1/CPP/7zip/Compress/Rar2Decoder.cpp 2009-12-21 08:46:36.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Compress/Rar2Decoder.cpp 1969-12-31 21:00:00.000000000 -0300
-@@ -1,391 +0,0 @@
--// Rar2Decoder.cpp
--// According to unRAR license, this code may not be used to develop
--// a program that creates RAR archives
--
--#include "StdAfx.h"
--
--#include "Rar2Decoder.h"
--
--namespace NCompress {
--namespace NRar2 {
--
--namespace NMultimedia {
--
--Byte CFilter::Decode(int &channelDelta, Byte deltaByte)
--{
-- D4 = D3;
-- D3 = D2;
-- D2 = LastDelta - D1;
-- D1 = LastDelta;
-- int predictedValue = ((8 * LastChar + K1 * D1 + K2 * D2 + K3 * D3 + K4 * D4 + K5 * channelDelta) >> 3);
--
-- Byte realValue = (Byte)(predictedValue - deltaByte);
-- int i = ((int)(signed char)deltaByte) << 3;
--
-- Dif[0] += abs(i);
-- Dif[1] += abs(i - D1);
-- Dif[2] += abs(i + D1);
-- Dif[3] += abs(i - D2);
-- Dif[4] += abs(i + D2);
-- Dif[5] += abs(i - D3);
-- Dif[6] += abs(i + D3);
-- Dif[7] += abs(i - D4);
-- Dif[8] += abs(i + D4);
-- Dif[9] += abs(i - channelDelta);
-- Dif[10] += abs(i + channelDelta);
--
-- channelDelta = LastDelta = (signed char)(realValue - LastChar);
-- LastChar = realValue;
--
-- if (((++ByteCount) & 0x1F) == 0)
-- {
-- UInt32 minDif = Dif[0];
-- UInt32 numMinDif = 0;
-- Dif[0] = 0;
-- for (i = 1; i < sizeof(Dif) / sizeof(Dif[0]); i++)
-- {
-- if (Dif[i] < minDif)
-- {
-- minDif = Dif[i];
-- numMinDif = i;
-- }
-- Dif[i] = 0;
-- }
-- switch(numMinDif)
-- {
-- case 1: if (K1 >= -16) K1--; break;
-- case 2: if (K1 < 16) K1++; break;
-- case 3: if (K2 >= -16) K2--; break;
-- case 4: if (K2 < 16) K2++; break;
-- case 5: if (K3 >= -16) K3--; break;
-- case 6: if (K3 < 16) K3++; break;
-- case 7: if (K4 >= -16) K4--; break;
-- case 8: if (K4 < 16) K4++; break;
-- case 9: if (K5 >= -16) K5--; break;
-- case 10:if (K5 < 16) K5++; break;
-- }
-- }
-- return realValue;
--}
--}
--
--static const char *kNumberErrorMessage = "Number error";
--
--static const UInt32 kHistorySize = 1 << 20;
--
--static const int kNumStats = 11;
--
--static const UInt32 kWindowReservSize = (1 << 22) + 256;
--
--CDecoder::CDecoder():
-- m_IsSolid(false)
--{
--}
--
--void CDecoder::InitStructures()
--{
-- m_MmFilter.Init();
-- for(int i = 0; i < kNumRepDists; i++)
-- m_RepDists[i] = 0;
-- m_RepDistPtr = 0;
-- m_LastLength = 0;
-- memset(m_LastLevels, 0, kMaxTableSize);
--}
--
--UInt32 CDecoder::ReadBits(int numBits) { return m_InBitStream.ReadBits(numBits); }
--
--#define RIF(x) { if (!(x)) return false; }
--
--bool CDecoder::ReadTables(void)
--{
-- Byte levelLevels[kLevelTableSize];
-- Byte newLevels[kMaxTableSize];
-- m_AudioMode = (ReadBits(1) == 1);
--
-- if (ReadBits(1) == 0)
-- memset(m_LastLevels, 0, kMaxTableSize);
-- int numLevels;
-- if (m_AudioMode)
-- {
-- m_NumChannels = ReadBits(2) + 1;
-- if (m_MmFilter.CurrentChannel >= m_NumChannels)
-- m_MmFilter.CurrentChannel = 0;
-- numLevels = m_NumChannels * kMMTableSize;
-- }
-- else
-- numLevels = kHeapTablesSizesSum;
--
-- int i;
-- for (i = 0; i < kLevelTableSize; i++)
-- levelLevels[i] = (Byte)ReadBits(4);
-- RIF(m_LevelDecoder.SetCodeLengths(levelLevels));
-- i = 0;
-- while (i < numLevels)
-- {
-- UInt32 number = m_LevelDecoder.DecodeSymbol(&m_InBitStream);
-- if (number < kTableDirectLevels)
-- {
-- newLevels[i] = (Byte)((number + m_LastLevels[i]) & kLevelMask);
-- i++;
-- }
-- else
-- {
-- if (number == kTableLevelRepNumber)
-- {
-- int t = ReadBits(2) + 3;
-- for (int reps = t; reps > 0 && i < numLevels ; reps--, i++)
-- newLevels[i] = newLevels[i - 1];
-- }
-- else
-- {
-- int num;
-- if (number == kTableLevel0Number)
-- num = ReadBits(3) + 3;
-- else if (number == kTableLevel0Number2)
-- num = ReadBits(7) + 11;
-- else
-- return false;
-- for (;num > 0 && i < numLevels; num--)
-- newLevels[i++] = 0;
-- }
-- }
-- }
-- if (m_AudioMode)
-- for (i = 0; i < m_NumChannels; i++)
-- {
-- RIF(m_MMDecoders[i].SetCodeLengths(&newLevels[i * kMMTableSize]));
-- }
-- else
-- {
-- RIF(m_MainDecoder.SetCodeLengths(&newLevels[0]));
-- RIF(m_DistDecoder.SetCodeLengths(&newLevels[kMainTableSize]));
-- RIF(m_LenDecoder.SetCodeLengths(&newLevels[kMainTableSize + kDistTableSize]));
-- }
-- memcpy(m_LastLevels, newLevels, kMaxTableSize);
-- return true;
--}
--
--bool CDecoder::ReadLastTables()
--{
-- // it differs a little from pure RAR sources;
-- // UInt64 ttt = m_InBitStream.GetProcessedSize() + 2;
-- // + 2 works for: return 0xFF; in CInBuffer::ReadByte.
-- if (m_InBitStream.GetProcessedSize() + 7 <= m_PackSize) // test it: probably incorrect;
-- // if (m_InBitStream.GetProcessedSize() + 2 <= m_PackSize) // test it: probably incorrect;
-- if (m_AudioMode)
-- {
-- UInt32 symbol = m_MMDecoders[m_MmFilter.CurrentChannel].DecodeSymbol(&m_InBitStream);
-- if (symbol == 256)
-- return ReadTables();
-- if (symbol >= kMMTableSize)
-- return false;
-- }
-- else
-- {
-- UInt32 number = m_MainDecoder.DecodeSymbol(&m_InBitStream);
-- if (number == kReadTableNumber)
-- return ReadTables();
-- if (number >= kMainTableSize)
-- return false;
-- }
-- return true;
--}
--
--class CCoderReleaser
--{
-- CDecoder *m_Coder;
--public:
-- CCoderReleaser(CDecoder *coder): m_Coder(coder) {}
-- ~CCoderReleaser()
-- {
-- m_Coder->ReleaseStreams();
-- }
--};
--
--bool CDecoder::DecodeMm(UInt32 pos)
--{
-- while (pos-- > 0)
-- {
-- UInt32 symbol = m_MMDecoders[m_MmFilter.CurrentChannel].DecodeSymbol(&m_InBitStream);
-- if (symbol == 256)
-- return true;
-- if (symbol >= kMMTableSize)
-- return false;
-- /*
-- Byte byPredict = m_Predictor.Predict();
-- Byte byReal = (Byte)(byPredict - (Byte)symbol);
-- m_Predictor.Update(byReal, byPredict);
-- */
-- Byte byReal = m_MmFilter.Decode((Byte)symbol);
-- m_OutWindowStream.PutByte(byReal);
-- if (++m_MmFilter.CurrentChannel == m_NumChannels)
-- m_MmFilter.CurrentChannel = 0;
-- }
-- return true;
--}
--
--bool CDecoder::DecodeLz(Int32 pos)
--{
-- while (pos > 0)
-- {
-- UInt32 number = m_MainDecoder.DecodeSymbol(&m_InBitStream);
-- UInt32 length, distance;
-- if (number < 256)
-- {
-- m_OutWindowStream.PutByte(Byte(number));
-- pos--;
-- continue;
-- }
-- else if (number >= kMatchNumber)
-- {
-- number -= kMatchNumber;
-- length = kNormalMatchMinLen + UInt32(kLenStart[number]) +
-- m_InBitStream.ReadBits(kLenDirectBits[number]);
-- number = m_DistDecoder.DecodeSymbol(&m_InBitStream);
-- if (number >= kDistTableSize)
-- return false;
-- distance = kDistStart[number] + m_InBitStream.ReadBits(kDistDirectBits[number]);
-- if (distance >= kDistLimit3)
-- {
-- length += 2 - ((distance - kDistLimit4) >> 31);
-- // length++;
-- // if (distance >= kDistLimit4)
-- // length++;
-- }
-- }
-- else if (number == kRepBothNumber)
-- {
-- length = m_LastLength;
-- if (length == 0)
-- return false;
-- distance = m_RepDists[(m_RepDistPtr + 4 - 1) & 3];
-- }
-- else if (number < kLen2Number)
-- {
-- distance = m_RepDists[(m_RepDistPtr - (number - kRepNumber + 1)) & 3];
-- number = m_LenDecoder.DecodeSymbol(&m_InBitStream);
-- if (number >= kLenTableSize)
-- return false;
-- length = 2 + kLenStart[number] + m_InBitStream.ReadBits(kLenDirectBits[number]);
-- if (distance >= kDistLimit2)
-- {
-- length++;
-- if (distance >= kDistLimit3)
-- {
-- length += 2 - ((distance - kDistLimit4) >> 31);
-- // length++;
-- // if (distance >= kDistLimit4)
-- // length++;
-- }
-- }
-- }
-- else if (number < kReadTableNumber)
-- {
-- number -= kLen2Number;
-- distance = kLen2DistStarts[number] +
-- m_InBitStream.ReadBits(kLen2DistDirectBits[number]);
-- length = 2;
-- }
-- else if (number == kReadTableNumber)
-- return true;
-- else
-- return false;
-- m_RepDists[m_RepDistPtr++ & 3] = distance;
-- m_LastLength = length;
-- if (!m_OutWindowStream.CopyBlock(distance, length))
-- return false;
-- pos -= length;
-- }
-- return true;
--}
--
--HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *outStream,
-- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress)
--{
-- if (inSize == NULL || outSize == NULL)
-- return E_INVALIDARG;
--
-- if (!m_OutWindowStream.Create(kHistorySize))
-- return E_OUTOFMEMORY;
-- if (!m_InBitStream.Create(1 << 20))
-- return E_OUTOFMEMORY;
--
-- m_PackSize = *inSize;
--
-- UInt64 pos = 0, unPackSize = *outSize;
--
-- m_OutWindowStream.SetStream(outStream);
-- m_OutWindowStream.Init(m_IsSolid);
-- m_InBitStream.SetStream(inStream);
-- m_InBitStream.Init();
--
-- CCoderReleaser coderReleaser(this);
-- if (!m_IsSolid)
-- {
-- InitStructures();
-- if (unPackSize == 0)
-- {
-- if (m_InBitStream.GetProcessedSize() + 2 <= m_PackSize) // test it: probably incorrect;
-- if (!ReadTables())
-- return S_FALSE;
-- return S_OK;
-- }
-- if (!ReadTables())
-- return S_FALSE;
-- }
--
-- UInt64 startPos = m_OutWindowStream.GetProcessedSize();
-- while(pos < unPackSize)
-- {
-- UInt32 blockSize = 1 << 20;
-- if (blockSize > unPackSize - pos)
-- blockSize = (UInt32)(unPackSize - pos);
-- UInt64 blockStartPos = m_OutWindowStream.GetProcessedSize();
-- if (m_AudioMode)
-- {
-- if (!DecodeMm(blockSize))
-- return S_FALSE;
-- }
-- else
-- {
-- if (!DecodeLz((Int32)blockSize))
-- return S_FALSE;
-- }
-- UInt64 globalPos = m_OutWindowStream.GetProcessedSize();
-- pos = globalPos - blockStartPos;
-- if (pos < blockSize)
-- if (!ReadTables())
-- return S_FALSE;
-- pos = globalPos - startPos;
-- if (progress != 0)
-- {
-- UInt64 packSize = m_InBitStream.GetProcessedSize();
-- RINOK(progress->SetRatioInfo(&packSize, &pos));
-- }
-- }
-- if (pos > unPackSize)
-- return S_FALSE;
--
-- if (!ReadLastTables())
-- return S_FALSE;
-- return m_OutWindowStream.Flush();
--}
--
--STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream *outStream,
-- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress)
--{
-- try { return CodeReal(inStream, outStream, inSize, outSize, progress); }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(const CLzOutWindowException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
--}
--
--STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
--{
-- if (size < 1)
-- return E_INVALIDARG;
-- m_IsSolid = (data[0] != 0);
-- return S_OK;
--}
--
--}}
-diff -ruNa p7zip_9.20.1/CPP/7zip/Compress/Rar2Decoder.h p7zip-libre_9.20.1/CPP/7zip/Compress/Rar2Decoder.h
---- p7zip_9.20.1/CPP/7zip/Compress/Rar2Decoder.h 2009-02-07 15:06:28.000000000 -0200
-+++ p7zip-libre_9.20.1/CPP/7zip/Compress/Rar2Decoder.h 1969-12-31 21:00:00.000000000 -0300
-@@ -1,174 +0,0 @@
--// Rar2Decoder.h
--// According to unRAR license, this code may not be used to develop
--// a program that creates RAR archives
--
--#ifndef __COMPRESS_RAR2_DECODER_H
--#define __COMPRESS_RAR2_DECODER_H
--
--#include "../../Common/MyCom.h"
--
--#include "../ICoder.h"
--
--#include "../Common/InBuffer.h"
--
--#include "BitmDecoder.h"
--#include "HuffmanDecoder.h"
--#include "LzOutWindow.h"
--
--namespace NCompress {
--namespace NRar2 {
--
--const UInt32 kNumRepDists = 4;
--const UInt32 kDistTableSize = 48;
--
--const int kMMTableSize = 256 + 1;
--
--const UInt32 kMainTableSize = 298;
--const UInt32 kLenTableSize = 28;
--
--const UInt32 kDistTableStart = kMainTableSize;
--const UInt32 kLenTableStart = kDistTableStart + kDistTableSize;
--
--const UInt32 kHeapTablesSizesSum = kMainTableSize + kDistTableSize + kLenTableSize;
--
--const UInt32 kLevelTableSize = 19;
--
--const UInt32 kMMTablesSizesSum = kMMTableSize * 4;
--
--const UInt32 kMaxTableSize = kMMTablesSizesSum;
--
--const UInt32 kTableDirectLevels = 16;
--const UInt32 kTableLevelRepNumber = kTableDirectLevels;
--const UInt32 kTableLevel0Number = kTableLevelRepNumber + 1;
--const UInt32 kTableLevel0Number2 = kTableLevel0Number + 1;
--
--const UInt32 kLevelMask = 0xF;
--
--
--const UInt32 kRepBothNumber = 256;
--const UInt32 kRepNumber = kRepBothNumber + 1;
--const UInt32 kLen2Number = kRepNumber + 4;
--
--const UInt32 kLen2NumNumbers = 8;
--const UInt32 kReadTableNumber = kLen2Number + kLen2NumNumbers;
--const UInt32 kMatchNumber = kReadTableNumber + 1;
--
--const Byte kLenStart[kLenTableSize] = {0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224};
--const Byte kLenDirectBits[kLenTableSize] = {0,0,0,0,0,0,0,0,1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5};
--
--const UInt32 kDistStart[kDistTableSize] = {0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576,32768U,49152U,65536,98304,131072,196608,262144,327680,393216,458752,524288,589824,655360,720896,786432,851968,917504,983040};
--const Byte kDistDirectBits[kDistTableSize] = {0,0,0,0,1,1,2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16};
--
--const Byte kLevelDirectBits[kLevelTableSize] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7};
--
--const Byte kLen2DistStarts[kLen2NumNumbers]={0,4,8,16,32,64,128,192};
--const Byte kLen2DistDirectBits[kLen2NumNumbers]={2,2,3, 4, 5, 6, 6, 6};
--
--const UInt32 kDistLimit2 = 0x101 - 1;
--const UInt32 kDistLimit3 = 0x2000 - 1;
--const UInt32 kDistLimit4 = 0x40000 - 1;
--
--const UInt32 kMatchMaxLen = 255 + 2;
--const UInt32 kMatchMaxLenMax = 255 + 5;
--const UInt32 kNormalMatchMinLen = 3;
--
--namespace NMultimedia {
--
--struct CFilter
--{
-- int K1,K2,K3,K4,K5;
-- int D1,D2,D3,D4;
-- int LastDelta;
-- UInt32 Dif[11];
-- UInt32 ByteCount;
-- int LastChar;
--
-- Byte Decode(int &channelDelta, Byte delta);
--
-- void Init() { memset(this, 0, sizeof(*this)); }
--
--};
--
--const int kNumChanelsMax = 4;
--
--class CFilter2
--{
--public:
-- CFilter m_Filters[kNumChanelsMax];
-- int m_ChannelDelta;
-- int CurrentChannel;
--
-- void Init() { memset(this, 0, sizeof(*this)); }
-- Byte Decode(Byte delta)
-- {
-- return m_Filters[CurrentChannel].Decode(m_ChannelDelta, delta);
-- }
--
--};
--
--}
--
--typedef NBitm::CDecoder<CInBuffer> CBitDecoder;
--
--const int kNumHuffmanBits = 15;
--
--class CDecoder :
-- public ICompressCoder,
-- public ICompressSetDecoderProperties2,
-- public CMyUnknownImp
--{
-- CLzOutWindow m_OutWindowStream;
-- CBitDecoder m_InBitStream;
-- NHuffman::CDecoder<kNumHuffmanBits, kMainTableSize> m_MainDecoder;
-- NHuffman::CDecoder<kNumHuffmanBits, kDistTableSize> m_DistDecoder;
-- NHuffman::CDecoder<kNumHuffmanBits, kLenTableSize> m_LenDecoder;
-- NHuffman::CDecoder<kNumHuffmanBits, kMMTableSize> m_MMDecoders[NMultimedia::kNumChanelsMax];
-- NHuffman::CDecoder<kNumHuffmanBits, kLevelTableSize> m_LevelDecoder;
--
-- bool m_AudioMode;
--
-- NMultimedia::CFilter2 m_MmFilter;
-- int m_NumChannels;
--
-- UInt32 m_RepDists[kNumRepDists];
-- UInt32 m_RepDistPtr;
--
-- UInt32 m_LastLength;
--
-- Byte m_LastLevels[kMaxTableSize];
--
-- UInt64 m_PackSize;
-- bool m_IsSolid;
--
-- void InitStructures();
-- UInt32 ReadBits(int numBits);
-- bool ReadTables();
-- bool ReadLastTables();
--
-- bool DecodeMm(UInt32 pos);
-- bool DecodeLz(Int32 pos);
--
-- HRESULT CodeReal(ISequentialInStream *inStream, ISequentialOutStream *outStream,
-- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);
--
--public:
-- CDecoder();
--
-- MY_UNKNOWN_IMP1(ICompressSetDecoderProperties2)
--
-- void ReleaseStreams()
-- {
-- m_OutWindowStream.ReleaseStream();
-- m_InBitStream.ReleaseStream();
-- }
--
-- STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream,
-- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);
--
-- STDMETHOD(SetDecoderProperties2)(const Byte *data, UInt32 size);
--
--};
--
--}}
--
--#endif
-diff -ruNa p7zip_9.20.1/CPP/7zip/Compress/Rar3Decoder.cpp p7zip-libre_9.20.1/CPP/7zip/Compress/Rar3Decoder.cpp
---- p7zip_9.20.1/CPP/7zip/Compress/Rar3Decoder.cpp 2010-09-14 16:18:38.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Compress/Rar3Decoder.cpp 1969-12-31 21:00:00.000000000 -0300
-@@ -1,897 +0,0 @@
--// Rar3Decoder.cpp
--// According to unRAR license, this code may not be used to develop
--// a program that creates RAR archives
--
--/* This code uses Carryless rangecoder (1999): Dmitry Subbotin : Public domain */
--
--#include "StdAfx.h"
--
--#include "../../../C/Alloc.h"
--
--#include "../Common/StreamUtils.h"
--
--#include "Rar3Decoder.h"
--
--namespace NCompress {
--namespace NRar3 {
--
--static void *SzBigAlloc(void *, size_t size) { return BigAlloc(size); }
--static void SzBigFree(void *, void *address) { BigFree(address); }
--static ISzAlloc g_BigAlloc = { SzBigAlloc, SzBigFree };
--
--static const UInt32 kNumAlignReps = 15;
--
--static const UInt32 kSymbolReadTable = 256;
--static const UInt32 kSymbolRep = 259;
--static const UInt32 kSymbolLen2 = kSymbolRep + kNumReps;
--
--static const Byte kLenStart[kLenTableSize] = {0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224};
--static const Byte kLenDirectBits[kLenTableSize] = {0,0,0,0,0,0,0,0,1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5};
--
--static const Byte kDistDirectBits[kDistTableSize] =
-- {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,
-- 16,16,16,16,16,16,16,16,16,16,16,16,16,16,
-- 18,18,18,18,18,18,18,18,18,18,18,18};
--
--static const Byte kLevelDirectBits[kLevelTableSize] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7};
--
--static const Byte kLen2DistStarts[kNumLen2Symbols]={0,4,8,16,32,64,128,192};
--static const Byte kLen2DistDirectBits[kNumLen2Symbols]={2,2,3, 4, 5, 6, 6, 6};
--
--static const UInt32 kDistLimit3 = 0x2000 - 2;
--static const UInt32 kDistLimit4 = 0x40000 - 2;
--
--static const UInt32 kNormalMatchMinLen = 3;
--
--static const UInt32 kVmDataSizeMax = 1 << 16;
--static const UInt32 kVmCodeSizeMax = 1 << 16;
--
--extern "C" {
--
--static UInt32 Range_GetThreshold(void *pp, UInt32 total)
--{
-- CRangeDecoder *p = (CRangeDecoder *)pp;
-- return p->Code / (p->Range /= total);
--}
--
--static void Range_Decode(void *pp, UInt32 start, UInt32 size)
--{
-- CRangeDecoder *p = (CRangeDecoder *)pp;
-- start *= p->Range;
-- p->Low += start;
-- p->Code -= start;
-- p->Range *= size;
-- p->Normalize();
--}
--
--static UInt32 Range_DecodeBit(void *pp, UInt32 size0)
--{
-- CRangeDecoder *p = (CRangeDecoder *)pp;
-- if (p->Code / (p->Range >>= 14) < size0)
-- {
-- Range_Decode(p, 0, size0);
-- return 0;
-- }
-- else
-- {
-- Range_Decode(p, size0, (1 << 14) - size0);
-- return 1;
-- }
--}
--
--}
--
--CRangeDecoder::CRangeDecoder()
--{
-- s.GetThreshold = Range_GetThreshold;
-- s.Decode = Range_Decode;
-- s.DecodeBit = Range_DecodeBit;
--}
--
--CDecoder::CDecoder():
-- _window(0),
-- _winPos(0),
-- _wrPtr(0),
-- _lzSize(0),
-- _writtenFileSize(0),
-- _vmData(0),
-- _vmCode(0),
-- m_IsSolid(false)
--{
-- Ppmd7_Construct(&_ppmd);
--}
--
--CDecoder::~CDecoder()
--{
-- InitFilters();
-- ::MidFree(_vmData);
-- ::MidFree(_window);
-- Ppmd7_Free(&_ppmd, &g_BigAlloc);
--}
--
--HRESULT CDecoder::WriteDataToStream(const Byte *data, UInt32 size)
--{
-- return WriteStream(_outStream, data, size);
--}
--
--HRESULT CDecoder::WriteData(const Byte *data, UInt32 size)
--{
-- HRESULT res = S_OK;
-- if (_writtenFileSize < _unpackSize)
-- {
-- UInt32 curSize = size;
-- UInt64 remain = _unpackSize - _writtenFileSize;
-- if (remain < curSize)
-- curSize = (UInt32)remain;
-- res = WriteDataToStream(data, curSize);
-- }
-- _writtenFileSize += size;
-- return res;
--}
--
--HRESULT CDecoder::WriteArea(UInt32 startPtr, UInt32 endPtr)
--{
-- if (startPtr <= endPtr)
-- return WriteData(_window + startPtr, endPtr - startPtr);
-- RINOK(WriteData(_window + startPtr, kWindowSize - startPtr));
-- return WriteData(_window, endPtr);
--}
--
--void CDecoder::ExecuteFilter(int tempFilterIndex, NVm::CBlockRef &outBlockRef)
--{
-- CTempFilter *tempFilter = _tempFilters[tempFilterIndex];
-- tempFilter->InitR[6] = (UInt32)_writtenFileSize;
-- NVm::SetValue32(&tempFilter->GlobalData[0x24], (UInt32)_writtenFileSize);
-- NVm::SetValue32(&tempFilter->GlobalData[0x28], (UInt32)(_writtenFileSize >> 32));
-- CFilter *filter = _filters[tempFilter->FilterIndex];
-- _vm.Execute(filter, tempFilter, outBlockRef, filter->GlobalData);
-- delete tempFilter;
-- _tempFilters[tempFilterIndex] = 0;
--}
--
--HRESULT CDecoder::WriteBuf()
--{
-- UInt32 writtenBorder = _wrPtr;
-- UInt32 writeSize = (_winPos - writtenBorder) & kWindowMask;
-- for (int i = 0; i < _tempFilters.Size(); i++)
-- {
-- CTempFilter *filter = _tempFilters[i];
-- if (filter == NULL)
-- continue;
-- if (filter->NextWindow)
-- {
-- filter->NextWindow = false;
-- continue;
-- }
-- UInt32 blockStart = filter->BlockStart;
-- UInt32 blockSize = filter->BlockSize;
-- if (((blockStart - writtenBorder) & kWindowMask) < writeSize)
-- {
-- if (writtenBorder != blockStart)
-- {
-- RINOK(WriteArea(writtenBorder, blockStart));
-- writtenBorder = blockStart;
-- writeSize = (_winPos - writtenBorder) & kWindowMask;
-- }
-- if (blockSize <= writeSize)
-- {
-- UInt32 blockEnd = (blockStart + blockSize) & kWindowMask;
-- if (blockStart < blockEnd || blockEnd == 0)
-- _vm.SetMemory(0, _window + blockStart, blockSize);
-- else
-- {
-- UInt32 tailSize = kWindowSize - blockStart;
-- _vm.SetMemory(0, _window + blockStart, tailSize);
-- _vm.SetMemory(tailSize, _window, blockEnd);
-- }
-- NVm::CBlockRef outBlockRef;
-- ExecuteFilter(i, outBlockRef);
-- while (i + 1 < _tempFilters.Size())
-- {
-- CTempFilter *nextFilter = _tempFilters[i + 1];
-- if (nextFilter == NULL || nextFilter->BlockStart != blockStart ||
-- nextFilter->BlockSize != outBlockRef.Size || nextFilter->NextWindow)
-- break;
-- _vm.SetMemory(0, _vm.GetDataPointer(outBlockRef.Offset), outBlockRef.Size);
-- ExecuteFilter(++i, outBlockRef);
-- }
-- WriteDataToStream(_vm.GetDataPointer(outBlockRef.Offset), outBlockRef.Size);
-- _writtenFileSize += outBlockRef.Size;
-- writtenBorder = blockEnd;
-- writeSize = (_winPos - writtenBorder) & kWindowMask;
-- }
-- else
-- {
-- for (int j = i; j < _tempFilters.Size(); j++)
-- {
-- CTempFilter *filter = _tempFilters[j];
-- if (filter != NULL && filter->NextWindow)
-- filter->NextWindow = false;
-- }
-- _wrPtr = writtenBorder;
-- return S_OK; // check it
-- }
-- }
-- }
--
-- _wrPtr = _winPos;
-- return WriteArea(writtenBorder, _winPos);
--}
--
--void CDecoder::InitFilters()
--{
-- _lastFilter = 0;
-- int i;
-- for (i = 0; i < _tempFilters.Size(); i++)
-- delete _tempFilters[i];
-- _tempFilters.Clear();
-- for (i = 0; i < _filters.Size(); i++)
-- delete _filters[i];
-- _filters.Clear();
--}
--
--bool CDecoder::AddVmCode(UInt32 firstByte, UInt32 codeSize)
--{
-- CMemBitDecoder inp;
-- inp.Init(_vmData, codeSize);
--
-- UInt32 filterIndex;
-- if (firstByte & 0x80)
-- {
-- filterIndex = NVm::ReadEncodedUInt32(inp);
-- if (filterIndex == 0)
-- InitFilters();
-- else
-- filterIndex--;
-- }
-- else
-- filterIndex = _lastFilter;
-- if (filterIndex > (UInt32)_filters.Size())
-- return false;
-- _lastFilter = filterIndex;
-- bool newFilter = (filterIndex == (UInt32)_filters.Size());
--
-- CFilter *filter;
-- if (newFilter)
-- {
-- // check if too many filters
-- if (filterIndex > 1024)
-- return false;
-- filter = new CFilter;
-- _filters.Add(filter);
-- }
-- else
-- {
-- filter = _filters[filterIndex];
-- filter->ExecCount++;
-- }
--
-- int numEmptyItems = 0;
-- int i;
-- for (i = 0; i < _tempFilters.Size(); i++)
-- {
-- _tempFilters[i - numEmptyItems] = _tempFilters[i];
-- if (_tempFilters[i] == NULL)
-- numEmptyItems++;
-- if (numEmptyItems > 0)
-- _tempFilters[i] = NULL;
-- }
-- if (numEmptyItems == 0)
-- {
-- _tempFilters.Add(NULL);
-- numEmptyItems = 1;
-- }
-- CTempFilter *tempFilter = new CTempFilter;
-- _tempFilters[_tempFilters.Size() - numEmptyItems] = tempFilter;
-- tempFilter->FilterIndex = filterIndex;
-- tempFilter->ExecCount = filter->ExecCount;
--
-- UInt32 blockStart = NVm::ReadEncodedUInt32(inp);
-- if (firstByte & 0x40)
-- blockStart += 258;
-- tempFilter->BlockStart = (blockStart + _winPos) & kWindowMask;
-- if (firstByte & 0x20)
-- filter->BlockSize = NVm::ReadEncodedUInt32(inp);
-- tempFilter->BlockSize = filter->BlockSize;
-- tempFilter->NextWindow = _wrPtr != _winPos && ((_wrPtr - _winPos) & kWindowMask) <= blockStart;
--
-- memset(tempFilter->InitR, 0, sizeof(tempFilter->InitR));
-- tempFilter->InitR[3] = NVm::kGlobalOffset;
-- tempFilter->InitR[4] = tempFilter->BlockSize;
-- tempFilter->InitR[5] = tempFilter->ExecCount;
-- if (firstByte & 0x10)
-- {
-- UInt32 initMask = inp.ReadBits(NVm::kNumGpRegs);
-- for (int i = 0; i < NVm::kNumGpRegs; i++)
-- if (initMask & (1 << i))
-- tempFilter->InitR[i] = NVm::ReadEncodedUInt32(inp);
-- }
-- if (newFilter)
-- {
-- UInt32 vmCodeSize = NVm::ReadEncodedUInt32(inp);
-- if (vmCodeSize >= kVmCodeSizeMax || vmCodeSize == 0)
-- return false;
-- for (UInt32 i = 0; i < vmCodeSize; i++)
-- _vmCode[i] = (Byte)inp.ReadBits(8);
-- _vm.PrepareProgram(_vmCode, vmCodeSize, filter);
-- }
--
-- tempFilter->AllocateEmptyFixedGlobal();
--
-- Byte *globalData = &tempFilter->GlobalData[0];
-- for (i = 0; i < NVm::kNumGpRegs; i++)
-- NVm::SetValue32(&globalData[i * 4], tempFilter->InitR[i]);
-- NVm::SetValue32(&globalData[NVm::NGlobalOffset::kBlockSize], tempFilter->BlockSize);
-- NVm::SetValue32(&globalData[NVm::NGlobalOffset::kBlockPos], 0); // It was commented. why?
-- NVm::SetValue32(&globalData[NVm::NGlobalOffset::kExecCount], tempFilter->ExecCount);
--
-- if (firstByte & 8)
-- {
-- UInt32 dataSize = NVm::ReadEncodedUInt32(inp);
-- if (dataSize > NVm::kGlobalSize - NVm::kFixedGlobalSize)
-- return false;
-- CRecordVector<Byte> &globalData = tempFilter->GlobalData;
-- int requredSize = (int)(dataSize + NVm::kFixedGlobalSize);
-- if (globalData.Size() < requredSize)
-- {
-- globalData.Reserve(requredSize);
-- for (; globalData.Size() < requredSize; i++)
-- globalData.Add(0);
-- }
-- for (UInt32 i = 0; i < dataSize; i++)
-- globalData[NVm::kFixedGlobalSize + i] = (Byte)inp.ReadBits(8);
-- }
-- return true;
--}
--
--bool CDecoder::ReadVmCodeLZ()
--{
-- UInt32 firstByte = ReadBits(8);
-- UInt32 length = (firstByte & 7) + 1;
-- if (length == 7)
-- length = ReadBits(8) + 7;
-- else if (length == 8)
-- length = ReadBits(16);
-- if (length > kVmDataSizeMax)
-- return false;
-- for (UInt32 i = 0; i < length; i++)
-- _vmData[i] = (Byte)ReadBits(8);
-- return AddVmCode(firstByte, length);
--}
--
--bool CDecoder::ReadVmCodePPM()
--{
-- int firstByte = DecodePpmSymbol();
-- if (firstByte < 0)
-- return false;
-- UInt32 length = (firstByte & 7) + 1;
-- if (length == 7)
-- {
-- int b1 = DecodePpmSymbol();
-- if (b1 < 0)
-- return false;
-- length = b1 + 7;
-- }
-- else if (length == 8)
-- {
-- int b1 = DecodePpmSymbol();
-- if (b1 < 0)
-- return false;
-- int b2 = DecodePpmSymbol();
-- if (b2 < 0)
-- return false;
-- length = b1 * 256 + b2;
-- }
-- if (length > kVmDataSizeMax)
-- return false;
-- for (UInt32 i = 0; i < length; i++)
-- {
-- int b = DecodePpmSymbol();
-- if (b < 0)
-- return false;
-- _vmData[i] = (Byte)b;
-- }
-- return AddVmCode(firstByte, length);
--}
--
--#define RIF(x) { if (!(x)) return S_FALSE; }
--
--UInt32 CDecoder::ReadBits(int numBits) { return m_InBitStream.bitDecoder.ReadBits(numBits); }
--
--/////////////////////////////////////////////////
--// PPM
--
--HRESULT CDecoder::InitPPM()
--{
-- Byte maxOrder = (Byte)ReadBits(7);
--
-- bool reset = ((maxOrder & 0x20) != 0);
-- int maxMB = 0;
-- if (reset)
-- maxMB = (Byte)ReadBits(8);
-- else
-- {
-- if (PpmError || !Ppmd7_WasAllocated(&_ppmd))
-- return S_FALSE;
-- }
-- if (maxOrder & 0x40)
-- PpmEscChar = (Byte)ReadBits(8);
-- m_InBitStream.InitRangeCoder();
-- /*
-- if (m_InBitStream.m_BitPos != 0)
-- return S_FALSE;
-- */
-- if (reset)
-- {
-- PpmError = true;
-- maxOrder = (maxOrder & 0x1F) + 1;
-- if (maxOrder > 16)
-- maxOrder = 16 + (maxOrder - 16) * 3;
-- if (maxOrder == 1)
-- {
-- Ppmd7_Free(&_ppmd, &g_BigAlloc);
-- return S_FALSE;
-- }
-- if (!Ppmd7_Alloc(&_ppmd, (maxMB + 1) << 20, &g_BigAlloc))
-- return E_OUTOFMEMORY;
-- Ppmd7_Init(&_ppmd, maxOrder);
-- PpmError = false;
-- }
-- return S_OK;
--}
--
--int CDecoder::DecodePpmSymbol() { return Ppmd7_DecodeSymbol(&_ppmd, &m_InBitStream.s); }
--
--HRESULT CDecoder::DecodePPM(Int32 num, bool &keepDecompressing)
--{
-- keepDecompressing = false;
-- if (PpmError)
-- return S_FALSE;
-- do
-- {
-- if (((_wrPtr - _winPos) & kWindowMask) < 260 && _wrPtr != _winPos)
-- {
-- RINOK(WriteBuf());
-- if (_writtenFileSize > _unpackSize)
-- {
-- keepDecompressing = false;
-- return S_OK;
-- }
-- }
-- int c = DecodePpmSymbol();
-- if (c < 0)
-- {
-- PpmError = true;
-- return S_FALSE;
-- }
-- if (c == PpmEscChar)
-- {
-- int nextCh = DecodePpmSymbol();
-- if (nextCh < 0)
-- {
-- PpmError = true;
-- return S_FALSE;
-- }
-- if (nextCh == 0)
-- return ReadTables(keepDecompressing);
-- if (nextCh == 2 || nextCh == -1)
-- return S_OK;
-- if (nextCh == 3)
-- {
-- if (!ReadVmCodePPM())
-- {
-- PpmError = true;
-- return S_FALSE;
-- }
-- continue;
-- }
-- if (nextCh == 4 || nextCh == 5)
-- {
-- UInt32 distance = 0;
-- UInt32 length = 4;
-- if (nextCh == 4)
-- {
-- for (int i = 0; i < 3; i++)
-- {
-- int c = DecodePpmSymbol();
-- if (c < 0)
-- {
-- PpmError = true;
-- return S_FALSE;
-- }
-- distance = (distance << 8) + (Byte)c;
-- }
-- distance++;
-- length += 28;
-- }
-- int c = DecodePpmSymbol();
-- if (c < 0)
-- {
-- PpmError = true;
-- return S_FALSE;
-- }
-- length += c;
-- if (distance >= _lzSize)
-- return S_FALSE;
-- CopyBlock(distance, length);
-- num -= (Int32)length;
-- continue;
-- }
-- }
-- PutByte((Byte)c);
-- num--;
-- }
-- while (num >= 0);
-- keepDecompressing = true;
-- return S_OK;
--}
--
--/////////////////////////////////////////////////
--// LZ
--
--HRESULT CDecoder::ReadTables(bool &keepDecompressing)
--{
-- keepDecompressing = true;
-- ReadBits((8 - m_InBitStream.bitDecoder.GetBitPosition()) & 7);
-- if (ReadBits(1) != 0)
-- {
-- _lzMode = false;
-- return InitPPM();
-- }
--
-- _lzMode = true;
-- PrevAlignBits = 0;
-- PrevAlignCount = 0;
--
-- Byte levelLevels[kLevelTableSize];
-- Byte newLevels[kTablesSizesSum];
--
-- if (ReadBits(1) == 0)
-- memset(m_LastLevels, 0, kTablesSizesSum);
--
-- int i;
-- for (i = 0; i < kLevelTableSize; i++)
-- {
-- UInt32 length = ReadBits(4);
-- if (length == 15)
-- {
-- UInt32 zeroCount = ReadBits(4);
-- if (zeroCount != 0)
-- {
-- zeroCount += 2;
-- while (zeroCount-- > 0 && i < kLevelTableSize)
-- levelLevels[i++]=0;
-- i--;
-- continue;
-- }
-- }
-- levelLevels[i] = (Byte)length;
-- }
-- RIF(m_LevelDecoder.SetCodeLengths(levelLevels));
-- i = 0;
-- while (i < kTablesSizesSum)
-- {
-- UInt32 number = m_LevelDecoder.DecodeSymbol(&m_InBitStream.bitDecoder);
-- if (number < 16)
-- {
-- newLevels[i] = Byte((number + m_LastLevels[i]) & 15);
-- i++;
-- }
-- else if (number > kLevelTableSize)
-- return S_FALSE;
-- else
-- {
-- int num;
-- if (((number - 16) & 1) == 0)
-- num = ReadBits(3) + 3;
-- else
-- num = ReadBits(7) + 11;
-- if (number < 18)
-- {
-- if (i == 0)
-- return S_FALSE;
-- for (; num > 0 && i < kTablesSizesSum; num--, i++)
-- newLevels[i] = newLevels[i - 1];
-- }
-- else
-- {
-- for (; num > 0 && i < kTablesSizesSum; num--)
-- newLevels[i++] = 0;
-- }
-- }
-- }
-- TablesRead = true;
--
-- // original code has check here:
-- /*
-- if (InAddr > ReadTop)
-- {
-- keepDecompressing = false;
-- return true;
-- }
-- */
--
-- RIF(m_MainDecoder.SetCodeLengths(&newLevels[0]));
-- RIF(m_DistDecoder.SetCodeLengths(&newLevels[kMainTableSize]));
-- RIF(m_AlignDecoder.SetCodeLengths(&newLevels[kMainTableSize + kDistTableSize]));
-- RIF(m_LenDecoder.SetCodeLengths(&newLevels[kMainTableSize + kDistTableSize + kAlignTableSize]));
--
-- memcpy(m_LastLevels, newLevels, kTablesSizesSum);
-- return S_OK;
--}
--
--class CCoderReleaser
--{
-- CDecoder *m_Coder;
--public:
-- CCoderReleaser(CDecoder *coder): m_Coder(coder) {}
-- ~CCoderReleaser()
-- {
-- m_Coder->ReleaseStreams();
-- }
--};
--
--HRESULT CDecoder::ReadEndOfBlock(bool &keepDecompressing)
--{
-- if (ReadBits(1) != 0)
-- {
-- // old file
-- TablesRead = false;
-- return ReadTables(keepDecompressing);
-- }
-- // new file
-- keepDecompressing = false;
-- TablesRead = (ReadBits(1) == 0);
-- return S_OK;
--}
--
--UInt32 kDistStart[kDistTableSize];
--
--class CDistInit
--{
--public:
-- CDistInit() { Init(); }
-- void Init()
-- {
-- UInt32 start = 0;
-- for (UInt32 i = 0; i < kDistTableSize; i++)
-- {
-- kDistStart[i] = start;
-- start += (1 << kDistDirectBits[i]);
-- }
-- }
--} g_DistInit;
--
--HRESULT CDecoder::DecodeLZ(bool &keepDecompressing)
--{
-- UInt32 rep0 = _reps[0];
-- UInt32 rep1 = _reps[1];
-- UInt32 rep2 = _reps[2];
-- UInt32 rep3 = _reps[3];
-- UInt32 length = _lastLength;
-- for (;;)
-- {
-- if (((_wrPtr - _winPos) & kWindowMask) < 260 && _wrPtr != _winPos)
-- {
-- RINOK(WriteBuf());
-- if (_writtenFileSize > _unpackSize)
-- {
-- keepDecompressing = false;
-- return S_OK;
-- }
-- }
-- UInt32 number = m_MainDecoder.DecodeSymbol(&m_InBitStream.bitDecoder);
-- if (number < 256)
-- {
-- PutByte((Byte)number);
-- continue;
-- }
-- else if (number == kSymbolReadTable)
-- {
-- RINOK(ReadEndOfBlock(keepDecompressing));
-- break;
-- }
-- else if (number == 257)
-- {
-- if (!ReadVmCodeLZ())
-- return S_FALSE;
-- continue;
-- }
-- else if (number == 258)
-- {
-- if (length == 0)
-- return S_FALSE;
-- }
-- else if (number < kSymbolRep + 4)
-- {
-- if (number != kSymbolRep)
-- {
-- UInt32 distance;
-- if (number == kSymbolRep + 1)
-- distance = rep1;
-- else
-- {
-- if (number == kSymbolRep + 2)
-- distance = rep2;
-- else
-- {
-- distance = rep3;
-- rep3 = rep2;
-- }
-- rep2 = rep1;
-- }
-- rep1 = rep0;
-- rep0 = distance;
-- }
--
-- UInt32 number = m_LenDecoder.DecodeSymbol(&m_InBitStream.bitDecoder);
-- if (number >= kLenTableSize)
-- return S_FALSE;
-- length = 2 + kLenStart[number] + m_InBitStream.bitDecoder.ReadBits(kLenDirectBits[number]);
-- }
-- else
-- {
-- rep3 = rep2;
-- rep2 = rep1;
-- rep1 = rep0;
-- if (number < 271)
-- {
-- number -= 263;
-- rep0 = kLen2DistStarts[number] + m_InBitStream.bitDecoder.ReadBits(kLen2DistDirectBits[number]);
-- length = 2;
-- }
-- else if (number < 299)
-- {
-- number -= 271;
-- length = kNormalMatchMinLen + (UInt32)kLenStart[number] + m_InBitStream.bitDecoder.ReadBits(kLenDirectBits[number]);
-- UInt32 number = m_DistDecoder.DecodeSymbol(&m_InBitStream.bitDecoder);
-- if (number >= kDistTableSize)
-- return S_FALSE;
-- rep0 = kDistStart[number];
-- int numBits = kDistDirectBits[number];
-- if (number >= (kNumAlignBits * 2) + 2)
-- {
-- if (numBits > kNumAlignBits)
-- rep0 += (m_InBitStream.bitDecoder.ReadBits(numBits - kNumAlignBits) << kNumAlignBits);
-- if (PrevAlignCount > 0)
-- {
-- PrevAlignCount--;
-- rep0 += PrevAlignBits;
-- }
-- else
-- {
-- UInt32 number = m_AlignDecoder.DecodeSymbol(&m_InBitStream.bitDecoder);
-- if (number < (1 << kNumAlignBits))
-- {
-- rep0 += number;
-- PrevAlignBits = number;
-- }
-- else if (number == (1 << kNumAlignBits))
-- {
-- PrevAlignCount = kNumAlignReps;
-- rep0 += PrevAlignBits;
-- }
-- else
-- return S_FALSE;
-- }
-- }
-- else
-- rep0 += m_InBitStream.bitDecoder.ReadBits(numBits);
-- length += ((kDistLimit4 - rep0) >> 31) + ((kDistLimit3 - rep0) >> 31);
-- }
-- else
-- return S_FALSE;
-- }
-- if (rep0 >= _lzSize)
-- return S_FALSE;
-- CopyBlock(rep0, length);
-- }
-- _reps[0] = rep0;
-- _reps[1] = rep1;
-- _reps[2] = rep2;
-- _reps[3] = rep3;
-- _lastLength = length;
--
-- return S_OK;
--}
--
--HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
--{
-- _writtenFileSize = 0;
-- if (!m_IsSolid)
-- {
-- _lzSize = 0;
-- _winPos = 0;
-- _wrPtr = 0;
-- for (int i = 0; i < kNumReps; i++)
-- _reps[i] = 0;
-- _lastLength = 0;
-- memset(m_LastLevels, 0, kTablesSizesSum);
-- TablesRead = false;
-- PpmEscChar = 2;
-- PpmError = true;
-- InitFilters();
-- }
-- if (!m_IsSolid || !TablesRead)
-- {
-- bool keepDecompressing;
-- RINOK(ReadTables(keepDecompressing));
-- if (!keepDecompressing)
-- return S_OK;
-- }
--
-- for (;;)
-- {
-- bool keepDecompressing;
-- if (_lzMode)
-- {
-- RINOK(DecodeLZ(keepDecompressing))
-- }
-- else
-- {
-- RINOK(DecodePPM(1 << 18, keepDecompressing))
-- }
-- UInt64 packSize = m_InBitStream.bitDecoder.GetProcessedSize();
-- RINOK(progress->SetRatioInfo(&packSize, &_writtenFileSize));
-- if (!keepDecompressing)
-- break;
-- }
-- RINOK(WriteBuf());
-- UInt64 packSize = m_InBitStream.bitDecoder.GetProcessedSize();
-- RINOK(progress->SetRatioInfo(&packSize, &_writtenFileSize));
-- if (_writtenFileSize < _unpackSize)
-- return S_FALSE;
-- return S_OK;
--}
--
--STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream *outStream,
-- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress)
--{
-- try
-- {
-- if (inSize == NULL || outSize == NULL)
-- return E_INVALIDARG;
--
-- if (_vmData == 0)
-- {
-- _vmData = (Byte *)::MidAlloc(kVmDataSizeMax + kVmCodeSizeMax);
-- if (_vmData == 0)
-- return E_OUTOFMEMORY;
-- _vmCode = _vmData + kVmDataSizeMax;
-- }
--
-- if (_window == 0)
-- {
-- _window = (Byte *)::MidAlloc(kWindowSize);
-- if (_window == 0)
-- return E_OUTOFMEMORY;
-- }
-- if (!m_InBitStream.bitDecoder.Create(1 << 20))
-- return E_OUTOFMEMORY;
-- if (!_vm.Create())
-- return E_OUTOFMEMORY;
--
--
-- m_InBitStream.bitDecoder.SetStream(inStream);
-- m_InBitStream.bitDecoder.Init();
-- _outStream = outStream;
--
-- CCoderReleaser coderReleaser(this);
-- _unpackSize = *outSize;
-- return CodeReal(progress);
-- }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
-- // CNewException is possible here. But probably CNewException is caused
-- // by error in data stream.
--}
--
--STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
--{
-- if (size < 1)
-- return E_INVALIDARG;
-- m_IsSolid = (data[0] != 0);
-- return S_OK;
--}
--
--}}
-diff -ruNa p7zip_9.20.1/CPP/7zip/Compress/Rar3Decoder.h p7zip-libre_9.20.1/CPP/7zip/Compress/Rar3Decoder.h
---- p7zip_9.20.1/CPP/7zip/Compress/Rar3Decoder.h 2010-03-16 16:08:18.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Compress/Rar3Decoder.h 1969-12-31 21:00:00.000000000 -0300
-@@ -1,267 +0,0 @@
--// Rar3Decoder.h
--// According to unRAR license, this code may not be used to develop
--// a program that creates RAR archives
--
--/* This code uses Carryless rangecoder (1999): Dmitry Subbotin : Public domain */
--
--#ifndef __COMPRESS_RAR3_DECODER_H
--#define __COMPRESS_RAR3_DECODER_H
--
--#include "../../../C/Ppmd7.h"
--
--#include "../../Common/MyCom.h"
--
--#include "../ICoder.h"
--
--#include "../Common/InBuffer.h"
--
--#include "BitmDecoder.h"
--#include "HuffmanDecoder.h"
--#include "Rar3Vm.h"
--
--namespace NCompress {
--namespace NRar3 {
--
--const UInt32 kWindowSize = 1 << 22;
--const UInt32 kWindowMask = (kWindowSize - 1);
--
--const UInt32 kNumReps = 4;
--const UInt32 kNumLen2Symbols = 8;
--const UInt32 kLenTableSize = 28;
--const UInt32 kMainTableSize = 256 + 1 + 1 + 1 + kNumReps + kNumLen2Symbols + kLenTableSize;
--const UInt32 kDistTableSize = 60;
--
--const int kNumAlignBits = 4;
--const UInt32 kAlignTableSize = (1 << kNumAlignBits) + 1;
--
--const UInt32 kLevelTableSize = 20;
--
--const UInt32 kTablesSizesSum = kMainTableSize + kDistTableSize + kAlignTableSize + kLenTableSize;
--
--class CBitDecoder
--{
-- UInt32 m_Value;
-- unsigned m_BitPos;
--public:
-- CInBuffer m_Stream;
-- bool Create(UInt32 bufferSize) { return m_Stream.Create(bufferSize); }
-- void SetStream(ISequentialInStream *inStream) { m_Stream.SetStream(inStream);}
-- void ReleaseStream() { m_Stream.ReleaseStream();}
--
-- void Init()
-- {
-- m_Stream.Init();
-- m_BitPos = 0;
-- m_Value = 0;
-- }
--
-- UInt64 GetProcessedSize() const { return m_Stream.GetProcessedSize() - (m_BitPos) / 8; }
-- UInt32 GetBitPosition() const { return ((8 - m_BitPos) & 7); }
--
-- UInt32 GetValue(unsigned numBits)
-- {
-- if (m_BitPos < numBits)
-- {
-- m_BitPos += 8;
-- m_Value = (m_Value << 8) | m_Stream.ReadByte();
-- if (m_BitPos < numBits)
-- {
-- m_BitPos += 8;
-- m_Value = (m_Value << 8) | m_Stream.ReadByte();
-- }
-- }
-- return m_Value >> (m_BitPos - numBits);
-- }
--
-- void MovePos(unsigned numBits)
-- {
-- m_BitPos -= numBits;
-- m_Value = m_Value & ((1 << m_BitPos) - 1);
-- }
--
-- UInt32 ReadBits(unsigned numBits)
-- {
-- UInt32 res = GetValue(numBits);
-- MovePos(numBits);
-- return res;
-- }
--};
--
--const UInt32 kTopValue = (1 << 24);
--const UInt32 kBot = (1 << 15);
--
--struct CRangeDecoder
--{
-- IPpmd7_RangeDec s;
-- UInt32 Range;
-- UInt32 Code;
-- UInt32 Low;
-- CBitDecoder bitDecoder;
-- SRes Res;
--
--public:
-- void InitRangeCoder()
-- {
-- Code = 0;
-- Low = 0;
-- Range = 0xFFFFFFFF;
-- for (int i = 0; i < 4; i++)
-- Code = (Code << 8) | bitDecoder.ReadBits(8);
-- }
--
-- void Normalize()
-- {
-- while ((Low ^ (Low + Range)) < kTopValue ||
-- Range < kBot && ((Range = (0 - Low) & (kBot - 1)), 1))
-- {
-- Code = (Code << 8) | bitDecoder.m_Stream.ReadByte();
-- Range <<= 8;
-- Low <<= 8;
-- }
-- }
--
-- CRangeDecoder();
--};
--
--struct CFilter: public NVm::CProgram
--{
-- CRecordVector<Byte> GlobalData;
-- UInt32 BlockStart;
-- UInt32 BlockSize;
-- UInt32 ExecCount;
-- CFilter(): BlockStart(0), BlockSize(0), ExecCount(0) {}
--};
--
--struct CTempFilter: public NVm::CProgramInitState
--{
-- UInt32 BlockStart;
-- UInt32 BlockSize;
-- UInt32 ExecCount;
-- bool NextWindow;
--
-- UInt32 FilterIndex;
--};
--
--const int kNumHuffmanBits = 15;
--
--class CDecoder:
-- public ICompressCoder,
-- public ICompressSetDecoderProperties2,
-- public CMyUnknownImp
--{
-- CRangeDecoder m_InBitStream;
-- Byte *_window;
-- UInt32 _winPos;
-- UInt32 _wrPtr;
-- UInt64 _lzSize;
-- UInt64 _unpackSize;
-- UInt64 _writtenFileSize; // if it's > _unpackSize, then _unpackSize only written
-- CMyComPtr<ISequentialOutStream> _outStream;
-- NHuffman::CDecoder<kNumHuffmanBits, kMainTableSize> m_MainDecoder;
-- NHuffman::CDecoder<kNumHuffmanBits, kDistTableSize> m_DistDecoder;
-- NHuffman::CDecoder<kNumHuffmanBits, kAlignTableSize> m_AlignDecoder;
-- NHuffman::CDecoder<kNumHuffmanBits, kLenTableSize> m_LenDecoder;
-- NHuffman::CDecoder<kNumHuffmanBits, kLevelTableSize> m_LevelDecoder;
--
-- UInt32 _reps[kNumReps];
-- UInt32 _lastLength;
--
-- Byte m_LastLevels[kTablesSizesSum];
--
-- Byte *_vmData;
-- Byte *_vmCode;
-- NVm::CVm _vm;
-- CRecordVector<CFilter *> _filters;
-- CRecordVector<CTempFilter *> _tempFilters;
-- UInt32 _lastFilter;
--
-- bool m_IsSolid;
--
-- bool _lzMode;
--
-- UInt32 PrevAlignBits;
-- UInt32 PrevAlignCount;
--
-- bool TablesRead;
--
-- CPpmd7 _ppmd;
-- int PpmEscChar;
-- bool PpmError;
--
-- HRESULT WriteDataToStream(const Byte *data, UInt32 size);
-- HRESULT WriteData(const Byte *data, UInt32 size);
-- HRESULT WriteArea(UInt32 startPtr, UInt32 endPtr);
-- void ExecuteFilter(int tempFilterIndex, NVm::CBlockRef &outBlockRef);
-- HRESULT WriteBuf();
--
-- void InitFilters();
-- bool AddVmCode(UInt32 firstByte, UInt32 codeSize);
-- bool ReadVmCodeLZ();
-- bool ReadVmCodePPM();
--
-- UInt32 ReadBits(int numBits);
--
-- HRESULT InitPPM();
-- int DecodePpmSymbol();
-- HRESULT DecodePPM(Int32 num, bool &keepDecompressing);
--
-- HRESULT ReadTables(bool &keepDecompressing);
-- HRESULT ReadEndOfBlock(bool &keepDecompressing);
-- HRESULT DecodeLZ(bool &keepDecompressing);
-- HRESULT CodeReal(ICompressProgressInfo *progress);
--public:
-- CDecoder();
-- ~CDecoder();
--
-- MY_UNKNOWN_IMP1(ICompressSetDecoderProperties2)
--
-- void ReleaseStreams()
-- {
-- _outStream.Release();
-- m_InBitStream.bitDecoder.ReleaseStream();
-- }
--
-- STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream,
-- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);
--
-- STDMETHOD(SetDecoderProperties2)(const Byte *data, UInt32 size);
--
-- void CopyBlock(UInt32 distance, UInt32 len)
-- {
-- _lzSize += len;
-- UInt32 pos = (_winPos - distance - 1) & kWindowMask;
-- Byte *window = _window;
-- UInt32 winPos = _winPos;
-- if (kWindowSize - winPos > len && kWindowSize - pos > len)
-- {
-- const Byte *src = window + pos;
-- Byte *dest = window + winPos;
-- _winPos += len;
-- do
-- *dest++ = *src++;
-- while(--len != 0);
-- return;
-- }
-- do
-- {
-- window[winPos] = window[pos];
-- winPos = (winPos + 1) & kWindowMask;
-- pos = (pos + 1) & kWindowMask;
-- }
-- while(--len != 0);
-- _winPos = winPos;
-- }
--
-- void PutByte(Byte b)
-- {
-- _window[_winPos] = b;
-- _winPos = (_winPos + 1) & kWindowMask;
-- _lzSize++;
-- }
--
--
--};
--
--}}
--
--#endif
-diff -ruNa p7zip_9.20.1/CPP/7zip/Compress/Rar3Vm.cpp p7zip-libre_9.20.1/CPP/7zip/Compress/Rar3Vm.cpp
---- p7zip_9.20.1/CPP/7zip/Compress/Rar3Vm.cpp 2010-10-20 01:56:07.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Compress/Rar3Vm.cpp 1969-12-31 21:00:00.000000000 -0300
-@@ -1,1091 +0,0 @@
--// Rar3Vm.cpp
--// According to unRAR license, this code may not be used to develop
--// a program that creates RAR archives
--
--/*
--Note:
-- Due to performance considerations Rar VM may set Flags C incorrectly
-- for some operands (SHL x, 0, ... ).
-- Check implementation of concrete VM command
-- to see if it sets flags right.
--*/
--
--#include "StdAfx.h"
--
--#include "../../../C/7zCrc.h"
--#include "../../../C/Alloc.h"
--
--#include "Rar3Vm.h"
--
--namespace NCompress {
--namespace NRar3 {
--
--UInt32 CMemBitDecoder::ReadBits(int numBits)
--{
-- UInt32 res = 0;
-- for (;;)
-- {
-- Byte b = _bitPos < _bitSize ? _data[_bitPos >> 3] : 0;
-- int avail = (int)(8 - (_bitPos & 7));
-- if (numBits <= avail)
-- {
-- _bitPos += numBits;
-- return res | (b >> (avail - numBits)) & ((1 << numBits) - 1);
-- }
-- numBits -= avail;
-- res |= (UInt32)(b & ((1 << avail) - 1)) << numBits;
-- _bitPos += avail;
-- }
--}
--
--UInt32 CMemBitDecoder::ReadBit() { return ReadBits(1); }
--
--namespace NVm {
--
--static const UInt32 kStackRegIndex = kNumRegs - 1;
--
--static const UInt32 FLAG_C = 1;
--static const UInt32 FLAG_Z = 2;
--static const UInt32 FLAG_S = 0x80000000;
--
--static const Byte CF_OP0 = 0;
--static const Byte CF_OP1 = 1;
--static const Byte CF_OP2 = 2;
--static const Byte CF_OPMASK = 3;
--static const Byte CF_BYTEMODE = 4;
--static const Byte CF_JUMP = 8;
--static const Byte CF_PROC = 16;
--static const Byte CF_USEFLAGS = 32;
--static const Byte CF_CHFLAGS = 64;
--
--static Byte kCmdFlags[]=
--{
-- /* CMD_MOV */ CF_OP2 | CF_BYTEMODE,
-- /* CMD_CMP */ CF_OP2 | CF_BYTEMODE | CF_CHFLAGS,
-- /* CMD_ADD */ CF_OP2 | CF_BYTEMODE | CF_CHFLAGS,
-- /* CMD_SUB */ CF_OP2 | CF_BYTEMODE | CF_CHFLAGS,
-- /* CMD_JZ */ CF_OP1 | CF_JUMP | CF_USEFLAGS,
-- /* CMD_JNZ */ CF_OP1 | CF_JUMP | CF_USEFLAGS,
-- /* CMD_INC */ CF_OP1 | CF_BYTEMODE | CF_CHFLAGS,
-- /* CMD_DEC */ CF_OP1 | CF_BYTEMODE | CF_CHFLAGS,
-- /* CMD_JMP */ CF_OP1 | CF_JUMP,
-- /* CMD_XOR */ CF_OP2 | CF_BYTEMODE | CF_CHFLAGS,
-- /* CMD_AND */ CF_OP2 | CF_BYTEMODE | CF_CHFLAGS,
-- /* CMD_OR */ CF_OP2 | CF_BYTEMODE | CF_CHFLAGS,
-- /* CMD_TEST */ CF_OP2 | CF_BYTEMODE | CF_CHFLAGS,
-- /* CMD_JS */ CF_OP1 | CF_JUMP | CF_USEFLAGS,
-- /* CMD_JNS */ CF_OP1 | CF_JUMP | CF_USEFLAGS,
-- /* CMD_JB */ CF_OP1 | CF_JUMP | CF_USEFLAGS,
-- /* CMD_JBE */ CF_OP1 | CF_JUMP | CF_USEFLAGS,
-- /* CMD_JA */ CF_OP1 | CF_JUMP | CF_USEFLAGS,
-- /* CMD_JAE */ CF_OP1 | CF_JUMP | CF_USEFLAGS,
-- /* CMD_PUSH */ CF_OP1,
-- /* CMD_POP */ CF_OP1,
-- /* CMD_CALL */ CF_OP1 | CF_PROC,
-- /* CMD_RET */ CF_OP0 | CF_PROC,
-- /* CMD_NOT */ CF_OP1 | CF_BYTEMODE,
-- /* CMD_SHL */ CF_OP2 | CF_BYTEMODE | CF_CHFLAGS,
-- /* CMD_SHR */ CF_OP2 | CF_BYTEMODE | CF_CHFLAGS,
-- /* CMD_SAR */ CF_OP2 | CF_BYTEMODE | CF_CHFLAGS,
-- /* CMD_NEG */ CF_OP1 | CF_BYTEMODE | CF_CHFLAGS,
-- /* CMD_PUSHA */ CF_OP0,
-- /* CMD_POPA */ CF_OP0,
-- /* CMD_PUSHF */ CF_OP0 | CF_USEFLAGS,
-- /* CMD_POPF */ CF_OP0 | CF_CHFLAGS,
-- /* CMD_MOVZX */ CF_OP2,
-- /* CMD_MOVSX */ CF_OP2,
-- /* CMD_XCHG */ CF_OP2 | CF_BYTEMODE,
-- /* CMD_MUL */ CF_OP2 | CF_BYTEMODE,
-- /* CMD_DIV */ CF_OP2 | CF_BYTEMODE,
-- /* CMD_ADC */ CF_OP2 | CF_BYTEMODE | CF_USEFLAGS | CF_CHFLAGS ,
-- /* CMD_SBB */ CF_OP2 | CF_BYTEMODE | CF_USEFLAGS | CF_CHFLAGS ,
-- /* CMD_PRINT */ CF_OP0
--};
--
--CVm::CVm(): Mem(NULL) {}
--
--bool CVm::Create()
--{
-- if (Mem == NULL)
-- Mem = (Byte *)::MyAlloc(kSpaceSize + 4);
-- return (Mem != NULL);
--}
--
--CVm::~CVm()
--{
-- ::MyFree(Mem);
--}
--
--// CVm::Execute can change CProgram object: it clears progarm if VM returns error.
--
--bool CVm::Execute(CProgram *prg, const CProgramInitState *initState,
-- CBlockRef &outBlockRef, CRecordVector<Byte> &outGlobalData)
--{
-- memcpy(R, initState->InitR, sizeof(initState->InitR));
-- R[kStackRegIndex] = kSpaceSize;
-- R[kNumRegs] = 0;
-- Flags = 0;
--
-- UInt32 globalSize = MyMin((UInt32)initState->GlobalData.Size(), kGlobalSize);
-- if (globalSize != 0)
-- memcpy(Mem + kGlobalOffset, &initState->GlobalData[0], globalSize);
-- UInt32 staticSize = MyMin((UInt32)prg->StaticData.Size(), kGlobalSize - globalSize);
-- if (staticSize != 0)
-- memcpy(Mem + kGlobalOffset + globalSize, &prg->StaticData[0], staticSize);
--
-- bool res = true;
-- #ifdef RARVM_STANDARD_FILTERS
-- if (prg->StandardFilterIndex >= 0)
-- ExecuteStandardFilter(prg->StandardFilterIndex);
-- else
-- #endif
-- {
-- res = ExecuteCode(prg);
-- if (!res)
-- prg->Commands[0].OpCode = CMD_RET;
-- }
-- UInt32 newBlockPos = GetFixedGlobalValue32(NGlobalOffset::kBlockPos) & kSpaceMask;
-- UInt32 newBlockSize = GetFixedGlobalValue32(NGlobalOffset::kBlockSize) & kSpaceMask;
-- if (newBlockPos + newBlockSize >= kSpaceSize)
-- newBlockPos = newBlockSize = 0;
-- outBlockRef.Offset = newBlockPos;
-- outBlockRef.Size = newBlockSize;
--
-- outGlobalData.Clear();
-- UInt32 dataSize = GetFixedGlobalValue32(NGlobalOffset::kGlobalMemOutSize);
-- dataSize = MyMin(dataSize, kGlobalSize - kFixedGlobalSize);
-- if (dataSize != 0)
-- {
-- dataSize += kFixedGlobalSize;
-- outGlobalData.Reserve(dataSize);
-- for (UInt32 i = 0; i < dataSize; i++)
-- outGlobalData.Add(Mem[kGlobalOffset + i]);
-- }
-- return res;
--}
--
--
--#define SET_IP(IP) \
-- if ((IP) >= numCommands) return true; \
-- if (--maxOpCount <= 0) return false; \
-- cmd = commands + (IP);
--
--#define GET_FLAG_S_B(res) (((res) & 0x80) ? FLAG_S : 0)
--#define SET_IP_OP1 { UInt32 val = GetOperand32(&cmd->Op1); SET_IP(val); }
--#define FLAGS_UPDATE_SZ Flags = res == 0 ? FLAG_Z : res & FLAG_S
--#define FLAGS_UPDATE_SZ_B Flags = (res & 0xFF) == 0 ? FLAG_Z : GET_FLAG_S_B(res)
--
--UInt32 CVm::GetOperand32(const COperand *op) const
--{
-- switch(op->Type)
-- {
-- case OP_TYPE_REG: return R[op->Data];
-- case OP_TYPE_REGMEM: return GetValue32(&Mem[(op->Base + R[op->Data]) & kSpaceMask]);
-- default: return op->Data;
-- }
--}
--
--void CVm::SetOperand32(const COperand *op, UInt32 val)
--{
-- switch(op->Type)
-- {
-- case OP_TYPE_REG: R[op->Data] = val; return;
-- case OP_TYPE_REGMEM: SetValue32(&Mem[(op->Base + R[op->Data]) & kSpaceMask], val); return;
-- }
--}
--
--Byte CVm::GetOperand8(const COperand *op) const
--{
-- switch(op->Type)
-- {
-- case OP_TYPE_REG: return (Byte)R[op->Data];
-- case OP_TYPE_REGMEM: return Mem[(op->Base + R[op->Data]) & kSpaceMask];;
-- default: return (Byte)op->Data;
-- }
--}
--
--void CVm::SetOperand8(const COperand *op, Byte val)
--{
-- switch(op->Type)
-- {
-- case OP_TYPE_REG: R[op->Data] = (R[op->Data] & 0xFFFFFF00) | val; return;
-- case OP_TYPE_REGMEM: Mem[(op->Base + R[op->Data]) & kSpaceMask] = val; return;
-- }
--}
--
--UInt32 CVm::GetOperand(bool byteMode, const COperand *op) const
--{
-- if (byteMode)
-- return GetOperand8(op);
-- return GetOperand32(op);
--}
--
--void CVm::SetOperand(bool byteMode, const COperand *op, UInt32 val)
--{
-- if (byteMode)
-- SetOperand8(op, (Byte)(val & 0xFF));
-- else
-- SetOperand32(op, val);
--}
--
--bool CVm::ExecuteCode(const CProgram *prg)
--{
-- Int32 maxOpCount = 25000000;
-- const CCommand *commands = &prg->Commands[0];
-- const CCommand *cmd = commands;
-- UInt32 numCommands = prg->Commands.Size();
-- for (;;)
-- {
-- switch(cmd->OpCode)
-- {
-- #ifndef RARVM_NO_VM
--
-- case CMD_MOV:
-- SetOperand32(&cmd->Op1, GetOperand32(&cmd->Op2));
-- break;
-- case CMD_MOVB:
-- SetOperand8(&cmd->Op1, GetOperand8(&cmd->Op2));
-- break;
-- case CMD_CMP:
-- {
-- UInt32 v1 = GetOperand32(&cmd->Op1);
-- UInt32 res = v1 - GetOperand32(&cmd->Op2);
-- Flags = res == 0 ? FLAG_Z : (res > v1) | (res & FLAG_S);
-- }
-- break;
-- case CMD_CMPB:
-- {
-- Byte v1 = GetOperand8(&cmd->Op1);
-- Byte res = v1 - GetOperand8(&cmd->Op2);
-- res &= 0xFF;
-- Flags = res == 0 ? FLAG_Z : (res > v1) | GET_FLAG_S_B(res);
-- }
-- break;
-- case CMD_ADD:
-- {
-- UInt32 v1 = GetOperand32(&cmd->Op1);
-- UInt32 res = v1 + GetOperand32(&cmd->Op2);
-- SetOperand32(&cmd->Op1, res);
-- Flags = (res < v1) | (res == 0 ? FLAG_Z : (res & FLAG_S));
-- }
-- break;
-- case CMD_ADDB:
-- {
-- Byte v1 = GetOperand8(&cmd->Op1);
-- Byte res = v1 + GetOperand8(&cmd->Op2);
-- res &= 0xFF;
-- SetOperand8(&cmd->Op1, (Byte)res);
-- Flags = (res < v1) | (res == 0 ? FLAG_Z : GET_FLAG_S_B(res));
-- }
-- break;
-- case CMD_ADC:
-- {
-- UInt32 v1 = GetOperand(cmd->ByteMode, &cmd->Op1);
-- UInt32 FC = (Flags & FLAG_C);
-- UInt32 res = v1 + GetOperand(cmd->ByteMode, &cmd->Op2) + FC;
-- if (cmd->ByteMode)
-- res &= 0xFF;
-- SetOperand(cmd->ByteMode, &cmd->Op1, res);
-- Flags = (res < v1 || res == v1 && FC) | (res == 0 ? FLAG_Z : (res & FLAG_S));
-- }
-- break;
-- case CMD_SUB:
-- {
-- UInt32 v1 = GetOperand32(&cmd->Op1);
-- UInt32 res = v1 - GetOperand32(&cmd->Op2);
-- SetOperand32(&cmd->Op1, res);
-- Flags = res == 0 ? FLAG_Z : (res > v1) | (res & FLAG_S);
-- }
-- break;
-- case CMD_SUBB:
-- {
-- UInt32 v1 = GetOperand8(&cmd->Op1);
-- UInt32 res = v1 - GetOperand8(&cmd->Op2);
-- SetOperand8(&cmd->Op1, (Byte)res);
-- Flags = res == 0 ? FLAG_Z : (res > v1) | (res & FLAG_S);
-- }
-- break;
-- case CMD_SBB:
-- {
-- UInt32 v1 = GetOperand(cmd->ByteMode, &cmd->Op1);
-- UInt32 FC = (Flags & FLAG_C);
-- UInt32 res = v1 - GetOperand(cmd->ByteMode, &cmd->Op2) - FC;
-- // Flags = res == 0 ? FLAG_Z : (res > v1 || res == v1 && FC) | (res & FLAG_S);
-- if (cmd->ByteMode)
-- res &= 0xFF;
-- SetOperand(cmd->ByteMode, &cmd->Op1, res);
-- Flags = (res > v1 || res == v1 && FC) | (res == 0 ? FLAG_Z : (res & FLAG_S));
-- }
-- break;
-- case CMD_INC:
-- {
-- UInt32 res = GetOperand32(&cmd->Op1) + 1;
-- SetOperand32(&cmd->Op1, res);
-- FLAGS_UPDATE_SZ;
-- }
-- break;
-- case CMD_INCB:
-- {
-- Byte res = GetOperand8(&cmd->Op1) + 1;
-- SetOperand8(&cmd->Op1, res);;
-- FLAGS_UPDATE_SZ_B;
-- }
-- break;
-- case CMD_DEC:
-- {
-- UInt32 res = GetOperand32(&cmd->Op1) - 1;
-- SetOperand32(&cmd->Op1, res);
-- FLAGS_UPDATE_SZ;
-- }
-- break;
-- case CMD_DECB:
-- {
-- Byte res = GetOperand8(&cmd->Op1) - 1;
-- SetOperand8(&cmd->Op1, res);;
-- FLAGS_UPDATE_SZ_B;
-- }
-- break;
-- case CMD_XOR:
-- {
-- UInt32 res = GetOperand32(&cmd->Op1) ^ GetOperand32(&cmd->Op2);
-- SetOperand32(&cmd->Op1, res);
-- FLAGS_UPDATE_SZ;
-- }
-- break;
-- case CMD_XORB:
-- {
-- Byte res = GetOperand8(&cmd->Op1) ^ GetOperand8(&cmd->Op2);
-- SetOperand8(&cmd->Op1, res);
-- FLAGS_UPDATE_SZ_B;
-- }
-- break;
-- case CMD_AND:
-- {
-- UInt32 res = GetOperand32(&cmd->Op1) & GetOperand32(&cmd->Op2);
-- SetOperand32(&cmd->Op1, res);
-- FLAGS_UPDATE_SZ;
-- }
-- break;
-- case CMD_ANDB:
-- {
-- Byte res = GetOperand8(&cmd->Op1) & GetOperand8(&cmd->Op2);
-- SetOperand8(&cmd->Op1, res);
-- FLAGS_UPDATE_SZ_B;
-- }
-- break;
-- case CMD_OR:
-- {
-- UInt32 res = GetOperand32(&cmd->Op1) | GetOperand32(&cmd->Op2);
-- SetOperand32(&cmd->Op1, res);
-- FLAGS_UPDATE_SZ;
-- }
-- break;
-- case CMD_ORB:
-- {
-- Byte res = GetOperand8(&cmd->Op1) | GetOperand8(&cmd->Op2);
-- SetOperand8(&cmd->Op1, res);
-- FLAGS_UPDATE_SZ_B;
-- }
-- break;
-- case CMD_TEST:
-- {
-- UInt32 res = GetOperand32(&cmd->Op1) & GetOperand32(&cmd->Op2);
-- FLAGS_UPDATE_SZ;
-- }
-- break;
-- case CMD_TESTB:
-- {
-- Byte res = GetOperand8(&cmd->Op1) & GetOperand8(&cmd->Op2);
-- FLAGS_UPDATE_SZ_B;
-- }
-- break;
-- case CMD_NOT:
-- SetOperand(cmd->ByteMode, &cmd->Op1, ~GetOperand(cmd->ByteMode, &cmd->Op1));
-- break;
-- case CMD_NEG:
-- {
-- UInt32 res = 0 - GetOperand32(&cmd->Op1);
-- SetOperand32(&cmd->Op1, res);
-- Flags = res == 0 ? FLAG_Z : FLAG_C | (res & FLAG_S);
-- }
-- break;
-- case CMD_NEGB:
-- {
-- Byte res = (Byte)(0 - GetOperand8(&cmd->Op1));
-- SetOperand8(&cmd->Op1, res);
-- Flags = res == 0 ? FLAG_Z : FLAG_C | GET_FLAG_S_B(res);
-- }
-- break;
--
-- case CMD_SHL:
-- {
-- UInt32 v1 = GetOperand32(&cmd->Op1);
-- int v2 = (int)GetOperand32(&cmd->Op2);
-- UInt32 res = v1 << v2;
-- SetOperand32(&cmd->Op1, res);
-- Flags = (res == 0 ? FLAG_Z : (res & FLAG_S)) | ((v1 << (v2 - 1)) & 0x80000000 ? FLAG_C : 0);
-- }
-- break;
-- case CMD_SHLB:
-- {
-- Byte v1 = GetOperand8(&cmd->Op1);
-- int v2 = (int)GetOperand8(&cmd->Op2);
-- Byte res = (Byte)(v1 << v2);
-- SetOperand8(&cmd->Op1, res);
-- Flags = (res == 0 ? FLAG_Z : GET_FLAG_S_B(res)) | ((v1 << (v2 - 1)) & 0x80 ? FLAG_C : 0);
-- }
-- break;
-- case CMD_SHR:
-- {
-- UInt32 v1 = GetOperand32(&cmd->Op1);
-- int v2 = (int)GetOperand32(&cmd->Op2);
-- UInt32 res = v1 >> v2;
-- SetOperand32(&cmd->Op1, res);
-- Flags = (res == 0 ? FLAG_Z : (res & FLAG_S)) | ((v1 >> (v2 - 1)) & FLAG_C);
-- }
-- break;
-- case CMD_SHRB:
-- {
-- Byte v1 = GetOperand8(&cmd->Op1);
-- int v2 = (int)GetOperand8(&cmd->Op2);
-- Byte res = (Byte)(v1 >> v2);
-- SetOperand8(&cmd->Op1, res);
-- Flags = (res == 0 ? FLAG_Z : GET_FLAG_S_B(res)) | ((v1 >> (v2 - 1)) & FLAG_C);
-- }
-- break;
-- case CMD_SAR:
-- {
-- UInt32 v1 = GetOperand32(&cmd->Op1);
-- int v2 = (int)GetOperand32(&cmd->Op2);
-- UInt32 res = UInt32(((Int32)v1) >> v2);
-- SetOperand32(&cmd->Op1, res);
-- Flags= (res == 0 ? FLAG_Z : (res & FLAG_S)) | ((v1 >> (v2 - 1)) & FLAG_C);
-- }
-- break;
-- case CMD_SARB:
-- {
-- Byte v1 = GetOperand8(&cmd->Op1);
-- int v2 = (int)GetOperand8(&cmd->Op2);
-- Byte res = (Byte)(((signed char)v1) >> v2);
-- SetOperand8(&cmd->Op1, res);
-- Flags= (res == 0 ? FLAG_Z : GET_FLAG_S_B(res)) | ((v1 >> (v2 - 1)) & FLAG_C);
-- }
-- break;
--
-- case CMD_JMP:
-- SET_IP_OP1;
-- continue;
-- case CMD_JZ:
-- if ((Flags & FLAG_Z) != 0)
-- {
-- SET_IP_OP1;
-- continue;
-- }
-- break;
-- case CMD_JNZ:
-- if ((Flags & FLAG_Z) == 0)
-- {
-- SET_IP_OP1;
-- continue;
-- }
-- break;
-- case CMD_JS:
-- if ((Flags & FLAG_S) != 0)
-- {
-- SET_IP_OP1;
-- continue;
-- }
-- break;
-- case CMD_JNS:
-- if ((Flags & FLAG_S) == 0)
-- {
-- SET_IP_OP1;
-- continue;
-- }
-- break;
-- case CMD_JB:
-- if ((Flags & FLAG_C) != 0)
-- {
-- SET_IP_OP1;
-- continue;
-- }
-- break;
-- case CMD_JBE:
-- if ((Flags & (FLAG_C | FLAG_Z)) != 0)
-- {
-- SET_IP_OP1;
-- continue;
-- }
-- break;
-- case CMD_JA:
-- if ((Flags & (FLAG_C | FLAG_Z)) == 0)
-- {
-- SET_IP_OP1;
-- continue;
-- }
-- break;
-- case CMD_JAE:
-- if ((Flags & FLAG_C) == 0)
-- {
-- SET_IP_OP1;
-- continue;
-- }
-- break;
--
-- case CMD_PUSH:
-- R[kStackRegIndex] -= 4;
-- SetValue32(&Mem[R[kStackRegIndex] & kSpaceMask], GetOperand32(&cmd->Op1));
-- break;
-- case CMD_POP:
-- SetOperand32(&cmd->Op1, GetValue32(&Mem[R[kStackRegIndex] & kSpaceMask]));
-- R[kStackRegIndex] += 4;
-- break;
-- case CMD_CALL:
-- R[kStackRegIndex] -= 4;
-- SetValue32(&Mem[R[kStackRegIndex] & kSpaceMask], (UInt32)(cmd - commands + 1));
-- SET_IP_OP1;
-- continue;
--
-- case CMD_PUSHA:
-- {
-- for (UInt32 i = 0, SP = R[kStackRegIndex] - 4; i < kNumRegs; i++, SP -= 4)
-- SetValue32(&Mem[SP & kSpaceMask], R[i]);
-- R[kStackRegIndex] -= kNumRegs * 4;
-- }
-- break;
-- case CMD_POPA:
-- {
-- for (UInt32 i = 0, SP = R[kStackRegIndex]; i < kNumRegs; i++, SP += 4)
-- R[kStackRegIndex - i] = GetValue32(&Mem[SP & kSpaceMask]);
-- }
-- break;
-- case CMD_PUSHF:
-- R[kStackRegIndex] -= 4;
-- SetValue32(&Mem[R[kStackRegIndex]&kSpaceMask], Flags);
-- break;
-- case CMD_POPF:
-- Flags = GetValue32(&Mem[R[kStackRegIndex] & kSpaceMask]);
-- R[kStackRegIndex] += 4;
-- break;
--
-- case CMD_MOVZX:
-- SetOperand32(&cmd->Op1, GetOperand8(&cmd->Op2));
-- break;
-- case CMD_MOVSX:
-- SetOperand32(&cmd->Op1, (UInt32)(Int32)(signed char)GetOperand8(&cmd->Op2));
-- break;
-- case CMD_XCHG:
-- {
-- UInt32 v1 = GetOperand(cmd->ByteMode, &cmd->Op1);
-- SetOperand(cmd->ByteMode, &cmd->Op1, GetOperand(cmd->ByteMode, &cmd->Op2));
-- SetOperand(cmd->ByteMode, &cmd->Op2, v1);
-- }
-- break;
-- case CMD_MUL:
-- {
-- UInt32 res = GetOperand32(&cmd->Op1) * GetOperand32(&cmd->Op2);
-- SetOperand32(&cmd->Op1, res);
-- }
-- break;
-- case CMD_MULB:
-- {
-- Byte res = GetOperand8(&cmd->Op1) * GetOperand8(&cmd->Op2);
-- SetOperand8(&cmd->Op1, res);
-- }
-- break;
-- case CMD_DIV:
-- {
-- UInt32 divider = GetOperand(cmd->ByteMode, &cmd->Op2);
-- if (divider != 0)
-- {
-- UInt32 res = GetOperand(cmd->ByteMode, &cmd->Op1) / divider;
-- SetOperand(cmd->ByteMode, &cmd->Op1, res);
-- }
-- }
-- break;
--
-- #endif
--
-- case CMD_RET:
-- {
-- if (R[kStackRegIndex] >= kSpaceSize)
-- return true;
-- UInt32 ip = GetValue32(&Mem[R[kStackRegIndex] & kSpaceMask]);
-- SET_IP(ip);
-- R[kStackRegIndex] += 4;
-- continue;
-- }
-- case CMD_PRINT:
-- break;
-- }
-- cmd++;
-- --maxOpCount;
-- }
--}
--
--
--//////////////////////////////////////////////////////
--// Read program
--
--UInt32 ReadEncodedUInt32(CMemBitDecoder &inp)
--{
-- switch(inp.ReadBits(2))
-- {
-- case 0:
-- return inp.ReadBits(4);
-- case 1:
-- {
-- UInt32 v = inp.ReadBits(4);
-- if (v == 0)
-- return 0xFFFFFF00 | inp.ReadBits(8);
-- else
-- return (v << 4) | inp.ReadBits(4);
-- }
-- case 2:
-- return inp.ReadBits(16);
-- default:
-- return inp.ReadBits(32);
-- }
--}
--
--void CVm::DecodeArg(CMemBitDecoder &inp, COperand &op, bool byteMode)
--{
-- if (inp.ReadBit())
-- {
-- op.Type = OP_TYPE_REG;
-- op.Data = inp.ReadBits(kNumRegBits);
-- }
-- else if (inp.ReadBit() == 0)
-- {
-- op.Type = OP_TYPE_INT;
-- if (byteMode)
-- op.Data = inp.ReadBits(8);
-- else
-- op.Data = ReadEncodedUInt32(inp);
-- }
-- else
-- {
-- op.Type = OP_TYPE_REGMEM;
-- if (inp.ReadBit() == 0)
-- {
-- op.Data = inp.ReadBits(kNumRegBits);
-- op.Base = 0;
-- }
-- else
-- {
-- if (inp.ReadBit() == 0)
-- op.Data = inp.ReadBits(kNumRegBits);
-- else
-- op.Data = kNumRegs;
-- op.Base = ReadEncodedUInt32(inp);
-- }
-- }
--}
--
--void CVm::ReadVmProgram(const Byte *code, UInt32 codeSize, CProgram *prg)
--{
-- CMemBitDecoder inp;
-- inp.Init(code, codeSize);
--
-- prg->StaticData.Clear();
-- if (inp.ReadBit())
-- {
-- UInt32 dataSize = ReadEncodedUInt32(inp) + 1;
-- for (UInt32 i = 0; inp.Avail() && i < dataSize; i++)
-- prg->StaticData.Add((Byte)inp.ReadBits(8));
-- }
-- while (inp.Avail())
-- {
-- prg->Commands.Add(CCommand());
-- CCommand *cmd = &prg->Commands.Back();
-- if (inp.ReadBit() == 0)
-- cmd->OpCode = (ECommand)inp.ReadBits(3);
-- else
-- cmd->OpCode = (ECommand)(8 + inp.ReadBits(5));
-- if (kCmdFlags[cmd->OpCode] & CF_BYTEMODE)
-- cmd->ByteMode = (inp.ReadBit()) ? true : false;
-- else
-- cmd->ByteMode = 0;
-- int opNum = (kCmdFlags[cmd->OpCode] & CF_OPMASK);
-- if (opNum > 0)
-- {
-- DecodeArg(inp, cmd->Op1, cmd->ByteMode);
-- if (opNum == 2)
-- DecodeArg(inp, cmd->Op2, cmd->ByteMode);
-- else
-- {
-- if (cmd->Op1.Type == OP_TYPE_INT && (kCmdFlags[cmd->OpCode] & (CF_JUMP | CF_PROC)))
-- {
-- int Distance = cmd->Op1.Data;
-- if (Distance >= 256)
-- Distance -= 256;
-- else
-- {
-- if (Distance >= 136)
-- Distance -= 264;
-- else if (Distance >= 16)
-- Distance -= 8;
-- else if (Distance >= 8)
-- Distance -= 16;
-- Distance += prg->Commands.Size() - 1;
-- }
-- cmd->Op1.Data = Distance;
-- }
-- }
-- }
-- if (cmd->ByteMode)
-- {
-- switch (cmd->OpCode)
-- {
-- case CMD_MOV: cmd->OpCode = CMD_MOVB; break;
-- case CMD_CMP: cmd->OpCode = CMD_CMPB; break;
-- case CMD_ADD: cmd->OpCode = CMD_ADDB; break;
-- case CMD_SUB: cmd->OpCode = CMD_SUBB; break;
-- case CMD_INC: cmd->OpCode = CMD_INCB; break;
-- case CMD_DEC: cmd->OpCode = CMD_DECB; break;
-- case CMD_XOR: cmd->OpCode = CMD_XORB; break;
-- case CMD_AND: cmd->OpCode = CMD_ANDB; break;
-- case CMD_OR: cmd->OpCode = CMD_ORB; break;
-- case CMD_TEST: cmd->OpCode = CMD_TESTB; break;
-- case CMD_NEG: cmd->OpCode = CMD_NEGB; break;
-- case CMD_SHL: cmd->OpCode = CMD_SHLB; break;
-- case CMD_SHR: cmd->OpCode = CMD_SHRB; break;
-- case CMD_SAR: cmd->OpCode = CMD_SARB; break;
-- case CMD_MUL: cmd->OpCode = CMD_MULB; break;
-- }
-- }
-- }
--}
--
--#ifdef RARVM_STANDARD_FILTERS
--
--enum EStandardFilter
--{
-- SF_E8,
-- SF_E8E9,
-- SF_ITANIUM,
-- SF_RGB,
-- SF_AUDIO,
-- SF_DELTA,
-- SF_UPCASE
--};
--
--struct StandardFilterSignature
--{
-- UInt32 Length;
-- UInt32 CRC;
-- EStandardFilter Type;
--}
--kStdFilters[]=
--{
-- { 53, 0xad576887, SF_E8 },
-- { 57, 0x3cd7e57e, SF_E8E9 },
-- { 120, 0x3769893f, SF_ITANIUM },
-- { 29, 0x0e06077d, SF_DELTA },
-- { 149, 0x1c2c5dc8, SF_RGB },
-- { 216, 0xbc85e701, SF_AUDIO },
-- { 40, 0x46b9c560, SF_UPCASE }
--};
--
--static int FindStandardFilter(const Byte *code, UInt32 codeSize)
--{
-- UInt32 crc = CrcCalc(code, codeSize);
-- for (int i = 0; i < sizeof(kStdFilters) / sizeof(kStdFilters[0]); i++)
-- {
-- StandardFilterSignature &sfs = kStdFilters[i];
-- if (sfs.CRC == crc && sfs.Length == codeSize)
-- return i;
-- }
-- return -1;
--}
--
--#endif
--
--void CVm::PrepareProgram(const Byte *code, UInt32 codeSize, CProgram *prg)
--{
-- Byte xorSum = 0;
-- for (UInt32 i = 1; i < codeSize; i++)
-- xorSum ^= code[i];
--
-- prg->Commands.Clear();
-- #ifdef RARVM_STANDARD_FILTERS
-- prg->StandardFilterIndex = -1;
-- #endif
--
-- if (xorSum == code[0] && codeSize > 0)
-- {
-- #ifdef RARVM_STANDARD_FILTERS
-- prg->StandardFilterIndex = FindStandardFilter(code, codeSize);
-- if (prg->StandardFilterIndex >= 0)
-- return;
-- #endif
-- // 1 byte for checksum
-- ReadVmProgram(code + 1, codeSize - 1, prg);
-- }
-- prg->Commands.Add(CCommand());
-- CCommand *cmd = &prg->Commands.Back();
-- cmd->OpCode = CMD_RET;
--}
--
--void CVm::SetMemory(UInt32 pos, const Byte *data, UInt32 dataSize)
--{
-- if (pos < kSpaceSize && data != Mem + pos)
-- memmove(Mem + pos, data, MyMin(dataSize, kSpaceSize - pos));
--}
--
--#ifdef RARVM_STANDARD_FILTERS
--
--static void E8E9Decode(Byte *data, UInt32 dataSize, UInt32 fileOffset, bool e9)
--{
-- if (dataSize <= 4)
-- return;
-- dataSize -= 4;
-- const UInt32 kFileSize = 0x1000000;
-- Byte cmpByte2 = (e9 ? 0xE9 : 0xE8);
-- for (UInt32 curPos = 0; curPos < dataSize;)
-- {
-- Byte curByte = *(data++);
-- curPos++;
-- if (curByte == 0xE8 || curByte == cmpByte2)
-- {
-- UInt32 offset = curPos + fileOffset;
-- UInt32 addr = (Int32)GetValue32(data);
-- if (addr < kFileSize)
-- SetValue32(data, addr - offset);
-- else if ((Int32)addr < 0 && (Int32)(addr + offset) >= 0)
-- SetValue32(data, addr + kFileSize);
-- data += 4;
-- curPos += 4;
-- }
-- }
--}
--
--static inline UInt32 ItaniumGetOpType(const Byte *data, int bitPos)
--{
-- return (data[(unsigned int)bitPos >> 3] >> (bitPos & 7)) & 0xF;
--}
--
--
--static void ItaniumDecode(Byte *data, UInt32 dataSize, UInt32 fileOffset)
--{
-- UInt32 curPos = 0;
-- fileOffset >>= 4;
-- while (curPos < dataSize - 21)
-- {
-- int b = (data[0] & 0x1F) - 0x10;
-- if (b >= 0)
-- {
-- static Byte kCmdMasks[16] = {4,4,6,6,0,0,7,7,4,4,0,0,4,4,0,0};
-- Byte cmdMask = kCmdMasks[b];
-- if (cmdMask != 0)
-- for (int i = 0; i < 3; i++)
-- if (cmdMask & (1 << i))
-- {
-- int startPos = i * 41 + 18;
-- if (ItaniumGetOpType(data, startPos + 24) == 5)
-- {
-- const UInt32 kMask = 0xFFFFF;
-- Byte *p = data + ((unsigned int)startPos >> 3);
-- UInt32 bitField = ((UInt32)p[0]) | ((UInt32)p[1] << 8) | ((UInt32)p[2] << 16);
-- int inBit = (startPos & 7);
-- UInt32 offset = (bitField >> inBit) & kMask;
-- UInt32 andMask = ~(kMask << inBit);
-- bitField = ((offset - fileOffset) & kMask) << inBit;
-- for (int j = 0; j < 3; j++)
-- {
-- p[j] &= andMask;
-- p[j] |= bitField;
-- andMask >>= 8;
-- bitField >>= 8;
-- }
-- }
-- }
-- }
-- data += 16;
-- curPos += 16;
-- fileOffset++;
-- }
--}
--
--static void DeltaDecode(Byte *data, UInt32 dataSize, UInt32 numChannels)
--{
-- UInt32 srcPos = 0;
-- UInt32 border = dataSize * 2;
-- for (UInt32 curChannel = 0; curChannel < numChannels; curChannel++)
-- {
-- Byte prevByte = 0;
-- for (UInt32 destPos = dataSize + curChannel; destPos < border; destPos += numChannels)
-- data[destPos] = (prevByte = prevByte - data[srcPos++]);
-- }
--}
--
--static void RgbDecode(Byte *srcData, UInt32 dataSize, UInt32 width, UInt32 posR)
--{
-- Byte *destData = srcData + dataSize;
-- const UInt32 numChannels = 3;
-- for (UInt32 curChannel = 0; curChannel < numChannels; curChannel++)
-- {
-- Byte prevByte = 0;
--
-- for (UInt32 i = curChannel; i < dataSize; i+= numChannels)
-- {
-- unsigned int predicted;
-- if (i < width)
-- predicted = prevByte;
-- else
-- {
-- unsigned int upperLeftByte = destData[i - width];
-- unsigned int upperByte = destData[i - width + 3];
-- predicted = prevByte + upperByte - upperLeftByte;
-- int pa = abs((int)(predicted - prevByte));
-- int pb = abs((int)(predicted - upperByte));
-- int pc = abs((int)(predicted - upperLeftByte));
-- if (pa <= pb && pa <= pc)
-- predicted = prevByte;
-- else
-- if (pb <= pc)
-- predicted = upperByte;
-- else
-- predicted = upperLeftByte;
-- }
-- destData[i] = prevByte = (Byte)(predicted - *(srcData++));
-- }
-- }
-- if (dataSize < 3)
-- return;
-- for (UInt32 i = posR, border = dataSize - 2; i < border; i += 3)
-- {
-- Byte g = destData[i + 1];
-- destData[i] = destData[i] + g;
-- destData[i + 2] = destData[i + 2] + g;
-- }
--}
--
--static void AudioDecode(Byte *srcData, UInt32 dataSize, UInt32 numChannels)
--{
-- Byte *destData = srcData + dataSize;
-- for (UInt32 curChannel = 0; curChannel < numChannels; curChannel++)
-- {
-- UInt32 prevByte = 0, prevDelta = 0, dif[7];
-- Int32 D1 = 0, D2 = 0, D3;
-- Int32 K1 = 0, K2 = 0, K3 = 0;
-- memset(dif, 0, sizeof(dif));
--
-- for (UInt32 i = curChannel, byteCount = 0; i < dataSize; i += numChannels, byteCount++)
-- {
-- D3 = D2;
-- D2 = prevDelta - D1;
-- D1 = prevDelta;
--
-- UInt32 predicted = 8 * prevByte + K1 * D1 + K2 * D2 + K3 * D3;
-- predicted = (predicted >> 3) & 0xFF;
--
-- UInt32 curByte = *(srcData++);
--
-- predicted -= curByte;
-- destData[i] = (Byte)predicted;
-- prevDelta = (UInt32)(Int32)(signed char)(predicted - prevByte);
-- prevByte = predicted;
--
-- Int32 D = ((Int32)(signed char)curByte) << 3;
--
-- dif[0] += abs(D);
-- dif[1] += abs(D - D1);
-- dif[2] += abs(D + D1);
-- dif[3] += abs(D - D2);
-- dif[4] += abs(D + D2);
-- dif[5] += abs(D - D3);
-- dif[6] += abs(D + D3);
--
-- if ((byteCount & 0x1F) == 0)
-- {
-- UInt32 minDif = dif[0], numMinDif = 0;
-- dif[0] = 0;
-- for (int j = 1; j < sizeof(dif) / sizeof(dif[0]); j++)
-- {
-- if (dif[j] < minDif)
-- {
-- minDif = dif[j];
-- numMinDif = j;
-- }
-- dif[j] = 0;
-- }
-- switch (numMinDif)
-- {
-- case 1: if (K1 >= -16) K1--; break;
-- case 2: if (K1 < 16) K1++; break;
-- case 3: if (K2 >= -16) K2--; break;
-- case 4: if (K2 < 16) K2++; break;
-- case 5: if (K3 >= -16) K3--; break;
-- case 6: if (K3 < 16) K3++; break;
-- }
-- }
-- }
-- }
--}
--
--static UInt32 UpCaseDecode(Byte *data, UInt32 dataSize)
--{
-- UInt32 srcPos = 0, destPos = dataSize;
-- while (srcPos < dataSize)
-- {
-- Byte curByte = data[srcPos++];
-- if (curByte == 2 && (curByte = data[srcPos++]) != 2)
-- curByte -= 32;
-- data[destPos++] = curByte;
-- }
-- return destPos - dataSize;
--}
--
--void CVm::ExecuteStandardFilter(int filterIndex)
--{
-- UInt32 dataSize = R[4];
-- if (dataSize >= kGlobalOffset)
-- return;
-- EStandardFilter filterType = kStdFilters[filterIndex].Type;
--
-- switch (filterType)
-- {
-- case SF_E8:
-- case SF_E8E9:
-- E8E9Decode(Mem, dataSize, R[6], (filterType == SF_E8E9));
-- break;
-- case SF_ITANIUM:
-- ItaniumDecode(Mem, dataSize, R[6]);
-- break;
-- case SF_DELTA:
-- if (dataSize >= kGlobalOffset / 2)
-- break;
-- SetBlockPos(dataSize);
-- DeltaDecode(Mem, dataSize, R[0]);
-- break;
-- case SF_RGB:
-- if (dataSize >= kGlobalOffset / 2)
-- break;
-- {
-- UInt32 width = R[0];
-- if (width <= 3)
-- break;
-- SetBlockPos(dataSize);
-- RgbDecode(Mem, dataSize, width, R[1]);
-- }
-- break;
-- case SF_AUDIO:
-- if (dataSize >= kGlobalOffset / 2)
-- break;
-- SetBlockPos(dataSize);
-- AudioDecode(Mem, dataSize, R[0]);
-- break;
-- case SF_UPCASE:
-- if (dataSize >= kGlobalOffset / 2)
-- break;
-- UInt32 destSize = UpCaseDecode(Mem, dataSize);
-- SetBlockSize(destSize);
-- SetBlockPos(dataSize);
-- break;
-- }
--}
--
--#endif
--
--}}}
-diff -ruNa p7zip_9.20.1/CPP/7zip/Compress/Rar3Vm.h p7zip-libre_9.20.1/CPP/7zip/Compress/Rar3Vm.h
---- p7zip_9.20.1/CPP/7zip/Compress/Rar3Vm.h 2009-02-07 15:06:28.000000000 -0200
-+++ p7zip-libre_9.20.1/CPP/7zip/Compress/Rar3Vm.h 1969-12-31 21:00:00.000000000 -0300
-@@ -1,179 +0,0 @@
--// Rar3Vm.h
--// According to unRAR license, this code may not be used to develop
--// a program that creates RAR archives
--
--#ifndef __COMPRESS_RAR3_VM_H
--#define __COMPRESS_RAR3_VM_H
--
--#include "../../../C/CpuArch.h"
--
--#include "Common/MyVector.h"
--#include "Common/Types.h"
--
--#define RARVM_STANDARD_FILTERS
--
--namespace NCompress {
--namespace NRar3 {
--
--class CMemBitDecoder
--{
-- const Byte *_data;
-- UInt32 _bitSize;
-- UInt32 _bitPos;
--public:
-- void Init(const Byte *data, UInt32 byteSize)
-- {
-- _data = data;
-- _bitSize = (byteSize << 3);
-- _bitPos = 0;
-- }
-- UInt32 ReadBits(int numBits);
-- UInt32 ReadBit();
-- bool Avail() const { return (_bitPos < _bitSize); }
--};
--
--namespace NVm {
--
--inline UInt32 GetValue32(const void *addr) { return GetUi32(addr); }
--inline void SetValue32(void *addr, UInt32 value) { SetUi32(addr, value); }
--
--UInt32 ReadEncodedUInt32(CMemBitDecoder &inp);
--
--const int kNumRegBits = 3;
--const UInt32 kNumRegs = 1 << kNumRegBits;
--const UInt32 kNumGpRegs = kNumRegs - 1;
--
--const UInt32 kSpaceSize = 0x40000;
--const UInt32 kSpaceMask = kSpaceSize -1;
--const UInt32 kGlobalOffset = 0x3C000;
--const UInt32 kGlobalSize = 0x2000;
--const UInt32 kFixedGlobalSize = 64;
--
--namespace NGlobalOffset
--{
-- const UInt32 kBlockSize = 0x1C;
-- const UInt32 kBlockPos = 0x20;
-- const UInt32 kExecCount = 0x2C;
-- const UInt32 kGlobalMemOutSize = 0x30;
--}
--
--enum ECommand
--{
-- CMD_MOV, CMD_CMP, CMD_ADD, CMD_SUB, CMD_JZ, CMD_JNZ, CMD_INC, CMD_DEC,
-- CMD_JMP, CMD_XOR, CMD_AND, CMD_OR, CMD_TEST, CMD_JS, CMD_JNS, CMD_JB,
-- CMD_JBE, CMD_JA, CMD_JAE, CMD_PUSH, CMD_POP, CMD_CALL, CMD_RET, CMD_NOT,
-- CMD_SHL, CMD_SHR, CMD_SAR, CMD_NEG, CMD_PUSHA,CMD_POPA, CMD_PUSHF,CMD_POPF,
-- CMD_MOVZX,CMD_MOVSX,CMD_XCHG, CMD_MUL, CMD_DIV, CMD_ADC, CMD_SBB, CMD_PRINT,
--
-- CMD_MOVB, CMD_CMPB, CMD_ADDB, CMD_SUBB, CMD_INCB, CMD_DECB,
-- CMD_XORB, CMD_ANDB, CMD_ORB, CMD_TESTB,CMD_NEGB,
-- CMD_SHLB, CMD_SHRB, CMD_SARB, CMD_MULB
--};
--
--enum EOpType {OP_TYPE_REG, OP_TYPE_INT, OP_TYPE_REGMEM, OP_TYPE_NONE};
--
--// Addr in COperand object can link (point) to CVm object!!!
--
--struct COperand
--{
-- EOpType Type;
-- UInt32 Data;
-- UInt32 Base;
-- COperand(): Type(OP_TYPE_NONE), Data(0), Base(0) {}
--};
--
--struct CCommand
--{
-- ECommand OpCode;
-- bool ByteMode;
-- COperand Op1, Op2;
--};
--
--struct CBlockRef
--{
-- UInt32 Offset;
-- UInt32 Size;
--};
--
--struct CProgram
--{
-- CRecordVector<CCommand> Commands;
-- #ifdef RARVM_STANDARD_FILTERS
-- int StandardFilterIndex;
-- #endif
-- CRecordVector<Byte> StaticData;
--};
--
--struct CProgramInitState
--{
-- UInt32 InitR[kNumGpRegs];
-- CRecordVector<Byte> GlobalData;
--
-- void AllocateEmptyFixedGlobal()
-- {
-- GlobalData.Clear();
-- GlobalData.Reserve(NVm::kFixedGlobalSize);
-- for (UInt32 i = 0; i < NVm::kFixedGlobalSize; i++)
-- GlobalData.Add(0);
-- }
--};
--
--class CVm
--{
-- static UInt32 GetValue(bool byteMode, const void *addr)
-- {
-- if (byteMode)
-- return(*(const Byte *)addr);
-- else
-- return GetUi32(addr);
-- }
--
-- static void SetValue(bool byteMode, void *addr, UInt32 value)
-- {
-- if (byteMode)
-- *(Byte *)addr = (Byte)value;
-- else
-- SetUi32(addr, value);
-- }
--
-- UInt32 GetFixedGlobalValue32(UInt32 globalOffset) { return GetValue(false, &Mem[kGlobalOffset + globalOffset]); }
--
-- void SetBlockSize(UInt32 v) { SetValue(&Mem[kGlobalOffset + NGlobalOffset::kBlockSize], v); }
-- void SetBlockPos(UInt32 v) { SetValue(&Mem[kGlobalOffset + NGlobalOffset::kBlockPos], v); }
--public:
-- static void SetValue(void *addr, UInt32 value) { SetValue(false, addr, value); }
--private:
-- UInt32 GetOperand32(const COperand *op) const;
-- void SetOperand32(const COperand *op, UInt32 val);
-- Byte GetOperand8(const COperand *op) const;
-- void SetOperand8(const COperand *op, Byte val);
-- UInt32 GetOperand(bool byteMode, const COperand *op) const;
-- void SetOperand(bool byteMode, const COperand *op, UInt32 val);
--
-- void DecodeArg(CMemBitDecoder &inp, COperand &op, bool byteMode);
--
-- bool ExecuteCode(const CProgram *prg);
--
-- #ifdef RARVM_STANDARD_FILTERS
-- void ExecuteStandardFilter(int filterIndex);
-- #endif
--
-- Byte *Mem;
-- UInt32 R[kNumRegs + 1]; // R[kNumRegs] = 0 always (speed optimization)
-- UInt32 Flags;
-- void ReadVmProgram(const Byte *code, UInt32 codeSize, CProgram *prg);
--public:
-- CVm();
-- ~CVm();
-- bool Create();
-- void PrepareProgram(const Byte *code, UInt32 codeSize, CProgram *prg);
-- void SetMemory(UInt32 pos, const Byte *data, UInt32 dataSize);
-- bool Execute(CProgram *prg, const CProgramInitState *initState,
-- CBlockRef &outBlockRef, CRecordVector<Byte> &outGlobalData);
-- const Byte *GetDataPointer(UInt32 offset) const { return Mem + offset; }
--
--};
--
--#endif
--
--}}}
-diff -ruNa p7zip_9.20.1/CPP/7zip/Compress/RarCodecsRegister.cpp p7zip-libre_9.20.1/CPP/7zip/Compress/RarCodecsRegister.cpp
---- p7zip_9.20.1/CPP/7zip/Compress/RarCodecsRegister.cpp 2009-02-07 15:06:28.000000000 -0200
-+++ p7zip-libre_9.20.1/CPP/7zip/Compress/RarCodecsRegister.cpp 1969-12-31 21:00:00.000000000 -0300
-@@ -1,26 +0,0 @@
--// RarCodecsRegister.cpp
--
--#include "StdAfx.h"
--
--#include "../Common/RegisterCodec.h"
--
--#include "Rar1Decoder.h"
--#include "Rar2Decoder.h"
--#include "Rar3Decoder.h"
--
--#define CREATE_CODEC(x) static void *CreateCodec ## x() { return (void *)(ICompressCoder *)(new NCompress::NRar ## x::CDecoder); }
--
--CREATE_CODEC(1)
--CREATE_CODEC(2)
--CREATE_CODEC(3)
--
--#define RAR_CODEC(x, name) { CreateCodec ## x, 0, 0x040300 + x, L"Rar" name, 1, false }
--
--static CCodecInfo g_CodecsInfo[] =
--{
-- RAR_CODEC(1, L"1"),
-- RAR_CODEC(2, L"2"),
-- RAR_CODEC(3, L"3"),
--};
--
--REGISTER_CODECS(Rar)
-diff -ruNa p7zip_9.20.1/CPP/7zip/Crypto/Rar20Crypto.cpp p7zip-libre_9.20.1/CPP/7zip/Crypto/Rar20Crypto.cpp
---- p7zip_9.20.1/CPP/7zip/Crypto/Rar20Crypto.cpp 2009-05-30 17:19:19.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Crypto/Rar20Crypto.cpp 1969-12-31 21:00:00.000000000 -0300
-@@ -1,133 +0,0 @@
--// Crypto/Rar20Crypto.cpp
--
--#include "StdAfx.h"
--
--#include "../../../C/7zCrc.h"
--#include "../../../C/CpuArch.h"
--#include "../../../C/RotateDefs.h"
--
--#include "Rar20Crypto.h"
--
--namespace NCrypto {
--namespace NRar20 {
--
--static const int kNumRounds = 32;
--
--static const Byte InitSubstTable[256] = {
-- 215, 19,149, 35, 73,197,192,205,249, 28, 16,119, 48,221, 2, 42,
-- 232, 1,177,233, 14, 88,219, 25,223,195,244, 90, 87,239,153,137,
-- 255,199,147, 70, 92, 66,246, 13,216, 40, 62, 29,217,230, 86, 6,
-- 71, 24,171,196,101,113,218,123, 93, 91,163,178,202, 67, 44,235,
-- 107,250, 75,234, 49,167,125,211, 83,114,157,144, 32,193,143, 36,
-- 158,124,247,187, 89,214,141, 47,121,228, 61,130,213,194,174,251,
-- 97,110, 54,229,115, 57,152, 94,105,243,212, 55,209,245, 63, 11,
-- 164,200, 31,156, 81,176,227, 21, 76, 99,139,188,127, 17,248, 51,
-- 207,120,189,210, 8,226, 41, 72,183,203,135,165,166, 60, 98, 7,
-- 122, 38,155,170, 69,172,252,238, 39,134, 59,128,236, 27,240, 80,
-- 131, 3, 85,206,145, 79,154,142,159,220,201,133, 74, 64, 20,129,
-- 224,185,138,103,173,182, 43, 34,254, 82,198,151,231,180, 58, 10,
-- 118, 26,102, 12, 50,132, 22,191,136,111,162,179, 45, 4,148,108,
-- 161, 56, 78,126,242,222, 15,175,146, 23, 33,241,181,190, 77,225,
-- 0, 46,169,186, 68, 95,237, 65, 53,208,253,168, 9, 18,100, 52,
-- 116,184,160, 96,109, 37, 30,106,140,104,150, 5,204,117,112, 84
--};
--
--void CData::UpdateKeys(const Byte *data)
--{
-- for (int i = 0; i < 16; i += 4)
-- for (int j = 0; j < 4; j++)
-- Keys[j] ^= g_CrcTable[data[i + j]];
--}
--
--static void Swap(Byte *b1, Byte *b2)
--{
-- Byte b = *b1;
-- *b1 = *b2;
-- *b2 = b;
--}
--
--void CData::SetPassword(const Byte *password, UInt32 passwordLen)
--{
-- Keys[0] = 0xD3A3B879L;
-- Keys[1] = 0x3F6D12F7L;
-- Keys[2] = 0x7515A235L;
-- Keys[3] = 0xA4E7F123L;
--
-- Byte psw[256];
-- memset(psw, 0, sizeof(psw));
-- memcpy(psw, password, passwordLen);
-- memcpy(SubstTable, InitSubstTable, sizeof(SubstTable));
--
-- for (UInt32 j = 0; j < 256; j++)
-- for (UInt32 i = 0; i < passwordLen; i += 2)
-- {
-- UInt32 n2 = (Byte)g_CrcTable[(psw[i + 1] + j) & 0xFF];
-- UInt32 n1 = (Byte)g_CrcTable[(psw[i] - j) & 0xFF];
-- for (UInt32 k = 1; (n1 & 0xFF) != n2; n1++, k++)
-- Swap(&SubstTable[n1 & 0xFF], &SubstTable[(n1 + i + k) & 0xFF]);
-- }
-- for (UInt32 i = 0; i < passwordLen; i+= 16)
-- EncryptBlock(&psw[i]);
--}
--
--void CData::CryptBlock(Byte *buf, bool encrypt)
--{
-- Byte inBuf[16];
-- UInt32 A, B, C, D, T, TA, TB;
--
-- A = GetUi32(buf + 0) ^ Keys[0];
-- B = GetUi32(buf + 4) ^ Keys[1];
-- C = GetUi32(buf + 8) ^ Keys[2];
-- D = GetUi32(buf + 12) ^ Keys[3];
--
-- if (!encrypt)
-- memcpy(inBuf, buf, sizeof(inBuf));
--
-- for (int i = 0; i < kNumRounds; i++)
-- {
-- UInt32 key = Keys[(encrypt ? i : (kNumRounds - 1 - i)) & 3];
-- T = ((C + rotlFixed(D, 11)) ^ key);
-- TA = A ^ SubstLong(T);
-- T = ((D ^ rotlFixed(C, 17)) + key);
-- TB = B ^ SubstLong(T);
-- A = C;
-- B = D;
-- C = TA;
-- D = TB;
-- }
--
-- SetUi32(buf + 0, C ^ Keys[0]);
-- SetUi32(buf + 4, D ^ Keys[1]);
-- SetUi32(buf + 8, A ^ Keys[2]);
-- SetUi32(buf + 12, B ^ Keys[3]);
--
-- UpdateKeys(encrypt ? buf : inBuf);
--}
--
--STDMETHODIMP CDecoder::CryptoSetPassword(const Byte *data, UInt32 size)
--{
-- _cipher.SetPassword(data, size);
-- return S_OK;
--}
--
--STDMETHODIMP CDecoder::Init()
--{
-- return S_OK;
--}
--
--static const UInt32 kBlockSize = 16;
--
--STDMETHODIMP_(UInt32) CDecoder::Filter(Byte *data, UInt32 size)
--{
-- if (size == 0)
-- return 0;
-- if (size < kBlockSize)
-- return kBlockSize;
-- UInt32 i;
-- size -= kBlockSize;
-- for (i = 0; i <= size; i += kBlockSize)
-- _cipher.DecryptBlock(data + i);
-- return i;
--}
--
--}}
-diff -ruNa p7zip_9.20.1/CPP/7zip/Crypto/Rar20Crypto.h p7zip-libre_9.20.1/CPP/7zip/Crypto/Rar20Crypto.h
---- p7zip_9.20.1/CPP/7zip/Crypto/Rar20Crypto.h 2009-02-07 15:07:19.000000000 -0200
-+++ p7zip-libre_9.20.1/CPP/7zip/Crypto/Rar20Crypto.h 1969-12-31 21:00:00.000000000 -0300
-@@ -1,50 +0,0 @@
--// Crypto/Rar20Crypto.h
--
--#ifndef __CRYPTO_RAR20_CRYPTO_H
--#define __CRYPTO_RAR20_CRYPTO_H
--
--#include "Common/MyCom.h"
--
--#include "../ICoder.h"
--#include "../IPassword.h"
--
--namespace NCrypto {
--namespace NRar20 {
--
--class CData
--{
-- Byte SubstTable[256];
-- UInt32 Keys[4];
--
-- UInt32 SubstLong(UInt32 t)
-- {
-- return (UInt32)SubstTable[(int)t & 255] |
-- ((UInt32)SubstTable[(int)(t >> 8) & 255] << 8) |
-- ((UInt32)SubstTable[(int)(t >> 16) & 255] << 16) |
-- ((UInt32)SubstTable[(int)(t >> 24) & 255] << 24);
-- }
-- void UpdateKeys(const Byte *data);
-- void CryptBlock(Byte *buf, bool encrypt);
--public:
-- void EncryptBlock(Byte *buf) { CryptBlock(buf, true); }
-- void DecryptBlock(Byte *buf) { CryptBlock(buf, false); }
-- void SetPassword(const Byte *password, UInt32 passwordLen);
--};
--
--class CDecoder:
-- public ICompressFilter,
-- public ICryptoSetPassword,
-- public CMyUnknownImp
--{
-- CData _cipher;
--public:
-- MY_UNKNOWN_IMP1(ICryptoSetPassword)
--
-- STDMETHOD(Init)();
-- STDMETHOD_(UInt32, Filter)(Byte *data, UInt32 size);
-- STDMETHOD(CryptoSetPassword)(const Byte *data, UInt32 size);
--};
--
--}}
--
--#endif
-diff -ruNa p7zip_9.20.1/CPP/7zip/Crypto/RarAes.cpp p7zip-libre_9.20.1/CPP/7zip/Crypto/RarAes.cpp
---- p7zip_9.20.1/CPP/7zip/Crypto/RarAes.cpp 2010-10-20 01:56:08.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Crypto/RarAes.cpp 1969-12-31 21:00:00.000000000 -0300
-@@ -1,134 +0,0 @@
--// Crypto/RarAes.cpp
--// Note: you must include MyAes.cpp to project to initialize AES tables
--
--#include "StdAfx.h"
--
--#include "RarAes.h"
--#include "Sha1.h"
--
--namespace NCrypto {
--namespace NRar29 {
--
--CDecoder::CDecoder():
-- _thereIsSalt(false),
-- _needCalculate(true),
-- _rar350Mode(false)
--{
-- for (int i = 0; i < sizeof(_salt); i++)
-- _salt[i] = 0;
--}
--
--STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
--{
-- bool thereIsSaltPrev = _thereIsSalt;
-- _thereIsSalt = false;
-- if (size == 0)
-- return S_OK;
-- if (size < 8)
-- return E_INVALIDARG;
-- _thereIsSalt = true;
-- bool same = false;
-- if (_thereIsSalt == thereIsSaltPrev)
-- {
-- same = true;
-- if (_thereIsSalt)
-- {
-- for (unsigned i = 0; i < sizeof(_salt); i++)
-- if (_salt[i] != data[i])
-- {
-- same = false;
-- break;
-- }
-- }
-- }
-- for (unsigned i = 0; i < sizeof(_salt); i++)
-- _salt[i] = data[i];
-- if (!_needCalculate && !same)
-- _needCalculate = true;
-- return S_OK;
--}
--
--static const unsigned kMaxPasswordLength = 127 * 2;
--
--STDMETHODIMP CDecoder::CryptoSetPassword(const Byte *data, UInt32 size)
--{
-- if (size > kMaxPasswordLength)
-- size = kMaxPasswordLength;
-- bool same = false;
-- if (size == buffer.GetCapacity())
-- {
-- same = true;
-- for (UInt32 i = 0; i < size; i++)
-- if (data[i] != buffer[i])
-- {
-- same = false;
-- break;
-- }
-- }
-- if (!_needCalculate && !same)
-- _needCalculate = true;
-- buffer.SetCapacity(size);
-- memcpy(buffer, data, size);
-- return S_OK;
--}
--
--STDMETHODIMP CDecoder::Init()
--{
-- Calculate();
-- SetKey(aesKey, kRarAesKeySize);
-- AesCbc_Init(_aes + _offset, _aesInit);
-- return S_OK;
--}
--
--void CDecoder::Calculate()
--{
-- if (_needCalculate)
-- {
-- const unsigned kSaltSize = 8;
--
-- Byte rawPassword[kMaxPasswordLength + kSaltSize];
--
-- memcpy(rawPassword, buffer, buffer.GetCapacity());
--
-- size_t rawLength = buffer.GetCapacity();
--
-- if (_thereIsSalt)
-- {
-- memcpy(rawPassword + rawLength, _salt, kSaltSize);
-- rawLength += kSaltSize;
-- }
--
-- NSha1::CContext sha;
-- sha.Init();
--
-- // rar reverts hash for sha.
-- const unsigned kNumRounds = (1 << 18);
-- unsigned i;
-- for (i = 0; i < kNumRounds; i++)
-- {
-- sha.UpdateRar(rawPassword, rawLength, _rar350Mode);
-- Byte pswNum[3] = { (Byte)i, (Byte)(i >> 8), (Byte)(i >> 16) };
-- sha.UpdateRar(pswNum, 3, _rar350Mode);
-- if (i % (kNumRounds / 16) == 0)
-- {
-- NSha1::CContext shaTemp = sha;
-- Byte digest[NSha1::kDigestSize];
-- shaTemp.Final(digest);
-- _aesInit[i / (kNumRounds / 16)] = (Byte)digest[4 * 4 + 3];
-- }
-- }
-- /*
-- // it's test message for sha
-- const char *message = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
-- sha.Update((const Byte *)message, strlen(message));
-- */
-- Byte digest[20];
-- sha.Final(digest);
-- for (i = 0; i < 4; i++)
-- for (unsigned j = 0; j < 4; j++)
-- aesKey[i * 4 + j] = (digest[i * 4 + 3 - j]);
-- }
-- _needCalculate = false;
--}
--
--}}
-diff -ruNa p7zip_9.20.1/CPP/7zip/Crypto/RarAes.h p7zip-libre_9.20.1/CPP/7zip/Crypto/RarAes.h
---- p7zip_9.20.1/CPP/7zip/Crypto/RarAes.h 2009-12-21 08:46:19.000000000 -0300
-+++ p7zip-libre_9.20.1/CPP/7zip/Crypto/RarAes.h 1969-12-31 21:00:00.000000000 -0300
-@@ -1,47 +0,0 @@
--// Crypto/RarAes.h
--
--#ifndef __CRYPTO_RAR_AES_H
--#define __CRYPTO_RAR_AES_H
--
--#include "../../../C/Aes.h"
--
--#include "Common/Buffer.h"
--
--#include "../IPassword.h"
--
--#include "MyAes.h"
--
--namespace NCrypto {
--namespace NRar29 {
--
--const UInt32 kRarAesKeySize = 16;
--
--class CDecoder:
-- public CAesCbcDecoder,
-- public ICompressSetDecoderProperties2,
-- public ICryptoSetPassword
--{
-- Byte _salt[8];
-- bool _thereIsSalt;
-- CByteBuffer buffer;
-- Byte aesKey[kRarAesKeySize];
-- Byte _aesInit[AES_BLOCK_SIZE];
-- bool _needCalculate;
-- bool _rar350Mode;
--
-- void Calculate();
--public:
-- MY_UNKNOWN_IMP2(
-- ICryptoSetPassword,
-- ICompressSetDecoderProperties2)
-- STDMETHOD(Init)();
-- STDMETHOD(CryptoSetPassword)(const Byte *aData, UInt32 aSize);
-- STDMETHOD(SetDecoderProperties2)(const Byte *data, UInt32 size);
--
-- CDecoder();
-- void SetRar350Mode(bool rar350Mode) { _rar350Mode = rar350Mode; }
--};
--
--}}
--
--#endif
-diff -ruNa p7zip_9.20.1/DOCS/unRarLicense.txt p7zip-libre_9.20.1/DOCS/unRarLicense.txt
---- p7zip_9.20.1/DOCS/unRarLicense.txt 2008-08-01 06:56:23.000000000 -0300
-+++ p7zip-libre_9.20.1/DOCS/unRarLicense.txt 1969-12-31 21:00:00.000000000 -0300
-@@ -1,41 +0,0 @@
-- ****** ***** ****** unRAR - free utility for RAR archives
-- ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ****** ******* ****** License for use and distribution of
-- ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ** ** ** ** ** ** FREE portable version
-- ~~~~~~~~~~~~~~~~~~~~~
--
-- The source code of unRAR utility is freeware. This means:
--
-- 1. All copyrights to RAR and the utility unRAR are exclusively
-- owned by the author - Alexander Roshal.
--
-- 2. The unRAR sources may be used in any software to handle RAR
-- archives without limitations free of charge, but cannot be used
-- to re-create the RAR compression algorithm, which is proprietary.
-- Distribution of modified unRAR sources in separate form or as a
-- part of other software is permitted, provided that it is clearly
-- stated in the documentation and source comments that the code may
-- not be used to develop a RAR (WinRAR) compatible archiver.
--
-- 3. The unRAR utility may be freely distributed. No person or company
-- may charge a fee for the distribution of unRAR without written
-- permission from the copyright holder.
--
-- 4. THE RAR ARCHIVER AND THE UNRAR UTILITY ARE DISTRIBUTED "AS IS".
-- NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AT
-- YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS,
-- DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING
-- OR MISUSING THIS SOFTWARE.
--
-- 5. Installing and using the unRAR utility signifies acceptance of
-- these terms and conditions of the license.
--
-- 6. If you don't agree with terms of the license you must remove
-- unRAR files from your storage devices and cease to use the
-- utility.
--
-- Thank you for your interest in RAR and unRAR.
--
--
-- Alexander L. Roshal
-\ No hay ningún carácter de nueva línea al final del fichero
-diff -ruNa p7zip_9.20.1/makefile p7zip-libre_9.20.1/makefile
---- p7zip_9.20.1/makefile 2011-03-13 08:52:45.000000000 -0300
-+++ p7zip-libre_9.20.1/makefile 2011-09-07 15:41:14.000000000 -0300
-@@ -56,7 +56,6 @@
- $(MAKE) -C CPP/7zip/UI/Client7z depend
- $(MAKE) -C CPP/7zip/UI/Console depend
- $(MAKE) -C CPP/7zip/Bundles/Format7zFree depend
-- $(MAKE) -C CPP/7zip/Compress/Rar depend
- $(MAKE) -C CPP/7zip/UI/GUI depend
- $(MAKE) -C CPP/7zip/UI/FileManager depend
- $(MAKE) -C check/my_86_filter depend
-@@ -68,7 +67,6 @@
- common7z:common
- $(MKDIR) bin/Codecs
- $(MAKE) -C CPP/7zip/Bundles/Format7zFree all
-- $(MAKE) -C CPP/7zip/Compress/Rar all
-
- 7z: common7z
- $(MAKE) -C CPP/7zip/UI/Console all
-@@ -93,7 +91,6 @@
- $(MAKE) -C CPP/7zip/UI/FileManager clean
- $(MAKE) -C CPP/7zip/UI/GUI clean
- $(MAKE) -C CPP/7zip/Bundles/Format7zFree clean
-- $(MAKE) -C CPP/7zip/Compress/Rar clean
- $(MAKE) -C CPP/7zip/Compress/LZMA_Alone clean
- $(MAKE) -C CPP/7zip/Bundles/AloneGCOV clean
- $(MAKE) -C CPP/7zip/TEST/TestUI clean
-diff -ruNa p7zip_9.20.1/makefile.oldmake p7zip-libre_9.20.1/makefile.oldmake
---- p7zip_9.20.1/makefile.oldmake 2011-03-13 08:53:08.000000000 -0300
-+++ p7zip-libre_9.20.1/makefile.oldmake 2011-09-07 15:41:14.000000000 -0300
-@@ -56,7 +56,6 @@
- cd CPP/7zip/UI/Client7z ; $(MAKE) depend
- cd CPP/7zip/UI/Console ; $(MAKE) depend
- cd CPP/7zip/Bundles/Format7zFree ; $(MAKE) depend
-- cd CPP/7zip/Compress/Rar ; $(MAKE) depend
- cd CPP/7zip/UI/GUI ; $(MAKE) depend
- cd CPP/7zip/UI/FileManager ; $(MAKE) depend
- cd check/my_86_filter ; $(MAKE) depend
-@@ -68,7 +67,6 @@
- common7z:common
- $(MKDIR) bin/Codecs
- cd CPP/7zip/Bundles/Format7zFree ; $(MAKE) all
-- cd CPP/7zip/Compress/Rar ; $(MAKE) all
-
- 7z: common7z
- cd CPP/7zip/UI/Console ; $(MAKE) all
-@@ -93,7 +91,6 @@
- cd CPP/7zip/UI/FileManager ; $(MAKE) clean
- cd CPP/7zip/UI/GUI ; $(MAKE) clean
- cd CPP/7zip/Bundles/Format7zFree ; $(MAKE) clean
-- cd CPP/7zip/Compress/Rar ; $(MAKE) clean
- cd CPP/7zip/Compress/LZMA_Alone ; $(MAKE) clean
- cd CPP/7zip/Bundles/AloneGCOV ; $(MAKE) clean
- cd CPP/7zip/TEST/TestUI ; $(MAKE) clean
-diff -ruNa p7zip_9.20.1/makefile.qnx_shared.so p7zip-libre_9.20.1/makefile.qnx_shared.so
---- p7zip_9.20.1/makefile.qnx_shared.so 2007-06-28 04:34:14.000000000 -0300
-+++ p7zip-libre_9.20.1/makefile.qnx_shared.so 2011-09-07 15:41:14.000000000 -0300
-@@ -1,5 +1,4 @@
- ###################################################
--# makefile.machine for "7z.so , Codecs/Rar29.so" :
- # tested with p7zip-4.47_beta on qnx-6.3.0 sp3 x86 target
-
- OPTFLAGS=-O
-diff -ruNa p7zip_9.20.1/makefile.rules p7zip-libre_9.20.1/makefile.rules
---- p7zip_9.20.1/makefile.rules 2010-11-07 13:08:51.000000000 -0300
-+++ p7zip-libre_9.20.1/makefile.rules 2011-09-07 15:41:14.000000000 -0300
-@@ -448,18 +448,6 @@
- NsisRegister.o : ../../Archive/Nsis/NsisRegister.cpp
- $(CXX) $(CXXFLAGS) ../../Archive/Nsis/NsisRegister.cpp
-
--RarHandler.o : ../../Archive/Rar/RarHandler.cpp
-- $(CXX) $(CXXFLAGS) ../../Archive/Rar/RarHandler.cpp
--RarHeader.o : ../../Archive/Rar/RarHeader.cpp
-- $(CXX) $(CXXFLAGS) ../../Archive/Rar/RarHeader.cpp
--RarIn.o : ../../Archive/Rar/RarIn.cpp
-- $(CXX) $(CXXFLAGS) ../../Archive/Rar/RarIn.cpp
--RarItem.o : ../../Archive/Rar/RarItem.cpp
-- $(CXX) $(CXXFLAGS) ../../Archive/Rar/RarItem.cpp
--RarVolumeInStream.o : ../../Archive/Rar/RarVolumeInStream.cpp
-- $(CXX) $(CXXFLAGS) ../../Archive/Rar/RarVolumeInStream.cpp
--RarRegister.o : ../../Archive/Rar/RarRegister.cpp
-- $(CXX) $(CXXFLAGS) ../../Archive/Rar/RarRegister.cpp
-
- UdfHandler.o : ../../Archive/Udf/UdfHandler.cpp
- $(CXX) $(CXXFLAGS) ../../Archive/Udf/UdfHandler.cpp
-@@ -535,10 +523,6 @@
- $(CXX) $(CXXFLAGS) ../../Crypto/7zAesRegister.cpp
- WzAes.o : ../../Crypto/WzAes.cpp
- $(CXX) $(CXXFLAGS) ../../Crypto/WzAes.cpp
--Rar20Crypto.o : ../../Crypto/Rar20Crypto.cpp
-- $(CXX) $(CXXFLAGS) ../../Crypto/Rar20Crypto.cpp
--RarAes.o : ../../Crypto/RarAes.cpp
-- $(CXX) $(CXXFLAGS) ../../Crypto/RarAes.cpp
- HmacSha1.o : ../../Crypto/HmacSha1.cpp
- $(CXX) $(CXXFLAGS) ../../Crypto/HmacSha1.cpp
- Pbkdf2HmacSha1.o : ../../Crypto/Pbkdf2HmacSha1.cpp
diff --git a/libre/p7zip-libre/parent-folder-icon.patch b/libre/p7zip-libre/parent-folder-icon.patch
deleted file mode 100644
index da492b60f..000000000
--- a/libre/p7zip-libre/parent-folder-icon.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -ruN p7zip_9.20.1/CPP/7zip/UI/FileManager/FM_rc.cpp p7zip_9.20.1-libre/CPP/7zip/UI/FileManager/FM_rc.cpp
---- p7zip_9.20.1/CPP/7zip/UI/FileManager/FM_rc.cpp 2010-11-07 16:55:36.000000000 +0100
-+++ p7zip_9.20.1-libre/CPP/7zip/UI/FileManager/FM_rc.cpp 2014-04-17 21:41:48.222298740 +0200
-@@ -774,8 +774,6 @@
-
- /////////////////////////////////////////////////////
-
--#include "res/ParentFolder.h"
--
- SevenZipPanel::SevenZipPanel(MyFrame *frame, wxWindow *parent,int id,int panelIndex) :
- wxPanel(parent,id) , m_frame(frame), _wList(0)
- {
-@@ -793,7 +791,7 @@
- int sizes[] = {150, 250, 350, -1};
- wxArrayString pathArray;
- wxBoxSizer *pPathSizer = new wxBoxSizer(wxHORIZONTAL);
-- m_pBmpButtonParentFolder = new wxBitmapButton(this, kParentFolderID, wxGetBitmapFromMemory(PARENT_FOLDER), wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
-+ m_pBmpButtonParentFolder = new wxBitmapButton(this, kParentFolderID, wxArtProvider::GetBitmap(wxART_GO_DIR_UP, wxART_TOOLBAR, wxDefaultSize), wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
- m_pComboBoxPath = new wxComboBox(this, _comboBoxID, wxEmptyString, wxDefaultPosition, wxSize(300,-1), pathArray, wxCB_DROPDOWN | wxCB_SORT );
- pPathSizer->Add(m_pBmpButtonParentFolder, 0, wxALL|wxEXPAND, 0);
- pPathSizer->Add(m_pComboBoxPath, 1, wxALL|wxEXPAND, 5);
-diff -ruN p7zip_9.20.1/CPP/7zip/UI/FileManager/makefile.depend p7zip_9.20.1-libre/CPP/7zip/UI/FileManager/makefile.depend
---- p7zip_9.20.1/CPP/7zip/UI/FileManager/makefile.depend 2011-02-19 10:33:17.000000000 +0100
-+++ p7zip_9.20.1-libre/CPP/7zip/UI/FileManager/makefile.depend 2014-04-17 21:40:56.504696275 +0200
-@@ -714,7 +714,7 @@
- res/Move2PNG.h res/DeletePNG.h res/Delete2PNG.h res/InfoPNG.h \
- res/Info2PNG.h LangUtils.h ../../../Common/Lang.h \
- ../../../Common/MyString.h ../../../Windows/ResourceString.h \
-- /usr/include/wx-2.8/wx/mstream.h res/ParentFolder.h
-+ /usr/include/wx-2.8/wx/mstream.h
- OpenCallback.o: OpenCallback.cpp ../../../myWindows/StdAfx.h \
- ../../../myWindows/config.h ../../../Common/MyWindows.h \
- ../../../Common/MyGuidDef.h ../../../Common/Types.h \
diff --git a/libre/pacman-mirrorlist-libre/PKGBUILD b/libre/pacman-mirrorlist-libre/PKGBUILD
index 0b1ed8fad..819b737df 100644
--- a/libre/pacman-mirrorlist-libre/PKGBUILD
+++ b/libre/pacman-mirrorlist-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 193769 2013-08-30 15:44:51Z dan $
-# Maintainer: Dan McGee <dan@archlinux.org>
-# Maintainer (Parabola): Esteban Carnevale <alfplayer@mailoo.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Dan McGee <dan@archlinux.org>
+# Maintainer: Esteban Carnevale <alfplayer@mailoo.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
pkgname=pacman-mirrorlist-libre
pkgver=$(LC_ALL=C date -u +%Y%m%d)
diff --git a/libre/pacman/PKGBUILD b/libre/pacman/PKGBUILD
index 15d16466d..8fb58771b 100644
--- a/libre/pacman/PKGBUILD
+++ b/libre/pacman/PKGBUILD
@@ -1,11 +1,11 @@
# vim: set ts=2 sw=2 et:
-# $Id: PKGBUILD 202690 2013-12-24 21:35:48Z dreisner $
-# Maintainer: Dan McGee <dan@archlinux.org>
-# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# $Id: PKGBUILD 211992 2014-05-04 02:54:25Z allan $
+# Maintainer (Arch): Dan McGee <dan@archlinux.org>
+# Maintainer (Arch): Dave Reisner <dreisner@archlinux.org>
pkgname=pacman
pkgver=4.1.2
-pkgrel=5.2
+pkgrel=6
pkgdesc="A library-based package manager with dependency support"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.archlinux.org/pacman/"
@@ -33,7 +33,7 @@ md5sums=('063c8b0ff6bdf903dc235445525627cd'
'f0f310df411f943dbc4e2dd376c88662')
build() {
- cd $srcdir/$pkgname-$pkgver
+ cd "$pkgname-$pkgver"
./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var --enable-doc \
@@ -48,47 +48,48 @@ check() {
}
package() {
- cd $srcdir/$pkgname-$pkgver
- make DESTDIR=$pkgdir install
- make DESTDIR=$pkgdir -C contrib install
+ cd "$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" -C contrib install
# install Arch specific stuff
- install -dm755 $pkgdir/etc
- install -m644 $srcdir/pacman.conf.$CARCH $pkgdir/etc/pacman.conf
-
- case "$CARCH" in
+ install -dm755 "$pkgdir/etc"
+ install -m644 "$srcdir/pacman.conf.$CARCH" "$pkgdir/etc/pacman.conf"
+
+ case $CARCH in
i686)
mycarch="i686"
mychost="i686-pc-linux-gnu"
- myflags="-march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4"
+ myflags="-march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4"
myldflags="-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu"
;;
x86_64)
mycarch="x86_64"
mychost="x86_64-unknown-linux-gnu"
- myflags="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4"
+ myflags="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4"
myldflags="-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu"
;;
mips64el)
mycarch="mips64el"
mychost="mips64el-unknown-linux-gnu"
- myflags="-O2 -march=mips3 -mtune=loongson2f -mabi=n32 -pipe -mplt -Wa,-mfix-loongson2f-nop -fstack-protector --param=ssp-buffer-size=4"
+ myflags="-O2 -march=mips3 -mtune=loongson2f -mabi=n32 -pipe -mplt -Wa,-mfix-loongson2f-nop -fstack-protector-strong --param=ssp-buffer-size=4"
myldflags="-Wl,-O1,--sort-common,--as-needed,-z,relro"
;;
esac
- install -m644 $srcdir/makepkg.conf $pkgdir/etc/
+
# set things correctly in the default conf file
- sed -i $pkgdir/etc/makepkg.conf \
+ install -m644 "$srcdir/makepkg.conf" "$pkgdir/etc"
+ sed -i "$pkgdir/etc/makepkg.conf" \
-e "s|@CARCH[@]|$mycarch|g" \
-e "s|@CHOST[@]|$mychost|g" \
-e "s|@LDFLAGS[@]|$myldflags|g" \
-e "s|@CARCHFLAGS[@]|$myflags|g"
-
+
# put bash_completion in the right location
- install -dm755 ${pkgdir}/usr/share/bash-completion/completions
- mv ${pkgdir}/etc/bash_completion.d/pacman \
- ${pkgdir}/usr/share/bash-completion/completions
- rmdir ${pkgdir}/etc/bash_completion.d
+ install -dm755 "$pkgdir/usr/share/bash-completion/completions"
+ mv "$pkgdir/etc/bash_completion.d/pacman" "$pkgdir/usr/share/bash-completion/completions"
+ rmdir "$pkgdir/etc/bash_completion.d"
for f in makepkg pacman-key; do
ln -s pacman "$pkgdir/usr/share/bash-completion/completions/$f"
diff --git a/libre/parabola-artwork/PKGBUILD b/libre/parabola-artwork/PKGBUILD
new file mode 100644
index 000000000..4833ef726
--- /dev/null
+++ b/libre/parabola-artwork/PKGBUILD
@@ -0,0 +1,19 @@
+# Maintainer: Drtan Samos <lashdu@drtan.twilightparadox.com>
+
+pkgname=parabola-artwork
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="The Parabola artwork"
+arch=('any')
+url="https://parabolagnulinux.org"
+license=('CCPL:cc-by-sa-3.0')
+source=("https://repo.parabolagnulinux.org/other/${pkgname}/${pkgname}-${pkgver}-${pkgrel}.tar.gz")
+sha256sums=('f8a0d0dde510f76125dbe9106dcb3e2d9af595ad5cfa1028acf10011f8fbb7af ')
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}-${pkgrel}"
+ install -d "${pkgdir}/usr/share/parabola/artwork"
+ install -m644 *.bmp "${pkgdir}/usr/share/parabola/artwork/"
+ install -m644 *.png "${pkgdir}/usr/share/parabola/artwork/"
+}
+
diff --git a/libre/parabola-gnome/PKGBUILD b/libre/parabola-gnome/PKGBUILD
new file mode 100644
index 000000000..19eb60aa2
--- /dev/null
+++ b/libre/parabola-gnome/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Drtan Samos <lashdu@drtan.twilightparadox.com>
+
+pkgname=parabola-gnome
+pkgver=1.0.1
+pkgrel=3
+pkgdesc="The Parabola defaults for GNOME"
+arch=('any')
+url="https://parabolagnulinux.org"
+license=('GPL3')
+install=$pkgname.install
+makedepends=('git')
+depends=('dbus-glib' 'parabola-artwork>=1.0' 'parabola-artwork<1.1')
+source=("git://projects.parabolagnulinux.org/packages/${pkgname}#tag=v${pkgver}")
+sha256sums=('SKIP')
+
+package() {
+ cd "${srcdir}/${pkgname}"
+
+ install -d ${pkgdir}/etc/dconf/db/gdm.d/
+ install -m644 dconf/db/gdm.d/parabola "${pkgdir}/etc/dconf/db/gdm.d/$(date +%Y%m%d%H%M%S%N)"
+
+ install -d ${pkgdir}/etc/dconf/db/local.d/
+ install -m644 dconf/db/local.d/parabola "${pkgdir}/etc/dconf/db/local.d/$(date +%Y%m%d%H%M%S%N)"
+
+ install -d ${pkgdir}/etc/dconf/profile/
+ install -m644 dconf/profile/* "${pkgdir}/etc/dconf/profile/"
+
+ install -d ${pkgdir}/usr/share/gnome-background-properties/
+ install -m644 gnome-background-properties/parabola.xml "${pkgdir}/usr/share/gnome-background-properties/"
+}
+
diff --git a/libre/parabola-gnome/parabola-gnome.install b/libre/parabola-gnome/parabola-gnome.install
new file mode 100644
index 000000000..8fce17b2e
--- /dev/null
+++ b/libre/parabola-gnome/parabola-gnome.install
@@ -0,0 +1,11 @@
+post_install() {
+ dconf update
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/libre/parabola-themes-slim/PKGBUILD b/libre/parabola-themes-slim/PKGBUILD
index a921253da..13aec2e8a 100644
--- a/libre/parabola-themes-slim/PKGBUILD
+++ b/libre/parabola-themes-slim/PKGBUILD
@@ -1,5 +1,5 @@
-# Maintainer: Mark J.R.P. <l1mpm4rk@gmail.com>
-# Contributor: Mark J.R.P. <l1mpm4rk@gmail.com>
+# Maintainer (Arch): Mark J.R.P. <l1mpm4rk@gmail.com>
+# Contributor (Arch): Mark J.R.P. <l1mpm4rk@gmail.com>
provides=("parabola-themes-slim=$pkgver")
replaces=('archlinux-themes-slim')
diff --git a/libre/parabola-xdg-menu/PKGBUILD b/libre/parabola-xdg-menu/PKGBUILD
index b3085f9c3..002383804 100644
--- a/libre/parabola-xdg-menu/PKGBUILD
+++ b/libre/parabola-xdg-menu/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 101138 2013-11-18 10:37:13Z spupykin $
-# Maintainer: Sergej Pupykin <sergej@aur.archlinux.org>
-# Contributor: Sergej Pupykin <sergej@aur.archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Sergej Pupykin <sergej@aur.archlinux.org>
+# Contributor (Arch): Sergej Pupykin <sergej@aur.archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
pkgname=parabola-xdg-menu
pkgver=0.7.6.2
diff --git a/libre/parabolaiso/PKGBUILD b/libre/parabolaiso/PKGBUILD
index 833a6f56b..dcc63a9ea 100644
--- a/libre/parabolaiso/PKGBUILD
+++ b/libre/parabolaiso/PKGBUILD
@@ -1,6 +1,6 @@
-# Maintainer: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
-# Maintainer: Pierre Schmitz <pierre@archlinux.de>
-# Maintainer (Parabola): Esteban Carnevale <alfplayer@mailoo.org>
+# Maintainer (Arch): Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+# Maintainer (Arch): Pierre Schmitz <pierre@archlinux.de>
+# Maintainer: Esteban Carnevale <alfplayer@mailoo.org>
pkgname=parabolaiso
pkgver=2013.09.01
diff --git a/libre/ponysay-libre/PKGBUILD b/libre/ponysay-libre/PKGBUILD
index 703a562d6..f802dc365 100644
--- a/libre/ponysay-libre/PKGBUILD
+++ b/libre/ponysay-libre/PKGBUILD
@@ -1,7 +1,7 @@
-# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
-# Contributor: Erkin Batu Altunbaş <erkinbatu@gmail.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer (Arch): Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor (Arch): Erkin Batu Altunbaş <erkinbatu@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Márcio Silva <coadde@parabola.nu>
_pkgname=ponysay
pkgname=ponysay-libre
@@ -11,9 +11,9 @@ pkgdesc="cowsay reimplemention for ponies, without nonfree pony graphics"
url="http://erkin.github.com/ponysay/"
arch=('any')
license=('GPL3')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
depends=('python' 'bash')
makedepends=('git')
mksource=("ponysay-$pkgver.tar.gz::https://github.com/erkin/ponysay/tarball/$pkgver")
diff --git a/libre/povray-libre/PKGBUILD b/libre/povray-libre/PKGBUILD
index c75973f60..e68afa864 100644
--- a/libre/povray-libre/PKGBUILD
+++ b/libre/povray-libre/PKGBUILD
@@ -1,11 +1,11 @@
# $Id: PKGBUILD 101605 2013-11-29 04:23:22Z eric $
-# Maintainer: Alexander Rødseth <rodseth@gmail.com>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-# Contributor: tobias <tobias@archlinux.org>
-# Contributor: red_over_blue
-# Contributor: neri
+# Maintainer (Arch): Alexander Rødseth <rodseth@gmail.com>
+# Contributor (Arch): Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor (Arch): tobias <tobias@archlinux.org>
+# Contributor (Arch): red_over_blue
+# Contributor (Arch): neri
-# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer: Márcio Silva <coadde@parabola.nu>
# Don't build povray before 3.7 version (that ones are nonfree software)
_pkgname=povray
diff --git a/libre/psi/PKGBUILD b/libre/psi/PKGBUILD
index c4150075f..e5903d9d5 100644
--- a/libre/psi/PKGBUILD
+++ b/libre/psi/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 196956 2013-10-21 11:28:57Z pierre $
-# Maintainer: Pierre Schmitz <pierre@archlinux.de>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Pierre Schmitz <pierre@archlinux.de>
+# Maintainer: André Silva <emulatorman@parabola.nu>
pkgname=psi
pkgver=0.15
diff --git a/libre/psutils-libre/PKGBUILD b/libre/psutils-libre/PKGBUILD
index 0d61ca098..90b204183 100644
--- a/libre/psutils-libre/PKGBUILD
+++ b/libre/psutils-libre/PKGBUILD
@@ -1,9 +1,9 @@
# $Id: PKGBUILD 176972 2013-02-03 07:11:03Z allan $
-# Maintainer: Ronald van Haren <ronald.archlinux.org>
-# Contributor: eric <eric@archlinux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): xihh <hahj87@gmail.com>
+# Maintainer (Arch): Ronald van Haren <ronald.archlinux.org>
+# Contributor (Arch): eric <eric@archlinux.org>
+# Contributor (Arch): Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: xihh <hahj87@gmail.com>
_pkgname=psutils
pkgname=psutils-libre
diff --git a/libre/python-reportlab-libre/PKGBUILD b/libre/python-reportlab-libre/PKGBUILD
index c211f1567..5f749edbd 100644
--- a/libre/python-reportlab-libre/PKGBUILD
+++ b/libre/python-reportlab-libre/PKGBUILD
@@ -1,26 +1,26 @@
-# $Id: PKGBUILD 107615 2014-03-18 10:32:13Z jelle $
-# Maintainer:
-# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
-# Contributor: William Rea <sillywilly@gmail.com>
-# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
+# $Id: PKGBUILD 110391 2014-04-28 19:17:21Z jelle $
+# Maintainer (Arch):
+# Contributor (Arch): Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor (Arch): William Rea <sillywilly@gmail.com>
+# Maintainer: fauno <fauno@kiwwwi.com.ar>
# Contributor: borgo <nomail>
-# Contributor (Parabola): André Silva <emulatorman@parabola.nu>
+# Contributor: André Silva <emulatorman@parabola.nu>
pkgbase=python-reportlab-libre
pkgname=(python2-reportlab-libre python-reportlab-libre)
_origname=reportlab
-pkgver=3.0
-pkgrel=2
+pkgver=3.1.8
+pkgrel=1
pkgdesc="A proven industry-strength PDF generating solution, without nonfree Adobe T1 fonts support"
arch=('i686' 'x86_64')
url="http://www.reportlab.org/rl_toolkit.html"
depends=('freetype2')
checkdepends=('python' 'python2' 'python2-pillow' 'python-pillow')
license=('custom')
-source=(http://www.reportlab.com/ftp/reportlab-$pkgver.tar.gz
- free-fonts.patch)
-md5sums=('a4fd40abcfb604aa3bd907181133c071'
- 'eb3ac47734efb05b939fb88026aff8ed')
+source=("https://pypi.python.org/packages/source/r/reportlab/reportlab-$pkgver.tar.gz"
+ 'free-fonts.patch')
+md5sums=(820a9fda647078503597b85cdba7ed7f
+ eb3ac47734efb05b939fb88026aff8ed)
prepare() {
cd $srcdir
diff --git a/libre/qupzilla-libre/PKGBUILD b/libre/qupzilla-libre/PKGBUILD
index 6d7cbb839..b26cbfcc9 100644
--- a/libre/qupzilla-libre/PKGBUILD
+++ b/libre/qupzilla-libre/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 109866 2014-04-19 22:54:04Z speps $
-# Maintainer: speps <speps at aur dot archlinux dot org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# $Id: PKGBUILD 111093 2014-05-13 15:31:43Z speps $
+# Maintainer (Arch): speps <speps at aur dot archlinux dot org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgbase=qupzilla
pkgbase=qupzilla-libre
pkgname=(qupzilla-libre qupzilla-libre-qt4)
-pkgver=1.6.5
+pkgver=1.6.6
pkgrel=1
arch=(i686 x86_64 mips64el)
url="http://www.qupzilla.com/"
@@ -18,7 +18,7 @@ source=("$_pkgbase-$pkgver.tar.gz::https://github.com/QupZilla/qupzilla/archive/
'speeddial.cpp.sed'
'start.html.sed')
noextract=("$_pkgbase-$pkgver.tar.gz")
-md5sums=('4bc129b403f8e74b819ff28e78be27e3'
+md5sums=('daad78e47a0956dcc99c0cba9ae6e462'
'1d926e97a5b287d40fb695f6516f2a06'
'0f166fa102af975b3b8ac030d477e9b8'
'77120a0c39ba8254e5b2c273910f029a')
diff --git a/libre/reflector/PKGBUILD b/libre/reflector/PKGBUILD
index 002607a7e..3fcfa4750 100644
--- a/libre/reflector/PKGBUILD
+++ b/libre/reflector/PKGBUILD
@@ -1,5 +1,5 @@
-#Maintainer: Xyne <ac xunilhcra enyx, backwards>
-#Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+#Maintainer (Arch): Xyne <ac xunilhcra enyx, backwards>
+#Maintainer: André Silva <emulatorman@parabola.nu>
pkgname=reflector
pkgver=2014
pkgrel=4
diff --git a/libre/rp-pppoe-libre/PKGBUILD b/libre/rp-pppoe-libre/PKGBUILD
index dcd34bcd1..1832d8fae 100644
--- a/libre/rp-pppoe-libre/PKGBUILD
+++ b/libre/rp-pppoe-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 206300 2014-02-23 17:13:12Z thomas $
-# Maintainer: Daniel Isenmann <daniel@archlinux.org>
-# Contributor: orelien <aurelien.foret@wanadoo.fr>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Daniel Isenmann <daniel@archlinux.org>
+# Contributor (Arch): orelien <aurelien.foret@wanadoo.fr>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=rp-pppoe
pkgname=rp-pppoe-libre
diff --git a/libre/ruby-rdiscount/PKGBUILD b/libre/ruby-rdiscount/PKGBUILD
index 449a717f7..966cf67ce 100644
--- a/libre/ruby-rdiscount/PKGBUILD
+++ b/libre/ruby-rdiscount/PKGBUILD
@@ -1,6 +1,6 @@
# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net
# Maintainer (AUR): Alexsandr Pavlov <kidoz at mail dot ru>
-# Contributor: Massimiliano Torromeo <massimiliano.torromeo at gmail dot com>
+# Contributor (Arch): Massimiliano Torromeo <massimiliano.torromeo at gmail dot com>
_gemname=rdiscount
pkgname=ruby-$_gemname
diff --git a/libre/sdl-libre/PKGBUILD b/libre/sdl-libre/PKGBUILD
index 21250fa60..f9449455e 100644
--- a/libre/sdl-libre/PKGBUILD
+++ b/libre/sdl-libre/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 198628 2013-10-31 13:07:39Z heftig $
-# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
-# Contributor: Allan McRae <allan@archlinux.org>
-# Contributor: dorphell <dorphell@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
+# $Id: PKGBUILD 212210 2014-05-10 21:41:06Z heftig $
+# Maintainer (Arch): Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor (Arch): Allan McRae <allan@archlinux.org>
+# Contributor (Arch): dorphell <dorphell@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Maintainer: Márcio Silva <coadde@parabola.nu>
# Maintainer (Connochaetos): Henry Jensen <hjensen@connochaetos.org>
pkgname=sdl-libre
pkgver=1.2.15
-pkgrel=5
+pkgrel=6
pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard, without nonfree riva_mmio.h file"
arch=('i686' 'x86_64')
url="http://www.libsdl.org"
@@ -28,7 +28,8 @@ source=(https://repo.parabolagnulinux.org/other/$pkgname/SDL-libre-${pkgver}.tar
sdl-1.2.14-disable-mmx.patch
fix_joystick_misc_axes.diff
libsdl-1.2.15-resizing.patch
- sdl_x11sym.patch)
+ sdl_x11sym.patch
+ X11_KeyToUnicode.patch)
mkmd5sums=('9d96df8417572a2afb781a7c4c811a85'
'5c665f72b8a2adc97a91f6db6f2da79a')
md5sums=('c6e53ef16fa347ed066c3d68fe93c378'
@@ -36,7 +37,8 @@ md5sums=('c6e53ef16fa347ed066c3d68fe93c378'
'e5c16b7611f62c7cb25f0534eff68852'
'687586a108b597a2a6b73070c1d37e51'
'3dd50347d8856160a9cbd7f80383a1f8'
- '148b285bccee9d21bb96db807363b962')
+ '148b285bccee9d21bb96db807363b962'
+ 'edea272dff4698470877c016d818918d')
mksource() {
cd SDL-$pkgver
@@ -50,6 +52,7 @@ prepare() {
patch -Np1 -i ../fix_joystick_misc_axes.diff
patch -Np1 -i ../libsdl-1.2.15-resizing.patch
patch -Np0 -i ../sdl_x11sym.patch
+ patch -Np1 -i ../X11_KeyToUnicode.patch
}
build() {
diff --git a/libre/sdl-libre/X11_KeyToUnicode.patch b/libre/sdl-libre/X11_KeyToUnicode.patch
new file mode 100644
index 000000000..5f0f325b1
--- /dev/null
+++ b/libre/sdl-libre/X11_KeyToUnicode.patch
@@ -0,0 +1,52 @@
+
+# HG changeset patch
+# User Sam Lantinga <slouken@libsdl.org>
+# Date 1327258041 18000
+# Node ID 900a0fae90ca65cff55a70a17b9ec39d2ddccbcf
+# Parent 5273dfd19a5e8c5736a0d417bd441f704c5355f8
+Fixed bug 1390 - X11_KeyToUnicode
+
+manuel.montezelo 2012-01-22 08:56:18 PST
+
+We had the following bug report at Debian:
+http://bugs.debian.org/376560
+
+Same one in Ubuntu:
+https://bugs.launchpad.net/ubuntu/+source/libsdl1.2/+bug/66217
+
+We've been including a patch since then (attached) to actually export the
+symbol, since 2006. In the last release the function seems to be there, alive
+and kicking.
+
+It's affecting other people too:
+http://www.garagegames.com/community/forums/viewthread/52287
+
+diff -r 5273dfd19a5e -r 900a0fae90ca src/video/x11/SDL_x11events.c
+--- a/src/video/x11/SDL_x11events.c Sat Jan 21 12:06:51 2012 -0500
++++ b/src/video/x11/SDL_x11events.c Sun Jan 22 13:47:21 2012 -0500
+@@ -1246,8 +1246,11 @@
+ * sequences (dead accents, compose key sequences) will not work since the
+ * state has been irrevocably lost.
+ */
++extern DECLSPEC Uint16 SDLCALL X11_KeyToUnicode(SDLKey, SDLMod);
++
+ Uint16 X11_KeyToUnicode(SDLKey keysym, SDLMod modifiers)
+ {
++ static int warning = 0;
+ struct SDL_VideoDevice *this = current_video;
+ char keybuf[32];
+ int i;
+@@ -1255,6 +1258,12 @@
+ XKeyEvent xkey;
+ Uint16 unicode;
+
++ if ( warning ) {
++ warning = 0;
++ fprintf(stderr, "WARNING: Application is using X11_KeyToUnicode().\n");
++ fprintf(stderr, "This is not an official SDL function, please report this as a bug.\n");
++ }
++
+ if ( !this || !SDL_Display ) {
+ return 0;
+ }
+
diff --git a/libre/soundkonverter-libre/PKGBUILD b/libre/soundkonverter-libre/PKGBUILD
index 801cff080..c0aea726b 100644
--- a/libre/soundkonverter-libre/PKGBUILD
+++ b/libre/soundkonverter-libre/PKGBUILD
@@ -1,9 +1,9 @@
# $Id: PKGBUILD 109579 2014-04-16 10:34:29Z stativ $
-# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
-# Contributor: Mateusz Herych <heniekk@gmail.com>
-# Contributor: Eric Belanger <eric@archlinux.org>
-# Contributor: Darwin Bautista <djclue917@gmail.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Contributor (Arch): Mateusz Herych <heniekk@gmail.com>
+# Contributor (Arch): Eric Belanger <eric@archlinux.org>
+# Contributor (Arch): Darwin Bautista <djclue917@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=soundkonverter
pkgname=soundkonverter-libre
@@ -13,9 +13,9 @@ pkgdesc="Front-end to various audio converters, without nonfree faac and mac rec
arch=('i686' 'x86_64')
url="http://www.kde-apps.org/content/show.php?content=29024"
license=('GPL')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
depends=('kdebase-runtime' 'libkcddb' 'cdparanoia' 'taglib')
makedepends=('automoc4' 'cmake')
optdepends=('cdrkit: cdda2wav backend'
diff --git a/libre/spectrwm-libre/PKGBUILD b/libre/spectrwm-libre/PKGBUILD
index c1ea8c449..ed632759b 100644
--- a/libre/spectrwm-libre/PKGBUILD
+++ b/libre/spectrwm-libre/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 106288 2014-02-26 16:09:20Z kkeen $
-# Maintainer: Kyle Keen <keenerd@gmail.com>
-# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
+# $Id: PKGBUILD 110857 2014-05-08 17:25:29Z kkeen $
+# Maintainer (Arch): Kyle Keen <keenerd@gmail.com>
+# Contributor (Arch): Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
_pkgname=spectrwm
pkgname=spectrwm-libre
-pkgver=2.5.0
+pkgver=2.5.1
pkgrel=1
pkgdesc="A minimalistic automatic tiling window manager that tries to stay out of the way, without nonfree profont support"
arch=('i686' 'x86_64' 'mips64el')
@@ -16,13 +16,15 @@ replaces=('spectrwm' 'scrotwm')
conflicts=('spectrwm')
provides=("spectrwm=$pkgver")
makedepends=('libxt')
-optdepends=('scrot: screenshots' 'xlockmore: great screenlocker' 'terminus-font: great font')
+optdepends=('scrot: screenshots'
+ 'xlockmore: great screenlocker'
+ 'terminus-font: great font')
backup=(etc/spectrwm.conf)
source=(http://opensource.conformal.com/snapshots/$_pkgname/$_pkgname-$pkgver.tgz \
LICENSE \
baraction.sh \
spectrwm-no-preload)
-md5sums=('22355256693393779b2d366d312c4577'
+md5sums=('d9aec3342920e31cbe60f1032571043a'
'a67cfe51079481e5b0eab1ad371379e3'
'950d663692e1da56e0ac864c6c3ed80e'
'974d109ce0af39cc73936d5efd682480')
diff --git a/libre/stuntrally-data-libre/PKGBUILD b/libre/stuntrally-data-libre/PKGBUILD
index 80bd44b01..2ca986851 100644
--- a/libre/stuntrally-data-libre/PKGBUILD
+++ b/libre/stuntrally-data-libre/PKGBUILD
@@ -1,37 +1,36 @@
-# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Sven-Hendrik Haase <sh@lutzhaase.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
pkgname=stuntrally-data-libre
_pkgname=stuntrally-data
-pkgver=2.2.1
+pkgver=2.3
pkgrel=1
pkgdesc="Stunt Rally game with track editor, based on VDrift (data files), without nonfree data files"
arch=('any')
license=('GPL3' 'custom')
url="http://code.google.com/p/vdrift-ogre"
makedepends=('cmake' 'boost' 'libvorbis' 'mygui' 'sdl2' 'enet' 'hicolor-icon-theme' 'libxcursor')
-mksource=("$_pkgname-$pkgver.tar.gz::https://github.com/stuntrally/stuntrally/archive/${pkgver}.tar.gz"
- "$_pkgname-tracks-$pkgver.tar.gz::https://github.com/stuntrally/tracks/archive/${pkgver}.tar.gz"
- libre.patch )
-source=("https://repo.parabolagnulinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz")
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
-mksha256sums=('305b5f498ab150e4cf1fd1d47410ea04ad3cf439b60278ea2b73a01278d9ca51'
- '45e9c976964e22348530a99a99c0dac30bc766d2f9edbe1a83a7b6791850d565'
- '89eed28f625758a22460f2cea67547d2ea6cffa2bef8133083077b1753cf2b64')
-sha256sums=('3159f8e2b33d5685fb3e7320ab8ce4a60a35830a4dac7b9c3c8aeebf9a38f8d5')
+mksource=("$_pkgname-$pkgver.tar.gz::https://github.com/stuntrally/stuntrally/archive/${pkgver}.tar.gz")
+source=("https://repo.parabolagnulinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz"
+ "$_pkgname-tracks-$pkgver.tar.gz::https://github.com/stuntrally/tracks/archive/${pkgver}.tar.gz"
+ libre.patch)
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
+mksha256sums=('828ea8e4a8ea73005e88ef015cb9808cc75d0cb50693a0f4a7d8b09edd0765fd')
+sha256sums=('2973aa09cd68541784d1df7b5f9f0e29a307078b5a9b33ad467880ebf8f832fb'
+ '8da6396abb569fbcf312095a96c2b7cfa92f510900d32b7d7e2fcd9478a7216f'
+ 'a155c170ff33dd92f4720c2f1214195eea6e5dab774a0939979599ab85f974d8')
mksource() {
- # patch some data files and remove nonfree data files
+ # remove nonfree data files
cd "${srcdir}/stuntrally-${pkgver}/"
- patch -Np1 -i "${srcdir}/libre.patch"
-
- rm -rv "data/"{grass/grassJungle.png,sounds/{0{1,2,3,4,5,6,7,8,9},1{0,1,2},boost,dirt{1,2},mud{1,_cont},scrap,screech,terrain{1,2,3,4,5},water{1,2,3,_cont}}.wav,terrain,trees2,cars/{3S,CT,M3,NS,TC6,XM}}
-
- cd "${srcdir}/tracks-${pkgver}/"
+ rm -v data/trees2/tree*.mesh
+}
- rm -rv {detroit,ruudskogen,virginia,weekend}
+prepare() {
+ # remove nonfree references
+ patch -Np0 -i "${srcdir}/libre.patch"
}
build() {
diff --git a/libre/stuntrally-data-libre/libre.patch b/libre/stuntrally-data-libre/libre.patch
index d55a4e54a..4fd576b2f 100644
--- a/libre/stuntrally-data-libre/libre.patch
+++ b/libre/stuntrally-data-libre/libre.patch
@@ -1,72 +1,732 @@
-diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
-index c43ef18..aa6373e 100644
---- a/data/CMakeLists.txt
-+++ b/data/CMakeLists.txt
-@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8)
-
- # Install data files
- # TODO: make this use all data/* subdirs without tracks, not entered by hand ..
--foreach(datadir cars carsim compositor editor fonts ghosts grass gui hud loading materials materials2 objects particles road road_s skies skies_s sounds terrain terrain2 trees-old trees trees2)
-+foreach(datadir cars carsim compositor editor fonts ghosts grass gui hud loading materials materials2 objects particles road road_s skies skies_s sounds terrain2 trees-old trees)
- install(DIRECTORY ${datadir} DESTINATION ${SHARE_INSTALL})
- endforeach()
-
-diff --git a/data/grass/_grass.txt b/data/grass/_grass.txt
-index 787737e..84197af 100644
---- a/data/grass/_grass.txt
-+++ b/data/grass/_grass.txt
-@@ -10,10 +10,3 @@ http://opengameart.org/content/plants-textures-pack-03
- http://opengameart.org/content/plants-textures-pack-04
-
- many colored by CryHam for SR
--
------ Old
--grassJungle.png rest is colored
+diff --git stuntrally-2.3.orig/data/trees/collisions.xml stuntrally-2.3/data/trees/collisions.xml
+index 58f6040..8536573 100644
+--- stuntrally-2.3.orig/data/trees/collisions.xml
++++ stuntrally-2.3/data/trees/collisions.xml
+@@ -70,76 +70,7 @@
+ </object>
+
+
+-<!--Autumn-->
+- <object mesh= "treeAO-25oakWMed.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 1" r="0.5" h="9.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeAOG-17birTall.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 3" r="0.25" h="9.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeAOR-13oakWBig.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 1" r="0.2" h="7.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeAOY-27mplMed.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 1" r="0.44" h="9.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeAR-10oakMed.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 1" r="0.2" h="7.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeAR-26oakWide.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 1" r="0.4" h="9.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeARk-12oakSm.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 1" r="0.12" h="6.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeAW-14LLHuge7k.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 2" r="0.3" h="12.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeAY-11aspTallMed.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 1" r="0.12" h="7.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeAY-19mplBig.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 3" r="0.25" h="12.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeAY-20mplWide.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 2" r="0.24" h="9.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeAY-28aspTallEmp.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 3" r="0.4" h="11.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeAYG-16birTallUp.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 3" r="0.22" h="10.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeAYO-18mplTall.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 3" r="0.22" h="12.0" frict="0.7" restit="0.9" />
+- </object>
+-
+-<!--Moss-->
+- <object mesh= "treeGY-36aspMed.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 2" r="0.4" h="8.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeGC-29aspDnSwp.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 2" r="0.4" h="8.0" frict="0.7" restit="0.9" />
+- </object>
+-
+-<!--Greece-->
+- <object mesh= "treeGC-32draUp.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 2" r="0.43" h="8.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeGG-37acaTall.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 2" r="0.31" h="8.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeGW-41aspMid.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 2" r="0.25" h="8.0" frict="0.7" restit="0.9" />
+- </object>
+-
+ <!--Desert-->
+- <object mesh= "treeD-22desMed.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 2" r="0.4" h="4.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeD-34desTiny.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 2" r="0.4" h="4.0" frict="0.7" restit="0.9" />
+- </object>
+ <object mesh= "cactus.mesh">
+ <shape type="capsZ" ofs="0.0 0.0 5" r="0.75" h="10.0" frict="0.7" restit="0.9" />
+ </object>
+@@ -175,13 +106,6 @@
+ <shape type="capsZ" ofs="0.1 -0.2 2" r="0.45" h="6.0" frict="0.7" restit="0.9" />
+ </object>
+
+- <object mesh= "treeG-17birTall.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 4" r="0.2" h="8.0" frict="0.7" restit="0.9" />
+- </object>
+- <object mesh= "treeG-16birTallUp.mesh">
+- <shape type="capsZ" ofs="0.0 0.0 4" r="0.2" h="8.0" frict="0.7" restit="0.9" />
+- </object>
+-
+
+ <!-- Rocks ALL -->
+ <!--use trimesh with params from <default>
+diff --git stuntrally-2.3.orig/data/trees2/__CH_Trees.txt stuntrally-2.3/data/trees2/__CH_Trees.txt
+index da7e3a8..6c06094 100644
+--- stuntrally-2.3.orig/data/trees2/__CH_Trees.txt
++++ stuntrally-2.3/data/trees2/__CH_Trees.txt
+@@ -1,15 +1,3 @@
+-The new trees made using SnappyTree (web generator tool).
-
--This grass texture included with PagedGeometry was kindly provided by
--Agnisola Philippe (http://www.blitz3dfr.com/portal_joomla/) for
--commercial or non-commercial use.
-diff --git a/data/sounds/_sounds_info.txt b/data/sounds/_sounds_info.txt
-index 2cab386..eb4e086 100644
---- a/data/sounds/_sounds_info.txt
-+++ b/data/sounds/_sounds_info.txt
-@@ -7,39 +7,3 @@ grass
- gravel
- tire_squeal
- wind
+-Author: Crystal Hammer
-
---- new sounds from
--http://www.freesound.org/
+-License: CC-BY-NC-SA
+-http://creativecommons.org/licenses/by-nc-sa/3.0/
-
--various smaller cuts, from:
--[author soundname]
-
-- metal hits 01..12:
--halleck metal-medium-hit
--halleck metal-hits-medium-1
--halleck metal-hits-light-1
--halleck metal-thump
--sagetyrtle crash-1
--sagetyrtle crash-2
--halleck big-metal-side-impact-1
--halleck big-metal-side-impact-2
--halleck metal-crash-1
-- metal scrap,screech
--halleck metal-roll-cage-hits-heavy
--halleck metal-screech-and-scraping
+-Applies to all meshes starting with tree*.mesh (no . in name).
+-eg. treeAO-25oakWMed.mesh etc.
-
-- water,mud:
--cgeffex large-splashes
-
-- mud_cont, water_cont
--justinbw water-spigget-onto-mud-1
--justinbw water-spigget-onto-mud-2
--
-- terrain,dirt:
--halleck hit-with-dirt-spray-1
--halleck hit-with-dirt-spray-1-body
--halleck hit-with-dirt-spray-2-body
--halleck hit-with-dirt-spray-3
--
-- boost
--nathanshadow thruster-level-ii
+ Textures used:
+
+ ---- twig (leaves)
+diff --git tracks-2.3.orig/A2-PipeCoil/scene.xml tracks-2.3/A2-PipeCoil/scene.xml
+index b0c6b88..889ebea 100644
+--- tracks-2.3.orig/A2-PipeCoil/scene.xml
++++ tracks-2.3/A2-PipeCoil/scene.xml
+@@ -41,7 +41,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="43" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="gum_tree.mesh" dens="0.153374" minScale="0.339999" maxScale="1.14" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.799976" windFy="0.0139946" maxTerAng="29.0344" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="1" name="tree.07.mesh" dens="0.027335" minScale="0.849996" maxScale="1.15" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999979" maxTerAng="29.0344" minTerH="-100" maxTerH="100" maxDepth="5" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.0520205" minScale="0.849996" maxScale="1.15" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.30451" windFy="0.0099998" maxTerAng="30.8557" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="farn1.mesh" dens="0.0199999" minScale="0.149999" maxScale="0.249999" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599962" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="farn2.mesh" dens="0.0199999" minScale="0.149999" maxScale="0.249999" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599962" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="1" name="rock.05.mesh" dens="0.0199999" minScale="0.0599979" maxScale="0.409999" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+diff --git tracks-2.3.orig/A3-Canyon/scene.xml tracks-2.3/A3-Canyon/scene.xml
+index 3b3ac84..fe78127 100644
+--- tracks-2.3.orig/A3-Canyon/scene.xml
++++ tracks-2.3/A3-Canyon/scene.xml
+@@ -42,8 +42,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="37" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="43" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="gum_tree.mesh" dens="0.0925859" minScale="0.339999" maxScale="0.885743" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.799976" windFy="0.0139938" maxTerAng="13.7136" minTerH="-20" maxTerH="44" maxDepth="0" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.0613263" minScale="0.849991" maxScale="1.15" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999652" maxTerAng="14.8135" minTerH="-20" maxTerH="44" maxDepth="0" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.0691027" minScale="0.849991" maxScale="1.15" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599994" windFy="0.00999656" maxTerAng="18.3674" minTerH="-20" maxTerH="44" maxDepth="0" />
+ <layer on="0" name="farn1.mesh" dens="0.0199999" minScale="0.149999" maxScale="0.249999" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="18.5461" minTerH="-70" maxTerH="100" maxDepth="0" />
+ <layer on="0" name="farn2.mesh" dens="0.0199999" minScale="0.149999" maxScale="0.249999" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="14.3369" minTerH="-70" maxTerH="100" maxDepth="0" />
+ <layer on="0" name="rock.05.mesh" dens="0.0199999" minScale="0.0599953" maxScale="0.217865" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0" windFy="0" maxTerAng="14.1798" minTerH="-70" maxTerH="66" maxDepth="0" />
+diff --git tracks-2.3.orig/A5-TopTwist/scene.xml tracks-2.3/A5-TopTwist/scene.xml
+index 08ea149..1694d86 100644
+--- tracks-2.3.orig/A5-TopTwist/scene.xml
++++ tracks-2.3/A5-TopTwist/scene.xml
+@@ -44,11 +44,8 @@
+ <layer on="1" name="gum_tree.mesh" dens="0.138355" minScale="0.339999" maxScale="1.14" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.799993" windFy="0.0139993" maxTerAng="14.3369" minTerH="-1" maxTerH="1" maxDepth="0" />
+ <layer on="1" name="tree.07.mesh" dens="0.0453213" minScale="0.447879" maxScale="0.67379" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999977" maxTerAng="11.6413" minTerH="-1" maxTerH="1" maxDepth="0" />
+ <layer on="0" name="tree.09.mesh" dens="0.00758376" minScale="0.849996" maxScale="1.15" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999978" maxTerAng="10.132" minTerH="-1" maxTerH="1" maxDepth="0" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.0570942" minScale="1.07413" maxScale="1.62451" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.271679" windFy="0.0115325" maxTerAng="24.517" minTerH="-2" maxTerH="2" maxDepth="0" />
+- <layer on="1" name="treeGC-32draUp.mesh" dens="0.0199999" minScale="1.03695" maxScale="1.4959" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.229809" windFy="0.0148893" maxTerAng="24.3114" minTerH="-2" maxTerH="2" maxDepth="0" />
+ <layer on="1" name="rock.05.mesh" dens="0.0116235" minScale="0.0599978" maxScale="0.409999" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0" windFy="0" maxTerAng="22.3031" minTerH="-33" maxTerH="5" maxDepth="1" />
+ <layer on="0" name="rock.07.mesh" dens="0.0199999" minScale="0.0599979" maxScale="0.409999" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0" windFy="0" maxTerAng="38.1791" minTerH="-10" maxTerH="10" maxDepth="1" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.059191" minScale="1.01265" maxScale="1.4959" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.271679" windFy="0.0107806" maxTerAng="20.7587" minTerH="10" maxTerH="33" maxDepth="0" />
+ <layer on="0" name="" dens="0.0999996" minScale="0.0999994" maxScale="0.249999" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="" dens="0.1" minScale="0.1" maxScale="0.25" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ </paged>
+diff --git tracks-2.3.orig/A6-Cannon/scene.xml tracks-2.3/A6-Cannon/scene.xml
+index 8bc7652..cf098f4 100644
+--- tracks-2.3.orig/A6-Cannon/scene.xml
++++ tracks-2.3/A6-Cannon/scene.xml
+@@ -42,11 +42,8 @@
+ <layer on="1" name="gum_tree.mesh" dens="0.138355" minScale="0.339999" maxScale="1.14" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.799993" windFy="0.0139993" maxTerAng="14.3369" minTerH="-60" maxTerH="70" maxDepth="0" />
+ <layer on="1" name="tree.07.mesh" dens="0.0453213" minScale="0.447879" maxScale="0.67379" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999976" maxTerAng="11.6413" minTerH="-60" maxTerH="70" maxDepth="0" />
+ <layer on="0" name="tree.09.mesh" dens="0.00758376" minScale="0.849996" maxScale="1.15" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999977" maxTerAng="10.132" minTerH="-60" maxTerH="70" maxDepth="0" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.0570942" minScale="1.07413" maxScale="1.62451" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.271679" windFy="0.0115325" maxTerAng="24.517" minTerH="-70" maxTerH="80" maxDepth="0" />
+- <layer on="1" name="treeGC-32draUp.mesh" dens="0.0199999" minScale="1.03695" maxScale="1.4959" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.229809" windFy="0.0148893" maxTerAng="24.3114" minTerH="-60" maxTerH="70" maxDepth="0" />
+ <layer on="1" name="rock.05.mesh" dens="0.0116235" minScale="0.0599978" maxScale="0.181185" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0" windFy="0" maxTerAng="22.3031" minTerH="-200" maxTerH="20" maxDepth="1" />
+ <layer on="0" name="rock.07.mesh" dens="0.0199999" minScale="0.0599979" maxScale="0.409999" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0" windFy="0" maxTerAng="38.1791" minTerH="-10" maxTerH="10" maxDepth="1" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.059191" minScale="1.01265" maxScale="1.4959" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.271679" windFy="0.0107806" maxTerAng="20.7587" minTerH="-120" maxTerH="100" maxDepth="0" />
+ <layer on="0" name="" dens="0.0999996" minScale="0.0999994" maxScale="0.249999" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="" dens="0.1" minScale="0.1" maxScale="0.25" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ </paged>
+diff --git tracks-2.3.orig/D1-Dunes/scene.xml tracks-2.3/D1-Dunes/scene.xml
+index c6da0aa..6d05242 100644
+--- tracks-2.3.orig/D1-Dunes/scene.xml
++++ tracks-2.3/D1-Dunes/scene.xml
+@@ -42,8 +42,6 @@
+ <layer on="0" name="palm2.mesh" dens="0.000994765" minScale="2.34226" maxScale="3.31033" ofsY="0" addTrRdDist="9" maxRdist="12" windFx="0.295773" windFy="0.114733" maxTerAng="30.0341" minTerH="-10" maxTerH="3" maxDepth="0" />
+ <layer on="0" name="palm.mesh" dens="0.00760358" minScale="1.78362" maxScale="2.40035" ofsY="0" addTrRdDist="3" maxRdist="8" windFx="0.599994" windFy="0.00999497" maxTerAng="15.0691" minTerH="-10" maxTerH="3" maxDepth="0" />
+ <layer on="1" name="rock_Y02.mesh" dens="0.0136617" minScale="0.790829" maxScale="1.34492" ofsY="0" addTrRdDist="8" maxRdist="20" windFx="7.29999" windFy="0.0599931" maxTerAng="11.919" minTerH="-6.78899" maxTerH="10" maxDepth="5" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.0150235" minScale="1.21804" maxScale="1.51159" ofsY="0" addTrRdDist="2" maxRdist="7" windFx="0.134303" windFy="0.0049742" maxTerAng="25.7687" minTerH="-22" maxTerH="3" maxDepth="0" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.0135087" minScale="1.30169" maxScale="1.57545" ofsY="0" addTrRdDist="4" maxRdist="7" windFx="0.318349" windFy="0.0054261" maxTerAng="26.8356" minTerH="-22" maxTerH="3" maxDepth="0" />
+ <layer on="1" name="cactus.mesh" dens="0.00689124" minScale="0.491193" maxScale="0.79017" ofsY="0" addTrRdDist="0" maxRdist="5" windFx="0" windFy="0" maxTerAng="29.0344" minTerH="-22" maxTerH="3" maxDepth="0" />
+ <layer on="0" name="tree.07.mesh" dens="0.0408248" minScale="0.849991" maxScale="1.15" ofsY="0" addTrRdDist="8" maxRdist="20" windFx="0.699996" windFy="0.0099953" maxTerAng="15.7209" minTerH="-10" maxTerH="3" maxDepth="0" />
+ <layer on="0" name="farn1.mesh" dens="0.0238965" minScale="0.142256" maxScale="0.217865" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="26.933" minTerH="-10" maxTerH="-3" maxDepth="0" />
+diff --git tracks-2.3.orig/D13-Winding/scene.xml tracks-2.3/D13-Winding/scene.xml
+index a0337ad..4751bef 100644
+--- tracks-2.3.orig/D13-Winding/scene.xml
++++ tracks-2.3/D13-Winding/scene.xml
+@@ -42,8 +42,6 @@
+ <layer on="0" name="palm2.mesh" dens="0.0333369" minScale="2.34226" maxScale="3.31033" ofsY="0" addTrRdDist="9" maxRdist="20" windFx="0.295773" windFy="0.114733" maxTerAng="30.0341" minTerH="-10" maxTerH="3" maxDepth="0" />
+ <layer on="0" name="palm.mesh" dens="0.0382422" minScale="1.78362" maxScale="2.40035" ofsY="0" addTrRdDist="3" maxRdist="20" windFx="0.599994" windFy="0.00999497" maxTerAng="15.0691" minTerH="-10" maxTerH="3" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.305607" minScale="0.476458" maxScale="1.34492" ofsY="0" addTrRdDist="8" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="20.8571" minTerH="-10" maxTerH="2" maxDepth="5" />
+- <layer on="0" name="treeD-34desTiny.mesh" dens="0.0150235" minScale="1.21804" maxScale="1.51159" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.134303" windFy="0.0049742" maxTerAng="25.7687" minTerH="-22" maxTerH="3" maxDepth="0" />
+- <layer on="0" name="treeD-22desMed.mesh" dens="0.0135087" minScale="1.30169" maxScale="1.57545" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0.318349" windFy="0.0054261" maxTerAng="26.8356" minTerH="-22" maxTerH="3" maxDepth="0" />
+ <layer on="1" name="cactus.mesh" dens="0.0418791" minScale="0.491193" maxScale="0.79017" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="29.0344" minTerH="-22" maxTerH="0" maxDepth="0" />
+ <layer on="0" name="tree.07.mesh" dens="0.0408248" minScale="0.849991" maxScale="1.15" ofsY="0" addTrRdDist="8" maxRdist="20" windFx="0.699996" windFy="0.0099953" maxTerAng="15.7209" minTerH="-10" maxTerH="3" maxDepth="0" />
+ <layer on="0" name="farn1.mesh" dens="0.0238965" minScale="0.142256" maxScale="0.217865" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="26.933" minTerH="-10" maxTerH="-3" maxDepth="0" />
+diff --git tracks-2.3.orig/D14-JumpCrazy/scene.xml tracks-2.3/D14-JumpCrazy/scene.xml
+index 0f56594..6d4192c 100644
+--- tracks-2.3.orig/D14-JumpCrazy/scene.xml
++++ tracks-2.3/D14-JumpCrazy/scene.xml
+@@ -42,9 +42,6 @@
+ <layer on="1" name="palm2.mesh" dens="0.0764179" minScale="2.34226" maxScale="3.31033" ofsY="0" addTrRdDist="9" maxRdist="20" windFx="0.295773" windFy="0.114733" maxTerAng="30.0341" minTerH="-10" maxTerH="9.17431" maxDepth="0" />
+ <layer on="1" name="palm.mesh" dens="0.0431776" minScale="1.78362" maxScale="2.40035" ofsY="0" addTrRdDist="3" maxRdist="20" windFx="0.599994" windFy="0.00999497" maxTerAng="15.0691" minTerH="-10" maxTerH="5.87156" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.028504" minScale="0.476458" maxScale="1.34492" ofsY="0" addTrRdDist="8" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="35.7175" minTerH="-52.2936" maxTerH="22.3853" maxDepth="5" />
+- <layer on="0" name="treeD-34desTiny.mesh" dens="0.0163878" minScale="1.21804" maxScale="1.51159" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.134303" windFy="0.0049742" maxTerAng="25.7687" minTerH="-22" maxTerH="3" maxDepth="0" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.00760358" minScale="1.30169" maxScale="1.57545" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0.318349" windFy="0.0054261" maxTerAng="26.8356" minTerH="-22" maxTerH="3" maxDepth="0" />
+- <layer on="0" name="treeGC-32draUp.mesh" dens="0.00689124" minScale="1.04925" maxScale="1.28749" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.0577775" windFy="0.00153982" maxTerAng="29.0344" minTerH="-22" maxTerH="3" maxDepth="0" />
+ <layer on="1" name="cactus.mesh" dens="0.0529256" minScale="0.327639" maxScale="0.720783" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="8.09966e-006" maxTerAng="26.933" minTerH="-10.4587" maxTerH="20.1835" maxDepth="0" />
+ <layer on="0" name="farn1.mesh" dens="0.0238965" minScale="0.142256" maxScale="0.217865" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="26.933" minTerH="-10" maxTerH="-3" maxDepth="0" />
+ <layer on="0" name="" dens="0.0999996" minScale="0.0999994" maxScale="0.249994" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-10" maxTerH="10" maxDepth="5" />
+diff --git tracks-2.3.orig/D15-CityWall/scene.xml tracks-2.3/D15-CityWall/scene.xml
+index be5338d..71d058a 100644
+--- tracks-2.3.orig/D15-CityWall/scene.xml
++++ tracks-2.3/D15-CityWall/scene.xml
+@@ -44,9 +44,6 @@
+ <layer on="1" name="palm2.mesh" dens="0.125571" minScale="2.34226" maxScale="3.31033" ofsY="0" addTrRdDist="1" maxRdist="20" windFx="0.295773" windFy="0.114733" maxTerAng="22.9147" minTerH="17.4312" maxTerH="35.2294" maxDepth="0" />
+ <layer on="1" name="palm.mesh" dens="0.0382422" minScale="1.78362" maxScale="2.40035" ofsY="0" addTrRdDist="1" maxRdist="20" windFx="0.599994" windFy="0.00999496" maxTerAng="18.9378" minTerH="13.3945" maxTerH="35.5963" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.0520754" minScale="0.424913" maxScale="0.788201" ofsY="0" addTrRdDist="1" maxRdist="20" windFx="7.29999" windFy="0.0599931" maxTerAng="35.3716" minTerH="-42.0183" maxTerH="92.1101" maxDepth="1.81471" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.0646046" minScale="0.993711" maxScale="1.18624" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.134303" windFy="0.0049742" maxTerAng="36.4144" minTerH="26.6055" maxTerH="45.8716" maxDepth="0" />
+- <layer on="0" name="treeD-22desMed.mesh" dens="0.0135087" minScale="1.30169" maxScale="1.57545" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0.318349" windFy="0.0054261" maxTerAng="26.8356" minTerH="-22" maxTerH="14" maxDepth="0" />
+- <layer on="1" name="treeGC-32draUp.mesh" dens="0.00689124" minScale="1.04925" maxScale="1.28749" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.0577775" windFy="0.00153982" maxTerAng="29.0344" minTerH="-22" maxTerH="14" maxDepth="0" />
+ <layer on="0" name="tree.07.mesh" dens="0.0408248" minScale="0.849991" maxScale="1.15" ofsY="0" addTrRdDist="8" maxRdist="20" windFx="0.699996" windFy="0.00999529" maxTerAng="15.7209" minTerH="-10" maxTerH="3" maxDepth="0" />
+ <layer on="0" name="farn1.mesh" dens="0.0238965" minScale="0.142256" maxScale="0.217865" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="26.933" minTerH="-10" maxTerH="-3" maxDepth="0" />
+ <layer on="0" name="" dens="0.0999996" minScale="0.0999994" maxScale="0.249994" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-10" maxTerH="10" maxDepth="5" />
+diff --git tracks-2.3.orig/D16-AsphaltJumps/scene.xml tracks-2.3/D16-AsphaltJumps/scene.xml
+index e3e606c..998c687 100644
+--- tracks-2.3.orig/D16-AsphaltJumps/scene.xml
++++ tracks-2.3/D16-AsphaltJumps/scene.xml
+@@ -44,8 +44,6 @@
+ <layer on="1" name="rock_Y01.mesh" dens="0.0416493" minScale="0.813714" maxScale="1.27303" ofsY="0" addTrRdDist="5" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="19.1911" minTerH="-11.9266" maxTerH="29.3578" maxDepth="0" />
+ <layer on="1" name="rock_Y02.mesh" dens="0.0317223" minScale="0.57285" maxScale="1.51526" ofsY="0" addTrRdDist="5" maxRdist="100" windFx="0" windFy="0" maxTerAng="34.6848" minTerH="-22.2018" maxTerH="31.5596" maxDepth="5" />
+ <layer on="1" name="cactus.mesh" dens="0.0372297" minScale="0.423559" maxScale="0.591328" ofsY="0" addTrRdDist="0" maxRdist="20" windFx="0" windFy="0" maxTerAng="26.369" minTerH="-22" maxTerH="17.2477" maxDepth="0" />
+- <layer on="0" name="treeD-34desTiny.mesh" dens="0.0150235" minScale="1.21804" maxScale="1.51159" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.134303" windFy="0.0049742" maxTerAng="25.7687" minTerH="-22" maxTerH="3" maxDepth="0" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.0135087" minScale="1.30169" maxScale="1.57545" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0.318349" windFy="0.0054261" maxTerAng="26.8356" minTerH="-22" maxTerH="3" maxDepth="0" />
+ <layer on="0" name="tree.07.mesh" dens="0.0408248" minScale="0.849991" maxScale="1.15" ofsY="0" addTrRdDist="8" maxRdist="20" windFx="0.699996" windFy="0.0099953" maxTerAng="15.7209" minTerH="-10" maxTerH="3" maxDepth="0" />
+ <layer on="0" name="" dens="0.0999996" minScale="0.0999994" maxScale="0.249994" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-10" maxTerH="10" maxDepth="5" />
+ <layer on="0" name="" dens="0.1" minScale="0.1" maxScale="0.25" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+diff --git tracks-2.3.orig/D2-Mntn/scene.xml tracks-2.3/D2-Mntn/scene.xml
+index a24366c..ef3602a 100644
+--- tracks-2.3.orig/D2-Mntn/scene.xml
++++ tracks-2.3/D2-Mntn/scene.xml
+@@ -44,9 +44,6 @@
+ <layer on="0" name="palm.mesh" dens="0.0382422" minScale="1.78362" maxScale="2.40035" ofsY="0" addTrRdDist="3" maxRdist="20" windFx="0.599994" windFy="0.00999496" maxTerAng="15.0691" minTerH="-10" maxTerH="44" maxDepth="0" />
+ <layer on="0" name="farn1.mesh" dens="0.0238965" minScale="0.142256" maxScale="0.217865" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="13.56" minTerH="-10" maxTerH="44" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.00794445" minScale="0.476458" maxScale="1.34492" ofsY="0" addTrRdDist="8" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="20.8571" minTerH="-10" maxTerH="44" maxDepth="5" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.0150235" minScale="1.21804" maxScale="1.51159" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.134303" windFy="0.0049742" maxTerAng="13.1042" minTerH="-20" maxTerH="44" maxDepth="0" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.0135087" minScale="1.30169" maxScale="1.57545" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0.318349" windFy="0.0054261" maxTerAng="10.6687" minTerH="-22" maxTerH="44" maxDepth="0" />
+- <layer on="1" name="treeGC-32draUp.mesh" dens="0.00592459" minScale="1.04925" maxScale="1.28749" ofsY="0" addTrRdDist="3" maxRdist="20" windFx="0.0577775" windFy="0.00153982" maxTerAng="11.2193" minTerH="-22" maxTerH="30" maxDepth="0" />
+ <layer on="0" name="" dens="0.0999996" minScale="0.0999994" maxScale="0.249994" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-10" maxTerH="10" maxDepth="5" />
+ <layer on="0" name="" dens="0.1" minScale="0.1" maxScale="0.25" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ </paged>
+diff --git tracks-2.3.orig/D4-SBridge/scene.xml tracks-2.3/D4-SBridge/scene.xml
+index 016b126..dfb193f 100644
+--- tracks-2.3.orig/D4-SBridge/scene.xml
++++ tracks-2.3/D4-SBridge/scene.xml
+@@ -42,9 +42,6 @@
+ <layer on="1" name="palm2.mesh" dens="0.0333369" minScale="2.34226" maxScale="3.31033" ofsY="0" addTrRdDist="9" maxRdist="20" windFx="0.295773" windFy="0.114733" maxTerAng="30.0341" minTerH="-10" maxTerH="6" maxDepth="0" />
+ <layer on="1" name="palm.mesh" dens="0.0382422" minScale="1.78362" maxScale="2.40035" ofsY="0" addTrRdDist="3" maxRdist="20" windFx="0.599994" windFy="0.00999496" maxTerAng="15.0691" minTerH="-10" maxTerH="6" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.00794445" minScale="0.476458" maxScale="1.34492" ofsY="0" addTrRdDist="8" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="20.8571" minTerH="-10" maxTerH="20" maxDepth="5" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.0150235" minScale="1.21804" maxScale="1.51159" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.134303" windFy="0.0049742" maxTerAng="23.6998" minTerH="-22" maxTerH="14" maxDepth="0" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.0135087" minScale="1.30169" maxScale="1.57545" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0.318349" windFy="0.0054261" maxTerAng="26.8356" minTerH="-22" maxTerH="14" maxDepth="0" />
+- <layer on="1" name="treeGC-32draUp.mesh" dens="0.00689124" minScale="1.04925" maxScale="1.28749" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.0577775" windFy="0.00153982" maxTerAng="29.0344" minTerH="-22" maxTerH="14" maxDepth="0" />
+ <layer on="0" name="tree.07.mesh" dens="0.0408248" minScale="0.849991" maxScale="1.15" ofsY="0" addTrRdDist="8" maxRdist="20" windFx="0.699996" windFy="0.00999529" maxTerAng="15.7209" minTerH="-10" maxTerH="3" maxDepth="0" />
+ <layer on="0" name="farn1.mesh" dens="0.0238965" minScale="0.142256" maxScale="0.217865" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="26.933" minTerH="-10" maxTerH="-3" maxDepth="0" />
+ <layer on="0" name="" dens="0.0999996" minScale="0.0999994" maxScale="0.249994" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-10" maxTerH="10" maxDepth="5" />
+diff --git tracks-2.3.orig/D5-LowJumps/scene.xml tracks-2.3/D5-LowJumps/scene.xml
+index 84034cf..1bc699c 100644
+--- tracks-2.3.orig/D5-LowJumps/scene.xml
++++ tracks-2.3/D5-LowJumps/scene.xml
+@@ -45,9 +45,6 @@
+ <layer on="1" name="palm2.mesh" dens="0.0333369" minScale="2.34226" maxScale="3.31033" ofsY="0" addTrRdDist="9" maxRdist="20" windFx="0.295773" windFy="0.114733" maxTerAng="30.0341" minTerH="-10" maxTerH="3" maxDepth="0" />
+ <layer on="1" name="palm.mesh" dens="0.0382422" minScale="1.78362" maxScale="2.40035" ofsY="0" addTrRdDist="3" maxRdist="20" windFx="0.599994" windFy="0.00999497" maxTerAng="15.0691" minTerH="-10" maxTerH="3" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.00794445" minScale="0.476458" maxScale="1.34492" ofsY="0" addTrRdDist="8" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="20.8571" minTerH="-10" maxTerH="10" maxDepth="5" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.0150235" minScale="1.21804" maxScale="1.51159" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.134303" windFy="0.0049742" maxTerAng="25.7687" minTerH="-22" maxTerH="3" maxDepth="0" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.0135087" minScale="1.30169" maxScale="1.57545" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0.318349" windFy="0.0054261" maxTerAng="26.8356" minTerH="-22" maxTerH="3" maxDepth="0" />
+- <layer on="1" name="treeGC-32draUp.mesh" dens="0.00689124" minScale="1.04925" maxScale="1.28749" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.0577775" windFy="0.00153982" maxTerAng="29.0344" minTerH="-22" maxTerH="3" maxDepth="0" />
+ <layer on="1" name="cactus.mesh" dens="0.0417048" minScale="0.327639" maxScale="0.720783" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="8.09966e-006" maxTerAng="26.933" minTerH="-10" maxTerH="-3" maxDepth="0" />
+ <layer on="0" name="farn1.mesh" dens="0.0238965" minScale="0.142256" maxScale="0.217865" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="26.933" minTerH="-10" maxTerH="-3" maxDepth="0" />
+ <layer on="0" name="" dens="0.0999996" minScale="0.0999994" maxScale="0.249994" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-10" maxTerH="10" maxDepth="5" />
+diff --git tracks-2.3.orig/D6-HighJumps/scene.xml tracks-2.3/D6-HighJumps/scene.xml
+index 47b4782..246b6d2 100644
+--- tracks-2.3.orig/D6-HighJumps/scene.xml
++++ tracks-2.3/D6-HighJumps/scene.xml
+@@ -42,9 +42,6 @@
+ <layer on="1" name="palm2.mesh" dens="0.0333369" minScale="2.34226" maxScale="3.31033" ofsY="0" addTrRdDist="9" maxRdist="20" windFx="0.295773" windFy="0.114733" maxTerAng="30.0341" minTerH="-10" maxTerH="3" maxDepth="0" />
+ <layer on="1" name="palm.mesh" dens="0.0382422" minScale="1.78362" maxScale="2.40035" ofsY="0" addTrRdDist="3" maxRdist="20" windFx="0.599994" windFy="0.00999496" maxTerAng="15.0691" minTerH="-10" maxTerH="3" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.00831475" minScale="0.896815" maxScale="1.21804" ofsY="0" addTrRdDist="8" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="20.8571" minTerH="-10" maxTerH="10" maxDepth="5" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.0125468" minScale="1.21804" maxScale="1.51159" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.134303" windFy="0.0049742" maxTerAng="25.7687" minTerH="-22" maxTerH="3" maxDepth="0" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.0135087" minScale="1.30169" maxScale="1.57545" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0.318349" windFy="0.0054261" maxTerAng="26.8356" minTerH="-22" maxTerH="3" maxDepth="0" />
+- <layer on="1" name="treeGC-32draUp.mesh" dens="0.0150235" minScale="1.04925" maxScale="1.28749" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.0577775" windFy="0.00153982" maxTerAng="29.0344" minTerH="-22" maxTerH="3" maxDepth="0" />
+ <layer on="1" name="cactus.mesh" dens="0.0408248" minScale="0.400656" maxScale="0.611499" ofsY="0" addTrRdDist="4" maxRdist="20" windFx="0.699996" windFy="0.00999528" maxTerAng="15.7209" minTerH="-10" maxTerH="3" maxDepth="0" />
+ <layer on="0" name="farn1.mesh" dens="0.0238965" minScale="0.142256" maxScale="0.217865" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="26.933" minTerH="-10" maxTerH="-3" maxDepth="0" />
+ <layer on="0" name="" dens="0.0999996" minScale="0.0999994" maxScale="0.249994" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-10" maxTerH="10" maxDepth="5" />
+diff --git tracks-2.3.orig/D7-CrossJumps/scene.xml tracks-2.3/D7-CrossJumps/scene.xml
+index e4da09c..3825acc 100644
+--- tracks-2.3.orig/D7-CrossJumps/scene.xml
++++ tracks-2.3/D7-CrossJumps/scene.xml
+@@ -41,8 +41,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="43" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="palm2.mesh" dens="0.0568481" minScale="2.34226" maxScale="3.75777" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.295761" windFy="0.114725" maxTerAng="30.0341" minTerH="-10" maxTerH="3" maxDepth="5" />
+ <layer on="1" name="palm.mesh" dens="0.0249996" minScale="1.78362" maxScale="2.74173" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.599985" windFy="0.00999407" maxTerAng="15.069" minTerH="-10" maxTerH="3" maxDepth="5" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.0219488" minScale="1.01265" maxScale="1.44948" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0.235506" windFy="0.00999531" maxTerAng="15.7209" minTerH="-10" maxTerH="10" maxDepth="5" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.014509" minScale="0.919234" maxScale="1.35954" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.393863" windFy="0.0599931" maxTerAng="26.9329" minTerH="-10" maxTerH="10" maxDepth="5" />
+ <layer on="0" name="rock_n2-GYel.mesh" dens="0.0188489" minScale="0.356876" maxScale="0.768378" ofsY="0" addTrRdDist="5" maxRdist="100" windFx="0" windFy="0" maxTerAng="14.8885" minTerH="-10" maxTerH="5.13761" maxDepth="5" />
+ <layer on="1" name="rock_Y03.mesh" dens="0.0636649" minScale="0.76099" maxScale="2.70319" ofsY="0" addTrRdDist="8" maxRdist="100" windFx="0" windFy="0" maxTerAng="14.8885" minTerH="-2.75229" maxTerH="0" maxDepth="5" />
+ <layer on="1" name="rock_Y02.mesh" dens="0.0655512" minScale="0.917985" maxScale="1.64713" ofsY="0" addTrRdDist="8" maxRdist="100" windFx="0" windFy="0" maxTerAng="21.0117" minTerH="-6.05505" maxTerH="0" maxDepth="5" />
+diff --git tracks-2.3.orig/D8-Technical/scene.xml tracks-2.3/D8-Technical/scene.xml
+index 0608fb4..8998032 100644
+--- tracks-2.3.orig/D8-Technical/scene.xml
++++ tracks-2.3/D8-Technical/scene.xml
+@@ -41,8 +41,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="52" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="palm2.mesh" dens="0.0831671" minScale="2.34226" maxScale="3.41769" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.295773" windFy="0.114733" maxTerAng="7.54155" minTerH="-10" maxTerH="10" maxDepth="5" />
+ <layer on="1" name="palm.mesh" dens="0.0481347" minScale="1.57545" maxScale="1.92185" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.599994" windFy="0.00999495" maxTerAng="7.54155" minTerH="-10" maxTerH="10" maxDepth="5" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.030259" minScale="1.17759" maxScale="1.64109" ofsY="0" addTrRdDist="9" maxRdist="100" windFx="0.36237" windFy="0.0099953" maxTerAng="10.9423" minTerH="-10" maxTerH="10" maxDepth="5" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.0399543" minScale="0.907978" maxScale="1.34492" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.101797" windFy="0.00641049" maxTerAng="17.4866" minTerH="-10" maxTerH="10" maxDepth="5" />
+ <layer on="1" name="cactus.mesh" dens="0.0399999" minScale="0.413791" maxScale="0.68302" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="17.1673" minTerH="-10" maxTerH="10" maxDepth="5" />
+ <layer on="0" name="rock.05.mesh" dens="0.0134539" minScale="0.134947" maxScale="0.316406" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0" windFy="0" maxTerAng="34.2693" minTerH="-10" maxTerH="10" maxDepth="5" />
+ <layer on="0" name="rock.07.mesh" dens="0.0115767" minScale="0.119856" maxScale="0.305434" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0" windFy="0" maxTerAng="28.9074" minTerH="-10" maxTerH="10" maxDepth="5" />
+diff --git tracks-2.3.orig/D9-Mud/scene.xml tracks-2.3/D9-Mud/scene.xml
+index 5fbde60..a743a6d 100644
+--- tracks-2.3.orig/D9-Mud/scene.xml
++++ tracks-2.3/D9-Mud/scene.xml
+@@ -45,8 +45,6 @@
+ <layer on="1" name="palm.mesh" dens="0.0668328" minScale="1.35954" maxScale="1.8131" ofsY="0" addTrRdDist="5" maxRdist="100" windFx="0.299995" windFy="0.00399946" maxTerAng="33.2103" minTerH="-7" maxTerH="8" maxDepth="0" />
+ <layer on="1" name="tree.07.mesh" dens="0.0219488" minScale="0.711215" maxScale="0.919234" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="29.0344" minTerH="-7" maxTerH="6" maxDepth="0" />
+ <layer on="1" name="tree.09.mesh" dens="0.0194865" minScale="0.849996" maxScale="1.15" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999976" maxTerAng="25.1389" minTerH="-7" maxTerH="6" maxDepth="0" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.030259" minScale="1.17759" maxScale="1.64109" ofsY="0" addTrRdDist="7" maxRdist="100" windFx="0.36237" windFy="0.00999525" maxTerAng="14.974" minTerH="-10" maxTerH="10" maxDepth="0" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.0399543" minScale="0.907978" maxScale="1.34492" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.101797" windFy="0.00641046" maxTerAng="21.7175" minTerH="-10" maxTerH="10" maxDepth="0" />
+ <layer on="1" name="cactus.mesh" dens="0.193367" minScale="0.427211" maxScale="0.740175" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0" windFy="0" maxTerAng="27.3444" minTerH="-6" maxTerH="10" maxDepth="1" />
+ <layer on="0" name="farn2.mesh" dens="0.0399999" minScale="0.149999" maxScale="0.249999" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599994" maxTerAng="33.4505" minTerH="-6" maxTerH="100" maxDepth="1" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.0540211" minScale="0.413791" maxScale="0.701732" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0" windFy="0" maxTerAng="33.4505" minTerH="-10" maxTerH="100" maxDepth="0" />
+diff --git tracks-2.3.orig/E1-Lakes/scene.xml tracks-2.3/E1-Lakes/scene.xml
+index 4d59359..678da1d 100644
+--- tracks-2.3.orig/E1-Lakes/scene.xml
++++ tracks-2.3/E1-Lakes/scene.xml
+@@ -45,8 +45,6 @@
+ <layer on="1" name="pine1_norm.mesh" dens="0.0613263" minScale="0.79017" maxScale="1.15113" ofsY="0" addTrRdDist="2" maxRdist="7" windFx="0.655962" windFy="0.0194517" maxTerAng="16.2332" minTerH="-3" maxTerH="50" maxDepth="0" />
+ <layer on="1" name="pine2_tall_norm.mesh" dens="0.160299" minScale="1.11218" maxScale="1.77778" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.413084" windFy="0.0179936" maxTerAng="21.165" minTerH="-3" maxTerH="80" maxDepth="0" />
+ <layer on="1" name="pine3_fat_norm.mesh" dens="0.031014" minScale="0.730436" maxScale="1.17759" ofsY="0" addTrRdDist="1" maxRdist="7" windFx="0.290122" windFy="0.0260719" maxTerAng="17.1673" minTerH="-3" maxTerH="50" maxDepth="0" />
+- <layer on="1" name="treeG-17birTall.mesh" dens="0.15" minScale="1.51159" maxScale="2.4871" ofsY="0" addTrRdDist="1" maxRdist="20" windFx="0.180804" windFy="0.0362652" maxTerAng="21.6941" minTerH="-3" maxTerH="50" maxDepth="0" />
+- <layer on="0" name="treeG-16birTallUp.mesh" dens="0.143275" minScale="0.965188" maxScale="1.48032" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.687697" windFy="0.046108" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="0" />
+ <layer on="1" name="rock.mesh" dens="0.0912633" minScale="0.759912" maxScale="1.62451" ofsY="0" addTrRdDist="2" maxRdist="6" windFx="0" windFy="0" maxTerAng="37.7436" minTerH="-100" maxTerH="100" maxDepth="0" />
+ <layer on="0" name="rock_n1.mesh" dens="0.0966112" minScale="0.79017" maxScale="1.2734" ofsY="0" addTrRdDist="2" maxRdist="20" windFx="0" windFy="0" maxTerAng="37.7436" minTerH="-100" maxTerH="100" maxDepth="0" />
+ <layer on="0" name="rock.07.mesh" dens="0.0952598" minScale="0.0595572" maxScale="0.192913" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="0" />
+diff --git tracks-2.3.orig/E2-Serpent/scene.xml tracks-2.3/E2-Serpent/scene.xml
+index 7131804..359f7e0 100644
+--- tracks-2.3.orig/E2-Serpent/scene.xml
++++ tracks-2.3/E2-Serpent/scene.xml
+@@ -45,11 +45,8 @@
+ <layer on="1" name="pine1_norm.mesh" dens="0.067465" minScale="0.79017" maxScale="1.15113" ofsY="0" addTrRdDist="2" maxRdist="7" windFx="0.655962" windFy="0.0194517" maxTerAng="16.2332" minTerH="-3" maxTerH="50" maxDepth="0" />
+ <layer on="1" name="pine2_tall_norm.mesh" dens="0.174256" minScale="1.11218" maxScale="1.77778" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.413084" windFy="0.0179936" maxTerAng="21.165" minTerH="-3" maxTerH="80" maxDepth="0" />
+ <layer on="0" name="pine3_fat_norm.mesh" dens="0.031014" minScale="0.730436" maxScale="1.17759" ofsY="0" addTrRdDist="1" maxRdist="7" windFx="0.290122" windFy="0.0260719" maxTerAng="17.1673" minTerH="-3" maxTerH="50" maxDepth="0" />
+- <layer on="0" name="treeG-17birTall.mesh" dens="0.15" minScale="1.51159" maxScale="2.4871" ofsY="0" addTrRdDist="1" maxRdist="20" windFx="0.180804" windFy="0.0362652" maxTerAng="21.6941" minTerH="-3" maxTerH="50" maxDepth="0" />
+- <layer on="1" name="treeG-16birTallUp.mesh" dens="0.143275" minScale="0.965188" maxScale="1.48032" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.687697" windFy="0.046108" maxTerAng="21.0117" minTerH="-100" maxTerH="100" maxDepth="0" />
+ <layer on="1" name="rock.mesh" dens="0.110288" minScale="0.759912" maxScale="1.62451" ofsY="0" addTrRdDist="2" maxRdist="6" windFx="0" windFy="0" maxTerAng="37.7436" minTerH="-100" maxTerH="100" maxDepth="0" />
+ <layer on="1" name="rock_B03.mesh" dens="0.0590697" minScale="0.710594" maxScale="1.2734" ofsY="0" addTrRdDist="4" maxRdist="20" windFx="0" windFy="0" maxTerAng="37.7436" minTerH="-100" maxTerH="100" maxDepth="0" />
+- <layer on="0" name="treeAYG-16birTallUp.mesh" dens="0.194974" minScale="1.65948" maxScale="2.20577" ofsY="0" addTrRdDist="2" maxRdist="7" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="0" />
+ <layer on="1" name="fern2.mesh" dens="0.157634" minScale="0.443806" maxScale="0.616577" ofsY="0" addTrRdDist="1" maxRdist="5" windFx="0" windFy="0" maxTerAng="18.9378" minTerH="-100" maxTerH="100" maxDepth="0" />
+ </paged>
+ <cam pos="310.033 77.4944 -355.781" dir="-0.293287 -0.287559 0.911752" />
+diff --git tracks-2.3.orig/F1-Slippery/scene.xml tracks-2.3/F1-Slippery/scene.xml
+index 5a335e5..995490e 100644
+--- tracks-2.3.orig/F1-Slippery/scene.xml
++++ tracks-2.3/F1-Slippery/scene.xml
+@@ -40,13 +40,11 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="55" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="70" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="pine1_norm.mesh" dens="0.191711" minScale="0.357557" maxScale="0.554761" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.375016" windFy="0.0104408" maxTerAng="37.6666" minTerH="-100" maxTerH="6" maxDepth="1" />
+- <layer on="1" name="treeG-17birTall.mesh" dens="0.19992" minScale="0.76099" maxScale="1.19179" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.799999" windFy="0.02" maxTerAng="42.4035" minTerH="-100" maxTerH="7" maxDepth="1" />
+ <layer on="1" name="shroom1_2.mesh" dens="0.448373" minScale="0.15" maxScale="0.25" ofsY="0" addTrRdDist="1" maxRdist="4" windFx="0" windFy="0" maxTerAng="21.1396" minTerH="-100" maxTerH="5" maxDepth="5" />
+ <layer on="1" name="pine2_tall_norm.mesh" dens="0.309788" minScale="0.531241" maxScale="0.806037" ofsY="0" addTrRdDist="5" maxRdist="20" windFx="0.753994" windFy="0.00980816" maxTerAng="26.6205" minTerH="-100" maxTerH="5" maxDepth="5" />
+ <layer on="1" name="fern.mesh" dens="0.24" minScale="0.12" maxScale="0.2" ofsY="0" addTrRdDist="1" maxRdist="5" windFx="9.3" windFy="0.12" maxTerAng="30.625" minTerH="-100" maxTerH="7" maxDepth="5" />
+ <layer on="1" name="rock_B02.mesh" dens="0.0892225" minScale="0.508395" maxScale="1.06729" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0" windFy="0" maxTerAng="19.7029" minTerH="-100" maxTerH="8" maxDepth="5" />
+ <layer on="1" name="rock_n3r.mesh" dens="0.0753956" minScale="0.554761" maxScale="0.960347" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0" windFy="0" maxTerAng="22.0891" minTerH="-100" maxTerH="100" maxDepth="5" />
+- <layer on="1" name="treeGG-37acaTall.mesh" dens="0.148919" minScale="0.710594" maxScale="1.11409" ofsY="0" addTrRdDist="3" maxRdist="8" windFx="0.196233" windFy="0.0015175" maxTerAng="22.3626" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="" dens="0.1" minScale="0.1" maxScale="0.25" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="" dens="0.1" minScale="0.1" maxScale="0.25" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ </paged>
+diff --git tracks-2.3.orig/F15-ForestTrip/scene.xml tracks-2.3/F15-ForestTrip/scene.xml
+index 1b136cb..43feadc 100644
+--- tracks-2.3.orig/F15-ForestTrip/scene.xml
++++ tracks-2.3/F15-ForestTrip/scene.xml
+@@ -41,7 +41,6 @@
+ <gchan amin="0" amax="14.7978" asm="6.32951" hmin="10.5386" hmax="200" hsm="8.18172" ns="0" frq="37" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="8.24798" asm="1.77999" hmin="-100" hmax="1.12412" hsm="1.08979" ns="1.01761" frq="20.6504" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="61" oct="3" prs="0.3" pow="1.2" rd="0" />
+- <layer on="1" name="treeG-17birTall.mesh" dens="0.186868" minScale="0.943249" maxScale="1.42391" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="16.029" minTerH="2.01835" maxTerH="74.4954" maxDepth="0" />
+ <layer on="1" name="tree.07.mesh" dens="0.07237" minScale="0.73911" maxScale="1.18189" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="25.1906" minTerH="-11.5596" maxTerH="37.4312" maxDepth="0" />
+ <layer on="1" name="fir06.mesh" dens="0.458573" minScale="0.0879477" maxScale="0.156548" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.699996" windFy="0.00999469" maxTerAng="20.8934" minTerH="1.28441" maxTerH="100" maxDepth="0" />
+ <layer on="1" name="pine3_fat_norm.mesh" dens="0.473773" minScale="0.934777" maxScale="1.43513" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.59998" windFy="0.00999756" maxTerAng="24.6116" minTerH="0.91743" maxTerH="100" maxDepth="0" />
+diff --git tracks-2.3.orig/F17-BadCamber/scene.xml tracks-2.3/F17-BadCamber/scene.xml
+index 2812019..73a8b4b 100644
+--- tracks-2.3.orig/F17-BadCamber/scene.xml
++++ tracks-2.3/F17-BadCamber/scene.xml
+@@ -44,7 +44,6 @@
+ <layer on="1" name="pine1_norm.mesh" dens="0.299439" minScale="1.02513" maxScale="1.17757" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.101235" windFy="0.00572945" maxTerAng="10.1434" minTerH="-60" maxTerH="6" maxDepth="0" />
+ <layer on="1" name="pine2_tall_norm.mesh" dens="0.688154" minScale="1.07796" maxScale="1.30743" ofsY="0" addTrRdDist="1" maxRdist="6" windFx="0.0623976" windFy="0.00477668" maxTerAng="10.1434" minTerH="6.85714" maxTerH="120" maxDepth="0" />
+ <layer on="1" name="pine3_fat_norm.mesh" dens="0.189539" minScale="1.06725" maxScale="1.28314" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.0813832" windFy="0.00864708" maxTerAng="5.625" minTerH="3" maxTerH="120" maxDepth="0" />
+- <layer on="0" name="treeG-17birTall.mesh" dens="0.141625" minScale="2.09301" maxScale="2.68988" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.347273" windFy="0.0259922" maxTerAng="30.1662" minTerH="-100" maxTerH="90" maxDepth="1" />
+ <layer on="1" name="fern2.mesh" dens="0.0870195" minScale="0.30276" maxScale="0.443806" ofsY="0" addTrRdDist="2" maxRdist="6" windFx="0" windFy="0" maxTerAng="29.1188" minTerH="-100" maxTerH="100" maxDepth="1" />
+ <layer on="1" name="farn2.mesh" dens="0.143246" minScale="0.220067" maxScale="0.408785" ofsY="0" addTrRdDist="1" maxRdist="20" windFx="2.00128" windFy="0.0167879" maxTerAng="31.0277" minTerH="-100" maxTerH="120" maxDepth="0" />
+ <layer on="0" name="" dens="0.0999996" minScale="0.0999983" maxScale="0.249999" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+diff --git tracks-2.3.orig/F4-OSquare/scene.xml tracks-2.3/F4-OSquare/scene.xml
+index bb0768f..9795e64 100644
+--- tracks-2.3.orig/F4-OSquare/scene.xml
++++ tracks-2.3/F4-OSquare/scene.xml
+@@ -40,7 +40,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="67" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="88" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="fir06.mesh" dens="0.354677" minScale="0.0399994" maxScale="0.119998" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="1.8" windFy="0.0999998" maxTerAng="27.2684" minTerH="-100" maxTerH="21" maxDepth="5" />
+- <layer on="1" name="treeG-17birTall.mesh" dens="0.05" minScale="0.876887" maxScale="1.46911" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.799999" windFy="0.02" maxTerAng="21.524" minTerH="-100" maxTerH="0" maxDepth="5" />
+ <layer on="1" name="shroom2_3.mesh" dens="0.107768" minScale="0.350895" maxScale="0.427211" ofsY="0" addTrRdDist="1" maxRdist="3" windFx="0" windFy="0" maxTerAng="21.7175" minTerH="-100" maxTerH="21" maxDepth="5" />
+ <layer on="1" name="pine3_fat_norm.mesh" dens="0.0784831" minScale="0.635978" maxScale="1.18189" ofsY="0" addTrRdDist="1" maxRdist="20" windFx="0.313223" windFy="0.0212879" maxTerAng="24.3246" minTerH="-100" maxTerH="1.83486" maxDepth="5" />
+ <layer on="1" name="farn1.mesh" dens="0.24" minScale="0.12" maxScale="0.2" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="9.3" windFy="0.12" maxTerAng="33.4505" minTerH="-100" maxTerH="21" maxDepth="5" />
+diff --git tracks-2.3.orig/G1-Long/scene.xml tracks-2.3/G1-Long/scene.xml
+index 76bc861..04c7e10 100644
+--- tracks-2.3.orig/G1-Long/scene.xml
++++ tracks-2.3/G1-Long/scene.xml
+@@ -45,12 +45,7 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="52" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="palm.mesh" dens="0.157095" minScale="0.942024" maxScale="2.9186" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.246534" windFy="0.0229798" maxTerAng="7.20265" minTerH="-10" maxTerH="20" maxDepth="0" />
+ <layer on="1" name="farn1.mesh" dens="0.0581378" minScale="0.259189" maxScale="0.400656" ofsY="0" addTrRdDist="1" maxRdist="6" windFx="7.29999" windFy="0.0599931" maxTerAng="26.6205" minTerH="-70" maxTerH="104.954" maxDepth="1" />
+- <layer on="1" name="treeGC-32draUp.mesh" dens="0.053016" minScale="1.03695" maxScale="1.4959" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.0188414" windFy="0.0049742" maxTerAng="17.9413" minTerH="-70" maxTerH="70.0917" maxDepth="0" />
+- <layer on="1" name="treeGG-37acaTall.mesh" dens="0.0773504" minScale="0.896815" maxScale="1.33041" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.325423" windFy="0.0397936" maxTerAng="16.4582" minTerH="-70" maxTerH="78.1651" maxDepth="0" />
+- <layer on="1" name="treeGW-41aspMid.mesh" dens="0.0773504" minScale="1.15113" maxScale="1.67458" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.42713" windFy="0.0100622" maxTerAng="11.9269" minTerH="-70" maxTerH="72" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.0140988" minScale="0.554761" maxScale="1.17204" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0" windFy="0" maxTerAng="32.258" minTerH="-70" maxTerH="0" maxDepth="5" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.128775" minScale="1.02475" maxScale="1.8131" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.311378" windFy="0.013987" maxTerAng="29.0344" minTerH="-100" maxTerH="-10" maxDepth="0" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.0999996" minScale="1.15113" maxScale="1.77778" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.235506" windFy="0.00999051" maxTerAng="29.0344" minTerH="60" maxTerH="90" maxDepth="0" />
+ <layer on="1" name="rock_Y01.mesh" dens="0.0188489" minScale="1.00399" maxScale="1.63483" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0" windFy="0" maxTerAng="35.3716" minTerH="-60" maxTerH="120" maxDepth="5" />
+ <layer on="1" name="rock_Y03.mesh" dens="0.0100371" minScale="1.77345" maxScale="3.21223" ofsY="0" addTrRdDist="8" maxRdist="100" windFx="0" windFy="0" maxTerAng="21.8172" minTerH="-0.91743" maxTerH="100.917" maxDepth="5" />
+ </paged>
+diff --git tracks-2.3.orig/G2-Coast/scene.xml tracks-2.3/G2-Coast/scene.xml
+index ebf4c9f..5eef397 100644
+--- tracks-2.3.orig/G2-Coast/scene.xml
++++ tracks-2.3/G2-Coast/scene.xml
+@@ -43,9 +43,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="34" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="palm.mesh" dens="0.157095" minScale="0.942024" maxScale="2.9186" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.246534" windFy="0.0229798" maxTerAng="23.4977" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+ <layer on="1" name="farn1.mesh" dens="0.0581378" minScale="0.259189" maxScale="0.400656" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="26.6205" minTerH="-2.5" maxTerH="70" maxDepth="1" />
+- <layer on="1" name="treeGC-32draUp.mesh" dens="0.053016" minScale="1.03695" maxScale="1.4959" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.0188414" windFy="0.0049742" maxTerAng="24.1066" minTerH="2" maxTerH="62" maxDepth="0" />
+- <layer on="1" name="treeGG-37acaTall.mesh" dens="0.0773504" minScale="0.896815" maxScale="1.33041" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.325423" windFy="0.0397936" maxTerAng="39.9998" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+- <layer on="1" name="treeGW-41aspMid.mesh" dens="0.0773504" minScale="1.15113" maxScale="1.67458" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.42713" windFy="0.0100622" maxTerAng="39.9998" minTerH="-0.5" maxTerH="52" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.0657122" minScale="0.711215" maxScale="1.2594" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.489763" windFy="0.0397936" maxTerAng="20.7587" minTerH="-0.5" maxTerH="50" maxDepth="5" />
+ <layer on="0" name="gum_tree.mesh" dens="0.0918052" minScale="0.339999" maxScale="1.14" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.799976" windFy="0.013987" maxTerAng="20.0074" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+ <layer on="0" name="tree.07.mesh" dens="0.0999996" minScale="0.849972" maxScale="1.15" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.699996" windFy="0.00999052" maxTerAng="17.4866" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+diff --git tracks-2.3.orig/G3-Butterfly/scene.xml tracks-2.3/G3-Butterfly/scene.xml
+index f090d0d..216310a 100644
+--- tracks-2.3.orig/G3-Butterfly/scene.xml
++++ tracks-2.3/G3-Butterfly/scene.xml
+@@ -43,9 +43,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="70" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="palm.mesh" dens="0.113578" minScale="0.942024" maxScale="2.9186" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.246534" windFy="0.0229798" maxTerAng="23.4977" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+ <layer on="1" name="farn1.mesh" dens="0.0581378" minScale="0.259189" maxScale="0.400656" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="26.6205" minTerH="-2.5" maxTerH="32" maxDepth="1" />
+- <layer on="1" name="treeGC-32draUp.mesh" dens="0.053016" minScale="1.03695" maxScale="1.4959" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.0188414" windFy="0.0049742" maxTerAng="24.1066" minTerH="2" maxTerH="62" maxDepth="0" />
+- <layer on="1" name="treeGG-37acaTall.mesh" dens="0.0773504" minScale="0.896815" maxScale="1.33041" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.325423" windFy="0.0397936" maxTerAng="39.9998" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+- <layer on="1" name="treeGW-41aspMid.mesh" dens="0.0773504" minScale="1.15113" maxScale="1.67458" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.42713" windFy="0.0100622" maxTerAng="39.9998" minTerH="-1" maxTerH="62" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.0657122" minScale="0.32199" maxScale="0.664644" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0" windFy="0" maxTerAng="20.7587" minTerH="-3.5" maxTerH="32" maxDepth="5" />
+ <layer on="0" name="gum_tree.mesh" dens="0.0918052" minScale="0.339999" maxScale="1.14" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.799976" windFy="0.013987" maxTerAng="20.0074" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+ <layer on="0" name="tree.07.mesh" dens="0.0999996" minScale="0.849972" maxScale="1.15" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.699996" windFy="0.00999052" maxTerAng="17.4866" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+diff --git tracks-2.3.orig/G4-River/scene.xml tracks-2.3/G4-River/scene.xml
+index 150526f..eac6bb8 100644
+--- tracks-2.3.orig/G4-River/scene.xml
++++ tracks-2.3/G4-River/scene.xml
+@@ -43,9 +43,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="79" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="palm.mesh" dens="0.113578" minScale="0.942024" maxScale="2.15225" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0.246534" windFy="0.0229798" maxTerAng="23.4977" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+ <layer on="1" name="farn1.mesh" dens="0.0581378" minScale="0.166301" maxScale="0.300044" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="26.6205" minTerH="-2.5" maxTerH="32" maxDepth="1" />
+- <layer on="1" name="treeGC-32draUp.mesh" dens="0.053016" minScale="1.03695" maxScale="1.4959" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.0188414" windFy="0.0049742" maxTerAng="24.1066" minTerH="2" maxTerH="62" maxDepth="0" />
+- <layer on="1" name="treeGG-37acaTall.mesh" dens="0.0773504" minScale="0.896815" maxScale="1.33041" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.325423" windFy="0.0397936" maxTerAng="27.2684" minTerH="-2" maxTerH="62" maxDepth="0" />
+- <layer on="1" name="treeGW-41aspMid.mesh" dens="0.0773504" minScale="1.01265" maxScale="1.40403" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.42713" windFy="0.0100622" maxTerAng="27.9242" minTerH="-3" maxTerH="62" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.0657122" minScale="0.440917" maxScale="0.720783" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0" windFy="0" maxTerAng="20.7587" minTerH="-5" maxTerH="32" maxDepth="5" />
+ <layer on="0" name="gum_tree.mesh" dens="0.0918052" minScale="0.339999" maxScale="1.14" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.799976" windFy="0.013987" maxTerAng="20.0074" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+ <layer on="0" name="tree.07.mesh" dens="0.0999996" minScale="0.849972" maxScale="1.15" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.699996" windFy="0.00999052" maxTerAng="17.4866" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+diff --git tracks-2.3.orig/G5-Climb/scene.xml tracks-2.3/G5-Climb/scene.xml
+index 6cd4c7e..6031697 100644
+--- tracks-2.3.orig/G5-Climb/scene.xml
++++ tracks-2.3/G5-Climb/scene.xml
+@@ -43,9 +43,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="88" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="palm.mesh" dens="0.157095" minScale="0.942024" maxScale="2.9186" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.246534" windFy="0.0229798" maxTerAng="30.625" minTerH="-87.5" maxTerH="26" maxDepth="0" />
+ <layer on="1" name="farn1.mesh" dens="0.082275" minScale="0.259189" maxScale="0.400656" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="33.2103" minTerH="-88.5" maxTerH="113" maxDepth="1" />
+- <layer on="1" name="treeGC-32draUp.mesh" dens="0.053016" minScale="1.03695" maxScale="1.4959" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.0188414" windFy="0.0049742" maxTerAng="25.5579" minTerH="-87.5" maxTerH="55" maxDepth="0" />
+- <layer on="1" name="treeGG-37acaTall.mesh" dens="0.0773504" minScale="0.896815" maxScale="1.33041" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.325423" windFy="0.0397936" maxTerAng="31.553" minTerH="-87.5" maxTerH="28" maxDepth="0" />
+- <layer on="1" name="treeGW-41aspMid.mesh" dens="0.0773504" minScale="1.15113" maxScale="1.67458" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.42713" windFy="0.0100622" maxTerAng="31.553" minTerH="-87.5" maxTerH="22" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.0657122" minScale="0.637702" maxScale="0.97691" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0" windFy="0" maxTerAng="29.4845" minTerH="-40" maxTerH="120" maxDepth="1" />
+ <layer on="0" name="gum_tree.mesh" dens="0.0918052" minScale="0.339999" maxScale="1.14" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.799976" windFy="0.013987" maxTerAng="20.0074" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+ <layer on="0" name="tree.07.mesh" dens="0.0999996" minScale="0.849972" maxScale="1.15" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.699996" windFy="0.00999052" maxTerAng="17.4866" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+diff --git tracks-2.3.orig/G6-Halfpipes/scene.xml tracks-2.3/G6-Halfpipes/scene.xml
+index 1981103..3854489 100644
+--- tracks-2.3.orig/G6-Halfpipes/scene.xml
++++ tracks-2.3/G6-Halfpipes/scene.xml
+@@ -41,9 +41,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="61" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="palm2.mesh" dens="0.157095" minScale="0.942024" maxScale="2.11716" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.196233" windFy="0.0378421" maxTerAng="30.625" minTerH="-87.5" maxTerH="39.2661" maxDepth="0" />
+ <layer on="1" name="farn1.mesh" dens="0.082275" minScale="0.259189" maxScale="0.400656" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="33.2103" minTerH="-88.5" maxTerH="84.0367" maxDepth="1" />
+- <layer on="0" name="treeGC-32draUp.mesh" dens="0.053016" minScale="1.03695" maxScale="1.4959" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.0188414" windFy="0.0049742" maxTerAng="25.5579" minTerH="-87.5" maxTerH="55" maxDepth="0" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.0773504" minScale="0.896815" maxScale="1.33041" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.325423" windFy="0.0397936" maxTerAng="28.187" minTerH="-87.5" maxTerH="49.9083" maxDepth="0" />
+- <layer on="1" name="treeGW-41aspMid.mesh" dens="0.0773504" minScale="1.15113" maxScale="1.67458" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.42713" windFy="0.0100622" maxTerAng="31.553" minTerH="-87.5" maxTerH="38.5321" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.0657122" minScale="0.637702" maxScale="0.97691" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0" windFy="0" maxTerAng="29.4845" minTerH="-40" maxTerH="82.2018" maxDepth="1" />
+ <layer on="0" name="gum_tree.mesh" dens="0.0918052" minScale="0.339999" maxScale="1.14" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.799976" windFy="0.013987" maxTerAng="20.0074" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+ <layer on="0" name="tree.07.mesh" dens="0.0999996" minScale="0.849972" maxScale="1.15" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.699996" windFy="0.00999052" maxTerAng="17.4866" minTerH="-0.5" maxTerH="62" maxDepth="0" />
+diff --git tracks-2.3.orig/I11-StuntIslands/scene.xml tracks-2.3/I11-StuntIslands/scene.xml
+index 1af37ff..b9e2a45 100644
+--- tracks-2.3.orig/I11-StuntIslands/scene.xml
++++ tracks-2.3/I11-StuntIslands/scene.xml
+@@ -43,8 +43,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="142" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="palm2.mesh" dens="0.0831671" minScale="2.42185" maxScale="3.41769" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.295773" windFy="0.114733" maxTerAng="7.54155" minTerH="-10" maxTerH="30" maxDepth="0" />
+ <layer on="1" name="palm.mesh" dens="0.0481347" minScale="1.72566" maxScale="2.21259" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.599994" windFy="0.00999494" maxTerAng="7.54155" minTerH="-10" maxTerH="30" maxDepth="0" />
+- <layer on="1" name="treeD-22desMed.mesh" dens="0.030259" minScale="1.17759" maxScale="1.64109" ofsY="0" addTrRdDist="9" maxRdist="100" windFx="0.36237" windFy="0.00999528" maxTerAng="10.9423" minTerH="-10" maxTerH="30" maxDepth="0" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.0399543" minScale="0.907978" maxScale="1.34492" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.101797" windFy="0.00641048" maxTerAng="17.4866" minTerH="-10" maxTerH="30" maxDepth="0" />
+ <layer on="1" name="cactus.mesh" dens="0.0399999" minScale="0.462021" maxScale="0.853076" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="17.1673" minTerH="-10" maxTerH="30" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.0444028" minScale="0.863874" maxScale="1.30169" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0" windFy="0" maxTerAng="34.2693" minTerH="-10" maxTerH="30" maxDepth="1" />
+ <layer on="0" name="rock.07.mesh" dens="0.0115767" minScale="0.119856" maxScale="0.305434" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0" windFy="0" maxTerAng="28.9074" minTerH="-10" maxTerH="30" maxDepth="1" />
+diff --git tracks-2.3.orig/O1-Moss/scene.xml tracks-2.3/O1-Moss/scene.xml
+index f25dc54..1fdde4f 100644
+--- tracks-2.3.orig/O1-Moss/scene.xml
++++ tracks-2.3/O1-Moss/scene.xml
+@@ -41,8 +41,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="34" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="0" name="rock.mesh" dens="0.0266281" minScale="0.594435" maxScale="2.50911" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="41.0596" minTerH="-100" maxTerH="50" maxDepth="5" />
+ <layer on="1" name="plant_tropical.mesh" dens="0.119539" minScale="1.72566" maxScale="2.05413" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="0.138292" windFy="0.0985482" maxTerAng="32.258" minTerH="-100" maxTerH="22" maxDepth="5" />
+- <layer on="1" name="treeGC-29aspDnSwp.mesh" dens="0.155091" minScale="0.810782" maxScale="1.60805" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="30.625" minTerH="-100" maxTerH="22" maxDepth="5" />
+- <layer on="1" name="treeGY-36aspMed.mesh" dens="0.133522" minScale="0.919234" maxScale="1.21804" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="30.625" minTerH="-100" maxTerH="22" maxDepth="5" />
+ <layer on="0" name="tree33bbTallUpO.mesh" dens="0.151667" minScale="0.97691" maxScale="1.20445" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="50" minTerH="-100" maxTerH="50" maxDepth="5" />
+ <layer on="0" name="tree51site.mesh" dens="0.117972" minScale="1.04925" maxScale="1.35954" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="50" minTerH="-100" maxTerH="50" maxDepth="5" />
+ <layer on="0" name="tree52sitefat.mesh" dens="0.117972" minScale="1.04925" maxScale="1.35954" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999976" maxTerAng="50" minTerH="-100" maxTerH="50" maxDepth="5" />
+diff --git tracks-2.3.orig/O2-Mouse/scene.xml tracks-2.3/O2-Mouse/scene.xml
+index 3ac29f0..677e8cc 100644
+--- tracks-2.3.orig/O2-Mouse/scene.xml
++++ tracks-2.3/O2-Mouse/scene.xml
+@@ -47,8 +47,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="43" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="rock.mesh" dens="0.0646013" minScale="0.594435" maxScale="2.50911" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="41.0596" minTerH="8" maxTerH="50" maxDepth="1" />
+ <layer on="1" name="plant_tropical.mesh" dens="0.176443" minScale="1.62451" maxScale="2.19235" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.138292" windFy="0.0985482" maxTerAng="42.4035" minTerH="-100" maxTerH="9" maxDepth="1" />
+- <layer on="1" name="treeGC-29aspDnSwp.mesh" dens="0.155091" minScale="0.810782" maxScale="1.60805" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="50" minTerH="-100" maxTerH="20" maxDepth="1" />
+- <layer on="1" name="treeGY-36aspMed.mesh" dens="0.133522" minScale="0.919234" maxScale="1.21804" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="50" minTerH="-100" maxTerH="20" maxDepth="1" />
+ <layer on="0" name="tree33bbTallUpO.mesh" dens="0.151667" minScale="0.97691" maxScale="1.20445" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="50" minTerH="-100" maxTerH="50" maxDepth="5" />
+ <layer on="0" name="tree51site.mesh" dens="0.117972" minScale="1.04925" maxScale="1.35954" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999975" maxTerAng="50" minTerH="-100" maxTerH="50" maxDepth="5" />
+ <layer on="0" name="tree52sitefat.mesh" dens="0.117972" minScale="1.04925" maxScale="1.35954" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999976" maxTerAng="50" minTerH="-100" maxTerH="50" maxDepth="5" />
+diff --git tracks-2.3.orig/O3-Air/scene.xml tracks-2.3/O3-Air/scene.xml
+index 51dc9ab..e88e652 100644
+--- tracks-2.3.orig/O3-Air/scene.xml
++++ tracks-2.3/O3-Air/scene.xml
+@@ -45,8 +45,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="52" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="rock.mesh" dens="0.0488864" minScale="0.212199" maxScale="3.08962" ofsY="0" addTrRdDist="14" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="34.7136" minTerH="2" maxTerH="50" maxDepth="5" />
+ <layer on="0" name="rock.05.mesh" dens="0.0243087" minScale="0.170812" maxScale="0.468707" ofsY="0" addTrRdDist="20" maxRdist="100" windFx="0.138292" windFy="0.0985482" maxTerAng="5.27535" minTerH="10" maxTerH="50" maxDepth="5" />
+- <layer on="1" name="treeGC-29aspDnSwp.mesh" dens="0.405664" minScale="0.810782" maxScale="1.60805" ofsY="0" addTrRdDist="5" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="30.625" minTerH="5" maxTerH="23" maxDepth="5" />
+- <layer on="1" name="treeGY-36aspMed.mesh" dens="0.124303" minScale="0.919234" maxScale="1.21804" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="30.625" minTerH="-100" maxTerH="5" maxDepth="1" />
+ <layer on="0" name="tree33bbTallUpO.mesh" dens="0.151667" minScale="0.97691" maxScale="1.20445" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="50" minTerH="-100" maxTerH="50" maxDepth="5" />
+ <layer on="0" name="fern.mesh" dens="0.163819" minScale="0.269031" maxScale="0.339134" ofsY="0" addTrRdDist="2" maxRdist="6" windFx="0.699996" windFy="0.00999974" maxTerAng="39.8796" minTerH="0" maxTerH="50" maxDepth="5" />
+ <layer on="1" name="plant_tropical.mesh" dens="0.117972" minScale="1.12691" maxScale="1.46484" ofsY="0" addTrRdDist="2" maxRdist="6" windFx="0.223468" windFy="0.00999975" maxTerAng="21.6941" minTerH="-10" maxTerH="10" maxDepth="5" />
+diff --git tracks-2.3.orig/O4-MossyMntn/scene.xml tracks-2.3/O4-MossyMntn/scene.xml
+index 6792ec2..76996af 100644
+--- tracks-2.3.orig/O4-MossyMntn/scene.xml
++++ tracks-2.3/O4-MossyMntn/scene.xml
+@@ -41,9 +41,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="61" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="rock.mesh" dens="0.0881175" minScale="1.05537" maxScale="2.67964" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="28.4959" minTerH="-100" maxTerH="63.1193" maxDepth="5" />
+ <layer on="0" name="plant_tropical.mesh" dens="0.173475" minScale="1.72566" maxScale="2.05413" ofsY="0" addTrRdDist="1" maxRdist="5" windFx="0.138292" windFy="0.0985482" maxTerAng="32.258" minTerH="-100" maxTerH="22" maxDepth="5" />
+- <layer on="1" name="treeGC-29aspDnSwp.mesh" dens="0.130886" minScale="0.529994" maxScale="1.21625" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="30.625" minTerH="-100" maxTerH="22" maxDepth="5" />
+- <layer on="0" name="treeGY-36aspMed.mesh" dens="0.0946427" minScale="0.673449" maxScale="1.21804" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="30.625" minTerH="-100" maxTerH="22" maxDepth="5" />
+- <layer on="1" name="treeGG-37acaTall.mesh" dens="0.151667" minScale="0.754182" maxScale="1.20445" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="50" minTerH="-100" maxTerH="20.1835" maxDepth="5" />
+ <layer on="1" name="rock_n3r.mesh" dens="0.0994765" minScale="0.673449" maxScale="1.01399" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0" windFy="0" maxTerAng="29.7483" minTerH="-100" maxTerH="46.6055" maxDepth="5" />
+ <layer on="1" name="rock.07.mesh" dens="0.0529256" minScale="0.188249" maxScale="0.301956" ofsY="0" addTrRdDist="5" maxRdist="100" windFx="0.699996" windFy="0.00999976" maxTerAng="50" minTerH="-100" maxTerH="50" maxDepth="5" />
+ <layer on="1" name="jungle_tree.mesh" dens="0.0220294" minScale="0.905797" maxScale="1.23216" ofsY="0" addTrRdDist="5" maxRdist="100" windFx="0.393863" windFy="0.00277818" maxTerAng="26.369" minTerH="-100" maxTerH="13.945" maxDepth="5" />
+diff --git tracks-2.3.orig/T1-Autumn/scene.xml tracks-2.3/T1-Autumn/scene.xml
+index fc9884c..c3a4e92 100644
+--- tracks-2.3.orig/T1-Autumn/scene.xml
++++ tracks-2.3/T1-Autumn/scene.xml
+@@ -39,12 +39,7 @@
+ <gchan amin="0" amax="18.4367" asm="7.32485" hmin="-0.140516" hmax="2.52927" hsm="1.95683" ns="0" frq="61" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="97" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="133" oct="3" prs="0.3" pow="1.2" rd="0" />
+- <layer on="1" name="treeAY-20mplWide.mesh" dens="0.0886472" minScale="1.20445" maxScale="1.41907" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="14.4949" minTerH="-100" maxTerH="7" maxDepth="5" />
+- <layer on="1" name="treeAYG-16birTallUp.mesh" dens="0.0886472" minScale="1.13805" maxScale="1.67458" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="20.9488" minTerH="1" maxTerH="30" maxDepth="5" />
+- <layer on="1" name="treeAYO-18mplTall.mesh" dens="0.155091" minScale="0.810782" maxScale="1.23172" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="15.9557" minTerH="-100" maxTerH="12" maxDepth="5" />
+- <layer on="1" name="treeAY-11aspTallMed.mesh" dens="0.0390934" minScale="1.57545" maxScale="2.03488" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.224204" windFy="0.00999974" maxTerAng="19.4529" minTerH="-100" maxTerH="30" maxDepth="5" />
+ <layer on="1" name="rock.mesh" dens="0.0510346" minScale="0.68302" maxScale="1.41907" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="23.4977" minTerH="-100" maxTerH="40" maxDepth="5" />
+- <layer on="0" name="treeAOR-13oakWBig.mesh" dens="0.0635" minScale="1.04925" maxScale="1.35954" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="16.9685" minTerH="10" maxTerH="20" maxDepth="5" />
+ <layer on="0" name="tree67bigDnWide.mesh" dens="0.117972" minScale="1.04925" maxScale="1.35954" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="tree68bigUpW.mesh" dens="0.111069" minScale="0.740175" maxScale="1.17759" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="tree69bigUpWb.mesh" dens="0.107768" minScale="1.74292" maxScale="2.855" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999947" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+diff --git tracks-2.3.orig/T2-RedOakPark/scene.xml tracks-2.3/T2-RedOakPark/scene.xml
+index fe276f3..f8fa214 100644
+--- tracks-2.3.orig/T2-RedOakPark/scene.xml
++++ tracks-2.3/T2-RedOakPark/scene.xml
+@@ -39,12 +39,7 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="28" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="31" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="34" oct="3" prs="0.3" pow="1.2" rd="0" />
+- <layer on="0" name="treeAOR-13oakWBig.mesh" dens="0.0886472" minScale="1.52739" maxScale="2.29478" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="24.3114" minTerH="-100" maxTerH="20" maxDepth="5" />
+- <layer on="1" name="treeAR-26oakWide.mesh" dens="0.125659" minScale="1.17759" maxScale="1.64109" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="24.7234" minTerH="-100" maxTerH="14" maxDepth="5" />
+- <layer on="1" name="treeAO-25oakWMed.mesh" dens="0.107768" minScale="0.810782" maxScale="1.48032" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="32.9709" minTerH="-100" maxTerH="15" maxDepth="5" />
+- <layer on="1" name="treeAOY-27mplMed.mesh" dens="0.0390934" minScale="0.919234" maxScale="1.21804" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="38.4366" minTerH="-100" maxTerH="17" maxDepth="5" />
+ <layer on="1" name="rock.mesh" dens="0.0510346" minScale="0.68302" maxScale="1.41907" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="29.9381" minTerH="-100" maxTerH="17" maxDepth="5" />
+- <layer on="1" name="treeARk-12oakSm.mesh" dens="0.163819" minScale="1.2734" maxScale="1.62451" ofsY="0" addTrRdDist="2" maxRdist="5" windFx="0.699996" windFy="0.00999974" maxTerAng="21.3314" minTerH="-100" maxTerH="20" maxDepth="5" />
+ <layer on="0" name="tree67bigDnWide.mesh" dens="0.117972" minScale="1.04925" maxScale="1.35954" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="tree68bigUpW.mesh" dens="0.111069" minScale="0.740175" maxScale="1.17759" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="tree69bigUpWb.mesh" dens="0.107768" minScale="1.74292" maxScale="2.855" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999947" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+diff --git tracks-2.3.orig/T3-Orange/scene.xml tracks-2.3/T3-Orange/scene.xml
+index ed6d431..3234100 100644
+--- tracks-2.3.orig/T3-Orange/scene.xml
++++ tracks-2.3/T3-Orange/scene.xml
+@@ -39,12 +39,7 @@
+ <gchan amin="0" amax="18.4367" asm="7.32485" hmin="-0.140516" hmax="2.52927" hsm="1.95683" ns="0" frq="64" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="103" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="142" oct="3" prs="0.3" pow="1.2" rd="0" />
+- <layer on="1" name="treeAYO-18mplTall.mesh" dens="0.0886472" minScale="1.52739" maxScale="2.29478" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="20.5696" minTerH="-100" maxTerH="18" maxDepth="5" />
+- <layer on="1" name="treeAOG-17birTall.mesh" dens="0.104921" minScale="1.17759" maxScale="1.64109" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="40.7934" minTerH="-100" maxTerH="22" maxDepth="5" />
+- <layer on="1" name="treeAO-25oakWMed.mesh" dens="0.107768" minScale="0.810782" maxScale="1.48032" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="15.9557" minTerH="-100" maxTerH="18" maxDepth="5" />
+- <layer on="0" name="treeAOY-27mplMed.mesh" dens="0.0390934" minScale="0.919234" maxScale="1.21804" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="19.4529" minTerH="-100" maxTerH="20" maxDepth="5" />
+ <layer on="0" name="rock.mesh" dens="0.0510346" minScale="0.68302" maxScale="1.41907" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="23.4977" minTerH="-100" maxTerH="17" maxDepth="5" />
+- <layer on="0" name="treeARk-12oakSm.mesh" dens="0.0570942" minScale="1.04925" maxScale="1.35954" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="16.9685" minTerH="-100" maxTerH="20" maxDepth="5" />
+ <layer on="0" name="tree67bigDnWide.mesh" dens="0.117972" minScale="1.04925" maxScale="1.35954" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="tree68bigUpW.mesh" dens="0.111069" minScale="0.740175" maxScale="1.17759" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="tree69bigUpWb.mesh" dens="0.107768" minScale="1.74292" maxScale="2.855" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999947" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+diff --git tracks-2.3.orig/T4-Scary/scene.xml tracks-2.3/T4-Scary/scene.xml
+index 8c7f0b4..201efb6 100644
+--- tracks-2.3.orig/T4-Scary/scene.xml
++++ tracks-2.3/T4-Scary/scene.xml
+@@ -39,12 +39,7 @@
+ <gchan amin="0" amax="18.4367" asm="7.32485" hmin="-0.140516" hmax="2.52927" hsm="1.95683" ns="0" frq="67" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="109" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="151" oct="3" prs="0.3" pow="1.2" rd="0" />
+- <layer on="1" name="treeAW-14LLHuge7k.mesh" dens="0.0668328" minScale="1.83093" maxScale="3.0018" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="19.2698" minTerH="0" maxTerH="7" maxDepth="5" />
+- <layer on="1" name="treeAY-28aspTallEmp.mesh" dens="0.163819" minScale="1.90343" maxScale="2.57592" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="21.9118" minTerH="5" maxTerH="30" maxDepth="5" />
+- <layer on="0" name="treeAYG-16birTallUp.mesh" dens="0.155091" minScale="0.810782" maxScale="1.23172" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="15.9557" minTerH="-1" maxTerH="23" maxDepth="5" />
+- <layer on="1" name="treeARk-12oakSm.mesh" dens="0.0390934" minScale="1.94039" maxScale="2.59845" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="27.4861" minTerH="-10" maxTerH="20" maxDepth="5" />
+ <layer on="1" name="rock.mesh" dens="0.0490917" minScale="0.863874" maxScale="1.64109" ofsY="0" addTrRdDist="5" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="26.8356" minTerH="-25" maxTerH="15" maxDepth="5" />
+- <layer on="1" name="treeAR-26oakWide.mesh" dens="0.11654" minScale="1.04925" maxScale="1.35954" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="23.096" minTerH="-30" maxTerH="0" maxDepth="5" />
+ <layer on="1" name="rock.05.mesh" dens="0.0200876" minScale="0.103969" maxScale="0.155689" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0" windFy="0" maxTerAng="40.2636" minTerH="-100" maxTerH="100" maxDepth="1" />
+ <layer on="0" name="tree68bigUpW.mesh" dens="0.111069" minScale="0.740175" maxScale="1.17759" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="tree69bigUpWb.mesh" dens="0.107768" minScale="1.74292" maxScale="2.855" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999946" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+diff --git tracks-2.3.orig/T5-Twister/scene.xml tracks-2.3/T5-Twister/scene.xml
+index 73b2a34..8a6bd75 100644
+--- tracks-2.3.orig/T5-Twister/scene.xml
++++ tracks-2.3/T5-Twister/scene.xml
+@@ -39,12 +39,7 @@
+ <gchan amin="0" amax="18.4367" asm="7.32485" hmin="-0.140516" hmax="2.52927" hsm="1.95683" ns="0" frq="70" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="115" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="160" oct="3" prs="0.3" pow="1.2" rd="0" />
+- <layer on="0" name="treeAW-14LLHuge7k.mesh" dens="0.0668328" minScale="1.83093" maxScale="3.0018" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="19.2698" minTerH="0" maxTerH="7" maxDepth="5" />
+- <layer on="1" name="treeAY-28aspTallEmp.mesh" dens="0.163819" minScale="1.90343" maxScale="2.57592" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="21.9118" minTerH="5" maxTerH="30" maxDepth="5" />
+- <layer on="0" name="treeAYG-16birTallUp.mesh" dens="0.155091" minScale="0.810782" maxScale="1.23172" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="15.9557" minTerH="-1" maxTerH="23" maxDepth="5" />
+- <layer on="0" name="treeARk-12oakSm.mesh" dens="0.0390934" minScale="1.94039" maxScale="2.59845" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="27.4861" minTerH="-10" maxTerH="20" maxDepth="5" />
+ <layer on="1" name="rock.mesh" dens="0.0490917" minScale="0.863874" maxScale="1.64109" ofsY="0" addTrRdDist="5" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="26.8356" minTerH="-25" maxTerH="15" maxDepth="5" />
+- <layer on="1" name="treeAR-26oakWide.mesh" dens="0.11654" minScale="1.04925" maxScale="1.35954" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="23.096" minTerH="-30" maxTerH="0" maxDepth="5" />
+ <layer on="0" name="rock.05.mesh" dens="0.0200876" minScale="0.103969" maxScale="0.155689" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0" windFy="0" maxTerAng="40.2636" minTerH="-100" maxTerH="100" maxDepth="1" />
+ <layer on="0" name="tree68bigUpW.mesh" dens="0.111069" minScale="0.740175" maxScale="1.17759" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="tree69bigUpWb.mesh" dens="0.107768" minScale="1.74292" maxScale="2.855" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999946" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+diff --git tracks-2.3.orig/T6-Sunset/scene.xml tracks-2.3/T6-Sunset/scene.xml
+index 92ee853..41f5ed2 100644
+--- tracks-2.3.orig/T6-Sunset/scene.xml
++++ tracks-2.3/T6-Sunset/scene.xml
+@@ -39,12 +39,7 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="28" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="31" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="34" oct="3" prs="0.3" pow="1.2" rd="0" />
+- <layer on="1" name="treeAYO-18mplTall.mesh" dens="0.0886472" minScale="1.52739" maxScale="2.29478" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="20.5696" minTerH="-100" maxTerH="3" maxDepth="5" />
+- <layer on="1" name="treeAOG-17birTall.mesh" dens="0.104921" minScale="1.17759" maxScale="1.64109" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="40.7934" minTerH="-2" maxTerH="5" maxDepth="5" />
+- <layer on="1" name="treeAO-25oakWMed.mesh" dens="0.194779" minScale="0.810782" maxScale="1.48032" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="6.06759" minTerH="-5" maxTerH="-1" maxDepth="5" />
+- <layer on="0" name="treeAOY-27mplMed.mesh" dens="0.0390934" minScale="0.919234" maxScale="1.21804" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="19.4529" minTerH="-10" maxTerH="1" maxDepth="5" />
+ <layer on="1" name="rock.mesh" dens="0.0510346" minScale="0.339134" maxScale="1.16431" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="23.4977" minTerH="1" maxTerH="17" maxDepth="5" />
+- <layer on="1" name="treeARk-12oakSm.mesh" dens="0.0691027" minScale="1.12507" maxScale="1.44948" ofsY="0" addTrRdDist="2" maxRdist="6" windFx="0.699996" windFy="0.00999974" maxTerAng="19.8708" minTerH="-10" maxTerH="5" maxDepth="5" />
+ <layer on="0" name="fern2.mesh" dens="0.0481347" minScale="0.162712" maxScale="0.32199" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.699996" windFy="0.00999974" maxTerAng="12.3531" minTerH="-100" maxTerH="10" maxDepth="5" />
+ <layer on="0" name="tree68bigUpW.mesh" dens="0.111069" minScale="0.740175" maxScale="1.17759" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999945" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="tree69bigUpWb.mesh" dens="0.107768" minScale="1.74292" maxScale="2.855" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.599999" windFy="0.00999947" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+diff --git tracks-2.3.orig/Test5-TerrainSmall/scene.xml tracks-2.3/Test5-TerrainSmall/scene.xml
+index 9e18bd6..4f6e65b 100644
+--- tracks-2.3.orig/Test5-TerrainSmall/scene.xml
++++ tracks-2.3/Test5-TerrainSmall/scene.xml
+@@ -48,7 +48,6 @@
+ <layer on="1" name="fern.mesh" dens="0.24" minScale="0.12" maxScale="0.2" ofsY="0" addTrRdDist="1" maxRdist="5" windFx="9.3" windFy="0.12" maxTerAng="30.625" minTerH="-100" maxTerH="7" maxDepth="5" />
+ <layer on="1" name="rock_B02.mesh" dens="0.0503957" minScale="0.418596" maxScale="0.893176" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0" windFy="0" maxTerAng="19.7029" minTerH="-100" maxTerH="8" maxDepth="5" />
+ <layer on="1" name="rock_n3r.mesh" dens="0.0503957" minScale="0.438685" maxScale="0.837035" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0" windFy="0" maxTerAng="22.0891" minTerH="-100" maxTerH="100" maxDepth="5" />
+- <layer on="0" name="treeGG-37acaTall.mesh" dens="0.148919" minScale="0.710594" maxScale="1.11409" ofsY="0" addTrRdDist="3" maxRdist="8" windFx="0.196233" windFy="0.0015175" maxTerAng="22.3626" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="" dens="0.1" minScale="0.1" maxScale="0.25" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="" dens="0.1" minScale="0.1" maxScale="0.25" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ </paged>
+diff --git tracks-2.3.orig/Test7-FluidsSmall/scene.xml tracks-2.3/Test7-FluidsSmall/scene.xml
+index facd38a..0d41c43 100644
+--- tracks-2.3.orig/Test7-FluidsSmall/scene.xml
++++ tracks-2.3/Test7-FluidsSmall/scene.xml
+@@ -53,7 +53,6 @@
+ <layer on="1" name="fern.mesh" dens="0.24" minScale="0.12" maxScale="0.2" ofsY="0" addTrRdDist="1" maxRdist="5" windFx="9.3" windFy="0.12" maxTerAng="30.625" minTerH="-100" maxTerH="7" maxDepth="1.21207" />
+ <layer on="1" name="rock_B02.mesh" dens="0.0503957" minScale="0.418596" maxScale="0.893176" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0" windFy="0" maxTerAng="19.7029" minTerH="-100" maxTerH="8" maxDepth="0.4676" />
+ <layer on="1" name="rock_n3r.mesh" dens="0.0503957" minScale="0.438685" maxScale="0.837035" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0" windFy="0" maxTerAng="22.0891" minTerH="-100" maxTerH="100" maxDepth="0" />
+- <layer on="0" name="treeGG-37acaTall.mesh" dens="0.148919" minScale="0.710594" maxScale="1.11409" ofsY="0" addTrRdDist="3" maxRdist="8" windFx="0.196233" windFy="0.0015175" maxTerAng="22.3626" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="" dens="0.1" minScale="0.1" maxScale="0.25" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="" dens="0.1" minScale="0.1" maxScale="0.25" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="50" minTerH="-100" maxTerH="100" maxDepth="5" />
+ </paged>
+diff --git tracks-2.3.orig/V5-Sad/scene.xml tracks-2.3/V5-Sad/scene.xml
+index 987f62b..a2c2f51 100644
+--- tracks-2.3.orig/V5-Sad/scene.xml
++++ tracks-2.3/V5-Sad/scene.xml
+@@ -49,7 +49,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="34" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="fern.mesh" dens="0.12547" minScale="0.107516" maxScale="0.436019" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0.799976" windFy="0.0139838" maxTerAng="16.1095" minTerH="12" maxTerH="30" maxDepth="0" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.0545036" minScale="0.183945" maxScale="0.389892" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="20.1939" minTerH="-100" maxTerH="400" maxDepth="0" />
+- <layer on="0" name="treeAYO-18mplTall.mesh" dens="0.916357" minScale="0.851599" maxScale="1.03826" ofsY="0" addTrRdDist="1" maxRdist="100" windFx="2.16334" windFy="0" maxTerAng="4.82659" minTerH="-20" maxTerH="2" maxDepth="0" />
+ <layer on="0" name="palm.mesh" dens="0.305884" minScale="0.826917" maxScale="1.03826" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0.534086" windFy="0" maxTerAng="5.27535" minTerH="-5" maxTerH="1" maxDepth="1" />
+ <layer on="0" name="farn2.mesh" dens="0.0199999" minScale="0.149999" maxScale="0.249999" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="48.5376" minTerH="-2.5" maxTerH="40" maxDepth="1" />
+ <layer on="0" name="rock.05.mesh" dens="0.0199999" minScale="0.0599938" maxScale="0.409999" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0" windFy="0" maxTerAng="39.9998" minTerH="-0.5" maxTerH="100" maxDepth="1" />
+diff --git tracks-2.3.orig/V7-Radioactive/scene.xml tracks-2.3/V7-Radioactive/scene.xml
+index e60fd7c..582943d 100644
+--- tracks-2.3.orig/V7-Radioactive/scene.xml
++++ tracks-2.3/V7-Radioactive/scene.xml
+@@ -48,7 +48,6 @@
+ <layer on="0" name="rock.05.mesh" dens="0.0305751" minScale="0.0299981" maxScale="0.209997" ofsY="0" addTrRdDist="4" maxRdist="100" windFx="0" windFy="0" maxTerAng="30" minTerH="-3" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="rock.07.mesh" dens="0.0284247" minScale="0.0299986" maxScale="0.209997" ofsY="0" addTrRdDist="5" maxRdist="100" windFx="0" windFy="0" maxTerAng="30" minTerH="-3" maxTerH="100" maxDepth="5" />
+ <layer on="1" name="rock_n2-GYel.mesh" dens="0.206612" minScale="0.754182" maxScale="1.23216" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="30" minTerH="-100" maxTerH="100" maxDepth="5" />
+- <layer on="1" name="treeD-34desTiny.mesh" dens="0.0999996" minScale="0.386141" maxScale="0.665709" ofsY="0" addTrRdDist="2" maxRdist="100" windFx="0" windFy="0" maxTerAng="30" minTerH="0.550461" maxTerH="66.422" maxDepth="5" />
+ <layer on="0" name="" dens="0.0999996" minScale="0.0999994" maxScale="0.249999" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="30" minTerH="-100" maxTerH="100" maxDepth="5" />
+ <layer on="0" name="" dens="0.1" minScale="0.1" maxScale="0.25" ofsY="0" addTrRdDist="0" maxRdist="100" windFx="0" windFy="0" maxTerAng="30" minTerH="-100" maxTerH="100" maxDepth="5" />
+ </paged>
+diff --git tracks-2.3.orig/X6-Wild/scene.xml tracks-2.3/X6-Wild/scene.xml
+index 98748af..f352140 100644
+--- tracks-2.3.orig/X6-Wild/scene.xml
++++ tracks-2.3/X6-Wild/scene.xml
+@@ -42,7 +42,6 @@
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="79" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <gchan amin="0" amax="30" asm="20" hmin="-100" hmax="100" hsm="20" ns="0" frq="106" oct="3" prs="0.3" pow="1.2" rd="0" />
+ <layer on="1" name="gum_tree.mesh" dens="0.182672" minScale="1.45346" maxScale="2.22084" ofsY="0" addTrRdDist="6" maxRdist="100" windFx="0.299995" windFy="0.00399704" maxTerAng="20.4831" minTerH="-140" maxTerH="79.2661" maxDepth="1" />
+- <layer on="0" name="treeAO-25oakWMed.mesh" dens="0.0452608" minScale="1.94084" maxScale="2.43391" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.699996" windFy="0.0174103" maxTerAng="25.8421" minTerH="-120" maxTerH="60" maxDepth="0" />
+ <layer on="1" name="shroom2_1.mesh" dens="0.409761" minScale="1.62912" maxScale="2.83879" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="0.599985" windFy="0.00999205" maxTerAng="24.6116" minTerH="-140" maxTerH="70" maxDepth="0" />
+ <layer on="1" name="shroom1_2.mesh" dens="0.279069" minScale="0.8394" maxScale="2.68647" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="16.2621" minTerH="35" maxTerH="90" maxDepth="0" />
+ <layer on="1" name="shroom2_2.mesh" dens="0.382289" minScale="1.4278" maxScale="2.92067" ofsY="0" addTrRdDist="3" maxRdist="100" windFx="7.29999" windFy="0.0599931" maxTerAng="15.3396" minTerH="-140" maxTerH="60" maxDepth="0" />
diff --git a/libre/syslinux/PKGBUILD b/libre/syslinux/PKGBUILD
index 6b3b53b77..05c761fe1 100644
--- a/libre/syslinux/PKGBUILD
+++ b/libre/syslinux/PKGBUILD
@@ -1,7 +1,7 @@
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-# Maintainer: Thomas Bächler <thomas@archlinux.org>
-# Contributor: Keshav Padram Amburay <(the ddoott ridikulus ddoott rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer (Arch): Thomas Bächler <thomas@archlinux.org>
+# Contributor (Arch): Keshav Padram Amburay <(the ddoott ridikulus ddoott rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
+# Maintainer: André Silva <emulatorman@parabola.nu>
pkgname="syslinux"
pkgver="6.02"
diff --git a/libre/texlive-bin-libre/PKGBUILD b/libre/texlive-bin-libre/PKGBUILD
index 7d35d83e9..03d829d53 100644
--- a/libre/texlive-bin-libre/PKGBUILD
+++ b/libre/texlive-bin-libre/PKGBUILD
@@ -1,16 +1,16 @@
-# $Id: PKGBUILD 209906 2014-04-08 07:50:23Z fyan $
-# Maintainer: Rémy Oudompheng <remy@archlinux.org>
-# Contributor: francois <francois.archlinux.org>
-# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
-# Contributor (Parabola): André Silva <emulatorman@parabola.nu>
+# $Id: PKGBUILD 211863 2014-04-28 15:07:05Z jgc $
+# Maintainer (Arch): Rémy Oudompheng <remy@archlinux.org>
+# Contributor (Arch): francois <francois.archlinux.org>
+# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
+# Contributor: André Silva <emulatorman@parabola.nu>
pkgname=texlive-bin-libre
pkgver=2013.30973
-pkgrel=9
+pkgrel=10
pkgdesc="TeX Live binaries, without biber binaries (Parabola rebranded)"
license=('GPL')
arch=('i686' 'x86_64' 'mips64el')
-depends=('cairo' 'pixman' 'graphite' 't1lib' 'gd' 'poppler>=0.24.4'
+depends=('cairo' 'pixman' 'graphite' 't1lib' 'gd' 'poppler'
'libsigsegv' 'zziplib' 'libpng' 'libjpeg' 'freetype2'
'icu' 'harfbuzz' 'harfbuzz-icu')
makedepends=('perl' 'clisp' 'ffcall')
@@ -23,9 +23,16 @@ url='http://tug.org/texlive/'
install="texlive.install"
source=('fix-fontforge-encoding.patch'
"http://mirrors.kernel.org/archlinux/other/texlive/texlive-bin-source-${pkgver}.tar.xz"
+ poppler-0.26.patch
)
md5sums=('bfb9716aa00c86c08cd31e5b32edeb98'
- '0a8ffd5c0002a080a4202057b1f106c6')
+ '0a8ffd5c0002a080a4202057b1f106c6'
+ '65f5eef04fdf65fe8ff2df873509c855')
+
+prepare() {
+ cd source
+ patch -Np2 -i ../poppler-0.26.patch
+}
build() {
cd "$srcdir"
diff --git a/libre/texlive-bin-libre/poppler-0.26.patch b/libre/texlive-bin-libre/poppler-0.26.patch
new file mode 100644
index 000000000..fde123f62
--- /dev/null
+++ b/libre/texlive-bin-libre/poppler-0.26.patch
@@ -0,0 +1,104 @@
+--- trunk/source/texk/web2c/luatexdir/image/epdf.h 2013/01/20 19:58:26 4559
++++ trunk/source/texk/web2c/luatexdir/image/epdf.h 2014/01/02 15:35:31 4718
+@@ -40,21 +40,22 @@
+ # include <goo/GooString.h>
+ # include <goo/gmem.h>
+ # include <goo/gfile.h>
+-# include "Object.h"
+-# include "Stream.h"
+-# include "Gfx.h"
+-# include "Annot.h"
+-# include "Array.h"
+-# include "Dict.h"
+-# include "XRef.h"
+-# include "Catalog.h"
+-# include "Link.h"
+-# include "Page.h"
+-# include "GfxFont.h"
+-# include "PDFDoc.h"
+-# include "GlobalParams.h"
+-# include "Error.h"
+-# include "FileSpec.h"
++# include <Object.h>
++# include <Stream.h>
++# include <Gfx.h>
++# include <Annot.h>
++# include <Array.h>
++# include <Dict.h>
++# include <XRef.h>
++# include <Catalog.h>
++# include <StructTreeRoot.h>
++# include <Link.h>
++# include <Page.h>
++# include <GfxFont.h>
++# include <PDFDoc.h>
++# include <GlobalParams.h>
++# include <Error.h>
++# include <FileSpec.h>
+
+ extern "C" {
+
+@@ -81,8 +82,8 @@
+ # include "utils/avlstuff.h"
+ # include "pdf/pdftypes.h"
+
+-# include "lua52/lua.h"
+-# include "lua52/lauxlib.h"
++# include "lua.h"
++# include "lauxlib.h"
+
+ /* pdfgen.w */
+ extern int ten_pow[10];
+--- trunk/source/texk/web2c/luatexdir/lua/lepdflib.cc 2013/04/05 10:54:08 4629
++++ trunk/source/texk/web2c/luatexdir/lua/lepdflib.cc 2014/01/02 15:35:31 4718
+@@ -65,6 +65,7 @@
+ #define M_PDFRectangle "PDFRectangle"
+ #define M_Ref "Ref"
+ #define M_Stream "Stream"
++#define M_StructTreeRoot "StructTreeRoot"
+ #define M_XRefEntry "XRefEntry"
+ #define M_XRef "XRef"
+
+@@ -96,6 +97,7 @@
+ new_poppler_userdata(PDFRectangle);
+ new_poppler_userdata(Ref);
+ new_poppler_userdata(Stream);
++new_poppler_userdata(StructTreeRoot);
+ new_poppler_userdata(XRef);
+
+ //**********************************************************************
+@@ -573,7 +575,11 @@
+
+ m_poppler_get_GOOSTRING(Catalog, getBaseURI);
+ m_poppler_get_GOOSTRING(Catalog, readMetadata);
++#ifdef GETSTRUCTTREEROOT_RETURNS_OBJECT
+ m_poppler_get_poppler(Catalog, Object, getStructTreeRoot);
++#else
++m_poppler_get_poppler(Catalog, StructTreeRoot, getStructTreeRoot);
++#endif
+
+ static int m_Catalog_findPage(lua_State * L)
+ {
+@@ -2146,14 +2152,22 @@
+
+ static int m_PDFDoc_getStructTreeRoot(lua_State * L)
+ {
++#ifdef GETSTRUCTTREEROOT_RETURNS_OBJECT
+ Object *obj;
++#else
++ StructTreeRoot *obj;
++#endif
+ udstruct *uin, *uout;
+ uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc);
+ if (uin->pd != NULL && uin->pd->pc != uin->pc)
+ pdfdoc_changed_error(L);
+ if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) {
+ obj = ((PdfDocument *) uin->d)->doc->getStructTreeRoot();
++#ifdef GETSTRUCTTREEROOT_RETURNS_OBJECT
+ uout = new_Object_userdata(L);
++#else
++ uout = new_StructTreeRoot_userdata(L);
++#endif
+ uout->d = obj;
+ uout->pc = uin->pc;
+ uout->pd = uin->pd;
diff --git a/libre/texlive-core-libre/PKGBUILD b/libre/texlive-core-libre/PKGBUILD
index e56677d76..a5455426c 100644
--- a/libre/texlive-core-libre/PKGBUILD
+++ b/libre/texlive-core-libre/PKGBUILD
@@ -1,6 +1,6 @@
-# Maintainer: Rémy Oudompheng <remy@archlinux.org>
-# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
-# Contributor (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Rémy Oudompheng <remy@archlinux.org>
+# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
+# Contributor: André Silva <emulatorman@parabola.nu>
pkgname=texlive-core-libre
_pkgname=texlive-core
diff --git a/libre/texlive-fontsextra-libre/PKGBUILD b/libre/texlive-fontsextra-libre/PKGBUILD
index 40ef79a37..74969b3ef 100644
--- a/libre/texlive-fontsextra-libre/PKGBUILD
+++ b/libre/texlive-fontsextra-libre/PKGBUILD
@@ -1,6 +1,6 @@
-# Maintainer: Rémy Oudompheng <remy.archlinux.org>
-# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
-# Contributor (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Rémy Oudompheng <remy.archlinux.org>
+# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
+# Contributor: André Silva <emulatorman@parabola.nu>
pkgname=texlive-fontsextra-libre
_pkgname=texlive-fontsextra
diff --git a/libre/texlive-latexextra-libre/PKGBUILD b/libre/texlive-latexextra-libre/PKGBUILD
index 48756201a..7287e0019 100644
--- a/libre/texlive-latexextra-libre/PKGBUILD
+++ b/libre/texlive-latexextra-libre/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 207649 2014-03-12 22:58:16Z remy $
-# Maintainer: Firmicus <firmicus āt gmx dōt net>
-# Maintainer: Rémy Oudompheng <remy@archlinux.org>
-# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
-# Contributor (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Firmicus <firmicus āt gmx dōt net>
+# Maintainer (Arch): Rémy Oudompheng <remy@archlinux.org>
+# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
+# Contributor: André Silva <emulatorman@parabola.nu>
pkgname=texlive-latexextra-libre
_pkgname=texlive-latexextra
diff --git a/libre/tokyocabinet/PKGBUILD b/libre/tokyocabinet/PKGBUILD
index 1add6c535..2ac531c2e 100644
--- a/libre/tokyocabinet/PKGBUILD
+++ b/libre/tokyocabinet/PKGBUILD
@@ -1,5 +1,5 @@
-# Maintainer: Mark Foxwell <fastfret79@archlinux.org.uk>
-# Contributor: Nicolas Martyanoff <khaelin@gmail.com>
+# Maintainer (Arch): Mark Foxwell <fastfret79@archlinux.org.uk>
+# Contributor (Arch): Nicolas Martyanoff <khaelin@gmail.com>
pkgname=tokyocabinet
pkgver=1.4.48
diff --git a/libre/tp_smapi-libre-lts/PKGBUILD b/libre/tp_smapi-libre-lts/PKGBUILD
index 75ba8520d..1e1a2eabc 100644
--- a/libre/tp_smapi-libre-lts/PKGBUILD
+++ b/libre/tp_smapi-libre-lts/PKGBUILD
@@ -1,13 +1,13 @@
# $Id: PKGBUILD 106775 2014-03-07 14:36:25Z bpiotrowski $
-# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
-# Contributor: xduugu
-# Contributor: nh2
-# Contributor: Steven Davidovitz <steviedizzle ð gmail đ com>
-# Contributor: Nick B <Shirakawasuna ð gmail đ com>
-# Contributor: Christof Musik <christof ð senfdax đ de>
-# Contributor: Stefan Rupp <archlinux ð stefanrupp đ de>
-# Contributor: Ignas Anikevicius <anikevicius ð gmail đ com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor (Arch): xduugu
+# Contributor (Arch): nh2
+# Contributor (Arch): Steven Davidovitz <steviedizzle ð gmail đ com>
+# Contributor (Arch): Nick B <Shirakawasuna ð gmail đ com>
+# Contributor (Arch): Christof Musik <christof ð senfdax đ de>
+# Contributor (Arch): Stefan Rupp <archlinux ð stefanrupp đ de>
+# Contributor (Arch): Ignas Anikevicius <anikevicius ð gmail đ com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
pkgname=tp_smapi-libre-lts
_pkgname=tp_smapi
diff --git a/libre/tp_smapi-libre/PKGBUILD b/libre/tp_smapi-libre/PKGBUILD
index c72249779..d52136e63 100644
--- a/libre/tp_smapi-libre/PKGBUILD
+++ b/libre/tp_smapi-libre/PKGBUILD
@@ -1,13 +1,13 @@
# $Id: PKGBUILD 108712 2014-04-01 22:34:00Z thomas $
-# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
-# Contributor: xduugu
-# Contributor: nh2
-# Contributor: Steven Davidovitz <steviedizzle ð gmail đ com>
-# Contributor: Nick B <Shirakawasuna ð gmail đ com>
-# Contributor: Christof Musik <christof ð senfdax đ de>
-# Contributor: Stefan Rupp <archlinux ð stefanrupp đ de>
-# Contributor: Ignas Anikevicius <anikevicius ð gmail đ com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor (Arch): xduugu
+# Contributor (Arch): nh2
+# Contributor (Arch): Steven Davidovitz <steviedizzle ð gmail đ com>
+# Contributor (Arch): Nick B <Shirakawasuna ð gmail đ com>
+# Contributor (Arch): Christof Musik <christof ð senfdax đ de>
+# Contributor (Arch): Stefan Rupp <archlinux ð stefanrupp đ de>
+# Contributor (Arch): Ignas Anikevicius <anikevicius ð gmail đ com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=tp_smapi
pkgname=tp_smapi-libre
diff --git a/libre/unar/PKGBUILD b/libre/unar/PKGBUILD
index 5ad3e3814..2c8dbdb16 100644
--- a/libre/unar/PKGBUILD
+++ b/libre/unar/PKGBUILD
@@ -1,6 +1,6 @@
-# Maintainer: Cedric Girard <girard.cedric@gmail.com>
-# Contributor: N30N <archlinux@alunamation.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Cedric Girard <girard.cedric@gmail.com>
+# Contributor (Arch): N30N <archlinux@alunamation.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
pkgname=unar
pkgver=1.8.1
diff --git a/libre/unzip-libre/PKGBUILD b/libre/unzip-libre/PKGBUILD
index 2c4ce4150..6b3cc76b0 100644
--- a/libre/unzip-libre/PKGBUILD
+++ b/libre/unzip-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 150452 2012-02-17 23:21:23Z allan $
-# Maintainer:
-# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
-# Contributor: Robson Peixoto
+# Maintainer (Arch):
+# Contributor (Arch): Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor (Arch): Robson Peixoto
_pkgname=unzip
pkgname=unzip-libre
diff --git a/libre/usermin/PKGBUILD b/libre/usermin/PKGBUILD
index 578853285..3eaee9fc1 100644
--- a/libre/usermin/PKGBUILD
+++ b/libre/usermin/PKGBUILD
@@ -1,5 +1,5 @@
# $Id: PKGBUILD 208134 2014-03-18 07:25:18Z tpowa $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer (Arch): Tobias Powalowski <tpowa@archlinux.org>
pkgname=usermin
pkgver=1.590
pkgrel=1
diff --git a/libre/vhba-module-libre/PKGBUILD b/libre/vhba-module-libre/PKGBUILD
index 49d31f45e..e94daedc2 100644
--- a/libre/vhba-module-libre/PKGBUILD
+++ b/libre/vhba-module-libre/PKGBUILD
@@ -1,8 +1,8 @@
# $Id: PKGBUILD 108714 2014-04-01 22:36:58Z thomas $
-# Maintainer: Ray Rashif <schiv@archlinux.org>
-# Contributor: Mateusz Herych <heniekk@gmail.com>
-# Contributor: Charles Lindsay <charles@chaoslizard.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Ray Rashif <schiv@archlinux.org>
+# Contributor (Arch): Mateusz Herych <heniekk@gmail.com>
+# Contributor (Arch): Charles Lindsay <charles@chaoslizard.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=vhba-module
pkgname=vhba-module-libre
diff --git a/libre/vim-colorsamplerpack-libre/PKGBUILD b/libre/vim-colorsamplerpack-libre/PKGBUILD
index 6d7f800a0..0e9e6e2c8 100644
--- a/libre/vim-colorsamplerpack-libre/PKGBUILD
+++ b/libre/vim-colorsamplerpack-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 95528 2013-08-13 11:23:39Z svenstaro $
-# Contributor: Aaron Griffin <aaron@archlinux.org>
-# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Contributor (Arch): Aaron Griffin <aaron@archlinux.org>
+# Maintainer (Arch): Sven-Hendrik Haase <sh@lutzhaase.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=vim-colorsamplerpack
pkgname=vim-colorsamplerpack-libre
@@ -12,9 +12,9 @@ pkgdesc="Different colorschemes for vim, without nonfree colorschemes"
arch=('any')
url="http://www.vim.org/scripts/script.php?script_id=625"
license=('GPL2' 'GPL3' 'custom')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
depends=('vim')
makedepends=('unzip')
groups=('vim-plugins')
diff --git a/libre/vim-runtime/PKGBUILD b/libre/vim-runtime/PKGBUILD
index 797c5c838..3f5537820 100644
--- a/libre/vim-runtime/PKGBUILD
+++ b/libre/vim-runtime/PKGBUILD
@@ -1,15 +1,15 @@
-# Maintainer: Thomas Dziedzic <gostrc@gmail.com>
-# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
-# Contributor: tobias [ tobias at archlinux org ]
-# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer (Arch): Thomas Dziedzic <gostrc@gmail.com>
+# Contributor (Arch): Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor (Arch): tobias [ tobias at archlinux org ]
+# Contributor (Arch): Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Márcio Silva <coadde@parabola.nu>
pkgbase=vim
pkgname=vim-runtime
_topver=7.4
-_patchlevel=214
-__hgrev=d2ef98a43b5d
+_patchlevel=274
+__hgrev=075eea398fff
_versiondir="vim${_topver//./}"
pkgver=${_topver}.${_patchlevel}
pkgrel=1
@@ -21,7 +21,7 @@ source=("ftp://ftp.archlinux.org/other/vim/vim-${pkgver}.tar.xz"
"ftp://ftp.archlinux.org/other/vim/vim-${pkgver}.tar.xz.sig"
'vimrc'
'parabola.vim')
-md5sums=('5ec7d7f84955dacfef88e52ebc79b267'
+md5sums=('98bf9f8d57b95715d08fcc42beae8761'
'SKIP'
'27820c2bdc34624674c561ae6476bc6a'
'a8c21928eefd766e211f987879a9199c')
diff --git a/libre/webmin/PKGBUILD b/libre/webmin/PKGBUILD
index 3cb9e787c..bc9307bcc 100644
--- a/libre/webmin/PKGBUILD
+++ b/libre/webmin/PKGBUILD
@@ -1,5 +1,5 @@
# $Id: PKGBUILD 208132 2014-03-18 07:22:29Z tpowa $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer (Arch): Tobias Powalowski <tpowa@archlinux.org>
pkgname=webmin
pkgver=1.680
pkgrel=1
diff --git a/libre/wings3d-libre/PKGBUILD b/libre/wings3d-libre/PKGBUILD
index 1f750dfc4..5970c5bcb 100644
--- a/libre/wings3d-libre/PKGBUILD
+++ b/libre/wings3d-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 95697 2013-08-15 18:20:27Z arodseth $
-# Maintainer: Alexander Rødseth <rodseth@gmail.com>
-# Contributor: kappa <kappacurve@gmail.com>
-# Maintainer (Parabola): Márcio Silva <coadde@parabola.nu>
+# Maintainer (Arch): Alexander Rødseth <rodseth@gmail.com>
+# Contributor (Arch): kappa <kappacurve@gmail.com>
+# Maintainer: Márcio Silva <coadde@parabola.nu>
_name=wings
_pkgname=${_name}3d
diff --git a/libre/xarchiver-libre/PKGBUILD b/libre/xarchiver-libre/PKGBUILD
index a718b8252..a6965af8d 100644
--- a/libre/xarchiver-libre/PKGBUILD
+++ b/libre/xarchiver-libre/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 105928 2014-02-19 11:27:15Z bgyorgy $
-# Maintainer: Balló György <ballogyor+arch at gmail dot com>
-# Contributor: Alexander Fehr <pizzapunk gmail com>
-# Contributor: Andrew Simmons <andrew.simmons@gmail.com>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# $Id: PKGBUILD 111012 2014-05-12 01:13:40Z bgyorgy $
+# Maintainer (Arch): Balló György <ballogyor+arch at gmail dot com>
+# Contributor (Arch): Alexander Fehr <pizzapunk gmail com>
+# Contributor (Arch): Andrew Simmons <andrew.simmons@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=xarchiver
pkgname=xarchiver-libre
pkgver=0.5.3
-pkgrel=1
-pkgdesc="GTK+ frontend to various command line archivers, with unar support"
+pkgrel=4.1
+pkgdesc="GTK+ frontend to various command line archivers, without nonfree unrar support"
arch=('i686' 'x86_64' 'mips64el')
url="http://xarchiver.sourceforge.net/"
license=('GPL')
@@ -22,21 +22,20 @@ optdepends=('zip: ZIP support'
'p7zip: 7z support'
'arj: ARJ support'
'lzop: LZOP support'
- 'cpio: RPM support'
- 'unar: RAR support')
+ 'cpio: RPM support')
install=xarchiver.install
source=(http://downloads.sourceforge.net/xarchiver/xarchiver-$pkgver.tar.bz2
xarchiver-0.5.3-fix-rpm-support.patch
xarchiver-0.5.3-fix-double-escaping.patch
xarchiver-0.5.3-fix-password-protected.patch
xarchiver-0.5.3-add-mime-types.patch
- xarchiver-0.5.3-add-unar-support.patch)
+ xarchiver-0.5.3-remove-nonfree-unrar-support.patch)
md5sums=('fd390bbd2df76a5f8a007bdeae82d4aa'
'812b93339f5e3332621f3c5abebfe277'
'6178d7ab679b761469c880a8db991907'
'35ab96d98521a0a36f3e9e9ec0969107'
- 'f9119f5290caa195a56b7d3c63d9137d'
- '5f0b21efd0159d41f207e664b72210b8')
+ '0cee887b3c989ba2cdce9154813843fb'
+ 'cf1788c180145adc3bc5d3572f8a883b')
prepare() {
cd $_pkgname-$pkgver
@@ -53,8 +52,16 @@ prepare() {
# Add more MIME types in the desktop file
patch -Np1 -i ../xarchiver-0.5.3-add-mime-types.patch
- # Add unar support
- patch -Np1 -i ../xarchiver-0.5.3-add-unar-support.patch
+ # Remove nonfree unRAR support
+ patch -Np1 -i ../xarchiver-0.5.3-remove-nonfree-unrar-support.patch
+ rm -v src/rar.{c,h}
+
+ # Fix po files
+ cd po
+ for file in *.po; do
+ intltool-update ${file%.*}
+ msgattrib --no-obsolete -o $file $file
+ done
}
build() {
diff --git a/libre/xarchiver-libre/xarchiver-0.5.3-add-mime-types.patch b/libre/xarchiver-libre/xarchiver-0.5.3-add-mime-types.patch
index 4552e5b96..ec427b99a 100644
--- a/libre/xarchiver-libre/xarchiver-0.5.3-add-mime-types.patch
+++ b/libre/xarchiver-libre/xarchiver-0.5.3-add-mime-types.patch
@@ -1,9 +1,17 @@
-diff -Naur xarchiver-0.5.3.orig/xarchiver.desktop.in xarchiver-0.5.2/xarchiver.desktop.in
---- xarchiver-0.5.3.orig/xarchiver.desktop.in 2014-01-24 04:05:33.438561000 +0100
-+++ xarchiver-0.5.3/xarchiver.desktop.in 2014-01-24 04:44:00.625750394 +0100
-@@ -11,4 +11,4 @@
+diff -Naur xarchiver-0.5.3.orig/xarchiver.desktop.in xarchiver-0.5.3/xarchiver.desktop.in
+--- xarchiver-0.5.3.orig/xarchiver.desktop.in 2014-05-12 01:08:12.159131913 +0000
++++ xarchiver-0.5.3/xarchiver.desktop.in 2014-05-12 01:09:02.585526393 +0000
+@@ -4,11 +4,11 @@
+ _Name=Xarchiver
+ _Comment=A GTK+2 only archive manager
+ _GenericName=Archive manager
+-Exec=xarchiver
++Exec=xarchiver %f
+ Icon=xarchiver
+ Terminal=false
+ Type=Application
X-MultipleArgs=false
Categories=GTK;Archiving;Utility;
StartupNotify=true
-MimeType=application/x-arj;application/arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-gzip;application/x-rar;application/x-rar-compressed;application/x-tar;application/x-zip;application/x-zip-compressed;application/zip;multipart/x-zip;application/x-7z-compressed;application/x-compressed-tar;application/x-bzip2;application/x-bzip2-compressed-tar;
-+MimeType=application/x-arj;application/arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-gzip;application/x-rar;application/x-rar-compressed;application/x-tar;application/x-zip;application/x-zip-compressed;application/zip;application/x-7z-compressed;application/x-compressed-tar;application/x-bzip2;application/x-bzip2-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-xz;application/x-xz-compressed-tar;application/x-debian-package;application/x-rpm;
++MimeType=application/x-arj;application/arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-gzip;application/x-rar;application/x-rar-compressed;application/x-tar;application/x-zip;application/x-zip-compressed;application/zip;application/x-7z-compressed;application/x-compressed-tar;application/x-bzip2;application/x-bzip2-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-xz;application/x-xz-compressed-tar;application/x-deb;application/x-rpm;
diff --git a/libre/xarchiver-libre/xarchiver-0.5.3-add-unar-support.patch b/libre/xarchiver-libre/xarchiver-0.5.3-add-unar-support.patch
deleted file mode 100644
index 0b54cacc1..000000000
--- a/libre/xarchiver-libre/xarchiver-0.5.3-add-unar-support.patch
+++ /dev/null
@@ -1,545 +0,0 @@
-diff -Nur xarchiver-0.5.3.orig/doc/html/ch03s03.html xarchiver-0.5.3/doc/html/ch03s03.html
---- xarchiver-0.5.3.orig/doc/html/ch03s03.html 2008-11-03 04:49:49.000000000 -0200
-+++ xarchiver-0.5.3/doc/html/ch03s03.html 2014-02-20 04:35:34.820373529 -0200
-@@ -1,7 +1,7 @@
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>General</title><link rel="stylesheet" href="xarchiver.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.71.0" /><link rel="start" href="index.html" title="Xarchiver 0.5" /><link rel="up" href="ch03.html" title="Chapter 3. Usage" /><link rel="prev" href="ch03s02.html" title="Command line options" /><link rel="next" href="ch03s04.html" title="Xarchiver menu" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">General</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s02.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Usage</th><td width="20%" align="right"> <a accesskey="n" href="ch03s04.html">Next</a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="general"></a>General</h2></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="general_startup"></a>Startup</h3></div></div></div><p>
-- At startup, Xarchiver detects the available installed archivers (tar,rar,zip etc) and the script <i>xdg-open</i> for handling different file types. Since Xarchiver is a frontend (a graphic user interface to the cmd-line executables) it can't create archives whose archiver is not available. For instance if you have the free edition of rar, unrar, Xarchiver can't create rar archives since unrar allows rar archives to be opened, tested and extracted but not to be created.
-+ At startup, Xarchiver detects the available installed archivers (tar,rar,zip etc) and the script <i>xdg-open</i> for handling different file types. Since Xarchiver is a frontend (a graphic user interface to the cmd-line executables) it can't create archives whose archiver is not available. For instance if you have the free as in freedom alternative of rar, unar, Xarchiver can't create rar archives since unar allows rar archives to be opened, tested and extracted but not to be created.
- </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="how_it_works"></a>How it works</h3></div></div></div><p>
- Xarchiver will run in the background the cmd-line executable of the archiver with the archiver's proper switches to perform the selected operation. If something goes wrong Xarchiver reports the full output of the archiver executable in the command line output window. From the release 0.5 the files in the archive can be opened within Xarchiver. The script <i>xdg-open</i> will detect the file type and run the proper application to handle it. If you don't have such script installed in your system (it's found in the xdg-utils package) Xarchiver will recognize HTML, txt and images files only. The Preferences dialog will notify this to you when you click the Advanced section inside it.
- </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="dnd"></a>Drag and Drop</h3></div></div></div><p>
-diff -Nur xarchiver-0.5.3.orig/doc/xarchiver.docbook xarchiver-0.5.3/doc/xarchiver.docbook
---- xarchiver-0.5.3.orig/doc/xarchiver.docbook 2007-08-22 07:49:19.000000000 -0300
-+++ xarchiver-0.5.3/doc/xarchiver.docbook 2014-02-20 04:35:34.820373529 -0200
-@@ -204,7 +204,7 @@
- <section id="general_startup">
- <title>Startup</title>
- <para>
-- At startup, &app; detects the available installed archivers (tar,rar,zip etc). Since Xarchiver is a frontend (a graphic user interface to the cmd-line executables) it can't create archives whose archiver is not available. For instance if you have the free edition of rar, unrar, Xarchiver can't create rar archives since unrar allows rar archives to be opened, tested and extracted but not to be created.
-+ At startup, &app; detects the available installed archivers (tar,rar,zip etc). Since Xarchiver is a frontend (a graphic user interface to the cmd-line executables) it can't create archives whose archiver is not available. For instance if you have the free as in freedom alternative of rar, unar, Xarchiver can't create rar archives since unar allows rar archives to be opened and extracted but not to be created.
- </para>
- </section>
- <section id="how_it_works">
-diff -Nur xarchiver-0.5.3.orig/src/interface.c xarchiver-0.5.3/src/interface.c
---- xarchiver-0.5.3.orig/src/interface.c 2014-02-09 13:26:24.000000000 -0200
-+++ xarchiver-0.5.3/src/interface.c 2014-02-20 04:58:54.470139199 -0200
-@@ -45,7 +45,7 @@
- { "text/uri-list",0,0 },
- };
-
--extern gboolean unrar,batch_mode;
-+extern gboolean unar,batch_mode;
-
- static gboolean xa_progress_dialog_delete_event (GtkWidget *caller,GdkEvent *event,GPid pid);
- static void xa_progress_dialog_stop_action (GtkWidget *widget,GPid pid);
-@@ -623,7 +623,7 @@
- {
- gtk_widget_show(selected_frame);
- gtk_widget_set_sensitive(deselect_all,TRUE);
-- if ((archive[id]->type == XARCHIVETYPE_RAR || archive[id]->type == XARCHIVETYPE_RAR5) && unrar)
-+ if ((archive[id]->type == XARCHIVETYPE_RAR) && unar)
- {
- gtk_widget_set_sensitive (delete_menu,FALSE);
- gtk_widget_set_sensitive (rename_menu,FALSE);
-diff -Nur xarchiver-0.5.3.orig/src/main.c xarchiver-0.5.3/src/main.c
---- xarchiver-0.5.3.orig/src/main.c 2014-02-20 03:24:20.406301116 -0200
-+++ xarchiver-0.5.3/src/main.c 2014-02-20 04:43:27.247666292 -0200
-@@ -33,7 +33,7 @@
- gchar *add_files;
- gboolean error_output, file_to_open, ask_and_extract, ask_and_add, multi_extract;
- gboolean batch_mode = FALSE;
--gboolean unrar = FALSE;
-+gboolean unar = FALSE;
- gboolean sevenzr = FALSE, sevenza = FALSE, xdg_open = FALSE;
- static gboolean show_version = FALSE;
- int response;
-@@ -330,7 +330,6 @@
- delete[XARCHIVETYPE_GZIP] = 0;
- delete[XARCHIVETYPE_LZMA] = 0;
- delete[XARCHIVETYPE_XZ] = 0;
-- delete[XARCHIVETYPE_RAR] = delete[XARCHIVETYPE_RAR5] = &xa_rar_delete;
- delete[XARCHIVETYPE_RPM] = 0;
- delete[XARCHIVETYPE_TAR] = delete[XARCHIVETYPE_TAR_BZ2] = delete[XARCHIVETYPE_TAR_GZ] = delete[XARCHIVETYPE_TAR_LZMA] = delete[XARCHIVETYPE_TAR_XZ] = delete[XARCHIVETYPE_TAR_LZOP] = &xa_tar_delete;
- delete[XARCHIVETYPE_ZIP] = &xa_zip_delete;
-@@ -343,7 +342,6 @@
- add[XARCHIVETYPE_ARJ] = &xa_arj_add;
- add[XARCHIVETYPE_DEB] = 0;
- add[XARCHIVETYPE_BZIP2] = add[XARCHIVETYPE_GZIP] = add[XARCHIVETYPE_LZMA] = add[XARCHIVETYPE_XZ] = add[XARCHIVETYPE_LZOP] = &xa_tar_add;
-- add[XARCHIVETYPE_RAR] = add[XARCHIVETYPE_RAR5] = &xa_rar_add;
- add[XARCHIVETYPE_RPM] = 0;
- add[XARCHIVETYPE_TAR] = add[XARCHIVETYPE_TAR_BZ2] = add[XARCHIVETYPE_TAR_GZ] = add[XARCHIVETYPE_TAR_LZMA] = add[XARCHIVETYPE_TAR_XZ] = add[XARCHIVETYPE_TAR_LZOP] = &xa_tar_add;
- add[XARCHIVETYPE_ZIP] = &xa_zip_add;
-@@ -364,7 +362,6 @@
- test[XARCHIVETYPE_7ZIP] = &xa_7zip_test;
- test[XARCHIVETYPE_ARJ] = &xa_arj_test;
- test[XARCHIVETYPE_DEB] = test[XARCHIVETYPE_BZIP2] = test[XARCHIVETYPE_GZIP] = test[XARCHIVETYPE_LZMA] = test[XARCHIVETYPE_XZ] = test[XARCHIVETYPE_LZOP] = &xa_tar_test;
-- test[XARCHIVETYPE_RAR] = test[XARCHIVETYPE_RAR5] = &xa_rar_test;
- test[XARCHIVETYPE_RPM] = 0;
- test[XARCHIVETYPE_TAR] = test[XARCHIVETYPE_TAR_BZ2] = test[XARCHIVETYPE_TAR_GZ] = test[XARCHIVETYPE_TAR_LZMA] = test[XARCHIVETYPE_TAR_XZ] = test[XARCHIVETYPE_TAR_LZOP] = &xa_tar_test;
- test[XARCHIVETYPE_ZIP] = &xa_zip_test;
-@@ -435,38 +432,14 @@
- //ArchiveSuffix = g_list_append(ArchiveSuffix, "");
- }
-
-- absolute_path = g_find_program_in_path ("rar");
-+ absolute_path = g_find_program_in_path ("unar");
- if ( absolute_path )
- {
-+ unar = TRUE;
- ArchiveType = g_list_append(ArchiveType, "rar");
- ArchiveSuffix = g_list_append(ArchiveSuffix, "*.rar");
-- // Is RAR v5 ?
-- xa_rar_checkversion (absolute_path);
-- if (rar_version == 5)
-- {
-- ArchiveType = g_list_append(ArchiveType, "rar5");
-- ArchiveSuffix = g_list_append(ArchiveSuffix, "*.rar5");
-- }
- g_free (absolute_path);
- }
-- else
-- {
-- absolute_path = g_find_program_in_path("unrar");
-- if ( absolute_path )
-- {
-- unrar = TRUE;
-- ArchiveType = g_list_append(ArchiveType, "rar");
-- ArchiveSuffix = g_list_append(ArchiveSuffix, "*.rar");
-- // Is RAR v5 ?
-- xa_rar_checkversion (absolute_path);
-- if (rar_version == 5)
-- {
-- ArchiveType = g_list_append(ArchiveType, "rar5");
-- ArchiveSuffix = g_list_append(ArchiveSuffix, "*.rar5");
-- }
-- g_free (absolute_path);
-- }
-- }
-
- absolute_path = g_find_program_in_path("cpio");
- if ( absolute_path )
-diff -Nur xarchiver-0.5.3.orig/src/new_dialog.c xarchiver-0.5.3/src/new_dialog.c
---- xarchiver-0.5.3.orig/src/new_dialog.c 2014-02-09 13:26:24.000000000 -0200
-+++ xarchiver-0.5.3/src/new_dialog.c 2014-02-20 05:13:00.058263839 -0200
-@@ -24,7 +24,7 @@
- #include "string_utils.h"
- #include "main.h"
-
--extern gboolean unrar;
-+extern gboolean unar;
- extern Prefs_dialog_data *prefs_window;
- gchar *current_new_directory = NULL;
- gint new_combo_box = -1;
-@@ -101,7 +101,7 @@
-
- while (Name)
- {
-- if (!(strncmp(Name->data, "rar", 3) == 0 && unrar))
-+ if (!(strncmp(Name->data, "rar", 3) == 0 && unar))
- gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box),Name->data);
- Name = g_list_next (Name);
- }
-diff -Nur xarchiver-0.5.3.orig/src/pref_dialog.c xarchiver-0.5.3/src/pref_dialog.c
---- xarchiver-0.5.3.orig/src/pref_dialog.c 2014-02-09 13:26:24.000000000 -0200
-+++ xarchiver-0.5.3/src/pref_dialog.c 2014-02-20 04:44:40.225947167 -0200
-@@ -23,7 +23,7 @@
- #include "main.h"
- #include "support.h"
-
--extern gboolean unrar;
-+extern gboolean unar;
- extern gboolean xdg_open;
- extern Extract_dialog_data *extract_window;
- extern Add_dialog_data *add_window;
-@@ -104,7 +104,7 @@
- {
- if (strcmp(archive_type->data, "tgz") == 0 ||
- strcmp(archive_type->data, "rpm") == 0 ||
-- (strncmp(archive_type->data, "rar", 3) == 0 && unrar) )
-+ (strncmp(archive_type->data, "rar", 3) == 0 && unar) )
- goto next;
- else
- gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_format),archive_type->data );
-diff -Nur xarchiver-0.5.3.orig/src/rar.c xarchiver-0.5.3/src/rar.c
---- xarchiver-0.5.3.orig/src/rar.c 2014-02-09 13:26:24.000000000 -0200
-+++ xarchiver-0.5.3/src/rar.c 2014-02-20 05:11:19.611884642 -0200
-@@ -20,7 +20,7 @@
- #include "rar.h"
- #include <unistd.h>
-
--extern gboolean unrar;
-+extern gboolean unar;
- extern void xa_reload_archive_content(XArchive *archive);
- extern void xa_create_liststore ( XArchive *archive, gchar *columns_names[]);
- extern int rar_version;
-@@ -36,44 +36,15 @@
- gchar *command = NULL;
- gchar *rar = NULL;
- jump_header = read_filename = last_line = encrypted = FALSE;
--
-- if (unrar)
-- {
-- rar = "unrar";
-- archive->can_add = archive->has_sfx = FALSE;
-- }
-- else
-- {
-- rar = "rar";
-- archive->can_add = archive->has_sfx = TRUE;
-- }
-+ rar = "unar";
-+ archive->can_add = archive->has_sfx = FALSE;
-
-- command = g_strconcat ( rar," v " , archive->escaped_path, NULL );
-+ command = g_strconcat ( rar, archive->escaped_path, NULL );
- archive->has_sfx = archive->has_properties = archive->can_extract = archive->has_test = TRUE;
- archive->dummy_size = 0;
- archive->nr_of_files = 0;
-
-- if (archive->type == XARCHIVETYPE_RAR5)
-- archive->format = "RAR5";
-- else
-- archive->format = "RAR";
--
--
-- if (rar_version == 5)
-- {
-- archive->nc = 8;
-- archive->parse_output = xa_get_rar5_line_content;
-- xa_spawn_async_process (archive,command);
-- g_free ( command );
-- if ( archive->child_pid == 0 )
-- return;
-- archive->column_types = g_malloc0(sizeof(types5));
-- for (i = 0; i < archive->nc+2; i++)
-- archive->column_types[i] = types5[i];
--
-- xa_create_liststore (archive, names5);
-- }
-- else
-+ archive->format = "RAR";
- {
- archive->nc = 10;
- archive->parse_output = xa_get_rar_line_content;
-@@ -247,32 +218,6 @@
- }
- }
-
--void xa_rar_delete (XArchive *archive,GSList *names)
--{
-- gchar *command,*e_filename = NULL;
-- GSList *list = NULL,*_names;
-- GString *files = g_string_new("");
--
-- _names = names;
-- while (_names)
-- {
-- e_filename = xa_escape_filename((gchar*)_names->data,"$'`\"\\!?* ()[]&|:;<>#");
-- g_string_prepend (files,e_filename);
-- g_string_prepend_c (files,' ');
-- _names = _names->next;
-- }
-- g_slist_foreach(names,(GFunc)g_free,NULL);
-- g_slist_free(names);
--
-- command = g_strconcat ("rar d ",archive->escaped_path," ",files->str,NULL);
-- g_string_free(files,TRUE);
-- list = g_slist_append(list,command);
--
-- xa_run_command (archive,list);
-- if (archive->status == XA_ARCHIVESTATUS_DELETE)
-- xa_reload_archive_content(archive);
--}
--
- gboolean xa_rar_extract(XArchive *archive,GSList *files)
- {
- gchar *rar, *command, *e_filename = NULL;
-@@ -281,10 +226,7 @@
- gboolean result = FALSE;
-
- _files = files;
-- if (unrar)
-- rar = "unrar";
-- else
-- rar = "rar";
-+ rar = "unar";
-
- while (_files)
- {
-@@ -315,230 +257,3 @@
- result = xa_run_command (archive,list);
- return result;
- }
--
--void xa_rar_test (XArchive *archive)
--{
-- gchar *rar = NULL;
-- gchar *command = NULL;
-- GSList *list = NULL;
--
-- if (unrar)
-- rar = "unrar";
-- else
-- rar = "rar";
--
-- archive->status = XA_ARCHIVESTATUS_TEST;
-- if (archive->passwd != NULL)
-- command = g_strconcat (rar," t -idp -p" , archive->passwd ," " , archive->escaped_path, NULL);
-- else
-- command = g_strconcat (rar," t -idp " , archive->escaped_path, NULL);
--
-- list = g_slist_append(list,command);
-- xa_run_command (archive,list);
-- }
--
--void xa_get_rar5_line_content (gchar *line, gpointer data)
--{
-- XArchive *archive = data;
-- XEntry *entry;
-- gpointer item[7];
-- unsigned short int i = 0;
-- unsigned int linesize,n,a;
-- gboolean dir = FALSE;
-- static gchar *filename;
--
-- if (last_line)
-- return;
--
-- if (jump_header == FALSE)
-- {
-- if (strncmp(line,"Comment:",8) == 0)
-- {
-- jump_comment = archive->has_comment = TRUE;
-- archive->comment = g_string_new("");
-- archive->comment = g_string_append(archive->comment,&line[9]);
-- return;
-- }
-- if (jump_comment == TRUE)
-- {
-- if (strncmp(line,"Name",4) != 0)
-- { archive->comment = g_string_append(archive->comment,line);
-- return;
-- }
-- jump_comment = FALSE;
-- }
-- if (line[0] == '-')
-- {
-- jump_header = TRUE;
-- return;
-- }
-- return;
-- }
--
-- linesize = strlen(line);
-- line[linesize - 1] = '\0';
--
-- if(line[0] == '*')
-- {
-- archive->has_passwd = TRUE;
-- encrypted = TRUE;
-- }
-- else if (line[0] == '-')
-- {
-- last_line = TRUE;
-- return;
-- }
--
-- archive->nr_of_files++;
--
-- /* Permissions */
-- for(n=0; n < linesize && line[n] == ' '; n++);
-- a = n;
-- for(; n < linesize && line[n] != ' '; n++);
-- line[n] = '\0';
-- if ((line+a)[0] == 'd')
-- dir = TRUE;
-- item[5] = line + a;
-- n++;
--
-- /* Size */
-- for(; n < linesize && line[n] == ' '; n++);
-- a = n;
-- for(; n < linesize && line[n] != ' '; n++);
-- line[n]='\0';
-- item[i] = line + a;
-- archive->dummy_size += g_ascii_strtoull(item[i],NULL,0);
-- i++;
-- n++;
--
-- /* Compressed */
-- for(; n < linesize && line[n] == ' '; n++);
-- a = n;
-- for(; n < linesize && line[n] != ' '; n++);
-- line[n]='\0';
-- item[i] = line + a;
-- i++;
-- n++;
--
-- /* Ratio */
-- for(; n < linesize && line[n] == ' '; n++);
-- a = n;
-- for(; n < linesize && line[n] != ' '; n++);
-- line[n] = '\0';
-- item[i] = line + a;
-- i++;
-- n++;
--
-- /* Date */
-- for(; n < linesize && line[n] == ' '; n++);
-- a = n;
-- for(; n < linesize && line[n] != ' '; n++);
-- line[n] = '\0';
-- item[i] = line + a;
-- i++;
-- n++;
--
-- /* Time */
-- for(; n < linesize && line[n] == ' '; n++);
-- a = n;
-- for(; n < linesize && line[n] != ' '; n++);
-- line[n] = '\0';
-- item[i] = line + a;
-- i+=2;
-- n++;
--
-- /* CRC */
-- for(; n < linesize && line[n] == ' '; n++);
-- a = n;
-- for(; n < linesize && line[n] != ' '; n++);
-- line[n] = '\0';
-- item[i] = line + a;
-- i++;
-- n++;
--
-- /* fileName */
-- for(n=64; n < linesize && line[n] == ' '; n++);
-- a = n;
-- for(; n < linesize && line[n] != ' ' && line[n] != '\n'; n++);
-- line[n]='\0';
-- filename = g_strdup(line + a);
--
-- /* Work around for rar which doesn't
-- * output / with directories */
-- if (dir)
-- {
-- gchar *filename_with_slash = g_strconcat (filename,"/",NULL);
-- g_free (filename);
-- filename = filename_with_slash;
-- }
--
-- entry = xa_set_archive_entries_for_each_row (archive,filename,item);
-- if (entry != NULL)
-- entry->is_encrypted = encrypted;
-- g_free(filename);
-- encrypted = FALSE;
--}
--
--void xa_rar_add (XArchive *archive,GString *files,gchar *compression_string)
--{
-- GSList *list = NULL;
-- gchar *command, *rar_version = NULL;
--
--
-- if (archive->location_entry_path != NULL)
-- archive->working_dir = g_strdup(archive->tmp);
--
-- if (archive->type == XARCHIVETYPE_RAR5)
-- rar_version = "5";
-- else
-- rar_version = "4";
--
-- if (compression_string == NULL)
-- compression_string = "3";
--
-- if (archive->passwd != NULL)
-- command = g_strconcat ( "rar a -ma", rar_version, " ",
-- archive->update ? "-u " : "",
-- archive->freshen ? "-f " : "",
-- archive->solid_archive ? "-s " : "",
-- archive->remove_files ? "-df " : "",
-- "-p" , archive->passwd,
-- " -idp ",
-- "-m",compression_string," ",
-- archive->escaped_path,
-- files->str,NULL);
-- else
-- command = g_strconcat ( "rar a -ma", rar_version, " ",
-- archive->update ? "-u " : "",
-- archive->freshen ? "-f " : "",
-- archive->solid_archive ? "-s " : " ",
-- archive->remove_files ? "-df " : " ",
-- "-idp ",
-- "-m",compression_string," ",
-- archive->escaped_path,
-- files->str,NULL);
--
-- g_string_free(files,TRUE);
-- list = g_slist_append(list,command);
--
-- xa_run_command (archive,list);
-- xa_reload_archive_content(archive);
--}
--
--int xa_rar_checkversion (gchar *absolute_path)
--{
-- //gchar *command;
-- gchar *output = NULL;
--
-- rar_version = 4; // Default version
--
-- //command = g_strconcat (absolute_path, "" , NULL);
-- g_spawn_command_line_sync (absolute_path, &output, NULL, NULL, NULL);
--
-- if (g_ascii_strncasecmp ("\nRAR 5", output, 6) == 0 || g_ascii_strncasecmp ("\nUNRAR 5", output, 8) == 0)
-- rar_version = 5;
--
-- g_free(output);
-- //g_free(command);
-- return rar_version;
--}
-diff -Nur xarchiver-0.5.3.orig/src/rar.h xarchiver-0.5.3/src/rar.h
---- xarchiver-0.5.3.orig/src/rar.h 2014-02-09 13:26:24.000000000 -0200
-+++ xarchiver-0.5.3/src/rar.h 2014-02-20 04:35:34.823706631 -0200
-@@ -26,10 +26,7 @@
- #include "support.h"
- #include "archive.h"
- gboolean jump_header,jump_comment,read_filename, last_line, encrypted;
--void xa_rar_delete (XArchive *,GSList *);
--void xa_rar_add (XArchive *,GString *,gchar *);
- gboolean xa_rar_extract(XArchive *,GSList *);
--void xa_rar_test (XArchive *);
- void xa_get_rar_line_content (gchar *line, gpointer data);
- void xa_open_rar ( XArchive *archive );
- #endif
-diff -Nur xarchiver-0.5.3.orig/src/window.c xarchiver-0.5.3/src/window.c
---- xarchiver-0.5.3.orig/src/window.c 2014-02-20 03:24:30.795581843 -0200
-+++ xarchiver-0.5.3/src/window.c 2014-02-20 05:08:49.982243849 -0200
-@@ -26,7 +26,7 @@
-
- extern GList *ArchiveType;
- extern GList *ArchiveSuffix;
--extern gboolean unrar;
-+extern gboolean unar;
- extern gboolean xdg_open;
- extern Prefs_dialog_data *prefs_window;
- extern Extract_dialog_data *extract_window;
-@@ -1584,7 +1584,7 @@
- gtk_widget_show(selected_frame);
- gtk_widget_set_sensitive(deselect_all,TRUE);
- }
-- if ( (archive->type == XARCHIVETYPE_RAR && unrar) || (archive->type == XARCHIVETYPE_RAR5 && unrar) || archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_XZ || archive->type == XARCHIVETYPE_LZOP)
-+ if ( (archive->type == XARCHIVETYPE_RAR && unar) || archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_XZ || archive->type == XARCHIVETYPE_LZOP)
- {
- gtk_widget_set_sensitive (delete_menu,FALSE);
- gtk_widget_set_sensitive (rename_menu,FALSE);
-@@ -1801,7 +1801,7 @@
- else
- idx = xa_find_archive_index (current_page);
-
-- if ((archive[idx]->type == XARCHIVETYPE_RAR || archive[idx]->type == XARCHIVETYPE_RAR5) && unrar)
-+ if ((archive[idx]->type == XARCHIVETYPE_RAR) && unar)
- {
- response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't perform this action:"),_("You have to install rar package!"));
- return;
diff --git a/libre/xarchiver-libre/xarchiver-0.5.3-remove-nonfree-unrar-support.patch b/libre/xarchiver-libre/xarchiver-0.5.3-remove-nonfree-unrar-support.patch
new file mode 100644
index 000000000..e8ba41d59
--- /dev/null
+++ b/libre/xarchiver-libre/xarchiver-0.5.3-remove-nonfree-unrar-support.patch
@@ -0,0 +1,525 @@
+diff -Nur xarchiver-0.5.3.orig/doc/html/ch01.html xarchiver-0.5.3/doc/html/ch01.html
+--- xarchiver-0.5.3.orig/doc/html/ch01.html 2008-11-10 06:05:07.000000000 -0200
++++ xarchiver-0.5.3/doc/html/ch01.html 2014-05-05 16:32:35.166604039 -0300
+@@ -23,13 +23,13 @@
+ <li>Archives are detected by their magic header and not by the extension except for .tar.bz2 and .tar.gz</li>
+ <li>Drag and drop from and to Xarchiver window</li>
+ <li>Progress window when using Xarchiver from the cmd-line or from a file-manager</li>
+- <li>ARJ, RAR and ZIP archive comment are supported</li>
++ <li>ARJ and ZIP archive comment are supported</li>
+ <li>Ability to convert the archive to self-extracting for those archive types which support it</li>
+- <li>Smart detection of arj, zip and rar password encrypted archives</li>
++ <li>Smart detection of arj and zip password encrypted archives</li>
+ <li>All the the output of the cmd-line archiver is displayed in the Xarchiver window</li>
+- <li>All common formats are supported: arj, bzip2, gzip, lha, lzma, 7z, rar, tar, tar.bz2, tar.gz, tar.lzma, tar.lzop, zip, deb and rpm packages (open and extract only)</li>
++ <li>All common formats are supported: arj, bzip2, gzip, lha, lzma, 7z, tar, tar.bz2, tar.gz, tar.lzma, tar.lzop, zip, deb and rpm packages (open and extract only)</li>
+ <li>Deb and Rpm packages are handled internally, their package managers are NOT required.</li>
+- <li>Zip, rar, arj and 7z password encrypted archives are fully supported (7z automatic password detection is not supported)</li>
++ <li>Zip, arj and 7z password encrypted archives are fully supported (7z automatic password detection is not supported)</li>
+ </ul></div><p></p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch01s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">
+ Xarchiver 0.5.2
+  </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Where to get it</td></tr></table></div></body></html>
+diff -Nur xarchiver-0.5.3.orig/doc/html/ch03s03.html xarchiver-0.5.3/doc/html/ch03s03.html
+--- xarchiver-0.5.3.orig/doc/html/ch03s03.html 2008-11-03 04:49:49.000000000 -0200
++++ xarchiver-0.5.3/doc/html/ch03s03.html 2014-05-05 16:25:59.026943013 -0300
+@@ -1,7 +1,7 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>General</title><link rel="stylesheet" href="xarchiver.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.71.0" /><link rel="start" href="index.html" title="Xarchiver 0.5" /><link rel="up" href="ch03.html" title="Chapter 3. Usage" /><link rel="prev" href="ch03s02.html" title="Command line options" /><link rel="next" href="ch03s04.html" title="Xarchiver menu" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">General</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s02.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Usage</th><td width="20%" align="right"> <a accesskey="n" href="ch03s04.html">Next</a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="general"></a>General</h2></div></div></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="general_startup"></a>Startup</h3></div></div></div><p>
+- At startup, Xarchiver detects the available installed archivers (tar,rar,zip etc) and the script <i>xdg-open</i> for handling different file types. Since Xarchiver is a frontend (a graphic user interface to the cmd-line executables) it can't create archives whose archiver is not available. For instance if you have the free edition of rar, unrar, Xarchiver can't create rar archives since unrar allows rar archives to be opened, tested and extracted but not to be created.
++ At startup, Xarchiver detects the available installed archivers (tar,zip etc) and the script <i>xdg-open</i> for handling different file types. Since Xarchiver is a frontend (a graphic user interface to the cmd-line executables) it can't create archives whose archiver is not available.
+ </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="how_it_works"></a>How it works</h3></div></div></div><p>
+ Xarchiver will run in the background the cmd-line executable of the archiver with the archiver's proper switches to perform the selected operation. If something goes wrong Xarchiver reports the full output of the archiver executable in the command line output window. From the release 0.5 the files in the archive can be opened within Xarchiver. The script <i>xdg-open</i> will detect the file type and run the proper application to handle it. If you don't have such script installed in your system (it's found in the xdg-utils package) Xarchiver will recognize HTML, txt and images files only. The Preferences dialog will notify this to you when you click the Advanced section inside it.
+ </p></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="dnd"></a>Drag and Drop</h3></div></div></div><p>
+diff -Nur xarchiver-0.5.3.orig/doc/html/ch04s02.html xarchiver-0.5.3/doc/html/ch04s02.html
+--- xarchiver-0.5.3.orig/doc/html/ch04s02.html 2007-08-23 07:27:40.000000000 -0300
++++ xarchiver-0.5.3/doc/html/ch04s02.html 2014-05-05 16:31:53.479628949 -0300
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>How can I create an archive with some files password protected and others not?</title><link rel="stylesheet" href="xarchiver.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.71.0" /><link rel="start" href="index.html" title="Xarchiver 0.5" /><link rel="up" href="ch04.html" title="Chapter 4. FAQ" /><link rel="prev" href="ch04.html" title="Chapter 4. FAQ" /><link rel="next" href="ch04s03.html" title="Why does Xarchiver emit this error message when handling tar archives?" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">How can I create an archive with some files password protected and others not?</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04.html">Prev</a> </td><th width="60%" align="center">Chapter 4. FAQ</th><td width="20%" align="right"> <a accesskey="n" href="ch04s03.html">Next</a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="second"></a>How can I create an archive with some files password protected and others not?</h2></div></div></div><p>First of all choose 'New' and select one of arj, 7zip, rar or zip archive formats and choose 'Add' from the Action menu. Do NOT check "Password" in the Add dialog. Add your files and then reopen the Add dialog again but this time check "Password" and
++<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>How can I create an archive with some files password protected and others not?</title><link rel="stylesheet" href="xarchiver.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.71.0" /><link rel="start" href="index.html" title="Xarchiver 0.5" /><link rel="up" href="ch04.html" title="Chapter 4. FAQ" /><link rel="prev" href="ch04.html" title="Chapter 4. FAQ" /><link rel="next" href="ch04s03.html" title="Why does Xarchiver emit this error message when handling tar archives?" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">How can I create an archive with some files password protected and others not?</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04.html">Prev</a> </td><th width="60%" align="center">Chapter 4. FAQ</th><td width="20%" align="right"> <a accesskey="n" href="ch04s03.html">Next</a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="second"></a>How can I create an archive with some files password protected and others not?</h2></div></div></div><p>First of all choose 'New' and select one of arj, 7zip or zip archive formats and choose 'Add' from the Action menu. Do NOT check "Password" in the Add dialog. Add your files and then reopen the Add dialog again but this time check "Password" and
+ enter your password. From now on all the files you add to the archive will be password protected.
+ </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch04.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch04s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 4. FAQ </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Why does Xarchiver emit this error message when handling tar archives?</td></tr></table></div></body></html>
+diff -Nur xarchiver-0.5.3.orig/doc/html/ch04s06.html xarchiver-0.5.3/doc/html/ch04s06.html
+--- xarchiver-0.5.3.orig/doc/html/ch04s06.html 2008-11-03 04:49:49.000000000 -0200
++++ xarchiver-0.5.3/doc/html/ch04s06.html 2014-05-05 16:33:00.806793156 -0300
+@@ -1,4 +1,4 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Why Xarchiver doesn't allow me to choose the archive self-extracting path as it happens with zip and 7z?</title><link rel="stylesheet" href="xarchiver.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.71.0" /><link rel="start" href="index.html" title="Xarchiver 0.5" /><link rel="up" href="ch04.html" title="Chapter 4. FAQ" /><link rel="prev" href="ch04s06.html" title="What is the meaning of this error message?" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Why Xarchiver doesn't allow me to choose the archive self-extracting path as it happens with zip and 7z?</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04s06.html">Prev</a> </td><th width="60%" align="center">Chapter 4. FAQ</th><td width="20%" align="right"> </td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="seventh"></a>Why Xarchiver doesn't allow me to choose the archive self-extracting path as it happens with zip and 7z?</h2></div></div></div><p>Because rar and arj executable do not allow to do so. Zip and 7z convertion to self-extracting is made by appending an sfx module to the archive so it's possible to choose a different path.
++<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Why Xarchiver doesn't allow me to choose the archive self-extracting path as it happens with zip and 7z?</title><link rel="stylesheet" href="xarchiver.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.71.0" /><link rel="start" href="index.html" title="Xarchiver 0.5" /><link rel="up" href="ch04.html" title="Chapter 4. FAQ" /><link rel="prev" href="ch04s06.html" title="What is the meaning of this error message?" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Why Xarchiver doesn't allow me to choose the archive self-extracting path as it happens with zip and 7z?</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04s06.html">Prev</a> </td><th width="60%" align="center">Chapter 4. FAQ</th><td width="20%" align="right"> </td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="seventh"></a>Why Xarchiver doesn't allow me to choose the archive self-extracting path as it happens with zip and 7z?</h2></div></div></div><p>Because arj executable do not allow to do so. Zip and 7z convertion to self-extracting is made by appending an sfx module to the archive so it's possible to choose a different path.
+ </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04s05.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch04.html">Up</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">Why does Xarchiver sometimes report errors but the Error messages window is empty? </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>
+diff -Nur xarchiver-0.5.3.orig/doc/xarchiver.docbook xarchiver-0.5.3/doc/xarchiver.docbook
+--- xarchiver-0.5.3.orig/doc/xarchiver.docbook 2007-08-22 07:49:19.000000000 -0300
++++ xarchiver-0.5.3/doc/xarchiver.docbook 2014-05-05 16:25:17.863287969 -0300
+@@ -50,14 +50,14 @@
+ <listitem><para>The most used archiver cmd-line options are supported in the Add and Extract dialog</para></listitem>
+ <listitem><para>Archives are detected by their magic header and not by the extension except for .tar.bz2 and .tar.gz</para></listitem>
+ <listitem><para>Drag and drop from and to Xarchiver window is supported with XDS protocol</para></listitem>
+- <listitem><para>ZIP and ARJ archive comment are supported. RAR comment is not yet supported because it's compressed inside the archive itself</para></listitem>
++ <listitem><para>ZIP and ARJ archive comment are supported.</para></listitem>
+ <listitem><para>Tabs Firefox style support</para></listitem>
+ <listitem><para>Ability to convert the archive to self-extracting for those archive types which support it</para></listitem>
+- <listitem><para>Smart detection of arj, zip and rar password encrypted archives</para></listitem>
++ <listitem><para>Smart detection of arj and zip password encrypted archives</para></listitem>
+ <listitem><para>All the the output of the cmd-line archiver is displayed in the Xarchiver window</para></listitem>
+- <listitem><para>All common formats are supported: arj, bzip2, lha, gzip, 7z, rar, tar, tar.bz2, tar.gz, zip, DEB and RPM (only open,view and extract)</para></listitem>
++ <listitem><para>All common formats are supported: arj, bzip2, lha, gzip, 7z, tar, tar.bz2, tar.gz, zip, DEB and RPM (only open,view and extract)</para></listitem>
+ <listitem><para>Support of RPM files without RPM executable. This is useful on not RPM-based distributions like Slackware and Arch Linux</para></listitem>
+- <listitem><para>Zip, rar, arj and 7z password encrypted archives are fully supported (7z automatic password detection is not supported)</para></listitem>
++ <listitem><para>Zip, arj and 7z password encrypted archives are fully supported (7z automatic password detection is not supported)</para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+@@ -204,7 +204,7 @@
+ <section id="general_startup">
+ <title>Startup</title>
+ <para>
+- At startup, &app; detects the available installed archivers (tar,rar,zip etc). Since Xarchiver is a frontend (a graphic user interface to the cmd-line executables) it can't create archives whose archiver is not available. For instance if you have the free edition of rar, unrar, Xarchiver can't create rar archives since unrar allows rar archives to be opened, tested and extracted but not to be created.
++ At startup, &app; detects the available installed archivers (tar,zip etc). Since Xarchiver is a frontend (a graphic user interface to the cmd-line executables) it can't create archives whose archiver is not available.
+ </para>
+ </section>
+ <section id="how_it_works">
+@@ -244,7 +244,7 @@
+ <title>Open</title>
+ <para>
+ Opens a new archive. If you force &app; to open an unsupported archive
+- type an error message will be emitted. The archive type is detected by its magic header and not by the extension. Password protected archives are supported also. The password detection is done by looking for the password flag inside the archive structure except for rar ones since encrypted files in rar archives have an asterisk right before their filename. 7zip encrypted archives are not detected due to the complexity of 7zip format. Please see <ulink url="http://sourceforge.net/forum/forum.php?thread_id=1378003&amp;forum_id=383044">
++ type an error message will be emitted. The archive type is detected by its magic header and not by the extension. Password protected archives are supported also. The password detection is done by looking for the password flag inside the archive structure. 7zip encrypted archives are not detected due to the complexity of 7zip format. Please see <ulink url="http://sourceforge.net/forum/forum.php?thread_id=1378003&amp;forum_id=383044">
+ <citetitle>this thread on sf.net</citetitle>
+ </ulink>for more information.
+ </para>
+@@ -394,7 +394,7 @@
+ </section>
+ <section id="second">
+ <title>How can I create an archive with some files password protected and others not?</title>
+- <para>First of all choose 'New' and select one of arj, 7zip, rar or zip archive formats and choose 'Add' from the Action menu. Do NOT check "Password" in the Add dialog. Add your files and then reopen the Add dialog again but this time check "Password" and
++ <para>First of all choose 'New' and select one of arj, 7zip or zip archive formats and choose 'Add' from the Action menu. Do NOT check "Password" in the Add dialog. Add your files and then reopen the Add dialog again but this time check "Password" and
+ enter your password. From now on all the files you add to the archive will be password protected.
+ </para>
+ </section>
+@@ -427,7 +427,7 @@
+ </section>
+ <section id="seventh">
+ <title>Why Xarchiver doesn't allow me to choose the archive self-extracting path as it happens with zip and 7z?</title>
+- <para>Because rar and arj executable do not allow to do so. Zip and 7z convertion to self-extracting is made by appending an sfx module to the archive so it's possible to choose a different path.
++ <para>Because arj executable do not allow to do so. Zip and 7z convertion to self-extracting is made by appending an sfx module to the archive so it's possible to choose a different path.
+ </para>
+ </section>
+ </chapter>
+diff -Nur xarchiver-0.5.3.orig/po/POTFILES.in xarchiver-0.5.3/po/POTFILES.in
+--- xarchiver-0.5.3.orig/po/POTFILES.in 2008-08-26 08:53:27.000000000 -0300
++++ xarchiver-0.5.3/po/POTFILES.in 2014-05-05 16:28:26.154740706 -0300
+@@ -15,7 +15,6 @@
+ src/open-with-dlg.c
+ src/new_dialog.c
+ src/pref_dialog.c
+-src/rar.c
+ src/rpm.c
+ src/tar.c
+ src/zip.c
+diff -Nur xarchiver-0.5.3.orig/src/Makefile.am xarchiver-0.5.3/src/Makefile.am
+--- xarchiver-0.5.3.orig/src/Makefile.am 2008-09-23 03:39:50.000000000 -0300
++++ xarchiver-0.5.3/src/Makefile.am 2014-05-05 16:30:14.628892353 -0300
+@@ -16,7 +16,6 @@
+ arj.c arj.h \
+ deb.c deb.h \
+ zip.c zip.h \
+- rar.c rar.h \
+ 7zip.c 7zip.h \
+ tar.c tar.h \
+ bzip2.c bzip2.h \
+diff -Nur xarchiver-0.5.3.orig/src/Makefile.in xarchiver-0.5.3/src/Makefile.in
+--- xarchiver-0.5.3.orig/src/Makefile.in 2008-11-12 05:50:37.000000000 -0200
++++ xarchiver-0.5.3/src/Makefile.in 2014-05-05 16:30:50.625828168 -0300
+@@ -57,7 +57,7 @@
+ xarchiver-archive.$(OBJEXT) xarchiver-interface.$(OBJEXT) \
+ xarchiver-window.$(OBJEXT) xarchiver-arj.$(OBJEXT) \
+ xarchiver-deb.$(OBJEXT) xarchiver-zip.$(OBJEXT) \
+- xarchiver-rar.$(OBJEXT) xarchiver-7zip.$(OBJEXT) \
++ xarchiver-7zip.$(OBJEXT) \
+ xarchiver-tar.$(OBJEXT) xarchiver-bzip2.$(OBJEXT) \
+ xarchiver-gzip.$(OBJEXT) xarchiver-rpm.$(OBJEXT) \
+ xarchiver-lha.$(OBJEXT) xarchiver-extract_dialog.$(OBJEXT) \
+@@ -267,7 +267,6 @@
+ arj.c arj.h \
+ deb.c deb.h \
+ zip.c zip.h \
+- rar.c rar.h \
+ 7zip.c 7zip.h \
+ tar.c tar.h \
+ bzip2.c bzip2.h \
+@@ -381,7 +380,6 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xarchiver-new_dialog.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xarchiver-open-with-dlg.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xarchiver-pref_dialog.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xarchiver-rar.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xarchiver-rpm.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xarchiver-sexy-icon-entry.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xarchiver-socket.Po@am__quote@
+@@ -595,20 +593,6 @@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xarchiver_CFLAGS) $(CFLAGS) -c -o xarchiver-zip.obj `if test -f 'zip.c'; then $(CYGPATH_W) 'zip.c'; else $(CYGPATH_W) '$(srcdir)/zip.c'; fi`
+
+-xarchiver-rar.o: rar.c
+-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xarchiver_CFLAGS) $(CFLAGS) -MT xarchiver-rar.o -MD -MP -MF "$(DEPDIR)/xarchiver-rar.Tpo" -c -o xarchiver-rar.o `test -f 'rar.c' || echo '$(srcdir)/'`rar.c; \
+-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/xarchiver-rar.Tpo" "$(DEPDIR)/xarchiver-rar.Po"; else rm -f "$(DEPDIR)/xarchiver-rar.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rar.c' object='xarchiver-rar.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xarchiver_CFLAGS) $(CFLAGS) -c -o xarchiver-rar.o `test -f 'rar.c' || echo '$(srcdir)/'`rar.c
+-
+-xarchiver-rar.obj: rar.c
+-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xarchiver_CFLAGS) $(CFLAGS) -MT xarchiver-rar.obj -MD -MP -MF "$(DEPDIR)/xarchiver-rar.Tpo" -c -o xarchiver-rar.obj `if test -f 'rar.c'; then $(CYGPATH_W) 'rar.c'; else $(CYGPATH_W) '$(srcdir)/rar.c'; fi`; \
+-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/xarchiver-rar.Tpo" "$(DEPDIR)/xarchiver-rar.Po"; else rm -f "$(DEPDIR)/xarchiver-rar.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rar.c' object='xarchiver-rar.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xarchiver_CFLAGS) $(CFLAGS) -c -o xarchiver-rar.obj `if test -f 'rar.c'; then $(CYGPATH_W) 'rar.c'; else $(CYGPATH_W) '$(srcdir)/rar.c'; fi`
+-
+ xarchiver-7zip.o: 7zip.c
+ @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xarchiver_CFLAGS) $(CFLAGS) -MT xarchiver-7zip.o -MD -MP -MF "$(DEPDIR)/xarchiver-7zip.Tpo" -c -o xarchiver-7zip.o `test -f '7zip.c' || echo '$(srcdir)/'`7zip.c; \
+ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/xarchiver-7zip.Tpo" "$(DEPDIR)/xarchiver-7zip.Po"; else rm -f "$(DEPDIR)/xarchiver-7zip.Tpo"; exit 1; fi
+diff -Nur xarchiver-0.5.3.orig/src/interface.c xarchiver-0.5.3/src/interface.c
+--- xarchiver-0.5.3.orig/src/interface.c 2014-02-09 13:26:24.000000000 -0200
++++ xarchiver-0.5.3/src/interface.c 2014-05-05 17:04:24.879755668 -0300
+@@ -45,7 +45,7 @@
+ { "text/uri-list",0,0 },
+ };
+
+-extern gboolean unrar,batch_mode;
++extern gboolean batch_mode;
+
+ static gboolean xa_progress_dialog_delete_event (GtkWidget *caller,GdkEvent *event,GPid pid);
+ static void xa_progress_dialog_stop_action (GtkWidget *widget,GPid pid);
+@@ -600,7 +600,7 @@
+ if (selection != NULL)
+ xa_row_selected(selection,archive[id]);
+
+- if (archive[id]->type == XARCHIVETYPE_7ZIP || archive[id]->type == XARCHIVETYPE_ZIP || archive[id]->type == XARCHIVETYPE_RAR || archive[id]->type == XARCHIVETYPE_RAR5 || archive[id]->type == XARCHIVETYPE_ARJ)
++ if (archive[id]->type == XARCHIVETYPE_7ZIP || archive[id]->type == XARCHIVETYPE_ZIP || archive[id]->type == XARCHIVETYPE_ARJ)
+ gtk_widget_set_sensitive (comment_menu,TRUE);
+ else
+ gtk_widget_set_sensitive (comment_menu,FALSE);
+@@ -623,12 +623,7 @@
+ {
+ gtk_widget_show(selected_frame);
+ gtk_widget_set_sensitive(deselect_all,TRUE);
+- if ((archive[id]->type == XARCHIVETYPE_RAR || archive[id]->type == XARCHIVETYPE_RAR5) && unrar)
+- {
+- gtk_widget_set_sensitive (delete_menu,FALSE);
+- gtk_widget_set_sensitive (rename_menu,FALSE);
+- }
+- else if (archive[id]->type == XARCHIVETYPE_BZIP2 || archive[id]->type == XARCHIVETYPE_GZIP || archive[id]->type == XARCHIVETYPE_DEB || archive[id]->type == XARCHIVETYPE_RPM || archive[id]->type == XARCHIVETYPE_LZMA || archive[id]->type == XARCHIVETYPE_XZ || archive[id]->type == XARCHIVETYPE_LZOP)
++ if (archive[id]->type == XARCHIVETYPE_BZIP2 || archive[id]->type == XARCHIVETYPE_GZIP || archive[id]->type == XARCHIVETYPE_DEB || archive[id]->type == XARCHIVETYPE_RPM || archive[id]->type == XARCHIVETYPE_LZMA || archive[id]->type == XARCHIVETYPE_XZ || archive[id]->type == XARCHIVETYPE_LZOP)
+ {
+ gtk_widget_set_sensitive (delete_menu,FALSE);
+ gtk_widget_set_sensitive (rename_menu,FALSE);
+diff -Nur xarchiver-0.5.3.orig/src/main.c xarchiver-0.5.3/src/main.c
+--- xarchiver-0.5.3.orig/src/main.c 2014-02-09 13:30:28.000000000 -0200
++++ xarchiver-0.5.3/src/main.c 2014-05-05 16:23:04.132223201 -0300
+@@ -33,13 +33,11 @@
+ gchar *add_files;
+ gboolean error_output, file_to_open, ask_and_extract, ask_and_add, multi_extract;
+ gboolean batch_mode = FALSE;
+-gboolean unrar = FALSE;
+ gboolean sevenzr = FALSE, sevenza = FALSE, xdg_open = FALSE;
+ static gboolean show_version = FALSE;
+ int response;
+ extern gchar *current_open_directory;
+ extern int status;
+-extern int rar_version;
+
+ extern Progress_bar_data *pb;
+ Prefs_dialog_data *prefs_window = NULL;
+@@ -315,7 +313,6 @@
+ open_archive[XARCHIVETYPE_GZIP] = &xa_open_gzip;
+ open_archive[XARCHIVETYPE_LZMA] = &xa_open_bzip2_lzma;
+ open_archive[XARCHIVETYPE_XZ] = &xa_open_bzip2_lzma;
+- open_archive[XARCHIVETYPE_RAR] = open_archive[XARCHIVETYPE_RAR5] = &xa_open_rar;
+ open_archive[XARCHIVETYPE_RPM] = &xa_open_rpm;
+ open_archive[XARCHIVETYPE_TAR] = open_archive[XARCHIVETYPE_TAR_BZ2] = open_archive[XARCHIVETYPE_TAR_GZ] = open_archive[XARCHIVETYPE_TAR_LZMA] = open_archive[XARCHIVETYPE_TAR_XZ] = open_archive[XARCHIVETYPE_TAR_LZOP] = &xa_open_tar;
+ open_archive[XARCHIVETYPE_ZIP] = &xa_open_zip;
+@@ -330,7 +327,6 @@
+ delete[XARCHIVETYPE_GZIP] = 0;
+ delete[XARCHIVETYPE_LZMA] = 0;
+ delete[XARCHIVETYPE_XZ] = 0;
+- delete[XARCHIVETYPE_RAR] = delete[XARCHIVETYPE_RAR5] = &xa_rar_delete;
+ delete[XARCHIVETYPE_RPM] = 0;
+ delete[XARCHIVETYPE_TAR] = delete[XARCHIVETYPE_TAR_BZ2] = delete[XARCHIVETYPE_TAR_GZ] = delete[XARCHIVETYPE_TAR_LZMA] = delete[XARCHIVETYPE_TAR_XZ] = delete[XARCHIVETYPE_TAR_LZOP] = &xa_tar_delete;
+ delete[XARCHIVETYPE_ZIP] = &xa_zip_delete;
+@@ -343,7 +339,6 @@
+ add[XARCHIVETYPE_ARJ] = &xa_arj_add;
+ add[XARCHIVETYPE_DEB] = 0;
+ add[XARCHIVETYPE_BZIP2] = add[XARCHIVETYPE_GZIP] = add[XARCHIVETYPE_LZMA] = add[XARCHIVETYPE_XZ] = add[XARCHIVETYPE_LZOP] = &xa_tar_add;
+- add[XARCHIVETYPE_RAR] = add[XARCHIVETYPE_RAR5] = &xa_rar_add;
+ add[XARCHIVETYPE_RPM] = 0;
+ add[XARCHIVETYPE_TAR] = add[XARCHIVETYPE_TAR_BZ2] = add[XARCHIVETYPE_TAR_GZ] = add[XARCHIVETYPE_TAR_LZMA] = add[XARCHIVETYPE_TAR_XZ] = add[XARCHIVETYPE_TAR_LZOP] = &xa_tar_add;
+ add[XARCHIVETYPE_ZIP] = &xa_zip_add;
+@@ -354,7 +349,6 @@
+ extract[XARCHIVETYPE_ARJ] = &xa_arj_extract;
+ extract[XARCHIVETYPE_DEB] = &xa_deb_extract;;
+ extract[XARCHIVETYPE_BZIP2] = extract[XARCHIVETYPE_GZIP] = extract[XARCHIVETYPE_LZMA] = extract[XARCHIVETYPE_XZ] = extract[XARCHIVETYPE_LZOP] = &xa_tar_extract;
+- extract[XARCHIVETYPE_RAR] = extract[XARCHIVETYPE_RAR5] = &xa_rar_extract;
+ extract[XARCHIVETYPE_RPM] = &xa_rpm_extract;
+ extract[XARCHIVETYPE_TAR] = extract[XARCHIVETYPE_TAR_BZ2] = extract[XARCHIVETYPE_TAR_GZ] = extract[XARCHIVETYPE_TAR_LZMA] = extract[XARCHIVETYPE_TAR_XZ] = extract[XARCHIVETYPE_TAR_LZOP] = &xa_tar_extract;
+ extract[XARCHIVETYPE_ZIP] = &xa_zip_extract;
+@@ -364,7 +358,6 @@
+ test[XARCHIVETYPE_7ZIP] = &xa_7zip_test;
+ test[XARCHIVETYPE_ARJ] = &xa_arj_test;
+ test[XARCHIVETYPE_DEB] = test[XARCHIVETYPE_BZIP2] = test[XARCHIVETYPE_GZIP] = test[XARCHIVETYPE_LZMA] = test[XARCHIVETYPE_XZ] = test[XARCHIVETYPE_LZOP] = &xa_tar_test;
+- test[XARCHIVETYPE_RAR] = test[XARCHIVETYPE_RAR5] = &xa_rar_test;
+ test[XARCHIVETYPE_RPM] = 0;
+ test[XARCHIVETYPE_TAR] = test[XARCHIVETYPE_TAR_BZ2] = test[XARCHIVETYPE_TAR_GZ] = test[XARCHIVETYPE_TAR_LZMA] = test[XARCHIVETYPE_TAR_XZ] = test[XARCHIVETYPE_TAR_LZOP] = &xa_tar_test;
+ test[XARCHIVETYPE_ZIP] = &xa_zip_test;
+@@ -435,39 +428,6 @@
+ //ArchiveSuffix = g_list_append(ArchiveSuffix, "");
+ }
+
+- absolute_path = g_find_program_in_path ("rar");
+- if ( absolute_path )
+- {
+- ArchiveType = g_list_append(ArchiveType, "rar");
+- ArchiveSuffix = g_list_append(ArchiveSuffix, "*.rar");
+- // Is RAR v5 ?
+- xa_rar_checkversion (absolute_path);
+- if (rar_version == 5)
+- {
+- ArchiveType = g_list_append(ArchiveType, "rar5");
+- ArchiveSuffix = g_list_append(ArchiveSuffix, "*.rar5");
+- }
+- g_free (absolute_path);
+- }
+- else
+- {
+- absolute_path = g_find_program_in_path("unrar");
+- if ( absolute_path )
+- {
+- unrar = TRUE;
+- ArchiveType = g_list_append(ArchiveType, "rar");
+- ArchiveSuffix = g_list_append(ArchiveSuffix, "*.rar");
+- // Is RAR v5 ?
+- xa_rar_checkversion (absolute_path);
+- if (rar_version == 5)
+- {
+- ArchiveType = g_list_append(ArchiveType, "rar5");
+- ArchiveSuffix = g_list_append(ArchiveSuffix, "*.rar5");
+- }
+- g_free (absolute_path);
+- }
+- }
+-
+ absolute_path = g_find_program_in_path("cpio");
+ if ( absolute_path )
+ {
+diff -Nur xarchiver-0.5.3.orig/src/mime.c xarchiver-0.5.3/src/mime.c
+--- xarchiver-0.5.3.orig/src/mime.c 2008-11-05 07:53:22.000000000 -0200
++++ xarchiver-0.5.3/src/mime.c 2014-05-05 16:31:28.126107426 -0300
+@@ -44,7 +44,7 @@
+ icon_name = "gnome-mime-application-vnd.ms-excel";
+ else if (strcmp(mime,"application/vnd.ms-powerpoint") == 0 || strcmp (mime,"application/vnd.oasis.opendocument.presentation") == 0)
+ icon_name = "gnome-mime-application-vnd.ms-powerpoint";
+- else if (strcmp(mime,"application/zip") == 0 || strcmp(mime,"application/x-rar") == 0 || strcmp(mime,"application/x-tar") == 0
++ else if (strcmp(mime,"application/zip") == 0 || strcmp(mime,"application/x-tar") == 0
+ || strcmp(mime,"application/x-7z-compressed") == 0 || strcmp(mime,"application/x-bzip-compressed-tar") == 0
+ || strcmp (mime,"application/x-compressed-tar") == 0 || strcmp (mime,"application/x-lha") == 0
+ || strcmp (mime,"application/x-rpm") == 0 || strcmp (mime,"application/x-deb") == 0
+diff -Nur xarchiver-0.5.3.orig/src/new_dialog.c xarchiver-0.5.3/src/new_dialog.c
+--- xarchiver-0.5.3.orig/src/new_dialog.c 2014-02-09 13:26:24.000000000 -0200
++++ xarchiver-0.5.3/src/new_dialog.c 2014-05-05 16:21:07.714600036 -0300
+@@ -24,7 +24,6 @@
+ #include "string_utils.h"
+ #include "main.h"
+
+-extern gboolean unrar;
+ extern Prefs_dialog_data *prefs_window;
+ gchar *current_new_directory = NULL;
+ gint new_combo_box = -1;
+@@ -100,11 +99,6 @@
+ Name = g_list_first (ArchiveType);
+
+ while (Name)
+- {
+- if (!(strncmp(Name->data, "rar", 3) == 0 && unrar))
+- gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box),Name->data);
+- Name = g_list_next (Name);
+- }
+ if (new_combo_box == -1)
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box),gtk_combo_box_get_active(GTK_COMBO_BOX(prefs_window->combo_prefered_format)));
+ else
+@@ -227,16 +221,6 @@
+ type = XARCHIVETYPE_LZOP;
+ format = "LZOP";
+ }
+- else if (strcmp (ComboArchiveType,"rar") == 0)
+- {
+- type = XARCHIVETYPE_RAR;
+- format = "RAR";
+- }
+- else if (strcmp (ComboArchiveType,"rar5") == 0)
+- {
+- type = XARCHIVETYPE_RAR5;
+- format = "RAR5";
+- }
+ else if (strcmp (ComboArchiveType,"tar") == 0)
+ {
+ type = XARCHIVETYPE_TAR;
+diff -Nur xarchiver-0.5.3.orig/src/pref_dialog.c xarchiver-0.5.3/src/pref_dialog.c
+--- xarchiver-0.5.3.orig/src/pref_dialog.c 2014-02-09 13:26:24.000000000 -0200
++++ xarchiver-0.5.3/src/pref_dialog.c 2014-05-05 17:29:05.494321392 -0300
+@@ -23,7 +23,6 @@
+ #include "main.h"
+ #include "support.h"
+
+-extern gboolean unrar;
+ extern gboolean xdg_open;
+ extern Extract_dialog_data *extract_window;
+ extern Add_dialog_data *add_window;
+@@ -103,9 +102,7 @@
+ while ( archive_type != NULL )
+ {
+ if (strcmp(archive_type->data, "tgz") == 0 ||
+- strcmp(archive_type->data, "rpm") == 0 ||
+- (strncmp(archive_type->data, "rar", 3) == 0 && unrar) )
+- goto next;
++ strcmp(archive_type->data, "rpm") == 0);
+ else
+ gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_format),archive_type->data );
+ next:
+diff -Nur xarchiver-0.5.3.orig/src/window.c xarchiver-0.5.3/src/window.c
+--- xarchiver-0.5.3.orig/src/window.c 2014-02-09 13:49:07.000000000 -0200
++++ xarchiver-0.5.3/src/window.c 2014-05-05 17:19:54.769288791 -0300
+@@ -26,7 +26,6 @@
+
+ extern GList *ArchiveType;
+ extern GList *ArchiveSuffix;
+-extern gboolean unrar;
+ extern gboolean xdg_open;
+ extern Prefs_dialog_data *prefs_window;
+ extern Extract_dialog_data *extract_window;
+@@ -326,11 +325,7 @@
+
+ /* Does the user open an archive from the command line whose archiver is not installed? */
+ gchar *ext = NULL;
+- if (type == XARCHIVETYPE_RAR)
+- ext = "rar";
+- else if (type == XARCHIVETYPE_RAR5)
+- ext = "rar5";
+- else if (type == XARCHIVETYPE_7ZIP)
++ if (type == XARCHIVETYPE_7ZIP)
+ ext = "7z";
+ else if (type == XARCHIVETYPE_ARJ)
+ ext = "arj";
+@@ -358,7 +353,7 @@
+ g_free (path);
+ return;
+ }
+- /* Detect archive comment,rar one is detected in rar.c */
++ /* Detect archive comment */
+ if (type == XARCHIVETYPE_ZIP)
+ archive[current_page]->has_comment = xa_detect_archive_comment (XARCHIVETYPE_ZIP,path,archive[current_page]);
+ else if (type == XARCHIVETYPE_ARJ)
+@@ -780,13 +775,6 @@
+ archive[idx]->status = XA_ARCHIVESTATUS_SFX;
+ switch ( archive[idx]->type)
+ {
+- case XARCHIVETYPE_RAR:
+- case XARCHIVETYPE_RAR5:
+- command = g_strconcat ("rar s -o+ ",archive[idx]->escaped_path,NULL);
+- list = g_slist_append(list,command);
+- xa_run_command (archive[idx],list);
+- break;
+-
+ case XARCHIVETYPE_ZIP:
+ {
+ gchar *archive_name = NULL;
+@@ -964,7 +952,7 @@
+ void xa_about (GtkMenuItem *menuitem,gpointer user_data)
+ {
+ static GtkWidget *about = NULL;
+- const char *authors[] = {"Main developer:\nGiuseppe Torelli <colossus73@gmail.com>\n\nArchive navigation code:\nJohn Berthels\n\nCode fixing:\nEnrico Tröger\n\nLHA and DEB support:\nŁukasz Zemczak <sil2100@vexillium.org>\n\nLZMA support:\nThomas Dy <dysprosium66@gmail.com>\n\nLZOP support:\nKevin Day\n\nRAR5, XZ, TAR.XZ support:\nFrederick GUERIN <fguerin01@gmail.com>\n",NULL};
++ const char *authors[] = {"Main developer:\nGiuseppe Torelli <colossus73@gmail.com>\n\nArchive navigation code:\nJohn Berthels\n\nCode fixing:\nEnrico Tröger\n\nLHA and DEB support:\nŁukasz Zemczak <sil2100@vexillium.org>\n\nLZMA support:\nThomas Dy <dysprosium66@gmail.com>\n\nLZOP support:\nKevin Day\n\nXZ, TAR.XZ support:\nFrederick GUERIN <fguerin01@gmail.com>\n",NULL};
+ const char *documenters[] = {"Special thanks to Bjoern Martensen for\nbugs hunting and Xarchiver Tango logo.\n\nThanks to:\nBenedikt Meurer\nStephan Arts\nBruno Jesus <00cpxxx@gmail.com>\nUracile for the stunning logo\n",NULL};
+
+ if (about == NULL)
+@@ -1122,10 +1110,6 @@
+ xx = XARCHIVETYPE_ZIP;
+ else if (memcmp (magic,"\x60\xea",2) == 0)
+ xx = XARCHIVETYPE_ARJ;
+- else if (memcmp ( magic,"\x52\x61\x72\x21\x1a\x07\x00",7) == 0)
+- xx = XARCHIVETYPE_RAR;
+- else if (memcmp ( magic,"\x52\x61\x72\x21\x1a\x07\x01",7) == 0)
+- xx = XARCHIVETYPE_RAR5;
+ else if (memcmp ( magic,"\x42\x5a\x68",3) == 0)
+ xx = XARCHIVETYPE_BZIP2;
+ else if (memcmp ( magic,"\x1f\x8b",2) == 0 || memcmp ( magic,"\x1f\x9d",2) == 0)
+@@ -1479,8 +1463,6 @@
+ pos = 3;
+ break;
+
+- case XARCHIVETYPE_RAR:
+- case XARCHIVETYPE_RAR5:
+ case XARCHIVETYPE_ARJ:
+ case XARCHIVETYPE_7ZIP:
+ pos = 2;
+@@ -1545,8 +1527,6 @@
+ pos = 3;
+ break;
+
+- case XARCHIVETYPE_RAR:
+- case XARCHIVETYPE_RAR5:
+ case XARCHIVETYPE_ARJ:
+ case XARCHIVETYPE_7ZIP:
+ pos = 2;
+@@ -1584,7 +1564,7 @@
+ gtk_widget_show(selected_frame);
+ gtk_widget_set_sensitive(deselect_all,TRUE);
+ }
+- if ( (archive->type == XARCHIVETYPE_RAR && unrar) || (archive->type == XARCHIVETYPE_RAR5 && unrar) || archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_XZ || archive->type == XARCHIVETYPE_LZOP)
++ if (archive->type == XARCHIVETYPE_BZIP2 || archive->type == XARCHIVETYPE_GZIP || archive->type == XARCHIVETYPE_LZMA || archive->type == XARCHIVETYPE_XZ || archive->type == XARCHIVETYPE_LZOP)
+ {
+ gtk_widget_set_sensitive (delete_menu,FALSE);
+ gtk_widget_set_sensitive (rename_menu,FALSE);
+@@ -1801,11 +1781,6 @@
+ else
+ idx = xa_find_archive_index (current_page);
+
+- if ((archive[idx]->type == XARCHIVETYPE_RAR || archive[idx]->type == XARCHIVETYPE_RAR5) && unrar)
+- {
+- response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't perform this action:"),_("You have to install rar package!"));
+- return;
+- }
+ if (archive[idx]->type == XARCHIVETYPE_DEB || archive[idx]->type == XARCHIVETYPE_RPM)
+ {
+ gchar *msg;
+@@ -2111,11 +2086,6 @@
+ command = g_strconcat ("arj c ",archive[idx]->escaped_path," -z",tmp,NULL);
+ break;
+
+- case XARCHIVETYPE_RAR:
+- case XARCHIVETYPE_RAR5:
+- command = g_strconcat ("rar c ",archive[idx]->escaped_path," -z",tmp,NULL);
+- break;
+-
+ case XARCHIVETYPE_ZIP:
+ command = g_strconcat ("sh -c \"zip ",archive[idx]->escaped_path," -z <",tmp,"\"",NULL);
+ break;
+diff -Nur xarchiver-0.5.3.orig/src/window.h xarchiver-0.5.3/src/window.h
+--- xarchiver-0.5.3.orig/src/window.h 2008-10-24 07:26:51.000000000 -0200
++++ xarchiver-0.5.3/src/window.h 2014-05-05 16:29:42.841987069 -0300
+@@ -40,7 +40,6 @@
+ #include "deb.h"
+ #include "lha.h"
+ #include "zip.h"
+-#include "rar.h"
+ #include "tar.h"
+ #include "7zip.h"
+ #include "bzip2.h"
+diff -Nur xarchiver-0.5.3.orig/xarchiver.desktop.in xarchiver-0.5.3/xarchiver.desktop.in
+--- xarchiver-0.5.3.orig/xarchiver.desktop.in 2014-05-12 02:00:44.138672823 -0300
++++ xarchiver-0.5.3/xarchiver.desktop.in 2014-05-12 02:01:31.452361143 -0300
+@@ -11,4 +11,4 @@
+ X-MultipleArgs=false
+ Categories=GTK;Archiving;Utility;
+ StartupNotify=true
+-MimeType=application/x-arj;application/arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-gzip;application/x-rar;application/x-rar-compressed;application/x-tar;application/x-zip;application/x-zip-compressed;application/zip;application/x-7z-compressed;application/x-compressed-tar;application/x-bzip2;application/x-bzip2-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-xz;application/x-xz-compressed-tar;application/x-deb;application/x-rpm;
++MimeType=application/x-arj;application/arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-gzip;application/x-tar;application/x-zip;application/x-zip-compressed;application/zip;application/x-7z-compressed;application/x-compressed-tar;application/x-bzip2;application/x-bzip2-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-xz;application/x-xz-compressed-tar;application/x-deb;application/x-rpm;
diff --git a/libre/xbmc-libre-lts/PKGBUILD b/libre/xbmc-libre-lts/PKGBUILD
new file mode 100644
index 000000000..bd0ab5108
--- /dev/null
+++ b/libre/xbmc-libre-lts/PKGBUILD
@@ -0,0 +1,138 @@
+# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor (Arch): Brad Fanella <bradfanella@archlinux.us>
+# Contributor (Arch): [vEX] <niechift.dot.vex.at.gmail.dot.com>
+# Contributor (Arch): Zeqadious <zeqadious.at.gmail.dot.com>
+# Contributor (Arch): BlackIkeEagle < ike DOT devolder AT gmail DOT com >
+# Maintainer: André Silva <emulatorman@parabola.nu>
+
+_prefix=/usr
+
+_pkgname=xbmc
+pkgname=xbmc-libre-lts
+pkgver=12.3
+_codename=Frodo
+pkgrel=1
+pkgdesc="A software media player and entertainment hub for digital media (Frodo version), without nonfree addons and unrar support"
+arch=('i686' 'x86_64')
+url="http://xbmc.org"
+license=('GPL' 'custom')
+conflicts=($_pkgname)
+provides=($_pkgname)
+depends=('hicolor-icon-theme' 'fribidi' 'lzo2' 'smbclient' 'libtiff' 'libva'
+ 'libpng' 'libcdio' 'yajl' 'libmariadbclient' 'libjpeg-turbo' 'libsamplerate'
+ 'glew' 'libssh' 'libmicrohttpd' 'libxrandr' 'sdl_mixer' 'sdl_image' 'python2'
+ 'libass' 'libmpeg2' 'libmad' 'libmodplug' 'jasper' 'rtmpdump' 'unzip' 'mesa-demos'
+ 'xorg-xdpyinfo' 'libbluray' 'libnfs' 'afpfs-ng' 'libshairport' 'avahi' 'bluez-libs' 'glu'
+ 'tinyxml' 'taglib' 'ffmpeg-compat')
+makedepends=('boost' 'cmake' 'gperf' 'nasm' 'libxinerama' 'zip' 'libvdpau' 'libcec'
+ 'udisks' 'upower' 'mesa' 'doxygen' 'swig' 'java-environment')
+optdepends=('libcec: support for Pulse-Eight USB-CEC adapter'
+ 'lirc: remote controller support'
+ 'udisks: automount external drives'
+ 'upower: used to trigger power management functionality'
+ 'xorg-xinit: autostart xbmc')
+install="${_pkgname}.install"
+mksource=("http://mirrors.xbmc.org/releases/source/xbmc-$pkgver.tar.gz")
+source=("https://repo.parabolagnulinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz"
+ "xbmc.service"
+ "polkit.rules"
+ "libass.patch::https://bugs.archlinux.org/index.php?getfile=11285")
+mkmd5sums=('7ae385ebf8e5cfcb917393235e6efbdb')
+md5sums=('7c71af50af55b097e4365a58b70754e8'
+ 'de331663cc8adc94f2fe44a262cfff58'
+ '02f7951824ee13103344f36009c0ef2a'
+ '7fd6399d2ffbdf06b724f0cc2efa0784')
+
+mksource() {
+ cd "${srcdir}/xbmc-$pkgver-$_codename"
+
+ # remove nonfree unRAR utility files from the source
+ rm -rv lib/UnrarXLib
+}
+
+prepare() {
+ cd "${srcdir}/xbmc-$pkgver-$_codename"
+
+ patch -p0 <$srcdir/libass.patch
+
+ # fix lsb_release dependency
+ sed -i -e 's:/usr/bin/lsb_release -d:cat /etc/arch-release:' xbmc/utils/SystemInfo.cpp
+ sed -i -e 's:#include <libsmbclient.h>:#include <samba-4.0/libsmbclient.h>:' xbmc/filesystem/{SmbFile,SMBDirectory}.cpp
+
+ # use addons.xml from Parabola server (without nonfree addons support)
+ sed -i -e 's|mirrors[.]xbmc[.]org/addons/frodo/addons.xml|repo.parabolagnulinux.org/other/xbmc-libre-lts/addons/frodo/addons.xml|' addons/repository.xbmc.org/addon.xml
+}
+
+build() {
+ cd "${srcdir}/xbmc-$pkgver-$_codename"
+
+ # Bootstrapping XBMC
+ ./bootstrap
+
+ # Configuring XBMC
+ export PYTHON_VERSION=2 # external python v2
+ export PKG_CONFIG_PATH=/usr/lib/ffmpeg-compat/pkgconfig:$PKG_CONFIG_PATH
+ ./configure --prefix=$_prefix --exec-prefix=$_prefix \
+ --disable-debug \
+ --enable-optimizations \
+ --enable-gl \
+ --enable-sdl \
+ --enable-vaapi \
+ --enable-vdpau \
+ --enable-xvba \
+ --enable-joystick \
+ --enable-xrandr \
+ --enable-rsxs \
+ --enable-projectm \
+ --enable-x11 \
+ --enable-rtmp \
+ --enable-samba \
+ --enable-nfs \
+ --enable-afpclient \
+ --enable-airplay \
+ --enable-airtunes \
+ --enable-ffmpeg-libvorbis \
+ --enable-dvdcss \
+ --disable-hal \
+ --enable-avahi \
+ --enable-webserver \
+ --enable-optical-drive \
+ --enable-libbluray \
+ --enable-texturepacker \
+ --enable-udev \
+ --enable-libusb \
+ --enable-libcec \
+ --enable-external-libraries \
+ --enable-external-ffmpeg \
+ --disable-non-free
+ # Now (finally) build
+ make
+}
+
+package() {
+ cd "${srcdir}/xbmc-$pkgver-$_codename"
+ # Running make install
+ make DESTDIR="${pkgdir}" install
+
+ # run feh with python2
+ sed -i -e 's/python/python2/g' ${pkgdir}${_prefix}/bin/xbmc
+
+ # lsb_release fix
+ sed -i -e 's/which lsb_release &> \/dev\/null/\[ -f \/etc\/arch-release ]/g' "${pkgdir}${_prefix}/bin/xbmc"
+ sed -i -e "s/lsb_release -a 2> \/dev\/null | sed -e 's\/\^\/ \/'/cat \/etc\/arch-release/g" "${pkgdir}${_prefix}/bin/xbmc"
+
+ # Tools
+ install -D -m 0755 "${srcdir}/xbmc-$pkgver-$_codename/xbmc-xrandr" "${pkgdir}${_prefix}/share/xbmc/xbmc-xrandr"
+ install -D -m 0755 "${srcdir}/xbmc-$pkgver-$_codename/tools/TexturePacker/TexturePacker" "${pkgdir}${_prefix}/share/xbmc/"
+
+ # Licenses
+ install -d -m 0755 "${pkgdir}${_prefix}/share/licenses/${_pkgname}"
+ for licensef in LICENSE.GPL copying.txt; do
+ mv "${pkgdir}${_prefix}/share/doc/xbmc/${licensef}" "${pkgdir}${_prefix}/share/licenses/${_pkgname}"
+ done
+
+ install -Dm0644 $srcdir/xbmc.service $pkgdir/usr/lib/systemd/system/xbmc.service
+# install -Dm0644 $srcdir/polkit.rules $pkgdir/usr/share/polkit-1/rules.d/10-xbmc.rules
+# chmod 0700 $pkgdir/usr/share/polkit-1/rules.d/
+}
+# vim:set ts=2 sw=2 et:
diff --git a/libre/xbmc-libre-lts/polkit.rules b/libre/xbmc-libre-lts/polkit.rules
new file mode 100644
index 000000000..4b6d0fda0
--- /dev/null
+++ b/libre/xbmc-libre-lts/polkit.rules
@@ -0,0 +1,12 @@
+polkit.addRule(function(action, subject) {
+ if (subject.user == "xbmc") {
+ polkit.log("action=" + action);
+ polkit.log("subject=" + subject);
+ if (action.id.indexOf("org.freedesktop.login1.") == 0) {
+ return polkit.Result.YES;
+ }
+ if (action.id.indexOf("org.freedesktop.udisks.") == 0) {
+ return polkit.Result.YES;
+ }
+ }
+});
diff --git a/libre/xbmc-libre-lts/xbmc.install b/libre/xbmc-libre-lts/xbmc.install
new file mode 100644
index 000000000..8076fe2d3
--- /dev/null
+++ b/libre/xbmc-libre-lts/xbmc.install
@@ -0,0 +1,19 @@
+post_install() {
+ [[ $(type -p gtk-update-icon-cache) ]] && usr/bin/gtk-update-icon-cache -qtf usr/share/icons/hicolor
+ [[ $(type -p update-desktop-database) ]] && usr/bin/update-desktop-database -q usr/share/applications
+ getent group xbmc > /dev/null || groupadd -r xbmc
+ getent passwd xbmc > /dev/null || useradd -r -m -d /var/lib/xbmc -g xbmc xbmc
+ usermod -a -G xbmc,audio,video,network,optical xbmc
+ mkdir -p var/lib/xbmc
+ chown -R xbmc:xbmc var/lib/xbmc
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ [[ $(type -p gtk-update-icon-cache) ]] && usr/bin/gtk-update-icon-cache -qtf usr/share/icons/hicolor
+ [[ $(type -p update-desktop-database) ]] && usr/bin/update-desktop-database -q usr/share/applications
+ getent passwd xbmc > /dev/null && userdel xbmc
+}
diff --git a/libre/xbmc-libre-lts/xbmc.service b/libre/xbmc-libre-lts/xbmc.service
new file mode 100644
index 000000000..d36ddb05a
--- /dev/null
+++ b/libre/xbmc-libre-lts/xbmc.service
@@ -0,0 +1,16 @@
+[Unit]
+Description = Starts instance of XBMC using xinit
+After = systemd-user-sessions.service
+Conflicts=getty@tty7.service
+
+[Service]
+User = xbmc
+Group = xbmc
+PAMName=login
+Type = simple
+TTYPath=/dev/tty7
+ExecStart = /usr/bin/xinit /usr/bin/dbus-launch --exit-with-session /usr/bin/xbmc-standalone -l /run/lirc/lircd -- :0 -nolisten tcp vt7
+Restart = on-abort
+
+[Install]
+WantedBy = multi-user.target
diff --git a/libre/xbmc-libre/0001-rtmp-check-m_rtmp-for-non-NULL-fixes-crashes-with-mi.patch b/libre/xbmc-libre/0001-rtmp-check-m_rtmp-for-non-NULL-fixes-crashes-with-mi.patch
new file mode 100644
index 000000000..20d8e0250
--- /dev/null
+++ b/libre/xbmc-libre/0001-rtmp-check-m_rtmp-for-non-NULL-fixes-crashes-with-mi.patch
@@ -0,0 +1,75 @@
+From a58bcbb0a35ac8e26a880be477705d833330ecc5 Mon Sep 17 00:00:00 2001
+From: Jonathan Marshall <jmarshall@xbmc.org>
+Date: Tue, 6 May 2014 19:40:17 +1200
+Subject: [PATCH 1/7] [rtmp] check m_rtmp for non-NULL - fixes crashes with
+ missing librtmp
+
+---
+ .../dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp | 16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp
+index b02792a..93fc6f0 100644
+--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp
++++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp
+@@ -104,7 +104,8 @@ CDVDInputStreamRTMP::~CDVDInputStreamRTMP()
+ m_sStreamPlaying = NULL;
+
+ Close();
+- m_libRTMP.Free(m_rtmp);
++ if (m_rtmp)
++ m_libRTMP.Free(m_rtmp);
+ m_rtmp = NULL;
+ m_bPaused = false;
+ }
+@@ -139,7 +140,7 @@ bool CDVDInputStreamRTMP::Open(const char* strFile, const std::string& content)
+ m_sStreamPlaying = NULL;
+ }
+
+- if (!CDVDInputStream::Open(strFile, "video/x-flv"))
++ if (!m_rtmp || !CDVDInputStream::Open(strFile, "video/x-flv"))
+ return false;
+
+ CSingleLock lock(m_RTMPSection);
+@@ -181,7 +182,8 @@ void CDVDInputStreamRTMP::Close()
+ CSingleLock lock(m_RTMPSection);
+ CDVDInputStream::Close();
+
+- m_libRTMP.Close(m_rtmp);
++ if (m_rtmp)
++ m_libRTMP.Close(m_rtmp);
+
+ m_optionvalues.clear();
+ m_eof = true;
+@@ -190,6 +192,9 @@ void CDVDInputStreamRTMP::Close()
+
+ int CDVDInputStreamRTMP::Read(uint8_t* buf, int buf_size)
+ {
++ if (!m_rtmp)
++ return -1;
++
+ int i = m_libRTMP.Read(m_rtmp, (char *)buf, buf_size);
+ if (i < 0)
+ m_eof = true;
+@@ -210,7 +215,7 @@ bool CDVDInputStreamRTMP::SeekTime(int iTimeInMsec)
+ CLog::Log(LOGNOTICE, "RTMP Seek to %i requested", iTimeInMsec);
+ CSingleLock lock(m_RTMPSection);
+
+- if (m_libRTMP.SendSeek(m_rtmp, iTimeInMsec))
++ if (m_rtmp && m_libRTMP.SendSeek(m_rtmp, iTimeInMsec))
+ return true;
+
+ return false;
+@@ -229,7 +234,8 @@ bool CDVDInputStreamRTMP::Pause(double dTime)
+
+ CLog::Log(LOGNOTICE, "RTMP Pause %s requested", m_bPaused ? "TRUE" : "FALSE");
+
+- m_libRTMP.Pause(m_rtmp, m_bPaused);
++ if (m_rtmp)
++ m_libRTMP.Pause(m_rtmp, m_bPaused);
+
+ return true;
+ }
+--
+1.9.1
+
diff --git a/libre/xbmc-libre/ChangeLog b/libre/xbmc-libre/ChangeLog
deleted file mode 100644
index 66ae97e3b..000000000
--- a/libre/xbmc-libre/ChangeLog
+++ /dev/null
@@ -1,69 +0,0 @@
-2010-04-10 BlackEagle <ike DOT devolder AT gmail DOT com>
- * 9.11-15 :
- Made it back compliant with FHS ( thx pierre for pointing that out )
- namcap checked and modified to fit its needs as far as it was possible
-
-2009-03-07 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
- * 8.10-10 :
- Try and fix some autoconf issues (thanks Gentoo ebuild).
-
-2009-02-08 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
- * 8.10-9 :
- Replace some libtool 'ltmain.sh' scripts with the one from libtool
- installed with Arch.
- Make sure XBMCTex isn't linked to OpenGL libraries or it will segfault
- on systems using the nvidia driver.
-
-2009-01-30 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
- * 8.10-8 :
- Fix some include's so that gcc 4.3.x is happy, shouldn't complain about
- undefined '::realloc' anymore.
- Remove Mac OS X specific files.
-
-2009-01-25 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
- * 8.10-7 :
- Moved libcdio, pmount, smbclient and unrar to optdepends.
- Removed unneeded dependency on sdl_gfx.
- Removed dependency on libpng as sdl_image depends on it.
-
-2008-12-14 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
- * 8.10-6 :
- Added libpng to dependency list.
- Added gawk to dependency list.
- Removed '--disable-mms' and '--enable-halmount' configure flags as they
- are not mentioned as supported in the configure script.
-
-2008-12-06 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
- * 8.10-5 :
- Added libmad to the dependency list.
- Streamripper 1.64.0+ does not include tre anymore, removed streamripper
- and added tre instead.
- Removed subversion from makedepends.
-
-2008-12-06 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
- * 8.10-4 :
- Fix permissions for some more scripts, ffmpeg/texi2doc.pl should not
- fail any longer.
-
-2008-12-05 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
- * 8.10-3 :
- Added lirc to the optdepends array.
-
-2008-11-26 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
- * 8.10-2 :
- Added install file which informs users that a display depth of at
- least 24-bit is required.
-
-2008-11-17 [vEX] <niechift.dot.vex.at.gmail.dot.com>
-
- * 8.10-1 :
- Initial package, based on previous work by Zeqadious.
diff --git a/libre/xbmc-libre/PKGBUILD b/libre/xbmc-libre/PKGBUILD
index e347707d2..1aff83340 100644
--- a/libre/xbmc-libre/PKGBUILD
+++ b/libre/xbmc-libre/PKGBUILD
@@ -1,79 +1,94 @@
-# $Id: PKGBUILD 108909 2014-04-07 10:57:58Z spupykin $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: Brad Fanella <bradfanella@archlinux.us>
-# Contributor: [vEX] <niechift.dot.vex.at.gmail.dot.com>
-# Contributor: Zeqadious <zeqadious.at.gmail.dot.com>
-# Contributor: BlackIkeEagle < ike DOT devolder AT gmail DOT com >
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# $Id: PKGBUILD 110974 2014-05-11 14:59:58Z idevolder $
+# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor (Arch): Brad Fanella <bradfanella@archlinux.us>
+# Contributor (Arch): [vEX] <niechift.dot.vex.at.gmail.dot.com>
+# Contributor (Arch): Zeqadious <zeqadious.at.gmail.dot.com>
+# Contributor (Arch): BlackIkeEagle < ike DOT devolder AT gmail DOT com >
+# Maintainer: André Silva <emulatorman@parabola.nu>
_prefix=/usr
_pkgname=xbmc
pkgname=xbmc-libre
-pkgver=12.3
-_codename=Frodo
-pkgrel=14
-pkgdesc="A software media player and entertainment hub for digital media, without nonfree addons and unrar support"
+pkgver=13.0
+_codename=Gotham_r2
+pkgrel=3
+pkgdesc="A software media player and entertainment hub for digital media (Gotham version), without nonfree addons and unrar support"
arch=('i686' 'x86_64')
url="http://xbmc.org"
license=('GPL' 'custom')
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
-depends=('hicolor-icon-theme' 'fribidi' 'lzo2' 'smbclient' 'libtiff' 'libva'
- 'libpng' 'libcdio' 'yajl' 'libmariadbclient' 'libjpeg-turbo' 'libsamplerate'
- 'glew' 'libssh' 'libmicrohttpd' 'libxrandr' 'sdl_mixer' 'sdl_image' 'python2'
- 'libass' 'libmpeg2' 'libmad' 'libmodplug' 'jasper' 'rtmpdump' 'unzip' 'mesa-demos'
- 'xorg-xdpyinfo' 'libbluray' 'libnfs' 'afpfs-ng' 'libshairport' 'avahi' 'bluez-libs' 'glu'
- 'tinyxml' 'taglib' 'ffmpeg-compat')
-makedepends=('boost' 'cmake' 'gperf' 'nasm' 'libxinerama' 'zip' 'libvdpau' 'libcec'
- 'udisks' 'upower' 'mesa' 'doxygen' 'swig' 'java-environment')
-optdepends=('libcec: support for Pulse-Eight USB-CEC adapter'
- 'lirc: remote controller support'
- 'udisks: automount external drives'
- 'upower: used to trigger power management functionality'
- 'xorg-xinit: autostart xbmc')
+replaces=($_pkgname)
+conflicts=($_pkgname)
+provides=($_pkgname=$pkgver)
+depends=(
+'avahi' 'ffmpeg' 'hicolor-icon-theme' 'libcdio' 'libmad' 'libmicrohttpd'
+'libmpeg2' 'libmysqlclient' 'libsamplerate' 'libssh' 'libxrandr' 'libxslt'
+'lzo2' 'mesa' 'mesa-demos' 'python2' 'sdl_image' 'sdl_mixer' 'smbclient'
+'taglib' 'tinyxml' 'unzip' 'xorg-xdpyinfo' 'yajl'
+)
+makedepends=(
+'afpfs-ng' 'libnfs' 'libplist' 'shairplay' 'libcec' 'boost' 'cmake' 'doxygen'
+'gperf' 'jasper' 'java-runtime-headless' 'nasm' 'swig' 'taglib' 'udisks'
+'upower' 'zip'
+)
+optdepends=(
+'afpfs-ng: Apple File Protocol suport'
+'libnfs: NFS Share support'
+'libplist: AirPlay support'
+'shairplay: AirPlay support'
+'libcec: Pulse-Eight USB-CEC adapter support'
+'pulseaudio: for pulseaudio support'
+'lirc: remote controller support'
+'xorg-xinit: autostart xbmc'
+'udisks: automount external drives'
+'upower: used to trigger power management functionality'
+)
install="${_pkgname}.install"
-mksource=("http://mirrors.xbmc.org/releases/source/xbmc-$pkgver.tar.gz")
-source=("https://repo.parabolagnulinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz"
- "xbmc.service"
- "polkit.rules"
- "libass.patch::https://bugs.archlinux.org/index.php?getfile=11285")
-mkmd5sums=('7ae385ebf8e5cfcb917393235e6efbdb')
-md5sums=('7c71af50af55b097e4365a58b70754e8'
- 'de331663cc8adc94f2fe44a262cfff58'
- '02f7951824ee13103344f36009c0ef2a'
- '7fd6399d2ffbdf06b724f0cc2efa0784')
+mksource=(
+ "xbmc-$pkgver.tar.gz::https://github.com/xbmc/xbmc/archive/$pkgver-$_codename.tar.gz"
+)
+source=(
+ "https://repo.parabolagnulinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz"
+ "xbmc.service"
+ "polkit.rules"
+ "enable-external-ffmpeg.patch"
+ '0001-rtmp-check-m_rtmp-for-non-NULL-fixes-crashes-with-mi.patch'
+)
+mksha256sums=(
+ '663b99f3e196ead51d90f06ccfa864b4e5ade385dfc5972acb0f854d525f2903'
+)
+sha256sums=(
+ 'a23b416f7cdc5f2b3d5544fc9a2ac22c4cdddd117ba82fe8aab25805552ff974'
+ 'f83097388e6c9b301cac78de95cf1797d4aaa11e4021734c28d643320e76d919'
+ '4ea78374a08e13a64dcf6a424b111b8bfc11de03ed5829744fc6d9b5fc1ec96e'
+ '0239e33e87292c7340ed2092f2b5f1e82f5e283b1f763fb125b3aee78f50c355'
+ '4d643f1bc5a0f9a6bba36c8c2c2d220351acb58172c57d86417b67c02d39fa2b'
+)
mksource() {
- cd "${srcdir}/xbmc-$pkgver-$_codename"
+ cd "$srcdir/xbmc-$pkgver-$_codename"
- # remove unrar files from the source
+ msg2 "remove nonfree unRAR utility files from the source"
rm -rv lib/UnrarXLib
}
prepare() {
- cd "${srcdir}/xbmc-$pkgver-$_codename"
+ cd "$srcdir/xbmc-$pkgver-$_codename"
+ patch -p1 -i "$srcdir/enable-external-ffmpeg.patch"
+ patch -p1 -i "$srcdir/0001-rtmp-check-m_rtmp-for-non-NULL-fixes-crashes-with-mi.patch"
- patch -p0 <$srcdir/libass.patch
-
- # fix lsb_release dependency
- sed -i -e 's:/usr/bin/lsb_release -d:cat /etc/arch-release:' xbmc/utils/SystemInfo.cpp
- sed -i -e 's:#include <libsmbclient.h>:#include <samba-4.0/libsmbclient.h>:' xbmc/filesystem/{SmbFile,SMBDirectory}.cpp
-
- # use addons.xml from Parabola server (without nonfree addons support)
- sed -i -e 's|mirrors[.]xbmc[.]org/addons/frodo/addons.xml|repo.parabolagnulinux.org/other/xbmc-libre/addons/frodo/addons.xml|' addons/repository.xbmc.org/addon.xml
+ msg2 "Use addons.xml from Parabola server (without nonfree addons support)"
+ sed -i -e 's|mirrors[.]xbmc[.]org/addons/gotham/addons.xml|repo.parabolagnulinux.org/other/xbmc-libre/addons/gotham/addons.xml|' addons/repository.xbmc.org/addon.xml
}
build() {
- cd "${srcdir}/xbmc-$pkgver-$_codename"
+ cd "$srcdir/xbmc-$pkgver-$_codename"
# Bootstrapping XBMC
./bootstrap
# Configuring XBMC
export PYTHON_VERSION=2 # external python v2
- export PKG_CONFIG_PATH=/usr/lib/ffmpeg-compat/pkgconfig:$PKG_CONFIG_PATH
./configure --prefix=$_prefix --exec-prefix=$_prefix \
--disable-debug \
--enable-optimizations \
@@ -105,36 +120,41 @@ build() {
--enable-libusb \
--enable-libcec \
--enable-external-libraries \
- --enable-external-ffmpeg \
--disable-non-free
+
# Now (finally) build
make
}
package() {
- cd "${srcdir}/xbmc-$pkgver-$_codename"
+ cd "$srcdir/xbmc-$pkgver-$_codename"
# Running make install
- make DESTDIR="${pkgdir}" install
+ make DESTDIR="$pkgdir" install
- # run feh with python2
- sed -i -e 's/python/python2/g' ${pkgdir}${_prefix}/bin/xbmc
-
- # lsb_release fix
- sed -i -e 's/which lsb_release &> \/dev\/null/\[ -f \/etc\/arch-release ]/g' "${pkgdir}${_prefix}/bin/xbmc"
- sed -i -e "s/lsb_release -a 2> \/dev\/null | sed -e 's\/\^\/ \/'/cat \/etc\/arch-release/g" "${pkgdir}${_prefix}/bin/xbmc"
+ # Python2
+ sed 's/python/python2/g' -i \
+ "$pkgdir"/usr/{bin/xbmc,share/xbmc/addons/service.xbmc.versioncheck/service.py}
# Tools
- install -D -m 0755 "${srcdir}/xbmc-$pkgver-$_codename/xbmc-xrandr" "${pkgdir}${_prefix}/share/xbmc/xbmc-xrandr"
- install -D -m 0755 "${srcdir}/xbmc-$pkgver-$_codename/tools/TexturePacker/TexturePacker" "${pkgdir}${_prefix}/share/xbmc/"
+ msg2 "Tools"
+ install -D -m 0755 "$srcdir/xbmc-$pkgver-$_codename/xbmc-xrandr" \
+ "${pkgdir}$_prefix/lib/xbmc/xbmc-xrandr"
+ install -D -m 0755 "$srcdir/xbmc-$pkgver-$_codename/tools/TexturePacker/TexturePacker" \
+ "${pkgdir}$_prefix/lib/xbmc/"
# Licenses
- install -d -m 0755 "${pkgdir}${_prefix}/share/licenses/${_pkgname}"
+ msg2 "Copy licenses"
+ install -dm755 "${pkgdir}$_prefix/share/licenses/$_pkgname"
for licensef in LICENSE.GPL copying.txt; do
- mv "${pkgdir}${_prefix}/share/doc/xbmc/${licensef}" "${pkgdir}${_prefix}/share/licenses/${_pkgname}"
+ mv "${pkgdir}$_prefix/share/doc/xbmc/$licensef" \
+ "${pkgdir}$_prefix/share/licenses/$_pkgname"
done
- install -Dm0644 $srcdir/xbmc.service $pkgdir/usr/lib/systemd/system/xbmc.service
-# install -Dm0644 $srcdir/polkit.rules $pkgdir/usr/share/polkit-1/rules.d/10-xbmc.rules
-# chmod 0700 $pkgdir/usr/share/polkit-1/rules.d/
+ # install systemd service
+ install -Dm0644 "$srcdir/xbmc.service" "$pkgdir/usr/lib/systemd/system/xbmc.service"
+
+ # install polkit rules
+ install -dm700 "$pkgdir/user/share/polkit-1/rules.d"
+ install -Dm0644 "$srcdir/polkit.rules" "$pkgdir/user/share/polkit-1/rules.d/10-xbmc.rules"
}
# vim:set ts=2 sw=2 et:
diff --git a/libre/xbmc-libre/enable-external-ffmpeg.patch b/libre/xbmc-libre/enable-external-ffmpeg.patch
new file mode 100644
index 000000000..2bc1aaf03
--- /dev/null
+++ b/libre/xbmc-libre/enable-external-ffmpeg.patch
@@ -0,0 +1,100 @@
+diff -rupN a/configure.in b/configure.in
+--- a/configure.in 2014-05-03 21:03:25.000000000 +0000
++++ b/configure.in 2014-05-07 09:56:30.039177391 +0000
+@@ -600,7 +600,7 @@ PKG_PROG_PKG_CONFIG
+ MAKE="${MAKE:-make}"
+ OBJDUMP="${OBJDUMP:-objdump}"
+
+-use_external_ffmpeg=no
++use_external_ffmpeg=yes
+ use_static_ffmpeg=no
+
+ # ffmpeg needs the output of uname -s (e.x. linux, darwin) for the target_os
+@@ -632,7 +632,7 @@ case $host in
+ use_arch="x86"
+ use_cpu="i686"
+ fi
+- use_static_ffmpeg=yes
++ use_static_ffmpeg=no
+ ;;
+ x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
+ ARCH="x86_64-linux"
+@@ -640,7 +640,7 @@ case $host in
+ use_arch="x86_64"
+ use_cpu="x86_64"
+ fi
+- use_static_ffmpeg=yes
++ use_static_ffmpeg=no
+ ;;
+ i386-*-freebsd*)
+ ARCH="x86-freebsd"
+@@ -696,7 +696,7 @@ case $host in
+ use_sdl=no
+ use_x11=no
+ use_wayland=no
+- use_static_ffmpeg=yes
++ use_static_ffmpeg=no
+ ;;
+ arm*-*linux-android*)
+ target_platform=target_android
+diff -rupN a/lib/DllAvCodec.h b/lib/DllAvCodec.h
+--- a/lib/DllAvCodec.h 2014-05-03 21:03:25.000000000 +0000
++++ b/lib/DllAvCodec.h 2014-05-07 10:10:06.298165915 +0000
+@@ -43,6 +43,7 @@ extern "C" {
+
+ #if (defined USE_EXTERNAL_FFMPEG)
+ #include <libavcodec/avcodec.h>
++ #include <libavutil/frame.h>
+ #else
+ #include "libavcodec/avcodec.h"
+ #endif
+diff -rupN a/lib/DllAvUtil.h b/lib/DllAvUtil.h
+--- a/lib/DllAvUtil.h 2014-05-03 21:03:25.000000000 +0000
++++ b/lib/DllAvUtil.h 2014-05-07 10:17:31.415798448 +0000
+@@ -31,33 +31,19 @@
+ #endif
+
+ extern "C" {
+-#if (defined USE_EXTERNAL_FFMPEG)
+- #include <libavutil/avutil.h>
+- // for av_get_default_channel_layout
+- #include <libavutil/audioconvert.h>
+- #include <libavutil/crc.h>
+- #include <libavutil/fifo.h>
+- // for LIBAVCODEC_VERSION_INT:
+- #include <libavcodec/avcodec.h>
+- // for enum AVSampleFormat
+- #include <libavutil/samplefmt.h>
+- #include <libavutil/opt.h>
+- #include <libavutil/mem.h>
+- #include <libavutil/mathematics.h>
+- #if (defined USE_LIBAV_HACKS)
+- #include "xbmc-libav-hacks/libav_hacks.h"
+- #endif
+-#else
+- #include "libavutil/avutil.h"
+- //for av_get_default_channel_layout
+- #include "libavutil/audioconvert.h"
+- #include "libavutil/crc.h"
+- #include "libavutil/opt.h"
+- #include "libavutil/mem.h"
+- #include "libavutil/fifo.h"
+- // for enum AVSampleFormat
+- #include "libavutil/samplefmt.h"
+-#endif
++#include <libavutil/avutil.h>
++#include <libavutil/frame.h>
++// for av_get_default_channel_layout
++#include <libavutil/audioconvert.h>
++#include <libavutil/crc.h>
++#include <libavutil/fifo.h>
++// for LIBAVCODEC_VERSION_INT:
++#include <libavcodec/avcodec.h>
++// for enum AVSampleFormat
++#include <libavutil/samplefmt.h>
++#include <libavutil/opt.h>
++#include <libavutil/mem.h>
++#include <libavutil/mathematics.h>
+ }
+
+ #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(52,29,100)
diff --git a/libre/xbmc-pvr-addons-lts/PKGBUILD b/libre/xbmc-pvr-addons-lts/PKGBUILD
new file mode 100644
index 000000000..7b647d7d9
--- /dev/null
+++ b/libre/xbmc-pvr-addons-lts/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 110811 2014-05-07 15:05:32Z spupykin $
+# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+
+_pkgname=xbmc-pvr-addons
+pkgname=xbmc-pvr-addons-lts
+pkgver=20131106.Frodo
+pkgrel=1
+pkgdesc="XBMC PVR add-ons for current stable xbmc"
+arch=('i686' 'x86_64')
+url="https://github.com/opdenkamp/xbmc-pvr-addons"
+license=('GPL3')
+depends=('xbmc-libre-lts' 'libmysqlclient')
+makedepends=('git' 'libmysqlclient' 'boost')
+optdepends=('tvheadend-git: tvheadend backend' 'mythtv: mythtv backend')
+conflicts=('xbmc-pvr-addons-git' 'xbmc-pvr-addons')
+source=("git://github.com/fetzerch/xbmc-pvr-addons.git#branch=frodo")
+md5sums=('SKIP')
+
+build() {
+ cd "$srcdir/$_pkgname"
+ ./bootstrap
+ ./configure --prefix=/usr --enable-addons-with-dependencies
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgname"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/libre/xchat-libre/PKGBUILD b/libre/xchat-libre/PKGBUILD
index 4f962dcb3..1214dc947 100644
--- a/libre/xchat-libre/PKGBUILD
+++ b/libre/xchat-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 186065 2013-05-20 20:17:32Z eric $
-# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Maintainer (Arch): Eric Bélanger <eric@archlinux.org>
# Maintainer (ConnochaetOS): Henry Jensen <hjensen@connochaetos.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=xchat
pkgname=xchat-libre
diff --git a/libre/xmlstarlet/PKGBUILD b/libre/xmlstarlet/PKGBUILD
index a06daf063..76595486f 100644
--- a/libre/xmlstarlet/PKGBUILD
+++ b/libre/xmlstarlet/PKGBUILD
@@ -1,7 +1,7 @@
# From https://aur.archlinux.org/packages.php?ID=20101.
-# Maintainer: PyroPeter <abi1789@googlemail.com>
-# Contributor: BlackEagle <ike.devolder@scarlet.be>
-# Contributor: chochem <chochem@gmail.com>
+# Maintainer (Arch): PyroPeter <abi1789@googlemail.com>
+# Contributor (Arch): BlackEagle <ike.devolder@scarlet.be>
+# Contributor (Arch): chochem <chochem@gmail.com>
pkgname=xmlstarlet
pkgver=1.3.1
diff --git a/libre/xorg-fonts-100dpi-libre/PKGBUILD b/libre/xorg-fonts-100dpi-libre/PKGBUILD
index 3f88f1cee..066904a5a 100644
--- a/libre/xorg-fonts-100dpi-libre/PKGBUILD
+++ b/libre/xorg-fonts-100dpi-libre/PKGBUILD
@@ -1,7 +1,7 @@
# $Id: PKGBUILD 71678 2010-03-08 11:58:02Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
-# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
+# Maintainer (Arch): Alexander Baldeck <alexander@archlinux.org>
+# Contributor (Arch): Jan de Groot <jgc@archlinux.org>
+# Maintainer: fauno <fauno@kiwwwi.com.ar>
pkgname=xorg-fonts-100dpi-libre
pkgver=1.0.3
pkgrel=2
diff --git a/libre/xorg-fonts-75dpi-libre/PKGBUILD b/libre/xorg-fonts-75dpi-libre/PKGBUILD
index c262229fc..6921b4ccc 100644
--- a/libre/xorg-fonts-75dpi-libre/PKGBUILD
+++ b/libre/xorg-fonts-75dpi-libre/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 71681 2010-03-08 12:06:26Z jgc $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# Maintainer (Arch): Alexander Baldeck <alexander@archlinux.org>
+# Contributor (Arch): Jan de Groot <jgc@archlinux.org>
pkgname=xorg-fonts-75dpi-libre
pkgver=1.0.3
pkgrel=2
diff --git a/libre/xorg-fonts-type1-libre/PKGBUILD b/libre/xorg-fonts-type1-libre/PKGBUILD
index 4904a4477..e38cc63e3 100644
--- a/libre/xorg-fonts-type1-libre/PKGBUILD
+++ b/libre/xorg-fonts-type1-libre/PKGBUILD
@@ -1,5 +1,5 @@
# $Id: PKGBUILD 150375 2012-02-17 09:54:09Z allan $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer (Arch): Jan de Groot <jgc@archlinux.org>
pkgname=xorg-fonts-type1-libre
pkgver=7.4
diff --git a/libre/xscreensaver-libre/PKGBUILD b/libre/xscreensaver-libre/PKGBUILD
index 8ab5ec06a..7fb26c711 100644
--- a/libre/xscreensaver-libre/PKGBUILD
+++ b/libre/xscreensaver-libre/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 201451 2013-12-12 05:18:26Z eric $
-# Maintainer: Eric Bélanger <eric@archlinux.org>
-# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Maintainer (Arch): Eric Bélanger <eric@archlinux.org>
+# Maintainer: André Silva <emulatorman@parabola.nu>
_pkgname=xscreensaver
pkgname=xscreensaver-libre
diff --git a/libre/xsp/PKGBUILD b/libre/xsp/PKGBUILD
index ef6fe97c2..93867938d 100644
--- a/libre/xsp/PKGBUILD
+++ b/libre/xsp/PKGBUILD
@@ -1,6 +1,6 @@
# $Id: PKGBUILD 188153 2013-06-10 16:36:32Z daniel $
-# Maintainer: Daniel Isenmann <daniel@archlinux.org>
-# Contributor: Tobias Kieslich <tobias@justdreams.de>
+# Maintainer (Arch): Daniel Isenmann <daniel@archlinux.org>
+# Contributor (Arch): Tobias Kieslich <tobias@justdreams.de>
pkgname=xsp
pkgver=3.0.11