summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-08-09 00:02:24 +0000
committerroot <root@rshg054.dnsready.net>2012-08-09 00:02:24 +0000
commita28736b03b50ff37ce2cd0fb2fa1ef2e37508108 (patch)
treead764bf5ccbcea902e6cd4d189364e0411bd67f8
parentef815a5d80eecd4ba0679a376386741c374e0d1b (diff)
Thu Aug 9 00:02:24 UTC 2012
-rw-r--r--community/aqbanking/PKGBUILD8
-rw-r--r--community/bird/PKGBUILD11
-rw-r--r--community/bird/bird.rc37
-rw-r--r--community/datemath/PKGBUILD11
-rw-r--r--community/datemath/y2k.patch29
-rw-r--r--community/ecryptfs-utils/PKGBUILD9
-rw-r--r--community/freerdp/PKGBUILD11
-rw-r--r--community/gwenhywfar/PKGBUILD9
-rw-r--r--community/ktoblzcheck/PKGBUILD6
-rw-r--r--community/libcec/PKGBUILD8
-rw-r--r--community/linux-tools/PKGBUILD62
-rw-r--r--community/linux-tools/usbipd.conf3
-rw-r--r--community/linux-tools/usbipd.rc34
-rw-r--r--community/linux-tools/usbipd.service8
-rw-r--r--community/php-memcached/PKGBUILD8
-rw-r--r--community/python2-basemap/PKGBUILD6
-rw-r--r--community/tomoyo-tools/PKGBUILD8
-rw-r--r--community/vidalia/PKGBUILD16
-rw-r--r--extra/audacity/PKGBUILD9
-rw-r--r--extra/cscope/PKGBUILD12
-rw-r--r--extra/kdeadmin/PKGBUILD8
-rw-r--r--extra/kdepim/PKGBUILD38
-rw-r--r--extra/kradio/PKGBUILD12
-rw-r--r--extra/libimobiledevice/HOME-segfault.patch14
-rw-r--r--extra/libimobiledevice/PKGBUILD12
-rw-r--r--extra/pekwm/PKGBUILD25
-rw-r--r--extra/proftpd/PKGBUILD18
-rw-r--r--extra/samba/PKGBUILD8
-rw-r--r--libre/ghostscript-libre/PKGBUILD14
-rw-r--r--libre/syslinux/PKGBUILD29
-rw-r--r--libre/syslinux/avoid-using-ext2_fs.patch965
-rw-r--r--libre/syslinux/rePKGBUILD12
-rw-r--r--libre/virtualbox-libre-modules-lts/PKGBUILD6
-rw-r--r--libre/virtualbox-libre/.directory3
-rw-r--r--libre/virtualbox-libre/PKGBUILD54
-rw-r--r--libre/virtualbox-libre/vboxweb.conf12
-rw-r--r--testing/net-tools/Makefile.patch17
-rw-r--r--testing/net-tools/PKGBUILD18
-rw-r--r--testing/network-manager-applet/PKGBUILD38
-rw-r--r--testing/network-manager-applet/network-manager-applet.install18
-rw-r--r--testing/networkmanager-openconnect/PKGBUILD31
-rw-r--r--testing/networkmanager-openconnect/networkmanager-openconnect.install16
-rw-r--r--testing/networkmanager-openvpn/PKGBUILD31
-rw-r--r--testing/networkmanager-openvpn/networkmanager-openvpn.install11
-rw-r--r--testing/networkmanager-pptp/PKGBUILD31
-rw-r--r--testing/networkmanager-pptp/networkmanager-pptp.install11
-rw-r--r--testing/networkmanager-vpnc/PKGBUILD31
-rw-r--r--testing/networkmanager-vpnc/networkmanager-vpnc.install11
-rw-r--r--testing/networkmanager/NetworkManager.conf2
-rw-r--r--testing/networkmanager/PKGBUILD72
-rw-r--r--testing/networkmanager/disable_set_hostname.patch19
-rw-r--r--testing/networkmanager/dnsmasq-path.patch30
-rw-r--r--testing/networkmanager/networkmanager.install9
-rw-r--r--testing/networkmanager/systemd-fallback.patch470
54 files changed, 2193 insertions, 208 deletions
diff --git a/community/aqbanking/PKGBUILD b/community/aqbanking/PKGBUILD
index 34307fd4b..60dc5a9b5 100644
--- a/community/aqbanking/PKGBUILD
+++ b/community/aqbanking/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 61641 2012-01-05 10:54:39Z spupykin $
+# $Id: PKGBUILD 74854 2012-08-07 14:17:14Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: David Moore <davidm@sjsoft.com>
pkgname=aqbanking
-pkgver=5.0.21
-_dnrel=91
+pkgver=5.0.25
+_dnrel=95
pkgrel=1
pkgdesc="A library for online banking and financial applications"
arch=(i686 x86_64)
@@ -14,7 +14,7 @@ license=('GPL')
depends=('gwenhywfar' 'ktoblzcheck' 'libofx')
options=('!makeflags' '!libtool')
source=("aqbanking-$pkgver.tar.gz::http://www2.aquamaniac.de/sites/download/download.php?package=03&release=${_dnrel}&file=01&dummy=aqbanking-$pkgver.tar.gz")
-md5sums=('634dac2c82c583ed6643678bc214026e')
+md5sums=('b238639962128ce25db81870f65173d9')
build() {
cd $srcdir/aqbanking-$pkgver
diff --git a/community/bird/PKGBUILD b/community/bird/PKGBUILD
index 084182dfa..ebc9f9ac1 100644
--- a/community/bird/PKGBUILD
+++ b/community/bird/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 69079 2012-04-08 23:33:54Z seblu $
+# $Id: PKGBUILD 74872 2012-08-08 02:08:13Z seblu $
# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
pkgbase=bird
pkgname=('bird' 'bird6')
-pkgver=1.3.7
-pkgrel=2
+pkgver=1.3.8
+pkgrel=1
arch=('i686' 'x86_64')
url='http://bird.network.cz/'
license=('GPL2')
@@ -14,8 +14,8 @@ source=("ftp://bird.network.cz/pub/bird/${pkgname}-${pkgver}.tar.gz"
'bird.conf'
'bird.service'
'bird6.service')
-md5sums=('c400b008ef834d9e7288dcdbe41b7c15'
- '1a4b98756d64f52333a83eff2e95d233'
+md5sums=('965fee1be1d5cd45ceef3926e49c18ce'
+ '5e5346a057f187f56cce928b7e423636'
'25241a4d7ef639506e0080431b2c1690'
'e82a0519dca0b289685fda44787f5911'
'c32e7f6cf1be6ed6f9aa98feea25176d')
@@ -69,7 +69,6 @@ package_bird6 () {
# iniscripts files
install -D -m 755 "$srcdir/bird.rc" "$pkgdir/etc/rc.d/bird6"
install -D -m 644 "$srcdir/bird.conf" "$pkgdir/etc/conf.d/bird6"
- sed -i 's/bird/bird6/' "$pkgdir/etc/rc.d/bird6"
# systemd config file
install -D -m 644 "$srcdir/bird6.service" "$pkgdir/usr/lib/systemd/system/bird6.service"
}
diff --git a/community/bird/bird.rc b/community/bird/bird.rc
index 95fe65217..a3aa5e4ad 100644
--- a/community/bird/bird.rc
+++ b/community/bird/bird.rc
@@ -4,31 +4,30 @@
. /etc/rc.d/functions
. /etc/conf.d/${0##*/}
-NAME=bird
-DAEMON=/usr/sbin/bird
+DAEMON=/usr/sbin/${0##*/}
PID=$(pidof -o %PPID $DAEMON)
case "$1" in
- start)
- stat_busy "Starting $NAME daemon"
- [[ ! $PID ]] && $DAEMON $DAEMON_OPTS && add_daemon $NAME && stat_done && exit 0
- stat_fail
- ;;
+ start)
+ stat_busy "Starting ${0##*/} daemon"
+ [[ ! $PID ]] && $DAEMON $DAEMON_OPTS && add_daemon ${0##*/} && stat_done && exit 0
+ stat_fail
+ ;;
stop)
- stat_busy "Stopping $NAME daemon"
- [[ $PID ]] && kill $PID &> /dev/null && rm_daemon $NAME && stat_done && exit 0
- stat_fail
- ;;
+ stat_busy "Stopping ${0##*/} daemon"
+ [[ $PID ]] && kill $PID &> /dev/null && rm_daemon ${0##*/} && stat_done && exit 0
+ stat_fail
+ ;;
restart)
- $0 stop
- $0 start
- exit 0
- ;;
- *)
- echo "usage: ${0##*/} {start|stop|restart}" >&2
- ;;
+ $0 stop
+ $0 start
+ exit 0
+ ;;
+ *)
+ echo "usage: ${0##*/} {start|stop|restart}" >&2
+ ;;
esac
exit 1
-# vim:set ts=2 sw=2 ft=sh noet:
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/datemath/PKGBUILD b/community/datemath/PKGBUILD
index a79868529..23688f4d4 100644
--- a/community/datemath/PKGBUILD
+++ b/community/datemath/PKGBUILD
@@ -1,21 +1,24 @@
-# $Id: PKGBUILD 65110 2012-02-20 04:48:43Z spupykin $
+# $Id: PKGBUILD 74846 2012-08-07 05:46:50Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Todd Musall <tmusall@comcast.net>
# Contributor: Todd Musall <tmusall@comcast.net>
pkgname=datemath
pkgver=2.0.10
-pkgrel=3
+pkgrel=4
pkgdesc="Command line date and time math utility."
arch=('i686' 'x86_64')
url="http://www.unixwiz.net/tools/datemath.html"
license=("GPL")
depends=('glibc')
-source=(http://www.unixwiz.net/tools/$pkgname.tar.gz)
-md5sums=('2c369d70a43313b71dbe3c7cc50207de')
+source=(http://www.unixwiz.net/tools/$pkgname.tar.gz
+ y2k.patch)
+md5sums=('2c369d70a43313b71dbe3c7cc50207de'
+ '87758503414a967f06566b94523fc010')
build() {
cd $srcdir
+ patch -Np0 <$srcdir/y2k.patch
make
install -D -m755 $srcdir/datemath $pkgdir/usr/bin/datemath
}
diff --git a/community/datemath/y2k.patch b/community/datemath/y2k.patch
new file mode 100644
index 000000000..4605ad505
--- /dev/null
+++ b/community/datemath/y2k.patch
@@ -0,0 +1,29 @@
+diff -Naur ../datemath/util.c ./util.c
+--- ../datemath/util.c 2004-03-06 18:27:59.000000000 +0100
++++ ./util.c 2012-08-01 09:37:30.767738221 +0200
+@@ -18,6 +18,7 @@
+ #include "defs.h"
+
+ int century19_year = 40; /* 0..39 = 2000 / 40..99 = 1999 */
++static int century; /* may not be 1900... */
+
+ /*
+ * jultoyymm()
+@@ -35,6 +36,8 @@
+
+ if (mdy[YY] < 1900) /* too early? */
+ mdy[YY] = 1900;
++
++ century = mdy[YY] / 100;
+
+ mdy[YY] %= 100; /* strip off 19xx */
+
+@@ -59,7 +62,7 @@
+ mdy[YY] = yymm / 100;
+ mdy[DD] = eflag ? daysinmm(mdy[MM], mdy[YY]) : 1;
+
+- mdy[YY] += 1900;
++ mdy[YY] += century * 100;
+
+ if (rv = rmdyjul(mdy, &jdate), rv < 0)
+ die("bad date conversion in yymmtojul-(%d)", rv);
diff --git a/community/ecryptfs-utils/PKGBUILD b/community/ecryptfs-utils/PKGBUILD
index 3a892f8db..7bfc5c9d6 100644
--- a/community/ecryptfs-utils/PKGBUILD
+++ b/community/ecryptfs-utils/PKGBUILD
@@ -1,17 +1,18 @@
-# $Id: PKGBUILD 74760 2012-08-03 12:32:39Z tredaelli $
+# $Id: PKGBUILD 74862 2012-08-07 15:20:01Z tredaelli $
# Maintainer: Timothy Redaelli <timothy.redaelli@gmail.com>
# Contributor: Richard Murri <admin@richardmurri.com>
# Contributor: Michal Krenek <mikos@sg1.cz>
pkgname=ecryptfs-utils
pkgver=100
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
pkgdesc="Enterprise-class stacked cryptographic filesystem for Linux"
url="https://launchpad.net/ecryptfs"
license=('GPL')
-makedepends=('swig' 'intltool' 'gettext')
-depends=('keyutils' 'nss' 'python2')
+makedepends=('swig' 'intltool' 'gettext' 'python2')
+depends=('keyutils' 'nss' 'openssl')
+optdepends=('python2: for python module')
source=("http://launchpad.net/ecryptfs/trunk/${pkgver}/+download/${pkgname}_${pkgver}.orig.tar.gz")
options=(!libtool)
md5sums=('efaa5eabbd368268874536036397f73b')
diff --git a/community/freerdp/PKGBUILD b/community/freerdp/PKGBUILD
index 112d1fc57..183d850d0 100644
--- a/community/freerdp/PKGBUILD
+++ b/community/freerdp/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 74601 2012-07-31 12:43:27Z spupykin $
+# $Id: PKGBUILD 74850 2012-08-07 11:38:18Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Stijn Segers <francesco dot borromini at gmail dot com>
pkgname=freerdp
pkgver=1.0.1
-pkgrel=7
+pkgrel=8
pkgdesc="Free RDP client"
arch=('i686' 'x86_64')
url="http://freerdp.sourceforge.net"
@@ -15,11 +15,14 @@ makedepends=('krb5' 'cmake' 'damageproto' 'xmlto' 'docbook-xsl')
conflicts=('freerdp-git')
changelog=${pkgname}.changelog
options=('!libtool')
-source=(https://github.com/downloads/FreeRDP/FreeRDP/FreeRDP-$pkgver.tar.gz)
-md5sums=('c843185e0ff22ce8409954651718f338')
+source=(https://github.com/downloads/FreeRDP/FreeRDP/FreeRDP-$pkgver.tar.gz
+ https://github.com/FreeRDP/FreeRDP/commit/c10866db66c0d462ea7c2c38bb01740bcfb4fcb4.patch)
+md5sums=('c843185e0ff22ce8409954651718f338'
+ '194fd599d0f706ecce772d5187e08385')
build() {
cd `find ${srcdir}/ -type d -name freerdp-\*`
+ patch -Np1 <$srcdir/c10866db66c0d462ea7c2c38bb01740bcfb4fcb4.patch
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
diff --git a/community/gwenhywfar/PKGBUILD b/community/gwenhywfar/PKGBUILD
index 505ac1309..925fe53ea 100644
--- a/community/gwenhywfar/PKGBUILD
+++ b/community/gwenhywfar/PKGBUILD
@@ -1,9 +1,10 @@
-# $Id: PKGBUILD 61643 2012-01-05 10:55:35Z spupykin $
+# $Id: PKGBUILD 74856 2012-08-07 14:18:41Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: William Rea <sillywilly@gmail.com>
pkgname=gwenhywfar
-pkgver=4.3.1
+pkgver=4.3.3
+_dnrel=67
pkgrel=1
pkgdesc="OS abstraction functions for various projects"
arch=(i686 x86_64)
@@ -13,8 +14,8 @@ license=("LGPL")
depends=('openssl' 'gnutls' 'libgcrypt')
makedepends=('gtk2' 'qt')
optdepends=('gtk2' 'qt')
-source=("gwenhywfar-$pkgver.tar.gz::http://www2.aquamaniac.de/sites/download/download.php?package=01&release=65&file=01&dummy=gwenhywfar-$pkgver.tar.gz")
-md5sums=('63370a89befee90436720458d0c81cc5')
+source=("gwenhywfar-$pkgver.tar.gz::http://www2.aquamaniac.de/sites/download/download.php?package=01&release=${_dnrel}&file=01&dummy=gwenhywfar-$pkgver.tar.gz")
+md5sums=('c5b9d52a25960f84f9264a5a5dd484d1')
build() {
pacman -Q gwenhywfar && return 1
diff --git a/community/ktoblzcheck/PKGBUILD b/community/ktoblzcheck/PKGBUILD
index ad3e93f04..2f92c0577 100644
--- a/community/ktoblzcheck/PKGBUILD
+++ b/community/ktoblzcheck/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 61645 2012-01-05 10:56:22Z spupykin $
+# $Id: PKGBUILD 74858 2012-08-07 14:19:39Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Philipp Sandhaus <philipp.sandhaus@gmx.de>
pkgname=ktoblzcheck
-pkgver=1.37
+pkgver=1.39
pkgrel=1
pkgdesc="A library to check account numbers and bank codes of German banks"
arch=(i686 x86_64)
@@ -14,7 +14,7 @@ depends=('gcc-libs' 'python')
optdepends=('perl')
source=(http://downloads.sourceforge.net/sourceforge/ktoblzcheck/ktoblzcheck-$pkgver.tar.gz
ktoblzcheck-python3.patch)
-md5sums=('93b540b5478bfb1b078613cbf1cc2446'
+md5sums=('ef5efd6e2c31aaf6405060ec477c200c'
'a81a697bb3aaeffb7fac0ad7d9166e3f')
build() {
diff --git a/community/libcec/PKGBUILD b/community/libcec/PKGBUILD
index 7ad92a44d..8440defc4 100644
--- a/community/libcec/PKGBUILD
+++ b/community/libcec/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 74756 2012-08-03 11:00:41Z idevolder $
+# $Id: PKGBUILD 74867 2012-08-07 16:06:46Z idevolder $
# Maintainer: BlackIkeEagle <ike DOT devolder AT gmail DOT com>
# Contributor: Philippe Cherel <philippe.cherel@mayenne.org>
pkgname=libcec
-pkgver=1.8.0
+pkgver=1.8.1
pkgrel=1
pkgdesc="Pulse-Eight's libcec for the Pulse-Eight USB-CEC adapter"
arch=('i686' 'x86_64')
@@ -11,8 +11,8 @@ url="https://github.com/Pulse-Eight/libcec"
license=('GPL')
depends=('udev' 'lockdev')
source=("$pkgname-$pkgver.tar.gz::https://github.com/Pulse-Eight/libcec/tarball/$pkgname-$pkgver")
-_srcfolder=Pulse-Eight-libcec-b0a5e4f
-sha256sums=('3725d19cabec4bbd4142fd735bda43d33aad2a4a62b20ef337f395b549e7adec')
+_srcfolder=Pulse-Eight-libcec-34a9cec
+sha256sums=('97cda7935404360b56e3c0698deabcc97548bc357a4e4fecbe89de3db12ca0bc')
options=(!libtool)
build() {
diff --git a/community/linux-tools/PKGBUILD b/community/linux-tools/PKGBUILD
index a0541720d..d5fd8ce8b 100644
--- a/community/linux-tools/PKGBUILD
+++ b/community/linux-tools/PKGBUILD
@@ -1,28 +1,41 @@
-# $Id: PKGBUILD 74810 2012-08-06 02:37:26Z seblu $
+# $Id: PKGBUILD 74870 2012-08-07 22:24:52Z seblu $
# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
pkgbase=linux-tools
-pkgname=('perf' 'cpupower' 'x86_energy_perf_policy')
+pkgname=('perf' 'cpupower' 'x86_energy_perf_policy' 'usbip')
pkgver=3.5
-pkgrel=2
+pkgrel=3
license=('GPL2')
arch=('i686' 'x86_64')
url='http://www.kernel.org'
options=('!strip')
-makedepends=('asciidoc' 'xmlto')
# split packages need all package dependencies set manually in makedepends
-makedepends+=('python2' 'libnewt' 'elfutils' 'pciutils')
+# kernel source deps
+makedepends=('asciidoc' 'xmlto')
+# perf deps
+makedepends+=('perl' 'python2' 'libnewt' 'elfutils')
+# cpupower deps
+makedepends+=('pciutils')
+# usbip deps
+makedepends+=('glib2' 'sysfsutils')
+groups=("$pkgbase")
source=("http://ftp.kernel.org/pub/linux/kernel/v3.x/linux-$pkgver.tar.xz"
# "http://ftp.kernel.org/pub/linux/kernel/v3.x/patch-$pkgver.4.xz"
- 'cpupower.rc'
'cpupower.conf'
+ 'cpupower.rc'
'cpupower.systemd'
- 'cpupower.service')
+ 'cpupower.service'
+ 'usbipd.conf'
+ 'usbipd.rc'
+ 'usbipd.service')
md5sums=('24153eaaa81dedc9481ada8cd9c3b83d'
- '1d9214637968b91706b6e616a100d44b'
'857ccdd0598511e3bf4b63522754dc48'
+ '1d9214637968b91706b6e616a100d44b'
'c0d17b5295fe964623c772a2dd981771'
- '2450e8ff41b30eb58d43b5fffbfde1f4')
+ '2450e8ff41b30eb58d43b5fffbfde1f4'
+ 'e8fac9c45a628015644b4150b139278a'
+ '8a3831d962ff6a9968c0c20fd601cdec'
+ 'ba7c1c513314dd21fb2334fb8417738f')
build() {
# apply stable patching set
@@ -54,11 +67,18 @@ build() {
pushd linux-$pkgver/tools/power/x86/x86_energy_perf_policy
make
popd
+
+ msg2 'Build usbip'
+ pushd linux-$pkgver/drivers/staging/usbip/userspace
+ ./autogen.sh
+ ./configure --prefix=/usr
+ make
+ popd
}
package_perf() {
pkgdesc='Linux kernel performance auditing tool'
- depends=('python2' 'libnewt' 'elfutils')
+ depends=('perl' 'python2' 'libnewt' 'elfutils')
cd linux-$pkgver/tools/perf
make \
@@ -74,7 +94,7 @@ package_perf() {
package_cpupower() {
pkgdesc='Linux kernel tool to examine and tune power saving related features of your processor'
backup=('etc/conf.d/cpupower')
- depends=('pciutils')
+ depends=('bash' 'pciutils')
conflicts=('cpufrequtils')
pushd linux-$pkgver/tools/power/cpupower
@@ -84,7 +104,7 @@ package_cpupower() {
docdir='/usr/share/doc/cpupower' \
install install-man
popd
- # install rc.d script
+ # install daemon scripts
install -Dm 755 $pkgname.rc "$pkgdir/etc/rc.d/$pkgname"
install -Dm 644 $pkgname.conf "$pkgdir/etc/conf.d/$pkgname"
install -Dm 644 $pkgname.service "$pkgdir/usr/lib/systemd/system/$pkgname.service"
@@ -93,10 +113,28 @@ package_cpupower() {
package_x86_energy_perf_policy() {
pkgdesc='Read or write MSR_IA32_ENERGY_PERF_BIAS'
+ depends=('glibc')
cd linux-$pkgver/tools/power/x86/x86_energy_perf_policy
install -Dm 755 x86_energy_perf_policy "$pkgdir/usr/bin/x86_energy_perf_policy"
install -Dm 644 x86_energy_perf_policy.8 "$pkgdir/usr/share/man/man8/x86_energy_perf_policy.8"
}
+package_usbip() {
+ pkgdesc='An USB device sharing system over IP network'
+ depends=('glib2' 'sysfsutils')
+ options=('!libtool')
+
+ pushd linux-$pkgver/drivers/staging/usbip/userspace
+ make install DESTDIR="$pkgdir"
+ popd
+ # module loading
+ install -Dm 644 /dev/null "$pkgdir/usr/lib/modules-load.d/$pkgname.conf"
+ printf 'usbip-core\nusbip-host\n' > "$pkgdir/usr/lib/modules-load.d/$pkgname.conf"
+ # install daemon scripts
+ install -Dm 755 usbipd.rc "$pkgdir/etc/rc.d/usbipd"
+ install -Dm 644 usbipd.conf "$pkgdir/etc/conf.d/usbipd"
+ install -Dm 644 usbipd.service "$pkgdir/usr/lib/systemd/system/usbipd.service"
+}
+
# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/linux-tools/usbipd.conf b/community/linux-tools/usbipd.conf
new file mode 100644
index 000000000..5990b857a
--- /dev/null
+++ b/community/linux-tools/usbipd.conf
@@ -0,0 +1,3 @@
+# vim:set ts=2 sw=2 ft=sh noet:
+
+DAEMON_OPTS=''
diff --git a/community/linux-tools/usbipd.rc b/community/linux-tools/usbipd.rc
new file mode 100644
index 000000000..15a1bcf00
--- /dev/null
+++ b/community/linux-tools/usbipd.rc
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/${0##*/}
+
+DAEMON=/usr/sbin/usbipd
+PID=$(pidof -o %PPID $DAEMON)
+DAEMON_OPTS="--daemon $DAEMON_OPTS"
+
+case "$1" in
+ start)
+ stat_busy "Starting ${0##*/} daemon"
+ [[ ! $PID ]] && $DAEMON $DAEMON_OPTS && add_daemon ${0##*/} && stat_done && exit 0
+ stat_fail
+ ;;
+ stop)
+ stat_busy "Stopping ${0##*/} daemon"
+ [[ $PID ]] && kill $PID &> /dev/null && rm_daemon ${0##*/} && stat_done && exit 0
+ stat_fail
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ exit 0
+ ;;
+ *)
+ echo "usage: ${0##*/} {start|stop|restart}" >&2
+ ;;
+esac
+
+exit 1
+
+# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/linux-tools/usbipd.service b/community/linux-tools/usbipd.service
new file mode 100644
index 000000000..ac2f5f7c1
--- /dev/null
+++ b/community/linux-tools/usbipd.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=USB/IP server
+
+[Service]
+ExecStart=/usr/sbin/usbipd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/community/php-memcached/PKGBUILD b/community/php-memcached/PKGBUILD
index b50ef485b..b03ce8559 100644
--- a/community/php-memcached/PKGBUILD
+++ b/community/php-memcached/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 73393 2012-07-07 05:47:10Z foutrelis $
+# $Id: PKGBUILD 74848 2012-08-07 11:05:47Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
pkgname=php-memcached
-pkgver=2.0.1
-pkgrel=5
+pkgver=2.1.0
+pkgrel=1
pkgdesc="PHP extension for interfacing with memcached via libmemcached library"
arch=('i686' 'x86_64')
url="http://pecl.php.net/package/memcached"
@@ -11,7 +11,7 @@ license=('PHP')
depends=('php' 'libmemcached')
backup=('etc/php/conf.d/memcached.ini')
source=(http://pecl.php.net/get/memcached-$pkgver.tgz)
-sha256sums=('250779594e846b7b31390c384697eb24a5096123b0d3e2f4a1a0b79d14fb1bff')
+sha256sums=('bc4940015be74f47908d410d7b55e10a3d5bf65674036d944c73558227fcc4af')
build() {
cd "$srcdir/memcached-$pkgver"
diff --git a/community/python2-basemap/PKGBUILD b/community/python2-basemap/PKGBUILD
index 9e350af3c..07220bde9 100644
--- a/community/python2-basemap/PKGBUILD
+++ b/community/python2-basemap/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 73031 2012-06-28 18:07:29Z stephane $
+# $Id: PKGBUILD 74860 2012-08-07 15:09:34Z stephane $
# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Julien Morin <jmorin@cp.dias.ie>
pkgname=python2-basemap
-pkgver=1.0.4
+pkgver=1.0.5
pkgrel=1
pkgdesc="Toolkit for plotting data on map projections"
arch=('i686' 'x86_64')
@@ -12,7 +12,7 @@ license=('custom')
depends=('python2-matplotlib' 'geos' 'shapelib' 'python2-numpy' 'python2-httplib2')
optdepends=('python-imaging: Python Imaging Library is only needed for bluemarble and warpimage methods.')
source=("http://downloads.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-${pkgver}/basemap-${pkgver}.tar.gz")
-sha1sums=('b6d312129d2ae7fb612490516cf87daaf18cb033')
+sha1sums=('14b6f5f645febbc73b23e8aea8fdb9e4b4b9adb4')
build() {
cd "${srcdir}/basemap-${pkgver}"
diff --git a/community/tomoyo-tools/PKGBUILD b/community/tomoyo-tools/PKGBUILD
index 3d9a68a18..86d8a19a1 100644
--- a/community/tomoyo-tools/PKGBUILD
+++ b/community/tomoyo-tools/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 62767 2012-01-26 14:20:03Z spupykin $
+# $Id: PKGBUILD 74852 2012-08-07 13:20:49Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Jamie Nguyen <jamie AT tomoyolinux.co.uk>
pkgname=tomoyo-tools
_basever=2.5.0
-_timestamp=20111025
+_timestamp=20120805
_file=53357
pkgver=${_basever}.${_timestamp}
pkgrel=1
@@ -17,11 +17,11 @@ depends=('ncurses')
conflicts=('ccs-tools')
install=tomoyo-tools.install
source=("http://sourceforge.jp/frs/redir.php?f=/tomoyo/${_file}/${pkgname}-${_basever}-${_timestamp}.tar.gz")
-md5sums=('99999779698ea5f44c74d49e8c640ec1')
+md5sums=('cccc7cb7f9492dc53063065f7ccf7b21')
build() {
cd "${srcdir}/${pkgname}"
- make -j1
+ make
}
package() {
diff --git a/community/vidalia/PKGBUILD b/community/vidalia/PKGBUILD
index 29f509fcf..c8b89840e 100644
--- a/community/vidalia/PKGBUILD
+++ b/community/vidalia/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 73256 2012-07-04 13:05:20Z tredaelli $
+# $Id: PKGBUILD 74865 2012-08-07 15:48:23Z tredaelli $
# Maintainer: Timothy Redaelli <timothy.redaelli@gmail.com>
# Contributor: Rorschach <r0rschach@lavabit.com>
pkgname=vidalia
-pkgver=0.2.19
-pkgrel=3
+pkgver=0.2.20
+pkgrel=1
pkgdesc="Controller GUI for Tor"
url="https://www.torproject.org/vidalia"
arch=('i686' 'x86_64')
@@ -12,17 +12,13 @@ license=('GPL')
depends=('qt' 'tor')
makedepends=('cmake')
install=vidalia.install
-source=(https://www.torproject.org/vidalia/dist/$pkgname-$pkgver.tar.gz{,.asc}
- bug6178.patch)
-md5sums=('caf92b44ad2932bbc1c40d6405951c39'
- '1ba45d7c91797e880d79a3fc85818dee'
- 'bdc0855fef6b230ab63a5b523e853d4e')
+source=(https://www.torproject.org/vidalia/dist/$pkgname-$pkgver.tar.gz{,.asc})
+md5sums=('f40a3a1c43f4a1f16322969c0cb6f5bf'
+ '703c872eb865f11027a6d6b02d2e5e72')
build() {
[[ -f /etc/profile.d/qt4.sh ]] && source /etc/profile.d/qt4.sh
- patch -d "$srcdir/$pkgname-$pkgver" -i "$srcdir"/bug6178.patch -p1
-
cd "$srcdir"
mkdir build
cd build
diff --git a/extra/audacity/PKGBUILD b/extra/audacity/PKGBUILD
index d51bb8a57..ef763c86a 100644
--- a/extra/audacity/PKGBUILD
+++ b/extra/audacity/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 162721 2012-06-29 02:41:45Z eric $
+# $Id: PKGBUILD 164991 2012-08-08 01:06:53Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=audacity
pkgver=2.0.1
-pkgrel=1
+pkgrel=2
pkgdesc="A program that lets you manipulate digital audio waveforms"
arch=('i686' 'x86_64')
url="http://audacity.sourceforge.net/"
license=('GPL')
depends=('libmad' 'libid3tag' 'wxgtk' 'lame' 'hicolor-icon-theme'
- 'desktop-file-utils' 'jack' 'soundtouch' 'ffmpeg')
+ 'desktop-file-utils' 'jack' 'soundtouch' 'ffmpeg-compat')
options=('!makeflags')
install=audacity.install
source=(http://audacity.googlecode.com/files/${pkgname}-minsrc-${pkgver}.tar.bz2)
@@ -17,7 +17,8 @@ sha1sums=('366a10f3bd71c4d84c29437fff1e27a8560f691b')
build() {
cd "${srcdir}/${pkgname}-src-${pkgver}"
- WX_CONFIG=/usr/bin/wx-config ./configure --prefix=/usr \
+ WX_CONFIG=/usr/bin/wx-config PKG_CONFIG_PATH+="/usr/lib/ffmpeg-compat/pkgconfig" \
+ ./configure --prefix=/usr \
--with-portaudio --with-libsamplerate \
--without-libresample --with-libmad \
--with-ffmpeg --with-id3tag --with-libflac \
diff --git a/extra/cscope/PKGBUILD b/extra/cscope/PKGBUILD
index 65f665d2e..a77200d2b 100644
--- a/extra/cscope/PKGBUILD
+++ b/extra/cscope/PKGBUILD
@@ -3,18 +3,19 @@
# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=cscope
-pkgver=15.8
+pkgver=15.8.a
+_realver=15.8a
pkgrel=1
pkgdesc="A developers tool for browsing program code"
arch=('i686' 'x86_64')
url="http://cscope.sourceforge.net/"
license=('BSD')
depends=('ncurses' 'sh')
-source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('7114b5838b3edcb3f5821efd444fff06')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${_realver}.tar.gz)
+md5sums=('b5c898ccedcfe2d4aa69537dad73b610')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "${srcdir}/${pkgname}-${_realver}"
sed -i 's|/usr/local/lib/cs|/usr/lib/cs|' contrib/ocs
./configure --prefix=/usr
@@ -22,7 +23,7 @@ build() {
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "${srcdir}/${pkgname}-${_realver}"
make DESTDIR="${pkgdir}" install
install -d ${pkgdir}/usr/lib/cs
@@ -32,3 +33,4 @@ package() {
install -Dm644 xcscope.el "${pkgdir}"/usr/share/emacs/site-lisp/xcscope.el
install -m755 cscope-indexer "${pkgdir}"/usr/bin
}
+
diff --git a/extra/kdeadmin/PKGBUILD b/extra/kdeadmin/PKGBUILD
index 7e2109ba2..af83473b0 100644
--- a/extra/kdeadmin/PKGBUILD
+++ b/extra/kdeadmin/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 164873 2012-08-06 23:16:11Z andrea $
+# $Id: PKGBUILD 164959 2012-08-07 15:57:09Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -8,9 +8,8 @@ pkgname=('kdeadmin-kcron'
'kdeadmin-kuser'
'kdeadmin-system-config-printer-kde')
pkgver=4.9.0
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
-url='http://www.kde.org'
license=('GPL' 'LGPL' 'FDL')
groups=('kde' 'kdeadmin')
makedepends=('cmake' 'automoc4' 'kdebindings-python2' 'system-config-printer-common')
@@ -37,6 +36,7 @@ build() {
package_kdeadmin-kcron() {
pkgdesc='Configure and schedule tasks'
+ url='http://userbase.kde.org/KCron'
depends=('kdelibs')
cd $srcdir/build/kcron
make DESTDIR=$pkgdir install
@@ -71,6 +71,8 @@ package_kdeadmin-system-config-printer-kde() {
url="http://kde.org/applications/system/printerapplet/"
cd $srcdir/build/system-config-printer-kde
make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/system-config-printer-kde
+ make DESTDIR=$pkgdir install
# Use the python2 executable
sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
diff --git a/extra/kdepim/PKGBUILD b/extra/kdepim/PKGBUILD
index 335a5de32..14b1a6b28 100644
--- a/extra/kdepim/PKGBUILD
+++ b/extra/kdepim/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 164921 2012-08-06 23:20:54Z andrea $
+# $Id: PKGBUILD 164965 2012-08-07 16:32:21Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -18,9 +18,10 @@ pkgname=('kdepim-akonadiconsole'
'kdepim-korganizer'
'kdepim-kresources'
'kdepim-ktimetracker'
+ 'kdepim-ktnef'
'kdepim-libkdepim')
pkgver=4.9.0
-pkgrel=2
+pkgrel=3
arch=('i686' 'x86_64')
url='http://pim.kde.org'
license=('GPL' 'LGPL' 'FDL')
@@ -89,6 +90,10 @@ package_kdepim-console() {
install='kdepim.install'
cd "${srcdir}"/build/console
make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kabcclient
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/konsolekalendar
+ make DESTDIR="${pkgdir}" install
}
package_kdepim-kaddressbook() {
@@ -137,6 +142,8 @@ package_kdepim-kleopatra() {
make DESTDIR="${pkgdir}" install
cd "${srcdir}"/build/doc/kleopatra
make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kwatchgnupg
+ make DESTDIR="${pkgdir}" install
}
package_kdepim-kmail() {
@@ -148,8 +155,9 @@ package_kdepim-kmail() {
'kdepim-mimelib' 'kdepim-plugins')
replaces=('kdepim-kmailcvt' 'kdepim-ksendemail' 'kdepim-libksieve'
'kdepim-mimelib' 'kdepim-plugins')
- for i in kmail doc/kmail kmailcvt importwizard ksendemail libksieve \
- messagelist mailfilteragent mailimporter ontologies kontact/plugins/kmail; do
+ for i in kmail doc/kmail kmailcvt archivemailagent backupmail \
+ importwizard ksendemail libksieve messagelist mailfilteragent \
+ mailimporter ontologies kontact/plugins/kmail; do
cd "${srcdir}"/build/${i}
make DESTDIR="${pkgdir}" install
done
@@ -164,6 +172,8 @@ package_kdepim-knode() {
make DESTDIR="${pkgdir}" install
cd "${srcdir}"/build/doc/knode
make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kioslave/news
+ make DESTDIR="${pkgdir}" install
cd "${srcdir}"/build/kontact/plugins/knode
make DESTDIR="${pkgdir}" install
}
@@ -189,7 +199,7 @@ package_kdepim-kontact() {
conflcits=('kdepim-kontactinterfaces')
replaces=('kdepim-kontactinterfaces')
for i in kontact/src doc/kontact kontact/plugins/summary \
- kontact/plugins/specialdates; do
+ kontact/plugins/specialdates doc/kontact-admin; do
cd "${srcdir}"/build/${i}
make DESTDIR="${pkgdir}" install
done
@@ -228,6 +238,16 @@ package_kdepim-ktimetracker() {
make DESTDIR="${pkgdir}" install
}
+package_kdepim-ktnef() {
+ pkgdesc='A viewer/extractor for TNEF files'
+ depends=('kdepim-libkdepim')
+ url="https://projects.kde.org/projects/kde/kdepim/ktnef"
+ cd "${srcdir}"/build/ktnef
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/ktnef
+ make DESTDIR="${pkgdir}" install
+}
+
package_kdepim-libkdepim() {
pkgdesc='Library for KDE PIM'
groups=()
@@ -238,10 +258,10 @@ package_kdepim-libkdepim() {
replaces=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
'kdepim-strigi-analyzer' 'kdepim-akonadi')
for i in akonadi_next calendarsupport incidenceeditor-ng \
- kdgantt2 libkdepim libkdepimdbusinterfaces libkleo libkpgp \
- mailcommon messagecomposer messagecore messageviewer icons \
- strigi-analyzer templateparser plugins/messageviewer \
- plugins/ktexteditor; do
+ kdgantt2 libkdepim libkdepimdbusinterfaces libkleo libkpgp \
+ mailcommon messagecomposer messagecore messageviewer icons \
+ strigi-analyzer templateparser plugins/messageviewer \
+ plugins/ktexteditor; do
cd "${srcdir}"/build/${i}
make DESTDIR="${pkgdir}" install
done
diff --git a/extra/kradio/PKGBUILD b/extra/kradio/PKGBUILD
index f1bf4b731..2acd824e7 100644
--- a/extra/kradio/PKGBUILD
+++ b/extra/kradio/PKGBUILD
@@ -1,20 +1,20 @@
-# $Id: PKGBUILD 163153 2012-07-08 09:31:40Z ibiru $
+# $Id: PKGBUILD 164981 2012-08-07 18:56:07Z eric $
# Maintainer:
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
pkgname=kradio
-pkgver=4.0.4
-pkgrel=2
+pkgver=4.0.5
+pkgrel=1
arch=('i686' 'x86_64')
license=('GPL2')
pkgdesc="A comfortable KDE internet and AM/FM radio application"
url="http://kradio.sourceforge.net/"
depends=('kdebase-runtime' 'lirc-utils' 'libmms' 'ffmpeg')
-makedepends=('automoc4' 'cmake')
+makedepends=('automoc4' 'cmake' 'boost')
install=$pkgname.install
source=("http://downloads.sourceforge.net/$pkgname/kradio4-$pkgver.tar.bz2"{,.asc})
-md5sums=('4b5495a4f1dda21f7201bc8db0d4f95e'
- '51c6d4ec0047d2df595b458bde285012')
+md5sums=('d2ce6b9c12e66c8cdb300013aa0cb26a'
+ '3faef5c46547b14804839f367fd09d29')
build() {
cd "$srcdir"
diff --git a/extra/libimobiledevice/HOME-segfault.patch b/extra/libimobiledevice/HOME-segfault.patch
new file mode 100644
index 000000000..e48e6cb42
--- /dev/null
+++ b/extra/libimobiledevice/HOME-segfault.patch
@@ -0,0 +1,14 @@
+The patch fixes segfault when both $XDG_CONFIG_HOME and $HOME are unset
+Signed-off-by: Maxim Mikityanskiy <maxtram95@gmail.com>
+--- src/userpref.c.orig 2012-06-04 17:04:57.387303630 +0300
++++ src/userpref.c 2012-06-04 17:06:05.741301627 +0300
+@@ -125,6 +125,9 @@
+ const char *cdir = getenv("XDG_CONFIG_HOME");
+ if (!cdir) {
+ cdir = getenv("HOME");
++ if (!cdir) {
++ cdir="/root";
++ }
+ strcpy(__config_dir, cdir);
+ strcat(__config_dir, DIR_SEP_S);
+ strcat(__config_dir, ".config");
diff --git a/extra/libimobiledevice/PKGBUILD b/extra/libimobiledevice/PKGBUILD
index b17bff63f..bc921ac16 100644
--- a/extra/libimobiledevice/PKGBUILD
+++ b/extra/libimobiledevice/PKGBUILD
@@ -1,21 +1,24 @@
-# $Id: PKGBUILD 164368 2012-07-31 19:43:16Z eric $
+# $Id: PKGBUILD 164989 2012-08-08 00:24:19Z tomegun $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Contributor: Gabriel Martinez < reitaka at gmail dot com >
pkgname=libimobiledevice
pkgver=1.1.4
-pkgrel=1
+pkgrel=2
pkgdesc="Is a software library that talks the protocols to support iPhone and iPod Touch devices on Linux"
url="http://libimobiledevice.org/"
arch=('i686' 'x86_64')
license=('GPL2' 'LGPL2.1')
depends=('usbmuxd' 'gnutls' 'libgcrypt')
options=('!libtool')
-source=(http://libimobiledevice.org/downloads/$pkgname-$pkgver.tar.bz2)
+source=(http://libimobiledevice.org/downloads/$pkgname-$pkgver.tar.bz2
+ HOME-segfault.patch)
build() {
cd "$pkgname-$pkgver"
+ patch -p0 < "$srcdir/HOME-segfault.patch"
+
PYTHON=/usr/bin/python2 ./configure --prefix=/usr
make
}
@@ -24,4 +27,5 @@ package() {
cd "$pkgname-$pkgver"
make DESTDIR="$pkgdir" install
}
-md5sums=('3f28cbc6a2e30d34685049c0abde5183')
+md5sums=('3f28cbc6a2e30d34685049c0abde5183'
+ '0de709dbf8e79d0b00cca06f5e61d57c')
diff --git a/extra/pekwm/PKGBUILD b/extra/pekwm/PKGBUILD
index 6b35cbf6f..5ee7323e9 100644
--- a/extra/pekwm/PKGBUILD
+++ b/extra/pekwm/PKGBUILD
@@ -1,26 +1,31 @@
-# $Id: PKGBUILD 151921 2012-03-04 10:39:20Z andrea $
+# $Id: PKGBUILD 164983 2012-08-07 19:26:08Z eric $
# Maintainer:
# Contributor: Kevin Piche <kevin@archlinux.org>
# Contributor: Eddie Lozon <almostlucky@attbi.com>
pkgname=pekwm
-pkgver=0.1.14
+pkgver=0.1.15
pkgrel=1
pkgdesc="A small, fast, functional, and flexible window manager"
arch=('i686' 'x86_64')
license=('GPL')
url='https://www.pekwm.org/projects/pekwm'
depends=('gcc-libs' 'libjpeg' 'libpng' 'libxft' 'libxinerama' 'libxpm' 'libxrandr')
-backup=(etc/pekwm/config
- etc/pekwm/vars
- etc/pekwm/autoproperties
- etc/pekwm/start
- etc/pekwm/keys
- etc/pekwm/mouse
- etc/pekwm/menu)
+backup=(etc/pekwm/autoproperties
+ etc/pekwm/autoproperties_typerules
+ etc/pekwm/config
+ etc/pekwm/config_system
+ etc/pekwm/keys
+ etc/pekwm/menu
+ etc/pekwm/mouse
+ etc/pekwm/mouse_click
+ etc/pekwm/mouse_sloppy
+ etc/pekwm/mouse_system
+ etc/pekwm/start
+ etc/pekwm/vars)
source=("http://www.pekwm.org/projects/pekwm/files/${pkgname}-${pkgver}.tar.bz2"
'pekwm.desktop')
-md5sums=('bb9c01c81fe47620bcd9be0e2e4a10e6'
+md5sums=('4db10ad191b77120429abd5a65c73cec'
'5a78fc6653fbb0b7282ecf7f1f81e2c5')
build() {
diff --git a/extra/proftpd/PKGBUILD b/extra/proftpd/PKGBUILD
index fd4f5e4a7..78759e944 100644
--- a/extra/proftpd/PKGBUILD
+++ b/extra/proftpd/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 161293 2012-06-08 23:31:04Z tomegun $
+# $Id: PKGBUILD 164987 2012-08-07 20:14:43Z eric $
# Maintainer:
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=proftpd
-pkgver=1.3.4a
-pkgrel=5
+pkgver=1.3.4b
+pkgrel=1
epoch=1
pkgdesc="A high-performance, scalable FTP server"
arch=('i686' 'x86_64')
@@ -12,8 +12,13 @@ url="http://www.proftpd.org"
license=('GPL')
depends=('libldap' 'libmysqlclient' 'postgresql-libs')
backup=('etc/proftpd.conf' 'etc/conf.d/proftpd')
-source=(ftp://ftp.proftpd.org/distrib/source/${pkgname}-${pkgver}.tar.bz2{,.asc}
+source=(ftp://ftp.proftpd.org/distrib/source/${pkgname}-${pkgver}.tar.gz{,.asc}
'proftpd' 'proftpd.logrotate' 'proftpd.conf.d')
+md5sums=('0871e0b93c9c3c88ca950b6d9a04aed2'
+ 'e5b9bd78029a15f82994efcb7ed2e9fb'
+ '8177292919acb2f087ded0bb7b2dcc32'
+ 'ddb09eb13131becdf0e081eef413116b'
+ '71d5932b0461c318ed68c2c0c2660736')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
@@ -47,8 +52,3 @@ package() {
# /var/run is a symlink to /run now
rm -rf "${pkgdir}/var"
}
-md5sums=('4e3235dc1ef95d36e59721d70c5c489c'
- '3b0f44496adb36640b7a6cc165556bcf'
- '8177292919acb2f087ded0bb7b2dcc32'
- 'ddb09eb13131becdf0e081eef413116b'
- '71d5932b0461c318ed68c2c0c2660736')
diff --git a/extra/samba/PKGBUILD b/extra/samba/PKGBUILD
index d8347d089..e03adefb6 100644
--- a/extra/samba/PKGBUILD
+++ b/extra/samba/PKGBUILD
@@ -1,13 +1,13 @@
-# $Id: PKGBUILD 162373 2012-06-26 05:39:58Z tpowa $
+# $Id: PKGBUILD 164956 2012-08-07 10:42:12Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgbase=samba
pkgname=('libwbclient' 'smbclient' 'samba')
-pkgver=3.6.6
+pkgver=3.6.7
# We use the 'A' to fake out pacman's version comparators. Samba chooses
# to append 'a','b',etc to their subsequent releases, which pamcan
# misconstrues as alpha, beta, etc. Bad samba!
-_realver=3.6.6
+_realver=3.6.7
pkgrel=1
arch=(i686 x86_64)
url="http://www.samba.org"
@@ -157,7 +157,7 @@ install='samba.install'
install -D -m644 ${srcdir}/samba.conf ${pkgdir}/usr/lib/tmpfiles.d/samba.conf
rm -rf ${pkgdir}/var/run
}
-md5sums=('0bea52842d172231c0c0e23ee570d7af'
+md5sums=('b23be56c15dd52f64eb7ba54c0ea1ed5'
'a45a4283723be2b0ae32439dc4496a09'
'5697da77590ec092cc8a883bae06093c'
'a4bbfa39fee95bba2e7ad6b535fae7e6'
diff --git a/libre/ghostscript-libre/PKGBUILD b/libre/ghostscript-libre/PKGBUILD
index b89a3095b..05804529d 100644
--- a/libre/ghostscript-libre/PKGBUILD
+++ b/libre/ghostscript-libre/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 149732 2012-02-09 20:34:33Z andyrtr $
+# $Id: PKGBUILD 165015 2012-08-08 19:40:10Z andyrtr $
# Maintainer: AndyRTR <andyrtr@archlinux.org>
-# Maintainer (Parabola): xihh
-# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+# Maintainer (Parabola): Joshua Haase <hahj87@gmail.com>
+# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
_pkgname=ghostscript
pkgname=ghostscript-libre
-pkgver=9.05
+pkgver=9.06
pkgrel=1
pkgdesc="An interpreter for the PostScript language without non-free files"
arch=('i686' 'x86_64' 'mips64el')
@@ -15,12 +15,12 @@ makedepends=('gtk2' 'gnutls')
optdepends=('texlive-core: needed for dvipdf'
'gtk2: needed for gsx')
conflicts=('ghostscript')
-replaces=('ghostscript-lrpng' 'ghostscript')
-provides=('ghostscript-lprng' "ghostscript=$pkgver")
+replaces=('ghostscript')
+provides=("ghostscript=$pkgver")
url="http://www.ghostscript.com/"
source=(http://downloads.ghostscript.com/public/ghostscript-${pkgver}.tar.bz2)
options=('!libtool' '!makeflags')
-md5sums=('8bcef1f33ddf8a4d12b2cf8da385c191')
+md5sums=('46f9ebe40dc52755287b30704270db11')
build() {
cd ${srcdir}/ghostscript-${pkgver}
diff --git a/libre/syslinux/PKGBUILD b/libre/syslinux/PKGBUILD
index 1a76a6825..6269ae93c 100644
--- a/libre/syslinux/PKGBUILD
+++ b/libre/syslinux/PKGBUILD
@@ -1,11 +1,10 @@
-# $Id$
-# Maintainer: Thomas Bächler <thomas@archlinux.org>
+# $Id: PKGBUILD 165001 2012-08-08 15:45:08Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
pkgname=syslinux
pkgver=4.05
-pkgrel=4.3
+pkgrel=5
arch=('i686' 'x86_64')
pkgdesc="Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE (Parabola rebranded)"
url="http://syslinux.zytor.com/"
@@ -14,7 +13,7 @@ depends=('perl' 'glibc')
optdepends=('perl-passwd-md5: For md5pass'
'perl-digest-sha1: For sha1pass'
'mtools: For mkdiskimage and syslinux support'
- )
+ 'gptfdisk: For GPT support')
makedepends=('nasm')
backup=('boot/syslinux/syslinux.cfg'
'boot/syslinux/splash.png')
@@ -23,14 +22,8 @@ source=(http://www.kernel.org/pub/linux/utils/boot/syslinux/$pkgname-${pkgver}.t
syslinux-dont-build-dos-windows-targets.patch
syslinux.cfg
syslinux-install_update
- splash.png
- fix-undefined-type-umode_t.patch)
-md5sums=('82299242418385da1274c9479a778cb2'
- '1528c376e43f0eaccaa80d8ad1bc13b4'
- '8dc2afca3739667e892faf04eb97e7b1'
- '680750f73dc2e587ac567d057d485813'
- '0035b6cac6756a384b861eda8d33e4f7'
- '8674f8a0f480f26b705570d699c78a2c')
+ avoid-using-ext2_fs.patch
+ splash.png)
build() {
# Do not try to build syslinux with our default LDFLAGS, it will fail
@@ -38,8 +31,8 @@ build() {
cd "$srcdir"/$pkgname-${pkgver}
# Do not try to build the Windows or DOS installers
patch -p1 -i "$srcdir"/syslinux-dont-build-dos-windows-targets.patch
- # Fix unknown type name 'umode_t' error
- patch -p1 -i "$srcdir"/fix-undefined-type-umode_t.patch
+ # fix #30084
+ patch -Np1 -i "$srcdir"/avoid-using-ext2_fs.patch
# Fix FHS manpage path
sed 's|/usr/man|/usr/share/man|g' -i mk/syslinux.mk
make
@@ -59,3 +52,9 @@ package() {
# move extlinux binary to /usr/sbin
mv "$pkgdir"/sbin/extlinux "$pkgdir"/usr/sbin/extlinux
}
+md5sums=('82299242418385da1274c9479a778cb2'
+ '1528c376e43f0eaccaa80d8ad1bc13b4'
+ '8dc2afca3739667e892faf04eb97e7b1'
+ '680750f73dc2e587ac567d057d485813'
+ '2e2c674a71c0c0bf265d96cfc19ce985'
+ '0035b6cac6756a384b861eda8d33e4f7')
diff --git a/libre/syslinux/avoid-using-ext2_fs.patch b/libre/syslinux/avoid-using-ext2_fs.patch
new file mode 100644
index 000000000..9a166eefc
--- /dev/null
+++ b/libre/syslinux/avoid-using-ext2_fs.patch
@@ -0,0 +1,965 @@
+From a1006762fa6f98750bb77d76dd992cb8ea9f9c99 Mon Sep 17 00:00:00 2001
+From: "H. Peter Anvin" <hpa@zytor.com>
+Date: Mon, 26 Mar 2012 22:51:09 -0700
+Subject: [PATCH] libinstaller: Avoid using <linux/ext2_fs.h>
+
+Don't use <linux/ext2_fs.h> if we can avoid it.
+
+The ioctl constants have been globalized and moved to <linux/fs.h>.
+Use a private copy of ext2_fs.h from e2fsprogs with the ioctl
+constants removed for the data structures.
+
+Do at least attempt backward compatibility for old kernel headers, but
+no real hope of proper operation there...
+
+Signed-off-by: H. Peter Anvin <hpa@zytor.com>
+---
+ libinstaller/ext2fs/ext2_fs.h | 856 ++++++++++++++++++++++++++++++++++++++++++
+ libinstaller/linuxioctl.h | 29 +-
+ libinstaller/syslxcom.c | 12 +-
+ 3 files changed, 886 insertions(+), 11 deletions(-)
+ create mode 100644 libinstaller/ext2fs/ext2_fs.h
+
+diff -urpN syslinux-4.05/libinstaller/ext2fs/ext2_fs.h.ext2 syslinux-4.05/libinstaller/ext2fs/ext2_fs.h
+--- syslinux-4.05/libinstaller/ext2fs/ext2_fs.h.ext2 2012-08-06 09:48:43.797645032 -0400
++++ syslinux-4.05/libinstaller/ext2fs/ext2_fs.h 2012-08-06 09:48:43.797645032 -0400
+@@ -0,0 +1,856 @@
++/*
++ * linux/include/linux/ext2_fs.h
++ *
++ * Copyright (C) 1992, 1993, 1994, 1995
++ * Remy Card (card@masi.ibp.fr)
++ * Laboratoire MASI - Institut Blaise Pascal
++ * Universite Pierre et Marie Curie (Paris VI)
++ *
++ * from
++ *
++ * linux/include/linux/minix_fs.h
++ *
++ * Copyright (C) 1991, 1992 Linus Torvalds
++ */
++
++#ifndef _EXT2FS_EXT2_FS_H
++#define _EXT2FS_EXT2_FS_H
++
++#include <linux/types.h>
++
++/*
++ * The second extended filesystem constants/structures
++ */
++
++/*
++ * Define EXT2FS_DEBUG to produce debug messages
++ */
++#undef EXT2FS_DEBUG
++
++/*
++ * Define EXT2_PREALLOCATE to preallocate data blocks for expanding files
++ */
++#define EXT2_PREALLOCATE
++#define EXT2_DEFAULT_PREALLOC_BLOCKS 8
++
++/*
++ * The second extended file system version
++ */
++#define EXT2FS_DATE "95/08/09"
++#define EXT2FS_VERSION "0.5b"
++
++/*
++ * Special inode numbers
++ */
++#define EXT2_BAD_INO 1 /* Bad blocks inode */
++#define EXT2_ROOT_INO 2 /* Root inode */
++#define EXT4_USR_QUOTA_INO 3 /* User quota inode */
++#define EXT4_GRP_QUOTA_INO 4 /* Group quota inode */
++#define EXT2_BOOT_LOADER_INO 5 /* Boot loader inode */
++#define EXT2_UNDEL_DIR_INO 6 /* Undelete directory inode */
++#define EXT2_RESIZE_INO 7 /* Reserved group descriptors inode */
++#define EXT2_JOURNAL_INO 8 /* Journal inode */
++#define EXT2_EXCLUDE_INO 9 /* The "exclude" inode, for snapshots */
++#define EXT4_REPLICA_INO 10 /* Used by non-upstream feature */
++
++/* First non-reserved inode for old ext2 filesystems */
++#define EXT2_GOOD_OLD_FIRST_INO 11
++
++/*
++ * The second extended file system magic number
++ */
++#define EXT2_SUPER_MAGIC 0xEF53
++
++#ifdef __KERNEL__
++#define EXT2_SB(sb) (&((sb)->u.ext2_sb))
++#else
++/* Assume that user mode programs are passing in an ext2fs superblock, not
++ * a kernel struct super_block. This will allow us to call the feature-test
++ * macros from user land. */
++#define EXT2_SB(sb) (sb)
++#endif
++
++/*
++ * Maximal count of links to a file
++ */
++#define EXT2_LINK_MAX 65000
++
++/*
++ * Macro-instructions used to manage several block sizes
++ */
++#define EXT2_MIN_BLOCK_LOG_SIZE 10 /* 1024 */
++#define EXT2_MAX_BLOCK_LOG_SIZE 16 /* 65536 */
++#define EXT2_MIN_BLOCK_SIZE (1 << EXT2_MIN_BLOCK_LOG_SIZE)
++#define EXT2_MAX_BLOCK_SIZE (1 << EXT2_MAX_BLOCK_LOG_SIZE)
++#ifdef __KERNEL__
++#define EXT2_BLOCK_SIZE(s) ((s)->s_blocksize)
++#define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_blocksize_bits)
++#define EXT2_ADDR_PER_BLOCK_BITS(s) (EXT2_SB(s)->addr_per_block_bits)
++#define EXT2_INODE_SIZE(s) (EXT2_SB(s)->s_inode_size)
++#define EXT2_FIRST_INO(s) (EXT2_SB(s)->s_first_ino)
++#else
++#define EXT2_BLOCK_SIZE(s) (EXT2_MIN_BLOCK_SIZE << (s)->s_log_block_size)
++#define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10)
++#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \
++ EXT2_GOOD_OLD_INODE_SIZE : (s)->s_inode_size)
++#define EXT2_FIRST_INO(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \
++ EXT2_GOOD_OLD_FIRST_INO : (s)->s_first_ino)
++#endif
++#define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof(__u32))
++
++/*
++ * Macro-instructions used to manage allocation clusters
++ */
++#define EXT2_MIN_CLUSTER_LOG_SIZE EXT2_MIN_BLOCK_LOG_SIZE
++#define EXT2_MAX_CLUSTER_LOG_SIZE 29 /* 512MB */
++#define EXT2_MIN_CLUSTER_SIZE EXT2_MIN_BLOCK_SIZE
++#define EXT2_MAX_CLUSTER_SIZE (1 << EXT2_MAX_CLUSTER_LOG_SIZE)
++#define EXT2_CLUSTER_SIZE(s) (EXT2_MIN_BLOCK_SIZE << \
++ (s)->s_log_cluster_size)
++#define EXT2_CLUSTER_SIZE_BITS(s) ((s)->s_log_cluster_size + 10)
++
++/*
++ * Macro-instructions used to manage fragments
++ *
++ * Note: for backwards compatibility only, for the dump program.
++ * Ext2/3/4 will never support fragments....
++ */
++#define EXT2_MIN_FRAG_SIZE EXT2_MIN_BLOCK_SIZE
++#define EXT2_MAX_FRAG_SIZE EXT2_MAX_BLOCK_SIZE
++#define EXT2_MIN_FRAG_LOG_SIZE EXT2_MIN_BLOCK_LOG_SIZE
++#define EXT2_FRAG_SIZE(s) EXT2_BLOCK_SIZE(s)
++#define EXT2_FRAGS_PER_BLOCK(s) 1
++
++/*
++ * ACL structures
++ */
++struct ext2_acl_header /* Header of Access Control Lists */
++{
++ __u32 aclh_size;
++ __u32 aclh_file_count;
++ __u32 aclh_acle_count;
++ __u32 aclh_first_acle;
++};
++
++struct ext2_acl_entry /* Access Control List Entry */
++{
++ __u32 acle_size;
++ __u16 acle_perms; /* Access permissions */
++ __u16 acle_type; /* Type of entry */
++ __u16 acle_tag; /* User or group identity */
++ __u16 acle_pad1;
++ __u32 acle_next; /* Pointer on next entry for the */
++ /* same inode or on next free entry */
++};
++
++/*
++ * Structure of a blocks group descriptor
++ */
++struct ext2_group_desc
++{
++ __u32 bg_block_bitmap; /* Blocks bitmap block */
++ __u32 bg_inode_bitmap; /* Inodes bitmap block */
++ __u32 bg_inode_table; /* Inodes table block */
++ __u16 bg_free_blocks_count; /* Free blocks count */
++ __u16 bg_free_inodes_count; /* Free inodes count */
++ __u16 bg_used_dirs_count; /* Directories count */
++ __u16 bg_flags;
++ __u32 bg_exclude_bitmap_lo; /* Exclude bitmap for snapshots */
++ __u16 bg_block_bitmap_csum_lo;/* crc32c(s_uuid+grp_num+bitmap) LSB */
++ __u16 bg_inode_bitmap_csum_lo;/* crc32c(s_uuid+grp_num+bitmap) LSB */
++ __u16 bg_itable_unused; /* Unused inodes count */
++ __u16 bg_checksum; /* crc16(s_uuid+grouo_num+group_desc)*/
++};
++
++/*
++ * Structure of a blocks group descriptor
++ */
++struct ext4_group_desc
++{
++ __u32 bg_block_bitmap; /* Blocks bitmap block */
++ __u32 bg_inode_bitmap; /* Inodes bitmap block */
++ __u32 bg_inode_table; /* Inodes table block */
++ __u16 bg_free_blocks_count; /* Free blocks count */
++ __u16 bg_free_inodes_count; /* Free inodes count */
++ __u16 bg_used_dirs_count; /* Directories count */
++ __u16 bg_flags; /* EXT4_BG_flags (INODE_UNINIT, etc) */
++ __u32 bg_exclude_bitmap_lo; /* Exclude bitmap for snapshots */
++ __u16 bg_block_bitmap_csum_lo;/* crc32c(s_uuid+grp_num+bitmap) LSB */
++ __u16 bg_inode_bitmap_csum_lo;/* crc32c(s_uuid+grp_num+bitmap) LSB */
++ __u16 bg_itable_unused; /* Unused inodes count */
++ __u16 bg_checksum; /* crc16(sb_uuid+group+desc) */
++ __u32 bg_block_bitmap_hi; /* Blocks bitmap block MSB */
++ __u32 bg_inode_bitmap_hi; /* Inodes bitmap block MSB */
++ __u32 bg_inode_table_hi; /* Inodes table block MSB */
++ __u16 bg_free_blocks_count_hi;/* Free blocks count MSB */
++ __u16 bg_free_inodes_count_hi;/* Free inodes count MSB */
++ __u16 bg_used_dirs_count_hi; /* Directories count MSB */
++ __u16 bg_itable_unused_hi; /* Unused inodes count MSB */
++ __u32 bg_exclude_bitmap_hi; /* Exclude bitmap block MSB */
++ __u16 bg_block_bitmap_csum_hi;/* crc32c(s_uuid+grp_num+bitmap) MSB */
++ __u16 bg_inode_bitmap_csum_hi;/* crc32c(s_uuid+grp_num+bitmap) MSB */
++ __u32 bg_reserved;
++};
++
++#define EXT2_BG_INODE_UNINIT 0x0001 /* Inode table/bitmap not initialized */
++#define EXT2_BG_BLOCK_UNINIT 0x0002 /* Block bitmap not initialized */
++#define EXT2_BG_INODE_ZEROED 0x0004 /* On-disk itable initialized to zero */
++
++/*
++ * Data structures used by the directory indexing feature
++ *
++ * Note: all of the multibyte integer fields are little endian.
++ */
++
++/*
++ * Note: dx_root_info is laid out so that if it should somehow get
++ * overlaid by a dirent the two low bits of the hash version will be
++ * zero. Therefore, the hash version mod 4 should never be 0.
++ * Sincerely, the paranoia department.
++ */
++struct ext2_dx_root_info {
++ __u32 reserved_zero;
++ __u8 hash_version; /* 0 now, 1 at release */
++ __u8 info_length; /* 8 */
++ __u8 indirect_levels;
++ __u8 unused_flags;
++};
++
++#define EXT2_HASH_LEGACY 0
++#define EXT2_HASH_HALF_MD4 1
++#define EXT2_HASH_TEA 2
++#define EXT2_HASH_LEGACY_UNSIGNED 3 /* reserved for userspace lib */
++#define EXT2_HASH_HALF_MD4_UNSIGNED 4 /* reserved for userspace lib */
++#define EXT2_HASH_TEA_UNSIGNED 5 /* reserved for userspace lib */
++
++#define EXT2_HASH_FLAG_INCOMPAT 0x1
++
++struct ext2_dx_entry {
++ __u32 hash;
++ __u32 block;
++};
++
++struct ext2_dx_countlimit {
++ __u16 limit;
++ __u16 count;
++};
++
++
++/*
++ * Macro-instructions used to manage group descriptors
++ */
++#define EXT2_MIN_DESC_SIZE 32
++#define EXT2_MIN_DESC_SIZE_64BIT 64
++#define EXT2_MAX_DESC_SIZE EXT2_MIN_BLOCK_SIZE
++#define EXT2_DESC_SIZE(s) \
++ ((EXT2_SB(s)->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT) ? \
++ (s)->s_desc_size : EXT2_MIN_DESC_SIZE)
++
++#define EXT2_BLOCKS_PER_GROUP(s) (EXT2_SB(s)->s_blocks_per_group)
++#define EXT2_INODES_PER_GROUP(s) (EXT2_SB(s)->s_inodes_per_group)
++#define EXT2_CLUSTERS_PER_GROUP(s) (EXT2_SB(s)->s_clusters_per_group)
++#define EXT2_INODES_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s))
++/* limits imposed by 16-bit value gd_free_{blocks,inode}_count */
++#define EXT2_MAX_BLOCKS_PER_GROUP(s) ((((unsigned) 1 << 16) - 8) * \
++ (EXT2_CLUSTER_SIZE(s) / \
++ EXT2_BLOCK_SIZE(s)))
++#define EXT2_MAX_CLUSTERS_PER_GROUP(s) (((unsigned) 1 << 16) - 8)
++#define EXT2_MAX_INODES_PER_GROUP(s) (((unsigned) 1 << 16) - \
++ EXT2_INODES_PER_BLOCK(s))
++#ifdef __KERNEL__
++#define EXT2_DESC_PER_BLOCK(s) (EXT2_SB(s)->s_desc_per_block)
++#define EXT2_DESC_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_desc_per_block_bits)
++#else
++#define EXT2_DESC_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_DESC_SIZE(s))
++#endif
++
++/*
++ * Constants relative to the data blocks
++ */
++#define EXT2_NDIR_BLOCKS 12
++#define EXT2_IND_BLOCK EXT2_NDIR_BLOCKS
++#define EXT2_DIND_BLOCK (EXT2_IND_BLOCK + 1)
++#define EXT2_TIND_BLOCK (EXT2_DIND_BLOCK + 1)
++#define EXT2_N_BLOCKS (EXT2_TIND_BLOCK + 1)
++
++/*
++ * Inode flags
++ */
++#define EXT2_SECRM_FL 0x00000001 /* Secure deletion */
++#define EXT2_UNRM_FL 0x00000002 /* Undelete */
++#define EXT2_COMPR_FL 0x00000004 /* Compress file */
++#define EXT2_SYNC_FL 0x00000008 /* Synchronous updates */
++#define EXT2_IMMUTABLE_FL 0x00000010 /* Immutable file */
++#define EXT2_APPEND_FL 0x00000020 /* writes to file may only append */
++#define EXT2_NODUMP_FL 0x00000040 /* do not dump file */
++#define EXT2_NOATIME_FL 0x00000080 /* do not update atime */
++/* Reserved for compression usage... */
++#define EXT2_DIRTY_FL 0x00000100
++#define EXT2_COMPRBLK_FL 0x00000200 /* One or more compressed clusters */
++#define EXT2_NOCOMPR_FL 0x00000400 /* Access raw compressed data */
++#define EXT2_ECOMPR_FL 0x00000800 /* Compression error */
++/* End compression flags --- maybe not all used */
++#define EXT2_BTREE_FL 0x00001000 /* btree format dir */
++#define EXT2_INDEX_FL 0x00001000 /* hash-indexed directory */
++#define EXT2_IMAGIC_FL 0x00002000
++#define EXT3_JOURNAL_DATA_FL 0x00004000 /* file data should be journaled */
++#define EXT2_NOTAIL_FL 0x00008000 /* file tail should not be merged */
++#define EXT2_DIRSYNC_FL 0x00010000 /* Synchronous directory modifications */
++#define EXT2_TOPDIR_FL 0x00020000 /* Top of directory hierarchies*/
++#define EXT4_HUGE_FILE_FL 0x00040000 /* Set to each huge file */
++#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
++#define EXT4_EA_INODE_FL 0x00200000 /* Inode used for large EA */
++/* EXT4_EOFBLOCKS_FL 0x00400000 was here */
++#define EXT4_SNAPFILE_FL 0x01000000 /* Inode is a snapshot */
++#define EXT4_SNAPFILE_DELETED_FL 0x04000000 /* Snapshot is being deleted */
++#define EXT4_SNAPFILE_SHRUNK_FL 0x08000000 /* Snapshot shrink has completed */
++#define EXT2_RESERVED_FL 0x80000000 /* reserved for ext2 lib */
++
++#define EXT2_FL_USER_VISIBLE 0x004BDFFF /* User visible flags */
++#define EXT2_FL_USER_MODIFIABLE 0x004B80FF /* User modifiable flags */
++
++/*
++ * ioctl commands
++ */
++
++/* Used for online resize */
++struct ext2_new_group_input {
++ __u32 group; /* Group number for this data */
++ __u32 block_bitmap; /* Absolute block number of block bitmap */
++ __u32 inode_bitmap; /* Absolute block number of inode bitmap */
++ __u32 inode_table; /* Absolute block number of inode table start */
++ __u32 blocks_count; /* Total number of blocks in this group */
++ __u16 reserved_blocks; /* Number of reserved blocks in this group */
++ __u16 unused; /* Number of reserved GDT blocks in group */
++};
++
++struct ext4_new_group_input {
++ __u32 group; /* Group number for this data */
++ __u64 block_bitmap; /* Absolute block number of block bitmap */
++ __u64 inode_bitmap; /* Absolute block number of inode bitmap */
++ __u64 inode_table; /* Absolute block number of inode table start */
++ __u32 blocks_count; /* Total number of blocks in this group */
++ __u16 reserved_blocks; /* Number of reserved blocks in this group */
++ __u16 unused;
++};
++
++#ifdef __GNU__ /* Needed for the Hurd */
++#define _IOT_ext2_new_group_input _IOT (_IOTS(__u32), 5, _IOTS(__u16), 2, 0, 0)
++#endif
++
++#define EXT2_IOC_GETFLAGS _IOR('f', 1, long)
++#define EXT2_IOC_SETFLAGS _IOW('f', 2, long)
++#define EXT2_IOC_GETVERSION _IOR('v', 1, long)
++#define EXT2_IOC_SETVERSION _IOW('v', 2, long)
++#define EXT2_IOC_GETVERSION_NEW _IOR('f', 3, long)
++#define EXT2_IOC_SETVERSION_NEW _IOW('f', 4, long)
++#define EXT2_IOC_GROUP_EXTEND _IOW('f', 7, unsigned long)
++#define EXT2_IOC_GROUP_ADD _IOW('f', 8,struct ext2_new_group_input)
++#define EXT4_IOC_GROUP_ADD _IOW('f', 8,struct ext4_new_group_input)
++#define EXT4_IOC_RESIZE_FS _IOW('f', 16, __u64)
++
++/*
++ * Structure of an inode on the disk
++ */
++struct ext2_inode {
++ __u16 i_mode; /* File mode */
++ __u16 i_uid; /* Low 16 bits of Owner Uid */
++ __u32 i_size; /* Size in bytes */
++ __u32 i_atime; /* Access time */
++ __u32 i_ctime; /* Inode change time */
++ __u32 i_mtime; /* Modification time */
++ __u32 i_dtime; /* Deletion Time */
++ __u16 i_gid; /* Low 16 bits of Group Id */
++ __u16 i_links_count; /* Links count */
++ __u32 i_blocks; /* Blocks count */
++ __u32 i_flags; /* File flags */
++ union {
++ struct {
++ __u32 l_i_version; /* was l_i_reserved1 */
++ } linux1;
++ struct {
++ __u32 h_i_translator;
++ } hurd1;
++ } osd1; /* OS dependent 1 */
++ __u32 i_block[EXT2_N_BLOCKS];/* Pointers to blocks */
++ __u32 i_generation; /* File version (for NFS) */
++ __u32 i_file_acl; /* File ACL */
++ __u32 i_size_high; /* Formerly i_dir_acl, directory ACL */
++ __u32 i_faddr; /* Fragment address */
++ union {
++ struct {
++ __u16 l_i_blocks_hi;
++ __u16 l_i_file_acl_high;
++ __u16 l_i_uid_high; /* these 2 fields */
++ __u16 l_i_gid_high; /* were reserved2[0] */
++ __u16 l_i_checksum_lo; /* crc32c(uuid+inum+inode) */
++ __u16 l_i_reserved;
++ } linux2;
++ struct {
++ __u8 h_i_frag; /* Fragment number */
++ __u8 h_i_fsize; /* Fragment size */
++ __u16 h_i_mode_high;
++ __u16 h_i_uid_high;
++ __u16 h_i_gid_high;
++ __u32 h_i_author;
++ } hurd2;
++ } osd2; /* OS dependent 2 */
++};
++
++/*
++ * Permanent part of an large inode on the disk
++ */
++struct ext2_inode_large {
++ __u16 i_mode; /* File mode */
++ __u16 i_uid; /* Low 16 bits of Owner Uid */
++ __u32 i_size; /* Size in bytes */
++ __u32 i_atime; /* Access time */
++ __u32 i_ctime; /* Inode Change time */
++ __u32 i_mtime; /* Modification time */
++ __u32 i_dtime; /* Deletion Time */
++ __u16 i_gid; /* Low 16 bits of Group Id */
++ __u16 i_links_count; /* Links count */
++ __u32 i_blocks; /* Blocks count */
++ __u32 i_flags; /* File flags */
++ union {
++ struct {
++ __u32 l_i_version; /* was l_i_reserved1 */
++ } linux1;
++ struct {
++ __u32 h_i_translator;
++ } hurd1;
++ } osd1; /* OS dependent 1 */
++ __u32 i_block[EXT2_N_BLOCKS];/* Pointers to blocks */
++ __u32 i_generation; /* File version (for NFS) */
++ __u32 i_file_acl; /* File ACL */
++ __u32 i_size_high; /* Formerly i_dir_acl, directory ACL */
++ __u32 i_faddr; /* Fragment address */
++ union {
++ struct {
++ __u16 l_i_blocks_hi;
++ __u16 l_i_file_acl_high;
++ __u16 l_i_uid_high; /* these 2 fields */
++ __u16 l_i_gid_high; /* were reserved2[0] */
++ __u16 l_i_checksum_lo; /* crc32c(uuid+inum+inode) */
++ __u16 l_i_reserved;
++ } linux2;
++ struct {
++ __u8 h_i_frag; /* Fragment number */
++ __u8 h_i_fsize; /* Fragment size */
++ __u16 h_i_mode_high;
++ __u16 h_i_uid_high;
++ __u16 h_i_gid_high;
++ __u32 h_i_author;
++ } hurd2;
++ } osd2; /* OS dependent 2 */
++ __u16 i_extra_isize;
++ __u16 i_checksum_hi; /* crc32c(uuid+inum+inode) */
++ __u32 i_ctime_extra; /* extra Change time (nsec << 2 | epoch) */
++ __u32 i_mtime_extra; /* extra Modification time (nsec << 2 | epoch) */
++ __u32 i_atime_extra; /* extra Access time (nsec << 2 | epoch) */
++ __u32 i_crtime; /* File creation time */
++ __u32 i_crtime_extra; /* extra File creation time (nsec << 2 | epoch)*/
++ __u32 i_version_hi; /* high 32 bits for 64-bit version */
++};
++
++#define i_dir_acl i_size_high
++
++#if defined(__KERNEL__) || defined(__linux__)
++#define i_reserved1 osd1.linux1.l_i_reserved1
++#define i_frag osd2.linux2.l_i_frag
++#define i_fsize osd2.linux2.l_i_fsize
++#define i_uid_low i_uid
++#define i_gid_low i_gid
++#define i_uid_high osd2.linux2.l_i_uid_high
++#define i_gid_high osd2.linux2.l_i_gid_high
++#else
++#if defined(__GNU__)
++
++#define i_translator osd1.hurd1.h_i_translator
++#define i_frag osd2.hurd2.h_i_frag;
++#define i_fsize osd2.hurd2.h_i_fsize;
++#define i_uid_high osd2.hurd2.h_i_uid_high
++#define i_gid_high osd2.hurd2.h_i_gid_high
++#define i_author osd2.hurd2.h_i_author
++
++#endif /* __GNU__ */
++#endif /* defined(__KERNEL__) || defined(__linux__) */
++
++#define inode_uid(inode) ((inode).i_uid | (inode).osd2.linux2.l_i_uid_high << 16)
++#define inode_gid(inode) ((inode).i_gid | (inode).osd2.linux2.l_i_gid_high << 16)
++#define ext2fs_set_i_uid_high(inode,x) ((inode).osd2.linux2.l_i_uid_high = (x))
++#define ext2fs_set_i_gid_high(inode,x) ((inode).osd2.linux2.l_i_gid_high = (x))
++
++/*
++ * File system states
++ */
++#define EXT2_VALID_FS 0x0001 /* Unmounted cleanly */
++#define EXT2_ERROR_FS 0x0002 /* Errors detected */
++#define EXT3_ORPHAN_FS 0x0004 /* Orphans being recovered */
++
++/*
++ * Misc. filesystem flags
++ */
++#define EXT2_FLAGS_SIGNED_HASH 0x0001 /* Signed dirhash in use */
++#define EXT2_FLAGS_UNSIGNED_HASH 0x0002 /* Unsigned dirhash in use */
++#define EXT2_FLAGS_TEST_FILESYS 0x0004 /* OK for use on development code */
++#define EXT2_FLAGS_IS_SNAPSHOT 0x0010 /* This is a snapshot image */
++#define EXT2_FLAGS_FIX_SNAPSHOT 0x0020 /* Snapshot inodes corrupted */
++#define EXT2_FLAGS_FIX_EXCLUDE 0x0040 /* Exclude bitmaps corrupted */
++
++/*
++ * Mount flags
++ */
++#define EXT2_MOUNT_CHECK 0x0001 /* Do mount-time checks */
++#define EXT2_MOUNT_GRPID 0x0004 /* Create files with directory's group */
++#define EXT2_MOUNT_DEBUG 0x0008 /* Some debugging messages */
++#define EXT2_MOUNT_ERRORS_CONT 0x0010 /* Continue on errors */
++#define EXT2_MOUNT_ERRORS_RO 0x0020 /* Remount fs ro on errors */
++#define EXT2_MOUNT_ERRORS_PANIC 0x0040 /* Panic on errors */
++#define EXT2_MOUNT_MINIX_DF 0x0080 /* Mimics the Minix statfs */
++#define EXT2_MOUNT_NO_UID32 0x0200 /* Disable 32-bit UIDs */
++
++#define clear_opt(o, opt) o &= ~EXT2_MOUNT_##opt
++#define set_opt(o, opt) o |= EXT2_MOUNT_##opt
++#define test_opt(sb, opt) (EXT2_SB(sb)->s_mount_opt & \
++ EXT2_MOUNT_##opt)
++/*
++ * Maximal mount counts between two filesystem checks
++ */
++#define EXT2_DFL_MAX_MNT_COUNT 20 /* Allow 20 mounts */
++#define EXT2_DFL_CHECKINTERVAL 0 /* Don't use interval check */
++
++/*
++ * Behaviour when detecting errors
++ */
++#define EXT2_ERRORS_CONTINUE 1 /* Continue execution */
++#define EXT2_ERRORS_RO 2 /* Remount fs read-only */
++#define EXT2_ERRORS_PANIC 3 /* Panic */
++#define EXT2_ERRORS_DEFAULT EXT2_ERRORS_CONTINUE
++
++#if (__GNUC__ >= 4)
++#define ext4_offsetof(TYPE,MEMBER) __builtin_offsetof(TYPE,MEMBER)
++#else
++#define ext4_offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
++#endif
++
++/*
++ * Structure of the super block
++ */
++struct ext2_super_block {
++ __u32 s_inodes_count; /* Inodes count */
++ __u32 s_blocks_count; /* Blocks count */
++ __u32 s_r_blocks_count; /* Reserved blocks count */
++ __u32 s_free_blocks_count; /* Free blocks count */
++ __u32 s_free_inodes_count; /* Free inodes count */
++ __u32 s_first_data_block; /* First Data Block */
++ __u32 s_log_block_size; /* Block size */
++ __u32 s_log_cluster_size; /* Allocation cluster size */
++ __u32 s_blocks_per_group; /* # Blocks per group */
++ __u32 s_clusters_per_group; /* # Fragments per group */
++ __u32 s_inodes_per_group; /* # Inodes per group */
++ __u32 s_mtime; /* Mount time */
++ __u32 s_wtime; /* Write time */
++ __u16 s_mnt_count; /* Mount count */
++ __s16 s_max_mnt_count; /* Maximal mount count */
++ __u16 s_magic; /* Magic signature */
++ __u16 s_state; /* File system state */
++ __u16 s_errors; /* Behaviour when detecting errors */
++ __u16 s_minor_rev_level; /* minor revision level */
++ __u32 s_lastcheck; /* time of last check */
++ __u32 s_checkinterval; /* max. time between checks */
++ __u32 s_creator_os; /* OS */
++ __u32 s_rev_level; /* Revision level */
++ __u16 s_def_resuid; /* Default uid for reserved blocks */
++ __u16 s_def_resgid; /* Default gid for reserved blocks */
++ /*
++ * These fields are for EXT2_DYNAMIC_REV superblocks only.
++ *
++ * Note: the difference between the compatible feature set and
++ * the incompatible feature set is that if there is a bit set
++ * in the incompatible feature set that the kernel doesn't
++ * know about, it should refuse to mount the filesystem.
++ *
++ * e2fsck's requirements are more strict; if it doesn't know
++ * about a feature in either the compatible or incompatible
++ * feature set, it must abort and not try to meddle with
++ * things it doesn't understand...
++ */
++ __u32 s_first_ino; /* First non-reserved inode */
++ __u16 s_inode_size; /* size of inode structure */
++ __u16 s_block_group_nr; /* block group # of this superblock */
++ __u32 s_feature_compat; /* compatible feature set */
++ __u32 s_feature_incompat; /* incompatible feature set */
++ __u32 s_feature_ro_compat; /* readonly-compatible feature set */
++ __u8 s_uuid[16]; /* 128-bit uuid for volume */
++ char s_volume_name[16]; /* volume name */
++ char s_last_mounted[64]; /* directory where last mounted */
++ __u32 s_algorithm_usage_bitmap; /* For compression */
++ /*
++ * Performance hints. Directory preallocation should only
++ * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on.
++ */
++ __u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/
++ __u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */
++ __u16 s_reserved_gdt_blocks; /* Per group table for online growth */
++ /*
++ * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set.
++ */
++ __u8 s_journal_uuid[16]; /* uuid of journal superblock */
++ __u32 s_journal_inum; /* inode number of journal file */
++ __u32 s_journal_dev; /* device number of journal file */
++ __u32 s_last_orphan; /* start of list of inodes to delete */
++ __u32 s_hash_seed[4]; /* HTREE hash seed */
++ __u8 s_def_hash_version; /* Default hash version to use */
++ __u8 s_jnl_backup_type; /* Default type of journal backup */
++ __u16 s_desc_size; /* Group desc. size: INCOMPAT_64BIT */
++ __u32 s_default_mount_opts;
++ __u32 s_first_meta_bg; /* First metablock group */
++ __u32 s_mkfs_time; /* When the filesystem was created */
++ __u32 s_jnl_blocks[17]; /* Backup of the journal inode */
++ __u32 s_blocks_count_hi; /* Blocks count high 32bits */
++ __u32 s_r_blocks_count_hi; /* Reserved blocks count high 32 bits*/
++ __u32 s_free_blocks_hi; /* Free blocks count */
++ __u16 s_min_extra_isize; /* All inodes have at least # bytes */
++ __u16 s_want_extra_isize; /* New inodes should reserve # bytes */
++ __u32 s_flags; /* Miscellaneous flags */
++ __u16 s_raid_stride; /* RAID stride */
++ __u16 s_mmp_update_interval; /* # seconds to wait in MMP checking */
++ __u64 s_mmp_block; /* Block for multi-mount protection */
++ __u32 s_raid_stripe_width; /* blocks on all data disks (N*stride)*/
++ __u8 s_log_groups_per_flex; /* FLEX_BG group size */
++ __u8 s_reserved_char_pad;
++ __u16 s_reserved_pad; /* Padding to next 32bits */
++ __u64 s_kbytes_written; /* nr of lifetime kilobytes written */
++ __u32 s_snapshot_inum; /* Inode number of active snapshot */
++ __u32 s_snapshot_id; /* sequential ID of active snapshot */
++ __u64 s_snapshot_r_blocks_count; /* reserved blocks for active
++ snapshot's future use */
++ __u32 s_snapshot_list; /* inode number of the head of the on-disk snapshot list */
++#define EXT4_S_ERR_START ext4_offsetof(struct ext2_super_block, s_error_count)
++ __u32 s_error_count; /* number of fs errors */
++ __u32 s_first_error_time; /* first time an error happened */
++ __u32 s_first_error_ino; /* inode involved in first error */
++ __u64 s_first_error_block; /* block involved of first error */
++ __u8 s_first_error_func[32]; /* function where the error happened */
++ __u32 s_first_error_line; /* line number where error happened */
++ __u32 s_last_error_time; /* most recent time of an error */
++ __u32 s_last_error_ino; /* inode involved in last error */
++ __u32 s_last_error_line; /* line number where error happened */
++ __u64 s_last_error_block; /* block involved of last error */
++ __u8 s_last_error_func[32]; /* function where the error happened */
++#define EXT4_S_ERR_END ext4_offsetof(struct ext2_super_block, s_mount_opts)
++ __u8 s_mount_opts[64];
++ __u32 s_usr_quota_inum; /* inode number of user quota file */
++ __u32 s_grp_quota_inum; /* inode number of group quota file */
++ __u32 s_overhead_blocks; /* overhead blocks/clusters in fs */
++ __u32 s_reserved[108]; /* Padding to the end of the block */
++ __u32 s_checksum; /* crc32c(superblock) */
++};
++
++#define EXT4_S_ERR_LEN (EXT4_S_ERR_END - EXT4_S_ERR_START)
++
++/*
++ * Codes for operating systems
++ */
++#define EXT2_OS_LINUX 0
++#define EXT2_OS_HURD 1
++#define EXT2_OBSO_OS_MASIX 2
++#define EXT2_OS_FREEBSD 3
++#define EXT2_OS_LITES 4
++
++/*
++ * Revision levels
++ */
++#define EXT2_GOOD_OLD_REV 0 /* The good old (original) format */
++#define EXT2_DYNAMIC_REV 1 /* V2 format w/ dynamic inode sizes */
++
++#define EXT2_CURRENT_REV EXT2_GOOD_OLD_REV
++#define EXT2_MAX_SUPP_REV EXT2_DYNAMIC_REV
++
++#define EXT2_GOOD_OLD_INODE_SIZE 128
++
++/*
++ * Journal inode backup types
++ */
++#define EXT3_JNL_BACKUP_BLOCKS 1
++
++/*
++ * Feature set definitions
++ */
++
++#define EXT2_HAS_COMPAT_FEATURE(sb,mask) \
++ ( EXT2_SB(sb)->s_feature_compat & (mask) )
++#define EXT2_HAS_RO_COMPAT_FEATURE(sb,mask) \
++ ( EXT2_SB(sb)->s_feature_ro_compat & (mask) )
++#define EXT2_HAS_INCOMPAT_FEATURE(sb,mask) \
++ ( EXT2_SB(sb)->s_feature_incompat & (mask) )
++
++#define EXT2_FEATURE_COMPAT_DIR_PREALLOC 0x0001
++#define EXT2_FEATURE_COMPAT_IMAGIC_INODES 0x0002
++#define EXT3_FEATURE_COMPAT_HAS_JOURNAL 0x0004
++#define EXT2_FEATURE_COMPAT_EXT_ATTR 0x0008
++#define EXT2_FEATURE_COMPAT_RESIZE_INODE 0x0010
++#define EXT2_FEATURE_COMPAT_DIR_INDEX 0x0020
++#define EXT2_FEATURE_COMPAT_LAZY_BG 0x0040
++/* #define EXT2_FEATURE_COMPAT_EXCLUDE_INODE 0x0080 not used, legacy */
++#define EXT2_FEATURE_COMPAT_EXCLUDE_BITMAP 0x0100
++
++
++#define EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER 0x0001
++#define EXT2_FEATURE_RO_COMPAT_LARGE_FILE 0x0002
++/* #define EXT2_FEATURE_RO_COMPAT_BTREE_DIR 0x0004 not used */
++#define EXT4_FEATURE_RO_COMPAT_HUGE_FILE 0x0008
++#define EXT4_FEATURE_RO_COMPAT_GDT_CSUM 0x0010
++#define EXT4_FEATURE_RO_COMPAT_DIR_NLINK 0x0020
++#define EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE 0x0040
++#define EXT4_FEATURE_RO_COMPAT_HAS_SNAPSHOT 0x0080
++#define EXT4_FEATURE_RO_COMPAT_QUOTA 0x0100
++#define EXT4_FEATURE_RO_COMPAT_BIGALLOC 0x0200
++#define EXT4_FEATURE_RO_COMPAT_METADATA_CSUM 0x0400
++#define EXT4_FEATURE_RO_COMPAT_REPLICA 0x0800
++
++#define EXT2_FEATURE_INCOMPAT_COMPRESSION 0x0001
++#define EXT2_FEATURE_INCOMPAT_FILETYPE 0x0002
++#define EXT3_FEATURE_INCOMPAT_RECOVER 0x0004 /* Needs recovery */
++#define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV 0x0008 /* Journal device */
++#define EXT2_FEATURE_INCOMPAT_META_BG 0x0010
++#define EXT3_FEATURE_INCOMPAT_EXTENTS 0x0040
++#define EXT4_FEATURE_INCOMPAT_64BIT 0x0080
++#define EXT4_FEATURE_INCOMPAT_MMP 0x0100
++#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
++#define EXT4_FEATURE_INCOMPAT_EA_INODE 0x0400
++#define EXT4_FEATURE_INCOMPAT_DIRDATA 0x1000
++
++#define EXT2_FEATURE_COMPAT_SUPP 0
++#define EXT2_FEATURE_INCOMPAT_SUPP (EXT2_FEATURE_INCOMPAT_FILETYPE| \
++ EXT4_FEATURE_INCOMPAT_MMP)
++#define EXT2_FEATURE_RO_COMPAT_SUPP (EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER| \
++ EXT2_FEATURE_RO_COMPAT_LARGE_FILE| \
++ EXT4_FEATURE_RO_COMPAT_DIR_NLINK| \
++ EXT2_FEATURE_RO_COMPAT_BTREE_DIR)
++
++/*
++ * Default values for user and/or group using reserved blocks
++ */
++#define EXT2_DEF_RESUID 0
++#define EXT2_DEF_RESGID 0
++
++/*
++ * Default mount options
++ */
++#define EXT2_DEFM_DEBUG 0x0001
++#define EXT2_DEFM_BSDGROUPS 0x0002
++#define EXT2_DEFM_XATTR_USER 0x0004
++#define EXT2_DEFM_ACL 0x0008
++#define EXT2_DEFM_UID16 0x0010
++#define EXT3_DEFM_JMODE 0x0060
++#define EXT3_DEFM_JMODE_DATA 0x0020
++#define EXT3_DEFM_JMODE_ORDERED 0x0040
++#define EXT3_DEFM_JMODE_WBACK 0x0060
++#define EXT4_DEFM_NOBARRIER 0x0100
++#define EXT4_DEFM_BLOCK_VALIDITY 0x0200
++#define EXT4_DEFM_DISCARD 0x0400
++#define EXT4_DEFM_NODELALLOC 0x0800
++
++/*
++ * Structure of a directory entry
++ */
++#define EXT2_NAME_LEN 255
++
++struct ext2_dir_entry {
++ __u32 inode; /* Inode number */
++ __u16 rec_len; /* Directory entry length */
++ __u16 name_len; /* Name length */
++ char name[EXT2_NAME_LEN]; /* File name */
++};
++
++/*
++ * The new version of the directory entry. Since EXT2 structures are
++ * stored in intel byte order, and the name_len field could never be
++ * bigger than 255 chars, it's safe to reclaim the extra byte for the
++ * file_type field.
++ */
++struct ext2_dir_entry_2 {
++ __u32 inode; /* Inode number */
++ __u16 rec_len; /* Directory entry length */
++ __u8 name_len; /* Name length */
++ __u8 file_type;
++ char name[EXT2_NAME_LEN]; /* File name */
++};
++
++/*
++ * Ext2 directory file types. Only the low 3 bits are used. The
++ * other bits are reserved for now.
++ */
++#define EXT2_FT_UNKNOWN 0
++#define EXT2_FT_REG_FILE 1
++#define EXT2_FT_DIR 2
++#define EXT2_FT_CHRDEV 3
++#define EXT2_FT_BLKDEV 4
++#define EXT2_FT_FIFO 5
++#define EXT2_FT_SOCK 6
++#define EXT2_FT_SYMLINK 7
++
++#define EXT2_FT_MAX 8
++
++/*
++ * EXT2_DIR_PAD defines the directory entries boundaries
++ *
++ * NOTE: It must be a multiple of 4
++ */
++#define EXT2_DIR_PAD 4
++#define EXT2_DIR_ROUND (EXT2_DIR_PAD - 1)
++#define EXT2_DIR_REC_LEN(name_len) (((name_len) + 8 + EXT2_DIR_ROUND) & \
++ ~EXT2_DIR_ROUND)
++
++/*
++ * This structure is used for multiple mount protection. It is written
++ * into the block number saved in the s_mmp_block field in the superblock.
++ * Programs that check MMP should assume that if SEQ_FSCK (or any unknown
++ * code above SEQ_MAX) is present then it is NOT safe to use the filesystem,
++ * regardless of how old the timestamp is.
++ *
++ * The timestamp in the MMP structure will be updated by e2fsck at some
++ * arbitary intervals (start of passes, after every few groups of inodes
++ * in pass1 and pass1b). There is no guarantee that e2fsck is updating
++ * the MMP block in a timely manner, and the updates it does are purely
++ * for the convenience of the sysadmin and not for automatic validation.
++ *
++ * Note: Only the mmp_seq value is used to determine whether the MMP block
++ * is being updated. The mmp_time, mmp_nodename, and mmp_bdevname
++ * fields are only for informational purposes for the administrator,
++ * due to clock skew between nodes and hostname HA service takeover.
++ */
++#define EXT4_MMP_MAGIC 0x004D4D50U /* ASCII for MMP */
++#define EXT4_MMP_SEQ_CLEAN 0xFF4D4D50U /* mmp_seq value for clean unmount */
++#define EXT4_MMP_SEQ_FSCK 0xE24D4D50U /* mmp_seq value when being fscked */
++#define EXT4_MMP_SEQ_MAX 0xE24D4D4FU /* maximum valid mmp_seq value */
++
++struct mmp_struct {
++ __u32 mmp_magic; /* Magic number for MMP */
++ __u32 mmp_seq; /* Sequence no. updated periodically */
++ __u64 mmp_time; /* Time last updated */
++ char mmp_nodename[64]; /* Node which last updated MMP block */
++ char mmp_bdevname[32]; /* Bdev which last updated MMP block */
++ __u16 mmp_check_interval; /* Changed mmp_check_interval */
++ __u16 mmp_pad1;
++ __u32 mmp_pad2[227];
++};
++
++/*
++ * Default interval for MMP update in seconds.
++ */
++#define EXT4_MMP_UPDATE_INTERVAL 5
++
++/*
++ * Maximum interval for MMP update in seconds.
++ */
++#define EXT4_MMP_MAX_UPDATE_INTERVAL 300
++
++/*
++ * Minimum interval for MMP checking in seconds.
++ */
++#define EXT4_MMP_MIN_CHECK_INTERVAL 5
++
++#endif /* _EXT2FS_EXT2_FS_H */
+diff -urpN syslinux-4.05/libinstaller/linuxioctl.h.ext2 syslinux-4.05/libinstaller/linuxioctl.h
+--- syslinux-4.05/libinstaller/linuxioctl.h.ext2 2011-12-09 13:28:17.000000000 -0500
++++ syslinux-4.05/libinstaller/linuxioctl.h 2012-08-06 09:52:42.653335110 -0400
+@@ -9,17 +9,33 @@
+
+ #include <sys/ioctl.h>
+
++#ifdef __linux__
++
+ #define statfs _kernel_statfs /* HACK to deal with broken 2.4 distros */
+
+ #include <linux/fd.h> /* Floppy geometry */
+ #include <linux/hdreg.h> /* Hard disk geometry */
+
+-#include <linux/fs.h> /* FIGETBSZ, FIBMAP, FS_IOC_FIEMAP */
++#include <linux/fs.h> /* FIGETBSZ, FIBMAP, FS_IOC_* */
+ #include <linux/msdos_fs.h> /* FAT_IOCTL_SET_ATTRIBUTES */
+
+ #undef SECTOR_SIZE /* Defined in msdos_fs.h for no good reason */
+ #undef SECTOR_BITS
+-#include <linux/ext2_fs.h> /* EXT2_IOC_* */
++
++#ifndef FS_IOC_GETFLAGS
++/* Old kernel headers, these were once ext2-specific... */
++# include <linux/ext2_fs.h> /* EXT2_IOC_* */
++
++# define FS_IOC_GETFLAGS EXT2_IOC_GETFLAGS
++# define FS_IOC_SETFLAGS EXT2_IOC_SETFLAGS
++
++# define FS_IMMUTABLE_FL EXT2_IMMUTABLE_FL
++
++#else
++
++# include <ext2fs/ext2_fs.h>
++
++#endif
+
+ #ifndef FAT_IOCTL_GET_ATTRIBUTES
+ # define FAT_IOCTL_GET_ATTRIBUTES _IOR('r', 0x10, __u32)
+@@ -37,11 +53,13 @@
+
+ #undef statfs
+
+-#if defined(__linux__) && !defined(BLKGETSIZE64)
++#ifndef BLKGETSIZE64
+ /* This takes a u64, but the size field says size_t. Someone screwed big. */
+ # define BLKGETSIZE64 _IOR(0x12,114,size_t)
+ #endif
+
+ #include <linux/loop.h>
+
++#endif /* __linux__ */
++
+ #endif /* LIBINSTALLER_LINUXIOCTL_H */
+diff -urpN syslinux-4.05/libinstaller/syslxcom.c.ext2 syslinux-4.05/libinstaller/syslxcom.c
+--- syslinux-4.05/libinstaller/syslxcom.c.ext2 2011-12-09 13:28:17.000000000 -0500
++++ syslinux-4.05/libinstaller/syslxcom.c 2012-08-06 09:48:43.797645032 -0400
+@@ -121,9 +121,9 @@ void clear_attributes(int fd)
+ {
+ int flags;
+
+- if (!ioctl(fd, EXT2_IOC_GETFLAGS, &flags)) {
+- flags &= ~EXT2_IMMUTABLE_FL;
+- ioctl(fd, EXT2_IOC_SETFLAGS, &flags);
++ if (!ioctl(fd, FS_IOC_GETFLAGS, &flags)) {
++ flags &= ~FS_IMMUTABLE_FL;
++ ioctl(fd, FS_IOC_SETFLAGS, &flags);
+ }
+ break;
+ }
+@@ -151,9 +151,9 @@ void set_attributes(int fd)
+ {
+ int flags;
+
+- if (st.st_uid == 0 && !ioctl(fd, EXT2_IOC_GETFLAGS, &flags)) {
+- flags |= EXT2_IMMUTABLE_FL;
+- ioctl(fd, EXT2_IOC_SETFLAGS, &flags);
++ if (st.st_uid == 0 && !ioctl(fd, FS_IOC_GETFLAGS, &flags)) {
++ flags |= FS_IMMUTABLE_FL;
++ ioctl(fd, FS_IOC_SETFLAGS, &flags);
+ }
+ break;
+ }
diff --git a/libre/syslinux/rePKGBUILD b/libre/syslinux/rePKGBUILD
index a8eb152d5..85ab6074e 100644
--- a/libre/syslinux/rePKGBUILD
+++ b/libre/syslinux/rePKGBUILD
@@ -3,23 +3,23 @@
# NOTE: Please fill out the license field for your package! If it is unknown,
# then please put 'unknown'.
-# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
source PKGBUILD
unset build package md5sums source check
_repo=core
pkgname='syslinux'
options=(!strip)
source=(PKGBUILD
-# http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
- http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgname}-${pkgver}-4-${CARCH}${PKGEXT}
+ http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
+# http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgname}-${pkgver}-4-${CARCH}${PKGEXT}
# files for pkg modifications
syslinux.cfg
splash.png)
build() {
cd "${srcdir}/"
-# rm -v .{INSTALL,PKGINFO} ${pkgname%}-$pkgver-$pkgrel-$CARCH$PKGEXT || true
- rm -v .{INSTALL,PKGINFO} ${pkgname%}-$pkgver-4-$CARCH$PKGEXT || true
+ rm -v .{INSTALL,PKGINFO} ${pkgname%}-$pkgver-$pkgrel-$CARCH$PKGEXT || true
+# rm -v .{INSTALL,PKGINFO} ${pkgname%}-$pkgver-4-$CARCH$PKGEXT || true
# put actions for package modifications below this line
rm -v boot/syslinux/syslinux.cfg
@@ -33,7 +33,7 @@ package_syslinux() {
optdepends=('perl-passwd-md5: For md5pass'
'perl-digest-sha1: For sha1pass'
'mtools: For mkdiskimage and syslinux support'
- )
+ 'gptfdisk: For GPT support')
# Install the default configuration
install -D -m644 "$srcdir"/syslinux.cfg "$pkgdir"/boot/syslinux/syslinux.cfg
# Install Parabola splash
diff --git a/libre/virtualbox-libre-modules-lts/PKGBUILD b/libre/virtualbox-libre-modules-lts/PKGBUILD
index 3de090703..588f72271 100644
--- a/libre/virtualbox-libre-modules-lts/PKGBUILD
+++ b/libre/virtualbox-libre-modules-lts/PKGBUILD
@@ -7,7 +7,7 @@
pkgbase=virtualbox-libre-modules-lts
pkgname=('virtualbox-libre-modules-lts' 'virtualbox-libre-parabola-modules-lts')
pkgver=4.1.18
-pkgrel=4
+pkgrel=4.1
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL')
@@ -107,7 +107,7 @@ package_virtualbox-libre-parabola-modules-lts(){
depends=('linux-libre-lts>=3.0' 'linux-libre-lts<3.1')
replaces=('virtualbox-archlinux-modules-lts')
conflicts=('virtualbox-archlinux-modules-lts')
- provides=("virtualbox-archlinux-modules-lts=$pkgver" "virtualbox-archlinux-modules=$pkgver")
+ provides=("virtualbox-archlinux-modules-lts=$pkgver" 'virtualbox-archlinux-modules')
source "$srcdir/VirtualBox-${pkgver}/env.sh"
@@ -131,7 +131,7 @@ package_virtualbox-libre-modules-lts(){
depends=('linux-libre-lts>=3.0' 'linux-libre-lts<3.1')
replaces=('virtualbox-modules-lts')
conflicts=('virtualbox-modules-lts')
- provides=("virtualbox-modules-lts=$pkgver" "virtualbox-modules=$pkgver")
+ provides=("virtualbox-modules-lts=$pkgver" 'virtualbox-modules')
source "$srcdir/VirtualBox-${pkgver}/env.sh"
diff --git a/libre/virtualbox-libre/.directory b/libre/virtualbox-libre/.directory
index 0de6ba6b0..502696f2f 100644
--- a/libre/virtualbox-libre/.directory
+++ b/libre/virtualbox-libre/.directory
@@ -1,3 +1,4 @@
[Dolphin]
-Timestamp=2012,7,26,5,49,47
+Timestamp=2012,8,8,14,52,43
+Version=3
ViewMode=2
diff --git a/libre/virtualbox-libre/PKGBUILD b/libre/virtualbox-libre/PKGBUILD
index c3aa1a69c..80de2315f 100644
--- a/libre/virtualbox-libre/PKGBUILD
+++ b/libre/virtualbox-libre/PKGBUILD
@@ -1,9 +1,9 @@
# $Id$
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
# Maintainer (Parabola): Nicolas Reynolds <fauno@kiwwwi.com.ar>
# Maintainer (Parabola): Jorge López <jorginho@lavabit.com>
# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
-# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
-# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
pkgbase=virtualbox-libre
pkgname=('virtualbox-libre'
'virtualbox-libre-parabola-additions'
@@ -11,7 +11,7 @@ pkgname=('virtualbox-libre'
'virtualbox-libre-source'
'virtualbox-libre-parabola-source')
pkgver=4.1.18
-pkgrel=4.2
+pkgrel=5
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL' 'custom')
@@ -33,7 +33,7 @@ _extramodules=extramodules-3.5-LIBRE
_kernver="$(cat /usr/lib/modules/${_extramodules}/version)" || true
build() {
- cd "$srcdir/VirtualBox-${pkgver}"
+ cd "VirtualBox-$pkgver"
patch -Np1 -i "$srcdir/vboxdrv-reference.patch"
patch -Np1 -i "$srcdir/change_default_driver_dir.patch"
@@ -72,6 +72,10 @@ build() {
source ./env.sh
kmk all
sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' "out/linux.$BUILD_PLATFORM_ARCH/release/bin/vboxshell.py"
+ # build rdesktop-vrdp (broken from LocalConfig.kmk)
+ cd src/VBox/RDP/client
+ cp "$srcdir/LocalConfig.kmk" .
+ kmk all
}
package_virtualbox-libre() {
@@ -83,25 +87,26 @@ package_virtualbox-libre() {
'virtualbox-libre-source: host kernel source modules for non-stock kernels'
'net-tools: for host-only or bridged networking')
- backup=('etc/vbox/vbox.cfg')
+ backup=('etc/vbox/vbox.cfg' 'etc/conf.d/vboxweb')
replaces=('virtualbox' 'virtualbox-ose')
conflicts=('virtualbox' 'virtualbox-ose')
provides=("virtualbox=$pkgver")
install=virtualbox-libre.install
- source "$srcdir/VirtualBox-${pkgver}/env.sh"
-
- cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
- install -dm755 "$pkgdir"/usr/{bin,lib/virtualbox/components,share/virtualbox/nls}
+ source "VirtualBox-$pkgver/env.sh"
+ cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+ install -dm755 "$pkgdir"/usr/{bin,lib/virtualbox/components,share/virtualbox/nls,share/virtualbox/rdesktop-vrdp-keymaps}
#Binaries and Wrapper with Launchers
install -m 0755 VBox.sh "$pkgdir/usr/bin/VBox"
- for i in VBoxHeadless vboxheadless VBoxManage vboxmanage VBoxSDL vboxsdl VirtualBox virtualbox vboxwebsrv VBoxBalloonCtrl vboxballoonctrl; do
+ for i in VBoxHeadless VBoxManage VBoxSDL VirtualBox vboxwebsrv VBoxBalloonCtrl; do
ln -sf VBox "$pkgdir/usr/bin/$i"
+ ln -sf VBox "$pkgdir/usr/bin/${i,,}"
done
install -m 0755 VBoxTunctl "$pkgdir/usr/bin"
+ install -m 0755 rdesktop-vrdp "$pkgdir/usr/bin"
#components
install -m 0755 components/* -t "$pkgdir/usr/lib/virtualbox/components"
@@ -118,6 +123,9 @@ package_virtualbox-libre() {
#language
install -m 0755 nls/*.qm -t "$pkgdir/usr/share/virtualbox/nls"
+ #rdesktop keymaps
+ install -m 0644 rdesktop-vrdp-keymaps/* "$pkgdir/usr/share/virtualbox/rdesktop-vrdp-keymaps"
+
#useless scripts
install -m 0755 VBoxCreateUSBNode.sh VBoxSysInfo.sh -t "$pkgdir/usr/share/virtualbox"
@@ -160,14 +168,14 @@ package_virtualbox-libre-source() {
depends=(dkms gcc make)
replaces=('virtualbox-source')
conflicts=('virtualbox-source')
- provides=("virtualbox-source=$pkgver" "virtualbox-modules=$pkgver")
+ provides=("virtualbox-source=$pkgver" 'virtualbox-modules')
optdepends=('linux-libre-headers'
'linux-libre-lts-headers')
install=virtualbox-libre-source.install
install -dm755 "$pkgdir/var/lib/dkms/vboxhost/$pkgver"
- source "$srcdir/VirtualBox-${pkgver}/env.sh"
- cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+ source "VirtualBox-$pkgver/env.sh"
+ cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
cp -r src "$pkgdir/var/lib/dkms/vboxhost/$pkgver/source"
}
@@ -180,8 +188,8 @@ package_virtualbox-libre-sdk() {
install -dm755 "$pkgdir/usr/lib/virtualbox"
- source "$srcdir/VirtualBox-${pkgver}/env.sh"
- cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+ source "VirtualBox-$pkgver/env.sh"
+ cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
install -D -m 0755 vboxshell.py "$pkgdir/usr/lib/virtualbox/vboxshell.py"
#python sdk
@@ -201,17 +209,17 @@ package_virtualbox-libre-parabola-additions(){
backup=('etc/conf.d/vboxservice')
install=virtualbox-libre-parabola-additions.install
- source "$srcdir/VirtualBox-${pkgver}/env.sh"
+ source "VirtualBox-$pkgver/env.sh"
- cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
+ cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
install -d "$pkgdir"/{usr/bin,sbin}
install -m755 VBoxClient VBoxControl VBoxService "$pkgdir/usr/bin"
install -m755 mount.vboxsf "$pkgdir/sbin"
- install -m755 -D "$srcdir"/VirtualBox-${pkgver}/src/VBox/Additions/x11/Installer/98vboxadd-xclient \
+ install -m755 -D "$srcdir"/VirtualBox-$pkgver/src/VBox/Additions/x11/Installer/98vboxadd-xclient \
"$pkgdir"/usr/bin/VBoxClient-all
- install -m755 -D "$srcdir"/VirtualBox-${pkgver}/src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ install -m755 -D "$srcdir"/VirtualBox-$pkgver/src/VBox/Additions/x11/Installer/vboxclient.desktop \
"$pkgdir"/etc/xdg/autostart/vboxclient.desktop
install -D vboxvideo_drv_112.so \
"$pkgdir/usr/lib/xorg/modules/drivers/vboxvideo.so"
@@ -236,14 +244,14 @@ package_virtualbox-libre-parabola-source() {
depends=(dkms gcc make)
replaces=('virtualbox-archlinux-source')
conflicts=('virtualbox-archlinux-source')
- provides=("virtualbox-archlinux-source=${pkgver}" "virtualbox-archlinux-modules=${pkgver}")
+ provides=("virtualbox-archlinux-source=${pkgver}" 'virtualbox-archlinux-modules')
optdepends=('linux-libre-headers'
'linux-libre-lts-headers')
install=virtualbox-libre-parabola-source.install
install -dm755 "$pkgdir/var/lib/dkms/vboxguest/$pkgver"
- source "$srcdir/VirtualBox-${pkgver}/env.sh"
- cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
+ source "VirtualBox-$pkgver/env.sh"
+ cd "VirtualBox-$pkgver/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
cp -r src "$pkgdir/var/lib/dkms/vboxguest/$pkgver/source"
}
@@ -256,7 +264,7 @@ md5sums=('38db0a87cba659b484af868b0c2bd3ac'
'3c08ad30b89add47d3f45121200a5360'
'7d9823507206de9b8528a72af2f18d74'
'07c5f6d86c4b7839d719c8ee0c53653b'
- '3ac185709bfe688bb753c46e170d0546'
+ '7e9483b1069a54f181546083ac7e5469'
'c159d683ba1947290fc2ad2c64194150'
'bc9efed88e0469cd7fc460d5a5cd7b4b'
'8538dba8686d7449cb481c9bae9d722a'
diff --git a/libre/virtualbox-libre/vboxweb.conf b/libre/virtualbox-libre/vboxweb.conf
index 49d82d828..c36f6a143 100644
--- a/libre/virtualbox-libre/vboxweb.conf
+++ b/libre/virtualbox-libre/vboxweb.conf
@@ -3,9 +3,9 @@
# WebService Variables
#VBOXWEB_LOGFILE=
-#$VBOXWEB_HOST=
-#$VBOXWEB_PORT=
-#$VBOXWEB_TIMEOUT=
-#$VBOXWEB_CHECK_INTERVAL=
-#$VBOXWEB_THREADS=
-#$VBOXWEB_KEEPALIVE=
+#VBOXWEB_HOST=
+#VBOXWEB_PORT=
+#VBOXWEB_TIMEOUT=
+#VBOXWEB_CHECK_INTERVAL=
+#VBOXWEB_THREADS=
+#VBOXWEB_KEEPALIVE=
diff --git a/testing/net-tools/Makefile.patch b/testing/net-tools/Makefile.patch
new file mode 100644
index 000000000..aaacd6b78
--- /dev/null
+++ b/testing/net-tools/Makefile.patch
@@ -0,0 +1,17 @@
+--- Makefile.old 2012-08-07 22:07:58.235437087 +0200
++++ Makefile 2012-08-07 22:10:21.192104345 +0200
+@@ -239,12 +239,12 @@
+ install -m 0755 -d ${BASEDIR}/bin
+ install -m 0755 arp ${BASEDIR}/sbin
+ install -m 0755 hostname ${BASEDIR}/bin
+- install -m 0755 ifconfig ${BASEDIR}/bin
++ install -m 0755 ifconfig ${BASEDIR}/sbin
+ install -m 0755 nameif ${BASEDIR}/sbin
+ install -m 0755 netstat ${BASEDIR}/bin
+ install -m 0755 plipconfig $(BASEDIR)/sbin
+ install -m 0755 rarp ${BASEDIR}/sbin
+- install -m 0755 route ${BASEDIR}/bin
++ install -m 0755 route ${BASEDIR}/sbin
+ install -m 0755 slattach $(BASEDIR)/sbin
+ ifeq ($(HAVE_IP_TOOLS),1)
+ install -m 0755 ipmaddr $(BASEDIR)/sbin
diff --git a/testing/net-tools/PKGBUILD b/testing/net-tools/PKGBUILD
index 9468ff936..fec4a9806 100644
--- a/testing/net-tools/PKGBUILD
+++ b/testing/net-tools/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 164775 2012-08-04 20:55:03Z ronald $
+# $Id: PKGBUILD 164985 2012-08-07 20:09:18Z ronald $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=net-tools
pkgver=1.60.20120804git
-pkgrel=1
+pkgrel=2
pkgdesc="Configuration tools for Linux networking"
arch=(i686 x86_64)
license=('GPL2')
@@ -13,19 +13,21 @@ depends=('glibc')
# http://www.tazenda.demon.co.uk/phil/$pkgname/$pkgname-$pkgver.tar.bz2
# use git checkout instead
-source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz
+ Makefile.patch)
options=(!makeflags)
install=net-tools.install
-sha1sums=('a3341086cb403a8d747b783693f72ee2dfd72d82')
-
+sha1sums=('a3341086cb403a8d747b783693f72ee2dfd72d82'
+ '4191ca56dc01d6aebe26c36c7cc060c638d5ebca')
build() {
- cd $srcdir/$pkgname-$pkgver
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np0 -i ${srcdir}/Makefile.patch
yes "" | make
}
package() {
- cd $srcdir/$pkgname-$pkgver
- make BASEDIR=$pkgdir update
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make BASEDIR=${pkgdir} update
# the following is provided by yp-tools
rm "${pkgdir}"/bin/{nis,yp}domainname
diff --git a/testing/network-manager-applet/PKGBUILD b/testing/network-manager-applet/PKGBUILD
new file mode 100644
index 000000000..10b025755
--- /dev/null
+++ b/testing/network-manager-applet/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 164979 2012-08-07 18:12:21Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan Timmerman <arjan@archlinux.org>
+# Contributor: Wael Nasreddine <gandalf@siemens-mobiles.org>
+# Contributor: Tor Krill <tor@krill.nu>
+# Contributor: Will Rea <sillywilly@gmail.com>
+
+pkgname=network-manager-applet
+pkgver=0.9.6.0
+pkgrel=1
+pkgdesc="GNOME frontends to NetWorkmanager"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=('networkmanager' 'libgnome-keyring' 'polkit-gnome' 'gtk3' 'libnotify' 'gnome-icon-theme'
+ 'mobile-broadband-provider-info' 'iso-codes')
+makedepends=('intltool' 'gnome-bluetooth')
+optdepends=('gnome-bluetooth: for PAN/DUN support')
+options=('!libtool' '!emptydirs')
+install=network-manager-applet.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/0.9/$pkgname-$pkgver.tar.xz)
+sha256sums=('7bdcf9d28f2823d9514974977df618c83e79c581db57df718885735ba10144d5')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static \
+ --disable-maintainer-mode \
+ --disable-migration
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/network-manager-applet/network-manager-applet.install b/testing/network-manager-applet/network-manager-applet.install
new file mode 100644
index 000000000..255ea1f9a
--- /dev/null
+++ b/testing/network-manager-applet/network-manager-applet.install
@@ -0,0 +1,18 @@
+post_install() {
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 0.9.6.0) < 0 )); then
+ gconfpkg --uninstall network-manager-applet
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/testing/networkmanager-openconnect/PKGBUILD b/testing/networkmanager-openconnect/PKGBUILD
new file mode 100644
index 000000000..0068a8f68
--- /dev/null
+++ b/testing/networkmanager-openconnect/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 164975 2012-08-07 18:08:35Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-openconnect
+pkgver=0.9.6.0
+pkgrel=1
+pkgdesc="NetworkManager VPN integration for openconnect"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'openconnect' 'gconf' 'libgnome-keyring')
+makedepends=('intltool')
+optdepends=('network-manager-applet: GNOME frontends to NetWorkmanager')
+options=('!libtool')
+install=$pkgname.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/NetworkManager-openconnect/0.9/NetworkManager-openconnect-${pkgver}.tar.xz)
+sha256sums=('b52412537f54a27b469eebca38477de0c9c0bc8cad68c169d018668e595eb495')
+
+build() {
+ cd NetworkManager-openconnect-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static
+ make
+}
+
+package() {
+ cd NetworkManager-openconnect-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/networkmanager-openconnect/networkmanager-openconnect.install b/testing/networkmanager-openconnect/networkmanager-openconnect.install
new file mode 100644
index 000000000..7bd4d44f9
--- /dev/null
+++ b/testing/networkmanager-openconnect/networkmanager-openconnect.install
@@ -0,0 +1,16 @@
+pkgname=networkmanager-openconnect
+
+post_install() {
+ getent group nm-openconnect >/dev/null 2>&1 || groupadd -g 104 nm-openconnect
+ getent passwd nm-openconnect > /dev/null 2>&1 || useradd -u 104 -s /sbin/nologin -d / -M -c 'NetworkManager user for OpenConnect' -g nm-openconnect nm-openconnect
+ passwd -l nm-openconnect > /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ getent passwd nm-openconnect >/dev/null 2>&1 && userdel nm-openconnect
+ getent group nm-openconnect >/dev/null 2>&1 && groupdel nm-openconnect
+}
diff --git a/testing/networkmanager-openvpn/PKGBUILD b/testing/networkmanager-openvpn/PKGBUILD
new file mode 100644
index 000000000..16f27e614
--- /dev/null
+++ b/testing/networkmanager-openvpn/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 164976 2012-08-07 18:09:27Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-openvpn
+pkgver=0.9.6.0
+pkgrel=1
+pkgdesc="NetworkManager VPN plugin for OpenVPN"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'openvpn' 'gtk3' 'libgnome-keyring')
+makedepends=('intltool')
+optdepends=('network-manager-applet: GNOME frontends to NetWorkmanager')
+install=networkmanager-openvpn.install
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/NetworkManager-openvpn/0.9/NetworkManager-openvpn-${pkgver}.tar.xz)
+sha256sums=('8fb88705793399574b3de2af93f87b63c0eae342d549a1c79bc59f6a1fad87a3')
+
+build() {
+ cd NetworkManager-openvpn-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static
+ make
+}
+
+package() {
+ cd NetworkManager-openvpn-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/networkmanager-openvpn/networkmanager-openvpn.install b/testing/networkmanager-openvpn/networkmanager-openvpn.install
new file mode 100644
index 000000000..931c0517c
--- /dev/null
+++ b/testing/networkmanager-openvpn/networkmanager-openvpn.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/testing/networkmanager-pptp/PKGBUILD b/testing/networkmanager-pptp/PKGBUILD
new file mode 100644
index 000000000..b4f975a2c
--- /dev/null
+++ b/testing/networkmanager-pptp/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 164977 2012-08-07 18:10:19Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-pptp
+pkgver=0.9.6.0
+pkgrel=1
+pkgdesc="NetworkManager VPN plugin for pptp "
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'pptpclient' 'gtk3' 'libgnome-keyring')
+makedepends=('intltool')
+optdepends=('network-manager-applet: GNOME frontends to NetWorkmanager')
+options=('!libtool')
+install=networkmanager-pptp.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/NetworkManager-pptp/0.9/NetworkManager-pptp-${pkgver}.tar.xz)
+sha256sums=('a84cbbf24827229e3dd3611bbde191398275c3b7ecd03913047197644f27a2b4')
+
+build() {
+ cd NetworkManager-pptp-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static
+ make
+}
+
+package() {
+ cd NetworkManager-pptp-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/networkmanager-pptp/networkmanager-pptp.install b/testing/networkmanager-pptp/networkmanager-pptp.install
new file mode 100644
index 000000000..931c0517c
--- /dev/null
+++ b/testing/networkmanager-pptp/networkmanager-pptp.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/testing/networkmanager-vpnc/PKGBUILD b/testing/networkmanager-vpnc/PKGBUILD
new file mode 100644
index 000000000..db34ef9c2
--- /dev/null
+++ b/testing/networkmanager-vpnc/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 164978 2012-08-07 18:11:11Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-vpnc
+pkgver=0.9.6.0
+pkgrel=1
+pkgdesc="NetworkManager VPN plugin for vpnc"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'vpnc' 'hicolor-icon-theme' 'gtk3' 'libgnome-keyring')
+makedepends=('intltool')
+optdepends=('network-manager-applet: GNOME frontends to NetWorkmanager')
+options=('!libtool')
+install=networkmanager-vpnc.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/NetworkManager-vpnc/0.9/NetworkManager-vpnc-${pkgver}.tar.xz)
+sha256sums=('6c8e35862330e17ee8f4dc44b1ac47470da703e436d339c7b3e2dac7d1b148a2')
+
+build() {
+ cd NetworkManager-vpnc-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static
+ make
+}
+
+package() {
+ cd NetworkManager-vpnc-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/networkmanager-vpnc/networkmanager-vpnc.install b/testing/networkmanager-vpnc/networkmanager-vpnc.install
new file mode 100644
index 000000000..931c0517c
--- /dev/null
+++ b/testing/networkmanager-vpnc/networkmanager-vpnc.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/testing/networkmanager/NetworkManager.conf b/testing/networkmanager/NetworkManager.conf
new file mode 100644
index 000000000..c37b59680
--- /dev/null
+++ b/testing/networkmanager/NetworkManager.conf
@@ -0,0 +1,2 @@
+[main]
+plugins=keyfile
diff --git a/testing/networkmanager/PKGBUILD b/testing/networkmanager/PKGBUILD
new file mode 100644
index 000000000..e4c927db3
--- /dev/null
+++ b/testing/networkmanager/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 164974 2012-08-07 18:07:41Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinxu.org>
+# Contributor: Wael Nasreddine <gandalf@siemens-mobiles.org>
+# Contributor: Tor Krill <tor@krill.nu>
+# Contributor: Will Rea <sillywilly@gmail.com>
+# Contributor: Valentine Sinitsyn <e_val@inbox.ru>
+
+pkgname=networkmanager
+_pkgname=NetworkManager
+pkgver=0.9.6.0
+pkgrel=1
+pkgdesc="Network Management daemon"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/$_pkgname/"
+depends=('dbus-glib' 'iproute2' 'libnl' 'nss' 'polkit' 'udev' 'wpa_supplicant' 'ppp' 'dhcpcd'
+ 'libsoup')
+makedepends=('intltool' 'dhclient' 'iptables' 'gobject-introspection')
+optdepends=('modemmanager: for modem management service'
+ 'dhclient: alternative DHCP/DHCPv6 client'
+ 'iptables: Connection sharing'
+ 'dnsmasq: Connection sharing'
+ 'bluez: Bluetooth support'
+ 'openresolv: openresolv support')
+options=('!libtool')
+backup=('etc/NetworkManager/NetworkManager.conf')
+install=networkmanager.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver:0:3}/$_pkgname-$pkgver.tar.xz
+ NetworkManager.conf disable_set_hostname.patch dnsmasq-path.patch)
+sha256sums=('3982b623b7b199ac99e2ddd0840fe7d088245a49e3f680237e8baebf0cf86d07'
+ '44b048804c7c0b8b3b0c29b8632b6ad613c397d0a1635ec918e10c0fbcdadf21'
+ '25056837ea92e559f09563ed817e3e0cd9333be861b8914e45f62ceaae2e0460'
+ '65124505048cc8396daf0242c9f5d532fa669b4bbca305998c248ab2329490cb')
+
+build() {
+ cd $_pkgname-$pkgver
+
+ patch -Np1 -i ../disable_set_hostname.patch
+ patch -Np1 -i ../dnsmasq-path.patch
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/networkmanager \
+ --with-crypto=nss \
+ --with-distro=arch \
+ --with-dhclient=/usr/sbin/dhclient \
+ --with-dhcpcd=/sbin/dhcpcd \
+ --with-iptables=/usr/sbin/iptables \
+ --with-systemdsystemunitdir=/usr/lib/systemd/system \
+ --with-udev-dir=/usr/lib/udev \
+ --with-resolvconf=/usr/sbin/resolvconf \
+ --with-session-tracking=ck \
+ --disable-static \
+ --enable-more-warnings=no \
+ --disable-wimax
+
+ make
+}
+
+package() {
+ cd $_pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+
+ install -m644 ../NetworkManager.conf "$pkgdir/etc/NetworkManager/"
+
+ rm -r "$pkgdir/var/run"
+
+ # Provide native service for arch-daemons generator
+ ln -s NetworkManager.service "$pkgdir/usr/lib/systemd/system/networkmanager.service"
+}
diff --git a/testing/networkmanager/disable_set_hostname.patch b/testing/networkmanager/disable_set_hostname.patch
new file mode 100644
index 000000000..ee95dd0e1
--- /dev/null
+++ b/testing/networkmanager/disable_set_hostname.patch
@@ -0,0 +1,19 @@
+diff -Nur NetworkManager-0.9.0.orig/src/nm-policy.c NetworkManager-0.9.0/src/nm-policy.c
+--- NetworkManager-0.9.0.orig/src/nm-policy.c 2011-08-23 06:41:02.099686450 +0000
++++ NetworkManager-0.9.0/src/nm-policy.c 2011-08-23 06:43:38.227791737 +0000
+@@ -302,6 +302,7 @@
+ return;
+ }
+
++#if 0
+ /* Try automatically determined hostname from the best device's IP config */
+ if (!best4)
+ best4 = get_best_ip4_device (policy->manager, &best_req4);
+@@ -356,6 +357,7 @@
+ }
+ }
+
++#endif
+ /* If no automatically-configured hostname, try using the hostname from
+ * when NM started up.
+ */
diff --git a/testing/networkmanager/dnsmasq-path.patch b/testing/networkmanager/dnsmasq-path.patch
new file mode 100644
index 000000000..c0e713266
--- /dev/null
+++ b/testing/networkmanager/dnsmasq-path.patch
@@ -0,0 +1,30 @@
+diff -u -r NetworkManager-0.9.2.0/src/dns-manager/nm-dns-dnsmasq.c NetworkManager-0.9.2.0-dnsmasq/src/dns-manager/nm-dns-dnsmasq.c
+--- NetworkManager-0.9.2.0/src/dns-manager/nm-dns-dnsmasq.c 2011-10-10 23:38:20.000000000 +0200
++++ NetworkManager-0.9.2.0-dnsmasq/src/dns-manager/nm-dns-dnsmasq.c 2012-03-06 09:07:24.137460927 +0100
+@@ -52,8 +52,11 @@
+ find_dnsmasq (void)
+ {
+ static const char *paths[] = {
++ "/usr/local/bin/dnsmasq",
+ "/usr/local/sbin/dnsmasq",
++ "/usr/bin/dnsmasq",
+ "/usr/sbin/dnsmasq",
++ "/bin/dnsmasq",
+ "/sbin/dnsmasq",
+ NULL
+ };
+diff -u -r NetworkManager-0.9.2.0/src/dnsmasq-manager/nm-dnsmasq-manager.c NetworkManager-0.9.2.0-dnsmasq/src/dnsmasq-manager/nm-dnsmasq-manager.c
+--- NetworkManager-0.9.2.0/src/dnsmasq-manager/nm-dnsmasq-manager.c 2011-04-19 07:06:22.000000000 +0200
++++ NetworkManager-0.9.2.0-dnsmasq/src/dnsmasq-manager/nm-dnsmasq-manager.c 2012-03-06 09:07:58.603851818 +0100
+@@ -170,8 +170,11 @@
+ nm_find_dnsmasq (void)
+ {
+ static const char *dnsmasq_binary_paths[] = {
++ "/usr/local/bin/dnsmasq",
+ "/usr/local/sbin/dnsmasq",
++ "/usr/bin/dnsmasq",
+ "/usr/sbin/dnsmasq",
++ "/bin/dnsmasq",
+ "/sbin/dnsmasq",
+ NULL
+ };
diff --git a/testing/networkmanager/networkmanager.install b/testing/networkmanager/networkmanager.install
new file mode 100644
index 000000000..de40c17ed
--- /dev/null
+++ b/testing/networkmanager/networkmanager.install
@@ -0,0 +1,9 @@
+post_upgrade() {
+ (( $(vercmp 0.8.3 $2) > 0 )) && cat <<MSG
+ATTENTION:
+ /etc/NetworkManager/nm-system-settings.conf has been replaced
+ by /etc/NetworkManager/NetworkManager.conf. Make sure you move
+ any custom settings to the new config file.
+MSG
+ true
+}
diff --git a/testing/networkmanager/systemd-fallback.patch b/testing/networkmanager/systemd-fallback.patch
new file mode 100644
index 000000000..f5acc9dc6
--- /dev/null
+++ b/testing/networkmanager/systemd-fallback.patch
@@ -0,0 +1,470 @@
+diff -u -Nr NetworkManager-0.9.3.995/configure.ac NetworkManager-0.9.3.995-systemd-fallback/configure.ac
+--- NetworkManager-0.9.3.995/configure.ac 2012-03-02 01:05:21.000000000 +0100
++++ NetworkManager-0.9.3.995-systemd-fallback/configure.ac 2012-03-06 16:55:58.294793902 +0100
+@@ -344,7 +344,7 @@
+ case $with_session_tracking in
+ ck|none) ;;
+ systemd)
+- PKG_CHECK_MODULES(SYSTEMD, [libsystemd-login])
++ PKG_CHECK_MODULES(SYSTEMD, [libsystemd-daemon libsystemd-login])
+ ;;
+ *)
+ AC_MSG_ERROR(--with-session-tracking must be one of [none, ck, systemd])
+diff -u -Nr NetworkManager-0.9.3.995/src/nm-session-monitor-systemd.c NetworkManager-0.9.3.995-systemd-fallback/src/nm-session-monitor-systemd.c
+--- NetworkManager-0.9.3.995/src/nm-session-monitor-systemd.c 2012-02-27 16:57:16.000000000 +0100
++++ NetworkManager-0.9.3.995-systemd-fallback/src/nm-session-monitor-systemd.c 2012-03-06 16:55:01.285264295 +0100
+@@ -28,6 +28,10 @@
+ #include <glib/gstdio.h>
+ #include <systemd/sd-login.h>
+ #include <stdlib.h>
++#include <systemd/sd-daemon.h>
++#include <sys/stat.h>
++#include <gio/gio.h>
++#include "nm-logging.h"
+
+ #include "nm-session-utils.h"
+ #include "nm-session-monitor.h"
+@@ -107,10 +111,20 @@
+ return source;
+ }
+
++/********************************************************************/
++
++#define CKDB_PATH "/var/run/ConsoleKit/database"
++
+ struct _NMSessionMonitor {
+ GObject parent_instance;
+
+ GSource *sd_source;
++
++ GKeyFile *database;
++ GFileMonitor *database_monitor;
++ time_t database_mtime;
++ GHashTable *sessions_by_uid;
++ GHashTable *sessions_by_user;
+ };
+
+ struct _NMSessionMonitorClass {
+@@ -130,6 +144,215 @@
+
+ /* ---------------------------------------------------------------------------------------------------- */
+
++typedef struct {
++ char *user;
++ uid_t uid;
++ gboolean local;
++ gboolean active;
++} Session;
++
++static void
++session_free (Session *s)
++{
++ g_free (s->user);
++ memset (s, 0, sizeof (Session));
++ g_free (s);
++}
++
++static gboolean
++check_key (GKeyFile *keyfile, const char *group, const char *key, GError **error)
++{
++ if (g_key_file_has_key (keyfile, group, key, error))
++ return TRUE;
++
++ if (!error) {
++ g_set_error (error,
++ NM_SESSION_MONITOR_ERROR,
++ NM_SESSION_MONITOR_ERROR_MALFORMED_DATABASE,
++ "ConsoleKit database " CKDB_PATH " group '%s' had no '%s' key",
++ group, key);
++ }
++ return FALSE;
++}
++
++static Session *
++session_new (GKeyFile *keyfile, const char *group, GError **error)
++{
++ GError *local = NULL;
++ Session *s;
++ const char *uname = NULL;
++
++ s = g_new0 (Session, 1);
++ g_assert (s);
++
++ s->uid = G_MAXUINT; /* paranoia */
++ if (!check_key (keyfile, group, "uid", &local))
++ goto error;
++ s->uid = (uid_t) g_key_file_get_integer (keyfile, group, "uid", &local);
++ if (local)
++ goto error;
++
++ if (!check_key (keyfile, group, "is_active", &local))
++ goto error;
++ s->active = g_key_file_get_boolean (keyfile, group, "is_active", &local);
++ if (local)
++ goto error;
++
++ if (!check_key (keyfile, group, "is_local", &local))
++ goto error;
++ s->local = g_key_file_get_boolean (keyfile, group, "is_local", &local);
++ if (local)
++ goto error;
++
++ if (!nm_session_uid_to_user (s->uid, &uname, error))
++ return FALSE;
++ s->user = g_strdup (uname);
++
++ return s;
++
++error:
++ session_free (s);
++ g_propagate_error (error, local);
++ return NULL;
++}
++
++static void
++session_merge (Session *src, Session *dest)
++{
++ g_return_if_fail (src != NULL);
++ g_return_if_fail (dest != NULL);
++
++ g_warn_if_fail (g_strcmp0 (src->user, dest->user) == 0);
++ g_warn_if_fail (src->uid == dest->uid);
++
++ dest->local = (dest->local || src->local);
++ dest->active = (dest->active || src->active);
++}
++
++/********************************************************************/
++
++static void
++free_database (NMSessionMonitor *self)
++{
++ if (self->database != NULL) {
++ g_key_file_free (self->database);
++ self->database = NULL;
++ }
++
++ g_hash_table_remove_all (self->sessions_by_uid);
++ g_hash_table_remove_all (self->sessions_by_user);
++}
++
++static gboolean
++reload_database (NMSessionMonitor *self, GError **error)
++{
++ struct stat statbuf;
++ char **groups = NULL;
++ gsize len = 0, i;
++ Session *s;
++
++ free_database (self);
++
++ errno = 0;
++ if (stat (CKDB_PATH, &statbuf) != 0) {
++ g_set_error (error,
++ NM_SESSION_MONITOR_ERROR,
++ errno == ENOENT ? NM_SESSION_MONITOR_ERROR_NO_DATABASE : NM_SESSION_MONITOR_ERROR_IO_ERROR,
++ "Error statting file " CKDB_PATH ": %s",
++ strerror (errno));
++ goto error;
++ }
++ self->database_mtime = statbuf.st_mtime;
++
++ self->database = g_key_file_new ();
++ if (!g_key_file_load_from_file (self->database, CKDB_PATH, G_KEY_FILE_NONE, error))
++ goto error;
++
++ groups = g_key_file_get_groups (self->database, &len);
++ if (!groups) {
++ g_set_error_literal (error,
++ NM_SESSION_MONITOR_ERROR,
++ NM_SESSION_MONITOR_ERROR_IO_ERROR,
++ "Could not load groups from " CKDB_PATH "");
++ goto error;
++ }
++
++ for (i = 0; i < len; i++) {
++ Session *found;
++
++ if (!g_str_has_prefix (groups[i], "Session "))
++ continue;
++
++ s = session_new (self->database, groups[i], error);
++ if (!s)
++ goto error;
++
++ found = g_hash_table_lookup (self->sessions_by_user, (gpointer) s->user);
++ if (found) {
++ session_merge (s, found);
++ session_free (s);
++ } else {
++ /* Entirely new user */
++ g_hash_table_insert (self->sessions_by_user, (gpointer) s->user, s);
++ g_hash_table_insert (self->sessions_by_uid, GUINT_TO_POINTER (s->uid), s);
++ }
++ }
++
++ g_strfreev (groups);
++ return TRUE;
++
++error:
++ if (groups)
++ g_strfreev (groups);
++ free_database (self);
++ return FALSE;
++}
++
++static gboolean
++ensure_database (NMSessionMonitor *self, GError **error)
++{
++ gboolean ret = FALSE;
++
++ if (self->database != NULL) {
++ struct stat statbuf;
++
++ errno = 0;
++ if (stat (CKDB_PATH, &statbuf) != 0) {
++ g_set_error (error,
++ NM_SESSION_MONITOR_ERROR,
++ errno == ENOENT ? NM_SESSION_MONITOR_ERROR_NO_DATABASE : NM_SESSION_MONITOR_ERROR_IO_ERROR,
++ "Error statting file " CKDB_PATH " to check timestamp: %s",
++ strerror (errno));
++ goto out;
++ }
++
++ if (statbuf.st_mtime == self->database_mtime) {
++ ret = TRUE;
++ goto out;
++ }
++ }
++
++ ret = reload_database (self, error);
++
++out:
++ return ret;
++}
++
++static void
++on_file_monitor_changed (GFileMonitor * file_monitor,
++ GFile * file,
++ GFile * other_file,
++ GFileMonitorEvent event_type,
++ gpointer user_data)
++{
++ NMSessionMonitor *self = NM_SESSION_MONITOR (user_data);
++
++ /* throw away cache */
++ free_database (self);
++
++ g_signal_emit (self, signals[CHANGED_SIGNAL], 0);
++}
++
+ static gboolean
+ sessions_changed (gpointer user_data)
+ {
+@@ -143,9 +366,50 @@
+ static void
+ nm_session_monitor_init (NMSessionMonitor *monitor)
+ {
+- monitor->sd_source = sd_source_new ();
+- g_source_set_callback (monitor->sd_source, sessions_changed, monitor, NULL);
+- g_source_attach (monitor->sd_source, NULL);
++ if (sd_booted () > 0) {
++ monitor->sd_source = sd_source_new ();
++ g_source_set_callback (monitor->sd_source, sessions_changed, monitor, NULL);
++ g_source_attach (monitor->sd_source, NULL);
++
++ monitor->database_monitor = NULL;
++ monitor->database = NULL;
++ } else {
++ monitor->sd_source = NULL;
++
++ GError *error = NULL;
++ GFile *file;
++
++ /* Sessions-by-user is responsible for destroying the Session objects */
++ monitor->sessions_by_user = g_hash_table_new_full (g_str_hash, g_str_equal,
++ NULL, (GDestroyNotify) session_free);
++ monitor->sessions_by_uid = g_hash_table_new (g_direct_hash, g_direct_equal);
++
++
++ error = NULL;
++ if (!ensure_database (monitor, &error)) {
++ /* Ignore the first error if the CK database isn't found yet */
++ if (g_error_matches (error,
++ NM_SESSION_MONITOR_ERROR,
++ NM_SESSION_MONITOR_ERROR_NO_DATABASE) == FALSE) {
++ nm_log_err (LOGD_CORE, "Error loading " CKDB_PATH ": %s", error->message);
++ }
++ g_error_free (error);
++ }
++
++ error = NULL;
++ file = g_file_new_for_path (CKDB_PATH);
++ monitor->database_monitor = g_file_monitor_file (file, G_FILE_MONITOR_NONE, NULL, &error);
++ g_object_unref (file);
++ if (monitor->database_monitor == NULL) {
++ nm_log_err (LOGD_CORE, "Error monitoring " CKDB_PATH ": %s", error->message);
++ g_error_free (error);
++ } else {
++ g_signal_connect (monitor->database_monitor,
++ "changed",
++ G_CALLBACK (on_file_monitor_changed),
++ monitor);
++ }
++ }
+ }
+
+ static void
+@@ -158,6 +422,12 @@
+ g_source_unref (monitor->sd_source);
+ }
+
++ if (monitor->database_monitor != NULL)
++ g_object_unref (monitor->database_monitor);
++
++ if (monitor->database != NULL)
++ free_database (monitor);
++
+ if (G_OBJECT_CLASS (nm_session_monitor_parent_class)->finalize != NULL)
+ G_OBJECT_CLASS (nm_session_monitor_parent_class)->finalize (object);
+ }
+@@ -206,15 +476,36 @@
+ uid_t *out_uid,
+ GError **error)
+ {
+- uid_t uid;
++ if (monitor->sd_source != NULL) {
++ uid_t uid;
+
+- if (!nm_session_user_to_uid (username, &uid, error))
+- return FALSE;
++ if (!nm_session_user_to_uid (username, &uid, error))
++ return FALSE;
+
+- if (out_uid)
+- *out_uid = uid;
++ if (out_uid)
++ *out_uid = uid;
+
+- return nm_session_monitor_uid_has_session (monitor, uid, NULL, error);
++ return nm_session_monitor_uid_has_session (monitor, uid, NULL, error);
++ } else {
++ Session *s;
++
++ if (!ensure_database (monitor, error))
++ return FALSE;
++
++ s = g_hash_table_lookup (monitor->sessions_by_user, (gpointer) username);
++ if (!s) {
++ g_set_error (error,
++ NM_SESSION_MONITOR_ERROR,
++ NM_SESSION_MONITOR_ERROR_UNKNOWN_USER,
++ "No session found for user '%s'",
++ username);
++ return FALSE;
++ }
++
++ if (out_uid)
++ *out_uid = s->uid;
++ return TRUE;
++ }
+ }
+
+ gboolean
+@@ -222,12 +513,31 @@
+ const char *username,
+ GError **error)
+ {
+- uid_t uid;
++ if (monitor->sd_source != NULL) {
++ uid_t uid;
+
+- if (!nm_session_user_to_uid (username, &uid, error))
+- return FALSE;
++ if (!nm_session_user_to_uid (username, &uid, error))
++ return FALSE;
++
++ return nm_session_monitor_uid_active (monitor, uid, error);
++ } else {
++ Session *s;
++
++ if (!ensure_database (monitor, error))
++ return FALSE;
++
++ s = g_hash_table_lookup (monitor->sessions_by_user, (gpointer) username);
++ if (!s) {
++ g_set_error (error,
++ NM_SESSION_MONITOR_ERROR,
++ NM_SESSION_MONITOR_ERROR_UNKNOWN_USER,
++ "No session found for user '%s'",
++ username);
++ return FALSE;
++ }
+
+- return nm_session_monitor_uid_active (monitor, uid, error);
++ return s->active;
++ }
+ }
+
+ gboolean
+@@ -236,10 +546,31 @@
+ const char **out_user,
+ GError **error)
+ {
+- if (!nm_session_uid_to_user (uid, out_user, error))
+- return FALSE;
++ if (monitor->sd_source != NULL) {
++ if (!nm_session_uid_to_user (uid, out_user, error))
++ return FALSE;
+
+- return sd_uid_get_sessions (uid, FALSE, NULL) > 0;
++ return sd_uid_get_sessions (uid, FALSE, NULL) > 0;
++ } else {
++ Session *s;
++
++ if (!ensure_database (monitor, error))
++ return FALSE;
++
++ s = g_hash_table_lookup (monitor->sessions_by_uid, GUINT_TO_POINTER (uid));
++ if (!s) {
++ g_set_error (error,
++ NM_SESSION_MONITOR_ERROR,
++ NM_SESSION_MONITOR_ERROR_UNKNOWN_USER,
++ "No session found for uid %d",
++ uid);
++ return FALSE;
++ }
++
++ if (out_user)
++ *out_user = s->user;
++ return TRUE;
++ }
+ }
+
+ gboolean
+@@ -247,5 +578,24 @@
+ uid_t uid,
+ GError **error)
+ {
+- return sd_uid_get_sessions (uid, TRUE, NULL) > 0;
++ if (monitor->sd_source != NULL)
++ return sd_uid_get_sessions (uid, TRUE, NULL) > 0;
++ else {
++ Session *s;
++
++ if (!ensure_database (monitor, error))
++ return FALSE;
++
++ s = g_hash_table_lookup (monitor->sessions_by_uid, GUINT_TO_POINTER (uid));
++ if (!s) {
++ g_set_error (error,
++ NM_SESSION_MONITOR_ERROR,
++ NM_SESSION_MONITOR_ERROR_UNKNOWN_USER,
++ "No session found for uid '%d'",
++ uid);
++ return FALSE;
++ }
++
++ return s->active;
++ }
+ }