From ebdbf93cb93ea901d843aa10e5b82ae4f6b4953d Mon Sep 17 00:00:00 2001 From: Vincent Cheng Date: Wed, 15 Jan 2014 22:14:25 +0000 Subject: [PATCH] Import primus_0~20140711-1.debian.tar.xz [dgit import tarball primus 0~20140711-1 primus_0~20140711-1.debian.tar.xz] --- bash-completion | 1 + changelog | 73 ++++++++++++++++++++++++++++++ compat | 1 + control | 56 +++++++++++++++++++++++ copyright | 39 ++++++++++++++++ docs | 2 + manpages | 1 + patches/hardening.patch | 13 ++++++ patches/series | 1 + primus-libs-ia32.lintian-overrides | 1 + rules | 46 +++++++++++++++++++ scripts/primusrun | 52 +++++++++++++++++++++ source/format | 1 + watch | 2 + 14 files changed, 289 insertions(+) create mode 100644 bash-completion create mode 100644 changelog create mode 100644 compat create mode 100644 control create mode 100644 copyright create mode 100644 docs create mode 100644 manpages create mode 100644 patches/hardening.patch create mode 100644 patches/series create mode 100644 primus-libs-ia32.lintian-overrides create mode 100755 rules create mode 100644 scripts/primusrun create mode 100644 source/format create mode 100644 watch diff --git a/bash-completion b/bash-completion new file mode 100644 index 0000000..4bbaa34 --- /dev/null +++ b/bash-completion @@ -0,0 +1 @@ +primus.bash-completion primus diff --git a/changelog b/changelog new file mode 100644 index 0000000..8876c09 --- /dev/null +++ b/changelog @@ -0,0 +1,73 @@ +primus (0~20140711-1) unstable; urgency=medium + + [ Vincent Cheng ] + * New upstream git snapshot. + - rebase on 4e000124ec + * Update email address. + * Update Standards version to 3.9.6, no changes required. + + [ Andreas Beckmann ] + * hardening.patch: New. Use all variables that contain hardening flags. + + -- Vincent Cheng Wed, 15 Jan 2014 14:14:25 -0800 + +primus (0~20131127-2) unstable; urgency=medium + + * Build with PRIMUS_UPLOAD=1 to avoid a bug triggered by using primus and + xserver-xorg-video-intel with UXA acceleration enabled (which is currently + the default with xserver-xorg-video-intel 2:2.21.15-1 in unstable). + This workaround will remain in effect until xserver-xorg-video-intel + defaults to SNA in unstable. This flag will not be set if build + environment is Ubuntu, as SNA is already enabled by default (in trusty). + + -- Vincent Cheng Tue, 07 Jan 2014 01:56:18 -0800 + +primus (0~20131127-1) unstable; urgency=medium + + * New upstream git snapshot. + - rebase on 074817614c + * Update Standards version to 3.9.5, no changes required. + + -- Vincent Cheng Mon, 06 Jan 2014 01:36:38 -0800 + +primus (0~20130904-1) unstable; urgency=low + + * New upstream git snapshot. + - rebase on da6459236b + + -- Vincent Cheng Wed, 23 Oct 2013 01:03:15 -0700 + +primus (0~20130805-1) unstable; urgency=low + + * New upstream git snapshot. + - rebase on 3f248d9f13 + + -- Vincent Cheng Tue, 20 Aug 2013 02:13:51 -0700 + +primus (0~20130601-1) unstable; urgency=low + + * New upstream git snapshot. + - rebase on 38731d5375 + - fixes FTBFS on oldstable with gcc < 4.6 (Closes: #710025) + + -- Vincent Cheng Thu, 06 Jun 2013 00:31:34 -0700 + +primus (0~20130527-1) unstable; urgency=low + + * New upstream git snapshot. + - rebase on 618acb99e0 + + -- Vincent Cheng Wed, 29 May 2013 01:49:06 -0700 + +primus (0~20130511-1) unstable; urgency=low + + * New upstream git snapshot. + - rebase on ef73dd1976 + + -- Vincent Cheng Thu, 16 May 2013 00:17:46 -0700 + +primus (0~20130427-1) unstable; urgency=low + + * Initial release. (Closes: #692597) + + -- Vincent Cheng Fri, 03 May 2013 03:26:17 -0700 diff --git a/compat b/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/compat @@ -0,0 +1 @@ +9 diff --git a/control b/control new file mode 100644 index 0000000..4269094 --- /dev/null +++ b/control @@ -0,0 +1,56 @@ +Source: primus +Section: utils +Priority: extra +Maintainer: Debian NVIDIA Maintainers +Uploaders: + Aron Xu , + Vincent Cheng , + Yunqiang Su +Build-Depends: debhelper (>= 9), bash-completion, mesa-common-dev +Standards-Version: 3.9.6 +Homepage: https://github.com/amonakov/primus +Vcs-Git: git://anonscm.debian.org/pkg-nvidia/primus.git +Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-nvidia/primus.git + +Package: primus +Architecture: i386 amd64 +Depends: ${shlibs:Depends}, ${misc:Depends}, bumblebee, socat, + primus-libs (= ${binary:Version}) +Recommends: primus-libs-ia32 [amd64] +Description: client-side GPU offloading for NVIDIA Optimus + Primus is a shared library that provides OpenGL and GLX APIs and implements + low-overhead local-only client-side OpenGL offloading via GLX forking, + similar to VirtualGL. It intercepts GLX calls and redirects GL rendering + to a secondary X display, presumably driven by a faster GPU. On swapping + buffers, rendered contents are read back using a PBO and copied onto + the drawable it was supposed to be rendered on in the first place. + . + Primus is currently intended to be used alongside Bumblebee and provides a + drop-in replacement for optirun (i.e. "primusrun"). + +Package: primus-libs +Architecture: i386 amd64 +Depends: ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Description: Shared libraries for primus + This package contains the libraries for primus which are loaded when running + primusrun. + +Package: primus-libs-ia32 +Architecture: i386 +Depends: primus-libs, ${misc:Depends} +Multi-Arch: foreign +Description: Shared libraries for primus (32-bit) + This package depends on 32-bit libraries for primus. It can safely be + removed after installation. + +Package: primus-libs-dbg +Architecture: i386 amd64 +Section: debug +Depends: primus-libs (=${binary:Version}), ${misc:Depends} +Multi-Arch: same +Description: Shared libraries for primus - debugging symbols + This package contains the libraries for primus which are loaded when running + primusrun. + . + This package contains the debugging symbols for primus-libs. diff --git a/copyright b/copyright new file mode 100644 index 0000000..37a9b5c --- /dev/null +++ b/copyright @@ -0,0 +1,39 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: primus +Source: https://github.com/amonakov/primus + +Files: * +Copyright: 2012-2013 Alexander Monakov +License: ISC + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + . + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + +Files: debian/* +Copyright: 2012 Dmitry Zhurikhin + 2013 Bruno Pagani + 2013 Vincent Cheng +License: GPL-3.0+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + On Debian systems, the complete text of the GNU General + Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". diff --git a/docs b/docs new file mode 100644 index 0000000..7daf99b --- /dev/null +++ b/docs @@ -0,0 +1,2 @@ +README.md +technotes.md diff --git a/manpages b/manpages new file mode 100644 index 0000000..b7c3def --- /dev/null +++ b/manpages @@ -0,0 +1 @@ +primusrun.1 diff --git a/patches/hardening.patch b/patches/hardening.patch new file mode 100644 index 0000000..4db58f1 --- /dev/null +++ b/patches/hardening.patch @@ -0,0 +1,13 @@ +Description: use all variables containing hardening flags +Forwarded: https://github.com/amonakov/primus/pull/148 +Author: Andreas Beckmann +Last-Update: 2014-10-25 + +--- a/Makefile ++++ b/Makefile +@@ -30,4 +30,4 @@ + + $(LIBDIR)/libGL.so.1: libglfork.cpp + mkdir -p $(LIBDIR) +- $(CXX) $(CXXFLAGS) -fvisibility=hidden -fPIC -shared -Wl,-Bsymbolic -o $@ $< -lX11 -lpthread -lrt ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fvisibility=hidden -fPIC -shared -Wl,-Bsymbolic -o $@ $< $(LDFLAGS) -lX11 -lpthread -lrt diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..814900f --- /dev/null +++ b/patches/series @@ -0,0 +1 @@ +hardening.patch diff --git a/primus-libs-ia32.lintian-overrides b/primus-libs-ia32.lintian-overrides new file mode 100644 index 0000000..6e3221c --- /dev/null +++ b/primus-libs-ia32.lintian-overrides @@ -0,0 +1 @@ +primus-libs-ia32: empty-binary-package diff --git a/rules b/rules new file mode 100755 index 0000000..fcf719a --- /dev/null +++ b/rules @@ -0,0 +1,46 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) + +ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes) + PRIMUS_libGLa=/usr/lib/$(DEB_HOST_MULTIARCH)/mesa/libGL.so.1 + PRIMUS_libGLd=/usr/lib/$(DEB_HOST_MULTIARCH)/mesa/libGL.so.1 + # =1 on 13.04/raring and earlier, 0 (default) on 13.10/saucy and later + PRIMUS_UPLOAD=0 +else + PRIMUS_libGLa=/usr/lib/$(DEB_HOST_MULTIARCH)/libGL.so.1 + PRIMUS_libGLd=/usr/lib/$(DEB_HOST_MULTIARCH)/libGL.so.1 + # PRIMUS_UPLOAD=1 set until Debian's xserver-xorg-video-intel + # defaults to SNA acceleration in unstable + PRIMUS_UPLOAD=1 +endif + +# Where to put the resulting library during build +BUILD_LIBDIR ?= lib + +%: + dh $@ --with bash-completion + +override_dh_clean: + rm -rf $(BUILD_LIBDIR) + dh_clean + +override_dh_auto_build: + dh_auto_build -- LIBDIR=$(BUILD_LIBDIR) \ + PRIMUS_libGLd=$(PRIMUS_libGLd) \ + PRIMUS_libGLa=$(PRIMUS_libGLa) \ + PRIMUS_UPLOAD=$(PRIMUS_UPLOAD) + +override_dh_install: + # Make all the paths explicitly + mkdir -p debian/primus/usr/bin/ debian/primus-libs/usr/lib/$(DEB_HOST_MULTIARCH)/primus/ + install -m 755 debian/scripts/primusrun debian/primus/usr/bin/ + cp -r $(BUILD_LIBDIR)/* debian/primus-libs/usr/lib/$(DEB_HOST_MULTIARCH)/primus/ + dh_install + +override_dh_strip: + dh_strip --dbg-package=primus-libs-dbg diff --git a/scripts/primusrun b/scripts/primusrun new file mode 100644 index 0000000..54432f3 --- /dev/null +++ b/scripts/primusrun @@ -0,0 +1,52 @@ +#!/bin/bash + +# Readback-display synchronization method +# 0: no sync, 1: D lags behind one frame, 2: fully synced +# export PRIMUS_SYNC=${PRIMUS_SYNC:-0} + +# Verbosity level +# 0: only errors, 1: warnings (default), 2: profiling +# export PRIMUS_VERBOSE=${PRIMUS_VERBOSE:-1} + +# Secondary display +# export PRIMUS_DISPLAY=${PRIMUS_DISPLAY:-:8} + +# "Accelerating" libGL +# $LIB will be interpreted by the dynamic linker +# if (which dpkg-vendor >/dev/null && dpkg-vendor --derives-from Ubuntu) || \ +# [ -e /etc/dpkg/origins/ubuntu ]; then +# # Ubuntu +# export PRIMUS_libGLa=${PRIMUS_libGLa:-'/usr/$LIB/mesa/libGL.so.1'} +# else +# # Debian +# export PRIMUS_libGLa=${PRIMUS_libGLa:-'/usr/$LIB/libGL.so.1'} +# fi + +# "Displaying" libGL +# if (which dpkg-vendor >/dev/null && dpkg-vendor --derives-from Ubuntu) || \ +# [ -e /etc/dpkg/origins/ubuntu ]; then +# # Ubuntu +# export PRIMUS_libGLa=${PRIMUS_libGLa:-'/usr/$LIB/mesa/libGL.so.1'} +# else +# # Debian +# export PRIMUS_libGLa=${PRIMUS_libGLa:-'/usr/$LIB/libGL.so.1'} +# fi + +# Directory containing primus libGL +PRIMUS_libGL=${PRIMUS_libGL:-'/usr/$LIB/primus'} + +# On some distributions, e.g. on Gentoo, libnvidia-tls.so is not available +# in default search paths. Add its path manually after the primus library +bblibs=$(echo -ne 'Q LibraryPath\0' | \ + socat - UNIX-CONNECT:/var/run/bumblebee.socket | sed 's/^Value: \(.*\)/\1/') + +PRIMUS_libGL=${PRIMUS_libGL}${bblibs:+:$bblibs} + +# Mesa drivers need a few symbols to be visible +# export PRIMUS_LOAD_GLOBAL=${PRIMUS_LOAD_GLOBAL:-'libglapi.so.0'} + +# Need functions from primus libGL to take precedence +export LD_LIBRARY_PATH=${PRIMUS_libGL}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} + +# And go! +exec "$@" diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/watch b/watch new file mode 100644 index 0000000..9ea2b04 --- /dev/null +++ b/watch @@ -0,0 +1,2 @@ +version=3 +https://github.com/amonakov/primus/tags .*/v?(\d.*)\.(?:tgz|tbz2|tar\.(?:gz|bz2|xz)) -- 2.30.2