[pipelight] initial import (#1117403)
Björn Esser
besser82 at fedoraproject.org
Tue Jul 8 20:20:18 UTC 2014
commit 1e22402cfe8fa3eec59b4408fc96e066a84f605b
Author: Björn Esser <bjoern.esser at gmail.com>
Date: Tue Jul 8 22:19:08 2014 +0200
initial import (#1117403)
.gitignore | 5 +
...ght-0.2.7.1_fix-missing-call-to-setgroups.patch | 59 ++
pipelight-0.2.7.1_improve-buildsys.patch | 651 ++++++++++++++++++++
pipelight-0.2.7.1_use-symlinks.patch | 13 +
pipelight.spec | 131 ++++
sources | 1 +
6 files changed, 860 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..090749b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,5 @@
+*~
+*.rpm
+*.tar*
+*.zip
+results_*/
diff --git a/pipelight-0.2.7.1_fix-missing-call-to-setgroups.patch b/pipelight-0.2.7.1_fix-missing-call-to-setgroups.patch
new file mode 100644
index 0000000..bffdfc7
--- /dev/null
+++ b/pipelight-0.2.7.1_fix-missing-call-to-setgroups.patch
@@ -0,0 +1,59 @@
+Index: mmueller2012-pipelight-e2362eb15df6/src/linux/basicplugin.c
+===================================================================
+--- mmueller2012-pipelight-e2362eb15df6.orig/src/linux/basicplugin.c
++++ mmueller2012-pipelight-e2362eb15df6/src/linux/basicplugin.c
+@@ -40,6 +40,7 @@
+ #include <sys/types.h>
+ #include <sys/wait.h>
+ #include <unistd.h> // for POSIX api
++#include <grp.h> // for setgroups()
+ #include <iostream> // for std::ios_base
+ #include <string> // for std::string
+ #include <errno.h>
+@@ -160,16 +161,42 @@ void checkPermissions(){
+ DBG_WARN("-------------------------------------------------------");
+ }
+
+- if (uid != euid){
+- if (setuid(uid) != 0 || geteuid() != uid)
+- result = false;
+- }
++ /* missing-call-to-setgroups-before-setuid
++ * This executable is calling setuid and setgid without setgroups
++ * or initgroups. There is a high probability this mean it didn't
++ * relinquish all groups, and this would be a potential security
++ * issue to be fixed. Seek POS36-C on the web for details about
++ * the problem.
++ *
++ * When dropping privileges from root, the `setgroups` call will
++ * remove any extraneous groups. If we don't call this, then
++ * even though our uid has dropped, we may still have groups
++ * that enable us to do super-user things. This will fail if we
++ * aren't root, so don't bother checking the return value, this
++ * is just done as an optimistic privilege dropping function.
++ *
++ */
++
++ setgroups(0, NULL);
++
++ /* Order is important! First call setgid(), last call setuid().
++ * The setgid() function must be run with superuser privileges,
++ * but first calling setuid() leaves the effective user ID as
++ * nonzero. As a result, if a vulnerability is discovered in the
++ * program that allows for the execution of arbitrary code, an
++ * attacker can regain the original group privileges.
++ */
+
+ if (gid != egid){
+ if (setgid(gid) != 0 || getegid() != gid)
+ result = false;
+ }
+
++ if (uid != euid){
++ if (setuid(uid) != 0 || geteuid() != uid)
++ result = false;
++ }
++
+ if (!result)
+ DBG_ERROR("failed to set permissions to uid=%d, gid=%d.", uid, gid);
+ }
diff --git a/pipelight-0.2.7.1_improve-buildsys.patch b/pipelight-0.2.7.1_improve-buildsys.patch
new file mode 100644
index 0000000..6334838
--- /dev/null
+++ b/pipelight-0.2.7.1_improve-buildsys.patch
@@ -0,0 +1,651 @@
+Index: mmueller2012-pipelight-e2362eb15df6/Makefile
+===================================================================
+--- mmueller2012-pipelight-e2362eb15df6.orig/Makefile
++++ mmueller2012-pipelight-e2362eb15df6/Makefile
+@@ -1,8 +1,21 @@
++-include config.make
++
+ PLUGIN_CONFIGS=$(wildcard share/configs/*.in)
+ PLUGIN_SCRIPTS=$(wildcard share/scripts/*.in)
+ PLUGIN_LICENSES=$(wildcard share/licenses/*.in)
+
+--include config.make
++SED_OPTS := -e 's|@@BASH@@|$(bashinterp)|g' \
++ -e 's|@@BINDIR@@|$(bindir)|g' \
++ -e 's|@@DATADIR@@|$(datadir)|g' \
++ -e 's|@@GCC_RUNTIME_DLLS@@|$(gccruntimedlls)|g' \
++ -e 's|@@LIBDIR@@|$(libdir)|g' \
++ -e 's|@@MANDIR@@|$(mandir)|g' \
++ -e 's|@@MOZ_PLUGIN_PATH@@|$(mozpluginpath)|g' \
++ -e 's|@@PIPELIGHT_LIBRARY_PATH@@|$(libdir)/pipelight/|g' \
++ -e 's|@@PIPELIGHT_SHARE_PATH@@|$(datadir)/pipelight|g' \
++ -e 's|@@PREFIX@@|$(prefix)|g' \
++ -e 's|@@QUIET_INSTALLATION@@|$(quietinstallation)|g' \
++ -e 's|@@VERSION@@|$(version)|g'
+
+ PROGRAMS := pluginloader32 winecheck32
+ ifeq ($(win64),true)
+@@ -30,111 +43,131 @@ linux: config.make
+
+ .PHONY: pluginloader32
+ pluginloader32: config.make
+- $(MAKE) -C src/windows wincxx="$(win32cxx)" winflags="$(win32flags)" suffix=""
++ $(MAKE) -C src/windows mingw_cxxflags="$(mingw_cxxflags)" wincxx="$(win32cxx)" winflags="$(win32flags)" suffix=""
+
+ .PHONY: pluginloader64
+ pluginloader64: config.make
+- $(MAKE) -C src/windows wincxx="$(win64cxx)" winflags="$(win64flags)" suffix="64"
++ $(MAKE) -C src/windows mingw_cxxflags="$(mingw_cxxflags)" wincxx="$(win64cxx)" winflags="$(win64flags)" suffix="64"
+
+ .PHONY: winecheck32
+ winecheck32: config.make
+- $(MAKE) -C src/winecheck wincxx="$(win32cxx)" winflags="$(win32flags)" suffix=""
++ $(MAKE) -C src/winecheck mingw_cxxflags="$(mingw_cxxflags)" wincxx="$(win32cxx)" winflags="$(win32flags)" suffix=""
+
+ .PHONY: winecheck64
+ winecheck64: config.make
+- $(MAKE) -C src/winecheck wincxx="$(win64cxx)" winflags="$(win64flags)" suffix="64"
++ $(MAKE) -C src/winecheck mingw_cxxflags="$(mingw_cxxflags)" wincxx="$(win64cxx)" winflags="$(win64flags)" suffix="64"
+
+ .PHONY: install
+ install: config.make all
+- mkdir -p "$(DESTDIR)$(prefix)/share/pipelight"
+- mkdir -p "$(DESTDIR)$(prefix)/share/pipelight/configs"
+- mkdir -p "$(DESTDIR)$(prefix)/share/pipelight/licenses"
+- mkdir -p "$(DESTDIR)$(prefix)/share/pipelight/scripts"
+- mkdir -p "$(DESTDIR)$(prefix)/lib/pipelight"
+- mkdir -p "$(DESTDIR)$(prefix)/bin"
+- mkdir -p "$(DESTDIR)$(prefix)/share/man/man1"
+- mkdir -p "$(DESTDIR)$(mozpluginpath)"
+-
+- install -m 0644 share/sig-install-dependency.gpg "$(DESTDIR)$(prefix)/share/pipelight/sig-install-dependency.gpg"
+-
+- install -m 0755 "src/windows/pluginloader.exe" "$(DESTDIR)$(prefix)/share/pipelight/pluginloader.exe"
+- if [ "$(win64)" = "true" ]; then \
+- install -m 0755 "src/windows/pluginloader64.exe" "$(DESTDIR)$(prefix)/share/pipelight/pluginloader64.exe"; \
++ mkdir -p "$(DESTDIR)$(bindir)" \
++ "$(DESTDIR)$(datadir)/pipelight/configs" \
++ "$(DESTDIR)$(datadir)/pipelight/licenses" \
++ "$(DESTDIR)$(datadir)/pipelight/scripts" \
++ "$(DESTDIR)$(libdir)/pipelight" \
++ "$(DESTDIR)$(mandir)/man1" \
++ "$(DESTDIR)$(mozpluginpath)"
++
++ install -pm 0644 share/sig-install-dependency.gpg \
++ "$(DESTDIR)$(datadir)/pipelight/sig-install-dependency.gpg"
++
++ install -pm 0755 "src/windows/pluginloader.exe" \
++ "$(DESTDIR)$(datadir)/pipelight/pluginloader.exe"
++ if [ "$(win64)" = "true" ]; then \
++ install -pm 0755 "src/windows/pluginloader64.exe" \
++ "$(DESTDIR)$(datadir)/pipelight/pluginloader64.exe" ; \
+ fi
+
+- install -m 0755 "src/winecheck/winecheck.exe" "$(DESTDIR)$(prefix)/share/pipelight/winecheck.exe"
+- if [ "$(win64)" = "true" ]; then \
+- install -m 0755 "src/winecheck/winecheck64.exe" "$(DESTDIR)$(prefix)/share/pipelight/winecheck64.exe"; \
++ install -pm 0755 "src/winecheck/winecheck.exe" \
++ "$(DESTDIR)$(datadir)/pipelight/winecheck.exe"
++ if [ "$(win64)" = "true" ] ; then \
++ install -pm 0755 "src/winecheck/winecheck64.exe" \
++ "$(DESTDIR)$(datadir)/pipelight/winecheck64.exe"; \
+ fi
+
+- rm -f "$(DESTDIR)$(prefix)/share/pipelight/wine"
+- ln -s "$(winepath)" "$(DESTDIR)$(prefix)/share/pipelight/wine"
+- if [ "$(win64)" = "true" ]; then \
+- rm -f "$(DESTDIR)$(prefix)/share/pipelight/wine64"; \
+- ln -s "$(wine64path)" "$(DESTDIR)$(prefix)/share/pipelight/wine64"; \
++ rm -f "$(DESTDIR)$(datadir)/pipelight/wine"
++ ln -s "$(winepath)" "$(DESTDIR)$(datadir)/pipelight/wine"
++ if [ "$(win64)" = "true" ]; then \
++ rm -f "$(DESTDIR)$(datadir)/pipelight/wine64" ; \
++ ln -s "$(wine64path)" "$(DESTDIR)$(datadir)/pipelight/wine64" ; \
+ fi
+
+- install -m 0755 share/install-dependency "$(DESTDIR)$(prefix)/share/pipelight/install-dependency"
++ install -pm 0755 share/install-dependency \
++ "$(DESTDIR)$(datadir)/pipelight/install-dependency"
+
+- for script in $(notdir $(PLUGIN_SCRIPTS)); do \
+- sed 's|@@PIPELIGHT_SHARE_PATH@@|$(prefix)/share/pipelight|g' share/scripts/$${script} > pipelight-script.tmp; \
+- install -m 0755 pipelight-script.tmp "$(DESTDIR)$(prefix)/share/pipelight/scripts/$${script%.*}" || exit 1; \
+- rm pipelight-script.tmp; \
++ for script in $(notdir $(PLUGIN_SCRIPTS)) ; do \
++ sed $(SED_OPTS) \
++ < share/scripts/$${script} > pipelight-script.tmp ; \
++ touch -r share/scripts/$${script} pipelight-script.tmp ; \
++ install -pm 0755 pipelight-script.tmp \
++ "$(DESTDIR)$(datadir)/pipelight/scripts/$${script%.*}" || \
++ exit 1 ; \
++ rm pipelight-script.tmp ; \
+ done
+
+- for config in $(notdir $(PLUGIN_CONFIGS)); do \
+- sed 's|@@GCC_RUNTIME_DLLS@@|$(gccruntimedlls)|g' share/configs/$${config} > pipelight-config.tmp; \
+- sed -i'' -e 's|@@QUIET_INSTALLATION@@|$(quietinstallation)|g' pipelight-config.tmp; \
+- install -m 0644 pipelight-config.tmp "$(DESTDIR)$(prefix)/share/pipelight/configs/$${config%.*}" || exit 1; \
+- rm pipelight-config.tmp; \
++ for config in $(notdir $(PLUGIN_CONFIGS)) ; do \
++ sed $(SED_OPTS) \
++ < share/configs/$${config} > pipelight-config.tmp ; \
++ touch -r share/configs/$${config} pipelight-config.tmp ; \
++ install -pm 0644 pipelight-config.tmp \
++ "$(DESTDIR)$(datadir)/pipelight/configs/$${config%.*}" || \
++ exit 1 ; \
++ rm pipelight-config.tmp ; \
+ done
+
+- for license in $(notdir $(PLUGIN_LICENSES)); do \
+- sed 's|@@PIPELIGHT_SHARE_PATH@@|$(prefix)/share/pipelight|g' share/licenses/$${license} > pipelight-license.tmp; \
+- install -m 0644 pipelight-license.tmp "$(DESTDIR)$(prefix)/share/pipelight/licenses/$${license%.*}" || exit 1; \
+- rm pipelight-license.tmp; \
++ for license in $(notdir $(PLUGIN_LICENSES)) ; do \
++ sed $(SED_OPTS) \
++ < share/licenses/$${license} > pipelight-license.tmp ; \
++ touch -r share/licenses/$${license} pipelight-license.tmp ; \
++ install -pm 0644 pipelight-license.tmp \
++ "$(DESTDIR)$(datadir)/pipelight/licenses/$${license%.*}" || \
++ exit 1 ; \
++ rm pipelight-license.tmp ; \
+ done
+
+- install -m 0644 src/linux/libpipelight.so "$(DESTDIR)$(prefix)/lib/pipelight/libpipelight.so"
++ install -pm 0755 src/linux/libpipelight.so \
++ "$(DESTDIR)$(libdir)/pipelight/libpipelight.so"
+
+- sed 's|@@VERSION@@|$(version)|g' bin/pipelight-plugin.in > pipelight-plugin.tmp
+- sed -i'' -e 's|@@PIPELIGHT_SHARE_PATH@@|$(prefix)/share/pipelight|g' pipelight-plugin.tmp
+- sed -i'' -e 's|@@PIPELIGHT_LIBRARY_PATH@@|$(prefix)/lib/pipelight/|g' pipelight-plugin.tmp
+- sed -i'' -e 's|@@MOZ_PLUGIN_PATH@@|$(mozpluginpath)|g' pipelight-plugin.tmp
+- install -m 0755 pipelight-plugin.tmp "$(DESTDIR)$(prefix)/bin/pipelight-plugin"
++ sed $(SED_OPTS) \
++ < bin/pipelight-plugin.in > pipelight-plugin.tmp
++ touch -r bin/pipelight-plugin.in pipelight-plugin.tmp
++ install -pm 0755 pipelight-plugin.tmp \
++ "$(DESTDIR)$(bindir)/pipelight-plugin"
+ rm pipelight-plugin.tmp
+
+- sed 's|@@VERSION@@|$(version)|g' pipelight-plugin.1.in > pipelight-manpage.tmp
+- sed -i'' -e 's|@@PREFIX@@|$(prefix)|g' pipelight-manpage.tmp
+- install -m 0644 pipelight-manpage.tmp "$(DESTDIR)$(prefix)/share/man/man1/pipelight-plugin.1"
++ sed $(SED_OPTS) \
++ < pipelight-plugin.1.in > pipelight-manpage.tmp
++ touch -r pipelight-plugin.1.in pipelight-manpage.tmp
++ install -pm 0644 pipelight-manpage.tmp \
++ "$(DESTDIR)$(mandir)/man1/pipelight-plugin.1"
+ rm pipelight-manpage.tmp
+
+ .PHONY: uninstall
+ uninstall: config.make
+- rm -f "$(DESTDIR)$(prefix)/share/pipelight/sig-install-dependency.gpg"
+- rm -f "$(DESTDIR)$(prefix)/share/pipelight/pluginloader.exe"
+- rm -f "$(DESTDIR)$(prefix)/share/pipelight/pluginloader64.exe"
+- rm -f "$(DESTDIR)$(prefix)/share/pipelight/winecheck.exe"
+- rm -f "$(DESTDIR)$(prefix)/share/pipelight/winecheck64.exe"
+- rm -f "$(DESTDIR)$(prefix)/share/pipelight/install-dependency"
+- rm -f "$(DESTDIR)$(prefix)/share/pipelight/wine"
+- rm -f "$(DESTDIR)$(prefix)/share/pipelight/wine64"
+- rm -f $(DESTDIR)$(prefix)/share/pipelight/scripts/configure-*
+- rm -f $(DESTDIR)$(prefix)/share/pipelight/configs/pipelight-*
+- rm -f $(DESTDIR)$(prefix)/share/pipelight/licenses/license-*
+- rm -f "$(DESTDIR)$(prefix)/lib/pipelight/libpipelight.so"
+- rm -f "$(DESTDIR)$(prefix)/bin/pipelight-plugin"
+- rm -f "$(DESTDIR)$(prefix)/share/man/man1/pipelight-plugin.1"
+-
+- rmdir --ignore-fail-on-non-empty "$(DESTDIR)$(prefix)/share/pipelight/configs"
+- rmdir --ignore-fail-on-non-empty "$(DESTDIR)$(prefix)/share/pipelight/licenses"
+- rmdir --ignore-fail-on-non-empty "$(DESTDIR)$(prefix)/share/pipelight/scripts"
+- rmdir --ignore-fail-on-non-empty "$(DESTDIR)$(prefix)/share/pipelight"
+- rmdir --ignore-fail-on-non-empty "$(DESTDIR)$(prefix)/lib/pipelight"
+- rmdir --ignore-fail-on-non-empty "$(DESTDIR)$(mozpluginpath)"
++ rm -f "$(DESTDIR)$(datadir)/pipelight/sig-install-dependency.gpg" \
++ "$(DESTDIR)$(datadir)/pipelight/pluginloader.exe" \
++ "$(DESTDIR)$(datadir)/pipelight/pluginloader64.exe" \
++ "$(DESTDIR)$(datadir)/pipelight/winecheck.exe" \
++ "$(DESTDIR)$(datadir)/pipelight/winecheck64.exe" \
++ "$(DESTDIR)$(datadir)/pipelight/install-dependency" \
++ "$(DESTDIR)$(datadir)/pipelight/wine" \
++ "$(DESTDIR)$(datadir)/pipelight/wine64" \
++ $(DESTDIR)$(datadir)/pipelight/scripts/configure-* \
++ $(DESTDIR)$(datadir)/pipelight/configs/pipelight-* \
++ $(DESTDIR)$(datadir)/pipelight/licenses/license-* \
++ "$(DESTDIR)$(libdir)/pipelight/libpipelight.so" \
++ "$(DESTDIR)$(bindir)/pipelight-plugin" \
++ "$(DESTDIR)$(mandir)/man1/pipelight-plugin.1"
++
++ rmdir --ignore-fail-on-non-empty \
++ "$(DESTDIR)$(datadir)/pipelight/configs" \
++ "$(DESTDIR)$(datadir)/pipelight/licenses" \
++ "$(DESTDIR)$(datadir)/pipelight/scripts" \
++ "$(DESTDIR)$(datadir)/pipelight" \
++ "$(DESTDIR)$(libdir)/pipelight" \
++ "$(DESTDIR)$(mozpluginpath)"
+
+ .PHONY: clean
+ clean:
+- for dir in src/linux src/windows src/winecheck; do \
+- $(MAKE) -C $$dir $@; \
++ for dir in src/linux src/windows src/winecheck; do \
++ $(MAKE) -C $$dir $@; \
+ done
+Index: mmueller2012-pipelight-e2362eb15df6/configure
+===================================================================
+--- mmueller2012-pipelight-e2362eb15df6.orig/configure
++++ mmueller2012-pipelight-e2362eb15df6/configure
+@@ -3,10 +3,20 @@
+ # Default configuration
+ version="unknown"
+ prefix="/usr/local"
++bindir="$prefix/bin"
++datadir="$prefix/share"
++libdir="$prefix/lib"
++mandir="$prefix/share/man"
+ mozpluginpath="/usr/lib/mozilla/plugins"
++bashinterp="$(which bash)"
+ gccruntimedlls=""
+ cxx=""
+
++mingw_cxxflags="$(echo $CXXFLAGS | \
++ sed -e 's!-fstack-protector\(.[a-zA-Z0-9]*\)! !g' \
++ -e 's!-m\([0-9]\|arch\|float-abi\|fpu\|tune\)[=]*\([a-zA-Z0-9-]*\)! !g' \
++ -e 's![ \t]\+! !g' -e 's!\(^[ \t]*\|[ \t]*$\)!!g')"
++
+ win32cxx=""
+ win32flags="-m32"
+ win32static=0
+@@ -26,10 +36,11 @@ downloader=""
+ usage ()
+ {
+ echo ""
+- echo "Usage: ./configure [--prefix=PREFIX] [--debug]"
++ echo "Usage: ./configure [--prefix=PREFIX] [--bindir=PATH] [--datadir=PATH]"
++ echo " [--libdir=PATH] [--mandir=PATH] [--bash-interp=PATH]"
+ echo " [--moz-plugin-path=PATH] [--gcc-runtime-dlls=PATH]"
+ echo " [--show-installation-dialogs] [--no-gpu-accel]"
+- echo " [--cxx] [--downloader]"
++ echo " [--cxx] [--mingw-cxxflags=FLAGS] [--downloader] [--debug]"
+ echo " 32-bit options:"
+ echo " [--win32-prebuilt] [--win32-cxx=COMPILER]"
+ echo " [--win32-static] [--win32-flags=FLAGS]"
+@@ -52,6 +63,48 @@ while [[ $# > 0 ]] ; do
+ prefix="$1"; shift
+ ;;
+
++ --bindir=*)
++ bindir="${CMD#*=}"
++ ;;
++ --bindir)
++ bindir="$1"; shift
++ ;;
++
++ --datadir=*)
++ datadir="${CMD#*=}"
++ ;;
++ --datadir)
++ datadir="$1"; shift
++ ;;
++
++ --libdir=*)
++ libdir="${CMD#*=}"
++ ;;
++ --libdir)
++ libdir="$1"; shift
++ ;;
++
++ --mandir=*)
++ mandir="${CMD#*=}"
++ ;;
++ --mandir)
++ mandir="$1"; shift
++ ;;
++
++ --bash-interp=*)
++ bash_interp="${CMD#*=}"
++ ;;
++ --bash-interp)
++ bash_interp="$1"; shift
++ ;;
++
++ --mingw-cxxflags=*)
++ mingw_cxxflags="${CMD#*=}"
++ ;;
++ --mingw-cxxflags)
++ mingw_cxxflags="$1"; shift
++ ;;
++
+ --wine-path=*)
+ winepath="${CMD#*=}"
+ ;;
+@@ -59,6 +112,13 @@ while [[ $# > 0 ]] ; do
+ winepath="$1"; shift
+ ;;
+
++ --wine64-path=*)
++ wine64path="${CMD#*=}"
++ ;;
++ --wine64-path)
++ wine64path="$1"; shift
++ ;;
++
+ --moz-plugin-path=*)
+ mozpluginpath="${CMD#*=}"
+ ;;
+@@ -270,15 +330,24 @@ resolvepath()
+
+ # Normalize the paths
+ prefix=$(resolvepath "$prefix")
++bindir=$(resolvepath "$bindir")
++datadir=$(resolvepath "$datadir")
++libdir=$(resolvepath "$libdir")
++mandir=$(resolvepath "$mandir")
+ winepath=$(resolvepath "$winepath")
+ wine64path=$(resolvepath "$wine64path")
+ mozpluginpath=$(resolvepath "$mozpluginpath")
+ gccruntimedlls=$(resolvepath "$gccruntimedlls")
++bash_interp=$(resolvepath "$bash_interp")
+
+ (
+ echo "# General"
+ echo "version=$version"
+ echo "prefix=$prefix"
++ echo "bindir=$bindir"
++ echo "datadir=$datadir"
++ echo "libdir=$libdir"
++ echo "mandir=$mandir"
+ echo
+ echo "# Prebuilt"
+ echo "downloader=$downloader"
+@@ -298,6 +367,8 @@ gccruntimedlls=$(resolvepath "$gccruntim
+ echo "wine64path=$wine64path"
+ echo ""
+ echo "# Other settings"
++ echo "bashinterp=$bashinterp"
++ echo "mingw_cxxflags=$mingw_cxxflags"
+ echo "mozpluginpath=$mozpluginpath"
+ echo "gccruntimedlls=$gccruntimedlls"
+ echo "quietinstallation=$quietinstallation"
+Index: mmueller2012-pipelight-e2362eb15df6/src/linux/Makefile
+===================================================================
+--- mmueller2012-pipelight-e2362eb15df6.orig/src/linux/Makefile
++++ mmueller2012-pipelight-e2362eb15df6/src/linux/Makefile
+@@ -1,28 +1,34 @@
+ CXX ?= g++
+ UNAME_S := $(shell uname -s)
+
++CXXFLAGS := -Wall -fPIC -std=gnu++0x \
++ -DPIPELIGHT_SHARE_PATH='"$(datadir)/pipelight"' $(CXXFLAGS)
++
++LDFLAGS := -lpthread $(LDFLAGS)
++
+ ifeq ($(UNAME_S), FreeBSD)
+- CXXFLAGS += -I/usr/local/include
+- LDFLAGS += -L/usr/local/lib
++ CXXFLAGS := -I/usr/local/include $(CXXFLAGS)
++ LDFLAGS := -L/usr/local/lib $(LDFLAGS)
+ endif
+
+-CXXFLAGS += -Wall -fPIC -std=gnu++0x
+-LDFLAGS += -lpthread
+-OBJECTS := common.o basicplugin.o configloader.o diagnostic.o npclass.o nppfunctions.o
+-COMMONHDR := ../common/common.h ../npapi-headers/npapi.h ../npapi-headers/npfunctions.h ../npapi-headers/npruntime.h ../npapi-headers/nptypes.h
+-
+ ifneq ($(UNAME_S),Darwin)
+- LDFLAGS += -lX11
++ LDFLAGS := -lX11 $(LDFLAGS)
+ endif
+ ifneq ($(UNAME_S),FreeBSD)
+- LDFLAGS += -ldl
++ LDFLAGS := -ldl $(LDFLAGS)
+ endif
+
++OBJECTS := common.o basicplugin.o configloader.o diagnostic.o npclass.o \
++ nppfunctions.o
++COMMONHDR := ../common/common.h ../npapi-headers/npapi.h \
++ ../npapi-headers/npfunctions.h ../npapi-headers/npruntime.h \
++ ../npapi-headers/nptypes.h
++
+ .PHONY: all
+ all: libpipelight.so
+
+ libpipelight.so: $(OBJECTS)
+- $(CXX) -shared $(OBJECTS) $(LDFLAGS) -o libpipelight.so
++ $(CXX) -shared $(CXXFLAGS) $(LDFLAGS) $(OBJECTS) -o libpipelight.so
+
+ common.o: ../common/common.c $(COMMONHDR)
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c ../common/common.c -o common.o
+@@ -31,7 +37,7 @@ basicplugin.o: basicplugin.c basicplugin
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c basicplugin.c -o basicplugin.o
+
+ configloader.o: configloader.c configloader.h $(COMMONHDR)
+- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -DPIPELIGHT_SHARE_PATH='"$(prefix)/share/pipelight"' -c configloader.c -o configloader.o
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c configloader.c -o configloader.o
+
+ diagnostic.o: diagnostic.c diagnostic.h basicplugin.h configloader.h $(COMMONHDR)
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c diagnostic.c -o diagnostic.o
+Index: mmueller2012-pipelight-e2362eb15df6/src/windows/Makefile
+===================================================================
+--- mmueller2012-pipelight-e2362eb15df6.orig/src/windows/Makefile
++++ mmueller2012-pipelight-e2362eb15df6/src/windows/Makefile
+@@ -1,9 +1,14 @@
+ suffix :=
+-CXX := $(wincxx)
+-CXXFLAGS := -Wall -std=gnu++0x -D_WIN32_WINNT=0x0502 -DPLUGINLOADER $(winflags) $(CXXFLAGS)
+-LDFLAGS := -lversion -lgdi32 -lole32 -lopengl32
+-OBJECTS := common$(suffix).o apihook$(suffix).o npclass$(suffix).o npnfunctions$(suffix).o pluginloader$(suffix).o
+-COMMONHDR := ../common/common.h ../npapi-headers/npapi.h ../npapi-headers/npfunctions.h ../npapi-headers/npruntime.h ../npapi-headers/nptypes.h
++CXX := $(wincxx)
++CXXFLAGS := -Wall -std=gnu++0x -D_WIN32_WINNT=0x0502 -DPLUGINLOADER \
++ -DPIPELIGHT_VERSION='"$(version)"' $(winflags) \
++ $(mingw_cxxflags)
++LDFLAGS := -pie -lversion -lgdi32 -lole32 -lopengl32
++OBJECTS := common$(suffix).o apihook$(suffix).o npclass$(suffix).o \
++ npnfunctions$(suffix).o pluginloader$(suffix).o
++COMMONHDR := ../common/common.h ../npapi-headers/npapi.h \
++ ../npapi-headers/npfunctions.h ../npapi-headers/npruntime.h \
++ ../npapi-headers/nptypes.h
+
+ ifeq ($(wincxx),prebuilt)
+
+@@ -14,14 +19,20 @@ ifeq ($(wildcard pluginloader$(suffix).e
+ commit=$(shell git log --pretty=format:'%H' -n 1 || echo "prebuilt")
+
+ ../../pluginloader-$(commit).tar.gz:
+- $(downloader) "../../pluginloader-$(commit).tar.gz" "http://repos.fds-team.de/pluginloader/$(commit)/pluginloader.tar.gz"
++ $(downloader) "../../pluginloader-$(commit).tar.gz" \
++ "http://repos.fds-team.de/pluginloader/$(commit)/pluginloader.tar.gz"
+
+ ../../pluginloader-$(commit).tar.gz.sig:
+- $(downloader) "../../pluginloader-$(commit).tar.gz.sig" "http://repos.fds-team.de/pluginloader/$(commit)/pluginloader.tar.gz.sig"
++ $(downloader) "../../pluginloader-$(commit).tar.gz.sig" \
++ "http://repos.fds-team.de/pluginloader/$(commit)/pluginloader.tar.gz.sig"
+
+-pluginloader$(suffix).exe: ../../pluginloader-$(commit).tar.gz ../../pluginloader-$(commit).tar.gz.sig
+- gpg --batch --no-default-keyring --keyring "../../share/sig-pluginloader.gpg" --verify "../../pluginloader-$(commit).tar.gz.sig"
+- tar --strip-components=2 -xvf "../../pluginloader-$(commit).tar.gz" src/windows/pluginloader$(suffix).exe
++pluginloader$(suffix).exe: ../../pluginloader-$(commit).tar.gz \
++ ../../pluginloader-$(commit).tar.gz.sig
++ gpg --batch --no-default-keyring \
++ --keyring "../../share/sig-pluginloader.gpg" \
++ --verify "../../pluginloader-$(commit).tar.gz.sig" && \
++ tar --strip-components=2 -xvf "../../pluginloader-$(commit).tar.gz" \
++ src/windows/pluginloader$(suffix).exe
+
+ else
+
+@@ -43,16 +54,16 @@ pluginloader$(suffix).exe: $(OBJECTS)
+
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -o pluginloader$(suffix).exe
+
+- if [ -f "pluginloader$(suffix).exe.so" ]; then \
+- rm -f "pluginloader$(suffix).exe"; \
+- mv "pluginloader$(suffix).exe.so" "pluginloader$(suffix).exe"; \
++ if [ -f "pluginloader$(suffix).exe.so" ]; then \
++ rm -f "pluginloader$(suffix).exe"; \
++ mv "pluginloader$(suffix).exe.so" "pluginloader$(suffix).exe"; \
+ fi
+
+ common$(suffix).o: ../common/common.c $(COMMONHDR)
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c ../common/common.c -o common$(suffix).o
+
+ apihook$(suffix).o: apihook.c apihook.h pluginloader.h $(COMMONHDR)
+- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -DPIPELIGHT_VERSION='"$(version)"' -c apihook.c -o apihook$(suffix).o
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c apihook.c -o apihook$(suffix).o
+
+ npclass$(suffix).o: npclass.c $(COMMONHDR)
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c npclass.c -o npclass$(suffix).o
+@@ -67,4 +78,4 @@ pluginloader$(suffix).o: pluginloader.c
+ clean:
+ rm -f *.exe *.exe.so *.o
+
+-endif
+\ No newline at end of file
++endif
+Index: mmueller2012-pipelight-e2362eb15df6/src/winecheck/Makefile
+===================================================================
+--- mmueller2012-pipelight-e2362eb15df6.orig/src/winecheck/Makefile
++++ mmueller2012-pipelight-e2362eb15df6/src/winecheck/Makefile
+@@ -1,7 +1,8 @@
+ suffix :=
+-CXX := $(wincxx)
+-CXXFLAGS := -Wall -std=gnu++0x -D_WIN32_WINNT=0x0502 -DPLUGINLOADER $(winflags) $(CXXFLAGS)
+-LDFLAGS := -lgdi32 -lopengl32
++CXX := $(wincxx)
++CXXFLAGS := -Wall -std=gnu++0x -D_WIN32_WINNT=0x0502 -DPLUGINLOADER \
++ $(winflags) $(mingw_cxxflags)
++LDFLAGS := -pie -lgdi32 -lopengl32
+ OBJECTS := check$(suffix).o
+
+ ifeq ($(wincxx),prebuilt)
+@@ -13,14 +14,20 @@ ifeq ($(wildcard winecheck$(suffix).exe)
+ commit=$(shell git log --pretty=format:'%H' -n 1 || echo "prebuilt")
+
+ ../../pluginloader-$(commit).tar.gz:
+- $(downloader) "../../pluginloader-$(commit).tar.gz" "http://repos.fds-team.de/pluginloader/$(commit)/pluginloader.tar.gz"
++ $(downloader) "../../pluginloader-$(commit).tar.gz" \
++ "http://repos.fds-team.de/pluginloader/$(commit)/pluginloader.tar.gz"
+
+ ../../pluginloader-$(commit).tar.gz.sig:
+- $(downloader) "../../pluginloader-$(commit).tar.gz.sig" "http://repos.fds-team.de/pluginloader/$(commit)/pluginloader.tar.gz.sig"
++ $(downloader) "../../pluginloader-$(commit).tar.gz.sig" \
++ "http://repos.fds-team.de/pluginloader/$(commit)/pluginloader.tar.gz.sig"
+
+-winecheck$(suffix).exe: ../../pluginloader-$(commit).tar.gz ../../pluginloader-$(commit).tar.gz.sig
+- gpg --batch --no-default-keyring --keyring "../../share/sig-pluginloader.gpg" --verify "../../pluginloader-$(commit).tar.gz.sig" && \
+- tar --strip-components=2 -xvf "../../pluginloader-$(commit).tar.gz" src/winecheck/winecheck$(suffix).exe
++winecheck$(suffix).exe: ../../pluginloader-$(commit).tar.gz \
++ ../../pluginloader-$(commit).tar.gz.sig
++ gpg --batch --no-default-keyring \
++ --keyring "../../share/sig-pluginloader.gpg" \
++ --verify"../../pluginloader-$(commit).tar.gz.sig" && \
++ tar --strip-components=2 -xvf "../../pluginloader-$(commit).tar.gz" \
++ src/winecheck/winecheck$(suffix).exe
+
+ else
+
+@@ -40,9 +47,9 @@ all: winecheck$(suffix).exe
+ winecheck$(suffix).exe: $(OBJECTS)
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -o winecheck$(suffix).exe
+
+- if [ -f "winecheck$(suffix).exe.so" ]; then \
+- rm -f "winecheck$(suffix).exe"; \
+- mv "winecheck$(suffix).exe.so" "winecheck$(suffix).exe"; \
++ if [ -f "winecheck$(suffix).exe.so" ]; then \
++ rm -f "winecheck$(suffix).exe"; \
++ mv "winecheck$(suffix).exe.so" "winecheck$(suffix).exe"; \
+ fi
+
+ check$(suffix).o: check.c
+@@ -52,4 +59,4 @@ check$(suffix).o: check.c
+ clean:
+ rm -f *.exe *.exe.so *.o
+
+-endif
+\ No newline at end of file
++endif
+Index: mmueller2012-pipelight-e2362eb15df6/pipelight-plugin.1.in
+===================================================================
+--- mmueller2012-pipelight-e2362eb15df6.orig/pipelight-plugin.1.in
++++ mmueller2012-pipelight-e2362eb15df6/pipelight-plugin.1.in
+@@ -27,7 +27,7 @@ Can be used to automate the process of a
+ Enables the specified plugin for the current user (by creating a symlink in
+ \fI$HOME/.mozilla/plugins\fR). When you run this command as root the plugin is
+ enabled system-wide by creating a symlink in the mozilla plugins directory
+-instead (often located at \fI/usr/lib/mozilla/plugins\fR). For a list of
++instead (often located at \fI@@MOZ_PLUGIN_PATH@@\fR). For a list of
+ plugins see the \fBPLUGINS\fR section in this man page.
+ .TP
+ \fB\-\-disable\fR \fIPLUGIN\fR
+@@ -144,28 +144,28 @@ browsers will not have Silverlight enabl
+ plugins in the custom plugin directory.
+ .SH FILES
+ .TP
+-\fI@@PREFIX@@/bin/pipelight-plugin\fR
++\fI@@BINDIR@@/pipelight-plugin\fR
+ Commandline utility to enable/disable plugins and to update the plugin database.
+ .TP
+-\fI@@PREFIX@@/lib/pipelight/libpipelight*.so\fR
++\fI@@LIBDIR@@/pipelight/libpipelight*.so\fR
+ The shared library \fIlibpipelight.so\fR and additional copies for all
+ unlocked and standard plugins.
+ .TP
+-\fI@@PREFIX@@/share/pipelight/licenses/*\fR
++\fI@@DATADIR@@/pipelight/licenses/*\fR
+ License information for supported plugins.
+ .TP
+-\fI@@PREFIX@@/share/pipelight/configs/*\fR
++\fI@@DATADIR@@/pipelight/configs/*\fR
+ Configuration files containing for example which dependencies are required for
+ a specific plugin, and where Pipelight can find the plugin DLLs. Normally
+ there should be \fBno\fR need to edit them manually!
+ .TP
+-\fI@@PREFIX@@/share/pipelight/scripts/*\fR
++\fI@@DATADIR@@/pipelight/scripts/*\fR
+ Helper scripts for specific plugins, for example to enable/disable GPU acceleration.
+ .TP
+-\fI@@PREFIX@@/share/pipelight/*\fR
++\fI@@DATADIR@@/pipelight/*\fR
+ Directory containing other files used internally by Pipelight.
+ .TP
+-\fI/usr/lib/mozilla/plugins/libpipelight-*.so\fR
++\fI@@MOZ_PLUGIN_PATH@@libpipelight-*.so\fR
+ Symlinks to all enabled system-wide plugins.
+ .TP
+ \fI$HOME/.mozilla/plugins/libpipelight-*.so\fR
+Index: mmueller2012-pipelight-e2362eb15df6/bin/pipelight-plugin.in
+===================================================================
+--- mmueller2012-pipelight-e2362eb15df6.orig/bin/pipelight-plugin.in
++++ mmueller2012-pipelight-e2362eb15df6/bin/pipelight-plugin.in
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env bash
++#!@@BASH@@
+ VERSION="@@VERSION@@"
+ PIPELIGHT_SHARE_PATH="@@PIPELIGHT_SHARE_PATH@@"
+ PIPELIGHT_LIBRARY_PATH="@@PIPELIGHT_LIBRARY_PATH@@"
+Index: mmueller2012-pipelight-e2362eb15df6/share/scripts/configure-flash.in
+===================================================================
+--- mmueller2012-pipelight-e2362eb15df6.orig/share/scripts/configure-flash.in
++++ mmueller2012-pipelight-e2362eb15df6/share/scripts/configure-flash.in
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env bash
++#!@@BASH@@
+ PIPELIGHT_SHARE_PATH="@@PIPELIGHT_SHARE_PATH@@"
+
+ # Don't run this as root
+Index: mmueller2012-pipelight-e2362eb15df6/share/scripts/configure-silverlight.in
+===================================================================
+--- mmueller2012-pipelight-e2362eb15df6.orig/share/scripts/configure-silverlight.in
++++ mmueller2012-pipelight-e2362eb15df6/share/scripts/configure-silverlight.in
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env bash
++#!@@BASH@@
+ PIPELIGHT_SHARE_PATH="@@PIPELIGHT_SHARE_PATH@@"
+
+ # Don't run this as root
+@@ -68,4 +68,4 @@ done
+ # Cleanup
+ rm "$tmpfile"
+
+-exit 0
+\ No newline at end of file
++exit 0
diff --git a/pipelight-0.2.7.1_use-symlinks.patch b/pipelight-0.2.7.1_use-symlinks.patch
new file mode 100644
index 0000000..db96bf7
--- /dev/null
+++ b/pipelight-0.2.7.1_use-symlinks.patch
@@ -0,0 +1,13 @@
+Index: mmueller2012-pipelight-e2362eb15df6/bin/pipelight-plugin.in
+===================================================================
+--- mmueller2012-pipelight-e2362eb15df6.orig/bin/pipelight-plugin.in
++++ mmueller2012-pipelight-e2362eb15df6/bin/pipelight-plugin.in
+@@ -494,7 +494,7 @@ create_mozilla_plugins()
+ continue
+ fi
+
+- if ! install -m 0644 "$src" "$dst" 2>/dev/null; then
++ if ! ln -fs "$src" "$dst" 2>/dev/null; then
+ echo "ERROR: failed to create copy of $src at $dst" >&2
+ echo "ERROR: are you running this program with root rights?" >&2
+ return 1
diff --git a/pipelight.spec b/pipelight.spec
new file mode 100644
index 0000000..4b0b4d1
--- /dev/null
+++ b/pipelight.spec
@@ -0,0 +1,131 @@
+%global commit e2362eb15df6
+%global bburl https://bitbucket.org/mmueller2012/%{name}/get
+
+Name: pipelight
+Version: 0.2.7.1
+Release: 2%{?dist}
+Summary: NPAPI Wrapper Plugin for using Windows plugins in Linux browsers
+
+License: BSD and (GPLv2+ or LGPLv2+ or MPLv1.1)
+URL: http://%{name}.net/
+Source0: %{bburl}/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
+
+# Upstreamed
+Patch0: http://besser82.fedorapeople.org/patches/pipelight-0.2.7.1_improve-buildsys.patch
+Patch1: http://besser82.fedorapeople.org/patches/pipelight-0.2.7.1_use-symlinks.patch
+Patch2: http://besser82.fedorapeople.org/patches/pipelight-0.2.7.1_fix-missing-call-to-setgroups.patch
+
+# Wine is available on these arches, only.
+ExclusiveArch: %{arm} %{ix86} x86_64
+
+BuildRequires: libX11-devel
+BuildRequires: mingw32-gcc-c++
+%if 0%{?fedora} >= 20 || 0%{?rhel} >= 7
+BuildRequires: mingw32-winpthreads
+%endif # 0%{?fedora} >= 20 || 0%{?rhel} >= 7
+%ifarch x86_64
+BuildRequires: mingw64-gcc-c++
+%if 0%{?fedora} >= 20 || 0%{?rhel} >= 7
+BuildRequires: mingw64-winpthreads
+%endif # 0%{?fedora} >= 20 || 0%{?rhel} >= 7
+%endif # arch x86_64
+
+Requires: %{_bindir}/gpg
+Requires: %{_bindir}/wget
+Requires: %{_bindir}/zenity
+Requires: mozilla-filesystem%{?_isa}
+Requires: wine%{?_isa}
+
+%description
+Pipelight is a NPAPI wrapper plugin for using Windows plugins in Linux
+browsers and therefore giving you the possibility to access services
+which are otherwise not available for Linux users. Typical examples of
+such services are Netflix and Amazon Instant, which both use the
+proprietary browser plugin Silverlight. These services cannot normally
+be used on Linux since this plugin is only available for Windows.
+
+Pipelight helps you access these services by using the original
+Silverlight plugin directly in your browser, all while giving you a
+better hardware acceleration and performance than a virtual machine.
+Besides Silverlight, you can also use a variety of other plugins that
+are supported by Pipelight.
+
+Pipelight will take care of installing, configuring and updating all
+supported plugins. From the perspective of the browser these plugins
+will behave just like any other normal Linux plugin after you have
+enabled them.
+
+For further information about all supported plugins, their installation,
+configuration and usage, please visit %{url}.
+
+
+%prep
+%setup -qn mmueller2012-%{name}-%{commit}
+%patch0 -b .buildsys -p 1
+%patch1 -b .symlinks -p 1
+%patch2 -b .setgroup -p 1
+
+# Copy changelog and licenses to toplevel.
+%{__cp} -a debian/changelog ChangeLog
+%{__cp} -a debian/copyright COPYRIGHT
+
+# Extract BSD-3-license from source-file.
+%{_bindir}/head -n 30 src/npapi-headers/npruntime.h | \
+ %{__sed} -e 's!^[ \t]*\*[ \t]*!!g' -e 's![ \t]*$!!g' -e '1,2d' \
+ > bsd-3.txt && \
+%{_bindir}/touch -r src/npapi-headers/npruntime.h bsd-3.txt
+
+# Fix hashbang in install-dependency-script.
+_file="share/install-dependency"
+%{__sed} -e '1 s~^#!.*$~#!%{_bindir}/bash~' < ${_file} > ${_file}.new &&\
+%{_bindir}/touch -r ${_file} ${_file}.new && \
+%{_bindir}/mv -f ${_file}.new ${_file}
+
+
+%build
+%configure \
+%ifarch x86_64
+ --with-win64 \
+ --wine64-path=%{_bindir}/wine64 \
+ --win64-static \
+%endif # arch x86_64
+ --wine-path=%{_bindir}/wine \
+ --win32-static \
+ --moz-plugin-path=%{_libdir}/mozilla/plugins
+
+%{__make} %{?_smp_mflags}
+
+
+%install
+%make_install
+
+
+%post
+# This will not enable any plugins.
+%{_bindir}/%{name}-plugin --create-mozilla-plugins &>/dev/null
+
+%preun
+# This will disable and remove all plugins, if the last instance of this
+# package will be removed completely. This doesn't touch anything on updates.
+if [ $1 -eq 0 ]
+then
+ %{_bindir}/%{name}-plugin --disable-all &>/dev/null
+ %{_bindir}/%{name}-plugin --remove-mozilla-plugins &>/dev/null
+fi
+
+
+%files
+%doc bsd-3.txt ChangeLog COPYRIGHT LICENSE
+%{_bindir}/%{name}-plugin
+%{_datadir}/%{name}
+%{_libdir}/%{name}
+%{_mandir}/man1/%{name}-plugin.1*
+
+
+%changelog
+* Tue Jul 08 2014 Björn Esser <bjoern.esser at gmail.com> - 0.2.7.1-2
+- added BSD to License (#1117403)
+ see: https://bugzilla.redhat.com/show_bug.cgi?id=1117403#c2
+
+* Mon Jul 07 2014 Björn Esser <bjoern.esser at gmail.com> - 0.2.7.1-1
+- initial rpm release (#1117403)
diff --git a/sources b/sources
index e69de29..c3d56ab 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+616d10e925982685c889cb8c217d46c3 pipelight-0.2.7.1.tar.gz
More information about the scm-commits
mailing list