Adding Pipelight via patch from Sven Keidel and some cleanup

This commit is contained in:
Michael Raskin 2014-10-17 15:33:25 +04:00
parent 9424ab11c6
commit eee6f5a004
5 changed files with 12612 additions and 0 deletions

View file

@ -0,0 +1,98 @@
{ stdenv, fetchurl, fetchgit, autoconf, automake, wineUnstable, perl, xlibs
, gnupg, gcc48_multi, mesa, curl, bash, cacert, cabextract, utillinux, attr
}:
let
wine_patches_version = "1.7.28";
wine_hash = "04r3zk3dz2vzly2a4nqbcvppjs5iy3lq5ibx3wfrf877p5bz3hv7";
wine_patches = fetchgit {
url = "git://github.com/compholio/wine-compholio.git";
rev = "refs/tags/v${wine_patches_version}";
sha256 = "17f1wmxbx6ly1ws4p528ijf9b4yvmnmap5k7npw9icvkyaky5xi9";
};
wine_custom =
stdenv.lib.overrideDerivation wineUnstable (args: rec {
name = "wine-${wine_patches_version}";
src = null;
srcs = [
(fetchurl {
url = "mirror://sourceforge/wine/${name}.tar.bz2";
sha256 = wine_hash;
})
wine_patches ];
sourceRoot = "./${name}";
buildInputs = args.buildInputs ++ [
autoconf perl utillinux automake attr
];
nativeBuildInputs = args.nativeBuildInputs ++ [
autoconf perl utillinux automake attr
];
postPatch = ''
export wineDir=$(pwd)
patchShebangs $wineDir/tools/
chmod u+w $wineDir/../git-export/debian/tools/
patchShebangs $wineDir/../git-export/debian/tools/
chmod -R +rwx ../git-export/
make -C ../git-export/patches DESTDIR=$wineDir install
'';
});
mozillaPluginPath = "/lib/mozilla/plugins";
fixupPatch = ./pipelight-fixup.patch;
in stdenv.mkDerivation rec {
version = "0.2.7.2";
name = "pipelight-${version}";
src = fetchurl {
url = "https://bitbucket.org/mmueller2012/pipelight/get/v${version}.tar.gz";
sha256 = "02132151091f1f62d7409a537649efc86deb0eb4a323fd66907fc22947e2cfbd";
};
buildInputs = [ wine_custom xlibs.libX11 gcc48_multi mesa curl ];
propagatedbuildInputs = [ curl cabextract ];
patches = [ ./pipelight.patch ];
configurePhase = ''
./configure \
--prefix=$out \
--moz-plugin-path=$out/${mozillaPluginPath} \
--wine-path=${wine_custom} \
--gpg-exec=${gnupg}/bin/gpg2 \
--bash-interp=${bash}/bin/bash \
--downloader=${curl}/bin/curl
$configureFlags
'';
passthru = {
mozillaPlugin = mozillaPluginPath;
wine = wine_custom;
};
postInstall = ''
$out/bin/pipelight-plugin --update
$out/bin/pipelight-plugin --create-mozilla-plugins
'';
preFixup = ''
patch -d $out -p1 <${fixupPatch}
substituteInPlace $out/share/pipelight/install-dependency \
--replace cabextract ${cabextract}/bin/cabextract
'';
enableParallelBuilding = true;
meta = {
homepage = "http://pipelight.net/";
licenses = with stdenv.lib.licenses; [ mpl11 gpl2 lgpl21 ];
description = "A wrapper for using Windows plugins in Linux browsers";
maintainers = with stdenv.lib.maintainers; [skeidel];
platforms = with stdenv.lib.platforms; linux;
};
}

View file

