summaryrefslogtreecommitdiff
path: root/libre/bumblebee-libre
diff options
context:
space:
mode:
Diffstat (limited to 'libre/bumblebee-libre')
-rw-r--r--libre/bumblebee-libre/PKGBUILD60
-rw-r--r--libre/bumblebee-libre/bumblebee.install16
-rw-r--r--libre/bumblebee-libre/libre.patch130
3 files changed, 206 insertions, 0 deletions
diff --git a/libre/bumblebee-libre/PKGBUILD b/libre/bumblebee-libre/PKGBUILD
new file mode 100644
index 000000000..aff067a94
--- /dev/null
+++ b/libre/bumblebee-libre/PKGBUILD
@@ -0,0 +1,60 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
+
+_pkgname=bumblebee
+pkgname=bumblebee-libre
+pkgver=3.1
+pkgrel=5.1
+pkgdesc="NVIDIA Optimus support for GNU/Linux through VirtualGL, without nonfree nvidia driver support"
+arch=('i686' 'x86_64')
+depends=('virtualgl' 'libbsd' 'glib2' 'mesa-libgl')
+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=('bumblebee')
+conflicts=('bumblebee' 'nvidia-libgl')
+provides=("bumblebee=$pkgver"'nvidia-libgl')
+url="http://www.bumblebee-project.org"
+license=("GPL3")
+install='bumblebee.install'
+backup=('etc/bumblebee/bumblebee.conf'
+ 'etc/bumblebee/xorg.conf.nouveau')
+source=("http://www.bumblebee-project.org/${_pkgname}-${pkgver}.tar.gz"
+ 'libre.patch')
+md5sums=('de515ef51b1e0714c2f1b2a95f83e77e'
+ 'f8b6044310039911236f53a625c611a6')
+
+build() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+
+ # Remove nonfree references to nonfree nvidia driver and unnecessaries files
+ rm -rv "README.markdown"
+ rm -rv "conf/"{99-remove-nvidia-dev.rules,xorg.conf.nvidia}
+ rm -rv "doc"
+ rm -rv "scripts/bumblebee-bugreport.in"
+ patch -Np1 -i "${srcdir}/libre.patch"
+
+ ./configure \
+ CONF_DRIVER=nouveau \
+ --prefix=/usr \
+ --sysconfdir=/etc
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+
+ make install DESTDIR="$pkgdir"
+
+ # Install systemd unit
+ install -D -m644 "scripts/systemd/bumblebeed.service" "${pkgdir}/usr/lib/systemd/system/bumblebeed.service"
+
+ # Make bash_completion work
+ mv -v "${pkgdir}/etc/bash_completion.d/bumblebee" "${pkgdir}/etc/bash_completion.d/optirun"
+}
diff --git a/libre/bumblebee-libre/bumblebee.install b/libre/bumblebee-libre/bumblebee.install
new file mode 100644
index 000000000..57aed6cc5
--- /dev/null
+++ b/libre/bumblebee-libre/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/libre.patch b/libre/bumblebee-libre/libre.patch
new file mode 100644
index 000000000..0952b1d11
--- /dev/null
+++ b/libre/bumblebee-libre/libre.patch
@@ -0,0 +1,130 @@
+diff -Nur bumblebee-3.1.orig/Makefile.am bumblebee-3.1/Makefile.am
+--- bumblebee-3.1.orig/Makefile.am 2013-02-24 21:29:35.055167554 -0200
++++ bumblebee-3.1/Makefile.am 2013-04-06 07:25:37.798457580 -0300
+@@ -1,7 +1,6 @@
+ # -*- Makefile -*-
+
+ GITVERSION = $(shell "$(top_srcdir)/version.sh" "$(top_srcdir)")
+-relnotes = doc/RELEASE_NOTES_3_1
+
+ bumblebeedconfdir=$(sysconfdir)/bumblebee
+
+@@ -19,19 +18,12 @@
+ noinst_SCRIPTS += scripts/sysvinit/bumblebeed
+ endif
+
+-bin_SCRIPTS = scripts/bumblebee-bugreport
+-
+ CLEANFILES = $(noinst_SCRIPTS) conf/bumblebee.conf $(bin_SCRIPTS)
+ EXTRA_DIST = scripts/systemd/bumblebeed.service.in \
+ scripts/upstart/bumblebeed.conf.in \
+- conf/99-remove-nvidia-dev.rules \
+ conf/bumblebee.conf.in \
+- conf/xorg.conf.nvidia \
+ conf/xorg.conf.nouveau \
+- 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
+@@ -52,8 +44,7 @@
+ 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
+@@ -91,10 +82,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.1.orig/Makefile.in bumblebee-3.1/Makefile.in
+--- bumblebee-3.1.orig/Makefile.in 2013-02-24 21:34:57.103561881 -0200
++++ bumblebee-3.1/Makefile.in 2013-04-06 07:23:01.600417658 -0300
+@@ -315,7 +315,6 @@
+ x11_CFLAGS = @x11_CFLAGS@
+ x11_LIBS = @x11_LIBS@
+ GITVERSION = $(shell "$(top_srcdir)/version.sh" "$(top_srcdir)")
+-relnotes = doc/RELEASE_NOTES_3_1
+ bumblebeedconfdir = $(sysconfdir)/bumblebee
+ AM_CPPFLAGS = ${regular_CPPFLAGS} \
+ -DCONFIG_FILE='"$(bumblebeedconfdir)/bumblebee.conf"' \
+@@ -327,16 +326,15 @@
+
+ noinst_SCRIPTS = scripts/systemd/bumblebeed.service \
+ scripts/upstart/bumblebeed.conf $(am__append_1)
+-bin_SCRIPTS = scripts/bumblebee-bugreport
+ CLEANFILES = $(noinst_SCRIPTS) conf/bumblebee.conf $(bin_SCRIPTS) \
+ $(am__append_3)
+ # for laziness include all headers found
+ EXTRA_DIST = scripts/systemd/bumblebeed.service.in \
+ scripts/upstart/bumblebeed.conf.in \
+- conf/99-remove-nvidia-dev.rules conf/bumblebee.conf.in \
+- conf/xorg.conf.nvidia conf/xorg.conf.nouveau README.markdown \
++ conf/bumblebee.conf.in \
++ conf/xorg.conf.nouveau \
+ scripts/bash_completion/bumblebee \
+- scripts/bumblebee-bugreport.in $(relnotes) version.sh src/*.h \
++ scripts/bumblebee-bugreport.in 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
+@@ -348,12 +346,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-remove-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