From 0591c8fcc06ce49eda05b744f9cd507b02856b56 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Sat, 5 Jan 2019 10:29:10 +0000 Subject: [PATCH] Import primus_0~20150328-7.debian.tar.xz [dgit import tarball primus 0~20150328-7 primus_0~20150328-7.debian.tar.xz] --- changelog | 143 +++++++++++++++++++++++++++++ control | 55 +++++++++++ copyright | 39 ++++++++ docs | 2 + manpages | 1 + patches/hardening.patch | 13 +++ patches/series | 1 + primus-libs-ia32.lintian-overrides | 1 + primus.maintscript | 1 + rules | 46 ++++++++++ scripts/primusrun | 52 +++++++++++ source/format | 1 + watch | 2 + 13 files changed, 357 insertions(+) create mode 100644 changelog 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 100644 primus.maintscript create mode 100755 rules create mode 100644 scripts/primusrun create mode 100644 source/format create mode 100644 watch diff --git a/changelog b/changelog new file mode 100644 index 0000000..665b8ff --- /dev/null +++ b/changelog @@ -0,0 +1,143 @@ +primus (0~20150328-7) unstable; urgency=medium + + [ Andreas Beckmann ] + * Switch Vcs-* URLs to salsa.debian.org. + * Set Rules-Requires-Root: no. + * The dbgsym migration was done in stretch. + * Extend the Breaks and Suggests to the NVIDIA 390xx legacy driver. + + [ Luca Boccassi ] + * Switch to debhelper compat level 11. + * Bump Standards-Version to 4.3.0, no changes. + + -- Luca Boccassi Sat, 05 Jan 2019 11:29:10 +0100 + +primus (0~20150328-6) unstable; urgency=medium + + * Bump Standards-Version to 4.1.3, no changes. + * Break: nvidia-driver-libs and suggest nvidia-driver-libs-nonglvnd. + (Closes: #888020) + + -- Luca Boccassi Mon, 22 Jan 2018 21:09:34 +0000 + +primus (0~20150328-5) unstable; urgency=medium + + * Switch to @debian.org email address. + * Switch priority from "extra" to "optional" to comply with policy 4.0.1. + * Use https for Vcs fields in d/control. + * Use https for the d/copyright format field to comply with policy 4.0.0. + * Bump Standards-Version to 4.1.1. + * Do not install primus with the GLVND-enabled Nvidia packages, as they + are not quite compatible yet. (Closes: #876033) + + -- Luca Boccassi Tue, 10 Oct 2017 20:46:09 +0100 + +primus (0~20150328-4) unstable; urgency=medium + + * Depend alternatively on xserver-xorg-video-intel or + xserver-xorg-core >= 2:1.18.3-2, as both enable SNA by default. + + -- Luca Boccassi Fri, 22 Jul 2016 08:37:15 +0100 + +primus (0~20150328-3) unstable; urgency=medium + + * Move xserver-xorg-video-intel dependency from primus-libs to primus. + (Closes: #831640) + + -- Luca Boccassi Mon, 18 Jul 2016 09:30:57 +0100 + +primus (0~20150328-2) unstable; urgency=medium + + * Add myself to Uploaders. + * Bump Standards-Version to 3.9.8, no changes. + * Remove -dbg package in favour of -dbgsym. + * Add dependency to xserver-xorg-video-intel >= 2.99.17 for SNA. + + -- Luca Boccassi Sun, 17 Jul 2016 18:28:11 +0100 + +primus (0~20150328-1) unstable; urgency=medium + + * New upstream git snapshot. + - rebase on d1afbf6fce + - refresh hardening.patch + * Build with PRIMUS_UPLOAD=0 now that xserver-xorg-video-intel in sid has + SNA enabled by default. + * Add dependency on libgl1-mesa-glx to primus-libs. (LP: #1383909) + * Move bumblebee bash-completion file from obsolete /etc/bash_completion.d/ + to /usr/share/bash-completion/completions/. + + -- Vincent Cheng Sat, 25 Jul 2015 20:42:42 -0700 + +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/control b/control new file mode 100644 index 0000000..4fcfc8f --- /dev/null +++ b/control @@ -0,0 +1,55 @@ +Source: primus +Section: utils +Priority: optional +Maintainer: Debian NVIDIA Maintainers +Uploaders: + Aron Xu , + Vincent Cheng , + Yunqiang Su , + Luca Boccassi +Build-Depends: debhelper-compat (= 11), mesa-common-dev +Rules-Requires-Root: no +Standards-Version: 4.3.0 +Homepage: https://github.com/amonakov/primus +Vcs-Browser: https://salsa.debian.org/nvidia-team/primus +Vcs-Git: https://salsa.debian.org/nvidia-team/primus.git + +Package: primus +Architecture: i386 amd64 +Depends: ${shlibs:Depends}, ${misc:Depends}, bumblebee, socat, + primus-libs (= ${binary:Version}), + xserver-xorg-core (>= 2:1.18.3-2) | xserver-xorg-video-intel (>= 2:2.99.917), +Recommends: primus-libs-ia32 [amd64] +Breaks: + libgl1-nvidia-glvnd-glx (>= 0), + nvidia-driver-libs (>= 0), + libgl1-nvidia-legacy-390xx-glvnd-glx (>= 0), + nvidia-legacy-390xx-driver-libs (>= 0), +Suggests: + nvidia-driver-libs-nonglvnd | nvidia-legacy-390xx-driver-libs-nonglvnd +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}, libgl1-mesa-glx +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. diff --git a/copyright b/copyright new file mode 100644 index 0000000..5512708 --- /dev/null +++ b/copyright @@ -0,0 +1,39 @@ +Format: https://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..2c04972 --- /dev/null +++ b/patches/hardening.patch @@ -0,0 +1,13 @@ +Description: use all variables containing hardening flags +Forwarded: https://github.com/amonakov/primus/pull/174 +Author: Andreas Beckmann +Last-Update: 2015-07-25 + +--- a/Makefile ++++ b/Makefile +@@ -30,4 +30,4 @@ CXXFLAGS += -DPRIMUS_libGLd='"$(PRIMUS_libGLd)"' + + $(LIBDIR)/libGL.so.1: libglfork.cpp + mkdir -p $(LIBDIR) +- $(CXX) $(CPPFLAGS) $(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/primus.maintscript b/primus.maintscript new file mode 100644 index 0000000..22060ac --- /dev/null +++ b/primus.maintscript @@ -0,0 +1 @@ +rm_conffile /etc/bash_completion.d/primus 0~20150328-1~ diff --git a/rules b/rules new file mode 100755 index 0000000..15c2260 --- /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 + # =1 on 8/jessie and earlier, 0 (default) on 9/stretch and later + PRIMUS_UPLOAD=0 +endif + +# Where to put the resulting library during build +BUILD_LIBDIR ?= lib + +%: + dh $@ + +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/ + # Install bash-completion file + mkdir -p debian/primus/usr/share/bash-completion/completions/ + mv primus.bash-completion debian/primus/usr/share/bash-completion/completions/primus + + dh_install 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