summaryrefslogtreecommitdiff
path: root/libre/bumblebee
diff options
context:
space:
mode:
Diffstat (limited to 'libre/bumblebee')
-rw-r--r--libre/bumblebee/PKGBUILD67
-rw-r--r--libre/bumblebee/bumblebee.install16
-rw-r--r--libre/bumblebee/libre.patch154
3 files changed, 237 insertions, 0 deletions
diff --git a/libre/bumblebee/PKGBUILD b/libre/bumblebee/PKGBUILD
new file mode 100644
index 000000000..964fcf020
--- /dev/null
+++ b/libre/bumblebee/PKGBUILD
@@ -0,0 +1,67 @@
+# Maintainer (Arch): Sven-Hendrik Haase <sh@lutzhaase.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+
+pkgname=bumblebee
+pkgver=3.2.1
+pkgrel=3.parabola1
+pkgdesc="NVIDIA Optimus support for GNU/Linux through VirtualGL, without nonfree nvidia driver support"
+arch=('i686' 'x86_64' 'mips64el')
+depends=('virtualgl' 'glib2' 'mesa-libgl')
+makedepends=('help2man')
+optdepends=('xf86-video-nouveau: nouveau driver'
+ 'nouveau-dri: 3D acceleration features of nouveau'
+ 'bbswitch: switch on/off discrete card'
+ 'primus: faster back-end for optirun')
+if [ "$CARCH" = "x86_64" ]; then
+ optdepends[${#optdepends[@]}]='lib32-virtualgl: run 32bit applications with optirun'
+ optdepends[${#optdepends[@]}]='lib32-primus: faster back-end for optirun'
+fi
+replaces=("$pkgname-libre" 'nvidia-libgl')
+conflicts=("$pkgname-libre" 'nvidia-libgl')
+provides=('nvidia-libgl')
+url="http://www.$pkgname-project.org"
+license=("GPL3")
+install="$pkgname.install"
+backup=("etc/$pkgname/$pkgname.conf"
+ "etc/$pkgname/xorg.conf.nouveau")
+source=("http://www.$pkgname-project.org/${pkgname}-${pkgver}.tar.gz"
+ 'libre.patch')
+md5sums=('30974e677bb13e8a3825fd6f3e7d3b24'
+ '1daed1e00f74538add6c435dfa0569d1')
+
+prepare() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Remove nonfree references to nonfree nvidia driver and unnecessaries files
+ rm -rv "README.markdown"
+ rm -rv "conf/"{99-$pkgname-nvidia-dev.rules,xorg.conf.nvidia}
+ rm -rv "doc"
+ rm -rv "scripts/$pkgname-bugreport.in"
+ patch -Np1 -i "${srcdir}/libre.patch"
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ CONF_DRIVER=nouveau \
+ --prefix=/usr \
+ --sbindir=/usr/bin \
+ --sysconfdir=/etc \
+ --without-pidfile
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make install DESTDIR="$pkgdir"
+
+ # Install systemd unit
+ install -D -m644 "scripts/systemd/${pkgname}d.service" "${pkgdir}/usr/lib/systemd/system/${pkgname}d.service"
+ sed -i "s/sbin/bin/" "${pkgdir}/usr/lib/systemd/system/${pkgname}d.service"
+
+ # Make bash_completion work
+ mv -v "${pkgdir}/etc/bash_completion.d/$pkgname" "${pkgdir}/etc/bash_completion.d/optirun"
+}
diff --git a/libre/bumblebee/bumblebee.install b/libre/bumblebee/bumblebee.install
new file mode 100644
index 000000000..57aed6cc5
--- /dev/null
+++ b/libre/bumblebee/bumblebee.install
@@ -0,0 +1,16 @@
+_notice() {
+ echo "Don't forget to add yourself to the 'bumblebee' group to use Bumblebee"
+}
+
+post_upgrade() {
+ getent group "bumblebee" &>/dev/null || groupadd -r bumblebee
+}
+
+post_remove() {
+ getent group "bumblebee" &>/dev/null && groupdel bumblebee 1>/dev/null
+}
+
+post_install() {
+ post_upgrade
+ _notice
+}
diff --git a/libre/bumblebee/libre.patch b/libre/bumblebee/libre.patch
new file mode 100644
index 000000000..81d49ca33
--- /dev/null
+++ b/libre/bumblebee/libre.patch
@@ -0,0 +1,154 @@
+diff -Nur bumblebee-3.2.1.orig/Makefile.am bumblebee-3.2.1/Makefile.am
+--- bumblebee-3.2.1.orig/Makefile.am 2013-04-26 12:49:03.022174178 -0300
++++ bumblebee-3.2.1/Makefile.am 2013-04-28 17:08:11.719589284 -0300
+@@ -1,7 +1,6 @@
+ # -*- Makefile -*-
+
+ GITVERSION = $(shell "$(top_srcdir)/version.sh" "$(top_srcdir)")
+-relnotes = doc/RELEASE_NOTES_3_2_1
+
+ bumblebeedconfdir=$(sysconfdir)/bumblebee
+
+@@ -20,23 +19,16 @@
+ noinst_SCRIPTS += scripts/sysvinit/bumblebeed
+ endif
+
+-bin_SCRIPTS = scripts/bumblebee-bugreport
+-
+ xconfddir = $(bumblebeedconfdir)/xorg.conf.d
+ xconfd_DATA = conf/xorg.conf.d/10-dummy.conf
+
+ CLEANFILES = $(noinst_SCRIPTS) conf/bumblebee.conf $(bin_SCRIPTS)
+ EXTRA_DIST = scripts/systemd/bumblebeed.service.in \
+ scripts/upstart/bumblebeed.conf.in \
+- conf/99-bumblebee-nvidia-dev.rules \
+ conf/bumblebee.conf.in \
+- conf/xorg.conf.nvidia \
+ conf/xorg.conf.nouveau \
+ $(xconfd_DATA) \
+- README.markdown \
+ scripts/bash_completion/bumblebee \
+- scripts/bumblebee-bugreport.in \
+- $(relnotes) \
+ version.sh
+ # for laziness include all headers found
+ EXTRA_DIST += src/*.h src/*/switching.h
+@@ -57,17 +49,11 @@
+ src/driver.c src/bumblebeed.c
+ bin_bumblebeed_LDADD = ${x11_LIBS} ${libbsd_LIBS} ${glib_LIBS} -lrt
+
+-dist_doc_DATA = $(relnotes) README.markdown
+-bumblebeedconf_DATA = conf/bumblebee.conf conf/xorg.conf.nouveau conf/xorg.conf.nvidia
++bumblebeedconf_DATA = conf/bumblebee.conf conf/xorg.conf.nouveau
+
+ completiondir = $(sysconfdir)/bash_completion.d
+ completion_DATA = scripts/bash_completion/bumblebee
+
+-if WITH_UDEV_RULES
+-udevrulesdir = $(UDEV_RULES_DIR)
+-udevrules_DATA = conf/99-bumblebee-nvidia-dev.rules
+-endif
+-
+ do_subst = sed -e 's|[@]GITVERSION[@]|$(GITVERSION)|g' \
+ -e 's|[@]CONF_XDISP[@]|$(CONF_XDISP)|g' \
+ -e 's|[@]CONF_SOCKPATH[@]|$(CONF_SOCKPATH)|g' \
+@@ -97,10 +83,6 @@
+ mkdir -p scripts/systemd
+ $(do_subst) < $< > $@
+
+-scripts/bumblebee-bugreport: $(srcdir)/scripts/bumblebee-bugreport.in
+- mkdir -p scripts
+- $(do_subst) < $< > $@
+-
+ if WITH_PIDFILE
+ scripts/sysvinit/bumblebeed: $(srcdir)/scripts/sysvinit/bumblebeed.in
+ mkdir -p scripts/sysvinit
+diff -Nur bumblebee-3.2.1.orig/Makefile.in bumblebee-3.2.1/Makefile.in
+--- bumblebee-3.2.1.orig/Makefile.in 2013-04-26 12:49:11.306174579 -0300
++++ bumblebee-3.2.1/Makefile.in 2013-04-28 17:21:38.698898621 -0300
+@@ -220,7 +220,6 @@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ STRIP = @STRIP@
+-UDEV_RULES_DIR = @UDEV_RULES_DIR@
+ VERSION = @VERSION@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+@@ -273,7 +272,6 @@
+ x11_CFLAGS = @x11_CFLAGS@
+ x11_LIBS = @x11_LIBS@
+ GITVERSION = $(shell "$(top_srcdir)/version.sh" "$(top_srcdir)")
+-relnotes = doc/RELEASE_NOTES_3_2_1
+ bumblebeedconfdir = $(sysconfdir)/bumblebee
+ AM_CPPFLAGS = ${regular_CPPFLAGS} \
+ -DCONFIG_FILE='"$(bumblebeedconfdir)/bumblebee.conf"' \
+@@ -286,7 +284,6 @@
+
+ noinst_SCRIPTS = scripts/systemd/bumblebeed.service \
+ scripts/upstart/bumblebeed.conf $(am__append_1)
+-bin_SCRIPTS = scripts/bumblebee-bugreport
+ xconfddir = $(bumblebeedconfdir)/xorg.conf.d
+ xconfd_DATA = conf/xorg.conf.d/10-dummy.conf
+ CLEANFILES = $(noinst_SCRIPTS) conf/bumblebee.conf $(bin_SCRIPTS) \
+@@ -294,10 +291,10 @@
+ # for laziness include all headers found
+ EXTRA_DIST = scripts/systemd/bumblebeed.service.in \
+ scripts/upstart/bumblebeed.conf.in \
+- conf/99-bumblebee-nvidia-dev.rules conf/bumblebee.conf.in \
+- conf/xorg.conf.nvidia conf/xorg.conf.nouveau $(xconfd_DATA) \
+- README.markdown scripts/bash_completion/bumblebee \
+- scripts/bumblebee-bugreport.in $(relnotes) version.sh src/*.h \
++ conf/bumblebee.conf.in \
++ conf/xorg.conf.nouveau $(xconfd_DATA) \
++ scripts/bash_completion/bumblebee \
++ version.sh src/*.h \
+ src/*/switching.h $(am__append_2)
+ bin_optirun_SOURCES = src/module.c src/bbconfig.c src/bblogger.c src/bbrun.c \
+ src/bbsocket.c src/driver.c src/optirun.c src/bbsocketclient.c
+@@ -309,12 +306,9 @@
+ src/driver.c src/bumblebeed.c
+
+ bin_bumblebeed_LDADD = ${x11_LIBS} ${libbsd_LIBS} ${glib_LIBS} -lrt
+-dist_doc_DATA = $(relnotes) README.markdown
+-bumblebeedconf_DATA = conf/bumblebee.conf conf/xorg.conf.nouveau conf/xorg.conf.nvidia
++bumblebeedconf_DATA = conf/bumblebee.conf conf/xorg.conf.nouveau
+ completiondir = $(sysconfdir)/bash_completion.d
+ completion_DATA = scripts/bash_completion/bumblebee
+-@WITH_UDEV_RULES_TRUE@udevrulesdir = $(UDEV_RULES_DIR)
+-@WITH_UDEV_RULES_TRUE@udevrules_DATA = conf/99-bumblebee-nvidia-dev.rules
+ do_subst = sed -e 's|[@]GITVERSION[@]|$(GITVERSION)|g' \
+ -e 's|[@]CONF_XDISP[@]|$(CONF_XDISP)|g' \
+ -e 's|[@]CONF_SOCKPATH[@]|$(CONF_SOCKPATH)|g' \
+diff -Nur bumblebee-3.1.orig/conf/bumblebee.conf.in bumblebee-3.1/conf/bumblebee.conf.in
+--- bumblebee-3.1.orig/conf/bumblebee.conf.in 2013-02-21 17:03:35.526542613 -0200
++++ bumblebee-3.1/conf/bumblebee.conf.in 2013-04-06 06:28:48.124159386 -0300
+@@ -17,8 +17,8 @@
+ # be ignored.
+ NoEcoModeOverride=false
+ # The Driver used by Bumblebee server. If this value is not set (or empty),
+-# auto-detection is performed. The available drivers are nvidia and nouveau
+-# (See also the driver-specific sections below)
++# auto-detection is performed. The available driver is nouveau
++# (See also the driver-specific section below)
+ Driver=@CONF_DRIVER@
+
+ ## Client options. Will take effect on the next optirun executed.
+@@ -44,18 +44,6 @@
+ # none - disable PM completely
+ # https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods
+
+-## Section with nvidia driver specific options, only parsed if Driver=nvidia
+-[driver-nvidia]
+-# Module name to load, defaults to Driver if empty or unset
+-KernelDriver=@CONF_DRIVER_MODULE_NVIDIA@
+-PMMethod=@CONF_PM_METHOD@
+-# colon-separated path to the nvidia libraries
+-LibraryPath=@CONF_LDPATH_NVIDIA@
+-# comma-separated path of the directory containing nvidia_drv.so and the
+-# default Xorg modules path
+-XorgModulePath=@CONF_MODPATH_NVIDIA@
+-XorgConfFile=@BBCONFDIR@/xorg.conf.nvidia
+-
+ ## Section with nouveau driver specific options, only parsed if Driver=nouveau
+ [driver-nouveau]
+ KernelDriver=nouveau