diff --git a/x11-wm/awesome/Manifest b/x11-wm/awesome/Manifest new file mode 100644 index 00000000..9451ee62 --- /dev/null +++ b/x11-wm/awesome/Manifest @@ -0,0 +1 @@ +DIST awesome-3.5.4.tar.xz 718916 SHA256 b48bce31e14345f260075d528263385564eaeb204c4b673c893f77e884a24ea8 SHA512 afc221931759e56c24f89bdbf6aab9eb9059a44acaea6345567f3f77eb4663354ca7a266e9395f0b6a3068cd7f15e824a6c938987eac915ddba420050c265235 WHIRLPOOL 0a92be54433a0e91fd52aa31c95d72c3d4b8dd35f4e36094ac94726fbb6ba33f6a7b4ac42e3f81f9b94ab419671ded42d0c769e95ca90e53228147a6f3d3a1bd diff --git a/x11-wm/awesome/awesome-3.5.4.ebuild b/x11-wm/awesome/awesome-3.5.4.ebuild new file mode 100644 index 00000000..025c1163 --- /dev/null +++ b/x11-wm/awesome/awesome-3.5.4.ebuild @@ -0,0 +1,132 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-wm/awesome/awesome-3.5.4.ebuild,v 1.1 2014/04/03 19:16:52 maksbotan Exp $ + +EAPI="5" +CMAKE_MIN_VERSION="2.8" +inherit cmake-utils eutils + +DESCRIPTION="A dynamic floating and tiling window manager" +HOMEPAGE="http://awesome.naquadah.org/" +SRC_URI="http://awesome.naquadah.org/download/${P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd" +IUSE="dbus doc elibc_FreeBSD gnome" + +COMMON_DEPEND=" + >=dev-lang/lua-5.1 + dev-libs/glib:2 + >=dev-libs/libxdg-basedir-1 + >=dev-lua/lgi-0.7 + x11-libs/cairo[xcb] + x11-libs/gdk-pixbuf:2 + >=x11-libs/libxcb-1.6 + >=x11-libs/pango-1.19.3[introspection] + >=x11-libs/startup-notification-0.10_p20110426 + >=x11-libs/xcb-util-0.3.8 + x11-libs/xcb-util-cursor + x11-libs/libXcursor + || ( =x11-libs/libX11-1.3.99.901 ) + dbus? ( >=sys-apps/dbus-1 ) + elibc_FreeBSD? ( dev-libs/libexecinfo )" + +# graphicsmagick's 'convert -channel' has no Alpha support, bug #352282 +DEPEND="${COMMON_DEPEND} + >=app-text/asciidoc-8.4.5 + app-text/xmlto + dev-util/gperf + virtual/pkgconfig + media-gfx/imagemagick[png] + >=x11-proto/xcb-proto-1.5 + >=x11-proto/xproto-7.0.15 + doc? ( + app-doc/doxygen + media-gfx/graphviz + )" + +RDEPEND="${COMMON_DEPEND}" + +DOCS="AUTHORS BUGS PATCHES README STYLE" + +src_prepare() { + # bug #408025 + epatch "${FILESDIR}/${PN}-3.5_rc1-convert-path.patch" + epatch "${FILESDIR}/${PN}-xsession.patch" + + # bug #506586 + epatch "${FILESDIR}/${P}-imagebox.patch" +} + +src_configure() { + mycmakeargs=( + -DPREFIX="${EPREFIX}"/usr + -DSYSCONFDIR="${EPREFIX}"/etc + $(cmake-utils_use_with dbus DBUS) + $(cmake-utils_use doc GENERATE_DOC) + ) + + cmake-utils_src_configure +} + +src_compile() { + local myargs="all" + + if use doc ; then + myargs="${myargs} doc" + fi + cmake-utils_src_make ${myargs} +} + +src_install() { + cmake-utils_src_install + + if use doc ; then + ( + cd "${CMAKE_BUILD_DIR}"/doc + mv html doxygen + dohtml -r doxygen || die + ) + fi + rm -rf "${ED}"/usr/share/doc/${PN} || die "Cleanup of dupe docs failed" + + exeinto /etc/X11/Sessions + newexe "${FILESDIR}"/${PN}-session ${PN} || die + + # GNOME-based awesome + if use gnome ; then + # GNOME session + insinto /usr/share/gnome-session/sessions + newins "${FILESDIR}/${PN}-gnome-3.session" "${PN}-gnome.session" || die + # Application launcher + domenu "${FILESDIR}/${PN}-gnome.desktop" || die + # X Session + insinto /usr/share/xsessions/ + doins "${FILESDIR}/${PN}-gnome-xsession.desktop" || die + fi +} + +pkg_postinst() { + # bug #447308 + if use gnome; then + elog + elog "You have enabled the gnome USE flag." + elog "Please note that quitting awesome won't kill your gnome session." + elog "To really quit the session, you should bind your quit key" + elog "to the following command:" + elog " gnome-session-quit --logout" + elog "For more info visit" + elog " https://bugs.gentoo.org/show_bug.cgi?id=447308" + fi + + # bug #440724 + elog + elog "If you are having issues with Java application windows being" + elog "completely blank, try installing" + elog " x11-misc/wmname" + elog "and setting the WM name to LG3D." + elog "For more info visit" + elog " https://bugs.gentoo.org/show_bug.cgi?id=440724" + elog +} diff --git a/x11-wm/awesome/files/awesome-3.5.4-imagebox.patch b/x11-wm/awesome/files/awesome-3.5.4-imagebox.patch new file mode 100644 index 00000000..7d224f24 --- /dev/null +++ b/x11-wm/awesome/files/awesome-3.5.4-imagebox.patch @@ -0,0 +1,28 @@ +From: Uli Schlachter +Date: Wed, 2 Apr 2014 20:48:06 +0000 (+0200) +Subject: imagebox: Don't try to scale by infinite (FS#1248) +X-Git-Url: http://git.naquadah.org/?p=awesome.git;a=commitdiff_plain;h=7967d05915c95c8eba7709a46093cc1b6de55572;hp=afa50904fb1c79a24ddda8fb242afe2dcc1de841 + +imagebox: Don't try to scale by infinite (FS#1248) + +When an imagebox was drawn with width or height zero, it tried to calculate the +needed scale factor for making the image fit. Sadly, this would be a division by +zero aka infinite in this case. + +Fix this by just not drawing anything if there is no space available. + +Signed-off-by: Uli Schlachter +--- + +diff --git a/lib/wibox/widget/imagebox.lua.in b/lib/wibox/widget/imagebox.lua.in +index da51634..5963d0e 100644 +--- a/lib/wibox/widget/imagebox.lua.in ++++ b/lib/wibox/widget/imagebox.lua.in +@@ -18,6 +18,7 @@ local imagebox = { mt = {} } + --- Draw an imagebox with the given cairo context in the given geometry. + function imagebox:draw(wibox, cr, width, height) + if not self._image then return end ++ if width == 0 or height == 0 then return end + + cr:save() + diff --git a/x11-wm/awesome/files/awesome-3.5_rc1-convert-path.patch b/x11-wm/awesome/files/awesome-3.5_rc1-convert-path.patch new file mode 100644 index 00000000..e6c37b0f --- /dev/null +++ b/x11-wm/awesome/files/awesome-3.5_rc1-convert-path.patch @@ -0,0 +1,12 @@ +diff -Nuar --exclude '*.orig' awesome-3.5-rc1.orig/awesomeConfig.cmake awesome-3.5-rc1/awesomeConfig.cmake +--- awesome-3.5-rc1.orig/awesomeConfig.cmake 2012-11-24 13:51:33.000000000 +0000 ++++ awesome-3.5-rc1/awesomeConfig.cmake 2012-11-24 20:42:23.743412441 +0000 +@@ -56,7 +56,7 @@ + a_find_program(LUA_EXECUTABLE lua FALSE) + a_find_program(LDOC_EXECUTABLE ldoc.lua FALSE) + # theme graphics +-a_find_program(CONVERT_EXECUTABLE convert TRUE) ++a_find_program(CONVERT_EXECUTABLE bin/convert TRUE) + # doxygen + include(FindDoxygen) + # pkg-config diff --git a/x11-wm/awesome/files/awesome-gnome-3.session b/x11-wm/awesome/files/awesome-gnome-3.session new file mode 100644 index 00000000..d1bd6fa9 --- /dev/null +++ b/x11-wm/awesome/files/awesome-gnome-3.session @@ -0,0 +1,3 @@ +[GNOME Session] +Name=Awesome session +RequiredComponents=gnome-settings-daemon;awesome-gnome; diff --git a/x11-wm/awesome/files/awesome-gnome-xsession.desktop b/x11-wm/awesome/files/awesome-gnome-xsession.desktop new file mode 100644 index 00000000..9f3d67b9 --- /dev/null +++ b/x11-wm/awesome/files/awesome-gnome-xsession.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Awesome GNOME +Comment=GNOME with highly configurable window manager awesome +TryExec=gnome-session +Exec=gnome-session --session=awesome-gnome +Type=XSession diff --git a/x11-wm/awesome/files/awesome-gnome.desktop b/x11-wm/awesome/files/awesome-gnome.desktop new file mode 100644 index 00000000..8adf5fcc --- /dev/null +++ b/x11-wm/awesome/files/awesome-gnome.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=Awesome +Comment=Highly configurable framework window manager +NoDisplay=true +TryExec=/etc/X11/Sessions/awesome +Exec=/etc/X11/Sessions/awesome diff --git a/x11-wm/awesome/files/awesome-gnome.session b/x11-wm/awesome/files/awesome-gnome.session new file mode 100644 index 00000000..dd0c01b5 --- /dev/null +++ b/x11-wm/awesome/files/awesome-gnome.session @@ -0,0 +1,6 @@ +[GNOME Session] +Name=Awesome session +RequiredComponents=gnome-settings-daemon; +RequiredProviders=windowmanager;notifications; +DefaultProvider-windowmanager=awesome-gnome +DefaultProvider-notifications=notification-daemon diff --git a/x11-wm/awesome/files/awesome-session b/x11-wm/awesome/files/awesome-session new file mode 100644 index 00000000..fe769467 --- /dev/null +++ b/x11-wm/awesome/files/awesome-session @@ -0,0 +1,90 @@ +#!/bin/sh +# Awesome Xsession starter, based on Xsession shipped by x11-apps/xinit-1.0.5-r1 + +# redirect errors to a file in user's home directory if we can +for errfile in "$HOME/.awesome-errors" "${TMPDIR-/tmp}/awesome-$USER" "/tmp/awesome-$USER" +do + if ( cp /dev/null "$errfile" 2> /dev/null ) + then + chmod 600 "$errfile" + exec > "$errfile" 2>&1 + break + fi +done + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +userxkbmap=$HOME/.Xkbmap + +sysresources=/etc/X11/Xresources +sysmodmap=/etc/X11/Xmodmap +sysxkbmap=/etc/X11/Xkbmap + +rh6sysresources=/etc/X11/xinit/Xresources +rh6sysmodmap=/etc/X11/xinit/Xmodmap + + +# merge in defaults +if [ -f "$rh6sysresources" ]; then + xrdb -merge "$rh6sysresources" +fi + +if [ -f "$sysresources" ]; then + xrdb -merge "$sysresources" +fi + +if [ -f "$userresources" ]; then + xrdb -merge "$userresources" +fi + +# merge in keymaps +if [ -f "$sysxkbmap" ]; then + setxkbmap `cat "$sysxkbmap"` + XKB_IN_USE=yes +fi + +if [ -f "$userxkbmap" ]; then + setxkbmap `cat "$userxkbmap"` + XKB_IN_USE=yes +fi + +# +# Eeek, this seems like too much magic here +# +if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then + if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then + xkbsymbols=`sed -n -e 's/^[ ]*XkbSymbols[ ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config /etc/X11/xorg.conf` + if [ -n "$xkbsymbols" ]; then + setxkbmap -symbols "$xkbsymbols" + XKB_IN_USE=yes + fi + fi +fi + +# xkb and xmodmap don't play nice together +if [ -z "$XKB_IN_USE" ]; then + if [ -f "$rh6sysmodmap" ]; then + xmodmap "$rh6sysmodmap" + fi + + if [ -f "$sysmodmap" ]; then + xmodmap "$sysmodmap" + fi + + if [ -f "$usermodmap" ]; then + xmodmap "$usermodmap" + fi +fi + +unset XKB_IN_USE + +# run all system xinitrc shell scripts. +if [ -d /etc/X11/xinit/xinitrc.d ]; then + for i in /etc/X11/xinit/xinitrc.d/* ; do + if [ -x "$i" ]; then + . "$i" + fi + done +fi + +exec /usr/bin/awesome diff --git a/x11-wm/awesome/files/awesome-xsession.patch b/x11-wm/awesome/files/awesome-xsession.patch new file mode 100644 index 00000000..5a170766 --- /dev/null +++ b/x11-wm/awesome/files/awesome-xsession.patch @@ -0,0 +1,9 @@ +--- awesome-3.5.2/awesome.desktop 2013-10-12 12:48:49.000000000 -0400 ++++ awesome.desktop 2014-03-29 23:24:01.137547594 -0400 +@@ -3,5 +3,5 @@ + Name=awesome + Comment=Highly configurable framework window manager + TryExec=awesome +-Exec=awesome ++Exec=/etc/X11/Sessions/awesome + Type=Application diff --git a/x11-wm/awesome/files/awesome.desktop b/x11-wm/awesome/files/awesome.desktop new file mode 100644 index 00000000..692dced8 --- /dev/null +++ b/x11-wm/awesome/files/awesome.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=awesome +Comment=Highly configurable framework window manager +NoDisplay=true +TryExec=/etc/X11/Sessions/awesome +Exec=/etc/X11/Sessions/awesome +Type=Application