@ -0,0 +1,54 @@
diff -urN pipelight2.old/share/pipelight/install-dependency pipelight2.new/share/pipelight/install-dependency
--- pipelight2.old/share/pipelight/install-dependency 2014-07-27 01:38:39.806379602 +0200
+++ pipelight2.new/share/pipelight/install-dependency 2014-07-27 01:40:08.689861556 +0200
@@ -734,42 +734,14 @@
return 0
}
-# Use fetch on FreeBSD if wget is not available
-if command -v wget >/dev/null 2>&1; then
- download_file()
- {
- wget -O "$1" "$2"
- }
- get_download_size()
- {
- local filesize="$(wget -O- "$1" --spider --server-response 2>&1 | sed -ne '/Content-Length/{s/.*: //;p}')"
- local re='^[0-9]+$'
- if [[ "$filesize" -ne "0" ]] && [[ "$filesize" =~ $re ]]; then
- echo "$(($filesize/(1024*1024)))"
- else
- echo "N/A"
- fi
- }
-elif command -v fetch >/dev/null 2>&1; then
- download_file()
- {
- fetch -o "$1" "$2"
- }
- get_download_size()
- {
- echo "N/A"
- }
-else
- download_file()
- {
- echo "ERROR: Could neither find wget nor fetch. Unable to download file!" >&2
- return 1
- }
- get_download_size()
- {
- echo "N/A"
- }
-fi
+download_file()
+{
+ curl --cacert /etc/ssl/certs/ca-bundle.crt -o "$1" "$2"
+}
+get_download_size()
+{
+ echo "N/A"
+}
# Use shasum instead of sha256sum on MacOS / *BSD
if ! command -v sha256sum >/dev/null 2>&1 && command -v shasum >/dev/null 2>&1; then

View file

