summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community/avant-window-navigator/688_687.diff23
-rw-r--r--community/avant-window-navigator/821_820.diff96
-rw-r--r--community/avant-window-navigator/824_823.diff40
-rw-r--r--community/avant-window-navigator/PKGBUILD67
-rw-r--r--community/avant-window-navigator/avant-window-navigator.install22
-rw-r--r--community/dbmail/PKGBUILD7
-rw-r--r--community/dbmail/dbmail.tmpfiles1
-rw-r--r--community/dcron/PKGBUILD6
-rw-r--r--community/dcron/service1
-rw-r--r--community/fcitx-anthy/PKGBUILD32
-rw-r--r--community/fcitx-anthy/fcitx-anthy.install11
-rw-r--r--community/fcitx-chewing/PKGBUILD29
-rw-r--r--community/fcitx-sunpinyin/PKGBUILD31
-rw-r--r--community/fcitx-sunpinyin/fcitx-sunpinyin.install11
-rw-r--r--community/gtkdatabox/PKGBUILD24
-rw-r--r--community/ibus-sunpinyin/PKGBUILD48
-rw-r--r--community/ibus-table/PKGBUILD9
-rw-r--r--community/knemo/PKGBUILD6
-rw-r--r--community/libdesktop-agnostic/PKGBUILD36
-rw-r--r--community/pdns/PKGBUILD8
-rw-r--r--community/pdns/pdns.conf9
-rw-r--r--community/puzzles/PKGBUILD4
-rw-r--r--community/radeontool/PKGBUILD8
-rw-r--r--community/shotwell/PKGBUILD6
-rw-r--r--community/sunpinyin/PKGBUILD20
-rw-r--r--core/iputils/PKGBUILD25
-rw-r--r--extra/cairo/PKGBUILD8
-rw-r--r--extra/datefudge/PKGBUILD30
-rw-r--r--extra/evolution-data-server/PKGBUILD6
-rw-r--r--extra/evolution-ews/PKGBUILD6
-rw-r--r--extra/evolution/PKGBUILD6
-rw-r--r--extra/gtkhtml4/PKGBUILD6
-rw-r--r--extra/kdebindings-smokekde/PKGBUILD5
-rw-r--r--extra/kdebindings-smokeqt/PKGBUILD4
-rw-r--r--extra/kdeedu-kstars/PKGBUILD4
-rw-r--r--extra/libdrm/PKGBUILD11
-rw-r--r--extra/libdrm/no-pthread-stubs.patch34
-rw-r--r--extra/live-media/PKGBUILD6
-rw-r--r--extra/ltrace/PKGBUILD18
-rw-r--r--extra/php-xcache/PKGBUILD12
-rw-r--r--extra/php-xcache/xcache.ini2
-rw-r--r--extra/pixman/PKGBUILD7
-rw-r--r--extra/sdl_mixer/PKGBUILD18
-rw-r--r--extra/sdl_mixer/double-free-crash.patch32
-rw-r--r--extra/sdl_mixer/fluidsynth-volume.patch23
-rw-r--r--extra/sdl_mixer/mikmod1.patch67
-rw-r--r--extra/sdl_mixer/mikmod2.patch35
-rw-r--r--extra/weechat/PKGBUILD6
-rw-r--r--extra/xf86-video-ati/PKGBUILD15
-rw-r--r--extra/xorg-server/PKGBUILD89
-rw-r--r--extra/xorg-server/git-fixes.patch2252
-rw-r--r--extra/xorg-server/use-pixman-glyph-cache.patch270
-rw-r--r--libre/iceweasel-libre/PKGBUILD11
-rw-r--r--libre/ogre-libre/PKGBUILD121
-rw-r--r--libre/ogre-libre/ogre.install3
-rw-r--r--libre/psutils-libre/PKGBUILD4
-rwxr-xr-xpcr/mednafen-wip/PKGBUILD4
-rw-r--r--pcr/minidjvu/PKGBUILD2
-rw-r--r--social/netatalk/PKGBUILD58
-rw-r--r--social/netatalk/netatalk.changelog18
-rw-r--r--social/netatalk/netatalk.install7
61 files changed, 1820 insertions, 1960 deletions
diff --git a/community/avant-window-navigator/688_687.diff b/community/avant-window-navigator/688_687.diff
new file mode 100644
index 000000000..34c5b8fa4
--- /dev/null
+++ b/community/avant-window-navigator/688_687.diff
@@ -0,0 +1,23 @@
+=== modified file 'libawn/awn-applet-simple.c'
+--- libawn/awn-applet-simple.c 2010-01-10 14:43:43 +0000
++++ libawn/awn-applet-simple.c 2010-04-11 21:08:28 +0000
+@@ -393,16 +393,16 @@
+ GStrv states,
+ GStrv icon_names)
+ {
+- gchar *applet_name;
++ gchar *applet_name=NULL;
+
+ g_return_if_fail (AWN_IS_APPLET_SIMPLE (applet));
+- g_return_if_fail (applet_name);
+ g_return_if_fail (states);
+ g_return_if_fail (icon_names);
+
+ g_object_get (applet,
+ "canonical-name",&applet_name,
+ NULL);
++ g_return_if_fail (applet_name);
+ applet->priv->last_set_icon = ICON_THEMED_MANY;
+ awn_themed_icon_set_size (AWN_THEMED_ICON (applet->priv->icon),
+ awn_applet_get_size (AWN_APPLET (applet)));
+
diff --git a/community/avant-window-navigator/821_820.diff b/community/avant-window-navigator/821_820.diff
new file mode 100644
index 000000000..bd8c5b279
--- /dev/null
+++ b/community/avant-window-navigator/821_820.diff
@@ -0,0 +1,96 @@
+=== modified file 'awn-settings/awnClass.py'
+--- awn-settings/awnClass.py 2010-08-24 00:21:51 +0000
++++ awn-settings/awnClass.py 2011-02-13 23:43:42 +0000
+@@ -53,9 +53,13 @@
+ import tempfile
+ import dbus
+
+-from bzrlib import branch
+-from bzrlib.builtins import cmd_branch, cmd_pull
+-from bzrlib.plugins.launchpad.lp_directory import LaunchpadDirectory
++try:
++ from bzrlib import branch
++ from bzrlib.builtins import cmd_branch, cmd_pull
++ from bzrlib.plugins.launchpad.lp_directory import LaunchpadDirectory
++ support_bzr = True
++except:
++ support_bzr = False
+
+ defs.i18nize(globals())
+
+@@ -127,8 +131,11 @@
+ path: a url from a branch
+ return: the http format of a lp: format, or the same url
+ '''
+- directory = LaunchpadDirectory()
+- return directory._resolve(path).replace("bzr+ssh","http")
++ if support_bzr == True:
++ directory = LaunchpadDirectory()
++ return directory._resolve(path).replace("bzr+ssh","http")
++ else:
++ return path
+
+ def read_list(self, file_path):
+ ''' Read a flat file and return the content in a list
+@@ -148,34 +155,44 @@
+ path: the path of the branch
+ bzr_dir: the location of the futur tree.
+ '''
+- if os.path.exists(path):
+- print ("Error, the path already exist")
++ if support_bzr == False:
++ print (_("Bzr support is not enable, try to install bzr"))
+ else:
+- try:
+- bzr_branch = cmd_branch()
+- status = StringIO()
+- status = bzr_branch._setup_outf()
+- bzr_branch.run(from_location=self.lp_path_normalize(bzr_dir), to_location=path)
+- except socket.gaierror:
+- print 'Socket error, could not create branch.'
++ if os.path.exists(path):
++ print (_("Error, the path already exist"))
++ else:
++ try:
++ bzr_branch = cmd_branch()
++ status = StringIO()
++ status = bzr_branch._setup_outf()
++ bzr_branch.run(from_location=self.lp_path_normalize(bzr_dir), to_location=path)
++ except socket.gaierror:
++ print (_('Socket error, could not create branch.'))
+
+ def update_branch(self, path):
+ ''' Update a local branch
+ path: Location of the branch
+ Return the output of the command
+ '''
+- bzr_pull = cmd_pull()
+- status = StringIO()
+- status = bzr_pull._setup_outf()
+- bzr_pull.run(directory=path)
++ if support_bzr == False:
++ print (_("Bzr support is not enable, try to install bzr"))
++ else:
++ bzr_pull = cmd_pull()
++ status = StringIO()
++ status = bzr_pull._setup_outf()
++ bzr_pull.run(directory=path)
+
+ def get_revision_from_path(self, path):
+ ''' Return the last revision number of the branch
+ specify with path parameter
+ '''
+- tree = branch.Branch.open(path)
+- revision_number, revision_id = tree.last_revision_info()
+- return revision_number
++ if support_bzr == False:
++ print (_("Bzr support is not enable, try to install bzr"))
++ return 0
++ else:
++ tree = branch.Branch.open(path)
++ revision_number, revision_id = tree.last_revision_info()
++ return revision_number
+
+ #Sources.list
+ def dict_from_sources_list(self, config=defs.HOME_CONFIG_DIR):
+
diff --git a/community/avant-window-navigator/824_823.diff b/community/avant-window-navigator/824_823.diff
new file mode 100644
index 000000000..290b4ad6d
--- /dev/null
+++ b/community/avant-window-navigator/824_823.diff
@@ -0,0 +1,40 @@
+=== modified file 'applets/taskmanager/task-manager.c'
+--- applets/taskmanager/task-manager.c 2011-01-15 16:44:44 +0000
++++ applets/taskmanager/task-manager.c 2011-03-12 21:42:33 +0000
+@@ -1611,11 +1611,6 @@
+ g_debug ("%s: Window opened: %s",__func__,wnck_window_get_name (window));
+ g_debug ("xid = %lu, pid = %d",wnck_window_get_xid (window),wnck_window_get_pid (window));
+ #endif
+- /*
+- for some reason the skip tasklist property for the taskmanager toggles briefly
+- off and on in certain circumstances. Nip this in the bud.
+- TODO: Investigate wth this is happening... it bothers me.
+- */
+ // if ( wnck_window_get_pid (window) == getpid() ||
+ if ( g_strcmp0 (wnck_window_get_name (window),"awn-applet")==0 )
+ {
+@@ -1626,11 +1621,6 @@
+ */
+ g_signal_connect (window, "state-changed", G_CALLBACK (on_window_state_changed), manager);
+
+- if (wnck_window_is_skip_tasklist (window))
+- {
+- return;
+- }
+-
+ g_signal_connect (window, "state-changed",
+ G_CALLBACK (check_attention_requested), manager);
+
+@@ -1798,6 +1787,11 @@
+ g_return_if_fail (TASK_IS_MANAGER (manager));
+ g_return_if_fail (WNCK_IS_WINDOW (window));
+
++ if (wnck_window_is_skip_tasklist(window))
++ {
++ return;
++ }
++
+ _wnck_get_wmclass (wnck_window_get_xid (window),
+ &res_name, &class_name);
+ if (get_special_wait_from_window_data (res_name,
+
diff --git a/community/avant-window-navigator/PKGBUILD b/community/avant-window-navigator/PKGBUILD
new file mode 100644
index 000000000..8f8562a69
--- /dev/null
+++ b/community/avant-window-navigator/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 79700 2012-11-11 10:30:00Z bgyorgy $
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Timm Preetz <timm@preetz.us>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=avant-window-navigator
+pkgver=0.4.0
+pkgrel=13
+pkgdesc="Fully customisable dock-like window navigator for GNOME"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/awn"
+license=('GPL')
+depends=('libdesktop-agnostic' 'libwnck' 'libgtop' 'gconf' 'python2-dbus' 'pygtk' 'python2-xdg' 'hicolor-icon-theme' 'xdg-utils')
+makedepends=('gtk-doc' 'vala' 'intltool')
+options=('!libtool')
+install=$pkgname.install
+source=(http://launchpad.net/awn/0.4/$pkgver/+download/$pkgname-$pkgver.tar.gz
+ 688_687.diff
+ 821_820.diff
+ 824_823.diff)
+md5sums=('03654b45dd95cbb83fa7e112bd00523c'
+ '6b05ccb539f811729820d5545eb50d6e'
+ '2cc0ecf9fccb6e559a98003715ebf6df'
+ 'd068c19503b7be1868bcce5dab003628')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Fix uninitialised pointer
+ # https://bugs.launchpad.net/awn/+bug/562499
+ patch -Np0 -i "$srcdir/688_687.diff"
+
+ # Remove bzr dependency
+ # https://bugs.launchpad.net/awn/+bug/707863
+ patch -Np0 -i "$srcdir/821_820.diff"
+
+ # Hide windows with skip taskbar state
+ # https://bugs.launchpad.net/awn/+bug/707863
+ patch -Np0 -i "$srcdir/824_823.diff"
+
+ # Python2 fix
+ sed -i 's@^#!.*python$@#!/usr/bin/python2@' awn-settings/{awnSettings.py.in,awnSettingsHelper.py}
+ sed -i 's/with ("python"/with ("python2"/' applet-activation/main.c
+
+ autoreconf -fi
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --disable-static \
+ PYTHON=/usr/bin/python2
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="$pkgdir" install
+
+ install -m755 -d "$pkgdir/usr/share/gconf/schemas"
+ gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/awn.schemas" "$pkgdir"/etc/gconf/schemas/*.schemas
+ rm -r "$pkgdir/etc"
+}
diff --git a/community/avant-window-navigator/avant-window-navigator.install b/community/avant-window-navigator/avant-window-navigator.install
new file mode 100644
index 000000000..f5473a092
--- /dev/null
+++ b/community/avant-window-navigator/avant-window-navigator.install
@@ -0,0 +1,22 @@
+pkgname=awn
+
+post_install() {
+ gconfpkg --install $pkgname
+ xdg-icon-resource forceupdate
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ gconfpkg --uninstall $pkgname
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate
+}
diff --git a/community/dbmail/PKGBUILD b/community/dbmail/PKGBUILD
index 353e234cd..aab40ea7e 100644
--- a/community/dbmail/PKGBUILD
+++ b/community/dbmail/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 79626 2012-11-09 09:24:51Z spupykin $
+# $Id: PKGBUILD 79734 2012-11-11 19:36:41Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Sebastian Faltoni <sebastian.faltoni@gmail.com>
pkgname=dbmail
pkgver=3.0.2
-pkgrel=6
+pkgrel=7
pkgdesc="Fast and scalable sql based mail services"
arch=('i686' 'x86_64' 'mips64el')
depends=('gmime24' 'libzdb' 'mhash' 'libevent')
@@ -22,6 +22,7 @@ backup=(etc/conf.d/dbmail)
source=(http://www.dbmail.org/download/3.0/dbmail-${pkgver/_/-}.tar.gz
dbmail.conf.d
dbmail.rc.d
+ dbmail.tmpfiles
dbmail-imapd.service
dbmail-lmtpd.service
dbmail-pop3d.service
@@ -29,6 +30,7 @@ source=(http://www.dbmail.org/download/3.0/dbmail-${pkgver/_/-}.tar.gz
md5sums=('eb32235abffdf967253ee9d004e0e4a9'
'e7f72bc360decdb2475266391ad12329'
'30774513fb016b9da08e9cf6f2a0b8e7'
+ 'c4b5793c5422b62a675d4c66ff7e9300'
'84efa46eaac66057c4eb131d9bc27fa8'
'19560277f6a56d1f3f2fdb02315dcf0f'
'89a0f793737eaf36291409f8c840891e'
@@ -58,4 +60,5 @@ package() {
install -Dm0644 $srcdir/dbmail-lmtpd.service $pkgdir/usr/lib/systemd/system/dbmail-lmtpd.service
install -Dm0644 $srcdir/dbmail-pop3d.service $pkgdir/usr/lib/systemd/system/dbmail-pop3d.service
install -Dm0644 $srcdir/dbmail-timsieved.service $pkgdir/usr/lib/systemd/system/dbmail-timsieved.service
+ install -Dm0644 $srcdir/dbmail.tmpfiles $pkgdir/usr/lib/tmpfiles.d/dbmail.conf
}
diff --git a/community/dbmail/dbmail.tmpfiles b/community/dbmail/dbmail.tmpfiles
new file mode 100644
index 000000000..4b97c91f5
--- /dev/null
+++ b/community/dbmail/dbmail.tmpfiles
@@ -0,0 +1 @@
+d /run/dbmail 0755 nobody nobody -
diff --git a/community/dcron/PKGBUILD b/community/dcron/PKGBUILD
index 6d9107715..03c03a08c 100644
--- a/community/dcron/PKGBUILD
+++ b/community/dcron/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 72785 2012-06-22 12:49:56Z dreisner $
+# $Id: PKGBUILD 79754 2012-11-11 21:14:11Z spupykin $
# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
# Contributor: Paul Mattal <paul.archlinux.org>
pkgname=dcron
pkgver=4.5
-pkgrel=3
+pkgrel=4
pkgdesc="dillon's lightweight cron daemon"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
@@ -18,7 +18,7 @@ install=$pkgname.install
source=(http://www.jimpryor.net/linux/releases/${pkgname}-${pkgver}.tar.gz
service)
md5sums=('078833f3281f96944fc30392b1888326'
- '5a68a7aee883738e7f7f8549481bb297')
+ 'e43c3d758384ac644f5e19f460ab5f46')
build() {
cd "$srcdir/${pkgname}-${pkgver}"
diff --git a/community/dcron/service b/community/dcron/service
index 59fc64b80..47265791e 100644
--- a/community/dcron/service
+++ b/community/dcron/service
@@ -5,6 +5,7 @@ Description=Periodic Command Scheduler
Type=forking
EnvironmentFile=/etc/conf.d/crond
ExecStart=/usr/sbin/crond $CROND_ARGS
+Restart=always
[Install]
WantedBy=multi-user.target
diff --git a/community/fcitx-anthy/PKGBUILD b/community/fcitx-anthy/PKGBUILD
new file mode 100644
index 000000000..0adcca773
--- /dev/null
+++ b/community/fcitx-anthy/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id$
+# Maintainer: Felix Yan <felixonmars@gmail.com>
+# Contributor: lh <jason52lh@gmail.com>
+
+pkgname=fcitx-anthy
+pkgver=0.1.1
+pkgrel=1
+pkgdesc="Fcitx Wrapper for anthy."
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/fcitx"
+license=('GPL')
+depends=('fcitx>=4.2.5' 'anthy')
+makedepends=('cmake' 'intltool')
+source=("http://fcitx.googlecode.com/files/${pkgname}-${pkgver}.tar.xz")
+install='fcitx-anthy.install'
+
+build(){
+ cd "$srcdir"/${pkgname}-${pkgver}
+
+ rm -rf build
+ mkdir build
+ cd build
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..
+ make
+}
+
+package() {
+ cd "$srcdir"/${pkgname}-${pkgver}/build
+ make DESTDIR=${pkgdir} install
+}
+md5sums=('651e9a21e5203c14ca0968c63a820157')
diff --git a/community/fcitx-anthy/fcitx-anthy.install b/community/fcitx-anthy/fcitx-anthy.install
new file mode 100644
index 000000000..c0797237a
--- /dev/null
+++ b/community/fcitx-anthy/fcitx-anthy.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/fcitx-chewing/PKGBUILD b/community/fcitx-chewing/PKGBUILD
new file mode 100644
index 000000000..bb6154d8a
--- /dev/null
+++ b/community/fcitx-chewing/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 79762 2012-11-12 02:32:12Z fyan $
+# Maintainer: Felix Yan <felixonmars@gmail.com>
+
+pkgname=fcitx-chewing
+pkgver=0.1.3
+pkgrel=1
+pkgdesc="Fcitx Wrapper for chewing"
+arch=('i686' 'x86_64')
+url="https://github.com/fcitx/fcitx-chewing"
+license=('GPL')
+depends=('libchewing' 'fcitx>=4.2.6')
+makedepends=('cmake' 'intltool')
+source=(http://fcitx.googlecode.com/files/${pkgname}-${pkgver}.tar.xz)
+
+build() {
+ cd "$srcdir"/${pkgname}-${pkgver}
+ rm -rf build
+ mkdir build
+ cd build
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..
+ make
+}
+
+package() {
+ cd "$srcdir"/${pkgname}-${pkgver}/build
+ make DESTDIR="$pkgdir" install
+}
+md5sums=('052e3f146b6e2805918c008005fc9591')
diff --git a/community/fcitx-sunpinyin/PKGBUILD b/community/fcitx-sunpinyin/PKGBUILD
new file mode 100644
index 000000000..bc69e7750
--- /dev/null
+++ b/community/fcitx-sunpinyin/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 79725 2012-11-11 15:48:16Z fyan $
+# Maintainer: Felix Yan <felixonmars@gmail.com>
+
+pkgname=fcitx-sunpinyin
+pkgver=0.3.9
+pkgrel=1
+pkgdesc="Fcitx Wrapper for sunpinyin."
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/fcitx"
+license=('GPL')
+install='fcitx-sunpinyin.install'
+depends=('fcitx>=4.2.5' 'sunpinyin>2.0.3')
+makedepends=('cmake' 'intltool')
+source=(http://fcitx.googlecode.com/files/${pkgname}-${pkgver}.tar.xz)
+md5sums=('de221daa7b3790b22f5a95d7091d0e38')
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+
+ rm -rf build
+ mkdir build
+ cd build
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..
+ make
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${pkgver}/build"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/fcitx-sunpinyin/fcitx-sunpinyin.install b/community/fcitx-sunpinyin/fcitx-sunpinyin.install
new file mode 100644
index 000000000..c0797237a
--- /dev/null
+++ b/community/fcitx-sunpinyin/fcitx-sunpinyin.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/gtkdatabox/PKGBUILD b/community/gtkdatabox/PKGBUILD
index ffe6c1074..d6ddf73e1 100644
--- a/community/gtkdatabox/PKGBUILD
+++ b/community/gtkdatabox/PKGBUILD
@@ -1,24 +1,28 @@
-# $Id: PKGBUILD 73537 2012-07-09 10:13:52Z spupykin $
+# $Id: PKGBUILD 79742 2012-11-11 19:42:10Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: William Rea <sillywilly@gmail.com>
pkgname=gtkdatabox
-pkgver=0.9.1.3
+pkgver=0.9.2.0
pkgrel=1
pkgdesc="A widget for the Gtk+ library designed to display large amounts of numerical data"
-arch=(i686 x86_64 'mips64el')
-url="http://www.eudoxos.net/gtk/gtkdatabox"
-options=('!libtool')
+arch=(i686 x86_64 mips64el)
+url="http://sourceforge.net/projects/gtkdatabox/"
license=("LGPL")
-depends=('gtk2')
-#source=(http://www.eudoxos.net/gtk/gtkdatabox/download/gtkdatabox-$pkgver.tar.gz)
+depends=('gtk2' 'libglade')
+makedepends=('gtk-doc')
+options=('!libtool' 'docs')
source=(http://downloads.sourceforge.net/project/gtkdatabox/gtkdatabox/$pkgver/gtkdatabox-$pkgver.tar.gz)
-md5sums=('60a3eebd61a4ca36879d7e60d1aca727')
+md5sums=('99c1fe9a918ee94e2b6f967cd22a6f5b')
build() {
cd $srcdir/gtkdatabox-$pkgver
- find -name 'Makefile*' -type f -exec sed -i 's#.*DISABLE_DEPRECATED\\#\\#' {} \;
- LDFLAGS=-lm ./configure --prefix=/usr
+ export LDFLAGS=-lm
+ ./configure --prefix=/usr \
+ --enable-gtk-doc \
+ --enable-gtk-doc-html \
+ --enable-gtk-doc-pdf \
+ --enable-libglade
make
make DESTDIR=$pkgdir install
}
diff --git a/community/ibus-sunpinyin/PKGBUILD b/community/ibus-sunpinyin/PKGBUILD
index 059a7a78b..d15c4ae9c 100644
--- a/community/ibus-sunpinyin/PKGBUILD
+++ b/community/ibus-sunpinyin/PKGBUILD
@@ -1,32 +1,52 @@
-# $Id: PKGBUILD 79175 2012-10-31 06:11:42Z ebelanger $
-# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# $Id: PKGBUILD 79729 2012-11-11 16:11:46Z fyan $
+# Maintainer: Felix Yan <felixonmars@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=ibus-sunpinyin
-pkgver=2.0.3
-pkgrel=3
-pkgdesc='The SunPinYin Engine for IBus Input Framework. SunPinYin is a Statistical Language Model based pinyin IME by Sun.'
+pkgver=2.0.3.20121107
+_commit=cf3fe3d7aa5bb7aa6aa5b870a759af468b6d5b2b
+pkgrel=2
+pkgdesc="IBus Wrapper for sunpinyin."
arch=('i686' 'x86_64' 'mips64el')
-url='http://sunpinyin.googlecode.com'
+url="http://sunpinyin.googlecode.com"
license=('LGPL')
-depends=('ibus' 'sunpinyin')
-makedepends=('scons')
-source=("http://sunpinyin.googlecode.com/files/ibus-sunpinyin-${pkgver}.tar.gz")
-md5sums=('e678b2e1ac70c325cfc64c02fef7041f')
+depends=('sunpinyin>2.0.3' 'ibus')
+makedepends=('git' 'scons')
+
+__gitroot=git://github.com/sunpinyin/sunpinyin.git
+__gitname=sunpinyin
build() {
- cd "${srcdir}/ibus-sunpinyin-${pkgver}"
+ cd "$srcdir"
+ msg "Connecting to GIT server...."
+
+ if [ -d $__gitname ] ; then
+ cd $__gitname && git pull origin
+ msg "The local files are updated."
+ else
+ git clone $__gitroot
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting make..."
- sed -i 's/python/&2/' setup/ibus-setup-sunpinyin.in
+ rm -rf "$srcdir/$__gitname-build"
+ git clone "$srcdir/$__gitname" "$srcdir/$__gitname-build"
+ cd "$srcdir/$__gitname-build"
+ git checkout "$_commit"
+ cd "$srcdir/$__gitname-build/wrapper/ibus"
+ sed -i -e "s|python|python2|" setup/ibus-setup-sunpinyin.in
+
scons \
--prefix=/usr
}
package() {
- cd "${srcdir}/ibus-sunpinyin-${pkgver}"
+ cd "$srcdir/$__gitname-build/wrapper/ibus"
scons \
--prefix=/usr \
- --install-sandbox="${pkgdir}" \
+ --install-sandbox="$pkgdir" \
install
}
diff --git a/community/ibus-table/PKGBUILD b/community/ibus-table/PKGBUILD
index c7a05272b..404d48e59 100644
--- a/community/ibus-table/PKGBUILD
+++ b/community/ibus-table/PKGBUILD
@@ -1,10 +1,11 @@
-# $Id: PKGBUILD 56830 2011-10-14 06:44:36Z ebelanger $
+# $Id: PKGBUILD 79721 2012-11-11 15:10:35Z fyan $
+# Maintainer: Felix Yan <felixonmars@gmail.com>
# Contributor: coderoar <coderoar@gmail.com>
# Contributor: leemars <leemars@gmail.com>
-# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=ibus-table
-pkgver=1.3.9.20110827
+pkgver=1.4.99.20121112
pkgrel=1
pkgdesc='The IM Engine framework for table-based input methods, such as ZhengMa, WuBi, ErBi, CangJie and so on.'
arch=('i686' 'x86_64' 'mips64el')
@@ -12,7 +13,6 @@ url="http://code.google.com/p/ibus/"
license=('LGPL')
depends=('python2-pyenchant' 'ibus' 'aspell-en')
source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
-md5sums=('251e2c8ace8ed265d780b30755afc163')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
@@ -32,3 +32,4 @@ package() {
make DESTDIR="${pkgdir}" install
}
+md5sums=('85c3a57bcbb052d3222c5b6d07e0e565')
diff --git a/community/knemo/PKGBUILD b/community/knemo/PKGBUILD
index 6289a0d67..cf19be57b 100644
--- a/community/knemo/PKGBUILD
+++ b/community/knemo/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 79245 2012-11-01 17:28:21Z lcarlier $
+# $Id: PKGBUILD 79688 2012-11-11 05:39:50Z lcarlier $
# Maintainer: Laurent Carlier <lordheavym@gmail.com>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Stefano Zamprogno <stefano dot zamprogno at gmail dot com>
pkgname=knemo
-pkgver=0.7.4
+pkgver=0.7.5
pkgrel=1
pkgdesc="The KDE Network Monitor"
arch=('i686' 'x86_64' 'mips64el')
@@ -16,7 +16,7 @@ makedepends=('cmake' 'automoc4')
install=${pkgname}.install
options=('libtool')
source=("http://www.kde-apps.org/CONTENT/content-files/12956-${pkgname}-${pkgver}.tar.bz2")
-md5sums=('e6e9aeef6e0fcd934abe000090771fd9')
+md5sums=('fc316e8492d97ffc00fc2e2c6caf136d')
build() {
cd ${srcdir}
diff --git a/community/libdesktop-agnostic/PKGBUILD b/community/libdesktop-agnostic/PKGBUILD
new file mode 100644
index 000000000..e6848d808
--- /dev/null
+++ b/community/libdesktop-agnostic/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 79732 2012-11-11 19:02:50Z bgyorgy $
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=libdesktop-agnostic
+pkgver=0.3.92
+pkgrel=5
+pkgdesc="Provides an extensible config API, a unified virtual fs API, and a desktop item editor for GLib-based projects"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/libdesktop-agnostic"
+license=('GPL' 'LGPL')
+depends=('pygtk')
+makedepends=('intltool' 'vala' 'gconf' 'gobject-introspection')
+optdepends=('gconf: gconf configuration backend')
+options=('!libtool')
+backup=(etc/xdg/libdesktop-agnostic/desktop-agnostic.ini)
+source=(https://launchpad.net/$pkgname/0.4/$pkgver/+download/$pkgname-$pkgver.tar.gz)
+md5sums=('42374d226a21d57637f97173f6b105a1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ export PYTHON=/usr/bin/python2
+
+ python2 ./waf configure --prefix=/usr --sysconfdir=/etc \
+ --config-backends=gconf,keyfile \
+ --vfs-backends=gio \
+ --desktop-entry-backends=gio,glib
+ python2 ./waf
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ python2 ./waf install --destdir="$pkgdir"
+}
diff --git a/community/pdns/PKGBUILD b/community/pdns/PKGBUILD
index ebfcc7fd2..1f2e15ba5 100644
--- a/community/pdns/PKGBUILD
+++ b/community/pdns/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 79608 2012-11-08 22:00:36Z arodseth $
+# $Id: PKGBUILD 79756 2012-11-12 00:04:11Z arodseth $
# Maintainer: Alexander Rødseth <rodseth@gmail.com>
# Contributor: Jan de Groot <jgc@archlinux.org>
pkgname=pdns
pkgver=3.1
-pkgrel=1
+pkgrel=2
pkgdesc="Modern, advanced and high performance authoritative-only nameserver"
arch=('x86_64' 'i686')
url='http://www.powerdns.com/'
license=('GPL')
-depends=('gcc-libs' 'zlib' 'postgresql-libs' 'libmysqlclient' 'sqlite' 'libldap' 'lua' 'boost-libs')
+depends=('gcc-libs' 'zlib' 'postgresql-libs' 'libmysqlclient' 'sqlite' 'libldap' 'lua' 'boost-libs' 'openmpi' 'hwloc')
makedepends=('boost')
provides=('pdns-ldap' 'pdns-mysql' 'pdns-sqlite' 'pdns-pgsql')
replaces=('pdns-ldap' 'pdns-mysql' 'pdns-sqlite' 'pdns-pgsql')
@@ -24,7 +24,7 @@ source=("http://downloads.powerdns.com/releases/$pkgname-$pkgver.tar.gz"
sha256sums=('1400f7bd659207c0b1f4b8296092e559a7b7bf6a2434951970217d9af06922a1'
'2a60c4407bcfe19026ae77d3e3b7b477d5a0c6323c0bc78892e9d907003b442a'
'0457ffa2baa40518a03393e4f76964d9452c16aebbcb925582814f88367d62c2'
- 'e3de30584436a063cdff4b4ca77044da06a0737fc333847b3da89370cf763c0c')
+ '91c8889f41fe9d6bc9478c3ad53a10f6725e36e10f05e8e9257f9d35c9e2bab6')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/pdns/pdns.conf b/community/pdns/pdns.conf
index 1bf24e73f..fba6617a6 100644
--- a/community/pdns/pdns.conf
+++ b/community/pdns/pdns.conf
@@ -279,12 +279,3 @@ webserver=no
#
# webserver-print-arguments=no
-#################################
-# wildcard-url Process URL and MBOXFW records
-#
-# wildcard-url=no
-
-#################################
-# wildcards Honor wildcards in the database
-#
-wildcards=yes
diff --git a/community/puzzles/PKGBUILD b/community/puzzles/PKGBUILD
index 8dc7976e6..7a7e9896e 100644
--- a/community/puzzles/PKGBUILD
+++ b/community/puzzles/PKGBUILD
@@ -3,7 +3,7 @@
# Maintainer: schuay <jakob.gruber@gmail.com>
pkgname=puzzles
-pkgver=9682
+pkgver=9694
pkgrel=1
pkgdesc="Simon Tatham's Portable Puzzle Collection"
arch=('i686' 'x86_64' 'mips64el')
@@ -38,4 +38,4 @@ package() {
mv ${pkgdir}/usr/bin/blackbox ${pkgdir}/usr/bin/puzzles-blackbox
}
-md5sums=('2a592b4c43d24504be327367008807f7')
+md5sums=('f5e7b7b2a1bab3c939bb03e4ff8201c1')
diff --git a/community/radeontool/PKGBUILD b/community/radeontool/PKGBUILD
index f30ae7313..4842a5ea7 100644
--- a/community/radeontool/PKGBUILD
+++ b/community/radeontool/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 64970 2012-02-19 08:18:34Z lcarlier $
+# $Id: PKGBUILD 79686 2012-11-11 05:31:16Z lcarlier $
# Maintainer : Laurent Carlier <lordheavym AT gmail DOT com>
pkgname=radeontool
-pkgver=1.6.2
-pkgrel=2
+pkgver=1.6.3
+pkgrel=1
pkgdesc="Lowlevel tools to tweak register and dump state on radeon GPUs"
url="http://airlied.livejournal.com/"
arch=('i686' 'x86_64' 'mips64el')
@@ -11,7 +11,7 @@ license=('ZLIB')
source=(http://people.freedesktop.org/~airlied/radeontool/${pkgname}-${pkgver}.tar.gz
license.txt)
depends=('libpciaccess')
-md5sums=('535cf712cd609c361291dd59ca2664aa'
+md5sums=('e4bd75da852840a02cb2290804abd717'
'cc74a55d8e998ca9a2537a0ab78bc582')
build() {
diff --git a/community/shotwell/PKGBUILD b/community/shotwell/PKGBUILD
index 8ae26b341..031e9bc08 100644
--- a/community/shotwell/PKGBUILD
+++ b/community/shotwell/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 79217 2012-11-01 09:41:09Z spupykin $
+# $Id: PKGBUILD 79739 2012-11-11 19:39:26Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Contributor: Joeny Ang <ang(dot)joeny(at)gmail(dot)com>
pkgname=shotwell
pkgver=0.13.1
-pkgrel=2
+pkgrel=3
pkgdesc="A digital photo organizer designed for the GNOME desktop environment"
arch=('i686' 'x86_64' 'mips64el')
url="http://yorba.org/shotwell/"
license=('LGPL2.1')
depends=('libgee' 'libunique3' 'libwebkit3' 'libgexiv2' 'libraw' 'rest'
'desktop-file-utils' 'dconf' 'hicolor-icon-theme' 'json-glib'
- 'gstreamer0.10-base-plugins')
+ 'gstreamer0.10-base-plugins' 'libgphoto2')
makedepends=('intltool' 'vala>=0.17.2')
install=shotwell.install
source=("http://yorba.org/download/shotwell/0.13/shotwell-${pkgver}.tar.xz"
diff --git a/community/sunpinyin/PKGBUILD b/community/sunpinyin/PKGBUILD
index 02e4e25dc..ca1ba26bc 100644
--- a/community/sunpinyin/PKGBUILD
+++ b/community/sunpinyin/PKGBUILD
@@ -1,15 +1,16 @@
-# $Id: PKGBUILD 79672 2012-11-11 01:07:47Z fyan $
+# $Id: PKGBUILD 79715 2012-11-11 14:12:03Z fyan $
# Maintainer: Felix Yan <felixonmars@gmail.com>
# Contributor: Thomas Dziedzic < gostrc at gmail >
-pkgname=('sunpinyin' 'sunpinyin-data')
-pkgbase=sunpinyin
+pkgname=sunpinyin
pkgver=2.0.3.20121107
_commit=cf3fe3d7aa5bb7aa6aa5b870a759af468b6d5b2b
pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
-url="http://sunpinyin.googlecode.com"
+pkgdesc="Statistical Language Model based pinyin IME by Sun"
license=('LGPL' 'APACHE')
+url="http://sunpinyin.googlecode.com"
+depends=('sqlite' 'make' 'gcc-libs')
makedepends=('git' 'scons' 'intltool')
source=('http://open-gram.googlecode.com/files/lm_sc.t3g.arpa-20121025.tar.bz2'
'http://open-gram.googlecode.com/files/dict.utf8-20120830.tar.bz2')
@@ -53,23 +54,14 @@ build() {
make
}
-package_sunpinyin() {
- pkgdesc="Statistical Language Model based pinyin IME by Sun"
- depends=('sqlite' 'make' 'gcc-libs' "sunpinyin-data")
- arch=('i686' 'x86_64')
+package() {
cd "$srcdir/$__gitname-build"
scons \
--prefix=/usr \
--install-sandbox="$pkgdir" \
install
-}
-package_sunpinyin-data() {
- pkgver=2.0.3.20121025
- pkgdesc="Statistical Language Model based pinyin IME by Sun - Data files"
- depends=("sunpinyin")
- arch=('any')
cd "$srcdir/$__gitname-build/raw"
make DESTDIR="$pkgdir" install
}
diff --git a/core/iputils/PKGBUILD b/core/iputils/PKGBUILD
index 457144791..663a739b6 100644
--- a/core/iputils/PKGBUILD
+++ b/core/iputils/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 170249 2012-11-06 11:26:55Z stephane $
+# $Id: PKGBUILD 170801 2012-11-11 22:35:51Z stephane $
# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Aaron Griffin <aaron@archlinux.org>
pkgname=iputils
-pkgver=20121011
-pkgrel=2
+pkgver=20121106
+pkgrel=1
pkgdesc="IP Configuration Utilities (and Ping)"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
@@ -18,13 +18,10 @@ conflicts=('netkit-base' 'arping' 'netkit-tftpd')
replaces=('netkit-base')
backup=(etc/xinetd.d/tftp)
install=${pkgname}.install
-source=(http://www.skbuff.net/${pkgname}/${pkgname}-s${pkgver}.tar.bz2 tftp.xinetd
- iputils-20101006-ping-integer-overflow.patch
- iputils-20121011-flood.patch)
-sha1sums=('3e85179746fd93000d6267bd55addfe97f321ba7'
- 'fc2ae26f5609725e3f4aeaf4ab82dfa6d2e378fd'
- 'ec78574d798b53e4f8bdd37e42514fc17ed71667'
- '2343edf0dce28030e43305cefedd60806bb58eae')
+source=(http://www.skbuff.net/${pkgname}/${pkgname}-s${pkgver}.tar.bz2
+ tftp.xinetd)
+sha1sums=('9570832f3945bb5f0e89f5837facc8fdca3b7769'
+ 'fc2ae26f5609725e3f4aeaf4ab82dfa6d2e378fd')
build() {
cd "${srcdir}/${pkgname}-s${pkgver}"
@@ -32,12 +29,6 @@ build() {
# Use our CFLAGS
sed -i -e "/^CCOPT=/s|-O2|${CFLAGS}|" Makefile
- # FS#28897
- patch -Np1 -i ../iputils-20101006-ping-integer-overflow.patch
-
- # FS#32306
- patch -Np1 -i ../iputils-20121011-flood.patch
-
make
cd doc
@@ -72,5 +63,3 @@ package() {
install -dm755 "${pkgdir}"/etc/xinetd.d/
install -m644 "${srcdir}"/tftp.xinetd "${pkgdir}"/etc/xinetd.d/tftp
}
-
-# vim:set ts=2 sw=2 et:
diff --git a/extra/cairo/PKGBUILD b/extra/cairo/PKGBUILD
index fc6acc042..be3763e1e 100644
--- a/extra/cairo/PKGBUILD
+++ b/extra/cairo/PKGBUILD
@@ -1,16 +1,16 @@
-# $Id: PKGBUILD 170234 2012-11-05 16:24:33Z andyrtr $
+# $Id: PKGBUILD 170782 2012-11-11 10:23:13Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Brice Carpentier <brice@daknet.org>
pkgname=cairo
pkgver=1.12.8
-pkgrel=1
+pkgrel=2
pkgdesc="Cairo vector graphics library"
arch=(i686 x86_64 'mips64el')
license=('LGPL' 'MPL')
url="http://cairographics.org/"
-depends=('libpng' 'libxrender' 'libxext' 'fontconfig' 'pixman' 'glib2' 'sh')
-makedepends=('librsvg' 'poppler-glib' 'libspectre' 'gtk-doc') # 'libdrm')
+depends=('libpng' 'libxrender' 'libxext' 'fontconfig' 'pixman>=0.28.0' 'glib2' 'sh')
+makedepends=('librsvg' 'poppler-glib' 'libspectre' 'gtk-doc' 'valgrind') # 'libdrm')
optdepends=('xcb-util: for XCB backend') # really needed?
provides=('cairo-xcb')
replaces=('cairo-xcb')
diff --git a/extra/datefudge/PKGBUILD b/extra/datefudge/PKGBUILD
new file mode 100644
index 000000000..1cf348382
--- /dev/null
+++ b/extra/datefudge/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 170796 2012-11-11 16:17:27Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Dan Serban (dserban01 => gmail)
+
+pkgname=datefudge
+pkgver=1.17
+pkgrel=1
+pkgdesc="A program (and preload library) to fake system date"
+arch=('i686' 'x86_64')
+url="http://packages.qa.debian.org/d/datefudge.html"
+license=('GPL2')
+depends=('sh')
+source=(http://ftp.de.debian.org/debian/pool/main/d/$pkgname/${pkgname}_${pkgver}.tar.gz)
+md5sums=('d306e183ea3fdbde088ebd523f6387c5')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ #./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make test
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/extra/evolution-data-server/PKGBUILD b/extra/evolution-data-server/PKGBUILD
index 6b3d8c95b..d7c535073 100644
--- a/extra/evolution-data-server/PKGBUILD
+++ b/extra/evolution-data-server/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 169869 2012-10-30 22:25:17Z heftig $
+# $Id: PKGBUILD 170810 2012-11-12 02:17:49Z heftig $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=evolution-data-server
-pkgver=3.6.1
+pkgver=3.6.2
pkgrel=1
pkgdesc="Centralized access to appointments and contacts"
arch=('i686' 'x86_64' 'mips64el')
@@ -13,7 +13,7 @@ install=$pkgname.install
url="http://www.gnome.org"
license=('GPL')
source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('637fcb6a83601af2968ca0b600958da8b0f25444224edc5fae41dea995924150')
+sha256sums=('bc94d8b9f1a6fb81a630cf38abec303b87a87ce2fd880f9519c23e5de2ce88f0')
build() {
cd "$pkgname-$pkgver"
diff --git a/extra/evolution-ews/PKGBUILD b/extra/evolution-ews/PKGBUILD
index f774a47a8..c4b80b6c1 100644
--- a/extra/evolution-ews/PKGBUILD
+++ b/extra/evolution-ews/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 169870 2012-10-30 22:25:20Z heftig $
+# $Id: PKGBUILD 170812 2012-11-12 02:30:11Z heftig $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgname=evolution-ews
-pkgver=3.6.0
+pkgver=3.6.1
pkgrel=1
pkgdesc="MS Exchange integration through Exchange Web Services"
arch=('i686' 'x86_64' 'mips64el')
@@ -12,7 +12,7 @@ depends=('evolution-data-server' 'gtkhtml4' 'gnome-desktop')
makedepends=('intltool' 'evolution')
options=('!libtool' '!emptydirs')
source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('a1d40971f47bfd947349f48a86f8a5ec7252db41b9b0d19204b4e28f2408a96a')
+sha256sums=('77931879da57a0721fb3bdc383eab961bf1f20040f309b7be329f19488e5f836')
build() {
cd $pkgname-$pkgver
diff --git a/extra/evolution/PKGBUILD b/extra/evolution/PKGBUILD
index 4408865ef..bd19a8cfe 100644
--- a/extra/evolution/PKGBUILD
+++ b/extra/evolution/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 169868 2012-10-30 22:25:13Z heftig $
+# $Id: PKGBUILD 170811 2012-11-12 02:28:56Z heftig $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Jan de Groot <jgc@archlinux.org>
pkgname=evolution
-pkgver=3.6.1
+pkgver=3.6.2
pkgrel=1
pkgdesc="Manage your email, contacts and schedule"
arch=('i686' 'x86_64' 'mips64el')
@@ -17,7 +17,7 @@ options=('!libtool' '!emptydirs')
install=evolution.install
url=http://www.gnome.org/projects/evolution/
source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver:0:3}/$pkgname-$pkgver.tar.xz)
-sha256sums=('7aa0730d6815cc44dbde75b4464697dd9d51584f48e9e03e86c2e5ca5a97a521')
+sha256sums=('40b326c63abc33ccc1393c9e3b60c747234ab14a46fc4690255b523942ea8983')
build() {
cd $pkgname-$pkgver
diff --git a/extra/gtkhtml4/PKGBUILD b/extra/gtkhtml4/PKGBUILD
index e2b00fe33..ba439dd43 100644
--- a/extra/gtkhtml4/PKGBUILD
+++ b/extra/gtkhtml4/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 169937 2012-10-30 22:45:50Z heftig $
+# $Id: PKGBUILD 170809 2012-11-12 02:14:23Z heftig $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgname=gtkhtml4
_pkgbasename=gtkhtml
-pkgver=4.6.0
+pkgver=4.6.1
pkgrel=1
pkgdesc="A lightweight HTML renderer/editor widget for GTK3"
arch=(i686 x86_64 'mips64el')
@@ -13,7 +13,7 @@ makedepends=('intltool')
url="http://www.gnome.org"
options=('!libtool')
source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgbasename/${pkgver%.*}/$_pkgbasename-$pkgver.tar.xz)
-sha256sums=('129023d83d5e53f22c7b103ed8668204f78c23837955905315dc95b48618c29e')
+sha256sums=('36670a268f3fd437ddb8c4e7f127d6fb0c09a6fe23a431bede0fc3213c75db98')
build() {
cd "$_pkgbasename-$pkgver"
diff --git a/extra/kdebindings-smokekde/PKGBUILD b/extra/kdebindings-smokekde/PKGBUILD
index b1fdca5f5..f215922fb 100644
--- a/extra/kdebindings-smokekde/PKGBUILD
+++ b/extra/kdebindings-smokekde/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 170590 2012-11-09 08:25:42Z andrea $
+# $Id: PKGBUILD 170779 2012-11-11 09:42:05Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdebindings-smokekde
@@ -11,7 +11,8 @@ license=('GPL' 'LGPL' 'FDL')
groups=('kdebindings')
depends=('kdebindings-smokeqt')
makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost'
- 'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate')
+ 'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate'
+ 'mesa')
optdepends=('kdesdk-kate: Kate bindings'
'kdegraphics-okular: Okular bindings')
conflicts=('kdebindings-smoke')
diff --git a/extra/kdebindings-smokeqt/PKGBUILD b/extra/kdebindings-smokeqt/PKGBUILD
index 6cc7a054b..8b7d8aa8e 100644
--- a/extra/kdebindings-smokeqt/PKGBUILD
+++ b/extra/kdebindings-smokeqt/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 170587 2012-11-09 08:25:28Z andrea $
+# $Id: PKGBUILD 170776 2012-11-11 09:41:01Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdebindings-smokeqt
@@ -10,7 +10,7 @@ arch=('i686' 'x86_64' 'mips64el')
license=('GPL' 'LGPL' 'FDL')
groups=('kdebindings')
depends=('kdebindings-smokegen' 'qimageblitz' 'qscintilla')
-makedepends=('cmake' 'automoc4')
+makedepends=('cmake' 'automoc4' 'mesa')
conflicts=('kdebindings-smoke')
source=("http://download.kde.org/stable/${pkgver}/src/smokeqt-${pkgver}.tar.xz")
sha1sums=('08ffb9d5bfe8c624f1da28b49f26dfa746fc8bcf')
diff --git a/extra/kdeedu-kstars/PKGBUILD b/extra/kdeedu-kstars/PKGBUILD
index e8bf03a7b..31206022c 100644
--- a/extra/kdeedu-kstars/PKGBUILD
+++ b/extra/kdeedu-kstars/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 170631 2012-11-09 08:28:12Z andrea $
+# $Id: PKGBUILD 170773 2012-11-11 09:39:58Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdeedu-kstars
@@ -10,7 +10,7 @@ arch=('i686' 'x86_64' 'mips64el')
license=('GPL' 'LGPL' 'FDL')
groups=('kde' 'kdeedu')
depends=('kdebase-runtime' 'libindi')
-makedepends=('cmake' 'automoc4' 'eigen')
+makedepends=('cmake' 'automoc4' 'eigen' 'mesa')
install=${pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/kstars-${pkgver}.tar.xz")
sha1sums=('35f88135c42483144d17013c520243e7a77bde95')
diff --git a/extra/libdrm/PKGBUILD b/extra/libdrm/PKGBUILD
index 1b2ec8cfd..7912597db 100644
--- a/extra/libdrm/PKGBUILD
+++ b/extra/libdrm/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 165816 2012-08-30 20:33:39Z andyrtr $
+# $Id: PKGBUILD 170783 2012-11-11 10:23:15Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=libdrm
-pkgver=2.4.39
+pkgver=2.4.40
pkgrel=1
pkgdesc="Userspace interface to kernel DRM services"
arch=(i686 x86_64 'mips64el')
@@ -16,8 +16,8 @@ url="http://dri.freedesktop.org/"
source=(http://dri.freedesktop.org/$pkgname/$pkgname-$pkgver.tar.bz2
no-pthread-stubs.patch
COPYING)
-sha256sums=('386b17388980504bca16ede81ceed4c77b12c3488f46ecb7f4d48e48512a733d'
- '66fb39be073c634abc7c2af238535a63b2a03990888eb8cc5ea79fa3ef083930'
+sha256sums=('48c14e4600ea0fde522292893eb4055d2f6d86a69d093d379c827deaccffaa1f'
+ '3915aaff4d5b0ed523c3144911e7f79ee812dece0e3933c13a88dddcf5912ded'
'9631d4f694952e3e6ae5a05534c2e93e994e47d3413677a3a00e45c8cef6db93')
build() {
@@ -28,7 +28,8 @@ build() {
autoreconf --force --install
./configure --prefix=/usr \
--enable-udev \
- --enable-vmwgfx-experimental-api
+ --enable-omap-experimental-api \
+ --enable-exynos-experimental-api
make
}
diff --git a/extra/libdrm/no-pthread-stubs.patch b/extra/libdrm/no-pthread-stubs.patch
index a8de91d9d..3b05ce18d 100644
--- a/extra/libdrm/no-pthread-stubs.patch
+++ b/extra/libdrm/no-pthread-stubs.patch
@@ -68,3 +68,37 @@ diff -Nur libdrm-2.4.34.orig/radeon/Makefile.am libdrm-2.4.34/radeon/Makefile.am
libdrm_radeon_la_SOURCES = \
radeon_bo_gem.c \
+--- libdrm-2.4.40/omap/Makefile.am 2012-06-14 23:32:50.000000000 +0200
++++ libdrm-2.4.40/omap/Makefile.am 2012-11-06 19:24:44.183224706 +0100
+@@ -2,13 +2,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/omap \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_omap_la_LTLIBRARIES = libdrm_omap.la
+ libdrm_omap_ladir = $(libdir)
+ libdrm_omap_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_omap_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_omap_la_LIBADD = ../libdrm.la
+
+ libdrm_omap_la_SOURCES = omap_drm.c
+
+--- libdrm-2.4.40/exynos/Makefile.am 2012-06-14 23:32:50.000000000 +0200
++++ libdrm-2.4.40/exynos/Makefile.am 2012-11-06 19:26:01.975323106 +0100
+@@ -2,13 +2,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/exynos \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_exynos_la_LTLIBRARIES = libdrm_exynos.la
+ libdrm_exynos_ladir = $(libdir)
+ libdrm_exynos_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_exynos_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_exynos_la_LIBADD = ../libdrm.la
+
+ libdrm_exynos_la_SOURCES = exynos_drm.c
+
diff --git a/extra/live-media/PKGBUILD b/extra/live-media/PKGBUILD
index 63d15a658..e5c6ae1f1 100644
--- a/extra/live-media/PKGBUILD
+++ b/extra/live-media/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 170369 2012-11-06 17:42:18Z giovanni $
+# $Id: PKGBUILD 170798 2012-11-11 16:22:13Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Gilles CHAUVIN <gcnweb@gmail.com>
pkgname=live-media
-pkgver=2012.11.05
+pkgver=2012.11.08
pkgrel=1
pkgdesc="A set of C++ libraries for multimedia streaming"
arch=('i686' 'x86_64' 'mips64el')
@@ -11,7 +11,7 @@ license=('LGPL')
url="http://live555.com/liveMedia"
depends=('gcc-libs')
source=("http://live555.com/liveMedia/public/live.${pkgver}.tar.gz")
-md5sums=('0618f2a0b0f60131b616b03cf3b4d5ce')
+md5sums=('d4a873052b13e77e80a8d267176da661')
build() {
cd ${srcdir}/live
diff --git a/extra/ltrace/PKGBUILD b/extra/ltrace/PKGBUILD
index 27d3518ac..2ef4a55b6 100644
--- a/extra/ltrace/PKGBUILD
+++ b/extra/ltrace/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 146208 2012-01-06 03:36:04Z foutrelis $
+# $Id: PKGBUILD 170791 2012-11-11 15:22:36Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Aaron Griffin <aaron@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=ltrace
-pkgver=0.6.0
+pkgver=0.7.0
pkgrel=1
pkgdesc="Tracks runtime library calls in dynamically linked programs"
arch=('i686' 'x86_64' 'mips64el')
@@ -12,18 +12,12 @@ url="http://ltrace.alioth.debian.org/"
license=('GPL')
depends=('elfutils')
backup=('etc/ltrace.conf')
-source=(http://dev.archlinux.org/~foutrelis/sources/ltrace/$pkgname-$pkgver.tar.xz
- fix-crash-on-int3-after-symcall.patch)
-sha256sums=('13e4a66aa1f2ad23fd4ddd7faa79c52a68f210155eeb6490ce421f2a07fa0706'
- 'ef2c33c94b5cbfc552e5e734ac5627918ace918f48db5d3f29f1c0dcb1732d04')
+source=(https://alioth.debian.org/frs/download.php/3822/$pkgname-$pkgver.tar.bz2)
+sha256sums=('5438ce286f072f0e0448db046657466f9bd142600013329063aecf7cf809fd10')
build() {
cd "$srcdir/$pkgname-$pkgver"
- # Fix FS#27250: SIGSEGV due to int3 right after a call instruction
- patch -Np1 -i "$srcdir/fix-crash-on-int3-after-symcall.patch"
-
- ./autogen.sh
./configure \
--prefix=/usr \
--sysconfdir=/etc
@@ -34,6 +28,10 @@ package(){
cd "$srcdir/$pkgname-$pkgver"
make DESTDIR="$pkgdir" install
+
+ # ltrace.conf.5 needs to be installed to man5 (fixed in upstream git repo)
+ install -d "$pkgdir/usr/share/man/man5"
+ mv "$pkgdir/usr/share/man/man"{1/ltrace.conf.1,5/ltrace.conf.5}
}
# vim:set ts=2 sw=2 et:
diff --git a/extra/php-xcache/PKGBUILD b/extra/php-xcache/PKGBUILD
index bd4bb1472..6d7f6800b 100644
--- a/extra/php-xcache/PKGBUILD
+++ b/extra/php-xcache/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 163591 2012-07-16 07:46:41Z pierre $
+# $Id: PKGBUILD 170770 2012-11-11 06:21:29Z pierre $
# Maintainer: Pierre Schmitz <pierre@archlinux.de>
pkgname=php-xcache
-pkgver=2.0.1
-pkgrel=1
+pkgver=3.0.0
+pkgrel=2
arch=('i686' 'x86_64' 'mips64el')
pkgdesc='A PHP opcode cacher'
url='http://xcache.lighttpd.net/'
@@ -12,8 +12,8 @@ license=('custom')
source=("http://xcache.lighttpd.net/pub/Releases/${pkgver}/xcache-${pkgver}.tar.bz2"
'xcache.ini')
backup=('etc/php/conf.d/xcache.ini')
-md5sums=('d3bc9645dc1b084c1eb45cfc4d8e9ccc'
- 'bba7ead3e592a7980aa91a8600973587')
+md5sums=('63be7c8b14ffc01babe5378111f13228'
+ '8fd9ce537ada9463c4b0c042243158c0')
build() {
cd $srcdir/xcache-$pkgver
@@ -34,7 +34,7 @@ package() {
install -Dm644 $srcdir/xcache.ini $pkgdir/etc/php/conf.d/xcache.ini
install -dm755 $pkgdir/usr/share/php-xcache/admin
- install -m644 admin/* $pkgdir/usr/share/php-xcache/admin/
+ cp -r htdocs/* $pkgdir/usr/share/php-xcache/admin/
install -Dm644 COPYING $pkgdir/usr/share/licenses/php-xcache/COPYING
}
diff --git a/extra/php-xcache/xcache.ini b/extra/php-xcache/xcache.ini
index c2677a5ca..b814dbce1 100644
--- a/extra/php-xcache/xcache.ini
+++ b/extra/php-xcache/xcache.ini
@@ -1,3 +1,3 @@
-;zend_extension=/usr/lib/php/modules/xcache.so
+;extension=xcache.so
xcache.size=64M
xcache.var_size=64M
diff --git a/extra/pixman/PKGBUILD b/extra/pixman/PKGBUILD
index 58782f157..0d5263c1e 100644
--- a/extra/pixman/PKGBUILD
+++ b/extra/pixman/PKGBUILD
@@ -1,9 +1,10 @@
-# $Id: PKGBUILD 162772 2012-06-30 07:29:52Z andyrtr $
+# $Id: PKGBUILD 170784 2012-11-11 10:23:18Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
pkgname=pixman
-pkgver=0.26.2
+pkgver=0.28.0
pkgrel=1
pkgdesc="The pixel-manipulation library for X and cairo"
arch=(i686 x86_64 'mips64el')
@@ -12,7 +13,7 @@ license=('custom')
depends=('glibc')
options=('!libtool')
source=(http://xorg.freedesktop.org/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2)
-sha1sums=('1daf014714cc29147726abada12359345d156705')
+sha1sums=('cfc7a18a8811bf4ff0890f547c315bda8097f6ad')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/extra/sdl_mixer/PKGBUILD b/extra/sdl_mixer/PKGBUILD
index afa2e2091..56fb59859 100644
--- a/extra/sdl_mixer/PKGBUILD
+++ b/extra/sdl_mixer/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 146688 2012-01-16 11:35:40Z heftig $
+# $Id: PKGBUILD 170804 2012-11-12 02:00:36Z heftig $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
@@ -6,7 +6,7 @@
pkgname=sdl_mixer
pkgver=1.2.12
-pkgrel=1.1
+pkgrel=3
pkgdesc="A simple multi-channel audio mixer"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.libsdl.org/projects/SDL_mixer/"
@@ -15,12 +15,22 @@ depends=('sdl>=1.2.12' 'libvorbis' 'libmikmod' 'smpeg')
makedepends=('fluidsynth')
optdepends=('fluidsynth: MIDI software synth, replaces built-in timidity')
options=('!libtool')
-source=(http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-$pkgver.tar.gz)
-md5sums=('e03ff73d77a55e3572ad0217131dc4a1')
+source=(http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-$pkgver.tar.gz
+ mikmod1.patch mikmod2.patch fluidsynth-volume.patch double-free-crash.patch)
+md5sums=('e03ff73d77a55e3572ad0217131dc4a1'
+ '95a6d58686fe3017d58c39e3e1dd40f7'
+ 'd823994c3961f2ff48644478f27a27d1'
+ 'eed8b61defde36ac2077ef96d868ea3e'
+ '4b4835c63297f016a198cacb7dd68ec1')
build() {
cd "$srcdir/SDL_mixer-$pkgver"
+ patch -Np1 -i ../mikmod1.patch
+ patch -Np1 -i ../mikmod2.patch
+ patch -Np1 -i ../fluidsynth-volume.patch
+ patch -Np1 -i ../double-free-crash.patch
+
sed -e "/CONFIG_FILE_ETC/s|/etc/timidity.cfg|/etc/timidity++/timidity.cfg|" \
-e "/DEFAULT_PATH/s|/etc/timidity|/etc/timidity++|" \
-e "/DEFAULT_PATH2/s|/usr/local/lib/timidity|/usr/lib/timidity|" \
diff --git a/extra/sdl_mixer/double-free-crash.patch b/extra/sdl_mixer/double-free-crash.patch
new file mode 100644
index 000000000..6f4e6a1ee
--- /dev/null
+++ b/extra/sdl_mixer/double-free-crash.patch
@@ -0,0 +1,32 @@
+
+# HG changeset patch
+# User Sam Lantinga <slouken@libsdl.org>
+# Date 1329087437 18000
+# Node ID 2d713670db9b832b0c5aa700824900bc1fc3c3cd
+# Parent df72f22b4b411ad4b08f924329678aabd5ac97d6
+Fixed 1418 - crash on double free if loading WAV file failed
+
+diff -r df72f22b4b41 -r 2d713670db9b mixer.c
+--- a/mixer.c Mon Jan 30 21:41:45 2012 -0500
++++ b/mixer.c Sun Feb 12 17:57:17 2012 -0500
+@@ -610,13 +610,15 @@
+ break;
+ default:
+ SDL_SetError("Unrecognized sound file type");
+- return(0);
++ if ( freesrc ) {
++ SDL_RWclose(src);
++ }
++ loaded = NULL;
++ break;
+ }
+ if ( !loaded ) {
++ /* The individual loaders have closed src if needed */
+ SDL_free(chunk);
+- if ( freesrc ) {
+- SDL_RWclose(src);
+- }
+ return(NULL);
+ }
+
+
diff --git a/extra/sdl_mixer/fluidsynth-volume.patch b/extra/sdl_mixer/fluidsynth-volume.patch
new file mode 100644
index 000000000..cf346ed02
--- /dev/null
+++ b/extra/sdl_mixer/fluidsynth-volume.patch
@@ -0,0 +1,23 @@
+
+# HG changeset patch
+# User James Le Cuirot <chewi@aura-online.co.uk>
+# Date 1330896767 0
+# Node ID c92001a2c18f628698c58aa4e05a7335d10d0e9e
+# Parent 2d713670db9b832b0c5aa700824900bc1fc3c3cd
+Raise the maximum FluidSynth gain from 0.8 to 1.2 because apparently the former is too quiet in some cases.
+
+diff -r 2d713670db9b -r c92001a2c18f fluidsynth.c
+--- a/fluidsynth.c Sun Feb 12 17:57:17 2012 -0500
++++ b/fluidsynth.c Sun Mar 04 21:32:47 2012 +0000
+@@ -176,8 +176,8 @@
+
+ void fluidsynth_setvolume(FluidSynthMidiSong *song, int volume)
+ {
+- /* FluidSynth's default is 0.2. Make 0.8 the maximum. */
+- fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 0.00625));
++ /* FluidSynth's default is 0.2. Make 1.2 the maximum. */
++ fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 1.2 / MIX_MAX_VOLUME));
+ }
+
+ int fluidsynth_playsome(FluidSynthMidiSong *song, void *dest, int dest_len)
+
diff --git a/extra/sdl_mixer/mikmod1.patch b/extra/sdl_mixer/mikmod1.patch
new file mode 100644
index 000000000..b3bb829d2
--- /dev/null
+++ b/extra/sdl_mixer/mikmod1.patch
@@ -0,0 +1,67 @@
+
+# HG changeset patch
+# User Sam Lantinga <slouken@libsdl.org>
+# Date 1342998807 25200
+# Node ID 56cad6484b04f83c8d42428c755a046678506436
+# Parent c92001a2c18f628698c58aa4e05a7335d10d0e9e
+Paul P Komkoff Jr fixed malloc/free mismatch in the MikMod driver
+
+diff -r c92001a2c18f -r 56cad6484b04 CHANGES
+--- a/CHANGES Sun Mar 04 21:32:47 2012 +0000
++++ b/CHANGES Sun Jul 22 16:13:27 2012 -0700
+@@ -1,3 +1,7 @@
++1.2.13:
++Paul P Komkoff Jr - Sun Jul 22 16:12:28 PDT 2012
++ * Fixed malloc/free mismatch in the MikMod driver
++
+ 1.2.12:
+ Sam Lantinga - Sat Jan 14 22:00:29 2012 -0500
+ * Fixed seek offset with SMPEG (was relative, should be absolute)
+diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.c
+--- a/dynamic_mod.c Sun Mar 04 21:32:47 2012 +0000
++++ b/dynamic_mod.c Sun Jul 22 16:13:27 2012 -0700
+@@ -93,6 +93,13 @@
+ SDL_UnloadObject(mikmod.handle);
+ return -1;
+ }
++ mikmod.MikMod_free =
++ (void (*)(void*))
++ SDL_LoadFunction(mikmod.handle, "MikMod_free");
++ if ( mikmod.MikMod_free == NULL ) {
++ SDL_UnloadObject(mikmod.handle);
++ return -1;
++ }
+ mikmod.Player_Active =
+ (BOOL (*)(void))
+ SDL_LoadFunction(mikmod.handle, "Player_Active");
+diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.h
+--- a/dynamic_mod.h Sun Mar 04 21:32:47 2012 +0000
++++ b/dynamic_mod.h Sun Jul 22 16:13:27 2012 -0700
+@@ -35,6 +35,7 @@
+ void (*MikMod_RegisterDriver)(struct MDRIVER*);
+ int* MikMod_errno;
+ char* (*MikMod_strerror)(int);
++ void (*MikMod_free)(void*);
+ BOOL (*Player_Active)(void);
+ void (*Player_Free)(MODULE*);
+ MODULE* (*Player_LoadGeneric)(MREADER*,int,BOOL);
+diff -r c92001a2c18f -r 56cad6484b04 music_mod.c
+--- a/music_mod.c Sun Mar 04 21:32:47 2012 +0000
++++ b/music_mod.c Sun Jul 22 16:13:27 2012 -0700
+@@ -109,13 +109,13 @@
+
+ list = mikmod.MikMod_InfoDriver();
+ if ( list )
+- free(list);
++ mikmod.MikMod_free(list);
+ else
+ mikmod.MikMod_RegisterDriver(mikmod.drv_nos);
+
+ list = mikmod.MikMod_InfoLoader();
+ if ( list )
+- free(list);
++ mikmod.MikMod_free(list);
+ else
+ mikmod.MikMod_RegisterAllLoaders();
+
+
diff --git a/extra/sdl_mixer/mikmod2.patch b/extra/sdl_mixer/mikmod2.patch
new file mode 100644
index 000000000..6e89ca82a
--- /dev/null
+++ b/extra/sdl_mixer/mikmod2.patch
@@ -0,0 +1,35 @@
+
+# HG changeset patch
+# User Sam Lantinga <slouken@libsdl.org>
+# Date 1343000017 25200
+# Node ID 2ebb0d016f277f7f643d8a66ed0e1099e10d1fba
+# Parent 56cad6484b04f83c8d42428c755a046678506436
+Fixed normal linking with libmikmod and linking with earlier versions of libmikmod.
+
+diff -r 56cad6484b04 -r 2ebb0d016f27 dynamic_mod.c
+--- a/dynamic_mod.c Sun Jul 22 16:13:27 2012 -0700
++++ b/dynamic_mod.c Sun Jul 22 16:33:37 2012 -0700
+@@ -97,8 +97,8 @@
+ (void (*)(void*))
+ SDL_LoadFunction(mikmod.handle, "MikMod_free");
+ if ( mikmod.MikMod_free == NULL ) {
+- SDL_UnloadObject(mikmod.handle);
+- return -1;
++ /* libmikmod 3.1 and earlier doesn't have it */
++ mikmod.MikMod_free = free;
+ }
+ mikmod.Player_Active =
+ (BOOL (*)(void))
+@@ -246,6 +246,11 @@
+ mikmod.MikMod_RegisterDriver = MikMod_RegisterDriver;
+ mikmod.MikMod_errno = &MikMod_errno;
+ mikmod.MikMod_strerror = MikMod_strerror;
++#if LIBMIKMOD_VERSION < ((3<<16)|(2<<8))
++ mikmod.MikMod_free = free;
++#else
++ mikmod.MikMod_free = MikMod_free;
++#endif
+ mikmod.Player_Active = Player_Active;
+ mikmod.Player_Free = Player_Free;
+ mikmod.Player_LoadGeneric = Player_LoadGeneric;
+
diff --git a/extra/weechat/PKGBUILD b/extra/weechat/PKGBUILD
index 3dff9dc7a..f3795255d 100644
--- a/extra/weechat/PKGBUILD
+++ b/extra/weechat/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 167283 2012-09-30 00:48:04Z giovanni $
+# $Id: PKGBUILD 170788 2012-11-11 10:32:52Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: lucke <lucke at o2 dot pl>
pkgname=weechat
-pkgver=0.3.9
+pkgver=0.3.9.1
pkgrel=1
pkgdesc="Fast, light and extensible IRC client (curses UI)"
arch=('i686' 'x86_64' 'mips64el')
@@ -14,7 +14,7 @@ makedepends=('cmake' 'pkgconfig' 'perl' 'python2' 'lua' 'tcl' 'ruby' 'aspell')
optdepends=('perl' 'python2' 'lua' 'tcl' 'ruby' 'aspell')
options=('!libtool')
source=("http://www.weechat.org/files/src/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('e981a357378e6ea97c91d8cb6a023da6')
+md5sums=('d26ddba44715da27c9df51ac87e8ce5b')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/extra/xf86-video-ati/PKGBUILD b/extra/xf86-video-ati/PKGBUILD
index 16003d403..40f66e595 100644
--- a/extra/xf86-video-ati/PKGBUILD
+++ b/extra/xf86-video-ati/PKGBUILD
@@ -1,30 +1,25 @@
-# $Id: PKGBUILD 168567 2012-10-13 11:44:18Z andyrtr $
+# $Id: PKGBUILD 170785 2012-11-11 10:23:19Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
pkgname=xf86-video-ati
-pkgver=6.14.6
+pkgver=7.0.0
epoch=1
-pkgrel=2
+pkgrel=1
pkgdesc="X.org ati video driver"
arch=('i686' 'x86_64')
url="http://xorg.freedesktop.org/"
license=('custom')
-depends=('libdrm>=2.4.37' 'systemd-tools' 'ati-dri')
+depends=('libdrm>=2.4.40' 'systemd-tools' 'ati-dri')
makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=13' 'resourceproto' 'scrnsaverproto')
conflicts=('xorg-server<1.13.0' 'X-ABI-VIDEODRV_VERSION<13' 'X-ABI-VIDEODRV_VERSION>=14')
groups=('xorg-drivers' 'xorg')
options=('!libtool')
source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-sha256sums=('aa5286b3e4f0187d7df14785c06dd800255d9405205dbf061da5d77df86bec36')
+sha256sums=('c0acc81386425651aae5dfe02d89f935bb63b2a62104da0d88deac3c773ea10e')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
-
- # fix build now that XAA isn't available in new Xorg - http://bugs.gentoo.org/show_bug.cgi?id=428094
- sed -i '/USE_XAA, 1/d' configure.ac
- autoreconf -vfi
-
./configure --prefix=/usr
make
}
diff --git a/extra/xorg-server/PKGBUILD b/extra/xorg-server/PKGBUILD
index 9fa7af6e5..0e11f6ff3 100644
--- a/extra/xorg-server/PKGBUILD
+++ b/extra/xorg-server/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 169364 2012-10-20 06:35:05Z andyrtr $
+# $Id: PKGBUILD 170786 2012-11-11 10:23:23Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgbase=xorg-server
pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-common' 'xorg-server-devel')
pkgver=1.13.0
-pkgrel=3
+pkgrel=4
arch=('i686' 'x86_64' 'mips64el')
license=('custom')
url="http://xorg.freedesktop.org"
@@ -21,7 +21,8 @@ source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2
xvfb-run.1
10-quirks.conf
loongson.patch
- 0001-dix-fix-zaphod-screen-scrossing-54654.patch)
+ git-fixes.patch
+ use-pixman-glyph-cache.patch)
sha256sums=('548b91cb01087ad4f892428e7ac4955251cf12393e86c70420436b33848ef28a'
'66e25f76a7496c429e0aff4b0670f168719bb0ceaeb88c6f2272f2bf3ed21162'
'd027776fac1f7675b0a9ee817502290b1c45f9c09b0f0a6bb058c35f92361e84'
@@ -29,11 +30,18 @@ sha256sums=('548b91cb01087ad4f892428e7ac4955251cf12393e86c70420436b33848ef28a'
'2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
'94612f5c0d34a3b7152915c2e285c7b462e9d8e38d3539bd551a339498eac166'
'966b8c509006e3b7e6ac951c93a760ecbb2cb2ad7a5807fb919f0c4ee5e079a5'
- '23861814b4283ca3fe43aae6e88ee82bcbae5713bf88eabeaef7beb94efe9707')
+ 'd49e534b77ead809eb873a1a86cd47c791a8ddd10557bfa635197bba6bc00b71'
+ '7c1dacd30c46b01424c7c75974285cd348dafd0327eb3f211cbe446ad90dd308')
build() {
cd "${srcdir}/${pkgbase}-${pkgver}"
+ # Apply upstream fixes from server-1.13 branch
+ patch -Np1 -i "${srcdir}/git-fixes.patch"
+
+ # Use pixman 0.28.0 glyph cache - backported from git master
+ patch -Np1 -i "${srcdir}/use-pixman-glyph-cache.patch"
+
# Use nouveau/nv/nvidia drivers for nvidia devices
patch -Np1 -i "${srcdir}/autoconfig-nvidia.patch"
@@ -43,41 +51,16 @@ build() {
# Based on http://lists.freedesktop.org/archives/xorg-devel/2011-October/026249.html
patch -Np1 -i "${srcdir}/loongson.patch"
- # https://bugs.archlinux.org/task/31959 / https://bugs.freedesktop.org/show_bug.cgi?id=54654
- patch -Np1 -i ${srcdir}/0001-dix-fix-zaphod-screen-scrossing-54654.patch
-
autoreconf -fi
+
if [ "$CARCH" = "mips64el" ]; then
- ./configure --prefix=/usr \
- --enable-ipv6 \
- --disable-dri \
- --disable-dri2 \
- --enable-dmx \
- --enable-xvfb \
- --enable-xnest \
- --enable-composite \
- --enable-xcsecurity \
- --enable-xorg \
- --enable-xephyr \
- --disable-glx \
- --disable-glx-tls \
- --enable-kdrive \
- --enable-install-setuid \
- --enable-config-udev \
- --disable-config-dbus \
- --enable-record \
- --disable-xfbdev \
- --disable-xfake \
- --disable-static \
- --sysconfdir=/etc/X11 \
- --localstatedir=/var \
- --with-xkb-path=/usr/share/X11/xkb \
- --with-xkb-output=/var/lib/xkb \
- --with-fontrootdir=/usr/share/fonts
+ extra="--disable-dri --disable-dri2 --disable-glx --disable-glx-tls"
else
+ extra="--enable-dri --enable-glx-tls"
+ fi
+
./configure --prefix=/usr \
--enable-ipv6 \
- --enable-dri \
--enable-dmx \
--enable-xvfb \
--enable-xnest \
@@ -85,7 +68,6 @@ build() {
--enable-xcsecurity \
--enable-xorg \
--enable-xephyr \
- --enable-glx-tls \
--enable-kdrive \
--enable-kdrive-evdev \
--enable-kdrive-kbd \
@@ -101,8 +83,8 @@ build() {
--localstatedir=/var \
--with-xkb-path=/usr/share/X11/xkb \
--with-xkb-output=/var/lib/xkb \
- --with-fontrootdir=/usr/share/fonts
- fi
+ --with-fontrootdir=/usr/share/fonts \
+ $extra
make
# Disable subdirs for make install rule to make splitting easier
@@ -132,7 +114,7 @@ package_xorg-server-common() {
package_xorg-server() {
pkgdesc="Xorg X server"
- depends=(libxdmcp libxfont libpciaccess libdrm pixman libgcrypt libxau xorg-server-common xf86-input-evdev)
+ depends=(libxdmcp libxfont libpciaccess libdrm 'pixman>=0.28.0' libgcrypt libxau xorg-server-common xf86-input-evdev)
backup=('etc/X11/xorg.conf.d/10-evdev.conf' 'etc/X11/xorg.conf.d/10-quirks.conf')
# see xorg-server-1.13.0/hw/xfree86/common/xf86Module.h for ABI versions - we provide major numbers that drivers can depend on
provides=('X-ABI-VIDEODRV_VERSION=13' 'X-ABI-XINPUT_VERSION=18' 'X-ABI-EXTENSION_VERSION=7.0' 'x-server')
@@ -169,7 +151,7 @@ package_xorg-server() {
package_xorg-server-xephyr() {
pkgdesc="A nested X server that runs as an X application"
- depends=(libxfont libgl libgcrypt libxv pixman xorg-server-common)
+ depends=(libxfont libgl libgcrypt libxv 'pixman>=0.28.0' xorg-server-common)
cd "${srcdir}/${pkgbase}-${pkgver}/hw/kdrive"
make DESTDIR="${pkgdir}" install
@@ -180,7 +162,7 @@ package_xorg-server-xephyr() {
package_xorg-server-xvfb() {
pkgdesc="Virtual framebuffer X server"
- depends=(libxfont libxdmcp libxau libgcrypt pixman xorg-server-common)
+ depends=(libxfont libxdmcp libxau libgcrypt 'pixman>=0.28.0' xorg-server-common)
cd "${srcdir}/${pkgbase}-${pkgver}/hw/vfb"
make DESTDIR="${pkgdir}" install
@@ -194,7 +176,7 @@ package_xorg-server-xvfb() {
package_xorg-server-xnest() {
pkgdesc="A nested X server that runs as an X application"
- depends=(libxfont libxext libgcrypt pixman xorg-server-common)
+ depends=(libxfont libxext libgcrypt 'pixman>=0.28.0' xorg-server-common)
cd "${srcdir}/${pkgbase}-${pkgver}/hw/xnest"
make DESTDIR="${pkgdir}" install
@@ -205,7 +187,7 @@ package_xorg-server-xnest() {
package_xorg-server-xdmx() {
pkgdesc="Distributed Multihead X Server and utilities"
- depends=(libxfont libxi libgcrypt libxaw libxrender libdmx libxfixes pixman xorg-server-common)
+ depends=(libxfont libxi libgcrypt libxaw libxrender libdmx libxfixes 'pixman>=0.28.0' xorg-server-common)
cd "${srcdir}/${pkgbase}-${pkgver}/hw/dmx"
make DESTDIR="${pkgdir}" install
@@ -220,6 +202,8 @@ package_xorg-server-devel() {
xproto randrproto renderproto xextproto inputproto kbproto
fontsproto pixman videoproto xf86driproto glproto
mesa xineramaproto libpciaccess
+ # see FS#32146
+ resourceproto scrnsaverproto
# not technically required but almost every Xorg pkg needs it to build
xorg-util-macros)
[ "$CARCH" = "mips64el" ] || depends+=('dri2proto')
@@ -237,24 +221,3 @@ package_xorg-server-devel() {
install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-devel"
ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-devel/COPYING"
}
-md5sums=('7297e025f442904768c360fcbaedbc1f'
- 'ea4852dedbb89550f6bc113ca66348a2'
- '4f3bc572ad32e6ed22efc38d2a5e429a'
- '52fd3effd80d7bc6c1660d4ecf23d31c'
- '376c70308715cd2643f7bff936d9934b'
- 'd4f7dfc6be4ef4e2c6dd7632a9d88abe'
- 'd335870a88231cdbdd2919dd4ca76a1f')
-md5sums=('f87d830aa69885275e26dd6327d76a44'
- 'ea4852dedbb89550f6bc113ca66348a2'
- '4f3bc572ad32e6ed22efc38d2a5e429a'
- '52fd3effd80d7bc6c1660d4ecf23d31c'
- '376c70308715cd2643f7bff936d9934b'
- 'd4f7dfc6be4ef4e2c6dd7632a9d88abe'
- 'd335870a88231cdbdd2919dd4ca76a1f')
-sha256sums=('8ac07c35306ba3fb3c0972722dd4e919303039eca1d40ac7862560e0b2c94cf7'
- '66e25f76a7496c429e0aff4b0670f168719bb0ceaeb88c6f2272f2bf3ed21162'
- 'd027776fac1f7675b0a9ee817502290b1c45f9c09b0f0a6bb058c35f92361e84'
- 'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9'
- '2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
- '94612f5c0d34a3b7152915c2e285c7b462e9d8e38d3539bd551a339498eac166'
- '966b8c509006e3b7e6ac951c93a760ecbb2cb2ad7a5807fb919f0c4ee5e079a5')
diff --git a/extra/xorg-server/git-fixes.patch b/extra/xorg-server/git-fixes.patch
index f6ca2426b..d1817c00f 100644
--- a/extra/xorg-server/git-fixes.patch
+++ b/extra/xorg-server/git-fixes.patch
@@ -1,1717 +1,643 @@
-From b5bf0ac5405eab77f26bb2f8726644232af17178 Mon Sep 17 00:00:00 2001
-From: Keith Packard <keithp@keithp.com>
-Date: Wed, 11 Apr 2012 16:28:21 +0000
-Subject: hw/xfree86: Spurious ');' in xf86vmode.c messed up indentation badly
-
-Inside the unfinished XF86VIDMODE_EVENTS #ifdef block the
-function definition for xf86VidModeNotifyEvent had an extra ');'
-before the prototype argument declarations. This was harmless for the
-compiler as the code never gets used, but completely messed up the
-file re-indentation. This patch removes the spurious characters in
-preparation for re-indenting the file.
-
-Signed-off-by: Keith Packard <keithp@keithp.com>
-(cherry picked from commit 592bd0ae2b60cd6f6afd3efc40f5f659b12900b4)
----
-diff --git a/hw/xfree86/dixmods/extmod/xf86vmode.c b/hw/xfree86/dixmods/extmod/xf86vmode.c
-index 6e2a8e9..9f64f8e 100644
---- a/hw/xfree86/dixmods/extmod/xf86vmode.c
-+++ b/hw/xfree86/dixmods/extmod/xf86vmode.c
-@@ -75,7 +75,7 @@ static unsigned char XF86VidModeReqCode = 0;
- #ifdef XF86VIDMODE_EVENTS
- static int XF86VidModeEventBase = 0;
-
--static void SXF86VidModeNotifyEvent();
-+static void SXF86VidModeNotifyEvent(
- xXF86VidModeNotifyEvent * /* from */ , xXF86VidModeNotifyEvent * /* to */
- );
-
---
-cgit v0.9.0.2-2-gbebe
-From 3ad72a80088fe3236f38bd0696b04f399e24fe3d Mon Sep 17 00:00:00 2001
-From: Keith Packard <keithp@keithp.com>
-Date: Wed, 11 Apr 2012 16:33:54 +0000
-Subject: hw/xfree86: Re-indent xf86vmode.c
-
-This is the result of re-running the 'x-indent.sh' script over
-xf86vmode.c to clean up the disaster caused by broken syntax in the
-file.
-
-Signed-off-by: Keith Packard <keithp@keithp.com>
-(cherry picked from commit 9779b904c7c0b49c74054c22c420012c40595cdc)
----
-diff --git a/hw/xfree86/dixmods/extmod/xf86vmode.c b/hw/xfree86/dixmods/extmod/xf86vmode.c
-index 9f64f8e..68c4b58 100644
---- a/hw/xfree86/dixmods/extmod/xf86vmode.c
-+++ b/hw/xfree86/dixmods/extmod/xf86vmode.c
-@@ -75,8 +75,7 @@ static unsigned char XF86VidModeReqCode = 0;
- #ifdef XF86VIDMODE_EVENTS
- static int XF86VidModeEventBase = 0;
-
--static void SXF86VidModeNotifyEvent(
--xXF86VidModeNotifyEvent * /* from */ , xXF86VidModeNotifyEvent * /* to */
-+static void SXF86VidModeNotifyEvent(xXF86VidModeNotifyEvent * /* from */ , xXF86VidModeNotifyEvent * /* to */
- );
-
- static RESTYPE EventType; /* resource type for event masks */
-@@ -117,20 +116,22 @@ static DevPrivateKeyRec ScreenPrivateKeyRec;
- #define DEBUG_P(x) /**/
- #endif
- static int
-- ClientMajorVersion(ClientPtr client) {
-+ClientMajorVersion(ClientPtr client)
-+{
- VidModePrivPtr pPriv;
-
-- pPriv = VM_GETPRIV(client);
-+ pPriv = VM_GETPRIV(client);
- if (!pPriv)
-- return 0;
-+ return 0;
+diff --git a/Xi/exevents.c b/Xi/exevents.c
+index 494d07e..106da3a 100644
+--- a/Xi/exevents.c
++++ b/Xi/exevents.c
+@@ -949,8 +949,6 @@ UpdateDeviceState(DeviceIntPtr device, DeviceEvent *event)
+
+ if (!(event->flags & TOUCH_POINTER_EMULATED))
+ return DONT_PROCESS;
+- if (!(event->flags & TOUCH_END))
+- return DONT_PROCESS;
+
+ DecreaseButtonCount(device, key, &t->buttonsDown, &t->motionMask,
+ &t->state);
+@@ -1561,6 +1559,7 @@ ProcessTouchEvent(InternalEvent *ev, DeviceIntPtr dev)
+ uint32_t touchid;
+ int type = ev->any.type;
+ int emulate_pointer = ! !(ev->device_event.flags & TOUCH_POINTER_EMULATED);
++ DeviceIntPtr kbd;
+
+ if (!t)
+ return;
+@@ -1570,9 +1569,6 @@ ProcessTouchEvent(InternalEvent *ev, DeviceIntPtr dev)
else
-- return pPriv->major;
-+ return pPriv->major;
- }
-+
- #ifdef XF86VIDMODE_EVENTS
- static void
-- CheckScreenPrivate(pScreen)
-+CheckScreenPrivate(pScreen)
- ScreenPtr
-- pScreen;
-+ pScreen;
- {
- SetupScreen(pScreen);
+ touchid = ev->device_event.touchid;
-@@ -142,9 +143,10 @@ ScreenPtr
+- if (emulate_pointer)
+- UpdateDeviceState(dev, &ev->device_event);
+-
+ if (type == ET_TouchBegin) {
+ ti = TouchBeginTouch(dev, ev->device_event.sourceid, touchid,
+ emulate_pointer);
+@@ -1619,9 +1615,14 @@ ProcessTouchEvent(InternalEvent *ev, DeviceIntPtr dev)
+ * events which _only_ emulate motion just work normally */
+ if (emulate_pointer && ev->any.type != ET_TouchUpdate)
+ DeliverEmulatedMotionEvent(dev, ti, ev);
++
+ if (emulate_pointer && IsMaster(dev))
+ CheckMotion(&ev->device_event, dev);
+
++ kbd = GetMaster(dev, KEYBOARD_OR_FLOAT);
++ event_set_state(NULL, kbd, &ev->device_event);
++ ev->device_event.corestate = event_get_corestate(NULL, kbd);
++
+ /* Make sure we have a valid window trace for event delivery; must be
+ * called after event type mutation. Touch end events are always processed
+ * in order to end touch records. */
+@@ -1643,6 +1644,9 @@ ProcessTouchEvent(InternalEvent *ev, DeviceIntPtr dev)
+ if (ev->any.type == ET_TouchEnd)
+ TouchEndTouch(dev, ti);
}
- }
-
--static XF86VidModeScreenPrivatePtr MakeScreenPrivate(pScreen)
-+static XF86VidModeScreenPrivatePtr
-+MakeScreenPrivate(pScreen)
- ScreenPtr
-- pScreen;
-+ pScreen;
- {
- SetupScreen(pScreen);
-
-@@ -160,18 +162,22 @@ ScreenPtr
- }
-
- static unsigned long
-- getEventMask(ScreenPtr pScreen, ClientPtr client) {
-+getEventMask(ScreenPtr pScreen, ClientPtr client)
-+{
- SetupScreen(pScreen);
- XF86VidModeEventPtr pEv;
-
- if (!pPriv)
-- return 0;
-+ return 0;
- for (pEv = pPriv->events; pEv; pEv = pEv->next)
- if (pEv->client == client)
- return pEv->mask;
-- return 0;
--} static Bool
-- setEventMask(ScreenPtr pScreen, ClientPtr client, unsigned long mask) {
-+ return 0;
-+}
+
-+static Bool
-+setEventMask(ScreenPtr pScreen, ClientPtr client, unsigned long mask)
-+{
- SetupScreen(pScreen);
- XF86VidModeEventPtr pEv, *pPrev;
-
-@@ -181,7 +187,8 @@ static unsigned long
- pPriv = MakeScreenPrivate(pScreen);
- if (!pPriv)
- return FALSE;
-- } for (pPrev = &pPriv->events; pEv = *pPrev; pPrev = &pEv->next)
-+ }
-+ for (pPrev = &pPriv->events; pEv = *pPrev; pPrev = &pEv->next)
- if (pEv->client == client)
- break;
- if (mask == 0) {
-@@ -208,38 +215,43 @@ static unsigned long
- }
-
- static int
-- XF86VidModeFreeEvents(pointer value, XID id) {
-+XF86VidModeFreeEvents(pointer value, XID id)
-+{
- XF86VidModeEventPtr pOld = (XF86VidModeEventPtr) value;
- ScreenPtr pScreen = pOld->screen;
-- SetupScreen(pScreen);
-+
-+ SetupScreen(pScreen);
- XF86VidModeEventPtr pEv, *pPrev;
-
- if (!pPriv)
-- return TRUE;
-+ return TRUE;
- for (pPrev = &pPriv->events; pEv = *pPrev; pPrev = &pEv->next)
- if (pEv == pOld)
- break;
- if (!pEv)
-- return TRUE;
-+ return TRUE;
- *pPrev = pEv->next;
-- free(pEv);
-- CheckScreenPrivate(pScreen);
-- return TRUE;
--} static void
-- SendXF86VidModeNotify(ScreenPtr pScreen, int state, Bool forced) {
-+ free(pEv);
-+ CheckScreenPrivate(pScreen);
-+ return TRUE;
-+}
-+
-+static void
-+SendXF86VidModeNotify(ScreenPtr pScreen, int state, Bool forced)
-+{
- XF86VidModeScreenPrivatePtr pPriv;
- XF86VidModeEventPtr pEv;
- unsigned long mask;
- xXF86VidModeNotifyEvent ev;
- int kind;
-
-- UpdateCurrentTimeIf();
-- mask = XF86VidModeNotifyMask;
-- pScreen = screenInfo.screens[pScreen->myNum];
-- pPriv = GetScreenPrivate(pScreen);
-+ UpdateCurrentTimeIf();
-+ mask = XF86VidModeNotifyMask;
-+ pScreen = screenInfo.screens[pScreen->myNum];
-+ pPriv = GetScreenPrivate(pScreen);
- if (!pPriv)
-- return;
-- kind = XF86VidModeModeChange;
-+ return;
-+ kind = XF86VidModeModeChange;
- for (pEv = pPriv->events; pEv; pEv = pEv->next) {
- if (!(pEv->mask & mask))
- continue;
-@@ -251,8 +263,10 @@ static int
- ev.forced = forced;
- WriteEventsToClient(pEv->client, 1, (xEvent *) &ev);
- }} static void
-- SXF86VidModeNotifyEvent(xXF86VidModeNotifyEvent * from,
-- xXF86VidModeNotifyEvent * to) {
-+
-+SXF86VidModeNotifyEvent(xXF86VidModeNotifyEvent * from,
-+ xXF86VidModeNotifyEvent * to)
-+{
- to->type = from->type;
- to->state = from->state;
- cpswaps(from->sequenceNumber, to->sequenceNumber);
-@@ -264,29 +278,31 @@ static int
- #endif
-
- static int
-- ProcXF86VidModeQueryVersion(ClientPtr client) {
-+ProcXF86VidModeQueryVersion(ClientPtr client)
-+{
- xXF86VidModeQueryVersionReply rep;
-
-- DEBUG_P("XF86VidModeQueryVersion");
-+ DEBUG_P("XF86VidModeQueryVersion");
-
-- REQUEST_SIZE_MATCH(xXF86VidModeQueryVersionReq);
-- rep.type = X_Reply;
-- rep.length = 0;
-- rep.sequenceNumber = client->sequence;
-- rep.majorVersion = SERVER_XF86VIDMODE_MAJOR_VERSION;
-- rep.minorVersion = SERVER_XF86VIDMODE_MINOR_VERSION;
-+ REQUEST_SIZE_MATCH(xXF86VidModeQueryVersionReq);
-+ rep.type = X_Reply;
-+ rep.length = 0;
-+ rep.sequenceNumber = client->sequence;
-+ rep.majorVersion = SERVER_XF86VIDMODE_MAJOR_VERSION;
-+ rep.minorVersion = SERVER_XF86VIDMODE_MINOR_VERSION;
- if (client->swapped) {
- swaps(&rep.sequenceNumber);
- swapl(&rep.length);
- swaps(&rep.majorVersion);
- swaps(&rep.minorVersion);
-- } WriteToClient(client, sizeof(xXF86VidModeQueryVersionReply),
-- (char *) &rep);
-+ }
-+ WriteToClient(client, sizeof(xXF86VidModeQueryVersionReply), (char *) &rep);
- return Success;
++ if (emulate_pointer)
++ UpdateDeviceState(dev, &ev->device_event);
}
- static int
-- ProcXF86VidModeGetModeLine(ClientPtr client) {
-+ProcXF86VidModeGetModeLine(ClientPtr client)
-+{
- REQUEST(xXF86VidModeGetModeLineReq);
- xXF86VidModeGetModeLineReply rep;
- xXF86OldVidModeGetModeLineReply oldrep;
-@@ -294,11 +310,11 @@ static int
- int dotClock;
- int ver;
-
-- DEBUG_P("XF86VidModeGetModeline");
-+ DEBUG_P("XF86VidModeGetModeline");
-
-- ver = ClientMajorVersion(client);
-- REQUEST_SIZE_MATCH(xXF86VidModeGetModeLineReq);
-- rep.type = X_Reply;
-+ ver = ClientMajorVersion(client);
-+ REQUEST_SIZE_MATCH(xXF86VidModeGetModeLineReq);
-+ rep.type = X_Reply;
- if (ver < 2) {
- rep.length = bytes_to_int32(SIZEOF(xXF86OldVidModeGetModeLineReply) -
- SIZEOF(xGenericReply));
-@@ -386,7 +402,8 @@ static int
- }
-
- static int
-- ProcXF86VidModeGetAllModeLines(ClientPtr client) {
-+ProcXF86VidModeGetAllModeLines(ClientPtr client)
-+{
- REQUEST(xXF86VidModeGetAllModeLinesReq);
- xXF86VidModeGetAllModeLinesReply rep;
- xXF86VidModeModeInfo mdinf;
-@@ -395,38 +412,39 @@ static int
- int modecount, dotClock;
- int ver;
-
-- DEBUG_P("XF86VidModeGetAllModelines");
-+ DEBUG_P("XF86VidModeGetAllModelines");
-
-- REQUEST_SIZE_MATCH(xXF86VidModeGetAllModeLinesReq);
-+ REQUEST_SIZE_MATCH(xXF86VidModeGetAllModeLinesReq);
-
- if (stuff->screen >= screenInfo.numScreens)
-- return BadValue;
-+ return BadValue;
-
-- ver = ClientMajorVersion(client);
-+ ver = ClientMajorVersion(client);
-
-- modecount = VidModeGetNumOfModes(stuff->screen);
-+ modecount = VidModeGetNumOfModes(stuff->screen);
- if (modecount < 1)
-- return VidModeErrorBase + XF86VidModeExtensionDisabled;
-+ return VidModeErrorBase + XF86VidModeExtensionDisabled;
-
- if (!VidModeGetFirstModeline(stuff->screen, &mode, &dotClock))
-- return BadValue;
-+ return BadValue;
-
-- rep.type = X_Reply;
-- rep.length = SIZEOF(xXF86VidModeGetAllModeLinesReply) -
-+ rep.type = X_Reply;
-+ rep.length = SIZEOF(xXF86VidModeGetAllModeLinesReply) -
- SIZEOF(xGenericReply);
- if (ver < 2)
-- rep.length += modecount * sizeof(xXF86OldVidModeModeInfo);
-+ rep.length += modecount * sizeof(xXF86OldVidModeModeInfo);
- else
-- rep.length += modecount * sizeof(xXF86VidModeModeInfo);
-- rep.length >>= 2;
-- rep.sequenceNumber = client->sequence;
-- rep.modecount = modecount;
-+ rep.length += modecount * sizeof(xXF86VidModeModeInfo);
-+ rep.length >>= 2;
-+ rep.sequenceNumber = client->sequence;
-+ rep.modecount = modecount;
- if (client->swapped) {
- swaps(&rep.sequenceNumber);
- swapl(&rep.length);
- swapl(&rep.modecount);
-- } WriteToClient(client, sizeof(xXF86VidModeGetAllModeLinesReply),
-- (char *) &rep);
-+ }
-+ WriteToClient(client, sizeof(xXF86VidModeGetAllModeLinesReply),
-+ (char *) &rep);
-
- do {
- mdinf.dotclock = dotClock;
-@@ -492,7 +510,8 @@ static int
- && VidModeGetModeValue(mode, VIDMODE_FLAGS) == stuff->flags )
-
- static int
-- ProcXF86VidModeAddModeLine(ClientPtr client) {
-+ProcXF86VidModeAddModeLine(ClientPtr client)
-+{
- REQUEST(xXF86VidModeAddModeLineReq);
- xXF86OldVidModeAddModeLineReq *oldstuff =
- (xXF86OldVidModeAddModeLineReq *) client->requestBuffer;
-@@ -502,9 +521,9 @@ static int
- int dotClock;
- int ver;
-
-- DEBUG_P("XF86VidModeAddModeline");
-+ DEBUG_P("XF86VidModeAddModeline");
-
-- ver = ClientMajorVersion(client);
-+ ver = ClientMajorVersion(client);
- if (ver < 2) {
- /* convert from old format */
- stuff = &newstuff;
-@@ -533,7 +552,8 @@ static int
- stuff->after_vsyncend = oldstuff->after_vsyncend;
- stuff->after_vtotal = oldstuff->after_vtotal;
- stuff->after_flags = oldstuff->after_flags;
-- } if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) {
-+ }
-+ if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) {
- ErrorF("AddModeLine - scrn: %d clock: %ld\n",
- (int) stuff->screen, (unsigned long) stuff->dotclock);
- ErrorF("AddModeLine - hdsp: %d hbeg: %d hend: %d httl: %d\n",
-@@ -654,7 +674,8 @@ static int
- }
-
- static int
-- ProcXF86VidModeDeleteModeLine(ClientPtr client) {
-+ProcXF86VidModeDeleteModeLine(ClientPtr client)
-+{
- REQUEST(xXF86VidModeDeleteModeLineReq);
- xXF86OldVidModeDeleteModeLineReq *oldstuff =
- (xXF86OldVidModeDeleteModeLineReq *) client->requestBuffer;
-@@ -663,9 +684,9 @@ static int
- int len, dotClock;
- int ver;
-
-- DEBUG_P("XF86VidModeDeleteModeline");
-+ DEBUG_P("XF86VidModeDeleteModeline");
-
-- ver = ClientMajorVersion(client);
-+ ver = ClientMajorVersion(client);
- if (ver < 2) {
- /* convert from old format */
- stuff = &newstuff;
-@@ -683,7 +704,8 @@ static int
- stuff->vtotal = oldstuff->vtotal;
- stuff->flags = oldstuff->flags;
- stuff->privsize = oldstuff->privsize;
-- } if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) {
-+ }
-+ if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) {
- ErrorF("DeleteModeLine - scrn: %d clock: %ld\n",
- (int) stuff->screen, (unsigned long) stuff->dotclock);
- ErrorF(" hdsp: %d hbeg: %d hend: %d httl: %d\n",
-@@ -777,7 +799,8 @@ static int
- }
-
- static int
-- ProcXF86VidModeModModeLine(ClientPtr client) {
-+ProcXF86VidModeModModeLine(ClientPtr client)
-+{
- REQUEST(xXF86VidModeModModeLineReq);
- xXF86OldVidModeModModeLineReq *oldstuff =
- (xXF86OldVidModeModModeLineReq *) client->requestBuffer;
-@@ -786,9 +809,9 @@ static int
- int len, dotClock;
- int ver;
-
-- DEBUG_P("XF86VidModeModModeline");
-+ DEBUG_P("XF86VidModeModModeline");
-
-- ver = ClientMajorVersion(client);
-+ ver = ClientMajorVersion(client);
- if (ver < 2) {
- /* convert from old format */
- stuff = &newstuff;
-@@ -805,7 +828,8 @@ static int
- stuff->vtotal = oldstuff->vtotal;
- stuff->flags = oldstuff->flags;
- stuff->privsize = oldstuff->privsize;
-- } if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) {
-+ }
-+ if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) {
- ErrorF("ModModeLine - scrn: %d hdsp: %d hbeg: %d hend: %d httl: %d\n",
- (int) stuff->screen, stuff->hdisplay, stuff->hsyncstart,
- stuff->hsyncend, stuff->htotal);
-@@ -903,7 +927,8 @@ static int
- }
-
- static int
-- ProcXF86VidModeValidateModeLine(ClientPtr client) {
-+ProcXF86VidModeValidateModeLine(ClientPtr client)
-+{
- REQUEST(xXF86VidModeValidateModeLineReq);
- xXF86OldVidModeValidateModeLineReq *oldstuff =
- (xXF86OldVidModeValidateModeLineReq *) client->requestBuffer;
-@@ -913,9 +938,9 @@ static int
- int len, status, dotClock;
- int ver;
-
-- DEBUG_P("XF86VidModeValidateModeline");
-+ DEBUG_P("XF86VidModeValidateModeline");
-
-- ver = ClientMajorVersion(client);
-+ ver = ClientMajorVersion(client);
- if (ver < 2) {
- /* convert from old format */
- stuff = &newstuff;
-@@ -933,7 +958,8 @@ static int
- stuff->vtotal = oldstuff->vtotal;
- stuff->flags = oldstuff->flags;
- stuff->privsize = oldstuff->privsize;
-- } if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) {
-+ }
-+ if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) {
- ErrorF("ValidateModeLine - scrn: %d clock: %ld\n",
- (int) stuff->screen, (unsigned long) stuff->dotclock);
- ErrorF(" hdsp: %d hbeg: %d hend: %d httl: %d\n",
-@@ -1022,7 +1048,8 @@ static int
- }
-
- static int
-- ProcXF86VidModeSwitchMode(ClientPtr client) {
-+ProcXF86VidModeSwitchMode(ClientPtr client)
-+{
- REQUEST(xXF86VidModeSwitchModeReq);
-
- DEBUG_P("XF86VidModeSwitchMode");
-@@ -1035,8 +1062,11 @@ static int
- VidModeZoomViewport(stuff->screen, (short) stuff->zoom);
-
- return Success;
--} static int
-- ProcXF86VidModeSwitchToMode(ClientPtr client) {
-+}
-+
-+static int
-+ProcXF86VidModeSwitchToMode(ClientPtr client)
-+{
- REQUEST(xXF86VidModeSwitchToModeReq);
- xXF86OldVidModeSwitchToModeReq *oldstuff =
- (xXF86OldVidModeSwitchToModeReq *) client->requestBuffer;
-@@ -1045,9 +1075,9 @@ static int
- int len, dotClock;
- int ver;
-
-- DEBUG_P("XF86VidModeSwitchToMode");
-+ DEBUG_P("XF86VidModeSwitchToMode");
+ /**
+@@ -1864,6 +1868,11 @@ DeliverTouchEndEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent *ev,
+ goto out;
+ }
-- ver = ClientMajorVersion(client);
-+ ver = ClientMajorVersion(client);
- if (ver < 2) {
- /* convert from old format */
- stuff = &newstuff;
-@@ -1065,7 +1095,8 @@ static int
- stuff->vtotal = oldstuff->vtotal;
- stuff->flags = oldstuff->flags;
- stuff->privsize = oldstuff->privsize;
-- } if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) {
++ if (listener->state == LISTENER_AWAITING_BEGIN) {
++ listener->state = LISTENER_HAS_END;
++ goto out;
+ }
-+ if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) {
- ErrorF("SwitchToMode - scrn: %d clock: %ld\n",
- (int) stuff->screen, (unsigned long) stuff->dotclock);
- ErrorF(" hdsp: %d hbeg: %d hend: %d httl: %d\n",
-@@ -1138,7 +1169,8 @@ static int
- }
-
- static int
-- ProcXF86VidModeLockModeSwitch(ClientPtr client) {
-+ProcXF86VidModeLockModeSwitch(ClientPtr client)
-+{
- REQUEST(xXF86VidModeLockModeSwitchReq);
-
- REQUEST_SIZE_MATCH(xXF86VidModeLockModeSwitchReq);
-@@ -1152,53 +1184,57 @@ static int
- return VidModeErrorBase + XF86VidModeZoomLocked;
-
- return Success;
--} static int
-- ProcXF86VidModeGetMonitor(ClientPtr client) {
-+}
+
-+static int
-+ProcXF86VidModeGetMonitor(ClientPtr client)
-+{
- REQUEST(xXF86VidModeGetMonitorReq);
- xXF86VidModeGetMonitorReply rep;
- CARD32 *hsyncdata, *vsyncdata;
- int i, nHsync, nVrefresh;
- pointer monitor;
-
-- DEBUG_P("XF86VidModeGetMonitor");
-+ DEBUG_P("XF86VidModeGetMonitor");
-
-- REQUEST_SIZE_MATCH(xXF86VidModeGetMonitorReq);
-+ REQUEST_SIZE_MATCH(xXF86VidModeGetMonitorReq);
-
- if (stuff->screen >= screenInfo.numScreens)
-- return BadValue;
-+ return BadValue;
-
- if (!VidModeGetMonitor(stuff->screen, &monitor))
-- return BadValue;
-+ return BadValue;
-
-- nHsync = VidModeGetMonitorValue(monitor, VIDMODE_MON_NHSYNC, 0).i;
-- nVrefresh = VidModeGetMonitorValue(monitor, VIDMODE_MON_NVREFRESH, 0).i;
-+ nHsync = VidModeGetMonitorValue(monitor, VIDMODE_MON_NHSYNC, 0).i;
-+ nVrefresh = VidModeGetMonitorValue(monitor, VIDMODE_MON_NVREFRESH, 0).i;
+ /* Event in response to reject */
+ if (ev->device_event.flags & TOUCH_REJECT) {
+ if (listener->state != LISTENER_HAS_END)
+diff --git a/Xi/xiselectev.c b/Xi/xiselectev.c
+index 0e45cb8..ab1b624 100644
+--- a/Xi/xiselectev.c
++++ b/Xi/xiselectev.c
+@@ -180,8 +180,13 @@ ProcXISelectEvents(ClientPtr client)
+ if (CLIENT_ID(iclient->resource) == client->index)
+ continue;
+
+- dixLookupDevice(&tmp, evmask->deviceid, serverClient,
+- DixReadAccess);
++ if (evmask->deviceid == XIAllDevices)
++ tmp = inputInfo.all_devices;
++ else if (evmask->deviceid == XIAllMasterDevices)
++ tmp = inputInfo.all_master_devices;
++ else
++ dixLookupDevice(&tmp, evmask->deviceid, serverClient,
++ DixReadAccess);
+ if (!tmp)
+ return BadImplementation; /* this shouldn't happen */
+
+diff --git a/config/udev.c b/config/udev.c
+index c2d00bb..454838f 100644
+--- a/config/udev.c
++++ b/config/udev.c
+@@ -300,9 +300,15 @@ wakeup_handler(pointer data, int err, pointer read_mask)
+ return;
+ action = udev_device_get_action(udev_device);
+ if (action) {
+- if (!strcmp(action, "add") || !strcmp(action, "change")) {
++ if (!strcmp(action, "add")) {
+ device_removed(udev_device);
+ device_added(udev_device);
++ } else if (!strcmp(action, "change")) {
++ /* ignore change for the drm devices */
++ if (strcmp(udev_device_get_subsystem(udev_device), "drm")) {
++ device_removed(udev_device);
++ device_added(udev_device);
++ }
+ }
+ else if (!strcmp(action, "remove"))
+ device_removed(udev_device);
+diff --git a/dix/devices.c b/dix/devices.c
+index 9cf04ed..fd4916a 100644
+--- a/dix/devices.c
++++ b/dix/devices.c
+@@ -306,6 +306,9 @@ AddInputDevice(ClientPtr client, DeviceProc deviceProc, Bool autoStart)
+ /* unity matrix */
+ memset(transform, 0, sizeof(transform));
+ transform[0] = transform[4] = transform[8] = 1.0f;
++ dev->transform.m[0][0] = 1.0;
++ dev->transform.m[1][1] = 1.0;
++ dev->transform.m[2][2] = 1.0;
+
+ XIChangeDeviceProperty(dev, XIGetKnownProperty(XI_PROP_TRANSFORM),
+ XIGetKnownProperty(XATOM_FLOAT), 32,
+@@ -440,6 +443,7 @@ DisableDevice(DeviceIntPtr dev, BOOL sendevent)
+ if (*prev != dev)
+ return FALSE;
-- rep.type = X_Reply;
-+ rep.type = X_Reply;
- if ((char *) (VidModeGetMonitorValue(monitor, VIDMODE_MON_VENDOR, 0)).ptr)
-- rep.vendorLength = strlen((char *) (VidModeGetMonitorValue(monitor,
-- VIDMODE_MON_VENDOR,
-- 0)).ptr);
-+ rep.vendorLength = strlen((char *) (VidModeGetMonitorValue(monitor,
-+ VIDMODE_MON_VENDOR,
-+ 0)).ptr);
++ TouchEndPhysicallyActiveTouches(dev);
+ ReleaseButtonsAndKeys(dev);
+ SyncRemoveDeviceIdleTime(dev->idle_counter);
+ dev->idle_counter = NULL;
+diff --git a/dix/events.c b/dix/events.c
+index 3b40446..ddb5b34 100644
+--- a/dix/events.c
++++ b/dix/events.c
+@@ -1555,11 +1555,13 @@ ActivateKeyboardGrab(DeviceIntPtr keybd, GrabPtr grab, TimeStamp time,
+ WindowPtr oldWin;
+
+ /* slave devices need to float for the duration of the grab. */
+- if (grab->grabtype == XI2 &&
++ if (grab->grabtype == XI2 && keybd->enabled &&
+ !(passive & ImplicitGrabMask) && !IsMaster(keybd))
+ DetachFromMaster(keybd);
+
+- if (grabinfo->grab)
++ if (!keybd->enabled)
++ oldWin = NULL;
++ else if (grabinfo->grab)
+ oldWin = grabinfo->grab->window;
+ else if (keybd->focus)
+ oldWin = keybd->focus->win;
+@@ -1569,7 +1571,8 @@ ActivateKeyboardGrab(DeviceIntPtr keybd, GrabPtr grab, TimeStamp time,
+ oldWin = keybd->focus->win;
+ if (keybd->valuator)
+ keybd->valuator->motionHintWindow = NullWindow;
+- DoFocusEvents(keybd, oldWin, grab->window, NotifyGrab);
++ if (oldWin)
++ DoFocusEvents(keybd, oldWin, grab->window, NotifyGrab);
+ if (syncEvents.playingEvents)
+ grabinfo->grabTime = syncEvents.time;
else
-- rep.vendorLength = 0;
-+ rep.vendorLength = 0;
- if ((char *) (VidModeGetMonitorValue(monitor, VIDMODE_MON_MODEL, 0)).ptr)
-- rep.modelLength = strlen((char *) (VidModeGetMonitorValue(monitor,
-- VIDMODE_MON_MODEL,
-- 0)).ptr);
-+ rep.modelLength = strlen((char *) (VidModeGetMonitorValue(monitor,
-+ VIDMODE_MON_MODEL,
-+ 0)).ptr);
- else
-- rep.modelLength = 0;
-- rep.length =
-+ rep.modelLength = 0;
-+ rep.length =
- bytes_to_int32(SIZEOF(xXF86VidModeGetMonitorReply) -
- SIZEOF(xGenericReply) + (nHsync +
- nVrefresh) * sizeof(CARD32) +
- pad_to_int32(rep.vendorLength) +
- pad_to_int32(rep.modelLength));
-- rep.sequenceNumber = client->sequence;
-- rep.nhsync = nHsync;
-- rep.nvsync = nVrefresh;
-- hsyncdata = malloc(nHsync * sizeof(CARD32));
-+ rep.sequenceNumber = client->sequence;
-+ rep.nhsync = nHsync;
-+ rep.nvsync = nVrefresh;
-+ hsyncdata = malloc(nHsync * sizeof(CARD32));
- if (!hsyncdata) {
- return BadAlloc;
-- } vsyncdata = malloc(nVrefresh * sizeof(CARD32));
-+ }
-+ vsyncdata = malloc(nVrefresh * sizeof(CARD32));
-
- if (!vsyncdata) {
- free(hsyncdata);
-@@ -1208,19 +1244,18 @@ static int
- for (i = 0; i < nHsync; i++) {
- hsyncdata[i] = (unsigned short) (VidModeGetMonitorValue(monitor,
- VIDMODE_MON_HSYNC_LO,
-- i)).
-- f | (unsigned
-- short) (VidModeGetMonitorValue(monitor, VIDMODE_MON_HSYNC_HI,
-- i)).f << 16;
-+ i)).f |
-+ (unsigned
-+ short) (VidModeGetMonitorValue(monitor, VIDMODE_MON_HSYNC_HI,
-+ i)).f << 16;
- }
- for (i = 0; i < nVrefresh; i++) {
- vsyncdata[i] = (unsigned short) (VidModeGetMonitorValue(monitor,
- VIDMODE_MON_VREFRESH_LO,
-- i)).
-- f | (unsigned
-- short) (VidModeGetMonitorValue(monitor,
-- VIDMODE_MON_VREFRESH_HI,
-- i)).f << 16;
-+ i)).f |
-+ (unsigned
-+ short) (VidModeGetMonitorValue(monitor, VIDMODE_MON_VREFRESH_HI,
-+ i)).f << 16;
+@@ -1590,13 +1593,10 @@ DeactivateKeyboardGrab(DeviceIntPtr keybd)
+ {
+ GrabPtr grab = keybd->deviceGrab.grab;
+ DeviceIntPtr dev;
+- WindowPtr focusWin = keybd->focus ? keybd->focus->win
+- : keybd->spriteInfo->sprite->win;
++ WindowPtr focusWin;
+ Bool wasImplicit = (keybd->deviceGrab.fromPassiveGrab &&
+ keybd->deviceGrab.implicitGrab);
+
+- if (focusWin == FollowKeyboardWin)
+- focusWin = inputInfo.keyboard->focus->win;
+ if (keybd->valuator)
+ keybd->valuator->motionHintWindow = NullWindow;
+ keybd->deviceGrab.grab = NullGrab;
+@@ -1607,6 +1607,17 @@ DeactivateKeyboardGrab(DeviceIntPtr keybd)
+ if (dev->deviceGrab.sync.other == grab)
+ dev->deviceGrab.sync.other = NullGrab;
}
-
- if (client->swapped) {
-@@ -1249,38 +1284,40 @@ static int
- }
-
- static int
-- ProcXF86VidModeGetViewPort(ClientPtr client) {
-+ProcXF86VidModeGetViewPort(ClientPtr client)
-+{
- REQUEST(xXF86VidModeGetViewPortReq);
- xXF86VidModeGetViewPortReply rep;
- int x, y;
-
-- DEBUG_P("XF86VidModeGetViewPort");
-+ DEBUG_P("XF86VidModeGetViewPort");
-
-- REQUEST_SIZE_MATCH(xXF86VidModeGetViewPortReq);
-+ REQUEST_SIZE_MATCH(xXF86VidModeGetViewPortReq);
-
- if (stuff->screen >= screenInfo.numScreens)
-- return BadValue;
-+ return BadValue;
-
-- rep.type = X_Reply;
-- rep.length = 0;
-- rep.sequenceNumber = client->sequence;
-+ rep.type = X_Reply;
-+ rep.length = 0;
-+ rep.sequenceNumber = client->sequence;
-
-- VidModeGetViewPort(stuff->screen, &x, &y);
-- rep.x = x;
-- rep.y = y;
-+ VidModeGetViewPort(stuff->screen, &x, &y);
-+ rep.x = x;
-+ rep.y = y;
-
- if (client->swapped) {
- swaps(&rep.sequenceNumber);
- swapl(&rep.length);
- swapl(&rep.x);
- swapl(&rep.y);
-- } WriteToClient(client, SIZEOF(xXF86VidModeGetViewPortReply),
-- (char *) &rep);
-+ }
-+ WriteToClient(client, SIZEOF(xXF86VidModeGetViewPortReply), (char *) &rep);
- return Success;
- }
-
- static int
-- ProcXF86VidModeSetViewPort(ClientPtr client) {
-+ProcXF86VidModeSetViewPort(ClientPtr client)
-+{
- REQUEST(xXF86VidModeSetViewPortReq);
-
- DEBUG_P("XF86VidModeSetViewPort");
-@@ -1294,8 +1331,11 @@ static int
- return BadValue;
-
- return Success;
--} static int
-- ProcXF86VidModeGetDotClocks(ClientPtr client) {
-+}
+
-+static int
-+ProcXF86VidModeGetDotClocks(ClientPtr client)
-+{
- REQUEST(xXF86VidModeGetDotClocksReq);
- xXF86VidModeGetDotClocksReply rep;
- int n;
-@@ -1304,31 +1344,33 @@ static int
- int *Clocks = NULL;
- Bool ClockProg;
-
-- DEBUG_P("XF86VidModeGetDotClocks");
-+ DEBUG_P("XF86VidModeGetDotClocks");
-
-- REQUEST_SIZE_MATCH(xXF86VidModeGetDotClocksReq);
-+ REQUEST_SIZE_MATCH(xXF86VidModeGetDotClocksReq);
-
- if (stuff->screen >= screenInfo.numScreens)
-- return BadValue;
-+ return BadValue;
-
-- numClocks = VidModeGetNumOfClocks(stuff->screen, &ClockProg);
-+ numClocks = VidModeGetNumOfClocks(stuff->screen, &ClockProg);
-
-- rep.type = X_Reply;
-- rep.length = bytes_to_int32(SIZEOF(xXF86VidModeGetDotClocksReply)
-- - SIZEOF(xGenericReply) + numClocks);
-- rep.sequenceNumber = client->sequence;
-- rep.clocks = numClocks;
-- rep.maxclocks = MAXCLOCKS;
-- rep.flags = 0;
-+ rep.type = X_Reply;
-+ rep.length = bytes_to_int32(SIZEOF(xXF86VidModeGetDotClocksReply)
-+ - SIZEOF(xGenericReply) + numClocks);
-+ rep.sequenceNumber = client->sequence;
-+ rep.clocks = numClocks;
-+ rep.maxclocks = MAXCLOCKS;
-+ rep.flags = 0;
-
- if (!ClockProg) {
- Clocks = malloc(numClocks * sizeof(int));
- if (!Clocks)
-- return BadValue;
-+ return BadValue;
- if (!VidModeGetClocks(stuff->screen, Clocks)) {
- free(Clocks);
- return BadValue;
-- }} if (ClockProg) {
-+ }
-+ }
-+ if (ClockProg) {
- rep.flags |= CLKFLAG_PROGRAMABLE;
- }
- if (client->swapped) {
-@@ -1356,7 +1398,8 @@ static int
- }
-
- static int
-- ProcXF86VidModeSetGamma(ClientPtr client) {
-+ProcXF86VidModeSetGamma(ClientPtr client)
-+{
- REQUEST(xXF86VidModeSetGammaReq);
-
- DEBUG_P("XF86VidModeSetGamma");
-@@ -1372,79 +1415,89 @@ static int
- return BadValue;
-
- return Success;
--} static int
-- ProcXF86VidModeGetGamma(ClientPtr client) {
-+}
++ if (keybd->focus)
++ focusWin = keybd->focus->win;
++ else if (keybd->spriteInfo->sprite)
++ focusWin = keybd->spriteInfo->sprite->win;
++ else
++ focusWin = NullWindow;
+
-+static int
-+ProcXF86VidModeGetGamma(ClientPtr client)
-+{
- REQUEST(xXF86VidModeGetGammaReq);
- xXF86VidModeGetGammaReply rep;
- float red, green, blue;
-
-- DEBUG_P("XF86VidModeGetGamma");
-+ DEBUG_P("XF86VidModeGetGamma");
++ if (focusWin == FollowKeyboardWin)
++ focusWin = inputInfo.keyboard->focus->win;
++
+ DoFocusEvents(keybd, grab->window, focusWin, NotifyUngrab);
-- REQUEST_SIZE_MATCH(xXF86VidModeGetGammaReq);
-+ REQUEST_SIZE_MATCH(xXF86VidModeGetGammaReq);
+ if (!wasImplicit && grab->grabtype == XI2)
+diff --git a/dix/getevents.c b/dix/getevents.c
+index 4e62507..8b4379d 100644
+--- a/dix/getevents.c
++++ b/dix/getevents.c
+@@ -896,9 +896,9 @@ scale_to_desktop(DeviceIntPtr dev, ValuatorMask *mask,
+
+ /* scale x&y to desktop coordinates */
+ *screenx = rescaleValuatorAxis(x, dev->valuator->axes + 0, NULL,
+- screenInfo.x, screenInfo.width);
++ screenInfo.x, screenInfo.width - 1);
+ *screeny = rescaleValuatorAxis(y, dev->valuator->axes + 1, NULL,
+- screenInfo.y, screenInfo.height);
++ screenInfo.y, screenInfo.height - 1);
+
+ *devx = x;
+ *devy = y;
+@@ -1400,8 +1400,9 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
+ coordinates were.
+ */
+ if (flags & POINTER_SCREEN) {
+- screenx = sx;
+- screeny = sy;
++ scr = miPointerGetScreen(pDev);
++ screenx = sx + scr->x;
++ screeny = sy + scr->y;
+ }
- if (stuff->screen >= screenInfo.numScreens)
-- return BadValue;
-+ return BadValue;
+ scr = positionSprite(pDev, (flags & POINTER_ABSOLUTE) ? Absolute : Relative,
+diff --git a/dix/touch.c b/dix/touch.c
+index 497ad7d..5f77be5 100644
+--- a/dix/touch.c
++++ b/dix/touch.c
+@@ -572,8 +572,8 @@ TouchBuildSprite(DeviceIntPtr sourcedev, TouchPointInfoPtr ti,
+ return FALSE;
-- rep.type = X_Reply;
-- rep.length = 0;
-- rep.sequenceNumber = client->sequence;
-+ rep.type = X_Reply;
-+ rep.length = 0;
-+ rep.sequenceNumber = client->sequence;
- if (!VidModeGetGamma(stuff->screen, &red, &green, &blue))
-- return BadValue;
-- rep.red = (CARD32) (red * 10000.);
-- rep.green = (CARD32) (green * 10000.);
-- rep.blue = (CARD32) (blue * 10000.);
-+ return BadValue;
-+ rep.red = (CARD32) (red * 10000.);
-+ rep.green = (CARD32) (green * 10000.);
-+ rep.blue = (CARD32) (blue * 10000.);
- if (client->swapped) {
- swaps(&rep.sequenceNumber);
- swapl(&rep.length);
- swapl(&rep.red);
- swapl(&rep.green);
- swapl(&rep.blue);
-- } WriteToClient(client, sizeof(xXF86VidModeGetGammaReply), (char *) &rep);
-+ }
-+ WriteToClient(client, sizeof(xXF86VidModeGetGammaReply), (char *) &rep);
+ /* Mark which grabs/event selections we're delivering to: max one grab per
+- * window plus the bottom-most event selection. */
+- ti->listeners = calloc(sprite->spriteTraceGood + 1, sizeof(*ti->listeners));
++ * window plus the bottom-most event selection, plus any active grab. */
++ ti->listeners = calloc(sprite->spriteTraceGood + 2, sizeof(*ti->listeners));
+ if (!ti->listeners) {
+ sprite->spriteTraceGood = 0;
+ return FALSE;
+@@ -1029,3 +1029,31 @@ TouchAcceptReject(ClientPtr client, DeviceIntPtr dev, int mode,
- return Success;
+ return TouchListenerAcceptReject(dev, ti, i, mode);
}
-
- static int
-- ProcXF86VidModeSetGammaRamp(ClientPtr client) {
-+ProcXF86VidModeSetGammaRamp(ClientPtr client)
++
++/**
++ * End physically active touches for a device.
++ */
++void
++TouchEndPhysicallyActiveTouches(DeviceIntPtr dev)
+{
- CARD16 *r, *g, *b;
- int length;
-- REQUEST(xXF86VidModeSetGammaRampReq);
++ InternalEvent *eventlist = InitEventList(GetMaximumEventsNum());
++ int i;
+
-+ REQUEST(xXF86VidModeSetGammaRampReq);
-
- if (stuff->screen >= screenInfo.numScreens)
-- return BadValue;
-+ return BadValue;
-
- if (stuff->size != VidModeGetGammaRampSize(stuff->screen))
-- return BadValue;
-+ return BadValue;
-
-- length = (stuff->size + 1) & ~1;
-+ length = (stuff->size + 1) & ~1;
-
-- REQUEST_FIXED_SIZE(xXF86VidModeSetGammaRampReq, length * 6);
-+ REQUEST_FIXED_SIZE(xXF86VidModeSetGammaRampReq, length * 6);
-
-- r = (CARD16 *) &stuff[1];
-- g = r + length;
-- b = g + length;
-+ r = (CARD16 *) &stuff[1];
-+ g = r + length;
-+ b = g + length;
-
- if (!VidModeSetGammaRamp(stuff->screen, stuff->size, r, g, b))
-- return BadValue;
-+ return BadValue;
-
-- return Success;
--} static int
-- ProcXF86VidModeGetGammaRamp(ClientPtr client) {
-+ return Success;
-+}
++ OsBlockSignals();
++ mieqProcessInputEvents();
++ for (i = 0; i < dev->last.num_touches; i++) {
++ DDXTouchPointInfoPtr ddxti = dev->last.touches + i;
+
-+static int
-+ProcXF86VidModeGetGammaRamp(ClientPtr client)
-+{
- CARD16 *ramp = NULL;
- int length;
- size_t ramplen = 0;
- xXF86VidModeGetGammaRampReply rep;
-- REQUEST(xXF86VidModeGetGammaRampReq);
++ if (ddxti->active) {
++ int j;
++ int nevents = GetTouchEvents(eventlist, dev, ddxti->ddx_id,
++ XI_TouchEnd, 0, NULL);
+
-+ REQUEST(xXF86VidModeGetGammaRampReq);
-
- if (stuff->screen >= screenInfo.numScreens)
-- return BadValue;
-+ return BadValue;
-
- if (stuff->size != VidModeGetGammaRampSize(stuff->screen))
-- return BadValue;
-+ return BadValue;
-
-- REQUEST_SIZE_MATCH(xXF86VidModeGetGammaRampReq);
-+ REQUEST_SIZE_MATCH(xXF86VidModeGetGammaRampReq);
-
-- length = (stuff->size + 1) & ~1;
-+ length = (stuff->size + 1) & ~1;
-
- if (stuff->size) {
- ramplen = length * 3 * sizeof(CARD16);
-@@ -1455,7 +1508,9 @@ static int
- ramp, ramp + length, ramp + (length * 2))) {
- free(ramp);
- return BadValue;
-- }} rep.type = X_Reply;
++ for (j = 0; j < nevents; j++)
++ mieqProcessDeviceEvent(dev, eventlist + j, NULL);
+ }
+ }
-+ rep.type = X_Reply;
- rep.length = (length >> 1) * 3;
- rep.sequenceNumber = client->sequence;
- rep.size = stuff->size;
-@@ -1476,47 +1531,53 @@ static int
- }
-
- static int
-- ProcXF86VidModeGetGammaRampSize(ClientPtr client) {
-+ProcXF86VidModeGetGammaRampSize(ClientPtr client)
-+{
- xXF86VidModeGetGammaRampSizeReply rep;
-- REQUEST(xXF86VidModeGetGammaRampSizeReq);
++ OsReleaseSignals();
+
-+ REQUEST(xXF86VidModeGetGammaRampSizeReq);
-
- if (stuff->screen >= screenInfo.numScreens)
-- return BadValue;
-+ return BadValue;
-
-- REQUEST_SIZE_MATCH(xXF86VidModeGetGammaRampSizeReq);
-+ REQUEST_SIZE_MATCH(xXF86VidModeGetGammaRampSizeReq);
-
-- rep.type = X_Reply;
-- rep.length = 0;
-- rep.sequenceNumber = client->sequence;
-- rep.size = VidModeGetGammaRampSize(stuff->screen);
-+ rep.type = X_Reply;
-+ rep.length = 0;
-+ rep.sequenceNumber = client->sequence;
-+ rep.size = VidModeGetGammaRampSize(stuff->screen);
- if (client->swapped) {
- swaps(&rep.sequenceNumber);
- swapl(&rep.length);
- swaps(&rep.size);
-- } WriteToClient(client, sizeof(xXF86VidModeGetGammaRampSizeReply),
-- (char *) &rep);
-+ }
-+ WriteToClient(client, sizeof(xXF86VidModeGetGammaRampSizeReply),
-+ (char *) &rep);
-
- return Success;
- }
-
- static int
-- ProcXF86VidModeGetPermissions(ClientPtr client) {
-+ProcXF86VidModeGetPermissions(ClientPtr client)
-+{
- xXF86VidModeGetPermissionsReply rep;
-- REQUEST(xXF86VidModeGetPermissionsReq);
++ FreeEventList(eventlist, GetMaximumEventsNum());
++}
+diff --git a/exa/exa_priv.h b/exa/exa_priv.h
+index ea7e7fa..2e4759d 100644
+--- a/exa/exa_priv.h
++++ b/exa/exa_priv.h
+@@ -209,6 +209,7 @@ typedef struct {
+ RegionRec srcReg;
+ RegionRec maskReg;
+ PixmapPtr srcPix;
++ PixmapPtr maskPix;
+
+ DevPrivateKeyRec pixmapPrivateKeyRec;
+ DevPrivateKeyRec gcPrivateKeyRec;
+diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c
+index 5716138..b0a0011 100644
+--- a/exa/exa_unaccel.c
++++ b/exa/exa_unaccel.c
+@@ -442,6 +442,13 @@ ExaSrcValidate(DrawablePtr pDrawable,
+ RegionPtr dst;
+ int xoff, yoff;
+
++ if (pExaScr->srcPix == pPix)
++ dst = &pExaScr->srcReg;
++ else if (pExaScr->maskPix == pPix)
++ dst = &pExaScr->maskReg;
++ else
++ return;
+
-+ REQUEST(xXF86VidModeGetPermissionsReq);
+ exaGetDrawableDeltas(pDrawable, pPix, &xoff, &yoff);
- if (stuff->screen >= screenInfo.numScreens)
-- return BadValue;
-+ return BadValue;
+ box.x1 = x + xoff;
+@@ -449,8 +456,6 @@ ExaSrcValidate(DrawablePtr pDrawable,
+ box.x2 = box.x1 + width;
+ box.y2 = box.y1 + height;
-- REQUEST_SIZE_MATCH(xXF86VidModeGetPermissionsReq);
-+ REQUEST_SIZE_MATCH(xXF86VidModeGetPermissionsReq);
-
-- rep.type = X_Reply;
-- rep.length = 0;
-- rep.sequenceNumber = client->sequence;
-- rep.permissions = XF86VM_READ_PERMISSION;
-+ rep.type = X_Reply;
-+ rep.length = 0;
-+ rep.sequenceNumber = client->sequence;
-+ rep.permissions = XF86VM_READ_PERMISSION;
- if (xf86GetVidModeEnabled() &&
- (xf86GetVidModeAllowNonLocal() || LocalClient(client))) {
- rep.permissions |= XF86VM_WRITE_PERMISSION;
-- } if (client->swapped) {
-+ }
-+ if (client->swapped) {
- swaps(&rep.sequenceNumber);
- swapl(&rep.length);
- swapl(&rep.permissions);
-@@ -1528,21 +1589,23 @@ static int
- }
-
- static int
-- ProcXF86VidModeSetClientVersion(ClientPtr client) {
-+ProcXF86VidModeSetClientVersion(ClientPtr client)
-+{
- REQUEST(xXF86VidModeSetClientVersionReq);
-
- VidModePrivPtr pPriv;
-
-- DEBUG_P("XF86VidModeSetClientVersion");
-+ DEBUG_P("XF86VidModeSetClientVersion");
-
-- REQUEST_SIZE_MATCH(xXF86VidModeSetClientVersionReq);
-+ REQUEST_SIZE_MATCH(xXF86VidModeSetClientVersionReq);
-
- if ((pPriv = VM_GETPRIV(client)) == NULL) {
- pPriv = malloc(sizeof(VidModePrivRec));
- if (!pPriv)
- return BadAlloc;
- VM_SETPRIV(client, pPriv);
-- } pPriv->major = stuff->major;
-+ }
-+ pPriv->major = stuff->major;
-
- pPriv->minor = stuff->minor;
-
-@@ -1550,85 +1613,103 @@ static int
- }
+- dst = (pExaScr->srcPix == pPix) ? &pExaScr->srcReg : &pExaScr->maskReg;
+-
+ RegionInit(&reg, &box, 1);
+ RegionUnion(dst, dst, &reg);
+ RegionUninit(&reg);
+@@ -495,16 +500,19 @@ ExaPrepareCompositeReg(ScreenPtr pScreen,
+ if (pSrc != pDst)
+ RegionTranslate(pSrc->pCompositeClip,
+ -pSrc->pDrawable->x, -pSrc->pDrawable->y);
+- }
++ } else
++ pExaScr->srcPix = NULL;
+
+ if (pMask && pMask->pDrawable) {
+ pMaskPix = exaGetDrawablePixmap(pMask->pDrawable);
+ RegionNull(&pExaScr->maskReg);
+ maskReg = &pExaScr->maskReg;
++ pExaScr->maskPix = pMaskPix;
+ if (pMask != pDst && pMask != pSrc)
+ RegionTranslate(pMask->pCompositeClip,
+ -pMask->pDrawable->x, -pMask->pDrawable->y);
+- }
++ } else
++ pExaScr->maskPix = NULL;
+
+ RegionTranslate(pDst->pCompositeClip,
+ -pDst->pDrawable->x, -pDst->pDrawable->y);
+diff --git a/hw/xfree86/common/Makefile.am b/hw/xfree86/common/Makefile.am
+index f8fcde9..532d87b 100644
+--- a/hw/xfree86/common/Makefile.am
++++ b/hw/xfree86/common/Makefile.am
+@@ -15,6 +15,7 @@ XVSDKINCS = xf86xv.h xf86xvmc.h xf86xvpriv.h
+ endif
+
+ if XF86VIDMODE
++XF86VMODESOURCES = xf86vmode.c
+ XF86VMODE_SDK = vidmodeproc.h
+ endif
+
+@@ -47,7 +48,7 @@ libcommon_la_SOURCES = xf86Configure.c xf86Bus.c xf86Config.c \
+ xf86VidMode.c xf86fbman.c xf86cmap.c \
+ xf86Helper.c xf86PM.c xf86Xinput.c xisb.c \
+ xf86Mode.c xorgHelper.c xf86Extensions.h \
+- xf86Extensions.c xf86vmode.c \
++ xf86Extensions.c $(XF86VMODESOURCES) \
+ $(XVSOURCES) $(BUSSOURCES) $(RANDRSOURCES)
+ nodist_libcommon_la_SOURCES = xf86DefModeSet.c xf86Build.h
+ libcommon_la_LIBADD = $(top_builddir)/config/libconfig.la
+diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h
+index bb2903d..74da438 100644
+--- a/hw/xfree86/common/xf86.h
++++ b/hw/xfree86/common/xf86.h
+@@ -468,4 +468,8 @@ extern _X_EXPORT ScreenPtr xf86ScrnToScreen(ScrnInfoPtr pScrn);
+ /* flags passed to xf86 allocate screen */
+ #define XF86_ALLOCATE_GPU_SCREEN 1
+
++/* Update the internal total dimensions of all ScreenRecs together */
++extern _X_EXPORT void
++xf86UpdateDesktopDimensions(void);
++
+ #endif /* _XF86_H */
+diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c
+index 6de8409..4ffbf7e 100644
+--- a/hw/xfree86/common/xf86Bus.c
++++ b/hw/xfree86/common/xf86Bus.c
+@@ -81,6 +81,8 @@ xf86CallDriverProbe(DriverPtr drv, Bool detect_only)
+ if (drv->platformProbe != NULL) {
+ foundScreen = xf86platformProbeDev(drv);
+ }
++ if (ServerIsNotSeat0())
++ return foundScreen;
+ #endif
- static int
-- ProcXF86VidModeDispatch(ClientPtr client) {
-+ProcXF86VidModeDispatch(ClientPtr client)
-+{
- REQUEST(xReq);
- switch (stuff->data) {
- case X_XF86VidModeQueryVersion:
- return ProcXF86VidModeQueryVersion(client);
-- case X_XF86VidModeGetModeLine:return ProcXF86VidModeGetModeLine(client);
-- case X_XF86VidModeGetMonitor:return ProcXF86VidModeGetMonitor(client);
-- case X_XF86VidModeGetAllModeLines:return
-- ProcXF86VidModeGetAllModeLines(client);
-- case X_XF86VidModeValidateModeLine:return
-- ProcXF86VidModeValidateModeLine(client);
-- case X_XF86VidModeGetViewPort:return ProcXF86VidModeGetViewPort(client);
-- case X_XF86VidModeGetDotClocks:return
-- ProcXF86VidModeGetDotClocks(client);
-- case X_XF86VidModeSetClientVersion:return
-- ProcXF86VidModeSetClientVersion(client);
-- case X_XF86VidModeGetGamma:return ProcXF86VidModeGetGamma(client);
-- case X_XF86VidModeGetGammaRamp:return
-- ProcXF86VidModeGetGammaRamp(client);
-- case X_XF86VidModeGetGammaRampSize:return
-- ProcXF86VidModeGetGammaRampSize(client);
-- case X_XF86VidModeGetPermissions:return
-- ProcXF86VidModeGetPermissions(client);
-- default:if (!xf86GetVidModeEnabled())
-+ case X_XF86VidModeGetModeLine:
-+ return ProcXF86VidModeGetModeLine(client);
-+ case X_XF86VidModeGetMonitor:
-+ return ProcXF86VidModeGetMonitor(client);
-+ case X_XF86VidModeGetAllModeLines:
-+ return ProcXF86VidModeGetAllModeLines(client);
-+ case X_XF86VidModeValidateModeLine:
-+ return ProcXF86VidModeValidateModeLine(client);
-+ case X_XF86VidModeGetViewPort:
-+ return ProcXF86VidModeGetViewPort(client);
-+ case X_XF86VidModeGetDotClocks:
-+ return ProcXF86VidModeGetDotClocks(client);
-+ case X_XF86VidModeSetClientVersion:
-+ return ProcXF86VidModeSetClientVersion(client);
-+ case X_XF86VidModeGetGamma:
-+ return ProcXF86VidModeGetGamma(client);
-+ case X_XF86VidModeGetGammaRamp:
-+ return ProcXF86VidModeGetGammaRamp(client);
-+ case X_XF86VidModeGetGammaRampSize:
-+ return ProcXF86VidModeGetGammaRampSize(client);
-+ case X_XF86VidModeGetPermissions:
-+ return ProcXF86VidModeGetPermissions(client);
-+ default:
-+ if (!xf86GetVidModeEnabled())
- return VidModeErrorBase + XF86VidModeExtensionDisabled;
- if (xf86GetVidModeAllowNonLocal() || LocalClient(client)) {
- switch (stuff->data) {
- case X_XF86VidModeAddModeLine:
- return ProcXF86VidModeAddModeLine(client);
-- case X_XF86VidModeDeleteModeLine:return
-- ProcXF86VidModeDeleteModeLine(client);
-- case X_XF86VidModeModModeLine:return
-- ProcXF86VidModeModModeLine(client);
-- case X_XF86VidModeSwitchMode:return
-- ProcXF86VidModeSwitchMode(client);
-- case X_XF86VidModeSwitchToMode:return
-- ProcXF86VidModeSwitchToMode(client);
-- case X_XF86VidModeLockModeSwitch:return
-- ProcXF86VidModeLockModeSwitch(client);
-- case X_XF86VidModeSetViewPort:return
-- ProcXF86VidModeSetViewPort(client);
-- case X_XF86VidModeSetGamma:return
-- ProcXF86VidModeSetGamma(client);
-- case X_XF86VidModeSetGammaRamp:return
-- ProcXF86VidModeSetGammaRamp(client);
-- default:return BadRequest;
-- }}
-+ case X_XF86VidModeDeleteModeLine:
-+ return ProcXF86VidModeDeleteModeLine(client);
-+ case X_XF86VidModeModModeLine:
-+ return ProcXF86VidModeModModeLine(client);
-+ case X_XF86VidModeSwitchMode:
-+ return ProcXF86VidModeSwitchMode(client);
-+ case X_XF86VidModeSwitchToMode:
-+ return ProcXF86VidModeSwitchToMode(client);
-+ case X_XF86VidModeLockModeSwitch:
-+ return ProcXF86VidModeLockModeSwitch(client);
-+ case X_XF86VidModeSetViewPort:
-+ return ProcXF86VidModeSetViewPort(client);
-+ case X_XF86VidModeSetGamma:
-+ return ProcXF86VidModeSetGamma(client);
-+ case X_XF86VidModeSetGammaRamp:
-+ return ProcXF86VidModeSetGammaRamp(client);
-+ default:
-+ return BadRequest;
-+ }
-+ }
- else
-- return VidModeErrorBase + XF86VidModeClientNotLocal;
-+ return VidModeErrorBase + XF86VidModeClientNotLocal;
+ #ifdef XSERVER_LIBPCIACCESS
+@@ -214,6 +216,8 @@ xf86BusProbe(void)
+ {
+ #ifdef XSERVER_PLATFORM_BUS
+ xf86platformProbe();
++ if (ServerIsNotSeat0())
++ return;
+ #endif
+ #ifdef XSERVER_LIBPCIACCESS
+ xf86PciProbe();
+diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
+index f681a85..721159d 100644
+--- a/hw/xfree86/common/xf86Helper.c
++++ b/hw/xfree86/common/xf86Helper.c
+@@ -1898,3 +1898,9 @@ xf86ScrnToScreen(ScrnInfoPtr pScrn)
+ return screenInfo.screens[pScrn->scrnIndex];
}
}
-
- static int
-- SProcXF86VidModeQueryVersion(ClientPtr client) {
-+SProcXF86VidModeQueryVersion(ClientPtr client)
-+{
- REQUEST(xXF86VidModeQueryVersionReq);
- swaps(&stuff->length);
- return ProcXF86VidModeQueryVersion(client);
--} static int
-- SProcXF86VidModeGetModeLine(ClientPtr client) {
-+}
+
-+static int
-+SProcXF86VidModeGetModeLine(ClientPtr client)
++void
++xf86UpdateDesktopDimensions(void)
+{
- REQUEST(xXF86VidModeGetModeLineReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeGetModeLineReq);
- swaps(&stuff->screen);
- return ProcXF86VidModeGetModeLine(client);
--} static int
-- SProcXF86VidModeGetAllModeLines(ClientPtr client) {
++ update_desktop_dimensions();
+}
-+
-+static int
-+SProcXF86VidModeGetAllModeLines(ClientPtr client)
-+{
- REQUEST(xXF86VidModeGetAllModeLinesReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeGetAllModeLinesReq);
- swaps(&stuff->screen);
- return ProcXF86VidModeGetAllModeLines(client);
--} static int
-- SProcXF86VidModeAddModeLine(ClientPtr client) {
-+}
-+
-+static int
-+SProcXF86VidModeAddModeLine(ClientPtr client)
-+{
- xXF86OldVidModeAddModeLineReq *oldstuff =
- (xXF86OldVidModeAddModeLineReq *) client->requestBuffer;
- int ver;
-
-- REQUEST(xXF86VidModeAddModeLineReq);
-- ver = ClientMajorVersion(client);
-+ REQUEST(xXF86VidModeAddModeLineReq);
-+ ver = ClientMajorVersion(client);
- if (ver < 2) {
- swaps(&oldstuff->length);
- REQUEST_AT_LEAST_SIZE(xXF86OldVidModeAddModeLineReq);
-@@ -1666,13 +1747,14 @@ static int
- }
-
- static int
-- SProcXF86VidModeDeleteModeLine(ClientPtr client) {
-+SProcXF86VidModeDeleteModeLine(ClientPtr client)
-+{
- xXF86OldVidModeDeleteModeLineReq *oldstuff =
- (xXF86OldVidModeDeleteModeLineReq *) client->requestBuffer;
- int ver;
-
-- REQUEST(xXF86VidModeDeleteModeLineReq);
-- ver = ClientMajorVersion(client);
-+ REQUEST(xXF86VidModeDeleteModeLineReq);
-+ ver = ClientMajorVersion(client);
- if (ver < 2) {
- swaps(&oldstuff->length);
- REQUEST_AT_LEAST_SIZE(xXF86OldVidModeDeleteModeLineReq);
-@@ -1710,13 +1792,14 @@ static int
- }
-
- static int
-- SProcXF86VidModeModModeLine(ClientPtr client) {
-+SProcXF86VidModeModModeLine(ClientPtr client)
-+{
- xXF86OldVidModeModModeLineReq *oldstuff =
- (xXF86OldVidModeModModeLineReq *) client->requestBuffer;
- int ver;
-
-- REQUEST(xXF86VidModeModModeLineReq);
-- ver = ClientMajorVersion(client);
-+ REQUEST(xXF86VidModeModModeLineReq);
-+ ver = ClientMajorVersion(client);
- if (ver < 2) {
- swaps(&oldstuff->length);
- REQUEST_AT_LEAST_SIZE(xXF86OldVidModeModModeLineReq);
-@@ -1754,13 +1837,14 @@ static int
- }
+diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h
+index 83f9790..f58b87e 100644
+--- a/hw/xfree86/common/xf86Module.h
++++ b/hw/xfree86/common/xf86Module.h
+@@ -80,7 +80,7 @@ typedef enum {
+ * mask is 0xFFFF0000.
+ */
+ #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4)
+-#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(13, 0)
++#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(13, 1)
+ #define ABI_XINPUT_VERSION SET_ABI_VERSION(18, 0)
+ #define ABI_EXTENSION_VERSION SET_ABI_VERSION(7, 0)
+ #define ABI_FONT_VERSION SET_ABI_VERSION(0, 6)
+diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
+index 24b9473..0525e39 100644
+--- a/hw/xfree86/common/xf86platformBus.c
++++ b/hw/xfree86/common/xf86platformBus.c
+@@ -213,11 +213,12 @@ xf86platformProbe(void)
+ int i;
+ Bool pci = TRUE;
- static int
-- SProcXF86VidModeValidateModeLine(ClientPtr client) {
-+SProcXF86VidModeValidateModeLine(ClientPtr client)
-+{
- xXF86OldVidModeValidateModeLineReq *oldstuff =
- (xXF86OldVidModeValidateModeLineReq *) client->requestBuffer;
- int ver;
++ config_odev_probe(xf86PlatformDeviceProbe);
++
+ if (!xf86scanpci()) {
+ pci = FALSE;
+ }
-- REQUEST(xXF86VidModeValidateModeLineReq);
-- ver = ClientMajorVersion(client);
-+ REQUEST(xXF86VidModeValidateModeLineReq);
-+ ver = ClientMajorVersion(client);
- if (ver < 2) {
- swaps(&oldstuff->length);
- REQUEST_AT_LEAST_SIZE(xXF86OldVidModeValidateModeLineReq);
-@@ -1798,44 +1882,60 @@ static int
+- config_odev_probe(&xf86PlatformDeviceProbe);
+ for (i = 0; i < xf86_num_platform_devices; i++) {
+ char *busid = xf86_get_platform_attrib(i, ODEV_ATTRIB_BUSID);
+
+@@ -358,6 +359,9 @@ xf86platformProbeDev(DriverPtr drvp)
+ break;
+ }
+ else {
++ /* for non-seat0 servers assume first device is the master */
++ if (ServerIsNotSeat0())
++ break;
+ if (xf86_platform_devices[j].pdev) {
+ if (xf86IsPrimaryPlatform(&xf86_platform_devices[j]))
+ break;
+diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
+index 23f589c..40963c3 100644
+--- a/hw/xfree86/dri2/dri2.c
++++ b/hw/xfree86/dri2/dri2.c
+@@ -766,6 +766,44 @@ static inline PixmapPtr GetDrawablePixmap(DrawablePtr drawable)
+ }
}
- static int
-- SProcXF86VidModeSwitchMode(ClientPtr client) {
-+SProcXF86VidModeSwitchMode(ClientPtr client)
-+{
- REQUEST(xXF86VidModeSwitchModeReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeSwitchModeReq);
- swaps(&stuff->screen);
- swaps(&stuff->zoom);
- return ProcXF86VidModeSwitchMode(client);
--} static int
-- SProcXF86VidModeSwitchToMode(ClientPtr client) {
-+}
-+
-+static int
-+SProcXF86VidModeSwitchToMode(ClientPtr client)
-+{
- REQUEST(xXF86VidModeSwitchToModeReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeSwitchToModeReq);
- swapl(&stuff->screen);
- return ProcXF86VidModeSwitchToMode(client);
--} static int
-- SProcXF86VidModeLockModeSwitch(ClientPtr client) {
-+}
-+
-+static int
-+SProcXF86VidModeLockModeSwitch(ClientPtr client)
-+{
- REQUEST(xXF86VidModeLockModeSwitchReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeLockModeSwitchReq);
- swaps(&stuff->screen);
- swaps(&stuff->lock);
- return ProcXF86VidModeLockModeSwitch(client);
--} static int
-- SProcXF86VidModeGetMonitor(ClientPtr client) {
-+}
-+
-+static int
-+SProcXF86VidModeGetMonitor(ClientPtr client)
-+{
- REQUEST(xXF86VidModeGetMonitorReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeGetMonitorReq);
- swaps(&stuff->screen);
- return ProcXF86VidModeGetMonitor(client);
--} static int
-- SProcXF86VidModeGetViewPort(ClientPtr client) {
-+}
-+
-+static int
-+SProcXF86VidModeGetViewPort(ClientPtr client)
-+{
- REQUEST(xXF86VidModeGetViewPortReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeGetViewPortReq);
- swaps(&stuff->screen);
- return ProcXF86VidModeGetViewPort(client);
--} static int
-- SProcXF86VidModeSetViewPort(ClientPtr client) {
-+}
-+
-+static int
-+SProcXF86VidModeSetViewPort(ClientPtr client)
-+{
- REQUEST(xXF86VidModeSetViewPortReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeSetViewPortReq);
-@@ -1843,23 +1943,32 @@ static int
- swapl(&stuff->x);
- swapl(&stuff->y);
- return ProcXF86VidModeSetViewPort(client);
--} static int
-- SProcXF86VidModeGetDotClocks(ClientPtr client) {
-+}
-+
-+static int
-+SProcXF86VidModeGetDotClocks(ClientPtr client)
-+{
- REQUEST(xXF86VidModeGetDotClocksReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeGetDotClocksReq);
- swaps(&stuff->screen);
- return ProcXF86VidModeGetDotClocks(client);
--} static int
-- SProcXF86VidModeSetClientVersion(ClientPtr client) {
-+}
-+
++/*
++ * A TraverseTree callback to invalidate all windows using the same
++ * pixmap
++ */
+static int
-+SProcXF86VidModeSetClientVersion(ClientPtr client)
++DRI2InvalidateWalk(WindowPtr pWin, pointer data)
+{
- REQUEST(xXF86VidModeSetClientVersionReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeSetClientVersionReq);
- swaps(&stuff->major);
- swaps(&stuff->minor);
- return ProcXF86VidModeSetClientVersion(client);
--} static int
-- SProcXF86VidModeSetGamma(ClientPtr client) {
++ if (pWin->drawable.pScreen->GetWindowPixmap(pWin) != data)
++ return WT_DONTWALKCHILDREN;
++ DRI2InvalidateDrawable(&pWin->drawable);
++ return WT_WALKCHILDREN;
+}
+
-+static int
-+SProcXF86VidModeSetGamma(ClientPtr client)
-+{
- REQUEST(xXF86VidModeSetGammaReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeSetGammaReq);
-@@ -1868,120 +1977,145 @@ static int
- swapl(&stuff->green);
- swapl(&stuff->blue);
- return ProcXF86VidModeSetGamma(client);
--} static int
-- SProcXF86VidModeGetGamma(ClientPtr client) {
-+}
-+
-+static int
-+SProcXF86VidModeGetGamma(ClientPtr client)
-+{
- REQUEST(xXF86VidModeGetGammaReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeGetGammaReq);
- swaps(&stuff->screen);
- return ProcXF86VidModeGetGamma(client);
--} static int
-- SProcXF86VidModeSetGammaRamp(ClientPtr client) {
-+}
-+
-+static int
-+SProcXF86VidModeSetGammaRamp(ClientPtr client)
-+{
- int length;
-- REQUEST(xXF86VidModeSetGammaRampReq);
-- swaps(&stuff->length);
-- REQUEST_AT_LEAST_SIZE(xXF86VidModeSetGammaRampReq);
-- swaps(&stuff->size);
-- swaps(&stuff->screen);
-- length = ((stuff->size + 1) & ~1) * 6;
-- REQUEST_FIXED_SIZE(xXF86VidModeSetGammaRampReq, length);
-- SwapRestS(stuff);
-- return ProcXF86VidModeSetGammaRamp(client);
--} static int
-- SProcXF86VidModeGetGammaRamp(ClientPtr client) {
-+
-+ REQUEST(xXF86VidModeSetGammaRampReq);
-+ swaps(&stuff->length);
-+ REQUEST_AT_LEAST_SIZE(xXF86VidModeSetGammaRampReq);
-+ swaps(&stuff->size);
-+ swaps(&stuff->screen);
-+ length = ((stuff->size + 1) & ~1) * 6;
-+ REQUEST_FIXED_SIZE(xXF86VidModeSetGammaRampReq, length);
-+ SwapRestS(stuff);
-+ return ProcXF86VidModeSetGammaRamp(client);
-+}
-+
-+static int
-+SProcXF86VidModeGetGammaRamp(ClientPtr client)
-+{
- REQUEST(xXF86VidModeGetGammaRampReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeGetGammaRampReq);
- swaps(&stuff->size);
- swaps(&stuff->screen);
- return ProcXF86VidModeGetGammaRamp(client);
--} static int
-- SProcXF86VidModeGetGammaRampSize(ClientPtr client) {
-+}
-+
-+static int
-+SProcXF86VidModeGetGammaRampSize(ClientPtr client)
-+{
- REQUEST(xXF86VidModeGetGammaRampSizeReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeGetGammaRampSizeReq);
- swaps(&stuff->screen);
- return ProcXF86VidModeGetGammaRampSize(client);
--} static int
-- SProcXF86VidModeGetPermissions(ClientPtr client) {
++static void
++DRI2InvalidateDrawableAll(DrawablePtr pDraw)
++{
++ if (pDraw->type == DRAWABLE_WINDOW) {
++ WindowPtr pWin = (WindowPtr) pDraw;
++ PixmapPtr pPixmap = pDraw->pScreen->GetWindowPixmap(pWin);
++
++ /*
++ * Find the top-most window using this pixmap
++ */
++ while (pWin->parent &&
++ pDraw->pScreen->GetWindowPixmap(pWin->parent) == pPixmap)
++ pWin = pWin->parent;
++
++ /*
++ * Walk the sub-tree to invalidate all of the
++ * windows using the same pixmap
++ */
++ TraverseTree(pWin, DRI2InvalidateWalk, pPixmap);
++ DRI2InvalidateDrawable(&pPixmap->drawable);
++ }
++ else
++ DRI2InvalidateDrawable(pDraw);
+}
+
-+static int
-+SProcXF86VidModeGetPermissions(ClientPtr client)
-+{
- REQUEST(xXF86VidModeGetPermissionsReq);
- swaps(&stuff->length);
- REQUEST_SIZE_MATCH(xXF86VidModeGetPermissionsReq);
- swaps(&stuff->screen);
- return ProcXF86VidModeGetPermissions(client);
--} static int
-- SProcXF86VidModeDispatch(ClientPtr client) {
-+}
+ DrawablePtr DRI2UpdatePrime(DrawablePtr pDraw, DRI2BufferPtr pDest)
+ {
+ DRI2DrawablePtr pPriv = DRI2GetDrawable(pDraw);
+@@ -831,6 +869,8 @@ DrawablePtr DRI2UpdatePrime(DrawablePtr pDraw, DRI2BufferPtr pDest)
+ spix->screen_x = mpix->screen_x;
+ spix->screen_y = mpix->screen_y;
+ #endif
+
-+static int
-+SProcXF86VidModeDispatch(ClientPtr client)
-+{
- REQUEST(xReq);
- switch (stuff->data) {
- case X_XF86VidModeQueryVersion:
- return SProcXF86VidModeQueryVersion(client);
-- case X_XF86VidModeGetModeLine:return
-- SProcXF86VidModeGetModeLine(client);
-- case X_XF86VidModeGetMonitor:return SProcXF86VidModeGetMonitor(client);
-- case X_XF86VidModeGetAllModeLines:return
-- SProcXF86VidModeGetAllModeLines(client);
-- case X_XF86VidModeGetViewPort:return
-- SProcXF86VidModeGetViewPort(client);
-- case X_XF86VidModeValidateModeLine:return
-- SProcXF86VidModeValidateModeLine(client);
-- case X_XF86VidModeGetDotClocks:return
-- SProcXF86VidModeGetDotClocks(client);
-- case X_XF86VidModeSetClientVersion:return
-- SProcXF86VidModeSetClientVersion(client);
-- case X_XF86VidModeGetGamma:return SProcXF86VidModeGetGamma(client);
-- case X_XF86VidModeGetGammaRamp:return
-- SProcXF86VidModeGetGammaRamp(client);
-- case X_XF86VidModeGetGammaRampSize:return
-- SProcXF86VidModeGetGammaRampSize(client);
-- case X_XF86VidModeGetPermissions:return
-- SProcXF86VidModeGetPermissions(client);
-- default:if (!xf86GetVidModeEnabled())
-+ case X_XF86VidModeGetModeLine:
-+ return SProcXF86VidModeGetModeLine(client);
-+ case X_XF86VidModeGetMonitor:
-+ return SProcXF86VidModeGetMonitor(client);
-+ case X_XF86VidModeGetAllModeLines:
-+ return SProcXF86VidModeGetAllModeLines(client);
-+ case X_XF86VidModeGetViewPort:
-+ return SProcXF86VidModeGetViewPort(client);
-+ case X_XF86VidModeValidateModeLine:
-+ return SProcXF86VidModeValidateModeLine(client);
-+ case X_XF86VidModeGetDotClocks:
-+ return SProcXF86VidModeGetDotClocks(client);
-+ case X_XF86VidModeSetClientVersion:
-+ return SProcXF86VidModeSetClientVersion(client);
-+ case X_XF86VidModeGetGamma:
-+ return SProcXF86VidModeGetGamma(client);
-+ case X_XF86VidModeGetGammaRamp:
-+ return SProcXF86VidModeGetGammaRamp(client);
-+ case X_XF86VidModeGetGammaRampSize:
-+ return SProcXF86VidModeGetGammaRampSize(client);
-+ case X_XF86VidModeGetPermissions:
-+ return SProcXF86VidModeGetPermissions(client);
-+ default:
-+ if (!xf86GetVidModeEnabled())
- return VidModeErrorBase + XF86VidModeExtensionDisabled;
- if (xf86GetVidModeAllowNonLocal() || LocalClient(client)) {
- switch (stuff->data) {
- case X_XF86VidModeAddModeLine:
- return SProcXF86VidModeAddModeLine(client);
-- case X_XF86VidModeDeleteModeLine:return
-- SProcXF86VidModeDeleteModeLine(client);
-- case X_XF86VidModeModModeLine:return
-- SProcXF86VidModeModModeLine(client);
-- case X_XF86VidModeSwitchMode:return
-- SProcXF86VidModeSwitchMode(client);
-- case X_XF86VidModeSwitchToMode:return
-- SProcXF86VidModeSwitchToMode(client);
-- case X_XF86VidModeLockModeSwitch:return
-- SProcXF86VidModeLockModeSwitch(client);
-- case X_XF86VidModeSetViewPort:return
-- SProcXF86VidModeSetViewPort(client);
-- case X_XF86VidModeSetGamma:return
-- SProcXF86VidModeSetGamma(client);
-- case X_XF86VidModeSetGammaRamp:return
-- SProcXF86VidModeSetGammaRamp(client);
-- default:return BadRequest;
-- }}
-+ case X_XF86VidModeDeleteModeLine:
-+ return SProcXF86VidModeDeleteModeLine(client);
-+ case X_XF86VidModeModModeLine:
-+ return SProcXF86VidModeModModeLine(client);
-+ case X_XF86VidModeSwitchMode:
-+ return SProcXF86VidModeSwitchMode(client);
-+ case X_XF86VidModeSwitchToMode:
-+ return SProcXF86VidModeSwitchToMode(client);
-+ case X_XF86VidModeLockModeSwitch:
-+ return SProcXF86VidModeLockModeSwitch(client);
-+ case X_XF86VidModeSetViewPort:
-+ return SProcXF86VidModeSetViewPort(client);
-+ case X_XF86VidModeSetGamma:
-+ return SProcXF86VidModeSetGamma(client);
-+ case X_XF86VidModeSetGammaRamp:
-+ return SProcXF86VidModeSetGammaRamp(client);
-+ default:
-+ return BadRequest;
-+ }
-+ }
- else
-- return VidModeErrorBase + XF86VidModeClientNotLocal;
-+ return VidModeErrorBase + XF86VidModeClientNotLocal;
- }
++ DRI2InvalidateDrawableAll(pDraw);
+ return &spix->drawable;
}
- void
-- XFree86VidModeExtensionInit(void) {
-+XFree86VidModeExtensionInit(void)
-+{
- ExtensionEntry *extEntry;
- ScreenPtr pScreen;
- int i;
- Bool enabled = FALSE;
-
-- DEBUG_P("XFree86VidModeExtensionInit");
-+ DEBUG_P("XFree86VidModeExtensionInit");
-
- if (!dixRegisterPrivateKey(&VidModeClientPrivateKeyRec, PRIVATE_CLIENT, 0))
-- return;
-+ return;
- #ifdef XF86VIDMODE_EVENTS
- if (!dixRegisterPrivateKey(&ScreenPrivateKeyRec, PRIVATE_SCREEN, 0))
-- return;
-+ return;
- #endif
-
- #ifdef XF86VIDMODE_EVENTS
-- EventType = CreateNewResourceType(XF86VidModeFreeEvents, "VidModeEvent");
-+ EventType = CreateNewResourceType(XF86VidModeFreeEvents, "VidModeEvent");
- #endif
-
- for (i = 0; i < screenInfo.numScreens; i++) {
-@@ -1990,8 +2124,8 @@ void
- enabled = TRUE;
- }
- /* This means that the DDX doesn't want the vidmode extension enabled */
-- if (!enabled)
-- return;
-+ if (!enabled)
-+ return;
-
- if (
- #ifdef XF86VIDMODE_EVENTS
---
-cgit v0.9.0.2-2-gbebe
-From 15607cf2dc87405606b20113011f1ebd97637d32 Mon Sep 17 00:00:00 2001
-From: Daniel Kurtz <djkurtz@chromium.org>
-Date: Thu, 12 Apr 2012 00:11:10 +0000
-Subject: dix: don't BUG_WARN for button events from button-only device
-
-Events from button-only devices still need coordinates, and they get them
-from scale_to_desktop(). Therefore, a dev without valuators is not a bug.
-However, a dev with valuators, but less than two of them still is a bug.
-
-This was noticed when unplugging a "Creative Technology SB Arena Headset",
-which has some BTNs and some KEYs, but no REL or ABS valuators.
-It emits [BTN_3] = 0 on unplug, which would trigger the BUG_WARN.
-
-Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
-Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-(cherry picked from commit c5a45b0f7658c77725adce2b64a0fbd62f208328)
----
-diff --git a/dix/getevents.c b/dix/getevents.c
-index 4e0af45..9dc9617 100644
---- a/dix/getevents.c
-+++ b/dix/getevents.c
-@@ -842,7 +842,7 @@ scale_to_desktop(DeviceIntPtr dev, ValuatorMask *mask,
- ScreenPtr scr = miPointerGetScreen(dev);
- double x, y;
+@@ -1048,18 +1088,7 @@ DRI2WaitSwap(ClientPtr client, DrawablePtr pDrawable)
+ return FALSE;
+ }
-- BUG_WARN(!dev->valuator || dev->valuator->numAxes < 2);
-+ BUG_WARN(dev->valuator && dev->valuator->numAxes < 2);
- if (!dev->valuator || dev->valuator->numAxes < 2) {
- /* if we have no axes, last.valuators must be in screen coords
- * anyway */
---
-cgit v0.9.0.2-2-gbebe
-From f8d2ca759ad37d5e99d462f21a2259ce17bb1a00 Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Wed, 18 Apr 2012 05:56:37 +0000
-Subject: dix: indentation fix
-
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-(cherry picked from commit ebf214876a4885a98ded4f5525925b69005fae05)
----
-diff --git a/dix/dispatch.c b/dix/dispatch.c
-index 9a2e22f..d971805 100644
---- a/dix/dispatch.c
-+++ b/dix/dispatch.c
-@@ -416,8 +416,8 @@ Dispatch(void)
- if (XSERVER_REQUEST_START_ENABLED())
- XSERVER_REQUEST_START(LookupMajorName(client->majorOp),
- client->majorOp,
-- ((xReq *) client->requestBuffer)->
-- length, client->index,
-+ ((xReq *) client->requestBuffer)->length,
-+ client->index,
- client->requestBuffer);
- #endif
- if (result > (maxBigRequestSize << 2))
---
-cgit v0.9.0.2-2-gbebe
-From f012f0c48dedba4df69cc1a1ecdf8ee5d37daca9 Mon Sep 17 00:00:00 2001
-From: Michal Suchanek <hramrach@gmail.com>
-Date: Thu, 26 Apr 2012 13:11:20 +0000
-Subject: dmx: Annotate dmxlog.c with _X_ATTRIBUTE_PRINTF and _X_NORETURN
-
-and fix resulting printf warning in dmxLogVisual
-
-Signed-off-by: Michal Suchanek <hramrach@gmail.com>
-Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-(cherry picked from commit d662fa2450856777b59c4b62b912395a8bfd52fd)
----
-diff --git a/hw/dmx/dmxlog.c b/hw/dmx/dmxlog.c
-index b56bb93..151f672 100644
---- a/hw/dmx/dmxlog.c
-+++ b/hw/dmx/dmxlog.c
-@@ -86,6 +86,8 @@ ErrorF(const char *format, ...)
+-/*
+- * A TraverseTree callback to invalidate all windows using the same
+- * pixmap
+- */
+-static int
+-DRI2InvalidateWalk(WindowPtr pWin, pointer data)
+-{
+- if (pWin->drawable.pScreen->GetWindowPixmap(pWin) != data)
+- return WT_DONTWALKCHILDREN;
+- DRI2InvalidateDrawable(&pWin->drawable);
+- return WT_WALKCHILDREN;
+-}
++
+
+ int
+ DRI2SwapBuffers(ClientPtr client, DrawablePtr pDraw, CARD64 target_msc,
+@@ -1162,26 +1191,7 @@ DRI2SwapBuffers(ClientPtr client, DrawablePtr pDraw, CARD64 target_msc,
+ */
+ *swap_target = pPriv->swap_count + pPriv->swapsPending;
+
+- if (pDraw->type == DRAWABLE_WINDOW) {
+- WindowPtr pWin = (WindowPtr) pDraw;
+- PixmapPtr pPixmap = pScreen->GetWindowPixmap(pWin);
+-
+- /*
+- * Find the top-most window using this pixmap
+- */
+- while (pWin->parent &&
+- pScreen->GetWindowPixmap(pWin->parent) == pPixmap)
+- pWin = pWin->parent;
+-
+- /*
+- * Walk the sub-tree to invalidate all of the
+- * windows using the same pixmap
+- */
+- TraverseTree(pWin, DRI2InvalidateWalk, pPixmap);
+- DRI2InvalidateDrawable(&pPixmap->drawable);
+- }
+- else
+- DRI2InvalidateDrawable(pDraw);
++ DRI2InvalidateDrawableAll(pDraw);
- /** Provide an VFatalError function when used stand-alone. */
- static void
-+VFatalError(const char *format, va_list args) _X_ATTRIBUTE_PRINTF(1, 0) _X_NORETURN;
-+static void
- VFatalError(const char *format, va_list args)
- {
- vfprintf(stderr, format, args); /* RATS: We assume the format string
-@@ -104,7 +106,9 @@ VErrorF(const char *format, va_list args)
+ return Success;
}
- #else
- /** This function was removed between XFree86 4.3.0 and XFree86 4.4.0. */
--extern void AbortServer(void);
-+extern void AbortServer(void) _X_NORETURN;
-+static void
-+VFatalError(const char *format, va_list args) _X_ATTRIBUTE_PRINTF(1, 0) _X_NORETURN;
- static void
- VFatalError(const char *format, va_list args)
- {
-@@ -166,6 +170,8 @@ dmxHeader(dmxLogLevel logLevel, DMXInputInfo * dmxInput,
- /* Prints the error message with the appropriate low-level X output
- * routine. */
- static void
-+dmxMessage(dmxLogLevel logLevel, const char *format, va_list args) _X_ATTRIBUTE_PRINTF(2, 0);
-+static void
- dmxMessage(dmxLogLevel logLevel, const char *format, va_list args)
- {
- if (logLevel == dmxFatal || logLevel >= dmxCurrentLogLevel) {
-@@ -303,10 +309,11 @@ dmxLogVisual(DMXScreenInfo * dmxScreen, XVisualInfo * vi, int defaultVisual)
- class = "DirectColor";
- break;
- }
-+#define VisualLogFormat "0x%02lx %s %2db %db/rgb %3d 0x%04lx 0x%04lx 0x%04lx%s\n"
+diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c
+index 37cd8b3..1cf0f02 100644
+--- a/hw/xwin/InitOutput.c
++++ b/hw/xwin/InitOutput.c
+@@ -164,7 +164,7 @@ void XwinExtensionInit(void)
+ int i;
- if (dmxScreen) {
- dmxLogOutput(dmxScreen,
-- "0x%02x %s %2db %db/rgb %3d 0x%04x 0x%04x 0x%04x%s\n",
-+ VisualLogFormat,
- vi->visualid, class, vi->depth, vi->bits_per_rgb,
- vi->colormap_size,
- vi->red_mask, vi->green_mask, vi->blue_mask,
-@@ -314,7 +321,7 @@ dmxLogVisual(DMXScreenInfo * dmxScreen, XVisualInfo * vi, int defaultVisual)
+ #ifdef XWIN_GLX_WINDOWS
+- if ((g_fNativeGl) && (serverGeneration == 1)) {
++ if (g_fNativeGl) {
+ /* install the native GL provider */
+ glxWinPushNativeProvider();
}
- else {
- dmxLog(dmxInfo,
-- " 0x%02x %s %2db %db/rgb %3d 0x%04x 0x%04x 0x%04x%s\n",
-+ " " VisualLogFormat,
- vi->visualid, class, vi->depth, vi->bits_per_rgb,
- vi->colormap_size,
- vi->red_mask, vi->green_mask, vi->blue_mask,
-diff --git a/hw/dmx/dmxlog.h b/hw/dmx/dmxlog.h
-index 4d4cd26..162484b 100644
---- a/hw/dmx/dmxlog.h
-+++ b/hw/dmx/dmxlog.h
-@@ -55,18 +55,23 @@ typedef enum {
- /* Logging functions used by Xserver/hw/dmx routines. */
- extern dmxLogLevel dmxSetLogLevel(dmxLogLevel newLevel);
- extern dmxLogLevel dmxGetLogLevel(void);
--extern void dmxLog(dmxLogLevel logLevel, const char *format, ...);
--extern void dmxLogCont(dmxLogLevel logLevel, const char *format, ...);
-+extern void dmxLog(dmxLogLevel logLevel, const char *format,
-+ ...) _X_ATTRIBUTE_PRINTF(2, 3);
-+extern void dmxLogCont(dmxLogLevel logLevel, const char *format,
-+ ...) _X_ATTRIBUTE_PRINTF(2, 3);
- extern const char *dmxEventName(int type);
-
- #ifndef DMX_LOG_STANDALONE
--extern void dmxLogOutput(DMXScreenInfo * dmxScreen, const char *format, ...);
-+extern void dmxLogOutput(DMXScreenInfo * dmxScreen, const char *format,
-+ ...) _X_ATTRIBUTE_PRINTF(2, 3);
- extern void dmxLogOutputCont(DMXScreenInfo * dmxScreen, const char *format,
-- ...);
-+ ...) _X_ATTRIBUTE_PRINTF(2, 3);
- extern void dmxLogOutputWarning(DMXScreenInfo * dmxScreen, const char *format,
-- ...);
--extern void dmxLogInput(DMXInputInfo * dmxInput, const char *format, ...);
--extern void dmxLogInputCont(DMXInputInfo * dmxInput, const char *format, ...);
-+ ...) _X_ATTRIBUTE_PRINTF(2, 3);
-+extern void dmxLogInput(DMXInputInfo * dmxInput, const char *format,
-+ ...) _X_ATTRIBUTE_PRINTF(2, 3);
-+extern void dmxLogInputCont(DMXInputInfo * dmxInput, const char *format,
-+ ...) _X_ATTRIBUTE_PRINTF(2, 3);
- extern void dmxLogArgs(dmxLogLevel logLevel, int argc, char **argv);
- extern void dmxLogVisual(DMXScreenInfo * dmxScreen, XVisualInfo * vi,
- int defaultVisual);
---
-cgit v0.9.0.2-2-gbebe
-From 58dfb13953af71021317b9d85230b1163198f031 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu@apple.com>
-Date: Thu, 10 May 2012 07:53:20 +0000
-Subject: Revert "dix: when disabling a device, release all buttons and keys"
-
-This reverts commit 90299556db24543bb7365e8c2897deca3aa219e7.
-
-The commit being reverted triggered a segfault on server shutdown when a
-device posts raw events after the root windows are forced to NULL.
-
-https://lists.debian.org/debian-x/2012/05/msg00240.html
-
-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
----
-diff --git a/dix/devices.c b/dix/devices.c
-index d0e99bd..0125504 100644
---- a/dix/devices.c
-+++ b/dix/devices.c
-@@ -432,8 +432,6 @@ DisableDevice(DeviceIntPtr dev, BOOL sendevent)
- if (*prev != dev)
- return FALSE;
+@@ -901,7 +901,8 @@ InitOutput(ScreenInfo * screenInfo, int argc, char *argv[])
+ {
+ int i;
-- ReleaseButtonsAndKeys(dev);
--
- /* float attached devices */
- if (IsMaster(dev)) {
- for (other = inputInfo.devices; other; other = other->next) {
---
-cgit v0.9.0.2-2-gbebe
+- XwinExtensionInit();
++ if (serverGeneration == 1)
++ XwinExtensionInit();
+
+ /* Log the command line */
+ winLogCommandLine(argc, argv);
+diff --git a/hw/xwin/Makefile.am b/hw/xwin/Makefile.am
+index 4c2f04e..33729a9 100644
+--- a/hw/xwin/Makefile.am
++++ b/hw/xwin/Makefile.am
+@@ -109,13 +109,16 @@ SRCS = InitInput.c \
+ winclipboard.h \
+ winconfig.h \
+ win.h \
++ winglobals.h \
+ winkeybd.h \
+ winkeynames.h \
+ winlayouts.h \
+ winmessages.h \
++ winmonitors.h \
+ winmsg.h \
+ winms.h \
+ winmultiwindowclass.h \
++ winmultiwindowicons.h \
+ winprefs.h \
+ winresource.h \
+ winwindow.h \
+diff --git a/hw/xwin/glx/Makefile.am b/hw/xwin/glx/Makefile.am
+index 7222a9f..59f6879 100644
+--- a/hw/xwin/glx/Makefile.am
++++ b/hw/xwin/glx/Makefile.am
+@@ -6,7 +6,8 @@ libXwinGLX_la_SOURCES = \
+ glwindows.h \
+ glwrap.c \
+ indirect.c \
+- wgl_ext_api.c
++ wgl_ext_api.c \
++ wgl_ext_api.h
+
+ if XWIN_MULTIWINDOW
+ DEFS_MULTIWINDOW = -DXWIN_MULTIWINDOW
+diff --git a/include/input.h b/include/input.h
+index 5747f3c..f8459b8 100644
+--- a/include/input.h
++++ b/include/input.h
+@@ -579,6 +579,7 @@ extern int TouchListenerAcceptReject(DeviceIntPtr dev, TouchPointInfoPtr ti,
+ int listener, int mode);
+ extern int TouchAcceptReject(ClientPtr client, DeviceIntPtr dev, int mode,
+ uint32_t touchid, Window grab_window, XID *error);
++extern void TouchEndPhysicallyActiveTouches(DeviceIntPtr dev);
+
+ /* misc event helpers */
+ extern Mask GetEventMask(DeviceIntPtr dev, xEvent *ev, InputClientsPtr clients);
+diff --git a/man/Xserver.man b/man/Xserver.man
+index 8d243d6..b103551 100644
+--- a/man/Xserver.man
++++ b/man/Xserver.man
+@@ -130,7 +130,7 @@ causes the server to generate a core dump on fatal errors.
+ .B \-displayfd \fIfd\fP
+ specifies a file descriptor in the launching process. Rather than specify
+ a display number, the X server will attempt to listen on successively higher
+-display numbers, and upon finding a free one, will write the port number back
++display numbers, and upon finding a free one, will write the display number back
+ on this file descriptor as a newline-terminated string. The \-pn option is
+ ignored when using \-displayfd.
+ .TP 8
+diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c
+index 082c0db..c1af32e 100644
+--- a/xkb/xkbAccessX.c
++++ b/xkb/xkbAccessX.c
+@@ -709,7 +709,7 @@ ProcessPointerEvent(InternalEvent *ev, DeviceIntPtr mouse)
+ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(mouse);
+ DeviceEvent *event = &ev->device_event;
+
+- dev = IsFloating(mouse) ? mouse : GetMaster(mouse, MASTER_KEYBOARD);
++ dev = (IsMaster(mouse) || IsFloating(mouse)) ? mouse : GetMaster(mouse, MASTER_KEYBOARD);
+
+ if (dev && dev->key) {
+ xkbi = dev->key->xkbInfo;
diff --git a/extra/xorg-server/use-pixman-glyph-cache.patch b/extra/xorg-server/use-pixman-glyph-cache.patch
new file mode 100644
index 000000000..c1cd90d3a
--- /dev/null
+++ b/extra/xorg-server/use-pixman-glyph-cache.patch
@@ -0,0 +1,270 @@
+From 9cbcb5bd6a5360a128d15b77a02d8d3351f74366 Mon Sep 17 00:00:00 2001
+From: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Wed, 30 May 2012 09:19:08 +0000
+Subject: Use new pixman_glyph_cache_t API that will be in pixman 0.28.0
+
+This new API allows glyphs to be cached in a data structure in pixman,
+and entire glyph strings to be composited in one go.
+
+Also bump pixman dependency to 0.27.2.
+
+Results from the cairo peformance test suite running against Xvfb with
+a screen size of 1680x1050@32bpp:
+
+Speedups
+========
+ xlib firefox-talos-gfx 12416.63 -> 3603.93 3.45x speedup
+██▌
+ xlib xfce4-terminal-a1 1727.57 -> 1048.85: 1.65x speedup
+▋
+ xlib evolution 1370.49 -> 869.34: 1.58x speedup
+▋
+ xlib gnome-terminal-vim 1832.83 -> 1251.94: 1.46x speedup
+▌
+ xlib poppler 1519.70 -> 1204.05: 1.26x speedup
+▎
+ xlib firefox-planet-gnome 6982.55 -> 5598.16: 1.25x speedup
+▎
+ xlib ocitysmap 1142.77 -> 1071.53: 1.07x speedup
+▏
+
+No slowdowns were reported.
+
+Results of x11perf -aa10text:
+
+Before:
+
+ 8000000 reps @ 0.0007 msec (1450000.0/sec)
+ 8000000 reps @ 0.0007 msec (1460000.0/sec)
+ 8000000 reps @ 0.0007 msec (1460000.0/sec)
+ 8000000 reps @ 0.0007 msec (1470000.0/sec)
+ 8000000 reps @ 0.0007 msec (1480000.0/sec)
+ 40000000 trep @ 0.0007 msec (1460000.0/sec)
+
+After:
+
+ 32000000 reps @ 0.0002 msec (4910000.0/sec)
+ 32000000 reps @ 0.0002 msec (4830000.0/sec)
+ 32000000 reps @ 0.0002 msec (4890000.0/sec)
+ 32000000 reps @ 0.0002 msec (4830000.0/sec)
+ 32000000 reps @ 0.0002 msec (4900000.0/sec)
+ 160000000 trep @ 0.0002 msec (4870000.0/sec)
+
+Version 2: Destroy the glyph cache at server regen time
+
+Acked-by: Aaron Plattner <aplattner@nvidia.com>
+Reviewed-by: Keith Packard <keithp@keithp.com>
+Signed-off-by: Soren Sandmann <ssp@redhat.com>
+---
+diff --git a/configure.ac b/configure.ac
+index e686614..b6ed92c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -811,7 +811,7 @@ LIBPCIACCESS="pciaccess >= 0.12.901"
+ LIBUDEV="libudev >= 143"
+ LIBSELINUX="libselinux >= 2.0.86"
+ LIBDBUS="dbus-1 >= 1.0"
+-LIBPIXMAN="pixman-1 >= 0.21.8"
++LIBPIXMAN="pixman-1 >= 0.27.2"
+
+ dnl Pixman is always required, but we separate it out so we can link
+ dnl specific modules against it
+diff --git a/fb/fb.h b/fb/fb.h
+index 75596c5..b869d12 100644
+--- a/fb/fb.h
++++ b/fb/fb.h
+@@ -1344,6 +1344,9 @@ extern _X_EXPORT void
+ extern _X_EXPORT Bool
+ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats);
+
++extern _X_EXPORT void
++fbDestroyGlyphCache(void);
++
+ /*
+ * fbpixmap.c
+ */
+diff --git a/fb/fbpict.c b/fb/fbpict.c
+index 097a1a6..2804ff4 100644
+--- a/fb/fbpict.c
++++ b/fb/fbpict.c
+@@ -70,6 +70,156 @@ fbComposite(CARD8 op,
+ free_pixman_pict(pDst, dest);
+ }
+
++static pixman_glyph_cache_t *glyphCache;
++
++void
++fbDestroyGlyphCache(void)
++{
++ if (glyphCache)
++ {
++ pixman_glyph_cache_destroy (glyphCache);
++ glyphCache = NULL;
++ }
++}
++
++static void
++fbUnrealizeGlyph(ScreenPtr pScreen,
++ GlyphPtr pGlyph)
++{
++ if (glyphCache)
++ pixman_glyph_cache_remove (glyphCache, pGlyph, NULL);
++}
++
++static void
++fbGlyphs(CARD8 op,
++ PicturePtr pSrc,
++ PicturePtr pDst,
++ PictFormatPtr maskFormat,
++ INT16 xSrc,
++ INT16 ySrc, int nlist,
++ GlyphListPtr list,
++ GlyphPtr *glyphs)
++{
++#define N_STACK_GLYPHS 512
++ ScreenPtr pScreen = pDst->pDrawable->pScreen;
++ pixman_glyph_t stack_glyphs[N_STACK_GLYPHS];
++ pixman_glyph_t *pglyphs = stack_glyphs;
++ pixman_image_t *srcImage, *dstImage;
++ int srcXoff, srcYoff, dstXoff, dstYoff;
++ GlyphPtr glyph;
++ int n_glyphs;
++ int x, y;
++ int i, n;
++ int xDst = list->xOff, yDst = list->yOff;
++
++ miCompositeSourceValidate(pSrc);
++
++ n_glyphs = 0;
++ for (i = 0; i < nlist; ++i)
++ n_glyphs += list[i].len;
++
++ if (!glyphCache)
++ glyphCache = pixman_glyph_cache_create();
++
++ pixman_glyph_cache_freeze (glyphCache);
++
++ if (n_glyphs > N_STACK_GLYPHS) {
++ if (!(pglyphs = malloc (n_glyphs * sizeof (pixman_glyph_t))))
++ goto out;
++ }
++
++ i = 0;
++ x = y = 0;
++ while (nlist--) {
++ x += list->xOff;
++ y += list->yOff;
++ n = list->len;
++ while (n--) {
++ const void *g;
++
++ glyph = *glyphs++;
++
++ if (!(g = pixman_glyph_cache_lookup (glyphCache, glyph, NULL))) {
++ pixman_image_t *glyphImage;
++ PicturePtr pPicture;
++ int xoff, yoff;
++
++ pPicture = GetGlyphPicture(glyph, pScreen);
++ if (!pPicture) {
++ n_glyphs--;
++ goto next;
++ }
++
++ if (!(glyphImage = image_from_pict(pPicture, FALSE, &xoff, &yoff)))
++ goto out;
++
++ g = pixman_glyph_cache_insert(glyphCache, glyph, NULL,
++ glyph->info.x,
++ glyph->info.y,
++ glyphImage);
++
++ free_pixman_pict(pPicture, glyphImage);
++
++ if (!g)
++ goto out;
++ }
++
++ pglyphs[i].x = x;
++ pglyphs[i].y = y;
++ pglyphs[i].glyph = g;
++ i++;
++
++ next:
++ x += glyph->info.xOff;
++ y += glyph->info.yOff;
++ }
++ list++;
++ }
++
++ if (!(srcImage = image_from_pict(pSrc, FALSE, &srcXoff, &srcYoff)))
++ goto out;
++
++ if (!(dstImage = image_from_pict(pDst, TRUE, &dstXoff, &dstYoff)))
++ goto out_free_src;
++
++ if (maskFormat) {
++ pixman_format_code_t format;
++ pixman_box32_t extents;
++ int x, y;
++
++ format = maskFormat->format | (maskFormat->depth << 24);
++
++ pixman_glyph_get_extents(glyphCache, n_glyphs, pglyphs, &extents);
++
++ x = extents.x1;
++ y = extents.y1;
++
++ pixman_composite_glyphs(op, srcImage, dstImage, format,
++ xSrc + srcXoff + xDst, ySrc + srcYoff + yDst,
++ x, y,
++ x + dstXoff, y + dstYoff,
++ extents.x2 - extents.x1,
++ extents.y2 - extents.y1,
++ glyphCache, n_glyphs, pglyphs);
++ }
++ else {
++ pixman_composite_glyphs_no_mask(op, srcImage, dstImage,
++ xSrc + srcXoff - xDst, ySrc + srcYoff - yDst,
++ dstXoff, dstYoff,
++ glyphCache, n_glyphs, pglyphs);
++ }
++
++ free_pixman_pict(pDst, dstImage);
++
++out_free_src:
++ free_pixman_pict(pSrc, srcImage);
++
++out:
++ pixman_glyph_cache_thaw(glyphCache);
++ if (pglyphs != stack_glyphs)
++ free(pglyphs);
++}
++
+ static pixman_image_t *
+ create_solid_fill_image(PicturePtr pict)
+ {
+@@ -357,7 +507,8 @@ fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats)
+ return FALSE;
+ ps = GetPictureScreen(pScreen);
+ ps->Composite = fbComposite;
+- ps->Glyphs = miGlyphs;
++ ps->Glyphs = fbGlyphs;
++ ps->UnrealizeGlyph = fbUnrealizeGlyph;
+ ps->CompositeRects = miCompositeRects;
+ ps->RasterizeTrapezoid = fbRasterizeTrapezoid;
+ ps->Trapezoids = fbTrapezoids;
+diff --git a/fb/fbscreen.c b/fb/fbscreen.c
+index 7c7d656..f9080a4 100644
+--- a/fb/fbscreen.c
++++ b/fb/fbscreen.c
+@@ -32,6 +32,7 @@ fbCloseScreen(ScreenPtr pScreen)
+ int d;
+ DepthPtr depths = pScreen->allowedDepths;
+
++ fbDestroyGlyphCache();
+ for (d = 0; d < pScreen->numDepths; d++)
+ free(depths[d].vids);
+ free(depths);
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/libre/iceweasel-libre/PKGBUILD b/libre/iceweasel-libre/PKGBUILD
index 95fc48059..ee79de1f4 100644
--- a/libre/iceweasel-libre/PKGBUILD
+++ b/libre/iceweasel-libre/PKGBUILD
@@ -99,6 +99,17 @@ build() {
cat "$srcdir/mozconfig.pgo" >> .mozconfig
fi
+# From js on abslibre-mips64el.git
+ if [ "$CARCH" = "mips64el" ]; then
+ msg "Force disabling JIT."
+ sed -ri 's/#define ENABLE_(JIT|ASSEMBLER) 1/#define ENABLE_\1 0/' \
+ js/src/assembler/wtf/Platform.h
+ sed -ri 's/ENABLE_(JIT|ASSEMBLER)=1/ENABLE_\1=0/' js/src/Makefile.{in,ref}
+
+ echo "ac_add_options --disable-methodjit" >> .mozconfig
+ echo "ac_add_options --disable-tracejit" >> .mozconfig
+ fi
+
# Fix PRE_RELEASE_SUFFIX
sed -i '/^PRE_RELEASE_SUFFIX := ""/s/ ""//' \
browser/base/Makefile.in
diff --git a/libre/ogre-libre/PKGBUILD b/libre/ogre-libre/PKGBUILD
index 673ee8435..cef33ae90 100644
--- a/libre/ogre-libre/PKGBUILD
+++ b/libre/ogre-libre/PKGBUILD
@@ -7,9 +7,13 @@ pkgname=(
ogre-libre
#ogre-docs
)
+pkgflag=(
+ -libre
+ -docs
+)
pkgver=1.8.1
-pkgrel=2
-pkgdesc='A scene-oriented, flexible 3D engine written in C++, without nonfree nvidia-cg-toolkit support'
+pkgrel=3
+pkgdesc='A scene-oriented, flexible 3D engine written in C++, without nonfree nvidia-cg-toolkit support, nonfree fonts and arts'
arch=(
i686
x86_64
@@ -17,25 +21,28 @@ arch=(
)
url="http://www.${pkgbase}3d.org"
license=(
- 'custom:MIT'
+ 'MIT:(software)'
+ 'cc by-sa:(sinbad character)'
)
depends=(
boost-libs
freeimage
freetype2
+ glu
libxaw
libxrandr
- zziplib
ois
- glu
+ zziplib
)
makedepends=(
boost
cmake
doxygen
graphviz
- ttf-dejavu
+ intel-tbb
mesa
+ #poco
+ ttf-dejavu
)
install=$pkgbase.install
source=(
@@ -52,58 +59,106 @@ build() {
[[ -d build ]] && rm -rf build
mkdir build && cd build
- # generate CMake Makefile
cmake .. \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -D${pkgbase^^}_INSTALL_PLUGINS_HEADERS=TRUE \
- -D${pkgbase^^}_INSTALL_SAMPLES=TRUE \
- -D${pkgbase^^}_INSTALL_DOCS=TRUE \
- -D${pkgbase^^}_INSTALL_MEDIA=TRUE \
- -D${pkgbase^^}_INSTALL_SAMPLES_SOURCE=TRUE \
- -DCMAKE_BUILD_TYPE=Release # set =Debug for debugging version
-
- # compile
- make
+ -DCMAKE_BUILD_TYPE=Release\
+ -DCMAKE_INSTALL_PREFIX=/usr\
+ -DCPACK_PACKAGE_DESCRIPTION_SUMMARY='Libre 3D Graphics Engine'\
+ -D${pkgbase^^}_BUILD_COMPONENT_PAGING=TRUE\
+ -D${pkgbase^^}_BUILD_COMPONENT_PROPERTY=TRUE\
+ -D${pkgbase^^}_BUILD_COMPONENT_RTSHADERSYSTEM=TRUE\
+ -D${pkgbase^^}_BUILD_COMPONENT_TERRAIN=TRUE\
+ -D${pkgbase^^}_BUILD_PLATFORM_APPLE_IOS=FALSE\
+ -D${pkgbase^^}_BUILD_PLUGIN_BSP=TRUE\
+ -D${pkgbase^^}_BUILD_PLUGIN_CG=FALSE\
+ -D${pkgbase^^}_BUILD_PLUGIN_OCTREE=TRUE\
+ -D${pkgbase^^}_BUILD_PLUGIN_PCZ=TRUE\
+ -D${pkgbase^^}_BUILD_PLUGIN_PFX=TRUE\
+ -D${pkgbase^^}_BUILD_RENDERSYSTEM_D3D9=FALSE\
+ -D${pkgbase^^}_BUILD_RENDERSYSTEM_D3D11=FALSE\
+ -D${pkgbase^^}_BUILD_RENDERSYSTEM_GL=TRUE\
+ -D${pkgbase^^}_BUILD_RENDERSYSTEM_GLES=FALSE\
+ -D${pkgbase^^}_BUILD_RENDERSYSTEM_GLES2=FALSE\
+ -D${pkgbase^^}_BUILD_SAMPLES=TRUE\
+ -D${pkgbase^^}_BUILD_TESTS=FALSE\
+ -D${pkgbase^^}_BUILD_TOOLS=TRUE\
+ -D${pkgbase^^}_CONFIG_ENABLE_DDS=TRUE\
+ -D${pkgbase^^}_CONFIG_ENABLE_FREEIMAGE=TRUE\
+ -D${pkgbase^^}_CONFIG_ENABLE_GLES2_CG_SUPPORT=FALSE\
+ -D${pkgbase^^}_CONFIG_ENABLE_GLES2_GLSL_OPTIMISER=FALSE\
+ -D${pkgbase^^}_CONFIG_ENABLE_PVRTC=TRUE\
+ -D${pkgbase^^}_CONFIG_ENABLE_VIEWPORT_ORIENTATIONMODE=TRUE\
+ -D${pkgbase^^}_CONFIG_ENABLE_ZIP=TRUE\
+ -D${pkgbase^^}_CONFIG_NEW_COMPILERS=TRUE\
+ -D${pkgbase^^}_INSTALL_DOCS=TRUE\
+ -D${pkgbase^^}_INSTALL_SAMPLES=TRUE\
+ -D${pkgbase^^}_INSTALL_SAMPLES_SOURCE=TRUE\
+ -D${pkgbase^^}_INSTALL_TOOLS=TRUE\
+ -D${pkgbase^^}_LIB_DIRECTORY=lib\
+ -D${pkgbase^^}_PROFILING=TRUE\
+ -D${pkgbase^^}_USE_BOOST=TRUE
+ make V=0
# generate docs
if [[ $(which dot) && $(which doxygen) ]]; then
- make doc
+ make V=0 doc
fi
}
package_ogre-libre() {
optdepends=(
- 'cppunit: unit testing'
'intel-tbb: better threading support'
- 'poco: portability'
+ #'poco: portability'
"boost: for developing using $pkgbase"
- "$pkgbase-docs: documentation"
+ "$pkgbase${pkgflag[1]}: documentation"
)
provides=(
$pkgbase=$pkgver
)
conflicts=(
- $pkgbase
+ $pkgbase
)
replaces=(
- $pkgbase
+ $pkgbase
)
cd $srcdir/${pkgbase}_src_v${pkgver//./-}/build
- # install the bugger
make DESTDIR=$pkgdir install
- # fix up samples
- install -dm775 -o root -g users $pkgdir/opt/${pkgbase^^}/samples
- mv $pkgdir/usr/share/${pkgbase^^}/*.cfg $pkgdir/opt/${pkgbase^^}/samples
- mv $pkgdir/usr/bin/SampleBrowser $pkgdir/opt/${pkgbase^^}/samples
+ # fix samplebrowser name
+ mv $pkgdir/usr/bin/SampleBrowser $pkgdir/usr/bin/${pkgbase^}SampleBrowser
+
+ ## LIBRE PATCH ##
+ # drop cg shaders, hlsl shaders, unusable headers, unusable samples, nonfree fonts and nonfree arts
+ rm -fv $pkgdir/usr/include/${pkgbase^^}/RTShaderSystem/${pkgbase^}Shader{CG,HLSL}Program{Processor,Writer}.h
+ rm -fv $pkgdir/usr/lib/${pkgbase^^}/Samples/Sample_{BSP,CelShading,Dot3Bump,Fresnel,SSAO}.so
+ rm -fvr $pkgdir/usr/share/${pkgbase^^}/Samples/{BSP,CelShading,Dot3Bump,Fresnel,SSAO}
+ rm -fvr $pkgdir/usr/share/${pkgbase^^}/media/materials/textures/nvidia
+ rm -fv $pkgdir/usr/share/${pkgbase^^}/media/packs/{chiropteraDM.{pk3,txt},cubemapsJS.zip}
+ rm -fvr $pkgdir/usr/share/${pkgbase^^}/media/fonts
+ sed -i -e '
+ /BSP/d
+ /CelShading/d
+ /Dot3Bump/d
+ /Fresnel/d
+ /SSAO/d
+ ' $pkgdir/usr/share/${pkgbase^^}/samples.cfg
+ sed -i -e '
+ /Direct3D9/d
+ /Direct3D11/d
+ /CgProgramManager/d
+ ' $pkgdir/usr/share/${pkgbase^^}/plugins.cfg
+ sed -i -e '
+ /cubemapsJS/d
+ /fonts/d
+ /nvidia/d
+ ' $pkgdir/usr/share/${pkgbase^^}/resources.cfg
+ find $pkgdir -type f -name *.cg -delete
+ find $pkgdir -type f -name *.hlsl -delete
+ rm -fvr $pkgdir/usr/share/${pkgbase^^}/Samples/Browser/Android
+ rm -fvr $pkgdir/usr/share/${pkgbase^^}/Samples/Browser/include/SampleBrowser_{NaCl,OSX,iOS}.h
+ rm -fvr $pkgdir/usr/share/${pkgbase^^}/Samples/Browser/src/FileSystemLayerImpl_{{Android,NaCl,OSX,WIN32}.cpp,iOS.mm}
- # make sample launcher
- echo '#!/bin/bash' > $pkgdir/usr/bin/${pkgbase^}SampleBrowser
- echo 'cd /opt/${pkgbase^^}/samples && ./SampleBrowser' >> $pkgdir/usr/bin/${pkgbase^}SampleBrowser
- chmod +x $pkgdir/usr/bin/${pkgbase^}SampleBrowser
-
# install license
install -Dm644 ../Docs/License.html $pkgdir/usr/share/licenses/$pkgbase/license.html
diff --git a/libre/ogre-libre/ogre.install b/libre/ogre-libre/ogre.install
index 5db668d9e..c05ad1ed3 100644
--- a/libre/ogre-libre/ogre.install
+++ b/libre/ogre-libre/ogre.install
@@ -1,4 +1,3 @@
post_install() {
- echo "To view the OGRE samples just run OgreSampleBrowser or launch"
- echo "it directly in /opt/OGRE/samples/"
+ echo "To view the OGRE samples just run OgreSampleBrowser"
}
diff --git a/libre/psutils-libre/PKGBUILD b/libre/psutils-libre/PKGBUILD
index 25e88f492..3679222b1 100644
--- a/libre/psutils-libre/PKGBUILD
+++ b/libre/psutils-libre/PKGBUILD
@@ -7,12 +7,12 @@
_pkgname=psutils
pkgname=psutils-libre
pkgver=1.17
-pkgrel=3
+pkgrel=3.1
arch=('i686' 'x86_64' 'mips64el')
pkgdesc="A set of postscript utilities"
url="http://www.tardis.ed.ac.uk/~ajcd/psutils/index.html"
license=('custom')
-depends=('glibc' 'gnu-ghostscript')
+depends=('glibc' 'ghostscript')
provides=('psutils-lprng' 'psutils')
replaces=('psutils-lprng' 'psutils')
conflicts=('psutils-lprng' 'psutils')
diff --git a/pcr/mednafen-wip/PKGBUILD b/pcr/mednafen-wip/PKGBUILD
index 2abee7f46..c3e5d6137 100755
--- a/pcr/mednafen-wip/PKGBUILD
+++ b/pcr/mednafen-wip/PKGBUILD
@@ -8,7 +8,7 @@ pkgbase=mednafen
pkgname=mednafen-wip
pkgver=0.9.26
_pkgver=422
-pkgrel=1
+pkgrel=2
pkgdesc='A command-line multi-system gaming emulator, WIP version'
url="http://$pkgbase.sourceforge.net/"
license=(
@@ -20,7 +20,7 @@ arch=(
mips64el
)
depends=(
- jack2
+ jack
'libcdio>=0.83'
sdl-libre
)
diff --git a/pcr/minidjvu/PKGBUILD b/pcr/minidjvu/PKGBUILD
index 168f035cc..700f3c1f6 100644
--- a/pcr/minidjvu/PKGBUILD
+++ b/pcr/minidjvu/PKGBUILD
@@ -4,7 +4,7 @@ pkgname=minidjvu
pkgver=0.8
pkgrel=3
pkgdesc="Highly efficient DjVu encoder for black-and-white images"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://minidjvu.sourceforge.net/"
license=('GPL')
depends=("libtiff")
diff --git a/social/netatalk/PKGBUILD b/social/netatalk/PKGBUILD
index 61ac16c5c..44394b460 100644
--- a/social/netatalk/PKGBUILD
+++ b/social/netatalk/PKGBUILD
@@ -7,7 +7,7 @@
pkgname=netatalk
pkgver=3.0.1
-pkgrel=1
+pkgrel=3
pkgdesc='Open Source AFP fileserver'
arch=('i686' 'x86_64' 'mips64el')
url='http://netatalk.sourceforge.net'
@@ -17,42 +17,36 @@ backup=('etc/afp.conf')
options=('!libtool')
install=$pkgname.install
changelog=$pkgname.changelog
-source=(netatalk.rc http://iweb.dl.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2)
-md5sums=('5e92015b0d9ac77af4b598cca6cb435c'
- '62eb034011bb60b0bfd95072af3693dc')
+source=(http://iweb.dl.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2)
+md5sums=('b4f5c932b2ca99f5292bd6b6d69b3ebc')
build() {
- cd $pkgname-$pkgver
+ cd $pkgname-$pkgver
# TODO what does this fix?
- msg2 'Fixing...'
- sed -i 's/x"linux/x"generic/' macros/netatalk.m4
-
- autoreconf
-
-# disable bundled libevent
- echo -e "all:\ninstall:" >libevent/Makefile
-
- CFLAGS="-Wno-unused-result" \
- LIBS=-levent \
- ./configure --prefix=/usr \
- --disable-static \
- --localstatedir=/etc \
- --sysconfdir=/etc \
- --disable-bundled-libevent \
- --with-cracklib \
- --with-cnid-cdb-backend \
- --enable-pgp-uam \
- --with-init-style=systemd
-
- make
+ msg2 'Fixing...'
+ sed -i 's/x"linux/x"generic/' macros/netatalk.m4
+ sed -i 's:/lib:/usr/lib:' distrib/initscripts/Makefile.{am,in}
+
+ autoreconf
+
+ CFLAGS="-Wno-unused-result" \
+ ./configure --prefix=/usr \
+ --disable-static \
+ --localstatedir=/var/state \
+ --sysconfdir=/etc \
+ --with-init-style=systemd \
+ --with-cracklib \
+ --with-cnid-cdb-backend \
+ --enable-pgp-uam \
+ --without-libevent-header \
+ --without-libevent-lib
+
+ sed -i -e s/-Ino// -e s/-Lno// etc/netatalk/Makefile
+ make
}
package() {
- cd $pkgname-$pkgver
- make DESTDIR="$pkgdir" install
+ cd $pkgname-$pkgver
- msg2 'Copying initscripts...'
- install -D -m755 "$srcdir"/netatalk.rc "$pkgdir"/etc/rc.d/netatalk
+ make DESTDIR="$pkgdir" install
}
-md5sums=('5e92015b0d9ac77af4b598cca6cb435c'
- 'b4f5c932b2ca99f5292bd6b6d69b3ebc')
diff --git a/social/netatalk/netatalk.changelog b/social/netatalk/netatalk.changelog
index b577562d4..b1ada018b 100644
--- a/social/netatalk/netatalk.changelog
+++ b/social/netatalk/netatalk.changelog
@@ -1,3 +1,21 @@
+2012-10-08 SJ_UnderWater
+
+ * 3.0.1-3 :
+ moved systemd from /etc
+ better rc.d install test
+
+2012-10-05 SJ_UnderWater
+
+ * 3.0.1-2 :
+ removed rc.d references
+
+2012-10-04 SJ_UnderWater
+
+ * 3.0.1-1 :
+ new version
+ moved to systemd
+ moved state to /var/db
+
2012-07-14 SJ_UnderWater
* 3.0-3 :
diff --git a/social/netatalk/netatalk.install b/social/netatalk/netatalk.install
index a385add10..629586531 100644
--- a/social/netatalk/netatalk.install
+++ b/social/netatalk/netatalk.install
@@ -2,11 +2,11 @@ post_install() {
post_upgrade
}
post_upgrade() {
- if [ "`grep -E '(cnid|atalkd|afpd)' /etc/rc.conf`" ];then
+ if [ -f /etc/rc.conf ] && [ "`grep -E '(cnid|atalkd|afpd)' /etc/rc.conf`" ];then
echo '>>> Detected old netatalk daemon entries in';
echo '>>> /etc/rc.conf, please replace these with';
echo '>>> "netatalk" before restarting!';
- else echo '>>> Add "netatalk" to your DAEMONS list in /etc/rc.conf';fi
+ else echo '>>> Add "netatalk" to your DAEMONS list';fi
echo '>>>';
if [ -f /etc/avahi/services/adisk.service ] ||
[ -f /etc/avahi/services/afpd.service ];then
@@ -18,6 +18,3 @@ post_upgrade() {
echo '>>> Found *.conf in /opt/netatalk, please';
echo '>>> migrate these to /etc/netatalk before restarting';fi
}
-pre_remove() {
- rc.d stop netatalk
-}