diff options
author | root <root@rshg054.dnsready.net> | 2013-03-14 00:05:24 -0700 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2013-03-14 00:05:24 -0700 |
commit | 3ff20dedff636571ad0faa4736af5b23e4623ffe (patch) | |
tree | ab4a70fe4e4a9113ff3483d8635eb46f8994c12a /community | |
parent | 3efd178c050d911cfdff7e8d2ed4886b98b08b98 (diff) |
Thu Mar 14 00:05:23 PDT 2013
Diffstat (limited to 'community')
31 files changed, 1441 insertions, 84 deletions
diff --git a/community/fcitx/PKGBUILD b/community/fcitx/PKGBUILD index 20f77977a..342bacbff 100644 --- a/community/fcitx/PKGBUILD +++ b/community/fcitx/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 85343 2013-03-01 10:30:04Z andrea $ +# $Id: PKGBUILD 86209 2013-03-13 05:41:43Z fyan $ # Maintainer: Felix Yan <felixonmars@gmail.com> # Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: csslayer <wengxt AT gmail com> @@ -6,21 +6,26 @@ pkgbase=fcitx pkgname=('fcitx' 'fcitx-gtk2' 'fcitx-gtk3' 'fcitx-qt4') pkgver=4.2.7 -pkgrel=3 +pkgrel=4 groups=('fcitx-im') arch=('i686' 'x86_64') url="http://code.google.com/p/fcitx/" license=('GPL') makedepends=('cmake' 'doxygen' 'gtk2' 'gtk3' 'qt4' 'icu' 'mesa' \ 'iso-codes' 'gobject-introspection' 'libxkbfile') -source=(http://fcitx.googlecode.com/files/${pkgbase}-${pkgver}_dict.tar.xz) +source=(http://fcitx.googlecode.com/files/${pkgbase}-${pkgver}_dict.tar.xz + https://github.com/fcitx/fcitx/commit/9937b68bad3a7e9465e17b711ce9c0a072d3071f.patch) build() { #source /etc/profile.d/qt4.sh - cd "${srcdir}" + cd "$srcdir/$pkgbase-$pkgver" + patch -Np1 -i "$srcdir/9937b68bad3a7e9465e17b711ce9c0a072d3071f.patch" + + cd "$srcdir" mkdir -p build cd build + cmake ../${pkgbase}-${pkgver} \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ @@ -30,7 +35,8 @@ build() { -DENABLE_TEST=ON \ -DENABLE_GTK2_IM_MODULE=ON \ -DENABLE_GTK3_IM_MODULE=ON \ - -DENABLE_QT_IM_MODULE=ON + -DENABLE_QT_IM_MODULE=ON \ + -DQT_QMAKE_EXECUTABLE=qmake-qt4 make } @@ -115,4 +121,5 @@ package_fcitx-qt4() { make DESTDIR="${pkgdir}" install } -md5sums=('6e291717c24615b9dc9bfaa2949af3a7') +md5sums=('6e291717c24615b9dc9bfaa2949af3a7' + '009e0cd17f078e24c03b3b46b45e41ab') diff --git a/community/gpsdrive/PKGBUILD b/community/gpsdrive/PKGBUILD index e6fd25a96..cd2a4dbf8 100644 --- a/community/gpsdrive/PKGBUILD +++ b/community/gpsdrive/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 83255 2013-01-28 16:49:42Z stephane $ +# $Id: PKGBUILD 86225 2013-03-13 15:08:23Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: Tom Newsom <Jeepster@gmx.co.uk> # Maintainer: damir <damir@archlinux.org> @@ -6,7 +6,7 @@ pkgname=gpsdrive pkgver=2.11 _pkgver=20120928 -pkgrel=15 +pkgrel=16 pkgdesc="A car (bike, ship, plane) navigation system" arch=("i686" "x86_64") url="http://www.gpsdrive.de/" diff --git a/community/gsmartcontrol/PKGBUILD b/community/gsmartcontrol/PKGBUILD index 5ed813a1d..852b0ea58 100644 --- a/community/gsmartcontrol/PKGBUILD +++ b/community/gsmartcontrol/PKGBUILD @@ -2,18 +2,18 @@ pkgname=gsmartcontrol pkgver=0.8.7 -pkgrel=2 +pkgrel=3 pkgdesc="A graphical user interface for the smartctl hard disk drive health inspection tool." arch=('i686' 'x86_64') url="http://gsmartcontrol.berlios.de/home/index.php/en/Home" license=('GPL3') -depends=('smartmontools' 'pcre' 'gtkmm' 'libglademm' 'glib2' 'xorg-xmessage') -optdepends=('polkit: to run gparted directly from menu') +depends=('smartmontools' 'gtkmm' 'xorg-xmessage' 'hicolor-icon-theme' 'polkit') +optdepends=('polkit-gnome: to run gsmartcontrol directly from menu') install=${pkgname}.install -source=(http://download.berlios.de/gsmartcontrol/${pkgname}-${pkgver}.tar.bz2 org.archlinux.pkexec.gsmartcontrol.policy gsmartcontrol.desktop) +source=(http://download.berlios.de/gsmartcontrol/${pkgname}-${pkgver}.tar.bz2 + org.archlinux.pkexec.gsmartcontrol.policy) md5sums=('6d104c2ffc1e693cd1a8052a6d7e3b30' - 'e7b9380849cdcaa4356a42559ea7954f' - '19b20293a639e51fa2abb929a3faae01') + 'e403f8e06e6b8a3d1a99da5e584b2257') build() { cd ${srcdir}/${pkgname}-${pkgver} @@ -31,11 +31,20 @@ package() { make DESTDIR=${pkgdir} install - # Install pexec fixed desktop file - install -Dm755 $srcdir/gsmartcontrol.desktop $pkgdir/usr/share/applications/gsmartcontrol.desktop + # We need rename the original binary + mv "${pkgdir}/usr/bin/gsmartcontrol" "${pkgdir}/usr/bin/gsmartcontrol.elf" - # Install pexec file - install -Dm766 $srcdir/org.archlinux.pkexec.gsmartcontrol.policy \ - $pkgdir/usr/share/polkit-1/actions/org.archlinux.pkexec.gsmartcontrol.policy + # Install launcher script + echo '#!/bin/sh' > ${pkgdir}/usr/bin/gsmartcontrol + echo 'pkexec --disable-internal-agent "/usr/bin/gsmartcontrol.elf" "$@"' \ + >> ${pkgdir}/usr/bin/gsmartcontrol + chmod 755 ${pkgdir}/usr/bin/gsmartcontrol + + # Modify desktop file + sed -i -e "s|^Exec=.*|Exec=/usr/bin/gsmartcontrol|" \ + "${pkgdir}/usr/share/applications/gsmartcontrol.desktop" - } + # Install policy file + install -Dm766 $srcdir/org.archlinux.pkexec.gsmartcontrol.policy \ + $pkgdir/usr/share/polkit-1/actions/org.archlinux.pkexec.gsmartcontrol.policy +} diff --git a/community/gsmartcontrol/gsmartcontrol.install b/community/gsmartcontrol/gsmartcontrol.install index b95cc069d..f636406f2 100644 --- a/community/gsmartcontrol/gsmartcontrol.install +++ b/community/gsmartcontrol/gsmartcontrol.install @@ -1,9 +1,12 @@ post_install() { which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true + echo 'If you use a lightweight windowmanager, remember to run' + echo '/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 to enable' + echo 'graphical authentication, which may be needed for pkexec to work.' } post_upgrade() { - post_install $1 + which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true } post_remove() { diff --git a/community/gsmartcontrol/org.archlinux.pkexec.gsmartcontrol.policy b/community/gsmartcontrol/org.archlinux.pkexec.gsmartcontrol.policy index fb985df87..b71db7904 100644 --- a/community/gsmartcontrol/org.archlinux.pkexec.gsmartcontrol.policy +++ b/community/gsmartcontrol/org.archlinux.pkexec.gsmartcontrol.policy @@ -5,14 +5,14 @@ <policyconfig> <action id="org.archlinux.pkexec.gsmartcontrol"> - <message>Authentication is required to run the gsmartcontrol</message> + <message>Authentication is required to run the GSmartControl</message> <icon_name>gsmartcontrol</icon_name> <defaults> <allow_any>auth_admin</allow_any> <allow_inactive>auth_admin</allow_inactive> <allow_active>auth_admin</allow_active> </defaults> - <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/gsmartcontrol</annotate> + <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/gsmartcontrol.elf</annotate> <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate> </action> diff --git a/community/haveged/PKGBUILD b/community/haveged/PKGBUILD index d73c5f102..730e487fc 100644 --- a/community/haveged/PKGBUILD +++ b/community/haveged/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 84580 2013-02-20 05:11:56Z bpiotrowski $ +# $Id: PKGBUILD 86237 2013-03-13 19:59:28Z bpiotrowski $ # Maintainer: Bartłomiej Piotrowski <barthalion@gmail.com> # Contributor: kfgz <kfgz at interia dot pl> # Contributor: pootzko <pootzko at gmail dot com> pkgname=haveged -pkgver=1.7 +pkgver=1.7a pkgrel=1 pkgdesc='Entropy harvesting daemon using CPU timings' arch=('i686' 'x86_64') @@ -12,18 +12,12 @@ url='http://www.issihosts.com/haveged' license=('GPL') depends=('glibc') source=($url/$pkgname-$pkgver.tar.gz - service - haveged-1.7-build.patch) -sha256sums=('9ec85438386a46d5c3fe7b5b121cafd89c34bae68cbbfb4cecb1ff5622111013' - '85aed005b7d0d0bae74f7fc0ca70907a6f67ddbcb2df77ca004f9a919028564a' - '94c77b1d2d80eb5fb30bab4aeb560e6dfe9957654cd3ed915478d2ce67ac37b7') + service) +sha256sums=('8e7b0779bd8a4b9b73769ddaf626918355e2a542d3ac35e5ec31b74a58b9b051' + '85aed005b7d0d0bae74f7fc0ca70907a6f67ddbcb2df77ca004f9a919028564a') build() { cd $srcdir/$pkgname-$pkgver - - patch -Np1 -i $srcdir/haveged-1.7-build.patch - aclocal && libtoolize --force && automake --add-missing && autoreconf - ./configure --prefix=/usr make } diff --git a/community/i3-wm/PKGBUILD b/community/i3-wm/PKGBUILD index 071f832f3..c25ad2edb 100644 --- a/community/i3-wm/PKGBUILD +++ b/community/i3-wm/PKGBUILD @@ -1,25 +1,25 @@ -# $Id: PKGBUILD 81566 2012-12-24 12:23:53Z ttoepper $ +# $Id: PKGBUILD 86213 2013-03-13 09:19:21Z ttoepper $ # Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de> pkgname=i3-wm _pkgsourcename=i3 -pkgver=4.4 -pkgrel=2 +pkgver=4.5 +pkgrel=1 pkgdesc="An improved dynamic tiling window manager" arch=('i686' 'x86_64') url="http://i3wm.org/" license=('BSD') replaces=("i3" "i3bar") groups=("i3") -depends=('libxcursor' 'xcb-util-keysyms' 'xcb-util-wm' 'libev' 'yajl' 'startup-notification' 'pango') +depends=('libxcursor' 'xcb-util-keysyms' 'xcb-util-wm' 'libev' 'yajl' + 'startup-notification' 'pango' 'perl') makedepends=('bison' 'flex') optdepends=('dmenu: As menu.' 'i3lock: For locking your screen.' - 'i3status: To display systeminformation with a bar.' - 'perl: To migrate your configuration to v4 format.') + 'i3status: To display systeminformation with a bar.') options=('docs' '!strip') source=("http://i3wm.org/downloads/${_pkgsourcename}-${pkgver}.tar.bz2") -md5sums=('fa2b8aae3d2e10c5ee480bd370366f5b') +md5sums=('9eea2f570ec19affa3ec60b5ab411497') build() { cd "$srcdir/$_pkgsourcename-$pkgver" diff --git a/community/libvirt/PKGBUILD b/community/libvirt/PKGBUILD index cbf475f88..96defe4c9 100644 --- a/community/libvirt/PKGBUILD +++ b/community/libvirt/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 85917 2013-03-08 23:40:42Z foutrelis $ +# $Id: PKGBUILD 86217 2013-03-13 13:30:48Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: Jonathan Wiersma <archaur at jonw dot org> pkgname=libvirt pkgver=1.0.3 -pkgrel=3rc2 +pkgrel=4 pkgdesc="API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)" arch=('i686' 'x86_64') url="http://libvirt.org/" @@ -30,13 +30,13 @@ backup=('etc/conf.d/libvirtd' 'etc/libvirt/qemu.conf' 'etc/sasl2/libvirt.conf') install="libvirt.install" -source=("http://libvirt.org/sources/$pkgname-$pkgver-rc2.tar.gz" +source=("http://libvirt.org/sources/$pkgname-$pkgver.tar.gz" libvirtd.rc.d libvirtd.conf.d libvirtd-guests.rc.d libvirtd-guests.conf.d libvirt.tmpfiles.d) -md5sums=('d03a65be35c455bc09ee96df66ea2c4d' +md5sums=('3d9f85d586c9aa3d819b626622f3fc97' 'c43244c40a0437038c82089618e7beaa' '3ed0e24f5b5e25bf553f5427d64915e6' '0ee5b6c58590ff392a266f20f7928d1f' diff --git a/community/lightdm-gtk2-greeter/PKGBUILD b/community/lightdm-gtk2-greeter/PKGBUILD new file mode 100755 index 000000000..153294933 --- /dev/null +++ b/community/lightdm-gtk2-greeter/PKGBUILD @@ -0,0 +1,40 @@ +# $Id: PKGBUILD 86201 2013-03-13 00:23:53Z alucryd $ +# Maintainer: Maxime Gauduin <alucryd@gmail.com> +# Contributor: Padfoot <padfoot@exemail.com.au> + +pkgname=lightdm-gtk2-greeter +pkgver=1.5.1 +pkgrel=3 +pkgdesc="GTK+ greeter for LightDM" +arch=('i686' 'x86_64') +url="https://launchpad.net/lightdm-gtk-greeter" +license=('GPL3' 'LGPL3') +depends=('gtk2' 'lightdm') +makedepends=('exo' 'gnome-common' 'gnome-doc-utils' 'gobject-introspection' 'intltool') +provides=("${pkgname/2/}") +conflicts=("${pkgname/2/3}") +backup=('etc/lightdm/lightdm-gtk-greeter.conf') +source=("https://launchpad.net/${pkgname/2/}/1.6/${pkgver}/+download/${pkgname/2/}-${pkgver}.tar.gz" + "onscreen-keyboard.patch") +sha256sums=('ecce7e917a79fa8f2126c3fafb6337f81f2198892159a4ef695016afecd2d621' + '381c4da15ed2482800aaf3258217cd48c2313aee5da4f7ade77f7ef55659d0b9') + +build() { + cd "${srcdir}"/${pkgname/2/}-${pkgver} + +# Patch + patch -Np1 -i ../onscreen-keyboard.patch + +# Build + AUTOMAKE=automake ./autogen.sh --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/lightdm --disable-static --with-gtk2 + make +} + +package() { + cd "${srcdir}"/${pkgname/2/}-${pkgver} + +# Install + make DESTDIR="${pkgdir}" install +} + +# vim: ts=2 sw=2 et: diff --git a/community/lightdm-gtk2-greeter/onscreen-keyboard.patch b/community/lightdm-gtk2-greeter/onscreen-keyboard.patch new file mode 100755 index 000000000..6db01d3f6 --- /dev/null +++ b/community/lightdm-gtk2-greeter/onscreen-keyboard.patch @@ -0,0 +1,306 @@ +diff -aur lightdm-gtk-greeter-1.5.1.src/data/lightdm-gtk-greeter.conf lightdm-gtk-greeter-1.5.1.patch/data/lightdm-gtk-greeter.conf +--- lightdm-gtk-greeter-1.5.1.src/data/lightdm-gtk-greeter.conf 2013-02-11 00:19:17.000000000 +1100 ++++ lightdm-gtk-greeter-1.5.1.patch/data/lightdm-gtk-greeter.conf 2013-02-20 19:17:39.382817993 +1100 +@@ -9,6 +9,7 @@ + # xft-rgba = Type of subpixel antialiasing (none, rgb, bgr, vrgb or vbgr) + # show-language-selector (true or false) + # show-indicators = semi-colon ";" separated list of allowed indicator modules (e.g. indicator-sound.so) ++# keyboard = Command to launch on screen keyboard. Ensure it does not steal focus. + # + [greeter] + #background= +@@ -21,3 +22,4 @@ + #xft-rgba= + #show-language-selector= + #show-indicators= ++#keyboard= +diff -aur lightdm-gtk-greeter-1.5.1.src/src/lightdm-gtk-greeter.c lightdm-gtk-greeter-1.5.1.patch/src/lightdm-gtk-greeter.c +--- lightdm-gtk-greeter-1.5.1.src/src/lightdm-gtk-greeter.c 2013-02-11 00:48:21.000000000 +1100 ++++ lightdm-gtk-greeter-1.5.1.patch/src/lightdm-gtk-greeter.c 2013-02-20 20:09:30.219150045 +1100 +@@ -23,6 +23,7 @@ + #include <cairo-xlib.h> + #include <gdk-pixbuf/gdk-pixbuf.h> + #include <gdk/gdkx.h> ++#include <glib.h> + + #ifdef HAVE_LIBINDICATOR + #include <libindicator/indicator-object.h> +@@ -44,6 +45,7 @@ + static GtkComboBox *user_combo; + static GtkComboBox *session_combo; + static GtkComboBox *language_combo; ++static GtkCheckMenuItem *keyboard_menuitem; + static gchar *default_font_name, *default_theme_name, *default_icon_theme_name; + static GdkPixbuf *default_background_pixbuf = NULL; + #if GTK_CHECK_VERSION (3, 0, 0) +@@ -52,6 +54,10 @@ + static GdkColor *default_background_color = NULL; + #endif + static gboolean cancelling = FALSE, prompted = FALSE; ++static gchar **a11y_keyboard_command; ++static int a11y_kbd_pid = 0; ++static GPid *a11y_keyboard_pid = &a11y_kbd_pid; ++static GError *a11y_keyboard_error; + + + #ifdef HAVE_LIBINDICATOR +@@ -649,7 +655,10 @@ + if (lightdm_greeter_get_is_authenticated (greeter)) + { + if (prompted) +- start_session (); ++ { ++ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (keyboard_menuitem), FALSE); ++ start_session (); ++ } + } + else + { +@@ -864,6 +873,32 @@ + } + } + ++void a11y_keyboard_cb (GtkWidget *widget); ++G_MODULE_EXPORT ++void ++a11y_keyboard_cb (GtkWidget *widget) ++{ ++ if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) ++ { ++ if (!g_spawn_async(NULL, a11y_keyboard_command, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, a11y_keyboard_pid, &a11y_keyboard_error)) ++ { ++ g_debug ("a11y keyboard command error : '%s'", a11y_keyboard_error->message); ++ a11y_kbd_pid = 0; ++ g_clear_error(&a11y_keyboard_error); ++ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), FALSE); ++ } ++ } ++ else ++ { ++ if (a11y_kbd_pid != 0) ++ { ++ kill (a11y_kbd_pid, SIGTERM); ++ g_spawn_close_pid(*a11y_keyboard_pid); ++ a11y_kbd_pid = 0; ++ } ++ } ++} ++ + static void + sigterm_cb (int signum) + { +@@ -1190,6 +1225,13 @@ + g_object_set (gtk_settings_get_default (), "gtk-xft-rgba", value, NULL); + g_free (value); + ++ /* Get a11y on screen keyboard command*/ ++ gint argp; ++ value = g_key_file_get_value (config, "greeter", "keyboard", NULL); ++ g_debug ("a11y keyboard command is '%s'", value); ++ g_shell_parse_argv (value, &argp, &a11y_keyboard_command, NULL); ++ g_free (value); ++ + builder = gtk_builder_new (); + if (!gtk_builder_add_from_string (builder, lightdm_gtk_greeter_ui, + lightdm_gtk_greeter_ui_length, &error)) +@@ -1212,6 +1254,7 @@ + language_combo = GTK_COMBO_BOX (gtk_builder_get_object (builder, "language_combobox")); + panel_window = GTK_WINDOW (gtk_builder_get_object (builder, "panel_window")); + user_avatar = GTK_IMAGE (gtk_builder_get_object (builder, "user_avatar")); ++ keyboard_menuitem = GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "keyboard_menuitem")); + + gtk_label_set_text (GTK_LABEL (gtk_builder_get_object (builder, "hostname_label")), lightdm_get_hostname ()); + +@@ -1264,7 +1307,7 @@ + #endif + gtk_widget_show (hbox); + gtk_container_add (GTK_CONTAINER (menuitem), hbox); +- image = gtk_image_new_from_icon_name ("system-shutdown", GTK_ICON_SIZE_MENU); ++ image = gtk_image_new_from_icon_name ("system-shutdown", GTK_ICON_SIZE_BUTTON); + gtk_widget_show (image); + gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0); + +@@ -1276,7 +1319,7 @@ + #endif + gtk_widget_show (hbox); + gtk_container_add (GTK_CONTAINER (menuitem), hbox); +- image = gtk_image_new_from_icon_name ("preferences-desktop-accessibility", GTK_ICON_SIZE_MENU); ++ image = gtk_image_new_from_icon_name ("preferences-desktop-accessibility", GTK_ICON_SIZE_BUTTON); + gtk_widget_show (image); + gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0); + +@@ -1377,6 +1420,11 @@ + gtk_widget_show (GTK_WIDGET (login_window)); + gdk_window_focus (gtk_widget_get_window (GTK_WIDGET (login_window)), GDK_CURRENT_TIME); + ++ if (a11y_keyboard_command) ++ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (keyboard_menuitem), TRUE); ++ else ++ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (builder, "keyboard_menuitem"))); ++ + gtk_main (); + + if (default_background_pixbuf) +diff -aur lightdm-gtk-greeter-1.5.1.src/src/lightdm-gtk-greeter.glade lightdm-gtk-greeter-1.5.1.patch/src/lightdm-gtk-greeter.glade +--- lightdm-gtk-greeter-1.5.1.src/src/lightdm-gtk-greeter.glade 2013-02-10 23:48:19.000000000 +1100 ++++ lightdm-gtk-greeter-1.5.1.patch/src/lightdm-gtk-greeter.glade 2013-02-20 17:11:01.968469713 +1100 +@@ -215,6 +215,7 @@ + <object class="GtkWindow" id="panel_window"> + <property name="name">panel_window</property> + <property name="can_focus">False</property> ++ <property name="default_height">40</property> + <property name="decorated">False</property> + <property name="has_resize_grip">False</property> + <child> +@@ -309,6 +310,16 @@ + <signal name="toggled" handler="a11y_contrast_cb" swapped="no"/> + </object> + </child> ++ <child> ++ <object class="GtkCheckMenuItem" id="keyboard_menuitem"> ++ <property name="name">keyboard_menuitem</property> ++ <property name="visible">True</property> ++ <property name="can_focus">False</property> ++ <property name="use_action_appearance">False</property> ++ <property name="label" translatable="yes">On Screen Keyboard</property> ++ <signal name="toggled" handler="a11y_keyboard_cb" swapped="no"/> ++ </object> ++ </child> + </object> + </child> + </object> +diff -aur lightdm-gtk-greeter-1.5.1.src/src/lightdm-gtk-greeter-ui.h lightdm-gtk-greeter-1.5.1.patch/src/lightdm-gtk-greeter-ui.h +--- lightdm-gtk-greeter-1.5.1.src/src/lightdm-gtk-greeter-ui.h 2013-02-11 01:46:04.000000000 +1100 ++++ lightdm-gtk-greeter-1.5.1.patch/src/lightdm-gtk-greeter-ui.h 2013-02-20 17:52:56.172967000 +1100 +@@ -108,66 +108,73 @@ + "\">3</property></packing></child></object></child><child type=\"tab\"><" + "placeholder/></child></object></child></object><object class=\"GtkWindo" + "w\" id=\"panel_window\"><property name=\"name\">panel_window</property>" +- "<property name=\"can_focus\">False</property><property name=\"decorated" +- "\">False</property><property name=\"has_resize_grip\">False</property><" +- "child><object class=\"GtkMenuBar\" id=\"menubar\"><property name=\"name" +- "\">menubar</property><property name=\"visible\">True</property><propert" +- "y name=\"can_focus\">False</property><property name=\"pack_direction\">" +- "rtl</property><child><object class=\"GtkMenuItem\" id=\"power_menuitem\"" +- "><property name=\"name\">power_menuitem</property><property name=\"visi" +- "ble\">True</property><property name=\"can_focus\">False</property><prop" +- "erty name=\"use_action_appearance\">False</property><child type=\"subme" +- "nu\"><object class=\"GtkMenu\" id=\"power_menu\"><property name=\"name\"" +- ">power_menu</property><property name=\"visible\">True</property><proper" +- "ty name=\"can_focus\">False</property><child><object class=\"GtkMenuIte" +- "m\" id=\"suspend_menuitem\"><property name=\"name\">suspend_menuitem</p" +- "roperty><property name=\"visible\">True</property><property name=\"can_" +- "focus\">False</property><property name=\"use_action_appearance\">False<" +- "/property><property name=\"label\" translatable=\"yes\">Suspend</proper" +- "ty><signal name=\"activate\" handler=\"suspend_cb\" swapped=\"no\"/></o" +- "bject></child><child><object class=\"GtkMenuItem\" id=\"hibernate_menui" +- "tem\"><property name=\"name\">hibernate_menuitem</property><property na" +- "me=\"visible\">True</property><property name=\"can_focus\">False</prope" +- "rty><property name=\"use_action_appearance\">False</property><property " +- "name=\"label\" translatable=\"yes\">Hibernate</property><signal name=\"" +- "activate\" handler=\"hibernate_cb\" swapped=\"no\"/></object></child><c" +- "hild><object class=\"GtkMenuItem\" id=\"restart_menuitem\"><property na" +- "me=\"name\">restart_menuitem</property><property name=\"visible\">True<" +- "/property><property name=\"can_focus\">False</property><property name=\"" +- "use_action_appearance\">False</property><property name=\"label\" transl" +- "atable=\"yes\">Restart...</property><signal name=\"activate\" handler=\"" +- "restart_cb\" swapped=\"no\"/></object></child><child><object class=\"Gt" +- "kMenuItem\" id=\"shutdown_menuitem\"><property name=\"name\">shutdown_m" +- "enuitem</property><property name=\"visible\">True</property><property n" +- "ame=\"can_focus\">False</property><property name=\"use_action_appearanc" +- "e\">False</property><property name=\"label\" translatable=\"yes\">Shutd" +- "own...</property><signal name=\"activate\" handler=\"shutdown_cb\" swap" +- "ped=\"no\"/></object></child></object></child></object></child><child><" +- "object class=\"GtkMenuItem\" id=\"a11y_menuitem\"><property name=\"name" +- "\">a11y_menuitem</property><property name=\"visible\">True</property><p" +- "roperty name=\"can_focus\">False</property><property name=\"use_action_" +- "appearance\">False</property><child type=\"submenu\"><object class=\"Gt" +- "kMenu\" id=\"a11y_menu\"><property name=\"name\">a11y_menu</property><p" +- "roperty name=\"visible\">True</property><property name=\"can_focus\">Fa" +- "lse</property><child><object class=\"GtkCheckMenuItem\" id=\"large_font" +- "_menuitem\"><property name=\"name\">large_font_menuitem</property><prop" ++ "<property name=\"can_focus\">False</property><property name=\"default_h" ++ "eight\">40</property><property name=\"decorated\">False</property><prop" ++ "erty name=\"has_resize_grip\">False</property><child><object class=\"Gt" ++ "kMenuBar\" id=\"menubar\"><property name=\"name\">menubar</property><pr" ++ "operty name=\"visible\">True</property><property name=\"can_focus\">Fal" ++ "se</property><property name=\"pack_direction\">rtl</property><child><ob" ++ "ject class=\"GtkMenuItem\" id=\"power_menuitem\"><property name=\"name\"" ++ ">power_menuitem</property><property name=\"visible\">True</property><pr" ++ "operty name=\"can_focus\">False</property><property name=\"use_action_a" ++ "ppearance\">False</property><child type=\"submenu\"><object class=\"Gtk" ++ "Menu\" id=\"power_menu\"><property name=\"name\">power_menu</property><" ++ "property name=\"visible\">True</property><property name=\"can_focus\">F" ++ "alse</property><child><object class=\"GtkMenuItem\" id=\"suspend_menuit" ++ "em\"><property name=\"name\">suspend_menuitem</property><property name=" ++ "\"visible\">True</property><property name=\"can_focus\">False</property" ++ "><property name=\"use_action_appearance\">False</property><property nam" ++ "e=\"label\" translatable=\"yes\">Suspend</property><signal name=\"activ" ++ "ate\" handler=\"suspend_cb\" swapped=\"no\"/></object></child><child><o" ++ "bject class=\"GtkMenuItem\" id=\"hibernate_menuitem\"><property name=\"" ++ "name\">hibernate_menuitem</property><property name=\"visible\">True</pr" ++ "operty><property name=\"can_focus\">False</property><property name=\"us" ++ "e_action_appearance\">False</property><property name=\"label\" translat" ++ "able=\"yes\">Hibernate</property><signal name=\"activate\" handler=\"hi" ++ "bernate_cb\" swapped=\"no\"/></object></child><child><object class=\"Gt" ++ "kMenuItem\" id=\"restart_menuitem\"><property name=\"name\">restart_men" ++ "uitem</property><property name=\"visible\">True</property><property nam" ++ "e=\"can_focus\">False</property><property name=\"use_action_appearance\"" ++ ">False</property><property name=\"label\" translatable=\"yes\">Restart." ++ "..</property><signal name=\"activate\" handler=\"restart_cb\" swapped=\"" ++ "no\"/></object></child><child><object class=\"GtkMenuItem\" id=\"shutdo" ++ "wn_menuitem\"><property name=\"name\">shutdown_menuitem</property><prop" + "erty name=\"visible\">True</property><property name=\"can_focus\">False" + "</property><property name=\"use_action_appearance\">False</property><pr" +- "operty name=\"label\" translatable=\"yes\">Large Font</property><signal" +- " name=\"toggled\" handler=\"a11y_font_cb\" swapped=\"no\"/></object></c" +- "hild><child><object class=\"GtkCheckMenuItem\" id=\"high_contrast_menui" +- "tem\"><property name=\"name\">high_contrast_menuitem</property><propert" +- "y name=\"visible\">True</property><property name=\"can_focus\">False</p" +- "roperty><property name=\"use_action_appearance\">False</property><prope" +- "rty name=\"label\" translatable=\"yes\">High Contrast</property><signal" +- " name=\"toggled\" handler=\"a11y_contrast_cb\" swapped=\"no\"/></object" +- "></child></object></child></object></child></object></child></object><o" +- "bject class=\"GtkListStore\" id=\"session_liststore\"><columns><column " +- "type=\"gchararray\"/><column type=\"gchararray\"/></columns></object><o" +- "bject class=\"GtkListStore\" id=\"user_liststore\"><columns><column typ" +- "e=\"gchararray\"/><column type=\"gchararray\"/><column type=\"gint\"/><" +- "/columns></object></interface>" ++ "operty name=\"label\" translatable=\"yes\">Shutdown...</property><signa" ++ "l name=\"activate\" handler=\"shutdown_cb\" swapped=\"no\"/></object></" ++ "child></object></child></object></child><child><object class=\"GtkMenuI" ++ "tem\" id=\"a11y_menuitem\"><property name=\"name\">a11y_menuitem</prope" ++ "rty><property name=\"visible\">True</property><property name=\"can_focu" ++ "s\">False</property><property name=\"use_action_appearance\">False</pro" ++ "perty><child type=\"submenu\"><object class=\"GtkMenu\" id=\"a11y_menu\"" ++ "><property name=\"name\">a11y_menu</property><property name=\"visible\"" ++ ">True</property><property name=\"can_focus\">False</property><child><ob" ++ "ject class=\"GtkCheckMenuItem\" id=\"large_font_menuitem\"><property na" ++ "me=\"name\">large_font_menuitem</property><property name=\"visible\">Tr" ++ "ue</property><property name=\"can_focus\">False</property><property nam" ++ "e=\"use_action_appearance\">False</property><property name=\"label\" tr" ++ "anslatable=\"yes\">Large Font</property><signal name=\"toggled\" handle" ++ "r=\"a11y_font_cb\" swapped=\"no\"/></object></child><child><object clas" ++ "s=\"GtkCheckMenuItem\" id=\"high_contrast_menuitem\"><property name=\"n" ++ "ame\">high_contrast_menuitem</property><property name=\"visible\">True<" ++ "/property><property name=\"can_focus\">False</property><property name=\"" ++ "use_action_appearance\">False</property><property name=\"label\" transl" ++ "atable=\"yes\">High Contrast</property><signal name=\"toggled\" handler" ++ "=\"a11y_contrast_cb\" swapped=\"no\"/></object></child><child><object c" ++ "lass=\"GtkCheckMenuItem\" id=\"keyboard_menuitem\"><property name=\"nam" ++ "e\">keyboard_menuitem</property><property name=\"visible\">True</proper" ++ "ty><property name=\"can_focus\">False</property><property name=\"use_ac" ++ "tion_appearance\">False</property><property name=\"label\" translatable" ++ "=\"yes\">On Screen Keyboard</property><signal name=\"toggled\" handler=" ++ "\"a11y_keyboard_cb\" swapped=\"no\"/></object></child></object></child>" ++ "</object></child></object></child></object><object class=\"GtkListStore" ++ "\" id=\"session_liststore\"><columns><column type=\"gchararray\"/><colu" ++ "mn type=\"gchararray\"/></columns></object><object class=\"GtkListStore" ++ "\" id=\"user_liststore\"><columns><column type=\"gchararray\"/><column " ++ "type=\"gchararray\"/><column type=\"gint\"/></columns></object></interf" ++ "ace>" + }; + +-static const unsigned lightdm_gtk_greeter_ui_length = 10699u; ++static const unsigned lightdm_gtk_greeter_ui_length = 11147u; + diff --git a/community/lightdm-gtk3-greeter/PKGBUILD b/community/lightdm-gtk3-greeter/PKGBUILD new file mode 100755 index 000000000..951bfe25d --- /dev/null +++ b/community/lightdm-gtk3-greeter/PKGBUILD @@ -0,0 +1,40 @@ +# $Id: PKGBUILD 86202 2013-03-13 00:26:13Z alucryd $ +# Maintainer: Maxime Gauduin <alucryd@gmail.com> +# Contributor: Padfoot <padfoot@exemail.com.au> + +pkgname=lightdm-gtk3-greeter +pkgver=1.5.1 +pkgrel=1 +pkgdesc="GTK+ greeter for LightDM" +arch=('i686' 'x86_64') +url="https://launchpad.net/lightdm-gtk-greeter" +license=('GPL3' 'LGPL3') +depends=('gtk3' 'lightdm') +makedepends=('exo' 'gnome-common' 'gnome-doc-utils' 'gobject-introspection' 'intltool') +provides=("${pkgname/3/}") +conflicts=("${pkgname/3/2}") +backup=('etc/lightdm/lightdm-gtk-greeter.conf') +source=("https://launchpad.net/${pkgname/3/}/1.6/${pkgver}/+download/${pkgname/3/}-${pkgver}.tar.gz" + "onscreen-keyboard.patch") +sha256sums=('ecce7e917a79fa8f2126c3fafb6337f81f2198892159a4ef695016afecd2d621' + '381c4da15ed2482800aaf3258217cd48c2313aee5da4f7ade77f7ef55659d0b9') + +build() { + cd "${srcdir}"/${pkgname/3/}-${pkgver} + +# Patch + patch -Np1 -i ../onscreen-keyboard.patch + +# Build + AUTOMAKE=automake ./autogen.sh --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/lightdm --disable-static + make +} + +package() { + cd "${srcdir}"/${pkgname/3/}-${pkgver} + +# Install + make DESTDIR="${pkgdir}" install +} + +# vim: ts=2 sw=2 et: diff --git a/community/lightdm-gtk3-greeter/onscreen-keyboard.patch b/community/lightdm-gtk3-greeter/onscreen-keyboard.patch new file mode 100755 index 000000000..6db01d3f6 --- /dev/null +++ b/community/lightdm-gtk3-greeter/onscreen-keyboard.patch @@ -0,0 +1,306 @@ +diff -aur lightdm-gtk-greeter-1.5.1.src/data/lightdm-gtk-greeter.conf lightdm-gtk-greeter-1.5.1.patch/data/lightdm-gtk-greeter.conf +--- lightdm-gtk-greeter-1.5.1.src/data/lightdm-gtk-greeter.conf 2013-02-11 00:19:17.000000000 +1100 ++++ lightdm-gtk-greeter-1.5.1.patch/data/lightdm-gtk-greeter.conf 2013-02-20 19:17:39.382817993 +1100 +@@ -9,6 +9,7 @@ + # xft-rgba = Type of subpixel antialiasing (none, rgb, bgr, vrgb or vbgr) + # show-language-selector (true or false) + # show-indicators = semi-colon ";" separated list of allowed indicator modules (e.g. indicator-sound.so) ++# keyboard = Command to launch on screen keyboard. Ensure it does not steal focus. + # + [greeter] + #background= +@@ -21,3 +22,4 @@ + #xft-rgba= + #show-language-selector= + #show-indicators= ++#keyboard= +diff -aur lightdm-gtk-greeter-1.5.1.src/src/lightdm-gtk-greeter.c lightdm-gtk-greeter-1.5.1.patch/src/lightdm-gtk-greeter.c +--- lightdm-gtk-greeter-1.5.1.src/src/lightdm-gtk-greeter.c 2013-02-11 00:48:21.000000000 +1100 ++++ lightdm-gtk-greeter-1.5.1.patch/src/lightdm-gtk-greeter.c 2013-02-20 20:09:30.219150045 +1100 +@@ -23,6 +23,7 @@ + #include <cairo-xlib.h> + #include <gdk-pixbuf/gdk-pixbuf.h> + #include <gdk/gdkx.h> ++#include <glib.h> + + #ifdef HAVE_LIBINDICATOR + #include <libindicator/indicator-object.h> +@@ -44,6 +45,7 @@ + static GtkComboBox *user_combo; + static GtkComboBox *session_combo; + static GtkComboBox *language_combo; ++static GtkCheckMenuItem *keyboard_menuitem; + static gchar *default_font_name, *default_theme_name, *default_icon_theme_name; + static GdkPixbuf *default_background_pixbuf = NULL; + #if GTK_CHECK_VERSION (3, 0, 0) +@@ -52,6 +54,10 @@ + static GdkColor *default_background_color = NULL; + #endif + static gboolean cancelling = FALSE, prompted = FALSE; ++static gchar **a11y_keyboard_command; ++static int a11y_kbd_pid = 0; ++static GPid *a11y_keyboard_pid = &a11y_kbd_pid; ++static GError *a11y_keyboard_error; + + + #ifdef HAVE_LIBINDICATOR +@@ -649,7 +655,10 @@ + if (lightdm_greeter_get_is_authenticated (greeter)) + { + if (prompted) +- start_session (); ++ { ++ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (keyboard_menuitem), FALSE); ++ start_session (); ++ } + } + else + { +@@ -864,6 +873,32 @@ + } + } + ++void a11y_keyboard_cb (GtkWidget *widget); ++G_MODULE_EXPORT ++void ++a11y_keyboard_cb (GtkWidget *widget) ++{ ++ if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) ++ { ++ if (!g_spawn_async(NULL, a11y_keyboard_command, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, a11y_keyboard_pid, &a11y_keyboard_error)) ++ { ++ g_debug ("a11y keyboard command error : '%s'", a11y_keyboard_error->message); ++ a11y_kbd_pid = 0; ++ g_clear_error(&a11y_keyboard_error); ++ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), FALSE); ++ } ++ } ++ else ++ { ++ if (a11y_kbd_pid != 0) ++ { ++ kill (a11y_kbd_pid, SIGTERM); ++ g_spawn_close_pid(*a11y_keyboard_pid); ++ a11y_kbd_pid = 0; ++ } ++ } ++} ++ + static void + sigterm_cb (int signum) + { +@@ -1190,6 +1225,13 @@ + g_object_set (gtk_settings_get_default (), "gtk-xft-rgba", value, NULL); + g_free (value); + ++ /* Get a11y on screen keyboard command*/ ++ gint argp; ++ value = g_key_file_get_value (config, "greeter", "keyboard", NULL); ++ g_debug ("a11y keyboard command is '%s'", value); ++ g_shell_parse_argv (value, &argp, &a11y_keyboard_command, NULL); ++ g_free (value); ++ + builder = gtk_builder_new (); + if (!gtk_builder_add_from_string (builder, lightdm_gtk_greeter_ui, + lightdm_gtk_greeter_ui_length, &error)) +@@ -1212,6 +1254,7 @@ + language_combo = GTK_COMBO_BOX (gtk_builder_get_object (builder, "language_combobox")); + panel_window = GTK_WINDOW (gtk_builder_get_object (builder, "panel_window")); + user_avatar = GTK_IMAGE (gtk_builder_get_object (builder, "user_avatar")); ++ keyboard_menuitem = GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, "keyboard_menuitem")); + + gtk_label_set_text (GTK_LABEL (gtk_builder_get_object (builder, "hostname_label")), lightdm_get_hostname ()); + +@@ -1264,7 +1307,7 @@ + #endif + gtk_widget_show (hbox); + gtk_container_add (GTK_CONTAINER (menuitem), hbox); +- image = gtk_image_new_from_icon_name ("system-shutdown", GTK_ICON_SIZE_MENU); ++ image = gtk_image_new_from_icon_name ("system-shutdown", GTK_ICON_SIZE_BUTTON); + gtk_widget_show (image); + gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0); + +@@ -1276,7 +1319,7 @@ + #endif + gtk_widget_show (hbox); + gtk_container_add (GTK_CONTAINER (menuitem), hbox); +- image = gtk_image_new_from_icon_name ("preferences-desktop-accessibility", GTK_ICON_SIZE_MENU); ++ image = gtk_image_new_from_icon_name ("preferences-desktop-accessibility", GTK_ICON_SIZE_BUTTON); + gtk_widget_show (image); + gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0); + +@@ -1377,6 +1420,11 @@ + gtk_widget_show (GTK_WIDGET (login_window)); + gdk_window_focus (gtk_widget_get_window (GTK_WIDGET (login_window)), GDK_CURRENT_TIME); + ++ if (a11y_keyboard_command) ++ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (keyboard_menuitem), TRUE); ++ else ++ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (builder, "keyboard_menuitem"))); ++ + gtk_main (); + + if (default_background_pixbuf) +diff -aur lightdm-gtk-greeter-1.5.1.src/src/lightdm-gtk-greeter.glade lightdm-gtk-greeter-1.5.1.patch/src/lightdm-gtk-greeter.glade +--- lightdm-gtk-greeter-1.5.1.src/src/lightdm-gtk-greeter.glade 2013-02-10 23:48:19.000000000 +1100 ++++ lightdm-gtk-greeter-1.5.1.patch/src/lightdm-gtk-greeter.glade 2013-02-20 17:11:01.968469713 +1100 +@@ -215,6 +215,7 @@ + <object class="GtkWindow" id="panel_window"> + <property name="name">panel_window</property> + <property name="can_focus">False</property> ++ <property name="default_height">40</property> + <property name="decorated">False</property> + <property name="has_resize_grip">False</property> + <child> +@@ -309,6 +310,16 @@ + <signal name="toggled" handler="a11y_contrast_cb" swapped="no"/> + </object> + </child> ++ <child> ++ <object class="GtkCheckMenuItem" id="keyboard_menuitem"> ++ <property name="name">keyboard_menuitem</property> ++ <property name="visible">True</property> ++ <property name="can_focus">False</property> ++ <property name="use_action_appearance">False</property> ++ <property name="label" translatable="yes">On Screen Keyboard</property> ++ <signal name="toggled" handler="a11y_keyboard_cb" swapped="no"/> ++ </object> ++ </child> + </object> + </child> + </object> +diff -aur lightdm-gtk-greeter-1.5.1.src/src/lightdm-gtk-greeter-ui.h lightdm-gtk-greeter-1.5.1.patch/src/lightdm-gtk-greeter-ui.h +--- lightdm-gtk-greeter-1.5.1.src/src/lightdm-gtk-greeter-ui.h 2013-02-11 01:46:04.000000000 +1100 ++++ lightdm-gtk-greeter-1.5.1.patch/src/lightdm-gtk-greeter-ui.h 2013-02-20 17:52:56.172967000 +1100 +@@ -108,66 +108,73 @@ + "\">3</property></packing></child></object></child><child type=\"tab\"><" + "placeholder/></child></object></child></object><object class=\"GtkWindo" + "w\" id=\"panel_window\"><property name=\"name\">panel_window</property>" +- "<property name=\"can_focus\">False</property><property name=\"decorated" +- "\">False</property><property name=\"has_resize_grip\">False</property><" +- "child><object class=\"GtkMenuBar\" id=\"menubar\"><property name=\"name" +- "\">menubar</property><property name=\"visible\">True</property><propert" +- "y name=\"can_focus\">False</property><property name=\"pack_direction\">" +- "rtl</property><child><object class=\"GtkMenuItem\" id=\"power_menuitem\"" +- "><property name=\"name\">power_menuitem</property><property name=\"visi" +- "ble\">True</property><property name=\"can_focus\">False</property><prop" +- "erty name=\"use_action_appearance\">False</property><child type=\"subme" +- "nu\"><object class=\"GtkMenu\" id=\"power_menu\"><property name=\"name\"" +- ">power_menu</property><property name=\"visible\">True</property><proper" +- "ty name=\"can_focus\">False</property><child><object class=\"GtkMenuIte" +- "m\" id=\"suspend_menuitem\"><property name=\"name\">suspend_menuitem</p" +- "roperty><property name=\"visible\">True</property><property name=\"can_" +- "focus\">False</property><property name=\"use_action_appearance\">False<" +- "/property><property name=\"label\" translatable=\"yes\">Suspend</proper" +- "ty><signal name=\"activate\" handler=\"suspend_cb\" swapped=\"no\"/></o" +- "bject></child><child><object class=\"GtkMenuItem\" id=\"hibernate_menui" +- "tem\"><property name=\"name\">hibernate_menuitem</property><property na" +- "me=\"visible\">True</property><property name=\"can_focus\">False</prope" +- "rty><property name=\"use_action_appearance\">False</property><property " +- "name=\"label\" translatable=\"yes\">Hibernate</property><signal name=\"" +- "activate\" handler=\"hibernate_cb\" swapped=\"no\"/></object></child><c" +- "hild><object class=\"GtkMenuItem\" id=\"restart_menuitem\"><property na" +- "me=\"name\">restart_menuitem</property><property name=\"visible\">True<" +- "/property><property name=\"can_focus\">False</property><property name=\"" +- "use_action_appearance\">False</property><property name=\"label\" transl" +- "atable=\"yes\">Restart...</property><signal name=\"activate\" handler=\"" +- "restart_cb\" swapped=\"no\"/></object></child><child><object class=\"Gt" +- "kMenuItem\" id=\"shutdown_menuitem\"><property name=\"name\">shutdown_m" +- "enuitem</property><property name=\"visible\">True</property><property n" +- "ame=\"can_focus\">False</property><property name=\"use_action_appearanc" +- "e\">False</property><property name=\"label\" translatable=\"yes\">Shutd" +- "own...</property><signal name=\"activate\" handler=\"shutdown_cb\" swap" +- "ped=\"no\"/></object></child></object></child></object></child><child><" +- "object class=\"GtkMenuItem\" id=\"a11y_menuitem\"><property name=\"name" +- "\">a11y_menuitem</property><property name=\"visible\">True</property><p" +- "roperty name=\"can_focus\">False</property><property name=\"use_action_" +- "appearance\">False</property><child type=\"submenu\"><object class=\"Gt" +- "kMenu\" id=\"a11y_menu\"><property name=\"name\">a11y_menu</property><p" +- "roperty name=\"visible\">True</property><property name=\"can_focus\">Fa" +- "lse</property><child><object class=\"GtkCheckMenuItem\" id=\"large_font" +- "_menuitem\"><property name=\"name\">large_font_menuitem</property><prop" ++ "<property name=\"can_focus\">False</property><property name=\"default_h" ++ "eight\">40</property><property name=\"decorated\">False</property><prop" ++ "erty name=\"has_resize_grip\">False</property><child><object class=\"Gt" ++ "kMenuBar\" id=\"menubar\"><property name=\"name\">menubar</property><pr" ++ "operty name=\"visible\">True</property><property name=\"can_focus\">Fal" ++ "se</property><property name=\"pack_direction\">rtl</property><child><ob" ++ "ject class=\"GtkMenuItem\" id=\"power_menuitem\"><property name=\"name\"" ++ ">power_menuitem</property><property name=\"visible\">True</property><pr" ++ "operty name=\"can_focus\">False</property><property name=\"use_action_a" ++ "ppearance\">False</property><child type=\"submenu\"><object class=\"Gtk" ++ "Menu\" id=\"power_menu\"><property name=\"name\">power_menu</property><" ++ "property name=\"visible\">True</property><property name=\"can_focus\">F" ++ "alse</property><child><object class=\"GtkMenuItem\" id=\"suspend_menuit" ++ "em\"><property name=\"name\">suspend_menuitem</property><property name=" ++ "\"visible\">True</property><property name=\"can_focus\">False</property" ++ "><property name=\"use_action_appearance\">False</property><property nam" ++ "e=\"label\" translatable=\"yes\">Suspend</property><signal name=\"activ" ++ "ate\" handler=\"suspend_cb\" swapped=\"no\"/></object></child><child><o" ++ "bject class=\"GtkMenuItem\" id=\"hibernate_menuitem\"><property name=\"" ++ "name\">hibernate_menuitem</property><property name=\"visible\">True</pr" ++ "operty><property name=\"can_focus\">False</property><property name=\"us" ++ "e_action_appearance\">False</property><property name=\"label\" translat" ++ "able=\"yes\">Hibernate</property><signal name=\"activate\" handler=\"hi" ++ "bernate_cb\" swapped=\"no\"/></object></child><child><object class=\"Gt" ++ "kMenuItem\" id=\"restart_menuitem\"><property name=\"name\">restart_men" ++ "uitem</property><property name=\"visible\">True</property><property nam" ++ "e=\"can_focus\">False</property><property name=\"use_action_appearance\"" ++ ">False</property><property name=\"label\" translatable=\"yes\">Restart." ++ "..</property><signal name=\"activate\" handler=\"restart_cb\" swapped=\"" ++ "no\"/></object></child><child><object class=\"GtkMenuItem\" id=\"shutdo" ++ "wn_menuitem\"><property name=\"name\">shutdown_menuitem</property><prop" + "erty name=\"visible\">True</property><property name=\"can_focus\">False" + "</property><property name=\"use_action_appearance\">False</property><pr" +- "operty name=\"label\" translatable=\"yes\">Large Font</property><signal" +- " name=\"toggled\" handler=\"a11y_font_cb\" swapped=\"no\"/></object></c" +- "hild><child><object class=\"GtkCheckMenuItem\" id=\"high_contrast_menui" +- "tem\"><property name=\"name\">high_contrast_menuitem</property><propert" +- "y name=\"visible\">True</property><property name=\"can_focus\">False</p" +- "roperty><property name=\"use_action_appearance\">False</property><prope" +- "rty name=\"label\" translatable=\"yes\">High Contrast</property><signal" +- " name=\"toggled\" handler=\"a11y_contrast_cb\" swapped=\"no\"/></object" +- "></child></object></child></object></child></object></child></object><o" +- "bject class=\"GtkListStore\" id=\"session_liststore\"><columns><column " +- "type=\"gchararray\"/><column type=\"gchararray\"/></columns></object><o" +- "bject class=\"GtkListStore\" id=\"user_liststore\"><columns><column typ" +- "e=\"gchararray\"/><column type=\"gchararray\"/><column type=\"gint\"/><" +- "/columns></object></interface>" ++ "operty name=\"label\" translatable=\"yes\">Shutdown...</property><signa" ++ "l name=\"activate\" handler=\"shutdown_cb\" swapped=\"no\"/></object></" ++ "child></object></child></object></child><child><object class=\"GtkMenuI" ++ "tem\" id=\"a11y_menuitem\"><property name=\"name\">a11y_menuitem</prope" ++ "rty><property name=\"visible\">True</property><property name=\"can_focu" ++ "s\">False</property><property name=\"use_action_appearance\">False</pro" ++ "perty><child type=\"submenu\"><object class=\"GtkMenu\" id=\"a11y_menu\"" ++ "><property name=\"name\">a11y_menu</property><property name=\"visible\"" ++ ">True</property><property name=\"can_focus\">False</property><child><ob" ++ "ject class=\"GtkCheckMenuItem\" id=\"large_font_menuitem\"><property na" ++ "me=\"name\">large_font_menuitem</property><property name=\"visible\">Tr" ++ "ue</property><property name=\"can_focus\">False</property><property nam" ++ "e=\"use_action_appearance\">False</property><property name=\"label\" tr" ++ "anslatable=\"yes\">Large Font</property><signal name=\"toggled\" handle" ++ "r=\"a11y_font_cb\" swapped=\"no\"/></object></child><child><object clas" ++ "s=\"GtkCheckMenuItem\" id=\"high_contrast_menuitem\"><property name=\"n" ++ "ame\">high_contrast_menuitem</property><property name=\"visible\">True<" ++ "/property><property name=\"can_focus\">False</property><property name=\"" ++ "use_action_appearance\">False</property><property name=\"label\" transl" ++ "atable=\"yes\">High Contrast</property><signal name=\"toggled\" handler" ++ "=\"a11y_contrast_cb\" swapped=\"no\"/></object></child><child><object c" ++ "lass=\"GtkCheckMenuItem\" id=\"keyboard_menuitem\"><property name=\"nam" ++ "e\">keyboard_menuitem</property><property name=\"visible\">True</proper" ++ "ty><property name=\"can_focus\">False</property><property name=\"use_ac" ++ "tion_appearance\">False</property><property name=\"label\" translatable" ++ "=\"yes\">On Screen Keyboard</property><signal name=\"toggled\" handler=" ++ "\"a11y_keyboard_cb\" swapped=\"no\"/></object></child></object></child>" ++ "</object></child></object></child></object><object class=\"GtkListStore" ++ "\" id=\"session_liststore\"><columns><column type=\"gchararray\"/><colu" ++ "mn type=\"gchararray\"/></columns></object><object class=\"GtkListStore" ++ "\" id=\"user_liststore\"><columns><column type=\"gchararray\"/><column " ++ "type=\"gchararray\"/><column type=\"gint\"/></columns></object></interf" ++ "ace>" + }; + +-static const unsigned lightdm_gtk_greeter_ui_length = 10699u; ++static const unsigned lightdm_gtk_greeter_ui_length = 11147u; + diff --git a/community/lightdm-kde-greeter/PKGBUILD b/community/lightdm-kde-greeter/PKGBUILD new file mode 100755 index 000000000..e1b9200b1 --- /dev/null +++ b/community/lightdm-kde-greeter/PKGBUILD @@ -0,0 +1,44 @@ +# $Id: PKGBUILD 86223 2013-03-13 14:28:38Z alucryd $ +# Maintainer: Maxime Gauduin <alucryd@gmail.com> +# Contributor: Massimiliano Torromeo <massimiliano.torromeo@gmail.com> +# Contributor: Mladen Pejakovic <pejakm@gmail.com> +# Contributor: Xiao-Long Chen <chenxiaolong@cxl.epac.to> + +pkgname=lightdm-kde-greeter +pkgver=0.3.1 +pkgrel=1 +pkgdesc="KDE greeter for LightDM" +arch=('i686' 'x86_64') +url="https://projects.kde.org/projects/playground/base/lightdm" +license=('GPL') +depends=('kdelibs' 'liblightdm-qt4') +makedepends=('cmake' 'automoc4') +backup=('etc/lightdm/lightdm-kde-greeter.conf' + 'etc/dbus-1/system.d/org.kde.kcontrol.kcmlightdm.conf') +source=("ftp://ftp.kde.org/pub/kde/unstable/${pkgname%-*}/src/${pkgname%-*}-${pkgver}.tar.bz2" + 'lightdm-kde-greeter.conf') +sha256sums=('855cffaccc6500e25016e104cd593189cad9aa88ee34f237b01964fce1bcfcf9' + 'a8fe10ef68d553781b91b1377106f95915c3ca14d835bd66910e08f922ef64c8') + +build() { + cd "${srcdir}"/lightdm-${pkgver} + +# Build + if [[ -d build ]]; then + rm -rf build + fi + mkdir build && cd build + cmake .. -DCMAKE_INSTALL_PREFIX=/usr + make +} + +package() { + cd "${srcdir}"/lightdm-${pkgver}/build + +# Install + make DESTDIR="${pkgdir}" install + install -dm 755 "${pkgdir}"/etc/lightdm + install -m 644 ../../lightdm-kde-greeter.conf "${pkgdir}"/etc/lightdm/lightdm-kde-greeter.conf +} + +# vim ts=2 sw=2 et: diff --git a/community/lightdm-kde-greeter/lightdm-kde-greeter.conf b/community/lightdm-kde-greeter/lightdm-kde-greeter.conf new file mode 100755 index 000000000..09c4ad281 --- /dev/null +++ b/community/lightdm-kde-greeter/lightdm-kde-greeter.conf @@ -0,0 +1,2 @@ +[greeter] +theme-name=classic diff --git a/community/lightdm/PKGBUILD b/community/lightdm/PKGBUILD new file mode 100755 index 000000000..c195eea24 --- /dev/null +++ b/community/lightdm/PKGBUILD @@ -0,0 +1,111 @@ +# $Id: PKGBUILD 86229 2013-03-13 18:51:51Z alucryd $ +# Maintainer: Maxime Gauduin <alucryd@gmail.com> +# Contributor: Morfeo <morfeo89@hotmail.it> + +pkgbase=lightdm +pkgname=('lightdm' 'liblightdm-qt4' 'liblightdm-qt5') +pkgver=1.5.1 +pkgrel=6 +pkgdesc="A lightweight display manager" +arch=('i686' 'x86_64') +url="https://launchpad.net/lightdm" +license=('GPL3' 'LGPL3') +makedepends=('gobject-introspection' 'gtk-doc' 'intltool' 'itstool' 'libxklavier' 'qt4' 'qt5-base') +options=('!emptydirs' '!libtool') +source=("https://launchpad.net/lightdm/1.6/${pkgver}/+download/${pkgbase}-${pkgver}.tar.xz" + 'lightdm.service' + 'lightdm.tmpfiles' + 'lightdm.pam' + 'lightdm-autologin.pam' + 'lightdm.rules' + 'lightdm-default-config.patch' + 'lightdm-1.5.1-systemd_login1_power.patch' + 'lightdm-lock-screen-before-switch.patch' + 'xsession') +sha256sums=('645db2d763cc514d6aecb1838f4a9c33c3dcf0c94567a7ef36c6b23d8aa56c86' + '2e03423cbe88c9fdc3a9684d6d14221aa6e92d105f9d1d53b08747d966c45125' + 'ec10378992907f06a6960c4644aba2f81744fbcaf38f6bdc7c364979be3207e4' + 'e8c4c5fd3b801a390d201166fd1fb9730e78a5c62928768103b870b6bd980ea0' + 'cd0a9591b61118c6de1b07e1cd9a1b74cd74e9e95288f8b41eba32e26fd22023' + 'a89566307e1c81c24f037d854cbd472d2f94f8a4b759877a01563a332319f7d6' + '51ec7eb1c50c0ba0b96b846662707533ebc1d6558cea75cb7424afddf0d064f0' + '8c8432294d361475293852f45673bc042eb252dbc58a17445fd10e5e874dc608' + '4793eaee5915f5c519f569a4cd9158822d4c57c8b6e405895d2eddf82fa00822' + '7fb85a1b54406032a922e8fd6f45d869fcfe5681df630e74e8e50c040b786ee4') + +build() { + cd "${srcdir}"/${pkgbase}-${pkgver} + +# Patch + patch -Np1 -i ../lightdm-default-config.patch + patch -Np1 -i ../lightdm-1.5.1-systemd_login1_power.patch + patch -Np1 -i ../lightdm-lock-screen-before-switch.patch + +# Build + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/${pkgbase} --with-greeter-user=lightdm --with-greeter-session=lightdm-gtk-greeter --disable-{static,tests} + make +} + +package_lightdm() { +depends=('libgcrypt' 'libxklavier' 'pam') +optdepends=('xorg-server-xephyr: LightDM test mode' + 'accountsservice: limit visible accounts') +backup=('etc/apparmor.d/lightdm-guest-session' + 'etc/lightdm/keys.conf' + 'etc/lightdm/lightdm.conf' + 'etc/lightdm/users.conf') +install=${pkgbase}.install + + cd "${srcdir}"/${pkgbase}-${pkgver} + +# Install + make DESTDIR="${pkgdir}" install + make DESTDIR="${pkgdir}" -C liblightdm-qt uninstall + install -m 755 ../xsession "${pkgdir}"/etc/lightdm/xsession + rm -rf "${pkgdir}"/etc/init + +# PAM + install -m 644 ../lightdm.pam "${pkgdir}"/etc/pam.d/lightdm + install -m 644 ../lightdm-autologin.pam "${pkgdir}"/etc/pam.d/lightdm-autologin + +# PolicyKit + install -dm 700 "${pkgdir}"/usr/share/polkit-1/rules.d + install -m 644 ../lightdm.rules "${pkgdir}"/usr/share/polkit-1/rules.d/lightdm.rules + +# Systemd + install -dm 755 "${pkgdir}"/usr/lib/{systemd/system,tmpfiles.d} + install -m 644 ../lightdm.service "${pkgdir}"/usr/lib/systemd/system/lightdm.service + install -m 644 ../lightdm.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/lightdm.conf +} + +package_liblightdm-qt4() { +pkgdesc=('LightDM Qt client library') +depends=('lightdm' 'qt4') + + cd "${srcdir}"/${pkgbase}-${pkgver} + +# Install + make DESTDIR="${pkgdir}" -C liblightdm-gobject install + make DESTDIR="${pkgdir}" -C liblightdm-qt install + make DESTDIR="${pkgdir}" -C liblightdm-gobject uninstall + find "${pkgdir}" -type d -name *qt5* -exec rm -rf {} + + find "${pkgdir}" -type f -name *qt5* -exec rm {} + + find "${pkgdir}" -type l -name *qt5* -exec rm {} + +} + +package_liblightdm-qt5() { +pkgdesc=('LightDM Qt client library') +depends=('lightdm' 'qt5-base') + + cd "${srcdir}"/${pkgbase}-${pkgver} + +# Install + make DESTDIR="${pkgdir}" -C liblightdm-gobject install + make DESTDIR="${pkgdir}" -C liblightdm-qt install + make DESTDIR="${pkgdir}" -C liblightdm-gobject uninstall + find "${pkgdir}" -type d -name *qt[!5]* -exec rm -rf {} + + find "${pkgdir}" -type f -name *qt[!5]* -exec rm {} + + find "${pkgdir}" -type l -name *qt[!5]* -exec rm {} + +} + +# vim: ts=2 sw=2 et: diff --git a/community/lightdm/lightdm-1.5.1-systemd_login1_power.patch b/community/lightdm/lightdm-1.5.1-systemd_login1_power.patch new file mode 100755 index 000000000..0bcb24589 --- /dev/null +++ b/community/lightdm/lightdm-1.5.1-systemd_login1_power.patch @@ -0,0 +1,211 @@ +diff -up lightdm-1.5.1/liblightdm-gobject/power.c.systemd_login1_power lightdm-1.5.1/liblightdm-gobject/power.c +--- lightdm-1.5.1/liblightdm-gobject/power.c.systemd_login1_power 2013-03-05 20:40:10.000000000 -0600 ++++ lightdm-1.5.1/liblightdm-gobject/power.c 2013-03-09 11:31:00.169897568 -0600 +@@ -17,6 +17,7 @@ + + static GDBusProxy *upower_proxy = NULL; + static GDBusProxy *ck_proxy = NULL; ++static GDBusProxy *login1_proxy = NULL; + + static gboolean + upower_call_function (const gchar *function, gboolean default_result, GError **error) +@@ -147,6 +148,59 @@ ck_call_function (const gchar *function, + return function_result; + } + ++static gboolean ++login1_call_function (const gchar *function, GVariant *parameters, gboolean default_result, GError **error) ++{ ++ GVariant *result; ++ gboolean function_result = FALSE; ++ const gchar *true_result = "yes"; ++ gchar *str_result; ++ ++ if (!login1_proxy) ++ { ++ login1_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, ++ G_DBUS_PROXY_FLAGS_NONE, ++ NULL, ++ "org.freedesktop.login1", ++ "/org/freedesktop/login1", ++ "org.freedesktop.login1.Manager", ++ NULL, ++ error); ++ if (!login1_proxy) ++ return FALSE; ++ } ++ ++ result = g_dbus_proxy_call_sync (login1_proxy, ++ function, ++ parameters, ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, ++ NULL, ++ error); ++ ++ if (!result) ++ return default_result; ++ ++ if (g_variant_is_of_type (result, G_VARIANT_TYPE ("(b)"))) ++ g_variant_get (result, "(s)", &function_result); ++ ++ /** ++ * CanReboot, CanPowerOff returns a string "yes", "no", or "challenge", not a boolean as ConsoleKit ++ **/ ++ if (g_variant_is_of_type (result, G_VARIANT_TYPE ("(s)"))) { ++ g_variant_get (result, "(b)", str_result); ++ if(g_strcmp0(str_result,true_result) == 0) { ++ function_result = TRUE; ++ } ++ else { ++ function_result = default_result; ++ } ++ } ++ ++ g_variant_unref (result); ++ return function_result; ++} ++ + /** + * lightdm_get_can_restart: + * +@@ -157,7 +211,11 @@ ck_call_function (const gchar *function, + gboolean + lightdm_get_can_restart (void) + { +- return ck_call_function ("CanRestart", FALSE, NULL); ++ gboolean function_result = FALSE; ++ function_result = login1_call_function ("CanReboot", NULL, FALSE, NULL); ++ if (!function_result) ++ function_result = ck_call_function ("CanRestart", FALSE, NULL); ++ return function_result; + } + + /** +@@ -171,7 +229,11 @@ lightdm_get_can_restart (void) + gboolean + lightdm_restart (GError **error) + { +- return ck_call_function ("Restart", TRUE, error); ++ gboolean function_result = FALSE; ++ function_result = login1_call_function ("Reboot", g_variant_new("(b)",0), TRUE, error); ++ if (!function_result) ++ function_result = ck_call_function ("Restart", TRUE, error); ++ return function_result; + } + + /** +@@ -184,7 +246,11 @@ lightdm_restart (GError **error) + gboolean + lightdm_get_can_shutdown (void) + { +- return ck_call_function ("CanStop", FALSE, NULL); ++ gboolean function_result = FALSE; ++ function_result = login1_call_function ("CanPowerOff", NULL, FALSE, NULL); ++ if (!function_result) ++ function_result = ck_call_function ("CanStop", FALSE, NULL); ++ return function_result; + } + + /** +@@ -198,5 +264,9 @@ lightdm_get_can_shutdown (void) + gboolean + lightdm_shutdown (GError **error) + { +- return ck_call_function ("Stop", TRUE, error); ++ gboolean function_result = FALSE; ++ function_result = login1_call_function ("PowerOff", g_variant_new("(b)",0), TRUE, error); ++ if (!function_result) ++ function_result = ck_call_function ("Stop", TRUE, error); ++ return function_result; + } +diff -up lightdm-1.5.1/liblightdm-qt/power.cpp.systemd_login1_power lightdm-1.5.1/liblightdm-qt/power.cpp +--- lightdm-1.5.1/liblightdm-qt/power.cpp.systemd_login1_power 2013-03-05 20:40:10.000000000 -0600 ++++ lightdm-1.5.1/liblightdm-qt/power.cpp 2013-03-09 11:36:47.140559838 -0600 +@@ -15,6 +15,7 @@ + #include <QtCore/QVariant> + #include <QtDBus/QDBusInterface> + #include <QtDBus/QDBusReply> ++#include <QDebug> + + #include "config.h" + +@@ -26,11 +27,13 @@ public: + PowerInterfacePrivate(); + QScopedPointer<QDBusInterface> powerManagementInterface; + QScopedPointer<QDBusInterface> consoleKitInterface; ++ QScopedPointer<QDBusInterface> login1Interface; + }; + + PowerInterface::PowerInterfacePrivate::PowerInterfacePrivate() : + powerManagementInterface(new QDBusInterface("org.freedesktop.UPower","/org/freedesktop/UPower", "org.freedesktop.UPower", QDBusConnection::systemBus())), +- consoleKitInterface(new QDBusInterface("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", QDBusConnection::systemBus())) ++ consoleKitInterface(new QDBusInterface("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", QDBusConnection::systemBus())), ++ login1Interface(new QDBusInterface("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus())) + { + } + +@@ -80,34 +83,55 @@ void PowerInterface::hibernate() + + bool PowerInterface::canShutdown() + { ++ ++ if ( d->login1Interface->isValid() ) { ++ QDBusReply<QString> reply1 = d->login1Interface->call("CanPowerOff"); ++ if (reply1.isValid()) { ++ return (reply1.value()=="yes"); ++ } ++ } ++ qWarning() << d->login1Interface->lastError(); ++ + QDBusReply<bool> reply = d->consoleKitInterface->call("CanStop"); + if (reply.isValid()) { + return reply.value(); + } +- else { +- return false; +- } ++ ++ return false; + } + + void PowerInterface::shutdown() + { +- d->consoleKitInterface->call("Stop"); ++ if ( d->login1Interface->isValid() ) ++ d->login1Interface->call("PowerOff",false); ++ else ++ d->consoleKitInterface->call("Stop"); + } + + bool PowerInterface::canRestart() + { ++ if ( d->login1Interface->isValid() ) { ++ QDBusReply<QString> reply1 = d->login1Interface->call("CanReboot"); ++ if (reply1.isValid()) { ++ return (reply1.value()=="yes"); ++ } ++ } ++ qWarning() << d->login1Interface->lastError(); ++ + QDBusReply<bool> reply = d->consoleKitInterface->call("CanRestart"); + if (reply.isValid()) { + return reply.value(); + } +- else { +- return false; +- } ++ ++ return false; + } + + void PowerInterface::restart() + { +- d->consoleKitInterface->call("Restart"); ++ if ( d->login1Interface->isValid() ) ++ d->login1Interface->call("Reboot",false); ++ else ++ d->consoleKitInterface->call("Restart"); + } + + #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) diff --git a/community/lightdm/lightdm-autologin.pam b/community/lightdm/lightdm-autologin.pam new file mode 100755 index 000000000..4cd3626cd --- /dev/null +++ b/community/lightdm/lightdm-autologin.pam @@ -0,0 +1,11 @@ +#%PAM-1.0 +auth required pam_env.so$ +auth required pam_tally.so file=/var/log/faillog onerr=succeed$ +auth required pam_shells.so$ +auth required pam_nologin.so$ +auth required pam_permit.so$ +-auth optional pam_gnome_keyring.so$ +account include system-local-login$ +password include system-local-login$ +session include system-local-login$ +-session optional pam_gnome_keyring.so auto_start diff --git a/community/lightdm/lightdm-default-config.patch b/community/lightdm/lightdm-default-config.patch new file mode 100755 index 000000000..8b106dd91 --- /dev/null +++ b/community/lightdm/lightdm-default-config.patch @@ -0,0 +1,35 @@ +diff -rupN lightdm-1.5.1.orig/data/lightdm.conf lightdm-1.5.1/data/lightdm.conf +--- lightdm-1.5.1.orig/data/lightdm.conf 2013-03-06 03:40:10.000000000 +0100 ++++ lightdm-1.5.1/data/lightdm.conf 2013-03-12 22:59:22.494743200 +0100 +@@ -24,7 +24,7 @@ + #user-authority-in-system-dir=false + #guest-account-script=guest-account + #log-directory=/var/log/lightdm +-#run-directory=/var/run/lightdm ++run-directory=/run/lightdm + #cache-directory=/var/cache/lightdm + #xsessions-directory=/usr/share/xsessions + #remote-sessions-directory=/usr/share/lightdm/remote-sessions +@@ -77,7 +77,7 @@ + #user-session=default + #allow-guest=true + #guest-session=UNIMPLEMENTED +-#session-wrapper=lightdm-session ++session-wrapper=/etc/lightdm/xsession + #display-setup-script= + #greeter-setup-script= + #session-setup-script= +diff -rupN lightdm-1.5.1.orig/data/users.conf lightdm-1.5.1/data/users.conf +--- lightdm-1.5.1.orig/data/users.conf 2013-03-06 03:40:10.000000000 +0100 ++++ lightdm-1.5.1/data/users.conf 2013-03-12 22:54:29.398854700 +0100 +@@ -8,7 +8,7 @@ + # hidden-users = Users that are not shown to the user + # hidden-shells = Shells that indicate a user cannot login + # +-[UserAccounts] +-minimum-uid=500 ++[UserList] ++minimum-uid=1000 + hidden-users=nobody nobody4 noaccess +-hidden-shells=/bin/false /usr/sbin/nologin ++hidden-shells=/bin/false /sbin/nologin diff --git a/community/lightdm/lightdm-lock-screen-before-switch.patch b/community/lightdm/lightdm-lock-screen-before-switch.patch new file mode 100755 index 000000000..b8b1d559c --- /dev/null +++ b/community/lightdm/lightdm-lock-screen-before-switch.patch @@ -0,0 +1,55 @@ +# HG changeset patch +# Parent b329fa1badaa454239690c3feb93d53324134915 +try to lock the screen before switching users + +diff --git a/utils/gdmflexiserver b/utils/gdmflexiserver +--- a/utils/gdmflexiserver ++++ b/utils/gdmflexiserver +@@ -9,9 +9,47 @@ + # + # See http://www.gnu.org/copyleft/gpl.html for the full text of the license. + ++PATH=/usr/local/bin:/bin:/usr/bin ++export PATH ++ + if [ -z "$XDG_SEAT_PATH" ]; then + # something went wrong + exit 1 + fi + ++find_command () { ++ cmd="$1" ++ oIFS="${IFS}"; IFS=: ++ set -- ${PATH} ++ IFS="${oIFS}" ++ ++ for part; do ++ [ -x "${part}/${cmd}" ] && return 0 ++ done ++ return 1 ++} ++ ++lock_screen () { ++ for lock_cmd in \ ++ "xscreensaver-command -lock" \ ++ "gnome-screensaver-command --lock" \ ++ "dbus-send --session --dest=org.freedesktop.ScreenSaver --type=method_call /ScreenSaver org.freedesktop.ScreenSaver.Lock" ++ do ++ ${lock_cmd} >/dev/null 2>&1 && return ++ done ++ ++ for lock_cmd in \ ++ "slock" \ ++ "xlock -mode blank" ++ do ++ set -- ${lock_cmd} ++ if find_command "$1"; then ++ ${lock_cmd} >/dev/null 2>&1 & ++ return ++ fi ++ done ++} ++ ++lock_screen ++ + dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.DisplayManager $XDG_SEAT_PATH org.freedesktop.DisplayManager.Seat.SwitchToGreeter diff --git a/community/lightdm/lightdm.install b/community/lightdm/lightdm.install new file mode 100755 index 000000000..154d93e10 --- /dev/null +++ b/community/lightdm/lightdm.install @@ -0,0 +1,15 @@ +post_install() { + getent group lightdm > /dev/null 2>&1 || groupadd -g 620 lightdm + getent passwd lightdm > /dev/null 2>&1 || useradd -c 'Light Display Manager' -u 620 -g lightdm -d /run/lightdm -s /sbin/nologin lightdm + passwd -l lightdm > /dev/null + systemd-tmpfiles --create /usr/lib/tmpfiles.d/lightdm.conf +} + +post_upgrade() { + post_install +} + +post_remove() { + getent passwd lightdm > /dev/null 2>&1 && userdel lightdm + getent group lightdm > /dev/null 2>&1 && groupdel lightdm +} diff --git a/community/lightdm/lightdm.pam b/community/lightdm/lightdm.pam new file mode 100755 index 000000000..76b8869a2 --- /dev/null +++ b/community/lightdm/lightdm.pam @@ -0,0 +1,7 @@ +#%PAM-1.0 +auth include system-login +-auth optional pam_gnome_keyring.so +account include system-login +password include system-login +session include system-login +-session optional pam_gnome_keyring.so auto_start diff --git a/community/lightdm/lightdm.rules b/community/lightdm/lightdm.rules new file mode 100755 index 000000000..eda155bf3 --- /dev/null +++ b/community/lightdm/lightdm.rules @@ -0,0 +1,15 @@ +polkit.addRule(function(action, subject) { + if (subject.user == "lightdm") { + polkit.log("action=" + action); + polkit.log("subject=" + subject); + if (action.id.indexOf("org.freedesktop.login1.") == 0) { + return polkit.Result.YES; + } + if (action.id.indexOf("org.freedesktop.consolekit.system.") == 0) { + return polkit.Result.YES; + } + if (action.id.indexOf("org.freedesktop.upower.") == 0) { + return polkit.Result.YES; + } + } +}); diff --git a/community/lightdm/lightdm.service b/community/lightdm/lightdm.service new file mode 100755 index 000000000..7eb46ceba --- /dev/null +++ b/community/lightdm/lightdm.service @@ -0,0 +1,14 @@ +[Unit] +Description=Light Display Manager +Documentation=man:lightdm(1) +After=systemd-user-sessions.service + +[Service] +ExecStart=/usr/sbin/lightdm +StandardOutput=syslog +Restart=always +IgnoreSIGPIPE=no +BusName=org.freedesktop.DisplayManager + +[Install] +Alias=display-manager.service diff --git a/community/lightdm/lightdm.tmpfiles b/community/lightdm/lightdm.tmpfiles new file mode 100755 index 000000000..5199f5327 --- /dev/null +++ b/community/lightdm/lightdm.tmpfiles @@ -0,0 +1,2 @@ +d /run/lightdm 0775 lightdm lightdm +f /run/lightdm/.pam_environment 0644 lightdm lightdm - GDK_CORE_DEVICE_EVENTS=true diff --git a/community/lightdm/xsession b/community/lightdm/xsession new file mode 100755 index 000000000..589205342 --- /dev/null +++ b/community/lightdm/xsession @@ -0,0 +1,73 @@ +#!/bin/sh +# +# LightDM wrapper to run around X sessions. + +echo "Running X session wrapper" + +# Load profile +for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do + if [ -f "$file" ]; then + echo "Loading profile from $file"; + . "$file" + fi +done + +# Load resources +for file in "/etc/X11/Xresources" "$HOME/.Xresources"; do + if [ -f "$file" ]; then + echo "Loading resource: $file" + xrdb -nocpp -merge "$file" + fi +done + +# Load keymaps +for file in "/etc/X11/Xkbmap" "$HOME/.Xkbmap"; do + if [ -f "$file" ]; then + echo "Loading keymap: $file" + setxkbmap `cat "$file"` + XKB_IN_USE=yes + fi +done + +# Load xmodmap if not using XKB +if [ -z "$XKB_IN_USE" ]; then + for file in "/etc/X11/Xmodmap" "$HOME/.Xmodmap"; do + if [ -f "$file" ]; then + echo "Loading modmap: $file" + xmodmap "$file" + fi + done +fi + +unset XKB_IN_USE + +# Run all system xinitrc shell scripts. +xinitdir="/etc/X11/xinit/xinitrc.d" +if [ -d "$xinitdir" ]; then + for script in $xinitdir/*; do + echo "Loading xinit script $script" + if [ -x "$script" -a ! -d "$script" ]; then + . "$script" + fi + done +fi + +# Load xsession scripts +xsessionddir="/etc/X11/xsession.d" +if [ -d "$xsessionddir" ]; then + for i in `ls $xsessionddir`; do + script="$xsessionddir/$i" + echo "Loading X session script $script" + if [ -r "$script" -a -f "$script" ] && expr "$i" : '^[[:alnum:]_-]\+$' > /dev/null; then + . "$script" + fi + done +fi +if [ -x "$HOME/.xsession" -a -f "$HOME/.xsession" ]; then + echo "Loading user X session script" + . "$HOME/.xsession" +fi + +echo "X session wrapper complete, running session $@" + +exec $@ diff --git a/community/lua-zlib/PKGBUILD b/community/lua-zlib/PKGBUILD index 0d67dc101..b2c4c5bb0 100644 --- a/community/lua-zlib/PKGBUILD +++ b/community/lua-zlib/PKGBUILD @@ -1,30 +1,46 @@ -# $Id: PKGBUILD 81123 2012-12-12 00:49:35Z eric $ +# $Id: PKGBUILD 86219 2013-03-13 13:38:07Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> -pkgname=lua-zlib +pkgname=(lua-zlib lua51-zlib) +pkgbase=lua-zlib pkgver=0.2 -pkgrel=3 +pkgrel=4 _gitver=8d07669 -_luaver=5.2 url="http://github.com/brimworks/lua-zlib" pkgdesc='Simple streaming interface to zlib for Lua.' arch=('i686' 'x86_64') license=('MIT') -depends=('lua' 'zlib') -makedepends=('cmake') +makedepends=('cmake' 'lua' 'lua51' 'zlib') conflicts=('lua-lzlib') source=("lua-zlib-$pkgver.zip::https://github.com/brimworks/lua-zlib/zipball/v$pkgver") md5sums=('28ce556fccb2d364bc5392f63c6f89ee') build() { + cp -a $srcdir/brimworks-lua-zlib-${_gitver} $srcdir/brimworks-lua51-zlib-${_gitver} + cd $srcdir/brimworks-lua-zlib-${_gitver} - sed -i "s#share/lua/cmod#lib/lua/${_luaver}#" CMakeLists.txt + sed -i "s#share/lua/cmod#lib/lua/5.2#" CMakeLists.txt + cmake -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr . + + cd $srcdir/brimworks-lua51-zlib-${_gitver} + sed -i "s#share/lua/cmod#lib/lua/5.1#" CMakeLists.txt cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr . } -package() { +package_lua-zlib() { + depends=('zlib' 'lua') + cd $srcdir/brimworks-lua-zlib-${_gitver} make DESTDIR="$pkgdir" install - install -D -m644 "README" "$pkgdir/usr/share/licenses/lua-zlib/README" + install -D -m644 "README" "$pkgdir/usr/share/licenses/$pkgname/README" +} + +package_lua51-zlib() { + depends=('zlib' 'lua51') + + cd $srcdir/brimworks-lua51-zlib-${_gitver} + make DESTDIR="$pkgdir" install + install -D -m644 "README" "$pkgdir/usr/share/licenses/$pkgname/README" } diff --git a/community/nodejs/PKGBUILD b/community/nodejs/PKGBUILD index 5e61a05e1..d369c0d94 100644 --- a/community/nodejs/PKGBUILD +++ b/community/nodejs/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 85853 2013-03-07 19:25:26Z bpiotrowski $ +# $Id: PKGBUILD 86233 2013-03-13 19:40:21Z bpiotrowski $ # Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl> # Contributor: Thomas Dziedzic < gostrc at gmail > # Contributor: James Campos <james.r.campos@gmail.com> @@ -8,7 +8,7 @@ # Contributor: TIanyi Cui <tianyicui@gmail.com> pkgname=nodejs -pkgver=0.8.22 +pkgver=0.10.0 pkgrel=1 pkgdesc='Evented I/O for V8 javascript' arch=('i686' 'x86_64') @@ -18,7 +18,7 @@ depends=('openssl' 'python2') checkdepends=('curl') # curl used for check() options=('!emptydirs') source=(http://nodejs.org/dist/v${pkgver}/node-v${pkgver}.tar.gz) -sha256sums=('3f61152cf5cd8fc1ab5c6c18101819841b947da79e1e44b51418c0ad2e6db8e8') +sha256sums=('1624dc37866ebfb5431e3393e6b049cf238cac8ad4d20c6d567263b1259177ab') build() { cd node-v${pkgver} diff --git a/community/pigz/PKGBUILD b/community/pigz/PKGBUILD index f9331664b..5ae1190d3 100644 --- a/community/pigz/PKGBUILD +++ b/community/pigz/PKGBUILD @@ -1,38 +1,41 @@ -# $Id: PKGBUILD 74606 2012-07-31 12:59:28Z bpiotrowski $ +# $Id: PKGBUILD 86235 2013-03-13 19:48:34Z bpiotrowski $ # Maintainer: Bartłomiej Piotrowski # Contributor: Laszlo Papp <djszapi2@gmail.com> # Contributor: Stefan Husmann <stefan-husmann@t-online.de> pkgname=pigz -pkgver=2.2.5 +pkgver=2.3 pkgrel=1 -pkgdesc="Parallel implementation of the gzip file compressor" +pkgdesc='Parallel implementation of the gzip file compressor' arch=('i686' 'x86_64') -url="http://www.zlib.net/pigz/" +url='http://www.zlib.net/pigz/' license=('custom') depends=('zlib') -source=(http://www.zlib.net/$pkgname/$pkgname-$pkgver.tar.gz) -md5sums=('188f769ccedc403893d03049ad31e969') +source=(http://www.zlib.net/$pkgname/$pkgname-$pkgver.tar.gz + pigz-2.3-make.patch) +md5sums=('042e3322534f2c3d761736350cac303f' + 'f6291ee36e36e098d7fbf0655a89b183') build() { - cd "${srcdir}/$pkgname-$pkgver" + cd "$srcdir"/$pkgname-$pkgver + patch -Np1 -i "$srcdir"/pigz-2.3-make.patch make } package() { - cd "${srcdir}/$pkgname-$pkgver" + cd "$srcdir"/$pkgname-$pkgver - install -Dm755 "${srcdir}"/${pkgname}-$pkgver/${pkgname} \ - "${pkgdir}"/usr/bin/${pkgname} + install -Dm755 "$srcdir"/$pkgname-$pkgver/$pkgname \ + "$pkgdir"/usr/bin/$pkgname - pushd "${pkgdir}"/usr/bin + pushd "$pkgdir"/usr/bin ln -s pigz unpigz popd - install -Dm644 "${srcdir}"/${pkgname}-$pkgver/${pkgname}.1 \ - "${pkgdir}"/usr/share/man/man1/${pkgname}.1 - install -Dm644 "${srcdir}"/${pkgname}-$pkgver/${pkgname}.pdf \ - "${pkgdir}"/usr/share/doc/${pkgname}/${pkgname}.pdf - install -Dm644 "${srcdir}"/${pkgname}-$pkgver/README \ - "${pkgdir}"/usr/share/licenses/${pkgname}/README + install -Dm644 "$srcdir"/$pkgname-$pkgver/$pkgname.1 \ + "$pkgdir"/usr/share/man/man1/$pkgname.1 + install -Dm644 "$srcdir"/$pkgname-$pkgver/$pkgname.pdf \ + "$pkgdir"/usr/share/doc/$pkgname/$pkgname.pdf + install -Dm644 "$srcdir"/$pkgname-$pkgver/README \ + "$pkgdir"/usr/share/licenses/$pkgname/README } diff --git a/community/pigz/pigz-2.3-make.patch b/community/pigz/pigz-2.3-make.patch new file mode 100644 index 000000000..f014c7b02 --- /dev/null +++ b/community/pigz/pigz-2.3-make.patch @@ -0,0 +1,25 @@ +From 545a9350f8026f6c9826dd4fa7ab6000d8826d78 Mon Sep 17 00:00:00 2001 +From: Tim Harder <radhermit@gmail.com> +Date: Wed, 6 Mar 2013 15:51:27 -0800 +Subject: [PATCH] Respect LDFLAGS and explicitly link to math library + +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 3cc231d..48d1f26 100644 +--- a/Makefile ++++ b/Makefile +@@ -3,7 +3,7 @@ CFLAGS=-O3 -Wall -Wextra + + + pigz: pigz.o yarn.o zopfli/deflate.o zopfli/blocksplitter.o zopfli/tree.o zopfli/lz77.o zopfli/cache.o zopfli/hash.o zopfli/util.o zopfli/squeeze.o zopfli/katajainen.o +- $(CC) -o pigz $^ -lpthread -lz ++ $(CC) $(LDFLAGS) -o pigz $^ -lpthread -lz -lm + ln -f pigz unpigz + + pigz.o: pigz.c yarn.h zopfli/deflate.h zopfli/util.h +-- +1.8.1.5 + diff --git a/community/qupzilla/PKGBUILD b/community/qupzilla/PKGBUILD index 46cb818ef..645e744fc 100644 --- a/community/qupzilla/PKGBUILD +++ b/community/qupzilla/PKGBUILD @@ -1,19 +1,20 @@ -# $Id: PKGBUILD 83299 2013-01-29 01:36:39Z speps $ +# $Id: PKGBUILD 86204 2013-03-13 01:33:35Z speps $ # Maintainer: speps <speps at aur dot archlinux dot org> _name=QupZilla -_commit=fbfcc70 +_commit=93d22ec # fixes https://github.com/QupZilla/qupzilla/issues/793 pkgname=qupzilla -pkgver=1.3.5_git20130128 +pkgver=1.4.0_git20130312 pkgrel=1 pkgdesc="Cross-platform QtWebKit browser" arch=(i686 x86_64) url="http://www.qupzilla.com/" license=('GPL3') -depends=('qtwebkit') +depends=('qtwebkit' 'hunspell') +optdepends=('bash-completion: bash completion support') install="$pkgname.install" source=("$pkgname-$pkgver.tar.gz::https://github.com/$_name/$pkgname/tarball/$_commit") -md5sums=('ff8bd77f785335a8157aceb3cd54507a') +md5sums=('8fa69f60a26b55d68bfac2d7ec812bf8') build() { cd "$srcdir/$_name-$pkgname-"* @@ -21,13 +22,24 @@ build() { # enable webgl support export USE_WEBGL=true - qmake QUPZILLA_PREFIX=/usr/ + # manually install bash completion + sed -i '/bashcompletion/d' src/install.pri + + qmake-qt4 QUPZILLA_PREFIX=/usr/ make } package() { cd "$srcdir/$_name-$pkgname-"* make INSTALL_ROOT="$pkgdir/" install + + # bash completion + install -Dm644 linux/completion/bash_completion.sh \ + "$pkgdir/usr/share/bash-completion/completions/$pkgname" + + # zsh completion + install -Dm644 linux/completion/zsh_completion.sh \ + "$pkgdir/usr/share/zsh/site-functions/_$pkgname" } # vim:set ts=2 sw=2 et: diff --git a/community/xnoise/PKGBUILD b/community/xnoise/PKGBUILD index 1676dc7aa..c6918ace1 100755 --- a/community/xnoise/PKGBUILD +++ b/community/xnoise/PKGBUILD @@ -1,16 +1,17 @@ -# $Id: PKGBUILD 85878 2013-03-08 06:00:14Z fyan $ +# $Id: PKGBUILD 86215 2013-03-13 13:22:22Z fyan $ # Maintainer: Felix Yan <felixonmars@gmail.com> # Contributor: archtux <antonio dot arias99999 at gmail dot com> pkgname=xnoise pkgver=0.2.16 -pkgrel=2 +pkgrel=3 pkgdesc="Media player with a slick GUI, great speed and lots of features." arch=('i686' 'x86_64') url="http://www.xnoise-media-player.com/" license=('GPL2') depends=('desktop-file-utils' 'gnome-icon-theme' 'gst-plugins-base-libs' 'gst-plugins-good' 'gtk3' 'libsoup' 'sqlite' 'libtaginfo') -optdepends=('gst-plugins-bad: Extra media codecs' +optdepends=('gst-plugins-base: Basic media codecs' + 'gst-plugins-bad: Extra media codecs' 'gst-plugins-ugly: Extra media codecs' 'gst-libav: Extra media codecs') makedepends=('gettext' 'intltool') @@ -32,6 +33,6 @@ package() { make DESTDIR="$pkgdir" install # Remove obsolete files - rm -rf $pkgdir/usr/include $pkgdir/usr/share/vala + rm -rf "$pkgdir/usr/include" "$pkgdir/usr/share/vala" } md5sums=('54a3c54bb292353075a22e49e6cc1eae') |