From eee6f5a004b85779140a3d8684dcfe9bf5584566 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Fri, 17 Oct 2014 15:33:25 +0400 Subject: Adding Pipelight via patch from Sven Keidel and some cleanup --- pkgs/tools/misc/pipelight/default.nix | 98 ++++++++++++++++ pkgs/tools/misc/pipelight/pipelight-fixup.patch | 54 +++++++++ pkgs/tools/misc/pipelight/pipelight.patch | 149 ++++++++++++++++++++++++ 3 files changed, 301 insertions(+) create mode 100644 pkgs/tools/misc/pipelight/default.nix create mode 100644 pkgs/tools/misc/pipelight/pipelight-fixup.patch create mode 100644 pkgs/tools/misc/pipelight/pipelight.patch (limited to 'pkgs/tools/misc/pipelight') diff --git a/pkgs/tools/misc/pipelight/default.nix b/pkgs/tools/misc/pipelight/default.nix new file mode 100644 index 000000000000..ea1ba37a2edd --- /dev/null +++ b/pkgs/tools/misc/pipelight/default.nix @@ -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; + }; +} diff --git a/pkgs/tools/misc/pipelight/pipelight-fixup.patch b/pkgs/tools/misc/pipelight/pipelight-fixup.patch new file mode 100644 index 000000000000..8033e8458d08 --- /dev/null +++ b/pkgs/tools/misc/pipelight/pipelight-fixup.patch @@ -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 diff --git a/pkgs/tools/misc/pipelight/pipelight.patch b/pkgs/tools/misc/pipelight/pipelight.patch new file mode 100644 index 000000000000..84f1b137b72b --- /dev/null +++ b/pkgs/tools/misc/pipelight/pipelight.patch @@ -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 -- cgit 1.4.1