@ -0,0 +1,149 @@
diff -urN pipelight.old/bin/pipelight-plugin.in pipelight.new/bin/pipelight-plugin.in
--- pipelight.old/bin/pipelight-plugin.in 2014-07-19 22:53:02.000000000 +0200
+++ pipelight.new/bin/pipelight-plugin.in 2014-07-27 00:02:39.275834030 +0200
@@ -92,7 +92,7 @@
PLUGIN_PATH=$(realpath "$PLUGIN_PATH")
# Global installation
- if [ $(/usr/bin/id -u) -eq 0 ]; then
+ if [ $(id -u) -eq 0 ]; then
INSTALLDIR="$PLUGIN_PATH"
# Use environment variable (only if it doesn't point to the global directory)
@@ -594,7 +594,7 @@
fi
# Ensure the signature is valid, extract the content
- if ! @@GPG@@ --batch --no-default-keyring --keyring "$PIPELIGHT_SHARE_PATH/sig-install-dependency.gpg" --decrypt "$tmpfile" > "$decfile"; then
+ if ! @@GPG@@ --homedir /tmp --batch --no-default-keyring --keyring "$PIPELIGHT_SHARE_PATH/sig-install-dependency.gpg" --decrypt "$tmpfile" > "$decfile"; then
rm "$tmpfile"
rm "$decfile"
echo ""
@@ -630,24 +630,10 @@
return 0
}
-# Use fetch on FreeBSD if wget is not available
-if command -v wget >/dev/null 2>&1; then
- download_file()
- {
- wget -O "$1" "$2"
- }
-elif command -v fetch >/dev/null 2>&1; then
- download_file()
- {
- fetch -o "$1" "$2"
- }
-else
- download_file()
- {
- echo "ERROR: Could neither find wget nor fetch. Unable to download file!" >&2
- return 1
- }
-fi
+download_file()
+{
+ curl --cacert /etc/ssl/certs/ca-bundle.crt -o "$1" "$2"
+}
# Use shasum instead of sha256sum on MacOS / *BSD
if ! command -v sha256sum >/dev/null 2>&1 && command -v shasum >/dev/null 2>&1; then
diff -urN pipelight.old/configure pipelight.new/configure
--- pipelight.old/configure 2014-07-19 22:53:02.000000000 +0200
+++ pipelight.new/configure 2014-07-26 23:52:13.690881447 +0200
@@ -66,12 +66,8 @@
datadir=""
libdir=""
mandir=""
-bash_interp="$(which bash)"
-if which gpg &> /dev/null; then
- gpg_exec="$(which gpg)"
-else
- gpg_exec="/usr/bin/gpg"
-fi
+bash_interp=bash
+gpg_exec=gpg2
moz_plugin_path=""
gcc_runtime_dlls=""
so_mode="0644"
diff -urN pipelight.old/Makefile pipelight.new/Makefile
--- pipelight.old/Makefile 2014-07-19 22:53:02.000000000 +0200
+++ pipelight.new/Makefile 2014-07-26 23:25:22.020707765 +0200
@@ -29,7 +29,7 @@
-e 's|@@BINDIR@@|$(bindir)|g' \
-e 's|@@DATADIR@@|$(datadir)|g' \
-e 's|@@GCC_RUNTIME_DLLS@@|$(gcc_runtime_dlls)|g' \
- -e 's|@@GPG@@|$(gpgexec)|g' \
+ -e 's|@@GPG@@|$(gpg_exec)|g' \
-e 's|@@LIBDIR@@|$(libdir)|g' \
-e 's|@@MANDIR@@|$(mandir)|g' \
-e 's|@@MOZ_PLUGIN_PATH@@|$(moz_plugin_path)|g' \
@@ -69,12 +69,12 @@
.PHONY: prebuilt32
prebuilt32: config.make pluginloader-$(git_commit).tar.gz pluginloader-$(git_commit).tar.gz.sig
- $(gpgexec) --batch --no-default-keyring --keyring "share/sig-pluginloader.gpg" --verify "pluginloader-$(git_commit).tar.gz.sig"
+ $(gpg_exec) --batch --no-default-keyring --keyring "share/sig-pluginloader.gpg" --verify "pluginloader-$(git_commit).tar.gz.sig"
tar -xvf "pluginloader-$(git_commit).tar.gz" src/windows/pluginloader.exe src/winecheck/winecheck.exe
.PHONY: prebuilt64
prebuilt64: config.make pluginloader-$(git_commit).tar.gz pluginloader-$(git_commit).tar.gz.sig
- $(gpgexec) --batch --no-default-keyring --keyring "share/sig-pluginloader.gpg" --verify "pluginloader-$(git_commit).tar.gz.sig"
+ $(gpg_exec) --batch --no-default-keyring --keyring "share/sig-pluginloader.gpg" --verify "pluginloader-$(git_commit).tar.gz.sig"
tar -xvf "pluginloader-$(git_commit).tar.gz" src/windows/pluginloader64.exe src/winecheck/winecheck64.exe
.PHONY: pluginloader32
diff -urN pipelight.old/share/install-dependency pipelight.new/share/install-dependency
--- pipelight.old/share/install-dependency 2014-07-19 22:53:02.000000000 +0200
+++ pipelight.new/share/install-dependency 2014-07-26 23:26:18.431938546 +0200
@@ -734,42 +734,14 @@
return 0
}
-# Use fetch on FreeBSD if wget is not available
-if command -v wget >/dev/null 2>&1; then
- download_file()
- {
- wget -O "$1" "$2"
- }
- get_download_size()
- {
- local filesize="$(wget -O- "$1" --spider --server-response 2>&1 | sed -ne '/Content-Length/{s/.*: //;p}')"
- local re='^[0-9]+$'
- if [[ "$filesize" -ne "0" ]] && [[ "$filesize" =~ $re ]]; then
- echo "$(($filesize/(1024*1024)))"
- else
- echo "N/A"
- fi
- }
-elif command -v fetch >/dev/null 2>&1; then
- download_file()
- {
- fetch -o "$1" "$2"
- }
- get_download_size()
- {
- echo "N/A"
- }
-else
- download_file()
- {
- echo "ERROR: Could neither find wget nor fetch. Unable to download file!" >&2
- return 1
- }
- get_download_size()
- {
- echo "N/A"
- }
-fi
+download_file()
+{
+ curl --cacert /etc/ssl/certs/ca-bundle.crt -o "$1" "$2"
+}
+get_download_size()
+{
+ echo "N/A"
+}
# Use shasum instead of sha256sum on MacOS / *BSD
if ! command -v sha256sum >/dev/null 2>&1 && command -v shasum >/dev/null 2>&1; then

View file

@ -6328,6 +6328,8 @@ let
physfs = callPackage ../development/libraries/physfs { };
pipelight = callPackage ../tools/misc/pipelight { };
pkcs11helper = callPackage ../development/libraries/pkcs11helper { };
plib = callPackage ../development/libraries/plib { };

File diff suppressed because it is too large Load diff