diff options
Diffstat (limited to 'pcr')
66 files changed, 3233 insertions, 164 deletions
diff --git a/pcr/android-udev/PKGBUILD b/pcr/android-udev/PKGBUILD new file mode 100644 index 000000000..10fe60934 --- /dev/null +++ b/pcr/android-udev/PKGBUILD @@ -0,0 +1,26 @@ +# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net> +# Maintainer (AUR): M0Rf30 +# Contributor: marlock + +pkgname=android-udev +pkgver=20130911 +_gitver=8dfd1cd0002d7067d24a2ef89360212f164f3856 +url="https://github.com/M0Rf30/android-udev-rules" +pkgdesc='Udev rules to for Android devices.' + +# The author is the maintainer of the AUR package, where it is listed as GPL; +# this is the best hint to the license that we have. +license=('GPL') + +pkgrel=1 +arch=('any') +source=("51-android-$pkgver.rules::https://raw.github.com/M0Rf30/android-udev-rules/$_gitver/51-android.rules") +depends=('systemd' 'libmtp') +install='android-udev.install' + +package() { + cd "$srcdir" + install -Dm755 "$srcdir"/51-android-$pkgver.rules "$pkgdir"/usr/lib/udev/rules.d/51-android.rules +} + +md5sums=('1b2033fcf52b1b0ffa807ba90b11fd14') diff --git a/pcr/android-udev/android-udev.install b/pcr/android-udev/android-udev.install new file mode 100644 index 000000000..dcb1ebc20 --- /dev/null +++ b/pcr/android-udev/android-udev.install @@ -0,0 +1,12 @@ +post_install() { + post_upgrade + echo "NOTE: To use adb as a normal user you have to add yourself to the adbusers group" +} + +post_upgrade() { + { getent group adbusers || /usr/sbin/groupadd adbusers; } &>/dev/null +} + +post_remove() { + getent group adbusers &>/dev/null && /usr/sbin/groupdel adbusers +} diff --git a/pcr/audio-entropyd/PKGBUILD b/pcr/audio-entropyd/PKGBUILD new file mode 100644 index 000000000..c691c0128 --- /dev/null +++ b/pcr/audio-entropyd/PKGBUILD @@ -0,0 +1,29 @@ +# Maintainer: fauno <fauno@parabola.nu> +pkgname=audio-entropyd +pkgver=2.0.3 +pkgrel=1 +pkgdesc="Feeds the /dev/random device with entropy-data read from an audio device" +arch=('i686') +url="http://vanheusden.com/aed/" +license=('GPL2') +groups=('entropy') +depends=('alsa-lib') +source=(http://www.vanheusden.com/aed/${pkgname}-${pkgver}.tgz + ${pkgname}.service) + +build() { + cd "$srcdir/$pkgname-$pkgver" + make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + + install -D -m 755 ${pkgname} ${pkgdir}/usr/bin/${pkgname} + install -D -m 644 ${srcdir}/${pkgname}.service \ + ${pkgdir}/usr/lib/systemd/system/${pkgname}.service +} +sha1sums=('b788559c6c01e17bb9d314ac2a7411bc30fbb8a2' + '6d3ad093176efaa0e5a4fe80113048aa9c4810ce') +sha256sums=('6fbaf1c4f77e988f4656cd079309d5eb6bd36cbae89c2ee01324c5690adaf3ff' + '41704fac32b2c180c1fb6155b902445e2c5bc493da0191180cb3720cd72bd42c') diff --git a/pcr/audio-entropyd/audio-entropyd.service b/pcr/audio-entropyd/audio-entropyd.service new file mode 100644 index 000000000..feff7cae4 --- /dev/null +++ b/pcr/audio-entropyd/audio-entropyd.service @@ -0,0 +1,10 @@ +[Unit] +Description=Gathering entropy from audio +After=sound.target + +[Service] +Type=forking +ExecStart=/usr/bin/audio-entropyd + +[Install] +WantedBy=multi-user.target diff --git a/pcr/chiliproject/PKGBUILD b/pcr/chiliproject/PKGBUILD deleted file mode 100644 index 976316dc4..000000000 --- a/pcr/chiliproject/PKGBUILD +++ /dev/null @@ -1,41 +0,0 @@ -# Maintainer: Márcio Silva <coadde@lavabit.com> - -pkgname=chiliproject -pkgver=3.3.0 -pkgrel=1 -pkgdesc="Chiliproject is a fork of Redmine, a flexible project management web application written using Ruby on Rails." -arch=('any') -url="https://www.chiliproject.org" -license=('GPL2') -depends=('ruby' 'ruby-bundler' 'mysql' 'libxml2' 'libxslt' 'imagemagick' 'pkg-config') -provides=('chiliproject') -backup=('var/lib/chiliproject/config/database.yml' - 'var/lib/chiliproject/config/configuration.yml') -makedepends=('glibc') -optdepends=('git: Git repository browsing' - 'subversion>=1.3.0: Subversion repository browsing' - 'darcs: Darcs repository browsing' - 'bzr: Bazaar repository browsing' - 'mercurial: Mercurial repository browsing') -options=() -install=chiliproject.install -source=("https://www.chiliproject.org/attachments/download/360/chiliproject-$pkgver.tar.gz") -md5sums=('4fa4a825cf0cd91d7495180a19bc4c11') - -build() { - return 0 -} - -package() { - cd "$srcdir/chiliproject-$pkgver" - - # install in /var/lib - _instdir="$pkgdir/var/lib/chiliproject" - mkdir -p ${_instdir} - cp -ra . ${_instdir} - - # create required directories - mkdir -p "${_instdir}/public/plugin_assets" -} - -# vim:set ts=4 sw=4 et: diff --git a/pcr/chiliproject/chiliproject.install b/pcr/chiliproject/chiliproject.install deleted file mode 100644 index cb4622f09..000000000 --- a/pcr/chiliproject/chiliproject.install +++ /dev/null @@ -1,17 +0,0 @@ -adjust_perms(){ - chown -R http:http "/var/lib/chiliproject" 1>/dev/null - for dir in /var/lib/chiliproject/{files,log,tmp,public/plugin_assets}; do - chown -R http:http "$dir" 1>/dev/null - chmod -R 755 "$dir" 1>/dev/null - done -} - -post_install() { - adjust_perms - echo 'take a look at https://wiki.archlinux.org/index.php?title=Chiliproject for further setup instructions.' -} - -post_upgrade() { - adjust_perms - echo 'take a look at https://wiki.archlinux.org/index.php?title=Chiliproject for further setup instructions.' -} diff --git a/pcr/darcsver/PKGBUILD b/pcr/darcsver/PKGBUILD new file mode 100644 index 000000000..e93250680 --- /dev/null +++ b/pcr/darcsver/PKGBUILD @@ -0,0 +1,26 @@ +# Maintainer: Andreas B. Wagner <AndreasBWagner@pointfree.net> +# Maintainer: Nicolas Pouillard <nicolas.pouillard@gmail.com> +# Contributor: Peter Simons <simons@cryp.to> +pkgname=darcsver +pkgver=1.7.4 +pkgrel=2 +pkgdesc="generate a version number from darcs history" +arch=('any') +url='http://allmydata.org/trac/darcsver' +license=('BSD') +depends=('python2') +makedepends=('python2-mock' 'python2-distribute') +source=( http://pypi.python.org/packages/source/d/$pkgname/$pkgname-$pkgver.tar.gz ) +md5sums=('e38aecd1343ab8447888a479ab12cb59') + +build(){ + cd "$srcdir/$pkgname-$pkgver" + python2 setup.py build +} + +package(){ + cd "$srcdir/$pkgname-$pkgver" + python2 setup.py install --root="$pkgdir" + + install -Dm644 darcsver.egg-info/PKG-INFO $pkgdir/usr/share/licenses/$pkgname/LICENSE +} diff --git a/pcr/debootstrap-libre/PKGBUILD b/pcr/debootstrap-libre/PKGBUILD index e4f4ef65e..b4ea8c09f 100644 --- a/pcr/debootstrap-libre/PKGBUILD +++ b/pcr/debootstrap-libre/PKGBUILD @@ -3,12 +3,12 @@ _pkgname=debootstrap pkgname=debootstrap-libre pkgver=1.0.53 -pkgrel=3 +pkgrel=3.1 pkgdesc="A tool used to create a gNewSense or Trisquel base system from scratch, without requiring the availability of dpkg or apt (Debian support removed)" arch=('any') license=('GPL') url="http://packages.debian.org/sid/debootstrap" -depends=('wget') +depends=('binutils' 'wget') replaces=$_pkgname conflicts=$_pkgname provides=$_pkgname=$pkgver diff --git a/pcr/dirt/PKGBUILD b/pcr/dirt/PKGBUILD new file mode 100644 index 000000000..d269b41f8 --- /dev/null +++ b/pcr/dirt/PKGBUILD @@ -0,0 +1,23 @@ +# Maintainer: fauno <fauno@parabola.nu> +pkgname=dirt +pkgver=1.0.0a28 +pkgrel=1 +pkgdesc="Multi-platform IRC proxy that adds FiSH-compatible chat encryption (including DH1080 key exchanges) to any IRC client" +arch=('i686') +url="http://dirtirc.sourceforge.net/" +license=('GPL2') +depends=('openssl') +source=(http://ufpr.dl.sourceforge.net/project/dirtirc/Dirt/1.0.0%20alpha%2028/${pkgname}-${pkgver}-source.tar.gz) + +build() { + cd "$srcdir/$pkgname-$pkgver" + make unix +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + + install -D -m 755 dirtirc ${pkgdir}/usr/bin/dirtirc +} +sha1sums=('0f7f407f5a3cb0f083b95d81849efde90177e7d2') +sha256sums=('c1e8bc212a54739ba45f10a6f157f1a80052c913863e6624c434d7335fc2721b') diff --git a/pcr/dratmenu/PKGBUILD b/pcr/dratmenu/PKGBUILD new file mode 100644 index 000000000..8d6a2b357 --- /dev/null +++ b/pcr/dratmenu/PKGBUILD @@ -0,0 +1,36 @@ +# Contributor: ivoarch <ivkuzev@gmail.com> +# Maintainer : Parabola Aurélien DESBRIÈRES <aurelien@replicant.io> + +pkgname=dratmenu +pkgver=20121218 +pkgrel=1 +pkgdesc="ratpoison window dmenu" +arch=('any') +url="https://github.com/dimatura/dratmenu.git" +license=('GPL') +depends=('dmenu' 'python2') +makedepends=('git') + +_gitroot="https://github.com/dimatura/dratmenu.git" +_gitname="master" + +build() { + cd $srcdir + + if [ -d $srcdir/$pkgname ] ; then + msg "update git" + cd $pkgname && git pull origin + else + msg "clone git" + git clone $_gitroot + fi +} + +package() { + mkdir -p $pkgdir/usr/lib/python2.7/site-packages + cp -r $srcdir/$pkgname $pkgdir/usr/lib/python2.7/site-packages + mkdir -p $pkgdir/usr/bin + echo "#!/bin/bash + python2 /usr/lib/python2.7/site-packages/$pkgname/dratmenu.py" > $pkgdir/usr/bin/dratmenu + chmod +x $pkgdir/usr/bin/dratmenu +} diff --git a/pcr/emacs-lucid/PKGBUILD b/pcr/emacs-lucid/PKGBUILD new file mode 100644 index 000000000..f88607e0a --- /dev/null +++ b/pcr/emacs-lucid/PKGBUILD @@ -0,0 +1,54 @@ +# $Id: PKGBUILD 192474 2013-08-12 20:25:41Z eric $ +# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net> +# Maintainer (Arch): Juergen Hoetzel <juergen@archlinux.org> +# Contributor: Renchi Raju <renchi@green.tam.uiuc.edu> + +_pkgname=emacs +pkgname=emacs-lucid +pkgver=24.3 +pkgrel=4 +pkgdesc="The extensible, customizable, self-documenting real-time display editor" +arch=('i686' 'x86_64') +url="http://www.gnu.org/software/emacs/emacs.html" +license=('GPL3') +depends=('librsvg' 'gpm' 'giflib' 'libxpm' 'libotf' 'm17n-lib' 'hicolor-icon-theme' 'gconf' 'desktop-file-utils' 'alsa-lib' 'imagemagick') +install=emacs.install +source=(ftp://ftp.gnu.org/gnu/emacs/$_pkgname-$pkgver.tar.xz{,.sig} + emacs-24.3-giflib5.patch) +md5sums=('ea9ed000ca165280265aabb55b9afbd7' + 'SKIP' + '560cdf463299e059c5fadf474bcba218') + +pkgdesc+=", with the Lucid X11 toolkit" +provides=("$_pkgname=$pkgver") +conflicts=("$_pkgname") + +prepare() { + cd $_pkgname-$pkgver + patch -Np0 -i ../emacs-24.3-giflib5.patch +} + +build() { + cd "$srcdir"/$_pkgname-$pkgver + ac_cv_lib_gif_EGifPutExtensionLast=yes ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \ + --localstatedir=/var --with-x-toolkit=lucid --with-xft + make +} + +package() { + cd "$srcdir"/$_pkgname-$pkgver + make DESTDIR="$pkgdir" install + + # remove conflict with ctags package + mv "$pkgdir"/usr/bin/{ctags,ctags.emacs} + mv "$pkgdir"/usr/share/man/man1/{ctags.1.gz,ctags.emacs.1} + # remove conflict with texinfo + rm "$pkgdir"/usr/share/info/info.info.gz + # fix user/root permissions on usr/share files + find "$pkgdir"/usr/share/emacs/$pkgver -exec chown root:root {} \; + # fix perms on /var/games + chmod 775 "$pkgdir"/var/games + chmod 775 "$pkgdir"/var/games/emacs + chmod 664 "$pkgdir"/var/games/emacs/* + chown -R root:games "$pkgdir"/var/games +} diff --git a/pcr/emacs-lucid/emacs-24.3-giflib5.patch b/pcr/emacs-lucid/emacs-24.3-giflib5.patch new file mode 100644 index 000000000..b8571abb2 --- /dev/null +++ b/pcr/emacs-lucid/emacs-24.3-giflib5.patch @@ -0,0 +1,26 @@ +--- src/image.c ++++ src/image.c 2013-05-21 15:49:41.945819346 +0000 +@@ -7192,7 +7192,11 @@ gif_load (struct frame *f, struct image + } + + /* Open the GIF file. */ ++#if GIFLIB_MAJOR < 5 + gif = fn_DGifOpenFileName (SSDATA (file)); ++#else ++ gif = fn_DGifOpenFileName (SSDATA (file), NULL); ++#endif + if (gif == NULL) + { + image_error ("Cannot open `%s'", file, Qnil); +@@ -7213,7 +7217,11 @@ gif_load (struct frame *f, struct image + memsrc.len = SBYTES (specified_data); + memsrc.index = 0; + ++#if GIFLIB_MAJOR < 5 + gif = fn_DGifOpen (&memsrc, gif_read_from_memory); ++#else ++ gif = fn_DGifOpen (&memsrc, gif_read_from_memory, NULL); ++#endif + if (!gif) + { + image_error ("Cannot open memory source `%s'", img->spec, Qnil); diff --git a/pcr/emacs-lucid/emacs.install b/pcr/emacs-lucid/emacs.install new file mode 100644 index 000000000..6712f44ba --- /dev/null +++ b/pcr/emacs-lucid/emacs.install @@ -0,0 +1,32 @@ +ICON_PATH=usr/share/icons/hicolor +INFO_DIR=usr/share/info + +INFO_FILES=(ada-mode auth autotype bovine calc ccmode cl dbus dired-x ebrowse +ede ediff edt efaq eieio eintr elisp emacs emacs-gnutls emacs-mime epa erc ert eshell eudc flymake +forms gnus htmlfontify idlwave mairix-el message mh-e newsticker nxml-mode +org pcl-cvs pgg rcirc reftex remember sasl sc semantic ses sieve smtpmail +speedbar srecode tramp url vip viper widget wisent woman) + +post_install() { + gtk-update-icon-cache -q -t -f ${ICON_PATH} + update-desktop-database -q + + [[ -x usr/bin/install-info ]] || return 0 + for f in ${INFO_FILES[@]}; do + install-info ${INFO_DIR}/$f.info.gz ${INFO_DIR}/dir 2> /dev/null + done +} + +post_upgrade() { + post_install $1 +} + +pre_remove() { + gtk-update-icon-cache -q -t -f ${ICON_PATH} + update-desktop-database -q + + [[ -x usr/bin/install-info ]] || return 0 + for f in ${INFO_FILES[@]}; do + install-info --delete ${INFO_DIR}/$f.info.gz ${INFO_DIR}/dir 2> /dev/null + done +} diff --git a/pcr/gnomeradio/PKGBUILD b/pcr/gnomeradio/PKGBUILD new file mode 100644 index 000000000..1fa76de08 --- /dev/null +++ b/pcr/gnomeradio/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer: none +# Contributor: Luke Shumaker <lukeshu@sbcglobal.net> +# Maintainer (AUR): tritonas00 <tritonas00@gmail.com> +# Contributor: Ivan Rojas <kirdux@gmail.com> + +# Because gnomeradio is written against ancient libraries, we must patch it to +# compile and work on a modern system. Let's just grab the patch series that +# Debian uses. +_debver=1.8-2 # which patches to grab from Debian +_debrepo=http://ftp.debian.org/debian/pool/main +_debfile() { echo "${_debrepo}/${1:0:1}/${1}/${1}_${2}"; } + +pkgname=gnomeradio +pkgver=1.8 +pkgrel=6.1 +pkgdesc="An FM-radio tuner for the GNOME desktop" +url="https://projects.gnome.org/gnomeradio/" +license=('GPL') +arch=('i686' 'x86_64') +install=gnomeradio.install +depends=(libgnome-media-profiles lirc-utils hicolor-icon-theme) +makedepends=(gnome-doc-utils intltool gnome-vfs libgnomeui v4l-utils) +source=(https://launchpad.net/$pkgname/stable/$pkgver/+download/$pkgname-$pkgver.tar.gz + $(_debfile "$pkgname" "$_debver").debian.tar.gz) + +prepare() { + cd "$srcdir/$pkgname-$pkgver" + while read -r patchfile; do + patch -p1 -i "$srcdir/debian/patches/$patchfile" + done <"$srcdir/debian/patches/series" + autoconf +} + +build() { + cd "$srcdir/$pkgname-$pkgver" + LIBS=-lm ./configure --prefix=/usr --sysconfdir=/etc --disable-scrollkeeper \ + --disable-install-schemas + make +} + +package () { + cd "$srcdir/$pkgname-$pkgver" + make DESTDIR="$pkgdir" install + mkdir "$pkgdir"/usr/share/pixmaps + install data/icons/scalable/gnomeradio.svg "$pkgdir"/usr/share/pixmaps/gnomeradio.svg +} + +md5sums=('26f07c432dffeebec3cc904f99295427' + '019ce748f8463d3eaebbb3e88d18d3e0') diff --git a/pcr/gnomeradio/gnomeradio.install b/pcr/gnomeradio/gnomeradio.install new file mode 100644 index 000000000..1a05f573e --- /dev/null +++ b/pcr/gnomeradio/gnomeradio.install @@ -0,0 +1,11 @@ +post_install() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/pcr/hiawatha/PKGBUILD b/pcr/hiawatha/PKGBUILD new file mode 100644 index 000000000..1ea4d6435 --- /dev/null +++ b/pcr/hiawatha/PKGBUILD @@ -0,0 +1,117 @@ +# Maintainer: Kurt Marasco <celilo _at_ lavabit _dot_ com> +# Contributor: Pascal Ernster <aur at hardfalcon dot net> + +pkgname=hiawatha +pkgver=9.2 +pkgrel=1 +pkgdesc="Secure and advanced webserver" +url="https://www.hiawatha-webserver.org/" +arch=('i686' 'x86_64') +license=('GPL') +depends=('libxslt' 'polarssl') +optdepends=('php-fpm: Provides modern PHP fast cgi support (Recommended) ') +makedepends=('cmake') +install=$pkgname.install +backup=( + usr/lib/systemd/system/hiawatha.service + etc/hiawatha/hiawatha.conf + etc/hiawatha/hiawatha.conf.sample + etc/hiawatha/cgi-wrapper.conf + etc/hiawatha/mimetype.conf + srv/http/hiawatha/cdcatalog.xml + srv/http/hiawatha/cdcatalog.xslt +) + +source=( + "http://hiawatha-webserver.org/files/${pkgname}-${pkgver}.tar.gz" + 'hiawatha.conf.sample' + 'cdcatalog.xml' + 'cdcatalog.xslt' + 'hiawatha.service' + 'hiawatha.install' +) +sha256sums=( + '5d9cdec51c618bb3efab747030e593d9bd49dfaf3236254c8e0cb60715716dbf' + '4671d2586cbe3cd6497b16ff422c6143cdab40641ef3c9c4988c478351a8f5e7' + '7757d6e5fe363b917a2823ba8b5194509ed6914e7c088d04ae72f9bd73efcb58' + 'f28aa336da6f0fb124a1092039e695d233569cb32632223f786603ffb6ed5471' + 'fb789b12bb6246237b15a9244f58317abdd53e5ca4eb55880e40a498b2237155' + '3b60a884102a6212a4963c041dd2a5a32fb18833f758e9be5d021bbc630ed627' +) + +build() { + cd "$srcdir/${pkgname}-${pkgver}" + + cmake . -DCMAKE_INSTALL_PREFIX="/" \ + -DCMAKE_INSTALL_BINDIR="/usr/bin" \ + -DCMAKE_INSTALL_SBINDIR="/usr/bin" \ + -DCMAKE_INSTALL_SYSCONFDIR="/etc/hiawatha" \ + -DCMAKE_INSTALL_LIBDIR="/usr/lib" \ + -DCMAKE_INSTALL_MANDIR="/usr/share/man" \ + -DCONFIG_DIR="/etc/hiawatha" \ + -DLOG_DIR="/var/log/hiawatha" \ + -DPID_DIR="/run" \ + -DENABLE_SSL=ON \ + -DUSE_SYSTEM_POLARSSL=on \ + -DWEBROOT_DIR="/srv/http" \ + -DWORK_DIR="/var/lib/hiawatha" + make + + # The default capabilities are installed by this PKGBUILD + # The following build options are available to customize your installation: + # modify the above cmake command to customize + #option description required libraries when feature enabled + # cmake options + # -DENABLE_CACHE=ON|off Enable internal cache support. + # -DENABLE_DEBUG=on|OFF Enable debug information (for development only). + # -DENABLE_IPV6=ON|off Enable IPv6 support. + # -DENABLE_MONITOR=on|OFF Enable support for the Hiawatha Monitor. + # -DENABLE_RPROXY=ON|off Enable reverse proxy support. + # -DENABLE_SSL=ON|off Enable SSL (PolarSSL) support. + # -DENABLE_TOMAHAWK=on|OFF Enable Tomahawk, Hiawatha command shell. + # -DENABLE_TOOLKIT=ON|off Enable the URL Toolkit. + # -DENABLE_XSLT=ON|off Enable XSLT support. libxml2, libxslt1 + # -DUSE_SYSTEM_POLARSSL=on|OFF Compile Hiawatha against the system's PolarSSL library (>=1.2.0). + + # The following path settings are available for CMake. + # -DCMAKE_INSTALL_PREFIX=<path> The prefix for all other CMAKE_INSTALL directories. + # -DCMAKE_INSTALL_BINDIR=<path> Location of the ssi-cgi binary. + # -DCMAKE_INSTALL_SBINDIR=<path> Location of the other Hiawatha binaries. + # -DCMAKE_INSTALL_SYSCONFDIR=<path> The configuration files will be installed in /hiawatha. + # -DCMAKE_INSTALL_LIBDIR=<path> The PolarSSL shared library will be installed in /hiawatha. + # -DCMAKE_INSTALL_MANDIR=<path> Manual pages will be installed in /man1. + # -DCONFIG_DIR=<path> Location of the Hiawatha configuration files. + # -DLOG_DIR=<path> Log directory used in the default hiawatha.conf. + # -DPID_DIR=<path> Location of the Hiawatha and php-fcgi PID files. + # -DWEBROOT_DIR=<path> Webroot directory used in the default hiawatha.conf. + # -DWORK_DIR=<path> Path of directory where Hiawatha can write temporary files. +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + make DESTDIR="$pkgdir/" install + + # Fix hiawatha.conf (formerly httpd.conf) + sed -e 's|#ServerId = www-data|ServerId = http|' \ + -e 's|/var/www/|/srv/http/|g' \ + -e 's|//|/|g' \ + -e 's|#CGIextension = cgi|&\n#TriggerOnCGIstatus = yes|g' \ + -e 's|ConnectTo = 127.0.0.1:2005|ConnectTo = 127.0.0.1:9000|g' \ + -e 's|# Extension = php|&\n# SessionTimeout = 30|g' \ + -e 's|#ErrorHandler = 404:/error.cgi|&\n#UseGZfile = yes|g' \ + -i "$pkgdir/etc/hiawatha/hiawatha.conf" + + # Fix hiawatha logrotate file (/etc/logrotate.d/hiawatha) + sed -e 's|www-data|http|g' -i "$srcdir/$pkgname-$pkgver/logrotate.d/hiawatha" + mkdir "$pkgdir/etc/logrotate.d" + install -m644 "$srcdir/$pkgname-$pkgver/logrotate.d/hiawatha" "$pkgdir/etc/logrotate.d/hiawatha" + + # Add startup scripts + install -D -m755 "$srcdir/hiawatha.service" "$pkgdir/usr/lib/systemd/system/hiawatha.service" + + # Install sample configuration implementing a virtual server for phpmyadmin, php-fpm, and a default website on localhost + install -m644 "$srcdir/hiawatha.conf.sample" "$pkgdir/etc/hiawatha/" + # Install sample XSLT transformation on default website on localhost + install -m644 "$srcdir/cdcatalog.xml" "$pkgdir/srv/http" + install -m644 "$srcdir/cdcatalog.xslt" "$pkgdir/srv/http" +} diff --git a/pcr/hiawatha/cdcatalog.xml b/pcr/hiawatha/cdcatalog.xml new file mode 100644 index 000000000..efc35f9ff --- /dev/null +++ b/pcr/hiawatha/cdcatalog.xml @@ -0,0 +1,212 @@ +<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Edited with XML Spy v4.2 -->
+<catalog>
+ <cd>
+ <title>Empire Burlesque</title>
+ <artist>Bob Dylan</artist>
+ <country>USA</country>
+ <company>Columbia</company>
+ <price>10.90</price>
+ <year>1985</year>
+ </cd>
+ <cd>
+ <title>Hide your heart</title>
+ <artist>Bonnie Tyler</artist>
+ <country>UK</country>
+ <company>CBS Records</company>
+ <price>9.90</price>
+ <year>1988</year>
+ </cd>
+ <cd>
+ <title>Greatest Hits</title>
+ <artist>Dolly Parton</artist>
+ <country>USA</country>
+ <company>RCA</company>
+ <price>9.90</price>
+ <year>1982</year>
+ </cd>
+ <cd>
+ <title>Still got the blues</title>
+ <artist>Gary Moore</artist>
+ <country>UK</country>
+ <company>Virgin records</company>
+ <price>10.20</price>
+ <year>1990</year>
+ </cd>
+ <cd>
+ <title>Eros</title>
+ <artist>Eros Ramazzotti</artist>
+ <country>EU</country>
+ <company>BMG</company>
+ <price>9.90</price>
+ <year>1997</year>
+ </cd>
+ <cd>
+ <title>One night only</title>
+ <artist>Bee Gees</artist>
+ <country>UK</country>
+ <company>Polydor</company>
+ <price>10.90</price>
+ <year>1998</year>
+ </cd>
+ <cd>
+ <title>Sylvias Mother</title>
+ <artist>Dr.Hook</artist>
+ <country>UK</country>
+ <company>CBS</company>
+ <price>8.10</price>
+ <year>1973</year>
+ </cd>
+ <cd>
+ <title>Maggie May</title>
+ <artist>Rod Stewart</artist>
+ <country>UK</country>
+ <company>Pickwick</company>
+ <price>8.50</price>
+ <year>1990</year>
+ </cd>
+ <cd>
+ <title>Romanza</title>
+ <artist>Andrea Bocelli</artist>
+ <country>EU</country>
+ <company>Polydor</company>
+ <price>10.80</price>
+ <year>1996</year>
+ </cd>
+ <cd>
+ <title>When a man loves a woman</title>
+ <artist>Percy Sledge</artist>
+ <country>USA</country>
+ <company>Atlantic</company>
+ <price>8.70</price>
+ <year>1987</year>
+ </cd>
+ <cd>
+ <title>Black angel</title>
+ <artist>Savage Rose</artist>
+ <country>EU</country>
+ <company>Mega</company>
+ <price>10.90</price>
+ <year>1995</year>
+ </cd>
+ <cd>
+ <title>1999 Grammy Nominees</title>
+ <artist>Many</artist>
+ <country>USA</country>
+ <company>Grammy</company>
+ <price>10.20</price>
+ <year>1999</year>
+ </cd>
+ <cd>
+ <title>For the good times</title>
+ <artist>Kenny Rogers</artist>
+ <country>UK</country>
+ <company>Mucik Master</company>
+ <price>8.70</price>
+ <year>1995</year>
+ </cd>
+ <cd>
+ <title>Big Willie style</title>
+ <artist>Will Smith</artist>
+ <country>USA</country>
+ <company>Columbia</company>
+ <price>9.90</price>
+ <year>1997</year>
+ </cd>
+ <cd>
+ <title>Tupelo Honey</title>
+ <artist>Van Morrison</artist>
+ <country>UK</country>
+ <company>Polydor</company>
+ <price>8.20</price>
+ <year>1971</year>
+ </cd>
+ <cd>
+ <title>Soulsville</title>
+ <artist>Jorn Hoel</artist>
+ <country>Norway</country>
+ <company>WEA</company>
+ <price>7.90</price>
+ <year>1996</year>
+ </cd>
+ <cd>
+ <title>The very best of</title>
+ <artist>Cat Stevens</artist>
+ <country>UK</country>
+ <company>Island</company>
+ <price>8.90</price>
+ <year>1990</year>
+ </cd>
+ <cd>
+ <title>Stop</title>
+ <artist>Sam Brown</artist>
+ <country>UK</country>
+ <company>A and M</company>
+ <price>8.90</price>
+ <year>1988</year>
+ </cd>
+ <cd>
+ <title>Bridge of Spies</title>
+ <artist>T`Pau</artist>
+ <country>UK</country>
+ <company>Siren</company>
+ <price>7.90</price>
+ <year>1987</year>
+ </cd>
+ <cd>
+ <title>Private Dancer</title>
+ <artist>Tina Turner</artist>
+ <country>UK</country>
+ <company>Capitol</company>
+ <price>8.90</price>
+ <year>1983</year>
+ </cd>
+ <cd>
+ <title>Midt om natten</title>
+ <artist>Kim Larsen</artist>
+ <country>EU</country>
+ <company>Medley</company>
+ <price>7.80</price>
+ <year>1983</year>
+ </cd>
+ <cd>
+ <title>Pavarotti Gala Concert</title>
+ <artist>Luciano Pavarotti</artist>
+ <country>UK</country>
+ <company>DECCA</company>
+ <price>9.90</price>
+ <year>1991</year>
+ </cd>
+ <cd>
+ <title>The dock of the bay</title>
+ <artist>Otis Redding</artist>
+ <country>USA</country>
+ <company>Atlantic</company>
+ <price>7.90</price>
+ <year>1987</year>
+ </cd>
+ <cd>
+ <title>Picture book</title>
+ <artist>Simply Red</artist>
+ <country>EU</country>
+ <company>Elektra</company>
+ <price>7.20</price>
+ <year>1985</year>
+ </cd>
+ <cd>
+ <title>Red</title>
+ <artist>The Communards</artist>
+ <country>UK</country>
+ <company>London</company>
+ <price>7.80</price>
+ <year>1987</year>
+ </cd>
+ <cd>
+ <title>Unchain my heart</title>
+ <artist>Joe Cocker</artist>
+ <country>USA</country>
+ <company>EMI</company>
+ <price>8.20</price>
+ <year>1987</year>
+ </cd>
+</catalog>
diff --git a/pcr/hiawatha/cdcatalog.xslt b/pcr/hiawatha/cdcatalog.xslt new file mode 100644 index 000000000..db9cc35bc --- /dev/null +++ b/pcr/hiawatha/cdcatalog.xslt @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Edited with XML Spy v4.2 -->
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="/">
+ <html>
+ <body>
+ <h2>My CD Collection</h2>
+ <table border="1">
+ <tr bgcolor="#9acd32">
+ <th align="left">Title</th>
+ <th align="left">Artist</th>
+ </tr>
+ <xsl:for-each select="catalog/cd">
+ <tr>
+ <td><xsl:value-of select="title"/></td>
+ <td><xsl:value-of select="artist"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </body>
+ </html>
+</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file diff --git a/pcr/hiawatha/hiawatha.conf.sample b/pcr/hiawatha/hiawatha.conf.sample new file mode 100644 index 000000000..1c1d62450 --- /dev/null +++ b/pcr/hiawatha/hiawatha.conf.sample @@ -0,0 +1,114 @@ +# Hiawatha main configuration file +# This is a basic sample configuration file that sets up a: +# 1) Default web site at /srv/http/hiawatha (Note: fast CGI is not active on default site) +# 2) Virtual host for phpmyadmin at /srv/http/phpMyAdmin +# note: you must install phpmyadmin, mysql, php-mcrypt, and php-cgi separately. Be sure that extensions +# mcrypt.so and mysql.so are enabled in your php.ini. +# Also add phpmyadmin to your hosts file +# 3) FastCGI server + + +# GENERAL SETTINGS +ServerId = http +ConnectionsTotal = 150 +ConnectionsPerIP = 10 +SystemLogfile = /var/log/hiawatha/system.log +GarbageLogfile = /var/log/hiawatha/garbage.log + + +# BINDING SETTINGS +# A binding is where a client can connect to. +# +Binding { + Port = 80 +} + + + +### The following fast CGI daemons require php-fpm using a UNIX socket and TCP port, respectively. +# ACTIVATE a FastCGI server for php (using UNIX socket) +FastCGIserver { + FastCGIid = PHP5 + ConnectTo = /run/php-fpm/php-fpm.sock + Extension = php + SessionTimeout = 30 +} + +# ACTIVATE a FastCGI server for php (using IP-address and TCP port) +#FastCGIserver { +# FastCGIid = PHP5 +# ConnectTo = 127.0.0.1:9000 +# Extension = php +# SessionTimeout = 30 +#} + + +# DEFAULT WEBSITE +# It is wise to use your IP address as the hostname of the default website +# and give it a blank webpage. By doing so, automated webscanners won't find +# your possible vulnerable website. +# +Hostname = 127.0.0.1 +WebsiteRoot = /srv/http/hiawatha +StartFile = index.html +AccessLogfile = /var/log/hiawatha/access.log +ErrorLogfile = /var/log/hiawatha/error.log +#ErrorHandler = 404:/error.cgi +UseXSLT = yes + + +# VIRTUAL HOSTS +VirtualHost { + + # If you set WebsiteRoot to /usr/share/webapps/phpMyAdmin you don't need followsymlinks + # I symlinked the phpMyAdmin folder to '/srv/http/phpMyAdmin' so that I can easily remember where it's located but + # still set 'WebsiteRoot' to the real source directory. You could point WebsiteRoot to the + # symlinked directory, but you will have to set 'FollowSymlinks = yes' for that to function properly + + #FollowSymlinks = yes + #WebsiteRoot = /srv/http/phpMyAdmin + WebsiteRoot = /usr/share/webapps/phpMyAdmin + Hostname = phpmyadmin + AccessLogfile = /var/log/hiawatha/phpmyadmin/access.log + ErrorLogfile = /var/log/hiawatha/phpmyadmin/error.log + StartFile = index.php + UseFastCGI = PHP5 + +} + +# Add some more + +#VirtualHost { +# Hostname = www.my-domain.com +# WebsiteRoot = /svr/http/my-domain/public +# StartFile = index.php +# AccessLogfile = /svr/http/my-domain/log/access.log +# ErrorLogfile = /svr/http/my-domain/log/error.log +# TimeForCGI = 5 +# UseFastCGI = PHP5 +# UseToolkit = banshee +#} + + +#Additional settings for monitoring + +UrlToolkit { + ToolkitID = banshee + RequestURI isfile Return + Match ^/(css|files|images|js)/ Return + Match ^/(favicon.ico|robots.txt|sitemap.xml)$ Return + Match .*\?(.*) Rewrite /index.php?$1 + Match .* Rewrite /index.php +} + +VirtualHost { + Hostname = monitor.domain.com + WebsiteRoot = /svr/http/monitor/public + AccessLogfile = /svr/http/monitor/logfiles/access.log + ErrorLogfile = /svr/http/monitor/logfiles/error.log + StartFile = index.php +# ExecuteCGI = yes + UseFastCGI = PHP5 # Use if you use PHP as a FastCGI daemon + TimeForCGI = 15 + UseToolkit = banshee +} diff --git a/pcr/hiawatha/hiawatha.install b/pcr/hiawatha/hiawatha.install new file mode 100644 index 000000000..0ea96ec65 --- /dev/null +++ b/pcr/hiawatha/hiawatha.install @@ -0,0 +1,37 @@ +pre_install() { + /bin/cat <<THEENDPOSTINSTALL +NOTE +---- +If you are new to Hiawatha, please refer to http://www.hiawatha-webserver.org/howto + +!!!!! This PKGBUILD compiles against the system's PolarSSL library. You will need to install PolarSSL from the AUR.!!!! + +THEENDPOSTINSTALL +} + +pre_upgrade() { + /bin/cat <<THEENDPOSTINSTALL +NOTE +---- +If you are new to Hiawatha, please refer to http://www.hiawatha-webserver.org/howto + +!!!!! This PKGBUILD compiles against the system's PolarSSL library. You will need to install PolarSSL from the AUR.!!!! + +THEENDPOSTINSTALL +} + +post_install() { + /bin/cat <<THEENDPOSTINSTALL +NOTE +---- +If you are new to Hiawatha, please refer to http://www.hiawatha-webserver.org/howto + +PHP-FPM is the prefered fastcgi server. To install. + pacman -Sy php-fpm + systemctl enable php-fpm + +The file hiawatha.conf.sample demonstrates syntax appropriate for use with the php-fpm fast cgi daemon. +THEENDPOSTINSTALL +} + + diff --git a/pcr/hiawatha/hiawatha.service b/pcr/hiawatha/hiawatha.service new file mode 100644 index 000000000..f7daeb8c7 --- /dev/null +++ b/pcr/hiawatha/hiawatha.service @@ -0,0 +1,16 @@ +[Unit] +Description=Hiawatha Web Server +After=network.target remote-fs.target nss-lookup.target + +[Service] +Type=simple +SyslogIdentifier=hiawatha +ExecStartPre=/usr/bin/hiawatha -k ; /usr/bin/wigwam +ExecStart= /usr/bin/hiawatha -d +TimeoutSec=10 +#(doesn't like this setting. Can't find files) PrivateTmp=true +LimitNOFILE=infinity +CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_CHOWN CAP_DAC_OVERRIDE CAP_FOWNER CAP_FSETID CAP_SETGID CAP_SETUID + +[Install] +WantedBy=multi-user.target diff --git a/pcr/ii/PKGBUILD b/pcr/ii/PKGBUILD new file mode 100644 index 000000000..b17cc2d18 --- /dev/null +++ b/pcr/ii/PKGBUILD @@ -0,0 +1,30 @@ +# Contributor: Evan Gates <evan.gates@gmail.com> +# Contributor: Dag Odenhall <dag.odenhall@gmail.com> +# Contributor: Chris Brannon <cmbrannon@cox.net> +# Contributor: William Giokas <1007380@gmail.com> +pkgname=ii +pkgver=1.7 +pkgrel=2 +pkgdesc="A minimalist FIFO and filesystem-based IRC client" +license=(MIT) +arch=(i686 x86_64) +url=http://tools.suckless.org/ii +depends=(glibc) +source=("http://dl.suckless.org/tools/${pkgname}-${pkgver}.tar.gz") + +md5sums=('6191008ca09770873d84f40270493d0e') + +prepare() { + cd "$srcdir/$pkgname-$pkgver" + sed -i "s/CFLAGS = /CFLAGS = ${CFLAGS} /" config.mk +} + +build() { + cd "$srcdir/$pkgname-$pkgver" + make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + make PREFIX=/usr MANDIR=/usr/share/man DESTDIR="$pkgdir" install +} diff --git a/pcr/kompozer/PKGBUILD b/pcr/kompozer/PKGBUILD index 7b556e166..a65fb3e3b 100644 --- a/pcr/kompozer/PKGBUILD +++ b/pcr/kompozer/PKGBUILD @@ -1,59 +1,69 @@ -# Contributor: peace4all <markspost at rocketmail dot com> +# Maintainer: Muflone <webreg@vbsimple.net> +# Contributor: ingamedeo <ingamedeo at gmail dot com> # Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io> # thanks to tadzio, and techlive for the investigation # work and fix included as the NS_IMETHOD_i686.patch +# Sorry for not honouring makepkg.conf (!buildflags) +# but the source doesn't compile with makepkg's default C/CXXFLAGS + pkgname=kompozer pkgver=0.8b3 -pkgrel=10 +pkgrel=12 pkgdesc="A Dreamweaver style WYSIWYG web editor; Nvu unofficial bug-fix release" arch=('x86_64' 'i686') license=('GPL') url="http://www.kompozer.net" depends=('gtk2' 'glib2' 'pango' 'pangox-compat' 'nss' 'libxt' 'libidl2' 'gnome-vfs') makedepends=('zip' 'pkgconfig') -source=("http://downloads.sourceforge.net/kompozer/$pkgname-$pkgver-src.tar.bz2" - 'kompozer.desktop' - 'mozconfig.patch' - 'kompozer-libpng15.patch' - 'kompozer-libpng14.patch' - 'gcc46_default_ctors.patch' - 'kompozer_gcc_4.7.patch' - 'any_kernel_26_plus.patch' - 'NS_IMETHOD_i686.patch') +options=('!buildflags') +source=("http://downloads.sourceforge.net/kompozer/${pkgname}-${pkgver}-src.tar.bz2" + 'kompozer.desktop' + 'mozconfig.patch' + 'kompozer-libpng15.patch' + 'kompozer-libpng14.patch' + 'gcc46_default_ctors.patch' + 'kompozer_gcc_4.7.patch' + 'any_kernel_26_plus.patch' + 'NS_IMETHOD_i686.patch') md5sums=('cd4664ecda908666b19ef0607010c627' 'ed8edf6817892a38b8b181fc9b2caaea' - '4778f967307cf569089daca843de1df9' + '4778f967307cf569089daca843de1df9' '4852034f99e7943071946e7eedc6c2f5' 'd5ba90f7fbaed76f77a6d9717e86f3a5' 'ad3ec5cbc6677dd712b140148398f58f' - '75b0e1cad65dbeb8feedac5d4f52be32' + '75b0e1cad65dbeb8feedac5d4f52be32' '58a294356b3e17ad070e4c93180bf0ad' '186c47586bebf83b9b76d339e3a38c95') build() { - cd "$srcdir/mozilla" - - patch -Np0 -i "$srcdir/mozconfig.patch" - patch -Np0 -i "$srcdir/kompozer-libpng14.patch" - patch -Np0 -i "$srcdir/kompozer-libpng15.patch" - patch -Np0 -i "$srcdir/gcc46_default_ctors.patch" - patch -Np0 -i "$srcdir/kompozer_gcc_4.7.patch" - patch -Np0 -i "$srcdir/any_kernel_26_plus.patch" - patch -Np0 -i "$srcdir/NS_IMETHOD_i686.patch" - - make -f client.mk build + cd "${srcdir}/mozilla" + patch -Np0 -i "${srcdir}/mozconfig.patch" + patch -Np0 -i "${srcdir}/kompozer-libpng14.patch" + patch -Np0 -i "${srcdir}/kompozer-libpng15.patch" + patch -Np0 -i "${srcdir}/gcc46_default_ctors.patch" + patch -Np0 -i "${srcdir}/kompozer_gcc_4.7.patch" + patch -Np0 -i "${srcdir}/any_kernel_26_plus.patch" + patch -Np0 -i "${srcdir}/NS_IMETHOD_i686.patch" + + #make -f client.mk build #If is causing a lot of problem...try to build the package as normally + ./configure + make } package() { - cd "$srcdir/obj-kompozer" + cd "${srcdir}/mozilla" + + make DESTDIR=${pkgdir} install + # Remove nspr.m4 because it's now provided by nspr package + rm "${pkgdir}/usr/share/aclocal/nspr.m4" + rmdir "${pkgdir}/usr/share/aclocal" - make DESTDIR=$pkgdir install - install -m755 -dD "$pkgdir/usr/share/applications/" - install -m644 "$srcdir/kompozer.desktop" "$pkgdir/usr/share/applications/" + install -m755 -dD "${pkgdir}/usr/share/applications/" + install -m644 "${srcdir}/kompozer.desktop" "${pkgdir}/usr/share/applications/" - mkdir -p "$pkgdir/usr/share/pixmaps/" - ln -s "/usr/lib/kompozer/icons/mozicon256.png" "$pkgdir/usr/share/pixmaps/kompozer.png" - ln -s "/usr/lib/kompozer/icons/mozicon50.xpm" "$pkgdir/usr/share/pixmaps/kompozer.xpm" + install -d -m755 "${pkgdir}/usr/share/pixmaps/" + ln -s "/usr/lib/kompozer/icons/mozicon256.png" "${pkgdir}/usr/share/pixmaps/kompozer.png" + ln -s "/usr/lib/kompozer/icons/mozicon50.xpm" "${pkgdir}/usr/share/pixmaps/kompozer.xpm" } diff --git a/pcr/libcgroup/PKGBUILD b/pcr/libcgroup/PKGBUILD new file mode 100644 index 000000000..849a5c128 --- /dev/null +++ b/pcr/libcgroup/PKGBUILD @@ -0,0 +1,57 @@ +# Maintainer: Christian Hesse <mail@eworm.de> +# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com> + +pkgname=libcgroup +pkgver=0.40rc1 +pkgrel=1 +pkgdesc="Library that abstracts the control group file system in Linux" +arch=('i686' 'x86_64') +url="http://libcg.sourceforge.net" +license=(LGPL) +backup=('etc/cgconfig.conf' + 'etc/cgrules.conf' + 'etc/cgsnapshot_blacklist.conf') +options=('!emptydirs' '!libtool') +install=libcgroup.install +source=("http://downloads.sourceforge.net/libcg/${pkgname}-${pkgver/rc/.rc}.tar.bz2" + 'cgconfig.service' + 'cgrules.service') + +build() { + cd "${srcdir}/${pkgname}-${pkgver/rc/.rc}" + + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --sbindir=/usr/bin \ + --enable-opaque-hierarchy=name=systemd + + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver/rc/.rc}" + + make DESTDIR="${pkgdir}" pkgconfigdir="/usr/lib/pkgconfig" install + + install -D -m0644 samples/cgconfig.conf "${pkgdir}/etc/cgconfig.conf" + install -D -m0644 samples/cgrules.conf "${pkgdir}/etc/cgrules.conf" + install -D -m0644 samples/cgsnapshot_blacklist.conf "${pkgdir}/etc/cgsnapshot_blacklist.conf" + + install -D -m0644 ${srcdir}/cgconfig.service "${pkgdir}/usr/lib/systemd/system/cgconfig.service" + install -D -m0644 ${srcdir}/cgrules.service "${pkgdir}/usr/lib/systemd/system/cgrules.service" + + rm -f ${pkgdir}/usr/lib/security/pam_cgroup.{la,so,so.0} + mv ${pkgdir}/usr/lib/security/pam_cgroup.so.0.0.0 ${pkgdir}/usr/lib/security/pam_cgroup.so + + rm -rf ${pkgdir}/etc/rc.d + + # Make cgexec setgid cgred + chown root:160 ${pkgdir}/usr/bin/cgexec + chmod 2755 ${pkgdir}/usr/bin/cgexec +} + +sha256sums=('c2fa2cfdfd1023093afb6de456fc3ac000f92a2f01b905bcdda1c3e36ad44072' + '808fc354abf36d7b6673dad790be275309ac57a2606d1be3732b9b3aeb5885eb' + '6b1340ff6717f55e5e57dacc72accc0bfaed7e50ef31439271b6ddc893cbf671') diff --git a/pcr/libcgroup/cgconfig.service b/pcr/libcgroup/cgconfig.service new file mode 100644 index 000000000..3e6689d77 --- /dev/null +++ b/pcr/libcgroup/cgconfig.service @@ -0,0 +1,17 @@ +[Unit] +Description=Control Group configuration service + +# The service should be able to start as soon as possible, +# before any 'normal' services: +DefaultDependencies=no +Conflicts=shutdown.target +Before=basic.target shutdown.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/cgconfigparser -l /etc/cgconfig.conf -s 1664 +ExecStop=/usr/bin/cgclear -l /etc/cgconfig.conf -e + +[Install] +WantedBy=sysinit.target diff --git a/pcr/libcgroup/cgrules.service b/pcr/libcgroup/cgrules.service new file mode 100644 index 000000000..cd0bf34fb --- /dev/null +++ b/pcr/libcgroup/cgrules.service @@ -0,0 +1,16 @@ +[Unit] +Description=Control Group rules service + +# The service should be able to start as soon as possible, +# before any 'normal' services: +DefaultDependencies=no +Conflicts=shutdown.target +Before=basic.target shutdown.target +After=cgconfig.service + +[Service] +Type=simple +ExecStart=/usr/bin/cgrulesengd -n -f - + +[Install] +WantedBy=sysinit.target diff --git a/pcr/libcgroup/libcgroup.install b/pcr/libcgroup/libcgroup.install new file mode 100644 index 000000000..a78216add --- /dev/null +++ b/pcr/libcgroup/libcgroup.install @@ -0,0 +1,11 @@ +post_install() { + getent group cgred &>/dev/null || groupadd -r -g 160 cgred >/dev/null +} + +post_upgrade() { + post_install +} + +post_remove() { + getent group cgred &>/dev/null && groupdel cgred >/dev/null +} diff --git a/pcr/libqinfinity/PKGBUILD b/pcr/libqinfinity/PKGBUILD new file mode 100644 index 000000000..fdd7ed0c4 --- /dev/null +++ b/pcr/libqinfinity/PKGBUILD @@ -0,0 +1,27 @@ +# Contributor: Antonio Rojas <nqn1976 @ gmail.com> +# Maintainer: parabola Aurélien Desbrières <aurelien@replicant.io> + +pkgname=libqinfinity +pkgver=0.5.1 +pkgrel=1 +pkgdesc="Qt wrapper around libinfinity, a library for collaborative editing" +arch=('i686' 'x86_64') +url='https://projects.kde.org/projects/playground/libs/libqinfinity' +license=('LGPL') +depends=('libinfinity' 'qt4') +makedepends=('cmake') +source=("http://download.kde.org/stable/$pkgname/$pkgver/src/$pkgname-v$pkgver.tar.xz") + + +build() { + cd "$pkgname-v$pkgver" + mkdir build + cd build + cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake-qt4 + make +} + +package() { + cd "$pkgname-v$pkgver/build" + make DESTDIR="$pkgdir" install +} diff --git a/pcr/libquvi-scripts-current/PKGBUILD b/pcr/libquvi-scripts-current/PKGBUILD index bce42b0e4..6a466b314 100644 --- a/pcr/libquvi-scripts-current/PKGBUILD +++ b/pcr/libquvi-scripts-current/PKGBUILD @@ -4,7 +4,7 @@ pkgname=libquvi-scripts-current _pkgname=libquvi-scripts provides=(libquvi-scripts) -pkgver=0.4.18 +pkgver=0.4.19 pkgrel=1 pkgdesc='Library for parsing video download links.' arch=('any') @@ -24,5 +24,6 @@ package() { cd "${_pkgname}-${pkgver}" make DESTDIR="${pkgdir}" install } -md5sums=('d36f966974c851d36136c75d462fb319' + +md5sums=('a37221697367a700cc1cb3b1f4b681ec' 'SKIP') diff --git a/pcr/maildirproc/PKGBUILD b/pcr/maildirproc/PKGBUILD new file mode 100644 index 000000000..0e3becf75 --- /dev/null +++ b/pcr/maildirproc/PKGBUILD @@ -0,0 +1,21 @@ +# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net> +# Maintainer (AUR): Mick Koch <kchmck@gmail.com> + +pkgname="maildirproc" +pkgver="0.5.0" +pkgrel="3" +pkgdesc="Sorts mail based on a Python configuration file" +arch=("any") +url="http://joel.rosdahl.net/maildirproc/" +license=("GPL") # GPLv2+ +depends=("python") +source=("http://joel.rosdahl.net/maildirproc/releases/$pkgname-$pkgver.tar.bz2") +md5sums=("eaa001f6cd1befee99528ca55da979ca") + +package() { + cd "$srcdir/$pkgname-$pkgver" + python setup.py install --root="$pkgdir" --optimize=1 + + mkdir -p "$pkgdir"/usr/share/doc/$pkgname/ + cp -r doc/* "$pkgdir"/usr/share/doc/$pkgname/ +} diff --git a/pcr/nevow/PKGBUILD b/pcr/nevow/PKGBUILD new file mode 100644 index 000000000..956a0cd32 --- /dev/null +++ b/pcr/nevow/PKGBUILD @@ -0,0 +1,23 @@ +# Maintainer: Nicolas Pouillard <nicolas.pouillard@gmail.com> +# Contributor: Peter Simons <simons@cryp.to> +pkgname=nevow +pkgver=0.10.0 +pkgrel=8 +pkgdesc="web application construction kit written in Python" +arch=('any') +url='http://pypi.python.org/pypi/Nevow' +license=('custom') +depends=('python2' 'twisted') +source=( http://pypi.python.org/packages/source/N/Nevow/Nevow-$pkgver.tar.gz ) +md5sums=('66dda2ad88f42dea05911add15f4d1b2') + +build(){ + cd "$srcdir/Nevow-$pkgver" + python2 setup.py build +} + +package(){ + cd "$srcdir/Nevow-$pkgver" + python2 setup.py install --prefix=/usr --root="$pkgdir" --install-data=/usr/share/"$pkgname" + install -D LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} diff --git a/pcr/ocsync/PKGBUILD b/pcr/ocsync/PKGBUILD index 97bc26754..cde26af30 100644 --- a/pcr/ocsync/PKGBUILD +++ b/pcr/ocsync/PKGBUILD @@ -1,6 +1,6 @@ # Maintainer: Kuba Serafinowski <zizzfizzix(at)gmail(dot)com> # https://github.com/zizzfizzix/pkgbuilds -# Maintainer: Jorge Araya Navarro <jorgean@lavabit.com> +# Maintainer: Jorge Araya Navarro <shackra@riseup.net> # ############################################################## #### The section below can be adjusted to suit your needs #### @@ -15,8 +15,8 @@ _buildtype="Release" ############################################################## pkgname=ocsync -pkgver=0.80.0 -pkgrel=3 +pkgver=0.90.0 +pkgrel=1 pkgdesc="A file synchronizer especially designed for you, the normal user. Dependency of owncloud-client." arch=("i686" "x86_64") url="http://www.csync.org" @@ -52,3 +52,4 @@ package() { cd ${srcdir}/${pkgname}-${pkgver}-build make DESTDIR=${pkgdir} install } +md5sums=('6f1cfe47d6a7741c6e8df8642de52c0f') diff --git a/pcr/owncloud-client/PKGBUILD b/pcr/owncloud-client/PKGBUILD index a4e86099b..ea808c1ef 100644 --- a/pcr/owncloud-client/PKGBUILD +++ b/pcr/owncloud-client/PKGBUILD @@ -1,6 +1,6 @@ # Maintainer: Kuba Serafinowski <zizzfizzix(at)gmail(dot)com> # https://github.com/zizzfizzix/pkgbuilds -# Maintainer: Jorge Araya Navarro <jorgean@lavabit.com> +# Maintainer: Jorge Araya Navarro <shackra@riseup.net> # ############################################################## #### The section below can be adjusted to suit your needs #### @@ -16,13 +16,13 @@ _buildtype="Release" _name=mirall pkgname=owncloud-client -pkgver=1.3.0 -pkgrel=2 +pkgver=1.4.0 +pkgrel=1 pkgdesc="ownCloud client based on mirall" arch=('i686' 'x86_64') url="http://owncloud.org/" license=('GPL2') -depends=('qt4' 'ocsync') +depends=('qt4' 'ocsync' 'qtkeychain' 'qtwebkit') makedepends=('cmake') optdepends=('qtkeychain: safe password storage') provides=('mirall' 'owncloud-client') @@ -30,7 +30,8 @@ conflicts=('mirall-git') install=owncloud-client.install backup=('etc/owncloud-client/sync-exclude.lst') source=("http://download.owncloud.com/download/${_name}-${pkgver}.tar.bz2") -md5sums=('ee2e7bafc714399f2027fefed853f968') +md5sums=('05a69082b4e940b4282c2b05344c143a') + if [[ ! ${_buildtype} == "Release" ]] && [[ ! ${_buildtype} == "release" ]]; then options=(!strip) diff --git a/pcr/pandoc/PKGBUILD b/pcr/pandoc/PKGBUILD index 6fe28cc7c..0d2f2d8ea 100644 --- a/pcr/pandoc/PKGBUILD +++ b/pcr/pandoc/PKGBUILD @@ -5,13 +5,13 @@ pkgname=pandoc-static _pkgname=pandoc -pkgver=1.11.1 -pkgrel=2 +pkgver=1.12 +pkgrel=1 pkgdesc='Conversion between markup formats (no Haskell libs)' url='http://johnmacfarlane.net/pandoc/' license=('GPL') arch=('i686' 'x86_64') -makedepends=('ghc' 'sh' 'cabal-install') +makedepends=('ghc' 'sh' 'cabal-install' 'alex' 'happy') options=(strip !makeflags !distcc !emptydirs) #source=(https://repo.parabolagnulinux.org/other/${_pkgname}-${pkgver}-$pkgrel-any.src.tar.xz{,.sig} source=(https://repo.parabolagnulinux.org/other/${_pkgname}-${pkgver}-1-any.src.tar.xz{,.sig} @@ -20,9 +20,9 @@ source=(https://repo.parabolagnulinux.org/other/${_pkgname}-${pkgver}-1-any.src. replaces=('pandoc') provides=('pandoc') optdepends=('texlive-most: for pdf creation') -md5sums=('74acd042fcd85bee9edb093cc3fe5c2e' +md5sums=('3d5f23060cad2ff29ba2df5651e92f8a' 'SKIP' - 'ee9d5924632ac07b5049be834a1ed054') + 'c2e9f9b880468455b6e6a7f9ba7308e8') # PKGBUILD functions build() { @@ -47,7 +47,7 @@ build() { case $_hkpkg in $_pkgname-$pkgver) HOME=${srcdir}/${_pkgname}-${pkgver} \ - cabal configure --flags='-library blaze_html_0_5' \ + cabal configure --flags='-library' \ --prefix=/usr \ --libdir=${srcdir}/build/usr/lib -v diff --git a/pcr/pandoc/SRCBUILD b/pcr/pandoc/SRCBUILD index ec499f814..f822bb1a0 100644 --- a/pcr/pandoc/SRCBUILD +++ b/pcr/pandoc/SRCBUILD @@ -2,10 +2,7 @@ # Based on haskell-pandoc pkgname=pandoc -pkgver=1.11.1 -# 0.4 doesn't work with ghc 7.6 -# Use blaze_html_0_5 flag in the future -_blaze_html=0.6.1.1 +pkgver=1.12 pkgrel=1 pkgdesc='Conversion between markup formats (no Haskell libs)' url='http://johnmacfarlane.net/pandoc/' @@ -24,12 +21,12 @@ build() { cabal --verbose=3 update HOME=${srcdir}/${pkgname}-${pkgver} \ - cabal --verbose=3 fetch file-embed blaze-html-${_blaze_html} ${pkgname}-${pkgver} + cabal --verbose=3 fetch file-embed ${pkgname}-${pkgver} msg2 "Getting the dependency build order" # Ignore the cabal messages HOME=${srcdir}/${pkgname}-${pkgver} \ - cabal install --dry-run file-embed blaze-html-${_blaze_html} ${pkgname}-${pkgver} | grep "\-[0-9]\+" >>BUILDORDER + cabal install --dry-run file-embed ${pkgname}-${pkgver} | grep "\-[0-9]\+" >>BUILDORDER } package() { diff --git a/pcr/polarssl/PKGBUILD b/pcr/polarssl/PKGBUILD new file mode 100644 index 000000000..9d547d1d1 --- /dev/null +++ b/pcr/polarssl/PKGBUILD @@ -0,0 +1,28 @@ +# Maintainer: Mihai Militaru <mihai militaru at xmpp dot ro> + +pkgname=polarssl +pkgver=1.2.8 +pkgrel=1 +pkgdesc="Portable cryptographic and SSL/TLS library" +arch=('i686' 'x86_64') +url="http://www.polarssl.org/" +license=('GPL2') +source=(http://www.polarssl.org/code/releases/polarssl-"$pkgver"-gpl.tgz) +sha1sums=('a3e69d4e9302529c5006dcb7d8ecab9c99488036') +depends=('glibc') + +build() { + cd "$pkgname"-"$pkgver" + + sed -i 's^CFLAGS +=^CFLAGS += -fPIC^g' library/Makefile + sed -i 's#all: static#all: static shared#g' library/Makefile + + make +} + +package() { + cd "$pkgname"-"$pkgver" + + make DESTDIR="$pkgdir/usr" install + echo "WARNING: in order to run the tests, execute in this directory, after you install the library: cd src/polarssl-$pkgver && make check" +} diff --git a/pcr/pycryptopp/PKGBUILD b/pcr/pycryptopp/PKGBUILD new file mode 100644 index 000000000..f95654884 --- /dev/null +++ b/pcr/pycryptopp/PKGBUILD @@ -0,0 +1,31 @@ +# Maintainer: Nicolas Pouillard <nicolas.pouillard@gmail.com> +# Contributor: Peter Simons <simons@cryp.to> +pkgname=pycryptopp +pkgver=0.6.0 +_pkgtag=1206569328141510525648634803928199668821045408958 +pkgrel=2 +pkgdesc="Python wrappers for the Crypto++ library" +arch=('i686' 'x86_64') +url='http://allmydata.org/trac/pycryptopp' +license=('GPL2' 'custom') +depends=('python2' 'crypto++') +makedepends=('darcsver' 'setuptools_darcs') +source=( http://pypi.python.org/packages/source/p/$pkgname/$pkgname-$pkgver.$_pkgtag.tar.gz + http://pypi.python.org/packages/source/p/$pkgname/$pkgname-$pkgver.$_pkgtag.tar.gz.asc ) +md5sums=('ce38fbe03705d27da408c78b56eb1947' + '76fe2da5b1fc964d9e1ee4596c36d5bf') + +build() { + cd "$srcdir/$pkgname-$pkgver.$_pkgtag" + export PYCRYPTOPP_DISABLE_EMBEDDED_CRYPTOPP=1 + python2 setup.py build + python2 setup.py test +} + +package() { + cd "$srcdir/$pkgname-$pkgver.$_pkgtag" + python2 setup.py install --root="$pkgdir" + + install -d $pkgdir/usr/share/licenses/$pkgname/ + install -m 644 COPYING* $pkgdir/usr/share/licenses/$pkgname/ +} diff --git a/pcr/python-jedi/PKGBUILD b/pcr/python-jedi/PKGBUILD new file mode 100644 index 000000000..d34823097 --- /dev/null +++ b/pcr/python-jedi/PKGBUILD @@ -0,0 +1,23 @@ +# Contributor: Jesus Alvarez +# Contributor: Danilo Bargen <gezuru@gmail.com> +# Maintainer : Parabola Aurélien DESBRIÈRES <aurelien@replicant.io> +pkgname=python-jedi +pkgver=0.7.0 +pkgrel=1 +pkgdesc="Awesome autocompletion for python. Official PKGBUILD." +arch=('any') +url="https://github.com/davidhalter/jedi" +license=('LGPL3') +depends=('python') +makedepends=('python-distribute') +conflicts=('jedi-git' 'python3-jedi-git') +options=(!emptydirs) +source=("https://pypi.python.org/packages/source/j/jedi/jedi-${pkgver}.tar.gz") + + +package() { + cd "$srcdir/jedi-$pkgver" + python setup.py install --root="$pkgdir/" --optimize=1 +} + +# vim:set ts=2 sw=2 et: diff --git a/pcr/python2-mock/PKGBUILD b/pcr/python2-mock/PKGBUILD new file mode 100644 index 000000000..5647c15d2 --- /dev/null +++ b/pcr/python2-mock/PKGBUILD @@ -0,0 +1,24 @@ +# Contributor: Felix Kaiser <felix.kaiser@fxkr.net> + +pkgname=python2-mock +pkgver=1.0.1 +pkgrel=1 +pkgdesc="A Python Mocking and Patching Library for Testing" +url='http://www.voidspace.org.uk/python/mock/' +license=('BSD') +depends=('python2') +arch=('i686' 'x86_64') +source=("http://pypi.python.org/packages/source/m/mock/mock-$pkgver.tar.gz") +md5sums=('c3971991738caa55ec7c356bbc154ee2') + +build() { + cd "$srcdir/mock-$pkgver" + python2 setup.py build +} + +package() { + cd "$srcdir/mock-$pkgver" + python2 setup.py install --optimize=1 --root="$pkgdir" + install -Dm644 LICENSE* $pkgdir/usr/share/licenses/$pkgname/LICENSE +} + diff --git a/pcr/pyutil/PKGBUILD b/pcr/pyutil/PKGBUILD new file mode 100644 index 000000000..7c3ca9f60 --- /dev/null +++ b/pcr/pyutil/PKGBUILD @@ -0,0 +1,28 @@ +# Maintainer: Nicolas Pouillard <nicolas.pouillard@gmail.com> +# Contributor: Peter Simons <simons@cryp.to> +pkgname=pyutil +pkgver=1.9.4 +pkgrel=2 +pkgdesc="general-purpose python library (used by tahoe-lafs)" +arch=('any') +url='http://pypi.python.org/pypi/pyutil' +license=('GPL2' 'custom') +depends=('python2') +makedepends=('setuptools' 'darcsver' 'setuptools_darcs' 'python2-simplejson') # 'zbase32') # missing: setuptools_trial +source=( http://pypi.python.org/packages/source/p/pyutil/pyutil-$pkgver.tar.gz ) +md5sums=('af51cf296b574112e115c9dfba51464d') + +build(){ + cd "$srcdir/$pkgname-$pkgver" + python2 setup.py build + python2 setup.py trial +} + +package(){ + cd "$srcdir/$pkgname-$pkgver" + python2 setup.py install --root="$pkgdir" + + install -d $pkgdir/usr/share/licenses/$pkgname/ + install -m644 COPYING* $pkgdir/usr/share/licenses/$pkgname/ + +} diff --git a/pcr/pyzenity/PKGBUILD b/pcr/pyzenity/PKGBUILD new file mode 100644 index 000000000..364cb56a1 --- /dev/null +++ b/pcr/pyzenity/PKGBUILD @@ -0,0 +1,20 @@ +# Contributor: lang2 <wenzhi.liang@gmail.com> +# Contributor: sylvain alborini <sylvain dot alborini at gmail dot com> +# Maintainer : Parabola Aurélien DESBRIÈRES <aurelien@replicant.io> + +pkgname=pyzenity +_pkg_name=PyZenity +pkgver=0.1.7 +pkgrel=1 +pkgdesc="python bindings for zenity" +url="http://www.brianramos.com/?page_id=38" +depends=('python2' 'zenity') + arch=('any') +license=('GPL') +source=(http://brianramos.com/software/${_pkg_name}/${_pkg_name}-${pkgver}.tar.gz) + +build() +{ + cd "$srcdir/$_pkg_name-$pkgver" + python2 setup.py install --root="$pkgdir/" --optimize=1 +} diff --git a/pcr/qtkeychain/PKGBUILD b/pcr/qtkeychain/PKGBUILD new file mode 100644 index 000000000..152971751 --- /dev/null +++ b/pcr/qtkeychain/PKGBUILD @@ -0,0 +1,48 @@ +# Maintainer: Kuba Serafinowski <zizzfizzix(at)gmail(dot)com> +# Maintainer: Jorge Araya Navarro <shackra@riseup.net> +# Contributor: Teo Mrnjavac <teo@kde.org> +# https://github.com/zizzfizzix/pkgbuilds + +_buildtype="Release" + +pkgname=qtkeychain +pkgver=0.1 +pkgrel=3 +pkgdesc="Provides support for secure credentials storage." +arch=('i686' 'x86_64') +url="https://github.com/frankosterfeld/qtkeychain" +license=('BSD2') +depends=('qt4') +makedepends=('cmake') +source=("${pkgname}-${pkgver}.zip::https://github.com/frankosterfeld/qtkeychain/archive/${pkgver}.zip" 'prefer-qt4.patch') +md5sums=('a1d11a611b27759a531896b57be15947' + 'a2c46e61af02100a6f67487ffeb8a3d0') + +if [[ ! ${_buildtype} == "Release" ]] && [[ ! ${_buildtype} == "release" ]]; then + options=(!strip) +fi + +prepare() { + cd ${srcdir}/${pkgname}-${pkgver} + patch -Np1 -i ${srcdir}/prefer-qt4.patch + + if [[ -e ${srcdir}/${pkgname}-${pkgver}-build ]]; then rm -rf ${srcdir}/${pkgname}-${pkgver}-build; fi + mkdir ${srcdir}/${pkgname}-${pkgver}-build +} + +build() { + cd ${srcdir}/${pkgname}-${pkgver}-build + cmake -DBUILD_WITH_QT4=on \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_INSTALL_LIBEXECDIR=lib/${pkgname} \ + -DCMAKE_BUILD_TYPE=${_buildtype} \ + ../${pkgname}-${pkgver} + make +} + +package() { + cd ${srcdir}/${pkgname}-${pkgver}-build + make DESTDIR=${pkgdir} install + install -D -m644 ${srcdir}/${pkgname}-${pkgver}/COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE +} diff --git a/pcr/qtkeychain/prefer-qt4.patch b/pcr/qtkeychain/prefer-qt4.patch new file mode 100644 index 000000000..0e264aad1 --- /dev/null +++ b/pcr/qtkeychain/prefer-qt4.patch @@ -0,0 +1,17 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index aba9032..4de64c8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -11,8 +11,10 @@ set(QTKEYCHAIN_SOVERSION 0) + set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${PROJECT_SOURCE_DIR}/cmake/Modules") + include(GNUInstallDirs) + +-# try Qt5 first, and prefer that if found +-find_package(Qt5Core QUIET) ++# try Qt5 first, and prefer that if found, unless BUILD_WITH_QT4 is set ++if (NOT BUILD_WITH_QT4) ++ find_package(Qt5Core QUIET) ++endif() + if (Qt5Core_FOUND) + if(UNIX AND NOT APPLE) + find_package(Qt5DBus REQUIRED) diff --git a/pcr/qtkeychain/qtkeychain-0.1.zip b/pcr/qtkeychain/qtkeychain-0.1.zip Binary files differnew file mode 100644 index 000000000..400552c62 --- /dev/null +++ b/pcr/qtkeychain/qtkeychain-0.1.zip diff --git a/pcr/rfc5766-turn-server/PKGBUILD b/pcr/rfc5766-turn-server/PKGBUILD index e85f98bb8..c070ad309 100644 --- a/pcr/rfc5766-turn-server/PKGBUILD +++ b/pcr/rfc5766-turn-server/PKGBUILD @@ -2,15 +2,13 @@ pkgname=rfc5766-turn-server _portname=turnserver -pkgver=1.8.6.0 -pkgrel=2 -epoch= -pkgdesc="Free open source implementation of TURN and STUN Server" +pkgver=2.6.2.1 +pkgrel=1 +pkgdesc="STUN and TURN Relay Server for VoIP and WebRTC" arch=('i686' 'x86_64' 'mips64el') url="http://code.google.com/p/rfc5766-turn-server/" license=('custom:BSDNew') -makedepends=('gcc>=3.4.4' 'make' 'hiredis' 'postgresql-libs' 'libmariadbclient') -depends=('libevent') +depends=('libevent' 'postgresql-libs' 'libmysqlclient' 'hiredis') optdepends=('postgresql-client: to use postgresql' 'mariadb: mariadb backend' 'redis: redis backend') @@ -22,14 +20,9 @@ source=(https://${pkgname}.googlecode.com/files/${_portname}-$pkgver.tar.gz build() { cd "${srcdir}/$_portname-${pkgver}" - PREFIX=/usr \ - MANPREFIX=/usr/share \ - EXAMPLESDIR="/usr/share/$pkgname/examples" \ - DOCSDIR="/usr/share/doc/$pkgname" \ - LIBDIR=/usr/lib \ - SCHEMADIR="/usr/share/$pkgname" \ - TURNINCLUDEDIR="/usr/include/turn" - ./configure + ./configure --prefix=/usr \ + --manprefix=/usr/share \ + --examplesdir="/usr/share/$_portname/examples" make } @@ -41,20 +34,12 @@ check() { package() { cd "${srcdir}/$_portname-${pkgver}" - make \ - PREFIX="$pkgdir/usr" \ - MANPREFIX="$pkgdir/usr/share" \ - EXAMPLESDIR="$pkgdir/usr/share/$pkgname/examples" \ - DOCSDIR="$pkgdir/usr/share/doc/$pkgname" \ - LIBDIR="$pkgdir/usr/lib" \ - SCHEMADIR="$pkgdir/usr/share/$pkgname" \ - TURNINCLUDEDIR="$pkgdir/usr/include/turn" \ - install + make DESTDIR="$pkgdir" install - install -D "$pkgdir/usr/share/$pkgname/examples/etc/turnserver.conf" \ + install -D "$pkgdir/usr/share/$_portname/examples/etc/turnserver.conf" \ "$pkgdir/etc/turnserver.conf" - install -D "$pkgdir/usr/share/$pkgname/examples/etc/turnuserdb.conf" \ + install -D "$pkgdir/usr/share/$_portname/examples/etc/turnuserdb.conf" \ "$pkgdir/etc/turnuserdb.conf" install -D "$srcdir/stun.service" \ "$pkgdir/usr/lib/systemd/system/stun.service" @@ -65,7 +50,15 @@ package() { chmod 644 "$pkgdir/usr/lib/libturnclient.a" install -Dm 644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE + install -dm 755 "$pkgdir/var/log/$_portname" + + sed \ + -e '/^#log-file=\/var\/tmp\/turn.log$/c log-file=\/var\/log\/turnserver\/turn.log' \ + -i "${pkgdir}"/etc/turnserver.conf } -md5sums=('def4cc2ea6239795edab12b5eee5f8ed' - '1da26c3a1fe29a8961e6b9d73f9048d3' - '83670d79026c67c7701481ee9d39f100') +sha1sums=('d7f01e6fadbe56fe4535d67a7d178a9cfba110b8' + '0c5b348e793bd52ce0ee38d420b26c9b2a2e2ca5' + 'b12805c049787cd1433181afaba4111f89740e63') +sha256sums=('4d131f353aadb15901d175755075af65abf2a0e820d7281c9c164285642ff9c1' + '319030c1916d353bfc3375626cc7f60d6eeca762fe4fce354f010212902c49dc' + '63198e4f802c7b4b44e671e0fcaebca36589ebb11405e51ab9f36c80327ac4d9') diff --git a/pcr/ruby-bundler/PKGBUILD b/pcr/ruby-bundler/PKGBUILD index a1fb32449..44a1a883b 100644 --- a/pcr/ruby-bundler/PKGBUILD +++ b/pcr/ruby-bundler/PKGBUILD @@ -1,22 +1,24 @@ -# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> # Contributor: Alexsandr Pavlov <kidoz at mail dot ru> +# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> -pkgname=ruby-bundler -_gemname=${pkgname#ruby-} -pkgver=1.1.5 +_pkgname=bundler +pkgname=ruby-$_pkgname +pkgver=1.3.5 pkgrel=1 pkgdesc="Is manages an application's dependencies through its entire life, across many machines, systematically and repeatably." -arch=('any') -url="http://gembundler.com" -license=('MIT') -depends=('ruby' 'rubygems') -source=(http://rubygems.org/downloads/${_gemname}-${pkgver}.gem) -noextract=(${_gemname}-${pkgver}.gem) -md5sums=('ecced17bc29a761db4ea5ca57b0d8795') +arch=any +url=http://gem$_pkgname.com +license=MIT +depends=ruby +source=http://rubygems.org/downloads/$_pkgname-$pkgver.gem +noextract=$_pkgname-$pkgver.gem +sha256sums=08b89047f7b829f3e197a28fb1bde74c3f5cfea1552f99dfba237fee30eaffe4 + +package() { + cd $srcdir -build() { - cd "${srcdir}" - export HOME=/tmp - local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')" - gem install --no-user-install --ignore-dependencies -i "${pkgdir}${_gemdir}" -n "${pkgdir}/usr/bin" ${_gemname}-${pkgver}.gem + local _gemdir=$(ruby -rubygems -e'puts Gem.default_dir') + HOME=/tmp gem install --no-user-install --ignore-dependencies\ + -i $pkgdir$_gemdir -n $pkgdir/usr/bin\ + $_pkgname-$pkgver.gem } diff --git a/pcr/ruby1-bundler/PKGBUILD b/pcr/ruby1-bundler/PKGBUILD new file mode 100644 index 000000000..d06f7af08 --- /dev/null +++ b/pcr/ruby1-bundler/PKGBUILD @@ -0,0 +1,27 @@ +# Contributor: Alexsandr Pavlov <kidoz at mail dot ru> +# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> + +_pkgname=bundler +pkgname=ruby1-$_pkgname +pkgver=1.3.5 +pkgrel=1 +pkgdesc="Is manages an application's dependencies through its entire life, across many machines, systematically and repeatably." +arch=any +url=http://gem$_pkgname.com +license=MIT +depends=ruby1 +source=http://rubygems.org/downloads/$_pkgname-$pkgver.gem +noextract=$_pkgname-$pkgver.gem +sha256sums=08b89047f7b829f3e197a28fb1bde74c3f5cfea1552f99dfba237fee30eaffe4 + +package() { + cd $srcdir + + local _gemdir=$(ruby1 -rubygems -e'puts Gem.default_dir') + HOME=/tmp gem1 install --no-user-install --ignore-dependencies\ + -i $pkgdir$_gemdir -n $pkgdir/usr/bin\ + $_pkgname-$pkgver.gem + + msg "renaming $_pkgname to ${_pkgname}1" + mv -v $pkgdir/usr/bin/${_pkgname%r}{,1} +} diff --git a/pcr/ruby1/PKGBUILD b/pcr/ruby1/PKGBUILD index c20b8720a..4a441bc1c 100644 --- a/pcr/ruby1/PKGBUILD +++ b/pcr/ruby1/PKGBUILD @@ -6,7 +6,7 @@ _pkgname=ruby pkgname=("${_pkgname}1" "${_pkgname}1-docs") pkgver=1.9.3_p448 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64' 'mips64el') url='http://www.ruby-lang.org/en/' license=('BSD' 'custom') @@ -52,7 +52,7 @@ package_ruby1() { pkgdesc='An object-oriented language for quick and easy programming (1.9 ver.)' depends=('gdbm' 'openssl' 'libffi' 'libyaml') optdepends=('tk: for Ruby/TK' - 'ruby-docs: Ruby documentation') + 'ruby1-docs: Ruby documentation') backup=('etc/gem1rc') install='ruby.install' diff --git a/pcr/ruby1/ruby.install b/pcr/ruby1/ruby.install index ce78e96ec..21e9b98a2 100644 --- a/pcr/ruby1/ruby.install +++ b/pcr/ruby1/ruby.install @@ -3,9 +3,9 @@ print_gem_default_target() { echo 'The default location of gem installs is $HOME/.gem/ruby' echo 'Add the following line to your PATH if you plan to install using gem' - echo '$(ruby -rubygems -e "puts Gem.user_dir")/bin' + echo '$(ruby1 -rubygems -e "puts Gem.user_dir")/bin' echo 'If you want to install to the system wide location, you must either:' - echo 'edit /etc/gemrc or run gem with the --no-user-install flag.' + echo 'edit /etc/gem1rc or run gem with the --no-user-install flag.' } # arg 1: the new package version diff --git a/pcr/setuptools_darcs/PKGBUILD b/pcr/setuptools_darcs/PKGBUILD new file mode 100644 index 000000000..285214db8 --- /dev/null +++ b/pcr/setuptools_darcs/PKGBUILD @@ -0,0 +1,29 @@ +# Contributor: Peter Simons <simons@cryp.to> +# Contributor: Nicolas Pouillard <nicolas.pouillard@gmail.com> +pkgname=setuptools_darcs +pkgver=1.2.11 +pkgrel=3.1 +pkgdesc="Python setuptools plugin for darcs" +arch=('any') +url='http://pypi.python.org/pypi/setuptools_darcs' +license=('BSD') +depends=('python2' 'setuptools') +makedepends=('darcsver') +source=( http://pypi.python.org/packages/source/s/$pkgname/$pkgname-$pkgver.tar.gz ) +md5sums=('79451a8e77b9692861a655e53df094f0') + +build() { + cd "$srcdir/$pkgname-$pkgver" + python2 setup.py build +} + +check() { + cd "$srcdir/$pkgname-$pkgver" + python2 setup.py test +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + python2 setup.py install --root="$pkgdir" + install -Dm644 PKG-INFO $pkgdir/usr/share/licenses/$pkgname/LICENSE +} diff --git a/pcr/sic/PKGBUILD b/pcr/sic/PKGBUILD new file mode 100644 index 000000000..b006f95b5 --- /dev/null +++ b/pcr/sic/PKGBUILD @@ -0,0 +1,32 @@ +# Maintainer: Thomas Dziedzic < gostrc at gmail > +# Contributor: Dag Odenhall <dag.odenhall@gmail.com> +# Contributor: Giorgio Lando <patroclo7@gmail.com> + +pkgname=sic +pkgver=1.2 +pkgrel=1 +pkgdesc='An extremely simple IRC client.' +license=('MIT') +arch=('i686' 'x86_64') +url='http://tools.suckless.org/sic' +depends=('glibc') +source=("http://dl.suckless.org/tools/$pkgname-$pkgver.tar.gz") + +prepare() { + cd $pkgname-$pkgver + sed -i "s/CFLAGS = /CFLAGS = ${CFLAGS} /" config.mk +} +build() { + cd $pkgname-$pkgver + + make PREFIX=/usr MANPREFIX=/usr/share/man +} + +package() { + cd $pkgname-$pkgver + make PREFIX=/usr MANPREFIX=/usr/share/man DESTDIR="$pkgdir" install + + install -Dm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE +} +sha1sums=('a91a603d536ae9cff9a806d6b2737053d262e722') +sha256sums=('ac07f905995e13ba2c43912d7a035fbbe78a628d7ba1c256f4ca1372fb565185') diff --git a/pcr/sqlcipher/PKGBUILD b/pcr/sqlcipher/PKGBUILD new file mode 100644 index 000000000..45a3efbe9 --- /dev/null +++ b/pcr/sqlcipher/PKGBUILD @@ -0,0 +1,31 @@ +pkgname=sqlcipher +pkgver=2.2.1 +pkgrel=1 +pkgdesc="SQLite extension that provides transparent 256-bit AES encryption of database files" +arch=('i686' 'x86_64') +url="http://sqlcipher.net/" +license=('BSD') +makedepends=('tcl' 'openssl' 'sqlite3' 'git') +source=($pkgname-$pkgver::git+https://github.com/sqlcipher/sqlcipher#tag=v${pkgver}) +sha1sums=('SKIP') +sha256sums=('SKIP') + +pkgver() { + echo $pkgver +} + +build() { + cd $srcdir/$pkgname-$pkgver + ./configure --prefix=/usr \ + --disable-tcl \ + --enable-tempstore=yes \ + CFLAGS="$CFLAGS -DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto" + make +} + +package() { + cd $srcdir/$pkgname-$pkgver + + make DESTDIR="$pkgdir/" install + install -D -m 0644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} diff --git a/pcr/tahoe-lafs/PKGBUILD b/pcr/tahoe-lafs/PKGBUILD new file mode 100644 index 000000000..8ace70679 --- /dev/null +++ b/pcr/tahoe-lafs/PKGBUILD @@ -0,0 +1,30 @@ +# Contributor: Peter Simons <simons@cryp.to> +# Contributor: Nicolas Pouillard <nicolas.pouillard@gmail.com> +pkgname=tahoe-lafs +pkgver=1.10.0 +pkgrel=1 +pkgdesc="a secure, decentralized, fault-tolerant filesystem" +arch=('any') +url='http://tahoe-lafs.org/' +license=('GPL') +# net-tools is needed because Tahoe-LAFS uses /sbin/ifconfig +depends=('net-tools' 'python2' 'python2-zope-interface>=3.6.5' + 'twisted' 'python2-pyasn1' 'python2-crypto' 'pycryptopp' 'nevow' + 'python2-foolscap' 'python2-simplejson' 'zfec' 'python2-pyopenssl' + 'pyutil' 'python2-argparse' 'zbase32' 'python2-mock>=0.8.0') +source=(nodaemon.patch https://tahoe-lafs.org/source/tahoe-lafs/releases/allmydata-tahoe-$pkgver.tar.bz2) +sha256sums=('7fb13a50bdca729b9c78f12369e56fccf55594b646bddb270d55c08c83ce3449' + '9c5516700fe95fdf8c57eca1e2a7b4aebf2de9a4d327d50afd684ebf833ccfe2') + +build(){ + cd "$srcdir/allmydata-tahoe-$pkgver" + patch -p0 < ../nodaemon.patch + python2 setup.py build + # disabled due to the nodaemon patch and the test_filesystem* tests + #python2 setup.py test || return 1 +} + +package(){ + cd "$srcdir/allmydata-tahoe-$pkgver" + python2 setup.py install --root="$pkgdir" +} diff --git a/pcr/tahoe-lafs/nodaemon.patch b/pcr/tahoe-lafs/nodaemon.patch new file mode 100644 index 000000000..dfcc0b8ae --- /dev/null +++ b/pcr/tahoe-lafs/nodaemon.patch @@ -0,0 +1,19 @@ +--- src/allmydata/scripts/startstop_node.py 2011-10-30 22:54:34.000000000 +0100 ++++ src/allmydata/scripts/startstop_node.py 2011-11-10 15:22:21.432711365 +0100 +@@ -10,6 +10,7 @@ + optFlags = [ + ["profile", "p", "Run under the Python profiler, putting results in 'profiling_results.prof'."], + ["syslog", None, "Tell the node to log to syslog, not a file."], ++ ["nodaemon", "n", "Do not daemonize."], + ] + + def getSynopsis(self): +@@ -70,6 +71,8 @@ + args.extend(["--logfile", os.path.join("logs", "twistd.log")]) + if opts["profile"]: + args.extend(["--profile=profiling_results.prof", "--savestats",]) ++ if opts["nodaemon"]: ++ args.extend(["--nodaemon", "--umask=0077"]) + # now we're committed + os.chdir(basedir) + from twisted.scripts import twistd diff --git a/pcr/timer_entropyd/PKGBUILD b/pcr/timer_entropyd/PKGBUILD new file mode 100644 index 000000000..4d5f4437e --- /dev/null +++ b/pcr/timer_entropyd/PKGBUILD @@ -0,0 +1,28 @@ +# Maintainer: fauno <fauno@parabola.nu> +pkgname=timer_entropyd +pkgver=0.2 +pkgrel=1 +pkgdesc="Feeds the /dev/random device with entropy-data (random values) read from timers." +arch=('i686') +url="http://www.vanheusden.com/te/" +license=('GPL2') +groups=('entropy') +source=(http://www.vanheusden.com/te/${pkgname}-${pkgver}.tgz + ${pkgname}.service) +sha1sums=('61b82128bf4df483271a475a0cc772a7fd80a804' + '96ff193aef61088759cf9d9c9d0e881fd1174824') +sha256sums=('0cf2b976b78c1b1169a4bec5a6fc71d8b118de927bc05002686376a61f73989a' + 'a22d33d99ab7c511902a37225e83476466840bd4c0ee3ffece1e4094511414de') + +build() { + cd "$srcdir/$pkgname-$pkgver" + make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + + install -D -m 755 ${pkgname} ${pkgdir}/usr/bin/${pkgname} + install -D -m 644 ${srcdir}/${pkgname}.service \ + ${pkgdir}/usr/lib/systemd/system/${pkgname}.service +} diff --git a/pcr/timer_entropyd/timer_entropyd.service b/pcr/timer_entropyd/timer_entropyd.service new file mode 100644 index 000000000..0bea7398b --- /dev/null +++ b/pcr/timer_entropyd/timer_entropyd.service @@ -0,0 +1,9 @@ +[Unit] +Description=Gathering entropy from system timers + +[Service] +Type=forking +ExecStart=/usr/bin/timer_entropyd + +[Install] +WantedBy=multi-user.target diff --git a/pcr/ttf-font-awesome/PKGBUILD b/pcr/ttf-font-awesome/PKGBUILD new file mode 100644 index 000000000..abb63b8a6 --- /dev/null +++ b/pcr/ttf-font-awesome/PKGBUILD @@ -0,0 +1,19 @@ +#Contributer: UNKNOWN o_O +#Maintainer : Parabola Aurélien DESBRIÈRES <aurelien@replicant.io> + +pkgname=ttf-font-awesome +pkgver=3.2.1 +pkgrel=2 +pkgdesc="Iconic font designed for Bootstrap" +url="http://fortawesome.github.io/Font-Awesome/" +license=('CCPL') +depends=('fontconfig' 'xorg-font-utils') +options=("!strip") +install=$pkgname.install +arch=('any') +source=('http://fortawesome.github.io/Font-Awesome/assets/font-awesome.zip') + +package() { + install -d "$pkgdir/usr/share/fonts/TTF" + cp -dpr --no-preserve=ownership "$srcdir/font-awesome/font/"*.ttf "$pkgdir/usr/share/fonts/TTF/" +} diff --git a/pcr/ttf-font-awesome/ttf-font-awesome.install b/pcr/ttf-font-awesome/ttf-font-awesome.install new file mode 100644 index 000000000..56632d242 --- /dev/null +++ b/pcr/ttf-font-awesome/ttf-font-awesome.install @@ -0,0 +1,20 @@ +post_install() { + echo -n "Updating font cache..." + fc-cache -f > /dev/null + mkfontscale /usr/share/fonts/TTF + mkfontdir /usr/share/fonts/TTF + echo "done." +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} + +op=$1 +shift + +$op $* diff --git a/pcr/video_entropyd/PKGBUILD b/pcr/video_entropyd/PKGBUILD new file mode 100644 index 000000000..e096aabdd --- /dev/null +++ b/pcr/video_entropyd/PKGBUILD @@ -0,0 +1,28 @@ +# Maintainer: fauno <fauno@parabola.nu> +pkgname=video_entropyd +pkgver=2.0 +pkgrel=1 +pkgdesc="Feeds the /dev/random device with entropy-data read from a video device" +arch=('i686') +url="http://vanheusden.com/ved/" +license=('GPL2') +groups=('entropy') +source=(http://www.vanheusden.com/ved/${pkgname}-${pkgver}.tgz + ${pkgname}.service) +sha1sums=('9d566bce8d0f0fa4e8be24b481ffdba0d0c70406' + '30cfb694ee886e36ab97329d575a8b9437a30bb2') +sha256sums=('aba6255ddb32cd376c785128a7e850fb51b6c1d7fe3f4ba765abc0c50ec67d7a' + 'b6988df79823a29ab04bfa0fe6d8f2e14f3176398eb220fa1248c6728e8be27f') + +build() { + cd "$srcdir/$pkgname-$pkgver" + make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + + install -D -m 755 ${pkgname} ${pkgdir}/usr/bin/${pkgname} + install -D -m 644 ${srcdir}/${pkgname}.service \ + ${pkgdir}/usr/lib/systemd/system/${pkgname}.service +} diff --git a/pcr/video_entropyd/video_entropyd.service b/pcr/video_entropyd/video_entropyd.service new file mode 100644 index 000000000..1dfef410a --- /dev/null +++ b/pcr/video_entropyd/video_entropyd.service @@ -0,0 +1,9 @@ +[Unit] +Description=Gathering entropy from video + +[Service] +Type=forking +ExecStart=/usr/bin/video_entropyd + +[Install] +WantedBy=multi-user.target diff --git a/pcr/xfwm4-titleless/PKGBUILD b/pcr/xfwm4-titleless/PKGBUILD new file mode 100644 index 000000000..dd80d287d --- /dev/null +++ b/pcr/xfwm4-titleless/PKGBUILD @@ -0,0 +1,46 @@ +# Contributor: Christian Hesse <mail@eworm.de> +# Contributor: Evangelos Foutras <evangelos@foutrelis.com> +# Contributor: tobias <tobias funnychar archlinux.org> +# Maintainer : Parabola Aurélien DESBRIÈRES <aurelien@replicant.io> + +pkgname=xfwm4-titleless +pkgver=4.10.1 +pkgrel=1 +pkgdesc="Xfce window manager - patched with option to hide titlebar when maximized" +arch=('i686' 'x86_64') +url="https://bitbucket.org/thesame/xfwm4-titleless" +license=('GPL2') +depends=('libxfce4ui' 'libwnck' 'hicolor-icon-theme') +makedepends=('intltool') +options=('!libtool') +conflicts=('xfwm4') +provides=('xfwm4') +install=${pkgname%%-*}.install +source=("http://archive.xfce.org/src/xfce/${pkgname%%-*}/4.10/${pkgname%%-*}-${pkgver}.tar.bz2" + "xfwm4-hide-titlebar-when-maximized.patch") + +build() { + cd "${srcdir}/${pkgname%%-*}-${pkgver}" + + patch -Np1 < ${srcdir}/xfwm4-hide-titlebar-when-maximized.patch + + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --libexecdir=/usr/lib \ + --localstatedir=/var \ + --disable-static \ + --enable-startup-notification \ + --enable-randr \ + --enable-compositor \ + --enable-xsync \ + --disable-debug + make +} + +package() { + cd "${srcdir}/${pkgname%%-*}-${pkgver}" + + make DESTDIR="${pkgdir}" install +} + diff --git a/pcr/xfwm4-titleless/xfwm4-hide-titlebar-when-maximized.patch b/pcr/xfwm4-titleless/xfwm4-hide-titlebar-when-maximized.patch new file mode 100644 index 000000000..fa43b6b8e --- /dev/null +++ b/pcr/xfwm4-titleless/xfwm4-hide-titlebar-when-maximized.patch @@ -0,0 +1,1456 @@ +From 999c375f5342947525813584fbdc92f3b63dced6 Mon Sep 17 00:00:00 2001 +From: Christian Hesse <eworm@leda.eworm.de> +Date: Wed, 25 Sep 2013 15:16:57 +0200 +Subject: [PATCH 1/1] xfwm4: hide titlebar when maximized + +--- + defaults/defaults | 1 + + settings-dialogs/tweaks-settings.c | 5 + + settings-dialogs/xfwm4-tweaks-dialog.glade | 25 +- + settings-dialogs/xfwm4-tweaks-dialog_ui.h | 612 +++++++++++++++-------------- + src/client.c | 6 + + src/client.h | 1 + + src/display.c | 3 +- + src/display.h | 1 + + src/events.c | 5 + + src/frame.c | 366 ++++++++++------- + src/netwm.c | 38 ++ + src/placement.c | 4 +- + src/settings.c | 8 + + src/settings.h | 1 + + 14 files changed, 616 insertions(+), 460 deletions(-) + +diff --git a/defaults/defaults b/defaults/defaults +index 6db210a..1582fc1 100644 +--- a/defaults/defaults ++++ b/defaults/defaults +@@ -1,5 +1,6 @@ + activate_action=bring + borderless_maximize=true ++titleless_maximize=false + box_move=false + box_resize=false + button_layout=O|SHMC +diff --git a/settings-dialogs/tweaks-settings.c b/settings-dialogs/tweaks-settings.c +index f60b606..2532733 100644 +--- a/settings-dialogs/tweaks-settings.c ++++ b/settings-dialogs/tweaks-settings.c +@@ -180,6 +180,7 @@ wm_tweaks_dialog_configure_widgets (GtkBuilder *builder) + GtkWidget *easy_click_combo_box = GTK_WIDGET (gtk_builder_get_object (builder, "easy_click_combo_box")); + GtkWidget *raise_with_any_button_check = GTK_WIDGET (gtk_builder_get_object (builder, "raise_with_any_button_check")); + GtkWidget *borderless_maximize_check = GTK_WIDGET (gtk_builder_get_object (builder, "borderless_maximize_check")); ++ GtkWidget *titleless_maximize_check = GTK_WIDGET (gtk_builder_get_object (builder, "titleless_maximize_check")); + GtkWidget *restore_on_move_check = GTK_WIDGET (gtk_builder_get_object (builder, "restore_on_move_check")); + GtkWidget *tile_on_move_check = GTK_WIDGET (gtk_builder_get_object (builder, "tile_on_move_check")); + GtkWidget *snap_resist_check = GTK_WIDGET (gtk_builder_get_object (builder, "snap_resist_check")); +@@ -336,6 +337,10 @@ wm_tweaks_dialog_configure_widgets (GtkBuilder *builder) + G_TYPE_BOOLEAN, + (GObject *)borderless_maximize_check, "active"); + xfconf_g_property_bind (xfwm4_channel, ++ "/general/titleless_maximize", ++ G_TYPE_BOOLEAN, ++ (GObject *)titleless_maximize_check, "active"); ++ xfconf_g_property_bind (xfwm4_channel, + "/general/restore_on_move", + G_TYPE_BOOLEAN, + (GObject *)restore_on_move_check, "active"); +diff --git a/settings-dialogs/xfwm4-tweaks-dialog.glade b/settings-dialogs/xfwm4-tweaks-dialog.glade +index bd2a86f..7d604c6 100644 +--- a/settings-dialogs/xfwm4-tweaks-dialog.glade ++++ b/settings-dialogs/xfwm4-tweaks-dialog.glade +@@ -343,6 +343,21 @@ or "skip taskbar" properties set</property> + </packing> + </child> + <child> ++ <object class="GtkCheckButton" id="titleless_maximize_check"> ++ <property name="label" translatable="yes">Hide _title of windows when maximized</property> ++ <property name="visible">True</property> ++ <property name="can_focus">True</property> ++ <property name="receives_default">False</property> ++ <property name="use_underline">True</property> ++ <property name="draw_indicator">True</property> ++ </object> ++ <packing> ++ <property name="expand">False</property> ++ <property name="fill">False</property> ++ <property name="position">3</property> ++ </packing> ++ </child> ++ <child> + <object class="GtkCheckButton" id="restore_on_move_check"> + <property name="label" translatable="yes">Restore original _size of maximized windows when moving</property> + <property name="visible">True</property> +@@ -354,7 +369,7 @@ or "skip taskbar" properties set</property> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> +- <property name="position">3</property> ++ <property name="position">4</property> + </packing> + </child> + <child> +@@ -369,7 +384,7 @@ or "skip taskbar" properties set</property> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> +- <property name="position">4</property> ++ <property name="position">5</property> + </packing> + </child> + <child> +@@ -384,7 +399,7 @@ or "skip taskbar" properties set</property> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> +- <property name="position">5</property> ++ <property name="position">6</property> + </packing> + </child> + <child> +@@ -399,7 +414,7 @@ or "skip taskbar" properties set</property> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> +- <property name="position">5</property> ++ <property name="position">7</property> + </packing> + </child> + <child> +@@ -414,7 +429,7 @@ or "skip taskbar" properties set</property> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> +- <property name="position">6</property> ++ <property name="position">8</property> + </packing> + </child> + </object> +diff --git a/settings-dialogs/xfwm4-tweaks-dialog_ui.h b/settings-dialogs/xfwm4-tweaks-dialog_ui.h +index a6121dd..8ddbf30 100644 +--- a/settings-dialogs/xfwm4-tweaks-dialog_ui.h ++++ b/settings-dialogs/xfwm4-tweaks-dialog_ui.h +@@ -177,332 +177,340 @@ static const char tweaks_dialog_ui[] = + "y><property name=\"draw_indicator\">True</property></object><packing><p" + "roperty name=\"expand\">False</property><property name=\"fill\">False</" + "property><property name=\"position\">2</property></packing></child><chi" +- "ld><object class=\"GtkCheckButton\" id=\"restore_on_move_check\"><prope" +- "rty name=\"label\" translatable=\"yes\">Restore original _size of maxim" +- "ized windows when moving</property><property name=\"visible\">True</pro" +- "perty><property name=\"can_focus\">True</property><property name=\"rece" +- "ives_default\">False</property><property name=\"use_underline\">True</p" +- "roperty><property name=\"draw_indicator\">True</property></object><pack" +- "ing><property name=\"expand\">False</property><property name=\"fill\">F" +- "alse</property><property name=\"position\">3</property></packing></chil" +- "d><child><object class=\"GtkCheckButton\" id=\"tile_on_move_check\"><pr" +- "operty name=\"label\" translatable=\"yes\">Automatically _tile windows " +- "when moving toward the screen edge</property><property name=\"visible\"" +- ">True</property><property name=\"can_focus\">True</property><property n" +- "ame=\"receives_default\">False</property><property name=\"use_underline" +- "\">True</property><property name=\"draw_indicator\">True</property></ob" +- "ject><packing><property name=\"expand\">False</property><property name=" +- "\"fill\">False</property><property name=\"position\">4</property></pack" +- "ing></child><child><object class=\"GtkCheckButton\" id=\"snap_resist_ch" +- "eck\"><property name=\"label\" translatable=\"yes\">Use _edge resistanc" +- "e instead of window snapping</property><property name=\"visible\">True<" +- "/property><property name=\"can_focus\">True</property><property name=\"" +- "receives_default\">False</property><property name=\"use_underline\">Tru" +- "e</property><property name=\"draw_indicator\">True</property></object><" +- "packing><property name=\"expand\">False</property><property name=\"fill" +- "\">False</property><property name=\"position\">5</property></packing></" +- "child><child><object class=\"GtkCheckButton\" id=\"urgent_blink\"><prop" +- "erty name=\"label\" translatable=\"yes\">Notify of _urgency by making w" +- "indow\'s decoration blink</property><property name=\"visible\">True</pr" ++ "ld><object class=\"GtkCheckButton\" id=\"titleless_maximize_check\"><pr" ++ "operty name=\"label\" translatable=\"yes\">Hide _title of windows when " ++ "maximized</property><property name=\"visible\">True</property><property" ++ " name=\"can_focus\">True</property><property name=\"receives_default\">" ++ "False</property><property name=\"use_underline\">True</property><proper" ++ "ty name=\"draw_indicator\">True</property></object><packing><property n" ++ "ame=\"expand\">False</property><property name=\"fill\">False</property>" ++ "<property name=\"position\">3</property></packing></child><child><objec" ++ "t class=\"GtkCheckButton\" id=\"restore_on_move_check\"><property name=" ++ "\"label\" translatable=\"yes\">Restore original _size of maximized wind" ++ "ows when moving</property><property name=\"visible\">True</property><pr" ++ "operty name=\"can_focus\">True</property><property name=\"receives_defa" ++ "ult\">False</property><property name=\"use_underline\">True</property><" ++ "property name=\"draw_indicator\">True</property></object><packing><prop" ++ "erty name=\"expand\">False</property><property name=\"fill\">False</pro" ++ "perty><property name=\"position\">4</property></packing></child><child>" ++ "<object class=\"GtkCheckButton\" id=\"tile_on_move_check\"><property na" ++ "me=\"label\" translatable=\"yes\">Automatically _tile windows when movi" ++ "ng toward the screen edge</property><property name=\"visible\">True</pr" + "operty><property name=\"can_focus\">True</property><property name=\"rec" + "eives_default\">False</property><property name=\"use_underline\">True</" + "property><property name=\"draw_indicator\">True</property></object><pac" + "king><property name=\"expand\">False</property><property name=\"fill\">" + "False</property><property name=\"position\">5</property></packing></chi" +- "ld><child><object class=\"GtkCheckButton\" id=\"repeat_urgent_blink\"><" +- "property name=\"label\" translatable=\"yes\">Keep urgent windows _blink" +- "ing repeatedly</property><property name=\"visible\">True</property><pro" ++ "ld><child><object class=\"GtkCheckButton\" id=\"snap_resist_check\"><pr" ++ "operty name=\"label\" translatable=\"yes\">Use _edge resistance instead" ++ " of window snapping</property><property name=\"visible\">True</property" ++ "><property name=\"can_focus\">True</property><property name=\"receives_" ++ "default\">False</property><property name=\"use_underline\">True</proper" ++ "ty><property name=\"draw_indicator\">True</property></object><packing><" ++ "property name=\"expand\">False</property><property name=\"fill\">False<" ++ "/property><property name=\"position\">6</property></packing></child><ch" ++ "ild><object class=\"GtkCheckButton\" id=\"urgent_blink\"><property name" ++ "=\"label\" translatable=\"yes\">Notify of _urgency by making window\'s " ++ "decoration blink</property><property name=\"visible\">True</property><p" ++ "roperty name=\"can_focus\">True</property><property name=\"receives_def" ++ "ault\">False</property><property name=\"use_underline\">True</property>" ++ "<property name=\"draw_indicator\">True</property></object><packing><pro" ++ "perty name=\"expand\">False</property><property name=\"fill\">False</pr" ++ "operty><property name=\"position\">7</property></packing></child><child" ++ "><object class=\"GtkCheckButton\" id=\"repeat_urgent_blink\"><property " ++ "name=\"label\" translatable=\"yes\">Keep urgent windows _blinking repea" ++ "tedly</property><property name=\"visible\">True</property><property nam" ++ "e=\"can_focus\">True</property><property name=\"receives_default\">Fals" ++ "e</property><property name=\"use_underline\">True</property><property n" ++ "ame=\"draw_indicator\">True</property></object><packing><property name=" ++ "\"expand\">False</property><property name=\"fill\">False</property><pro" ++ "perty name=\"position\">8</property></packing></child></object><packing" ++ "><property name=\"position\">2</property></packing></child><child type=" ++ "\"tab\"><object class=\"GtkLabel\" id=\"label3\"><property name=\"visib" ++ "le\">True</property><property name=\"label\" translatable=\"yes\">_Acce" ++ "ssibility</property><property name=\"use_underline\">True</property></o" ++ "bject><packing><property name=\"position\">2</property><property name=\"" ++ "tab_fill\">False</property></packing></child><child><object class=\"Gtk" ++ "VBox\" id=\"vbox5\"><property name=\"visible\">True</property><property" ++ " name=\"border_width\">12</property><property name=\"orientation\">vert" ++ "ical</property><property name=\"spacing\">6</property><child><object cl" ++ "ass=\"GtkCheckButton\" id=\"scroll_workspaces_check\"><property name=\"" ++ "label\" translatable=\"yes\">Use the _mouse wheel on the desktop to swi" ++ "tch workspaces</property><property name=\"visible\">True</property><pro" + "perty name=\"can_focus\">True</property><property name=\"receives_defau" + "lt\">False</property><property name=\"use_underline\">True</property><p" + "roperty name=\"draw_indicator\">True</property></object><packing><prope" + "rty name=\"expand\">False</property><property name=\"fill\">False</prop" +- "erty><property name=\"position\">6</property></packing></child></object" +- "><packing><property name=\"position\">2</property></packing></child><ch" +- "ild type=\"tab\"><object class=\"GtkLabel\" id=\"label3\"><property nam" +- "e=\"visible\">True</property><property name=\"label\" translatable=\"ye" +- "s\">_Accessibility</property><property name=\"use_underline\">True</pro" +- "perty></object><packing><property name=\"position\">2</property><proper" +- "ty name=\"tab_fill\">False</property></packing></child><child><object c" +- "lass=\"GtkVBox\" id=\"vbox5\"><property name=\"visible\">True</property" +- "><property name=\"border_width\">12</property><property name=\"orientat" +- "ion\">vertical</property><property name=\"spacing\">6</property><child>" +- "<object class=\"GtkCheckButton\" id=\"scroll_workspaces_check\"><proper" +- "ty name=\"label\" translatable=\"yes\">Use the _mouse wheel on the desk" +- "top to switch workspaces</property><property name=\"visible\">True</pro" +- "perty><property name=\"can_focus\">True</property><property name=\"rece" +- "ives_default\">False</property><property name=\"use_underline\">True</p" +- "roperty><property name=\"draw_indicator\">True</property></object><pack" +- "ing><property name=\"expand\">False</property><property name=\"fill\">F" +- "alse</property><property name=\"position\">0</property></packing></chil" +- "d><child><object class=\"GtkCheckButton\" id=\"toggle_workspaces_check\"" +- "><property name=\"label\" translatable=\"yes\">_Remember and recall pre" +- "vious workspace\nwhen switching via keyboard shortcuts</property><prope" +- "rty name=\"visible\">True</property><property name=\"can_focus\">True</" +- "property><property name=\"receives_default\">False</property><property " +- "name=\"use_underline\">True</property><property name=\"draw_indicator\"" +- ">True</property></object><packing><property name=\"expand\">False</prop" +- "erty><property name=\"fill\">False</property><property name=\"position\"" +- ">1</property></packing></child><child><object class=\"GtkCheckButton\" " +- "id=\"wrap_layout_check\"><property name=\"label\" translatable=\"yes\">" +- "Wrap workspaces depending on the actual desktop _layout</property><prop" +- "erty name=\"visible\">True</property><property name=\"can_focus\">True<" +- "/property><property name=\"receives_default\">False</property><property" +- " name=\"use_underline\">True</property><property name=\"draw_indicator\"" +- ">True</property></object><packing><property name=\"expand\">False</prop" +- "erty><property name=\"fill\">False</property><property name=\"position\"" +- ">2</property></packing></child><child><object class=\"GtkCheckButton\" " +- "id=\"wrap_cycle_check\"><property name=\"label\" translatable=\"yes\">W" +- "rap workspaces when the _first or the last workspace is reached</proper" +- "ty><property name=\"visible\">True</property><property name=\"can_focus" +- "\">True</property><property name=\"receives_default\">False</property><" +- "property name=\"use_underline\">True</property><property name=\"draw_in" +- "dicator\">True</property></object><packing><property name=\"expand\">Fa" +- "lse</property><property name=\"fill\">False</property><property name=\"" +- "position\">3</property></packing></child></object><packing><property na" +- "me=\"position\">3</property></packing></child><child type=\"tab\"><obje" +- "ct class=\"GtkLabel\" id=\"label4\"><property name=\"visible\">True</pr" +- "operty><property name=\"label\" translatable=\"yes\">_Workspaces</prope" +- "rty><property name=\"use_underline\">True</property></object><packing><" +- "property name=\"position\">3</property><property name=\"tab_fill\">Fals" +- "e</property></packing></child><child><object class=\"GtkVBox\" id=\"vbo" +- "x6\"><property name=\"visible\">True</property><property name=\"border_" +- "width\">12</property><property name=\"orientation\">vertical</property>" +- "<property name=\"spacing\">6</property><child><object class=\"GtkLabel\"" +- " id=\"label8\"><property name=\"visible\">True</property><property name" +- "=\"xalign\">0</property><property name=\"label\" translatable=\"yes\">_" +- "Minimum size of windows to trigger smart placement:</property><property" +- " name=\"use_underline\">True</property><property name=\"mnemonic_widget" +- "\">placement_ratio_scale</property></object><packing><property name=\"e" +- "xpand\">False</property><property name=\"fill\">False</property><proper" +- "ty name=\"position\">0</property></packing></child><child><object class" +- "=\"GtkAlignment\" id=\"alignment4\"><property name=\"visible\">True</pr" +- "operty><property name=\"bottom_padding\">6</property><property name=\"l" +- "eft_padding\">12</property><child><object class=\"GtkHBox\" id=\"hbox2\"" +- "><property name=\"visible\">True</property><property name=\"spacing\">1" +- "2</property><child><object class=\"GtkLabel\" id=\"label9\"><property n" +- "ame=\"visible\">True</property><property name=\"label\" translatable=\"" +- "yes\" comments=\"Smart placement size\"><i>Small</i></prope" +- "rty><property name=\"use_markup\">True</property></object><packing><pro" +- "perty name=\"expand\">False</property><property name=\"fill\">False</pr" +- "operty><property name=\"position\">0</property></packing></child><child" +- "><object class=\"GtkHScale\" id=\"placement_ratio_scale\"><property nam" +- "e=\"visible\">True</property><property name=\"can_focus\">True</propert" +- "y><property name=\"adjustment\">adjustment1</property><property name=\"" +- "restrict_to_fill_level\">False</property><property name=\"draw_value\">" +- "False</property></object><packing><property name=\"position\">1</proper" +- "ty></packing></child><child><object class=\"GtkLabel\" id=\"label10\"><" +- "property name=\"visible\">True</property><property name=\"label\" trans" +- "latable=\"yes\" comments=\"Smart placement size\"><i>Large</i&" +- "gt;</property><property name=\"use_markup\">True</property></object><pa" +- "cking><property name=\"expand\">False</property><property name=\"positi" +- "on\">2</property></packing></child></object></child></object><packing><" +- "property name=\"expand\">False</property><property name=\"fill\">False<" +- "/property><property name=\"position\">1</property></packing></child><ch" +- "ild><object class=\"GtkVBox\" id=\"default_placement_box\"><property na" +- "me=\"visible\">True</property><property name=\"orientation\">vertical</" +- "property><property name=\"spacing\">6</property><child><object class=\"" +- "GtkLabel\" id=\"label27\"><property name=\"visible\">True</property><pr" +- "operty name=\"xalign\">0</property><property name=\"label\" translatabl" +- "e=\"yes\">By default, place windows:</property></object><packing><prope" +- "rty name=\"position\">0</property></packing></child><child><object clas" +- "s=\"GtkAlignment\" id=\"alignment10\"><property name=\"visible\">True</" +- "property><property name=\"bottom_padding\">6</property><property name=\"" +- "left_padding\">12</property><child><object class=\"GtkVBox\" id=\"vbox1" +- "8\"><property name=\"visible\">True</property><property name=\"border_w" +- "idth\">6</property><property name=\"orientation\">vertical</property><p" +- "roperty name=\"spacing\">6</property><child><object class=\"GtkRadioBut" +- "ton\" id=\"placement_center_option\"><property name=\"label\" translata" +- "ble=\"yes\">At the _center of the screen</property><property name=\"vis" +- "ible\">True</property><property name=\"can_focus\">True</property><prop" +- "erty name=\"receives_default\">False</property><property name=\"use_und" +- "erline\">True</property><property name=\"draw_indicator\">True</propert" +- "y></object><packing><property name=\"position\">0</property></packing><" +- "/child><child><object class=\"GtkRadioButton\" id=\"placement_mouse_opt" +- "ion\"><property name=\"label\" translatable=\"yes\">Under the mouse _po" +- "inter</property><property name=\"visible\">True</property><property nam" +- "e=\"can_focus\">True</property><property name=\"receives_default\">Fals" +- "e</property><property name=\"use_underline\">True</property><property n" +- "ame=\"active\">True</property><property name=\"draw_indicator\">True</p" +- "roperty><property name=\"group\">placement_center_option</property></ob" +- "ject><packing><property name=\"position\">1</property></packing></child" +- "></object></child></object><packing><property name=\"position\">1</prop" +- "erty></packing></child></object><packing><property name=\"expand\">Fals" +- "e</property><property name=\"fill\">False</property><property name=\"po" +- "sition\">2</property></packing></child></object><packing><property name" +- "=\"position\">4</property></packing></child><child type=\"tab\"><object" +- " class=\"GtkLabel\" id=\"label5\"><property name=\"visible\">True</prop" +- "erty><property name=\"label\" translatable=\"yes\">_Placement</property" +- "><property name=\"use_underline\">True</property></object><packing><pro" +- "perty name=\"position\">4</property><property name=\"tab_fill\">False</" +- "property></packing></child><child><object class=\"GtkVBox\" id=\"vbox7\"" +- "><property name=\"visible\">True</property><property name=\"border_widt" +- "h\">12</property><property name=\"orientation\">vertical</property><pro" +- "perty name=\"spacing\">6</property><child><object class=\"GtkCheckButto" +- "n\" id=\"use_compositing_check\"><property name=\"label\" translatable=" +- "\"yes\">_Enable display compositing</property><property name=\"visible\"" +- ">True</property><property name=\"can_focus\">True</property><property n" +- "ame=\"receives_default\">False</property><property name=\"use_underline" +- "\">True</property><property name=\"draw_indicator\">True</property></ob" +- "ject><packing><property name=\"expand\">False</property><property name=" +- "\"fill\">False</property><property name=\"position\">0</property></pack" +- "ing></child><child><object class=\"GtkScrolledWindow\" id=\"use_composi" +- "ting_box\"><property name=\"visible\">True</property><property name=\"s" +- "ensitive\">False</property><property name=\"can_focus\">True</property>" +- "<property name=\"hscrollbar_policy\">never</property><property name=\"v" +- "scrollbar_policy\">automatic</property><child><object class=\"GtkViewpo" +- "rt\" id=\"viewport1\"><property name=\"visible\">True</property><proper" +- "ty name=\"resize_mode\">queue</property><property name=\"shadow_type\">" +- "none</property><child><object class=\"GtkAlignment\" id=\"alignment3\">" +- "<property name=\"visible\">True</property><property name=\"bottom_paddi" +- "ng\">6</property><property name=\"left_padding\">12</property><child><o" +- "bject class=\"GtkVBox\" id=\"vbox8\"><property name=\"visible\">True</p" +- "roperty><property name=\"orientation\">vertical</property><property nam" +- "e=\"spacing\">6</property><child><object class=\"GtkCheckButton\" id=\"" +- "unredirect_overlays_check\"><property name=\"label\" translatable=\"yes" +- "\">Display _fullscreen overlay windows directly</property><property nam" ++ "erty><property name=\"position\">0</property></packing></child><child><" ++ "object class=\"GtkCheckButton\" id=\"toggle_workspaces_check\"><propert" ++ "y name=\"label\" translatable=\"yes\">_Remember and recall previous wor" ++ "kspace\nwhen switching via keyboard shortcuts</property><property name=" ++ "\"visible\">True</property><property name=\"can_focus\">True</property>" ++ "<property name=\"receives_default\">False</property><property name=\"us" ++ "e_underline\">True</property><property name=\"draw_indicator\">True</pr" ++ "operty></object><packing><property name=\"expand\">False</property><pro" ++ "perty name=\"fill\">False</property><property name=\"position\">1</prop" ++ "erty></packing></child><child><object class=\"GtkCheckButton\" id=\"wra" ++ "p_layout_check\"><property name=\"label\" translatable=\"yes\">Wrap wor" ++ "kspaces depending on the actual desktop _layout</property><property nam" + "e=\"visible\">True</property><property name=\"can_focus\">True</propert" + "y><property name=\"receives_default\">False</property><property name=\"" + "use_underline\">True</property><property name=\"draw_indicator\">True</" + "property></object><packing><property name=\"expand\">False</property><p" +- "roperty name=\"position\">0</property></packing></child><child><object " +- "class=\"GtkCheckButton\" id=\"show_frame_shadow_check\"><property name=" +- "\"label\" translatable=\"yes\">Show shadows under _regular windows</pro" +- "perty><property name=\"visible\">True</property><property name=\"can_fo" +- "cus\">True</property><property name=\"receives_default\">False</propert" +- "y><property name=\"use_underline\">True</property><property name=\"draw" +- "_indicator\">True</property></object><packing><property name=\"expand\"" +- ">False</property><property name=\"position\">1</property></packing></ch" +- "ild><child><object class=\"GtkCheckButton\" id=\"show_popup_shadow_chec" +- "k\"><property name=\"label\" translatable=\"yes\">Show shadows under po" +- "p_up windows</property><property name=\"visible\">True</property><prope" +- "rty name=\"can_focus\">True</property><property name=\"receives_default" +- "\">False</property><property name=\"use_underline\">True</property><pro" +- "perty name=\"draw_indicator\">True</property></object><packing><propert" +- "y name=\"expand\">False</property><property name=\"position\">2</proper" +- "ty></packing></child><child><object class=\"GtkCheckButton\" id=\"show_" +- "dock_shadow_check\"><property name=\"label\" translatable=\"yes\">Show " +- "shadows under _dock windows</property><property name=\"visible\">True</" +- "property><property name=\"can_focus\">True</property><property name=\"r" +- "eceives_default\">False</property><property name=\"use_underline\">True" +- "</property><property name=\"draw_indicator\">True</property></object><p" +- "acking><property name=\"expand\">False</property><property name=\"posit" +- "ion\">3</property></packing></child><child><object class=\"GtkLabel\" i" +- "d=\"label12\"><property name=\"visible\">True</property><property name=" +- "\"xalign\">0</property><property name=\"label\" translatable=\"yes\">Op" +- "aci_ty of window decorations:</property><property name=\"use_underline\"" +- ">True</property><property name=\"mnemonic_widget\">frame_opacity_scale<" +- "/property></object><packing><property name=\"expand\">False</property><" +- "property name=\"position\">4</property></packing></child><child><object" +- " class=\"GtkAlignment\" id=\"alignment5\"><property name=\"visible\">Tr" +- "ue</property><property name=\"top_padding\">2</property><property name=" +- "\"left_padding\">12</property><child><object class=\"GtkHBox\" id=\"hbo" +- "x3\"><property name=\"visible\">True</property><child><object class=\"G" +- "tkLabel\" id=\"label17\"><property name=\"visible\">True</property><pro" +- "perty name=\"label\" translatable=\"yes\"><i>Transparent</i>" +- ";</property><property name=\"use_markup\">True</property></object><pack" +- "ing><property name=\"expand\">False</property><property name=\"fill\">F" +- "alse</property><property name=\"position\">0</property></packing></chil" +- "d><child><object class=\"GtkHScale\" id=\"frame_opacity_scale\"><proper" ++ "roperty name=\"fill\">False</property><property name=\"position\">2</pr" ++ "operty></packing></child><child><object class=\"GtkCheckButton\" id=\"w" ++ "rap_cycle_check\"><property name=\"label\" translatable=\"yes\">Wrap wo" ++ "rkspaces when the _first or the last workspace is reached</property><pr" ++ "operty name=\"visible\">True</property><property name=\"can_focus\">Tru" ++ "e</property><property name=\"receives_default\">False</property><proper" ++ "ty name=\"use_underline\">True</property><property name=\"draw_indicato" ++ "r\">True</property></object><packing><property name=\"expand\">False</p" ++ "roperty><property name=\"fill\">False</property><property name=\"positi" ++ "on\">3</property></packing></child></object><packing><property name=\"p" ++ "osition\">3</property></packing></child><child type=\"tab\"><object cla" ++ "ss=\"GtkLabel\" id=\"label4\"><property name=\"visible\">True</property" ++ "><property name=\"label\" translatable=\"yes\">_Workspaces</property><p" ++ "roperty name=\"use_underline\">True</property></object><packing><proper" ++ "ty name=\"position\">3</property><property name=\"tab_fill\">False</pro" ++ "perty></packing></child><child><object class=\"GtkVBox\" id=\"vbox6\"><" ++ "property name=\"visible\">True</property><property name=\"border_width\"" ++ ">12</property><property name=\"orientation\">vertical</property><proper" ++ "ty name=\"spacing\">6</property><child><object class=\"GtkLabel\" id=\"" ++ "label8\"><property name=\"visible\">True</property><property name=\"xal" ++ "ign\">0</property><property name=\"label\" translatable=\"yes\">_Minimu" ++ "m size of windows to trigger smart placement:</property><property name=" ++ "\"use_underline\">True</property><property name=\"mnemonic_widget\">pla" ++ "cement_ratio_scale</property></object><packing><property name=\"expand\"" ++ ">False</property><property name=\"fill\">False</property><property name" ++ "=\"position\">0</property></packing></child><child><object class=\"GtkA" ++ "lignment\" id=\"alignment4\"><property name=\"visible\">True</property>" ++ "<property name=\"bottom_padding\">6</property><property name=\"left_pad" ++ "ding\">12</property><child><object class=\"GtkHBox\" id=\"hbox2\"><prop" ++ "erty name=\"visible\">True</property><property name=\"spacing\">12</pro" ++ "perty><child><object class=\"GtkLabel\" id=\"label9\"><property name=\"" ++ "visible\">True</property><property name=\"label\" translatable=\"yes\" " ++ "comments=\"Smart placement size\"><i>Small</i></property><p" ++ "roperty name=\"use_markup\">True</property></object><packing><property " ++ "name=\"expand\">False</property><property name=\"fill\">False</property" ++ "><property name=\"position\">0</property></packing></child><child><obje" ++ "ct class=\"GtkHScale\" id=\"placement_ratio_scale\"><property name=\"vi" ++ "sible\">True</property><property name=\"can_focus\">True</property><pro" ++ "perty name=\"adjustment\">adjustment1</property><property name=\"restri" ++ "ct_to_fill_level\">False</property><property name=\"draw_value\">False<" ++ "/property></object><packing><property name=\"position\">1</property></p" ++ "acking></child><child><object class=\"GtkLabel\" id=\"label10\"><proper" ++ "ty name=\"visible\">True</property><property name=\"label\" translatabl" ++ "e=\"yes\" comments=\"Smart placement size\"><i>Large</i></p" ++ "roperty><property name=\"use_markup\">True</property></object><packing>" ++ "<property name=\"expand\">False</property><property name=\"position\">2" ++ "</property></packing></child></object></child></object><packing><proper" ++ "ty name=\"expand\">False</property><property name=\"fill\">False</prope" ++ "rty><property name=\"position\">1</property></packing></child><child><o" ++ "bject class=\"GtkVBox\" id=\"default_placement_box\"><property name=\"v" ++ "isible\">True</property><property name=\"orientation\">vertical</proper" ++ "ty><property name=\"spacing\">6</property><child><object class=\"GtkLab" ++ "el\" id=\"label27\"><property name=\"visible\">True</property><property" ++ " name=\"xalign\">0</property><property name=\"label\" translatable=\"ye" ++ "s\">By default, place windows:</property></object><packing><property na" ++ "me=\"position\">0</property></packing></child><child><object class=\"Gt" ++ "kAlignment\" id=\"alignment10\"><property name=\"visible\">True</proper" ++ "ty><property name=\"bottom_padding\">6</property><property name=\"left_" ++ "padding\">12</property><child><object class=\"GtkVBox\" id=\"vbox18\"><" ++ "property name=\"visible\">True</property><property name=\"border_width\"" ++ ">6</property><property name=\"orientation\">vertical</property><propert" ++ "y name=\"spacing\">6</property><child><object class=\"GtkRadioButton\" " ++ "id=\"placement_center_option\"><property name=\"label\" translatable=\"" ++ "yes\">At the _center of the screen</property><property name=\"visible\"" ++ ">True</property><property name=\"can_focus\">True</property><property n" ++ "ame=\"receives_default\">False</property><property name=\"use_underline" ++ "\">True</property><property name=\"draw_indicator\">True</property></ob" ++ "ject><packing><property name=\"position\">0</property></packing></child" ++ "><child><object class=\"GtkRadioButton\" id=\"placement_mouse_option\">" ++ "<property name=\"label\" translatable=\"yes\">Under the mouse _pointer<" ++ "/property><property name=\"visible\">True</property><property name=\"ca" ++ "n_focus\">True</property><property name=\"receives_default\">False</pro" ++ "perty><property name=\"use_underline\">True</property><property name=\"" ++ "active\">True</property><property name=\"draw_indicator\">True</propert" ++ "y><property name=\"group\">placement_center_option</property></object><" ++ "packing><property name=\"position\">1</property></packing></child></obj" ++ "ect></child></object><packing><property name=\"position\">1</property><" ++ "/packing></child></object><packing><property name=\"expand\">False</pro" ++ "perty><property name=\"fill\">False</property><property name=\"position" ++ "\">2</property></packing></child></object><packing><property name=\"pos" ++ "ition\">4</property></packing></child><child type=\"tab\"><object class" ++ "=\"GtkLabel\" id=\"label5\"><property name=\"visible\">True</property><" ++ "property name=\"label\" translatable=\"yes\">_Placement</property><prop" ++ "erty name=\"use_underline\">True</property></object><packing><property " ++ "name=\"position\">4</property><property name=\"tab_fill\">False</proper" ++ "ty></packing></child><child><object class=\"GtkVBox\" id=\"vbox7\"><pro" ++ "perty name=\"visible\">True</property><property name=\"border_width\">1" ++ "2</property><property name=\"orientation\">vertical</property><property" ++ " name=\"spacing\">6</property><child><object class=\"GtkCheckButton\" i" ++ "d=\"use_compositing_check\"><property name=\"label\" translatable=\"yes" ++ "\">_Enable display compositing</property><property name=\"visible\">Tru" ++ "e</property><property name=\"can_focus\">True</property><property name=" ++ "\"receives_default\">False</property><property name=\"use_underline\">T" ++ "rue</property><property name=\"draw_indicator\">True</property></object" ++ "><packing><property name=\"expand\">False</property><property name=\"fi" ++ "ll\">False</property><property name=\"position\">0</property></packing>" ++ "</child><child><object class=\"GtkScrolledWindow\" id=\"use_compositing" ++ "_box\"><property name=\"visible\">True</property><property name=\"sensi" ++ "tive\">False</property><property name=\"can_focus\">True</property><pro" ++ "perty name=\"hscrollbar_policy\">never</property><property name=\"vscro" ++ "llbar_policy\">automatic</property><child><object class=\"GtkViewport\"" ++ " id=\"viewport1\"><property name=\"visible\">True</property><property n" ++ "ame=\"resize_mode\">queue</property><property name=\"shadow_type\">none" ++ "</property><child><object class=\"GtkAlignment\" id=\"alignment3\"><pro" ++ "perty name=\"visible\">True</property><property name=\"bottom_padding\"" ++ ">6</property><property name=\"left_padding\">12</property><child><objec" ++ "t class=\"GtkVBox\" id=\"vbox8\"><property name=\"visible\">True</prope" ++ "rty><property name=\"orientation\">vertical</property><property name=\"" ++ "spacing\">6</property><child><object class=\"GtkCheckButton\" id=\"unre" ++ "direct_overlays_check\"><property name=\"label\" translatable=\"yes\">D" ++ "isplay _fullscreen overlay windows directly</property><property name=\"" ++ "visible\">True</property><property name=\"can_focus\">True</property><p" ++ "roperty name=\"receives_default\">False</property><property name=\"use_" ++ "underline\">True</property><property name=\"draw_indicator\">True</prop" ++ "erty></object><packing><property name=\"expand\">False</property><prope" ++ "rty name=\"position\">0</property></packing></child><child><object clas" ++ "s=\"GtkCheckButton\" id=\"show_frame_shadow_check\"><property name=\"la" ++ "bel\" translatable=\"yes\">Show shadows under _regular windows</propert" ++ "y><property name=\"visible\">True</property><property name=\"can_focus\"" ++ ">True</property><property name=\"receives_default\">False</property><pr" ++ "operty name=\"use_underline\">True</property><property name=\"draw_indi" ++ "cator\">True</property></object><packing><property name=\"expand\">Fals" ++ "e</property><property name=\"position\">1</property></packing></child><" ++ "child><object class=\"GtkCheckButton\" id=\"show_popup_shadow_check\"><" ++ "property name=\"label\" translatable=\"yes\">Show shadows under pop_up " ++ "windows</property><property name=\"visible\">True</property><property n" ++ "ame=\"can_focus\">True</property><property name=\"receives_default\">Fa" ++ "lse</property><property name=\"use_underline\">True</property><property" ++ " name=\"draw_indicator\">True</property></object><packing><property nam" ++ "e=\"expand\">False</property><property name=\"position\">2</property></" ++ "packing></child><child><object class=\"GtkCheckButton\" id=\"show_dock_" ++ "shadow_check\"><property name=\"label\" translatable=\"yes\">Show shado" ++ "ws under _dock windows</property><property name=\"visible\">True</prope" ++ "rty><property name=\"can_focus\">True</property><property name=\"receiv" ++ "es_default\">False</property><property name=\"use_underline\">True</pro" ++ "perty><property name=\"draw_indicator\">True</property></object><packin" ++ "g><property name=\"expand\">False</property><property name=\"position\"" ++ ">3</property></packing></child><child><object class=\"GtkLabel\" id=\"l" ++ "abel12\"><property name=\"visible\">True</property><property name=\"xal" ++ "ign\">0</property><property name=\"label\" translatable=\"yes\">Opaci_t" ++ "y of window decorations:</property><property name=\"use_underline\">Tru" ++ "e</property><property name=\"mnemonic_widget\">frame_opacity_scale</pro" ++ "perty></object><packing><property name=\"expand\">False</property><prop" ++ "erty name=\"position\">4</property></packing></child><child><object cla" ++ "ss=\"GtkAlignment\" id=\"alignment5\"><property name=\"visible\">True</" ++ "property><property name=\"top_padding\">2</property><property name=\"le" ++ "ft_padding\">12</property><child><object class=\"GtkHBox\" id=\"hbox3\"" ++ "><property name=\"visible\">True</property><child><object class=\"GtkLa" ++ "bel\" id=\"label17\"><property name=\"visible\">True</property><propert" ++ "y name=\"label\" translatable=\"yes\"><i>Transparent</i></p" ++ "roperty><property name=\"use_markup\">True</property></object><packing>" ++ "<property name=\"expand\">False</property><property name=\"fill\">False" ++ "</property><property name=\"position\">0</property></packing></child><c" ++ "hild><object class=\"GtkHScale\" id=\"frame_opacity_scale\"><property n" ++ "ame=\"visible\">True</property><property name=\"can_focus\">True</prope" ++ "rty><property name=\"update_policy\">discontinuous</property><property " ++ "name=\"adjustment\">adjustment2</property><property name=\"restrict_to_" ++ "fill_level\">False</property><property name=\"draw_value\">False</prope" ++ "rty></object><packing><property name=\"position\">1</property></packing" ++ "></child><child><object class=\"GtkLabel\" id=\"label18\"><property nam" ++ "e=\"visible\">True</property><property name=\"label\" translatable=\"ye" ++ "s\"><i>Opaque</i></property><property name=\"use_markup\">T" ++ "rue</property></object><packing><property name=\"expand\">False</proper" ++ "ty><property name=\"fill\">False</property><property name=\"position\">" ++ "2</property></packing></child></object></child></object><packing><prope" ++ "rty name=\"expand\">False</property><property name=\"fill\">False</prop" ++ "erty><property name=\"position\">5</property></packing></child><child><" ++ "object class=\"GtkLabel\" id=\"label13\"><property name=\"visible\">Tru" ++ "e</property><property name=\"xalign\">0</property><property name=\"labe" ++ "l\" translatable=\"yes\">Opacity of _inactive windows:</property><prope" ++ "rty name=\"use_underline\">True</property><property name=\"mnemonic_wid" ++ "get\">inactive_opacity_scale</property></object><packing><property name" ++ "=\"expand\">False</property><property name=\"fill\">False</property><pr" ++ "operty name=\"position\">6</property></packing></child><child><object c" ++ "lass=\"GtkAlignment\" id=\"alignment6\"><property name=\"visible\">True" ++ "</property><property name=\"top_padding\">2</property><property name=\"" ++ "left_padding\">12</property><child><object class=\"GtkHBox\" id=\"hbox4" ++ "\"><property name=\"visible\">True</property><child><object class=\"Gtk" ++ "Label\" id=\"label19\"><property name=\"visible\">True</property><prope" ++ "rty name=\"label\" translatable=\"yes\"><i>Transparent</i><" ++ "/property><property name=\"use_markup\">True</property></object><packin" ++ "g><property name=\"expand\">False</property><property name=\"fill\">Fal" ++ "se</property><property name=\"position\">0</property></packing></child>" ++ "<child><object class=\"GtkHScale\" id=\"inactive_opacity_scale\"><prope" ++ "rty name=\"visible\">True</property><property name=\"can_focus\">True</" ++ "property><property name=\"update_policy\">discontinuous</property><prop" ++ "erty name=\"adjustment\">adjustment3</property><property name=\"restric" ++ "t_to_fill_level\">False</property><property name=\"draw_value\">False</" ++ "property></object><packing><property name=\"position\">1</property></pa" ++ "cking></child><child><object class=\"GtkLabel\" id=\"label20\"><propert" ++ "y name=\"visible\">True</property><property name=\"label\" translatable" ++ "=\"yes\"><i>Opaque</i></property><property name=\"use_marku" ++ "p\">True</property></object><packing><property name=\"expand\">False</p" ++ "roperty><property name=\"fill\">False</property><property name=\"positi" ++ "on\">2</property></packing></child></object></child></object><packing><" ++ "property name=\"expand\">False</property><property name=\"fill\">False<" ++ "/property><property name=\"position\">7</property></packing></child><ch" ++ "ild><object class=\"GtkLabel\" id=\"label14\"><property name=\"visible\"" ++ ">True</property><property name=\"xalign\">0</property><property name=\"" ++ "label\" translatable=\"yes\">Opacity of windows during _move:</property" ++ "><property name=\"use_underline\">True</property><property name=\"mnemo" ++ "nic_widget\">move_opacity_scale</property></object><packing><property n" ++ "ame=\"expand\">False</property><property name=\"fill\">False</property>" ++ "<property name=\"position\">8</property></packing></child><child><objec" ++ "t class=\"GtkAlignment\" id=\"alignment7\"><property name=\"visible\">T" ++ "rue</property><property name=\"top_padding\">2</property><property name" ++ "=\"left_padding\">12</property><child><object class=\"GtkHBox\" id=\"hb" ++ "ox5\"><property name=\"visible\">True</property><child><object class=\"" ++ "GtkLabel\" id=\"label21\"><property name=\"visible\">True</property><pr" ++ "operty name=\"label\" translatable=\"yes\"><i>Transparent</i&g" ++ "t;</property><property name=\"use_markup\">True</property></object><pac" ++ "king><property name=\"expand\">False</property><property name=\"fill\">" ++ "False</property><property name=\"position\">0</property></packing></chi" ++ "ld><child><object class=\"GtkHScale\" id=\"move_opacity_scale\"><proper" + "ty name=\"visible\">True</property><property name=\"can_focus\">True</p" + "roperty><property name=\"update_policy\">discontinuous</property><prope" +- "rty name=\"adjustment\">adjustment2</property><property name=\"restrict" ++ "rty name=\"adjustment\">adjustment4</property><property name=\"restrict" + "_to_fill_level\">False</property><property name=\"draw_value\">False</p" + "roperty></object><packing><property name=\"position\">1</property></pac" +- "king></child><child><object class=\"GtkLabel\" id=\"label18\"><property" ++ "king></child><child><object class=\"GtkLabel\" id=\"label22\"><property" + " name=\"visible\">True</property><property name=\"label\" translatable=" + "\"yes\"><i>Opaque</i></property><property name=\"use_markup" + "\">True</property></object><packing><property name=\"expand\">False</pr" + "operty><property name=\"fill\">False</property><property name=\"positio" + "n\">2</property></packing></child></object></child></object><packing><p" + "roperty name=\"expand\">False</property><property name=\"fill\">False</" +- "property><property name=\"position\">5</property></packing></child><chi" +- "ld><object class=\"GtkLabel\" id=\"label13\"><property name=\"visible\"" ++ "property><property name=\"position\">9</property></packing></child><chi" ++ "ld><object class=\"GtkLabel\" id=\"label15\"><property name=\"visible\"" + ">True</property><property name=\"xalign\">0</property><property name=\"" +- "label\" translatable=\"yes\">Opacity of _inactive windows:</property><p" +- "roperty name=\"use_underline\">True</property><property name=\"mnemonic" +- "_widget\">inactive_opacity_scale</property></object><packing><property " +- "name=\"expand\">False</property><property name=\"fill\">False</property" +- "><property name=\"position\">6</property></packing></child><child><obje" +- "ct class=\"GtkAlignment\" id=\"alignment6\"><property name=\"visible\">" +- "True</property><property name=\"top_padding\">2</property><property nam" +- "e=\"left_padding\">12</property><child><object class=\"GtkHBox\" id=\"h" +- "box4\"><property name=\"visible\">True</property><child><object class=\"" +- "GtkLabel\" id=\"label19\"><property name=\"visible\">True</property><pr" +- "operty name=\"label\" translatable=\"yes\"><i>Transparent</i&g" +- "t;</property><property name=\"use_markup\">True</property></object><pac" +- "king><property name=\"expand\">False</property><property name=\"fill\">" +- "False</property><property name=\"position\">0</property></packing></chi" +- "ld><child><object class=\"GtkHScale\" id=\"inactive_opacity_scale\"><pr" +- "operty name=\"visible\">True</property><property name=\"can_focus\">Tru" +- "e</property><property name=\"update_policy\">discontinuous</property><p" +- "roperty name=\"adjustment\">adjustment3</property><property name=\"rest" +- "rict_to_fill_level\">False</property><property name=\"draw_value\">Fals" +- "e</property></object><packing><property name=\"position\">1</property><" +- "/packing></child><child><object class=\"GtkLabel\" id=\"label20\"><prop" +- "erty name=\"visible\">True</property><property name=\"label\" translata" +- "ble=\"yes\"><i>Opaque</i></property><property name=\"use_ma" +- "rkup\">True</property></object><packing><property name=\"expand\">False" +- "</property><property name=\"fill\">False</property><property name=\"pos" +- "ition\">2</property></packing></child></object></child></object><packin" +- "g><property name=\"expand\">False</property><property name=\"fill\">Fal" +- "se</property><property name=\"position\">7</property></packing></child>" +- "<child><object class=\"GtkLabel\" id=\"label14\"><property name=\"visib" +- "le\">True</property><property name=\"xalign\">0</property><property nam" +- "e=\"label\" translatable=\"yes\">Opacity of windows during _move:</prop" +- "erty><property name=\"use_underline\">True</property><property name=\"m" +- "nemonic_widget\">move_opacity_scale</property></object><packing><proper" ++ "label\" translatable=\"yes\">Opacity of windows during resi_ze:</proper" ++ "ty><property name=\"use_underline\">True</property><property name=\"mne" ++ "monic_widget\">resize_opacity_scale</property></object><packing><proper" + "ty name=\"expand\">False</property><property name=\"fill\">False</prope" +- "rty><property name=\"position\">8</property></packing></child><child><o" +- "bject class=\"GtkAlignment\" id=\"alignment7\"><property name=\"visible" +- "\">True</property><property name=\"top_padding\">2</property><property " +- "name=\"left_padding\">12</property><child><object class=\"GtkHBox\" id=" +- "\"hbox5\"><property name=\"visible\">True</property><child><object clas" +- "s=\"GtkLabel\" id=\"label21\"><property name=\"visible\">True</property" +- "><property name=\"label\" translatable=\"yes\"><i>Transparent<" +- "/i></property><property name=\"use_markup\">True</property></object>" +- "<packing><property name=\"expand\">False</property><property name=\"fil" +- "l\">False</property><property name=\"position\">0</property></packing><" +- "/child><child><object class=\"GtkHScale\" id=\"move_opacity_scale\"><pr" +- "operty name=\"visible\">True</property><property name=\"can_focus\">Tru" +- "e</property><property name=\"update_policy\">discontinuous</property><p" +- "roperty name=\"adjustment\">adjustment4</property><property name=\"rest" +- "rict_to_fill_level\">False</property><property name=\"draw_value\">Fals" +- "e</property></object><packing><property name=\"position\">1</property><" +- "/packing></child><child><object class=\"GtkLabel\" id=\"label22\"><prop" +- "erty name=\"visible\">True</property><property name=\"label\" translata" +- "ble=\"yes\"><i>Opaque</i></property><property name=\"use_ma" +- "rkup\">True</property></object><packing><property name=\"expand\">False" +- "</property><property name=\"fill\">False</property><property name=\"pos" +- "ition\">2</property></packing></child></object></child></object><packin" +- "g><property name=\"expand\">False</property><property name=\"fill\">Fal" +- "se</property><property name=\"position\">9</property></packing></child>" +- "<child><object class=\"GtkLabel\" id=\"label15\"><property name=\"visib" +- "le\">True</property><property name=\"xalign\">0</property><property nam" +- "e=\"label\" translatable=\"yes\">Opacity of windows during resi_ze:</pr" +- "operty><property name=\"use_underline\">True</property><property name=\"" +- "mnemonic_widget\">resize_opacity_scale</property></object><packing><pro" +- "perty name=\"expand\">False</property><property name=\"fill\">False</pr" +- "operty><property name=\"position\">10</property></packing></child><chil" +- "d><object class=\"GtkAlignment\" id=\"alignment8\"><property name=\"vis" +- "ible\">True</property><property name=\"top_padding\">2</property><prope" +- "rty name=\"left_padding\">12</property><child><object class=\"GtkHBox\"" +- " id=\"hbox6\"><property name=\"visible\">True</property><child><object " +- "class=\"GtkLabel\" id=\"label23\"><property name=\"visible\">True</prop" +- "erty><property name=\"label\" translatable=\"yes\"><i>Transparent" +- "</i></property><property name=\"use_markup\">True</property></obj" +- "ect><packing><property name=\"expand\">False</property><property name=\"" +- "fill\">False</property><property name=\"position\">0</property></packin" +- "g></child><child><object class=\"GtkHScale\" id=\"resize_opacity_scale\"" +- "><property name=\"visible\">True</property><property name=\"can_focus\"" +- ">True</property><property name=\"update_policy\">discontinuous</propert" +- "y><property name=\"adjustment\">adjustment5</property><property name=\"" +- "restrict_to_fill_level\">False</property><property name=\"draw_value\">" +- "False</property></object><packing><property name=\"position\">1</proper" +- "ty></packing></child><child><object class=\"GtkLabel\" id=\"label24\"><" +- "property name=\"visible\">True</property><property name=\"label\" trans" +- "latable=\"yes\"><i>Opaque</i></property><property name=\"us" +- "e_markup\">True</property></object><packing><property name=\"expand\">F" +- "alse</property><property name=\"fill\">False</property><property name=\"" ++ "rty><property name=\"position\">10</property></packing></child><child><" ++ "object class=\"GtkAlignment\" id=\"alignment8\"><property name=\"visibl" ++ "e\">True</property><property name=\"top_padding\">2</property><property" ++ " name=\"left_padding\">12</property><child><object class=\"GtkHBox\" id" ++ "=\"hbox6\"><property name=\"visible\">True</property><child><object cla" ++ "ss=\"GtkLabel\" id=\"label23\"><property name=\"visible\">True</propert" ++ "y><property name=\"label\" translatable=\"yes\"><i>Transparent<" ++ ";/i></property><property name=\"use_markup\">True</property></object" ++ "><packing><property name=\"expand\">False</property><property name=\"fi" ++ "ll\">False</property><property name=\"position\">0</property></packing>" ++ "</child><child><object class=\"GtkHScale\" id=\"resize_opacity_scale\">" ++ "<property name=\"visible\">True</property><property name=\"can_focus\">" ++ "True</property><property name=\"update_policy\">discontinuous</property" ++ "><property name=\"adjustment\">adjustment5</property><property name=\"r" ++ "estrict_to_fill_level\">False</property><property name=\"draw_value\">F" ++ "alse</property></object><packing><property name=\"position\">1</propert" ++ "y></packing></child><child><object class=\"GtkLabel\" id=\"label24\"><p" ++ "roperty name=\"visible\">True</property><property name=\"label\" transl" ++ "atable=\"yes\"><i>Opaque</i></property><property name=\"use" ++ "_markup\">True</property></object><packing><property name=\"expand\">Fa" ++ "lse</property><property name=\"fill\">False</property><property name=\"" + "position\">2</property></packing></child></object></child></object><pac" + "king><property name=\"expand\">False</property><property name=\"fill\">" + "False</property><property name=\"position\">11</property></packing></ch" +@@ -568,5 +576,5 @@ static const char tweaks_dialog_ui[] = + "et></action-widgets></object></interface>" + }; + +-static const unsigned tweaks_dialog_ui_length = 37803u; ++static const unsigned tweaks_dialog_ui_length = 38338u; + +diff --git a/src/client.c b/src/client.c +index 4e86808..b92c264 100644 +--- a/src/client.c ++++ b/src/client.c +@@ -64,6 +64,8 @@ + #include "xsync.h" + #include "event_filter.h" + ++//#define TRACE(fmt, ...) printf(fmt"\n", ##__VA_ARGS__); fflush(stdout); ++ + /* Event mask definition */ + + #define POINTER_EVENT_MASK \ +@@ -173,6 +175,7 @@ clientCreateTitleName (Client *c, gchar *name, gchar *hostname) + gchar *title; + + g_return_val_if_fail (c != NULL, NULL); ++ + TRACE ("entering clientCreateTitleName"); + + screen_info = c->screen_info; +@@ -1729,6 +1732,7 @@ clientFrame (DisplayInfo *display_info, Window w, gboolean recapture) + clientGetInitialNetWmDesktop (c); + /* workarea will be updated when shown, no need to worry here */ + clientGetNetStruts (c); ++ clientGetExtra (c); + + /* Once we know the type of window, we can initialize window position */ + if (!FLAG_TEST (c->xfwm_flags, XFWM_FLAG_SESSION_MANAGED)) +@@ -3137,6 +3141,8 @@ clientNewMaxSize (Client *c, XWindowChanges *wc, GdkRectangle *rect, tilePositio + wc->width = full_w - frameLeft (c) - frameRight (c); + wc->height = full_h - frameTop (c) - frameBottom (c); + ++ TRACE ("clientNewMaxSize %d %d %d %d", wc->x, wc->y, wc->width, wc->height); ++ + return ((wc->width <= c->size->max_width) && (wc->height <= c->size->max_height)); + } + +diff --git a/src/client.h b/src/client.h +index e8bc4e3..b5e54df 100644 +--- a/src/client.h ++++ b/src/client.h +@@ -161,6 +161,7 @@ + #define CLIENT_FLAG_DEMANDS_ATTENTION (1L<<17) + #define CLIENT_FLAG_HAS_SHAPE (1L<<18) + #define CLIENT_FLAG_FULLSCREN_MONITORS (1L<<19) ++#define CLIENT_FLAG_TITLELESS_MAXIMIZE (1L<<20) + + #define WM_FLAG_DELETE (1L<<0) + #define WM_FLAG_INPUT (1L<<1) +diff --git a/src/display.c b/src/display.c +index 00318d5..4f847f4 100644 +--- a/src/display.c ++++ b/src/display.c +@@ -169,7 +169,8 @@ myDisplayInitAtoms (DisplayInfo *display_info) + "XFWM4_COMPOSITING_MANAGER", + "XFWM4_TIMESTAMP_PROP", + "_XROOTPMAP_ID", +- "_XSETROOT_ID" ++ "_XSETROOT_ID", ++ "_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED" + }; + + g_assert (ATOM_COUNT == G_N_ELEMENTS (atom_names)); +diff --git a/src/display.h b/src/display.h +index 8797237..a297cf2 100644 +--- a/src/display.h ++++ b/src/display.h +@@ -265,6 +265,7 @@ enum + XFWM4_TIMESTAMP_PROP, + XROOTPMAP, + XSETROOT, ++ _GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED, + ATOM_COUNT + }; + +diff --git a/src/events.c b/src/events.c +index 4b49171..044cd11 100644 +--- a/src/events.c ++++ b/src/events.c +@@ -1921,6 +1921,11 @@ handlePropertyNotify (DisplayInfo *display_info, XPropertyEvent * ev) + TRACE ("Window 0x%lx has NET_WM_SYNC_REQUEST_COUNTER set to 0x%lx", c->window, c->xsync_counter); + } + #endif /* HAVE_XSYNC */ ++ else if (ev->atom == display_info->atoms[_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED]) ++ { ++ TRACE ("Client \"%s\" Window 0x%lx has received GTK CRAP\n", c->name, c->window); ++ clientUpdateExtra (c); ++ } + + return status; + } +diff --git a/src/frame.c b/src/frame.c +index 7f4cbd3..23c01cd 100644 +--- a/src/frame.c ++++ b/src/frame.c +@@ -39,6 +39,8 @@ + #include "frame.h" + #include "compositor.h" + ++//#define TRACE(fmt, ...) printf(fmt"\n", ##__VA_ARGS__); fflush(stdout); ++ + typedef struct + { + xfwmPixmap pm_title; +@@ -121,7 +123,14 @@ frameTop (Client * c) + + g_return_val_if_fail (c != NULL, 0); + if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER) +- && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN)) ++ && !(FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN) ++ || (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT) ++ && (c->screen_info->params->titleless_maximize ++ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE)) ++ && c->screen_info->params->borderless_maximize ++ ) ++ ) ++ ) + { + return c->screen_info->title[TITLE_3][ACTIVE].height; + } +@@ -136,8 +145,13 @@ frameBottom (Client * c) + g_return_val_if_fail (c != NULL, 0); + if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER) + && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN) +- && (!FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED) +- || !(c->screen_info->params->borderless_maximize))) ++ && !(FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED) ++ && (c->screen_info->params->borderless_maximize)) ++ && !(FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT) ++ && (c->screen_info->params->borderless_maximize) ++ && (c->screen_info->params->titleless_maximize ++ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE))) ++ ) + { + return c->screen_info->sides[SIDE_BOTTOM][ACTIVE].height; + } +@@ -203,7 +217,14 @@ frameHeight (Client * c) + return frameTop (c) + frameBottom (c); + } + else if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER) +- && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN)) ++ && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN) ++ && !( ++ FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT) ++ && (c->screen_info->params->borderless_maximize) ++ && (c->screen_info->params->titleless_maximize ++ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE)) ++ )) ++ + { + return c->height + frameTop (c) + frameBottom (c); + } +@@ -882,6 +903,7 @@ frameDrawWin (Client * c) + gboolean requires_clearing; + gboolean width_changed; + gboolean height_changed; ++ gboolean vert_only; + + TRACE ("entering frameDraw"); + TRACE ("drawing frame for \"%s\" (0x%lx)", c->name, c->window); +@@ -955,128 +977,152 @@ frameDrawWin (Client * c) + } + + if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER) +- && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN)) ++ && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN) ++ && !(FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED) ++ && (c->screen_info->params->borderless_maximize) ++ && (c->screen_info->params->titleless_maximize ++ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE)) ++ )) + { +- /* First, hide the buttons that we don't have... */ +- for (i = 0; i < BUTTON_COUNT; i++) ++ vert_only = FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_VERT) ++ && (c->screen_info->params->borderless_maximize) //only vertical decorations shown (titleless vertical maximize) ++ && (c->screen_info->params->titleless_maximize ++ || FLAG_TEST (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE)); ++ ++ if (vert_only) + { +- char b = getLetterFromButton (i, c); +- if ((!b) || !strchr (screen_info->params->button_layout, b)) ++ //hide all buttons ++ for (i = 0; i < BUTTON_COUNT; i++) + { + xfwmWindowHide (&c->buttons[i]); + } ++ xfwmWindowHide (&c->title); ++ xfwmWindowHide (&c->sides[SIDE_BOTTOM]); ++ xfwmWindowHide (&c->sides[SIDE_TOP]); ++ xfwmWindowHide (&c->corners[CORNER_TOP_LEFT]); ++ xfwmWindowHide (&c->corners[CORNER_TOP_RIGHT]); ++ xfwmWindowHide (&c->corners[CORNER_BOTTOM_LEFT]); ++ xfwmWindowHide (&c->corners[CORNER_BOTTOM_RIGHT]); + } +- +- /* Then, show the ones that we do have on left... */ +- x = frameLeft (c) + frameButtonOffset (c); +- if (x < 0) +- { +- x = 0; +- } +- right = frameWidth (c) - frameRight (c) - frameButtonOffset (c); +- for (i = 0; i < strlen (screen_info->params->button_layout); i++) ++ else + { +- button = getButtonFromLetter (screen_info->params->button_layout[i], c); +- if (button == TITLE_SEPARATOR) ++ /* First, hide the buttons that we don't have... */ ++ for (i = 0; i < BUTTON_COUNT; i++) + { +- break; +- } +- else if (button >= 0) +- { +- if (x + screen_info->buttons[button][state].width + screen_info->params->button_spacing < right) +- { +- my_pixmap = clientGetButtonPixmap (c, button, clientGetButtonState (c, button, state)); +- if (!xfwmPixmapNone(my_pixmap)) +- { +- xfwmWindowSetBG (&c->buttons[button], my_pixmap); +- } +- xfwmWindowShow (&c->buttons[button], x, +- (frameTop (c) - screen_info->buttons[button][state].height + 1) / 2, +- screen_info->buttons[button][state].width, +- screen_info->buttons[button][state].height, TRUE); +- button_x[button] = x; +- x = x + screen_info->buttons[button][state].width + +- screen_info->params->button_spacing; +- } +- else ++ char b = getLetterFromButton (i, c); ++ if ((!b) || !strchr (screen_info->params->button_layout, b)) + { +- xfwmWindowHide (&c->buttons[button]); ++ xfwmWindowHide (&c->buttons[i]); + } + } +- } +- left = x + screen_info->params->button_spacing; + +- /* and those that we do have on right... */ +- x = frameWidth (c) - frameRight (c) + screen_info->params->button_spacing - +- frameButtonOffset (c); +- for (j = strlen (screen_info->params->button_layout) - 1; j >= i; j--) +- { +- button = getButtonFromLetter (screen_info->params->button_layout[j], c); +- if (button == TITLE_SEPARATOR) ++ /* Then, show the ones that we do have on left... */ ++ x = frameLeft (c) + frameButtonOffset (c); ++ if (x < 0) + { +- break; ++ x = 0; + } +- else if (button >= 0) ++ right = frameWidth (c) - frameRight (c) - frameButtonOffset (c); ++ for (i = 0; i < strlen (screen_info->params->button_layout); i++) + { +- if (x - screen_info->buttons[button][state].width - screen_info->params->button_spacing > left) ++ button = getButtonFromLetter (screen_info->params->button_layout[i], c); ++ if (button == TITLE_SEPARATOR) + { +- my_pixmap = clientGetButtonPixmap (c, button, clientGetButtonState (c, button, state)); +- if (!xfwmPixmapNone(my_pixmap)) ++ break; ++ } ++ else if (button >= 0) ++ { ++ if (x + screen_info->buttons[button][state].width + screen_info->params->button_spacing < right) ++ { ++ my_pixmap = clientGetButtonPixmap (c, button, clientGetButtonState (c, button, state)); ++ if (!xfwmPixmapNone(my_pixmap)) ++ { ++ xfwmWindowSetBG (&c->buttons[button], my_pixmap); ++ } ++ xfwmWindowShow (&c->buttons[button], x, ++ (frameTop (c) - screen_info->buttons[button][state].height + 1) / 2, ++ screen_info->buttons[button][state].width, ++ screen_info->buttons[button][state].height, TRUE); ++ button_x[button] = x; ++ x = x + screen_info->buttons[button][state].width + ++ screen_info->params->button_spacing; ++ } ++ else + { +- xfwmWindowSetBG (&c->buttons[button], my_pixmap); ++ xfwmWindowHide (&c->buttons[button]); + } +- x = x - screen_info->buttons[button][state].width - +- screen_info->params->button_spacing; +- xfwmWindowShow (&c->buttons[button], x, +- (frameTop (c) - screen_info->buttons[button][state].height + 1) / 2, +- screen_info->buttons[button][state].width, +- screen_info->buttons[button][state].height, TRUE); +- button_x[button] = x; + } +- else ++ } ++ left = x + screen_info->params->button_spacing; ++ ++ /* and those that we do have on right... */ ++ x = frameWidth (c) - frameRight (c) + screen_info->params->button_spacing - ++ frameButtonOffset (c); ++ for (j = strlen (screen_info->params->button_layout) - 1; j >= i; j--) ++ { ++ button = getButtonFromLetter (screen_info->params->button_layout[j], c); ++ if (button == TITLE_SEPARATOR) + { +- xfwmWindowHide (&c->buttons[button]); ++ break; ++ } ++ else if (button >= 0) ++ { ++ if (x - screen_info->buttons[button][state].width - screen_info->params->button_spacing > left) ++ { ++ my_pixmap = clientGetButtonPixmap (c, button, clientGetButtonState (c, button, state)); ++ if (!xfwmPixmapNone(my_pixmap)) ++ { ++ xfwmWindowSetBG (&c->buttons[button], my_pixmap); ++ } ++ x = x - screen_info->buttons[button][state].width - ++ screen_info->params->button_spacing; ++ xfwmWindowShow (&c->buttons[button], x, ++ (frameTop (c) - screen_info->buttons[button][state].height + 1) / 2, ++ screen_info->buttons[button][state].width, ++ screen_info->buttons[button][state].height, TRUE); ++ button_x[button] = x; ++ } ++ else ++ { ++ xfwmWindowHide (&c->buttons[button]); ++ } + } + } ++ left = left - 2 * screen_info->params->button_spacing; ++ right = x; ++ xfwmPixmapInit (screen_info, &frame_pix.pm_title); ++ xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_TOP]); ++ xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_BOTTOM]); ++ ++ top_width = frameWidth (c) - frameTopLeftWidth (c, state) - frameTopRightWidth (c, state); ++ bottom_width = frameWidth (c) - ++ screen_info->corners[CORNER_BOTTOM_LEFT][state].width - ++ screen_info->corners[CORNER_BOTTOM_RIGHT][state].width; ++ ++ /* The title is almost always visible */ ++ frameCreateTitlePixmap (c, state, left, right, &frame_pix.pm_title, &frame_pix.pm_sides[SIDE_TOP]); ++ xfwmWindowSetBG (&c->title, &frame_pix.pm_title); ++ xfwmWindowShow (&c->title, ++ frameTopLeftWidth (c, state), 0, top_width, ++ frameTop (c), (requires_clearing | width_changed)); ++ ++ /* Corners are never resized, we need to update them separately */ ++ if (requires_clearing) ++ { ++ xfwmWindowSetBG (&c->corners[CORNER_TOP_LEFT], ++ &screen_info->corners[CORNER_TOP_LEFT][state]); ++ xfwmWindowSetBG (&c->corners[CORNER_TOP_RIGHT], ++ &screen_info->corners[CORNER_TOP_RIGHT][state]); ++ xfwmWindowSetBG (&c->corners[CORNER_BOTTOM_LEFT], ++ &screen_info->corners[CORNER_BOTTOM_LEFT][state]); ++ xfwmWindowSetBG (&c->corners[CORNER_BOTTOM_RIGHT], ++ &screen_info->corners[CORNER_BOTTOM_RIGHT][state]); ++ } + } +- left = left - 2 * screen_info->params->button_spacing; +- right = x; +- +- top_width = frameWidth (c) - frameTopLeftWidth (c, state) - frameTopRightWidth (c, state); +- bottom_width = frameWidth (c) - +- screen_info->corners[CORNER_BOTTOM_LEFT][state].width - +- screen_info->corners[CORNER_BOTTOM_RIGHT][state].width; +- left_height = frameHeight (c) - frameTop (c) - +- screen_info->corners[CORNER_BOTTOM_LEFT][state].height; +- right_height = frameHeight (c) - frameTop (c) - +- screen_info->corners[CORNER_BOTTOM_RIGHT][state].height; +- +- xfwmPixmapInit (screen_info, &frame_pix.pm_title); +- xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_TOP]); +- xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_BOTTOM]); ++ + xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_LEFT]); + xfwmPixmapInit (screen_info, &frame_pix.pm_sides[SIDE_RIGHT]); + +- /* The title is always visible */ +- frameCreateTitlePixmap (c, state, left, right, &frame_pix.pm_title, &frame_pix.pm_sides[SIDE_TOP]); +- xfwmWindowSetBG (&c->title, &frame_pix.pm_title); +- xfwmWindowShow (&c->title, +- frameTopLeftWidth (c, state), 0, top_width, +- frameTop (c), (requires_clearing | width_changed)); +- +- /* Corners are never resized, we need to update them separately */ +- if (requires_clearing) +- { +- xfwmWindowSetBG (&c->corners[CORNER_TOP_LEFT], +- &screen_info->corners[CORNER_TOP_LEFT][state]); +- xfwmWindowSetBG (&c->corners[CORNER_TOP_RIGHT], +- &screen_info->corners[CORNER_TOP_RIGHT][state]); +- xfwmWindowSetBG (&c->corners[CORNER_BOTTOM_LEFT], +- &screen_info->corners[CORNER_BOTTOM_LEFT][state]); +- xfwmWindowSetBG (&c->corners[CORNER_BOTTOM_RIGHT], +- &screen_info->corners[CORNER_BOTTOM_RIGHT][state]); +- } +- + if (FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED) + && (c->screen_info->params->borderless_maximize)) + { +@@ -1091,6 +1137,18 @@ frameDrawWin (Client * c) + } + else + { ++ if (vert_only) ++ { ++ left_height = right_height = c->height; ++ } ++ else ++ { ++ left_height = frameHeight (c) - frameTop (c) ++ - screen_info->corners[CORNER_BOTTOM_LEFT][state].height; ++ right_height = frameHeight (c) - frameTop (c) ++ - screen_info->corners[CORNER_BOTTOM_RIGHT][state].height; ++ } ++ + if (FLAG_TEST (c->flags, CLIENT_FLAG_SHADED)) + { + xfwmWindowHide (&c->sides[SIDE_LEFT]); +@@ -1120,63 +1178,69 @@ frameDrawWin (Client * c) + right_height, (requires_clearing | height_changed)); + } + +- xfwmPixmapCreate (screen_info, &frame_pix.pm_sides[SIDE_BOTTOM], +- bottom_width, frameBottom (c)); +- xfwmPixmapFill (&screen_info->sides[SIDE_BOTTOM][state], +- &frame_pix.pm_sides[SIDE_BOTTOM], +- 0, 0, bottom_width, frameBottom (c)); +- xfwmWindowSetBG (&c->sides[SIDE_BOTTOM], +- &frame_pix.pm_sides[SIDE_BOTTOM]); +- xfwmWindowShow (&c->sides[SIDE_BOTTOM], +- screen_info->corners[CORNER_BOTTOM_LEFT][state].width, +- frameHeight (c) - frameBottom (c), bottom_width, frameBottom (c), +- (requires_clearing | width_changed)); +- +- if (!xfwmPixmapNone(&frame_pix.pm_sides[SIDE_TOP])) ++ if (!vert_only) + { +- xfwmWindowSetBG (&c->sides[SIDE_TOP], &frame_pix.pm_sides[SIDE_TOP]); +- xfwmWindowShow (&c->sides[SIDE_TOP], +- screen_info->corners[CORNER_TOP_LEFT][state].width, +- 0, top_width, frame_pix.pm_sides[SIDE_TOP].height, ++ xfwmPixmapCreate (screen_info, &frame_pix.pm_sides[SIDE_BOTTOM], ++ bottom_width, frameBottom (c)); ++ xfwmPixmapFill (&screen_info->sides[SIDE_BOTTOM][state], ++ &frame_pix.pm_sides[SIDE_BOTTOM], ++ 0, 0, bottom_width, frameBottom (c)); ++ xfwmWindowSetBG (&c->sides[SIDE_BOTTOM], ++ &frame_pix.pm_sides[SIDE_BOTTOM]); ++ xfwmWindowShow (&c->sides[SIDE_BOTTOM], ++ screen_info->corners[CORNER_BOTTOM_LEFT][state].width, ++ frameHeight (c) - frameBottom (c), bottom_width, frameBottom (c), + (requires_clearing | width_changed)); +- } +- else +- { +- xfwmWindowHide (&c->sides[SIDE_TOP]); +- } + +- xfwmWindowShow (&c->corners[CORNER_TOP_LEFT], 0, 0, +- frameTopLeftWidth (c, state), +- screen_info->corners[CORNER_TOP_LEFT][state].height, +- requires_clearing); +- +- xfwmWindowShow (&c->corners[CORNER_TOP_RIGHT], +- frameWidth (c) - frameTopRightWidth (c, state), +- 0, frameTopRightWidth (c, state), +- screen_info->corners[CORNER_TOP_RIGHT][state].height, +- requires_clearing); +- +- xfwmWindowShow (&c->corners[CORNER_BOTTOM_LEFT], 0, +- frameHeight (c) - +- screen_info->corners[CORNER_BOTTOM_LEFT][state].height, +- screen_info->corners[CORNER_BOTTOM_LEFT][state].width, +- screen_info->corners[CORNER_BOTTOM_LEFT][state].height, +- requires_clearing); +- +- xfwmWindowShow (&c->corners[CORNER_BOTTOM_RIGHT], +- frameWidth (c) - +- screen_info->corners[CORNER_BOTTOM_RIGHT][state].width, +- frameHeight (c) - +- screen_info->corners[CORNER_BOTTOM_RIGHT][state].height, +- screen_info->corners[CORNER_BOTTOM_RIGHT][state].width, +- screen_info->corners[CORNER_BOTTOM_RIGHT][state].height, +- requires_clearing); ++ if (!xfwmPixmapNone(&frame_pix.pm_sides[SIDE_TOP])) ++ { ++ xfwmWindowSetBG (&c->sides[SIDE_TOP], &frame_pix.pm_sides[SIDE_TOP]); ++ xfwmWindowShow (&c->sides[SIDE_TOP], ++ screen_info->corners[CORNER_TOP_LEFT][state].width, ++ 0, top_width, frame_pix.pm_sides[SIDE_TOP].height, ++ (requires_clearing | width_changed)); ++ } ++ else ++ { ++ xfwmWindowHide (&c->sides[SIDE_TOP]); ++ } ++ ++ xfwmWindowShow (&c->corners[CORNER_TOP_LEFT], 0, 0, ++ frameTopLeftWidth (c, state), ++ screen_info->corners[CORNER_TOP_LEFT][state].height, ++ requires_clearing); ++ ++ xfwmWindowShow (&c->corners[CORNER_TOP_RIGHT], ++ frameWidth (c) - frameTopRightWidth (c, state), ++ 0, frameTopRightWidth (c, state), ++ screen_info->corners[CORNER_TOP_RIGHT][state].height, ++ requires_clearing); ++ ++ xfwmWindowShow (&c->corners[CORNER_BOTTOM_LEFT], 0, ++ frameHeight (c) - ++ screen_info->corners[CORNER_BOTTOM_LEFT][state].height, ++ screen_info->corners[CORNER_BOTTOM_LEFT][state].width, ++ screen_info->corners[CORNER_BOTTOM_LEFT][state].height, ++ requires_clearing); ++ ++ xfwmWindowShow (&c->corners[CORNER_BOTTOM_RIGHT], ++ frameWidth (c) - ++ screen_info->corners[CORNER_BOTTOM_RIGHT][state].width, ++ frameHeight (c) - ++ screen_info->corners[CORNER_BOTTOM_RIGHT][state].height, ++ screen_info->corners[CORNER_BOTTOM_RIGHT][state].width, ++ screen_info->corners[CORNER_BOTTOM_RIGHT][state].height, ++ requires_clearing); ++ } + } + frameSetShape (c, state, &frame_pix, button_x); + +- xfwmPixmapFree (&frame_pix.pm_title); +- xfwmPixmapFree (&frame_pix.pm_sides[SIDE_TOP]); +- xfwmPixmapFree (&frame_pix.pm_sides[SIDE_BOTTOM]); ++ if (!vert_only) ++ { ++ xfwmPixmapFree (&frame_pix.pm_title); ++ xfwmPixmapFree (&frame_pix.pm_sides[SIDE_TOP]); ++ xfwmPixmapFree (&frame_pix.pm_sides[SIDE_BOTTOM]); ++ } + xfwmPixmapFree (&frame_pix.pm_sides[SIDE_LEFT]); + xfwmPixmapFree (&frame_pix.pm_sides[SIDE_RIGHT]); + } +diff --git a/src/netwm.c b/src/netwm.c +index 1352f08..9e3647c 100644 +--- a/src/netwm.c ++++ b/src/netwm.c +@@ -136,6 +136,44 @@ clientSetNetState (Client * c) + } + + void ++clientGetExtra (Client *c) ++{ ++ long val; ++ DisplayInfo *display_info; ++ ++ display_info = c->screen_info->display_info; ++ ++ getHint (display_info, c->window, _GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED, &val); ++ if (val) ++ FLAG_SET (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE); ++} ++ ++void ++clientUpdateExtra (Client *c) ++{ ++ long val; ++ unsigned long maximization_flags = 0L; ++ DisplayInfo *display_info; ++ ++ display_info = c->screen_info->display_info; ++ ++ getHint (display_info, c->window, _GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED, &val); ++ if (val) ++ FLAG_SET (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE); ++ else ++ FLAG_UNSET (c->flags, CLIENT_FLAG_TITLELESS_MAXIMIZE); ++ ++ if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED)) ++ { ++ maximization_flags = c->flags & CLIENT_FLAG_MAXIMIZED; ++ ++ /* Force an update by clearing the internal flags */ ++ FLAG_UNSET (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ | CLIENT_FLAG_MAXIMIZED_VERT); ++ clientToggleMaximized (c, maximization_flags, TRUE); ++ } ++} ++ ++void + clientGetNetState (Client * c) + { + ScreenInfo *screen_info; +diff --git a/src/placement.c b/src/placement.c +index 01f2590..64719a7 100644 +--- a/src/placement.c ++++ b/src/placement.c +@@ -38,7 +38,6 @@ + #include "frame.h" + #include "netwm.h" + +- + /* Compute rectangle overlap area */ + + static inline unsigned long +@@ -108,6 +107,8 @@ clientMaxSpace (ScreenInfo *screen_info, int *x, int *y, int *w, int *h) + g_return_if_fail (w != NULL); + g_return_if_fail (h != NULL); + ++ TRACE ("entering clientMaxSpace"); ++ + screen_width = 0; + screen_height = 0; + delta = 0; +@@ -157,6 +158,7 @@ clientMaxSpace (ScreenInfo *screen_info, int *x, int *y, int *w, int *h) + } + } + } ++ TRACE ("clientMaxSpace result %d %d %d %d", *x, *y, *w, *h); + } + + gboolean +diff --git a/src/settings.c b/src/settings.c +index 607bb7b..37b6c2a 100644 +--- a/src/settings.c ++++ b/src/settings.c +@@ -667,6 +667,7 @@ loadSettings (ScreenInfo *screen_info) + /* You can change the order of the following parameters */ + {"activate_action", NULL, G_TYPE_STRING, TRUE}, + {"borderless_maximize", NULL, G_TYPE_BOOLEAN, TRUE}, ++ {"titleless_maximize", NULL, G_TYPE_BOOLEAN, TRUE}, + {"box_move", NULL, G_TYPE_BOOLEAN, TRUE}, + {"box_resize", NULL, G_TYPE_BOOLEAN, TRUE}, + {"button_layout", NULL, G_TYPE_STRING, TRUE}, +@@ -753,6 +754,8 @@ loadSettings (ScreenInfo *screen_info) + + screen_info->params->borderless_maximize = + getBoolValue ("borderless_maximize", rc); ++ screen_info->params->titleless_maximize = ++ getBoolValue ("titleless_maximize", rc); + screen_info->params->box_resize = + getBoolValue ("box_resize", rc); + screen_info->params->box_move = +@@ -1261,6 +1264,11 @@ cb_xfwm4_channel_property_changed(XfconfChannel *channel, const gchar *property_ + screen_info->params->borderless_maximize = g_value_get_boolean (value); + reloadScreenSettings (screen_info, UPDATE_MAXIMIZE); + } ++ else if (!strcmp (name, "titleless_maximize")) ++ { ++ screen_info->params->titleless_maximize = g_value_get_boolean (value); ++ reloadScreenSettings (screen_info, UPDATE_MAXIMIZE); ++ } + else if (!strcmp (name, "cycle_minimum")) + { + screen_info->params->cycle_minimum = g_value_get_boolean (value); +diff --git a/src/settings.h b/src/settings.h +index be01b6b..ea8b79b 100644 +--- a/src/settings.h ++++ b/src/settings.h +@@ -197,6 +197,7 @@ struct _XfwmParams + int title_shadow[2]; + int wrap_resistance; + gboolean borderless_maximize; ++ gboolean titleless_maximize; + gboolean box_move; + gboolean box_resize; + gboolean click_to_focus; +-- +1.8.4 + diff --git a/pcr/xfwm4-titleless/xfwm4.install b/pcr/xfwm4-titleless/xfwm4.install new file mode 100644 index 000000000..e4f8fd06c --- /dev/null +++ b/pcr/xfwm4-titleless/xfwm4.install @@ -0,0 +1,13 @@ +post_install() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} + +# vim:set ts=2 sw=2 et: diff --git a/pcr/youtube-dl-current/PKGBUILD b/pcr/youtube-dl-current/PKGBUILD index 1aab4522e..3d2d5c90f 100644 --- a/pcr/youtube-dl-current/PKGBUILD +++ b/pcr/youtube-dl-current/PKGBUILD @@ -1,11 +1,11 @@ -# Maintainer (Arch): Eric Bélanger <eric@archlinux.org> +# Maintainer: Eric Bélanger <eric@archlinux.org> # Maintainer (Parabola): Alon Ivtsan <alonivtsan@lavabit.com> # Based on https://www.archlinux.org/packages/community/any/youtube-dl/ pkgname=youtube-dl-current _pkgname=youtube-dl provides=(youtube-dl) -pkgver=2013.09.04 +pkgver=2013.10.07 pkgrel=1 pkgdesc="A small command-line program to download videos from YouTube.com and a few more sites" arch=('any') @@ -27,5 +27,5 @@ package() { "${pkgdir}/usr/share/bash-completion/completions/youtube-dl" install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE" } -md5sums=('252f503736cef7049d3a1ed20a2ffc5f' +md5sums=('8fcf8c27dc2444f78c0413f9ddee383a' 'SKIP') diff --git a/pcr/zbase32/PKGBUILD b/pcr/zbase32/PKGBUILD new file mode 100644 index 000000000..b4373abb8 --- /dev/null +++ b/pcr/zbase32/PKGBUILD @@ -0,0 +1,25 @@ +# Contributor: Peter Simons <simons@cryp.to> +# Contributor: Nicolas Pouillard <nicolas.pouillard@gmail.com> +pkgname=zbase32 +pkgver=1.1.5 +pkgrel=1 +pkgdesc="alternate base32 encoder (not RFC 3548 compliant)" +arch=('i686' 'x86_64') +url='http://pypi.python.org/pypi/zbase32' +license=('BSD') +depends=('python2') +makedepends=('setuptools' 'darcsver' 'setuptools_darcs' 'pyutil') +source=( http://pypi.python.org/packages/source/z/zbase32/zbase32-$pkgver.tar.gz ) +md5sums=('4dba0be4ac6d66968de8e5173f51d65d') + +build() { + cd "$srcdir/$pkgname-$pkgver" + python2 setup.py build + python2 setup.py test +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + python2 setup.py install --root="$pkgdir" + install -Dm644 PKG-INFO* $pkgdir/usr/share/licenses/$pkgname/LICENSE +} diff --git a/pcr/zfec/PKGBUILD b/pcr/zfec/PKGBUILD new file mode 100644 index 000000000..0c2487c6b --- /dev/null +++ b/pcr/zfec/PKGBUILD @@ -0,0 +1,26 @@ +# Maintainer: Nicolas Pouillard <nicolas.pouillard@gmail.com> +# Contributor: Peter Simons <simons@cryp.to> +pkgname=zfec +pkgver=1.4.24 +pkgrel=2 +pkgdesc="a fast erasure codec which can be used with the command-line, C, Python, or Haskell" +arch=('i686' 'x86_64') +url='http://pypi.python.org/pypi/zfec' +license=('GPL' 'custom') +depends=('python2' 'pyutil' 'zbase32') +makedepends=('darcsver' 'setuptools_darcs') +source=( http://pypi.python.org/packages/source/z/zfec/zfec-$pkgver.tar.gz ) +md5sums=('e1bca3a1f18374f72bdf8cd42ea9c919') + +build(){ + cd "$srcdir/$pkgname-$pkgver" + python2 setup.py build + python2 setup.py test +} + +package(){ + cd "$srcdir/$pkgname-$pkgver" + python2 setup.py install --root="$pkgdir" + install -d $pkgdir/usr/share/licenses/$pkgname/ + install -m644 COPYING* $pkgdir/usr/share/licenses/$pkgname/ +} |