├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── bin
└── pipelight-plugin.in
├── configure
├── debian
├── README-pipelight
├── changelog
├── compat
├── control
├── copyright
├── pipelight-multi.postinst
├── pipelight-multi.prerm
├── rules
└── source
│ ├── format
│ └── options
├── include
├── common
│ └── common.h
└── npapi-headers
│ ├── npapi.h
│ ├── npfunctions.h
│ ├── npruntime.h
│ └── nptypes.h
├── licenses
├── gpl-2.0.txt
├── lgpl-2.1.txt
└── mpl-1.1.txt
├── patches
└── 0001-Workaround-for-Qt5.2-Invalidate-always-whole-drawing-a.patch
├── pipelight-plugin.1.in
├── share
├── configs
│ ├── pipelight-flash
│ ├── pipelight-shockwave
│ ├── pipelight-silverlight5.0
│ ├── pipelight-silverlight5.1
│ ├── pipelight-unity3d
│ ├── pipelight-widevine
│ ├── pipelight-x64-flash
│ └── pipelight-x64-unity3d
├── install-dependency
├── install-dependency-1434FC73.sig
├── install-dependency.sig
├── install-plugin
├── licenses
│ ├── license-adobereader.txt.in
│ ├── license-flash.txt.in
│ ├── license-foxitpdf.txt.in
│ ├── license-grandstream.txt.in
│ ├── license-hikvision.txt.in
│ ├── license-mpg2splt.txt.in
│ ├── license-mspatcha.txt.in
│ ├── license-roblox.txt.in
│ ├── license-shockwave.txt.in
│ ├── license-silverlight4.txt.in
│ ├── license-silverlight5.0.txt.in
│ ├── license-silverlight5.1.txt.in
│ ├── license-unity3d.txt.in
│ ├── license-viewright-caiway.txt.in
│ ├── license-widevine.txt.in
│ └── license-wininet.txt.in
├── scripts
│ ├── configure-flash.in
│ └── configure-silverlight.in
├── sig-install-dependency.gpg
└── sig-pluginloader.gpg
├── src
├── common
│ ├── Makefile
│ └── common.c
├── linux
│ ├── Makefile
│ └── libpipelight
│ │ ├── Makefile
│ │ ├── basicplugin.c
│ │ ├── basicplugin.h
│ │ ├── configloader.c
│ │ ├── configloader.h
│ │ ├── npclass.c
│ │ └── nppfunctions.c
└── windows
│ ├── Makefile
│ ├── pluginloader
│ ├── Makefile
│ ├── apihook.c
│ ├── apihook.h.in
│ ├── npclass.c
│ ├── npnfunctions.c
│ ├── pluginloader.c
│ └── pluginloader.h
│ └── winecheck
│ ├── Makefile
│ └── check.c
└── wine-patches
└── README
/.gitignore:
--------------------------------------------------------------------------------
1 | *~
2 | *.o
3 | *.exe
4 | *.so
5 | *.d
6 | apihook.h
7 | config.make
8 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The code is licensed under the MPL 1.1/GPL 2.0/LGPL 2.1.
2 | For more information take a look at the license block in linux/basicplugin.c
3 | and the license-text-files located in licenses/.
4 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | -include config.make
2 |
3 | PLUGIN_CONFIGS=$(wildcard share/configs/*)
4 | PLUGIN_SCRIPTS=$(wildcard share/scripts/*.in)
5 | PLUGIN_LICENSES=$(wildcard share/licenses/*.in)
6 |
7 | PROGRAMS :=
8 |
9 | ifeq ($(win32_cxx),prebuilt)
10 | PROGRAMS := $(PROGRAMS) prebuilt32
11 | else
12 | PROGRAMS := $(PROGRAMS) windows32
13 | endif
14 |
15 | ifeq ($(with_win64),true)
16 | ifeq ($(win64_cxx),prebuilt)
17 | PROGRAMS := $(PROGRAMS) prebuilt64
18 | else
19 | PROGRAMS := $(PROGRAMS) windows64
20 | endif
21 | endif
22 |
23 | ifeq ($(debug),true)
24 | cxxflags := $(cxxflags) -DPIPELIGHT_DEBUG
25 | win32_flags := $(win32_flags) -DPIPELIGHT_DEBUG
26 | win64_flags := $(win64_flags) -DPIPELIGHT_DEBUG
27 | endif
28 |
29 | repo = $(patsubst %.git,%,$(subst git@,https://,$(subst :,/,$(shell git remote get-url origin))))
30 | REPO = $(if $(filter https://%,$(repo)),$(repo),https://launchpad.net/pipelight)
31 |
32 | SED_OPTS := -e 's|@@BASH@@|$(bash_interp)|g' \
33 | -e '1s|/usr/bin/env bash|$(bash_interp)|' \
34 | -e 's|@@BINDIR@@|$(bindir)|g' \
35 | -e 's|@@DATADIR@@|$(datadir)|g' \
36 | -e 's|@@GPG@@|$(gpg_exec)|g' \
37 | -e 's|@@LIBDIR@@|$(libdir)|g' \
38 | -e 's|@@MANDIR@@|$(mandir)|g' \
39 | -e 's|@@MOZ_PLUGIN_PATH@@|$(moz_plugin_path)|g' \
40 | -e 's|@@PIPELIGHT_LIBRARY_PATH@@|$(libdir)/pipelight|g' \
41 | -e 's|@@PIPELIGHT_SHARE_PATH@@|$(datadir)/pipelight|g' \
42 | -e 's|@@PREFIX@@|$(prefix)|g' \
43 | -e 's|@@REPO@@|$(REPO)|g' \
44 | -e 's|@@VERSION@@|$(version)|g'
45 |
46 | export
47 |
48 | .PHONY: all
49 | all: linux $(PROGRAMS)
50 |
51 | config.make:
52 | @echo ""
53 | @echo "You need to call ./configure first." >&2
54 | @echo ""
55 | @exit 1
56 |
57 |
58 | pluginloader-$(git_commit).tar.gz:
59 | $(downloader) "pluginloader-$(git_commit).tar.gz" "http://repos.fds-team.de/pluginloader/$(git_commit)/pluginloader.tar.gz"
60 |
61 | pluginloader-$(git_commit).tar.gz.sig:
62 | $(downloader) "pluginloader-$(git_commit).tar.gz.sig" "http://repos.fds-team.de/pluginloader/$(git_commit)/pluginloader.tar.gz.sig"
63 |
64 | .PHONY: linux
65 | linux: config.make
66 | CXX="$(cxx)" CXXFLAGS="$(cxxflags)" $(MAKE) -C src/linux
67 |
68 | .PHONY: prebuilt32
69 | prebuilt32: config.make pluginloader-$(git_commit).tar.gz pluginloader-$(git_commit).tar.gz.sig
70 | $(gpg_exec) --batch --no-default-keyring --keyring "share/sig-pluginloader.gpg" --verify "pluginloader-$(git_commit).tar.gz.sig" "pluginloader-$(git_commit).tar.gz"
71 | tar -xvf "pluginloader-$(git_commit).tar.gz" src/windows/pluginloader/pluginloader.exe src/windows/winecheck/winecheck.exe
72 |
73 | .PHONY: prebuilt64
74 | prebuilt64: config.make pluginloader-$(git_commit).tar.gz pluginloader-$(git_commit).tar.gz.sig
75 | $(gpg_exec) --batch --no-default-keyring --keyring "share/sig-pluginloader.gpg" --verify "pluginloader-$(git_commit).tar.gz.sig" "pluginloader-$(git_commit).tar.gz"
76 | tar -xvf "pluginloader-$(git_commit).tar.gz" src/windows/pluginloader/pluginloader64.exe src/windows/winecheck/winecheck64.exe
77 |
78 | .PHONY: windows32
79 | windows32: config.make
80 | CXX="$(win32_cxx)" CXXFLAGS="$(win32_flags)" $(MAKE) -C src/windows suffix=""
81 |
82 | .PHONY: windows64
83 | windows64: config.make
84 | CXX="$(win64_cxx)" CXXFLAGS="$(win64_flags)" $(MAKE) -C src/windows suffix="64"
85 |
86 |
87 | .PHONY: install
88 | install: config.make all
89 | mkdir -p \
90 | "$(DESTDIR)$(bindir)" \
91 | "$(DESTDIR)$(datadir)/pipelight/configs" \
92 | "$(DESTDIR)$(datadir)/pipelight/licenses" \
93 | "$(DESTDIR)$(datadir)/pipelight/scripts" \
94 | "$(DESTDIR)$(libdir)/pipelight" \
95 | "$(DESTDIR)$(mandir)/man1" \
96 | "$(DESTDIR)$(moz_plugin_path)"
97 |
98 | install -pm 0644 share/sig-install-dependency.gpg "$(DESTDIR)$(datadir)/pipelight/sig-install-dependency.gpg"
99 |
100 | install -pm 0755 "src/windows/pluginloader/pluginloader.exe" "$(DESTDIR)$(datadir)/pipelight/pluginloader.exe"
101 | if [ "$(with_win64)" = "true" ]; then \
102 | install -pm 0755 "src/windows/pluginloader/pluginloader64.exe" "$(DESTDIR)$(datadir)/pipelight/pluginloader64.exe"; \
103 | fi
104 |
105 | install -pm 0755 "src/windows/winecheck/winecheck.exe" "$(DESTDIR)$(datadir)/pipelight/winecheck.exe"
106 | if [ "$(with_win64)" = "true" ]; then \
107 | install -pm 0755 "src/windows/winecheck/winecheck64.exe" "$(DESTDIR)$(datadir)/pipelight/winecheck64.exe"; \
108 | fi
109 |
110 | rm -f "$(DESTDIR)$(datadir)/pipelight/wine"
111 | ln -s "$(wine_path)" "$(DESTDIR)$(datadir)/pipelight/wine"
112 | if [ "$(with_win64)" = "true" ]; then \
113 | rm -f "$(DESTDIR)$(datadir)/pipelight/wine64"; \
114 | ln -s "$(wine64_path)" "$(DESTDIR)$(datadir)/pipelight/wine64"; \
115 | fi
116 |
117 | sed $(SED_OPTS) share/install-plugin > install-plugin.tmp
118 | touch -r share/install-plugin install-plugin.tmp
119 | install -pm 0755 install-plugin.tmp "$(DESTDIR)$(datadir)/pipelight/install-plugin"
120 | rm install-plugin.tmp
121 |
122 | for script in $(notdir $(PLUGIN_SCRIPTS)); do \
123 | sed $(SED_OPTS) share/scripts/$${script} > pipelight-script.tmp; \
124 | touch -r share/scripts/$${script} pipelight-script.tmp; \
125 | install -pm 0755 pipelight-script.tmp "$(DESTDIR)$(datadir)/pipelight/scripts/$${script%.*}" || exit 1; \
126 | rm pipelight-script.tmp; \
127 | done
128 |
129 | for config in $(notdir $(PLUGIN_CONFIGS)); do \
130 | install -pm 0644 share/configs/$${config} "$(DESTDIR)$(datadir)/pipelight/configs/$${config}" || exit 1; \
131 | done
132 |
133 | for license in $(notdir $(PLUGIN_LICENSES)); do \
134 | sed $(SED_OPTS) share/licenses/$${license} > pipelight-license.tmp; \
135 | touch -r share/licenses/$${license} pipelight-license.tmp; \
136 | install -pm 0644 pipelight-license.tmp "$(DESTDIR)$(datadir)/pipelight/licenses/$${license%.*}" || exit 1; \
137 | rm pipelight-license.tmp; \
138 | done
139 |
140 | install -pm $(so_mode) src/linux/libpipelight/libpipelight.so "$(DESTDIR)$(libdir)/pipelight/libpipelight.so"
141 |
142 | sed $(SED_OPTS) bin/pipelight-plugin.in > pipelight-plugin.tmp
143 | touch -r bin/pipelight-plugin.in pipelight-plugin.tmp
144 | install -pm 0755 pipelight-plugin.tmp "$(DESTDIR)$(bindir)/pipelight-plugin"
145 | rm pipelight-plugin.tmp
146 |
147 | sed $(SED_OPTS) pipelight-plugin.1.in > pipelight-manpage.tmp
148 | touch -r pipelight-plugin.1.in pipelight-manpage.tmp
149 | install -pm 0644 pipelight-manpage.tmp "$(DESTDIR)$(mandir)/man1/pipelight-plugin.1"
150 | rm pipelight-manpage.tmp
151 |
152 | .PHONY: uninstall
153 | uninstall: config.make
154 | rm -f "$(DESTDIR)$(bindir)/pipelight-plugin" \
155 | $(DESTDIR)$(datadir)/pipelight/configs/pipelight-* \
156 | "$(DESTDIR)$(datadir)/pipelight/install-plugin" \
157 | $(DESTDIR)$(datadir)/pipelight/licenses/license-* \
158 | "$(DESTDIR)$(datadir)/pipelight/pluginloader.exe" \
159 | "$(DESTDIR)$(datadir)/pipelight/pluginloader64.exe" \
160 | $(DESTDIR)$(datadir)/pipelight/scripts/configure-* \
161 | "$(DESTDIR)$(datadir)/pipelight/sig-install-dependency.gpg" \
162 | "$(DESTDIR)$(datadir)/pipelight/wine" \
163 | "$(DESTDIR)$(datadir)/pipelight/wine64" \
164 | "$(DESTDIR)$(datadir)/pipelight/winecheck.exe" \
165 | "$(DESTDIR)$(datadir)/pipelight/winecheck64.exe" \
166 | "$(DESTDIR)$(libdir)/pipelight/libpipelight.so" \
167 | "$(DESTDIR)$(mandir)/man1/pipelight-plugin.1"
168 |
169 | rmdir --ignore-fail-on-non-empty \
170 | "$(DESTDIR)$(datadir)/pipelight/configs" \
171 | "$(DESTDIR)$(datadir)/pipelight/licenses" \
172 | "$(DESTDIR)$(datadir)/pipelight/scripts" \
173 | "$(DESTDIR)$(datadir)/pipelight" \
174 | "$(DESTDIR)$(libdir)/pipelight" \
175 | "$(DESTDIR)$(moz_plugin_path)"
176 |
177 | .PHONY: clean
178 | clean:
179 | for dir in src/linux src/windows src/common; do \
180 | $(MAKE) -C $$dir $@; \
181 | done
182 |
183 | .PHONY: dist-clean
184 | dist-clean: clean
185 | rm -f config.make
186 |
187 | .PHONY: pluginloader-tarball
188 | pluginloader-tarball: config.make all
189 | mkdir -p "$(DESTDIR)/src/windows/pluginloader"
190 | mkdir -p "$(DESTDIR)/src/windows/winecheck"
191 |
192 | install -pm 0755 "src/windows/pluginloader/pluginloader.exe" "$(DESTDIR)/src/windows/pluginloader/pluginloader.exe"
193 | if [ "$(with_win64)" = "true" ]; then \
194 | install -pm 0755 "src/windows/pluginloader/pluginloader64.exe" "$(DESTDIR)/src/windows/pluginloader/pluginloader64.exe"; \
195 | fi
196 |
197 | install -pm 0755 "src/windows/winecheck/winecheck.exe" "$(DESTDIR)/src/windows/winecheck/winecheck.exe"
198 | if [ "$(with_win64)" = "true" ]; then \
199 | install -pm 0755 "src/windows/winecheck/winecheck64.exe" "$(DESTDIR)/src/windows/winecheck/winecheck64.exe"; \
200 | fi
201 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Pipelight
2 |
3 | Pipelight is a special browser plugin which allows one to use Windows-only plugins inside NPAPI plugin-compatible \*nix browsers. We are currently focusing on Silverlight, Flash, Shockwave and the Unity Webplayer. The project needs a patched version of WINE to execute the plugins.
4 |
5 | ## Requirements
6 |
7 | ### Platform
8 | Pipelight requires a \*nix operating system (such as Linux or FreeBSD) running on an x86 (e.g. AMD or Intel) processor. Most non-mobile computers use an x86 processor.
9 |
10 | ### Browser
11 | Pipelight Requires a browser that supports NPAPI plugins.
12 |
13 | #### Gecko
14 | ##### Firefox
15 | Firefox versions under 52 work (as does the Firefox 52 ESR). After that, [NPAPI plugins are disabled](https://blog.mozilla.org/futurereleases/2015/10/08/npapi-plugins-in-firefox/) for everything but Flash.
16 |
17 | #### SeaMonkey
18 | [SeaMonkey](https://www.seamonkey-project.org/) versions under 2.50 support NPAPI plugins. SeaMonkey 2.50 nightlies still support both Flash and Silverlight plugins.
19 |
20 | #### Palemoon
21 | [Palemoon](http://www.palemoon.org/) pledges to support NPAPI plugins indefinitely.
22 |
23 | ### WebKit
24 | Webkit still supports NPAPI plugins, so you can use browsers such as [Midori](http://midori-browser.org/) and [Uzbl](https://www.uzbl.org/) without a problem. However, these browsers may need to run the plugins in external windows (put embed = no in your configuration file or set the PIPELIGHT_EMBED environment variable to 0).
25 |
26 | ### Blink
27 | Chrome/Chromium versions under 34 work. You'll have to apply [a couple patches](https://bugs.launchpad.net/pipelight/+bug/1307989) to get Chromium versions 34 or higher to work. Similarly, other browsers based on Chromium 34+, like Opera 15+ and Vivaldi, won't work.
28 |
29 | ### Presto
30 | Older versions of Opera use Presto rather than Blink, so you can use Opera versions under 15 without a problem.
31 |
32 | ## Installation
33 | To install, you must [compile WINE with the WINE Staging patches](http://web.archive.org/web/20160815170857/http://pipelight.net:80/cms/page-wine.html), [compile Pipelight](http://web.archive.org/web/20160815170857/http://pipelight.net:80/cms/install/compile-pipelight.html), and [enable the required plugins](http://web.archive.org/web/20160815170857/http://pipelight.net:80/cms/installation.html#section_2).
34 |
35 | See also [Gentoo's Netflix/Pipelight Wiki page](https://wiki.gentoo.org/wiki/Netflix/Pipelight) for some tips and troubleshooting advice.
36 |
37 | ### Pre-compiled binaries
38 | Unfortunately, Michael Müller, the initiator of the project, has given up on the project and has removed the repositories for supported distributions. One must now compile from source, which isn't difficult.
39 |
40 | ### Browser spoofing
41 | Unfortunately, services like Netflix detect one's browser instead of the browser's capabilities, so you may need to install a [user-agent switcher](https://github.com/keithbowes/user-agent-switcher).
42 |
43 | #### Uzbl
44 | If you use Uzbl and have the per-site settings script loaded, you can add this to $XDG\_DATA\_HOME/uzbl/per-site-settings:
45 |
.netflix.com
46 | .*
47 | set useragent Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0 @(+sh -c "pipelight-plugin --version | sed -e 's/\\s\\+/\\//g'")@
48 |
49 | #### Standalone programs
50 |
51 | If your interest is merely to watch Netflix (the original purpose of Pipelight), you can try an app like [Netflix Penguin](https://github.com/ergoithz/netflix-penguin), so that you won't have to install such an extension in your browser.
52 |
53 | ## Alternatives
54 | Microsoft has deprecated Silverlight and now streaming services are increasingly using HTML5 with EME. For such streaming services to work, you must use a browser that supports EME with the proper DRM plugin (usually Widevine). Such browsers include [Google Chrome](https://www.google.com/chrome/index.html) (37 or higher) and official builds of [Firefox](https://mozilla.com/) (52 or higher). Unfortunately, Chromium and other browsers based on it (Vivaldi, Opera, etc.) don't support EME, as they lack Google's proprietary DRM code. Similarly, only the prebuilt versions of Firefox from the Mozilla website support EME, but those built by yourself or by your distribution don't.
55 |
--------------------------------------------------------------------------------
/configure:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | init_dirs()
4 | {
5 | [[ -z "$moz_plugin_path" && ! -z "$libdir" ]] && moz_plugin_path="$libdir/mozilla/plugins"
6 | [[ -z "$moz_plugin_path" ]] && moz_plugin_path="/usr/lib/mozilla/plugins"
7 | [[ -z "$bindir" ]] && bindir="$1/bin"
8 | [[ -z "$datadir" ]] && datadir="$1/share"
9 | [[ -z "$libdir" ]] && libdir="$1/lib"
10 | [[ -z "$mandir" ]] && mandir="$1/share/man"
11 | }
12 |
13 | resolvepath()
14 | {
15 | if [ ! -z "$1" ]; then
16 | local path=$(echo "$1/" | sed -e "s|\${prefix}|$prefix|g")
17 | if [ "${path:0:1}" != "/" ]; then
18 | path="$(pwd)/$path"
19 | fi
20 | local oldpath="$path"
21 | while true; do
22 | path=$(echo "$path" | sed -e 's!/\.\{0,1\}/!/!')
23 | if [ "$path" == "$oldpath" ]; then break; fi
24 | oldpath="$path"
25 | done
26 | while true; do
27 | path=$(echo "$path" | sed -e 's!/\([^/]\{1,\}\)/\.\./!/!')
28 | if [ "$path" == "$oldpath" ]; then break; fi
29 | oldpath="$path"
30 | done
31 | if [ "$path" != "/" ] && [ "${path: -1}" == "/" ]; then
32 | path="${path%/}"
33 | fi
34 | echo "$path"
35 | fi
36 | return 0
37 | }
38 |
39 | usage()
40 | {
41 | echo ""
42 | echo "Usage: ./configure [--prefix=PREFIX] [--bindir=PATH] [--datadir=PATH]"
43 | echo " [--libdir=PATH] [--mandir=PATH] [--bash-interp=PATH]"
44 | echo " [--moz-plugin-path=PATH] [--gpg-exec=PATH]"
45 | echo " [--so-mode=OCTAL] [--debug] [--cxx=COMPILER]"
46 | echo " [--cxxflags=FLAGS] [--mingw-cxxflags=FLAGS]"
47 | echo ""
48 | echo " prebuilt options: [--git-commit=TAG/SHA1] [--downloader=CMDLINE]"
49 | echo ""
50 | echo " win32 options: [--win32-prebuilt] [--win32-cxx=COMPILER]"
51 | echo " [--win32-flags=FLAGS] [--win32-static]"
52 | echo " [--wine-path=PATH]"
53 | echo ""
54 | echo " win64 options: [--with-win64]"
55 | echo " [--win64-prebuilt] [--win64-cxx=COMPILER]"
56 | echo " [--win64-flags=FLAGS] [--win64-static]"
57 | echo " [--wine64-path=PATH]"
58 | echo ""
59 | }
60 |
61 | # Default configuration
62 | version="unknown"
63 | prefix="/usr/local"
64 | bindir=""
65 | datadir=""
66 | libdir=""
67 | mandir=""
68 | bash_interp="$(which bash)"
69 | if which gpg &> /dev/null; then
70 | gpg_exec="$(which gpg)"
71 | else
72 | gpg_exec="/usr/bin/gpg"
73 | fi
74 | moz_plugin_path=""
75 | so_mode="0644"
76 | debug="false"
77 |
78 | cxx=""
79 | cxxflags="$CXXFLAGS"
80 | mingw_cxxflags="$(echo "$CXXFLAGS" | \
81 | sed -e 's!-fstack-protector\(.[a-zA-Z0-9]*\)! !g' \
82 | -e 's!-m\([0-9]\|arch\|float-abi\|fpu\|tune\)[=]*\([a-zA-Z0-9-]*\)! !g' \
83 | -e 's![ \t]\+! !g' -e 's!\(^[ \t]*\|[ \t]*$\)!!g')"
84 |
85 | git_commit=""
86 | downloader=""
87 |
88 | win32_cxx=""
89 | win32_flags="-m32"
90 | win32_static=0
91 | wine_path="/opt/wine-compholio/bin/wine"
92 |
93 | with_win64="false"
94 | win64_cxx=""
95 | win64_flags="-m64"
96 | win64_static=0
97 | wine64_path=""
98 |
99 | while [[ $# > 0 ]] ; do
100 | CMD="$1"; shift
101 | case "$CMD" in
102 | --prefix=*)
103 | prefix="${CMD#*=}"
104 | ;;
105 | --prefix)
106 | prefix="$1"; shift
107 | ;;
108 |
109 | --bindir=*)
110 | bindir="${CMD#*=}"
111 | ;;
112 | --bindir)
113 | bindir="$1"; shift
114 | ;;
115 |
116 | --datadir=*)
117 | datadir="${CMD#*=}"
118 | ;;
119 | --datadir)
120 | datadir="$1"; shift
121 | ;;
122 |
123 | --libdir=*)
124 | libdir="${CMD#*=}"
125 | ;;
126 | --libdir)
127 | libdir="$1"; shift
128 | ;;
129 |
130 | --mandir=*)
131 | mandir="${CMD#*=}"
132 | ;;
133 | --mandir)
134 | mandir="$1"; shift
135 | ;;
136 |
137 | --bash-interp=*)
138 | bash_interp="${CMD#*=}"
139 | ;;
140 | --bash-interp)
141 | bash_interp="$1"; shift
142 | ;;
143 |
144 | --gpg-exec=*)
145 | gpg_exec="${CMD#*=}"
146 | ;;
147 | --gpg-exec)
148 | gpg_exec="$1"; shift
149 | ;;
150 |
151 | --moz-plugin-path=*)
152 | moz_plugin_path="${CMD#*=}"
153 | ;;
154 | --moz-plugin-path)
155 | moz_plugin_path="$1"; shift
156 | ;;
157 |
158 | --so-mode=*)
159 | so_mode="${CMD#*=}"
160 | ;;
161 | --so-mode)
162 | so_mode="$1"; shift
163 | ;;
164 |
165 | --debug)
166 | debug="true"
167 | ;;
168 |
169 | --cxx=*)
170 | cxx="${CMD#*=}"
171 | ;;
172 | --cxx)
173 | cxx="$1"; shift
174 | ;;
175 |
176 | --cxxflags=*)
177 | cxxflags="${CMD#*=}"
178 | ;;
179 | --cxxflags)
180 | cxxflags="$1"; shift
181 | ;;
182 |
183 | --mingw-cxxflags=*)
184 | mingw_cxxflags="${CMD#*=}"
185 | ;;
186 | --mingw-cxxflags)
187 | mingw_cxxflags="$1"; shift
188 | ;;
189 |
190 | --git-commit=*)
191 | git_commit="${CMD#*=}"
192 | ;;
193 | --git-commit)
194 | git_commit="$1"; shift
195 | ;;
196 |
197 | --downloader=*)
198 | downloader="${CMD#*=}"
199 | ;;
200 | --downloader)
201 | downloader="$1"; shift
202 | ;;
203 |
204 | --win32-prebuilt)
205 | win32_cxx="prebuilt"
206 | ;;
207 | --win32-cxx=*)
208 | win32_cxx="${CMD#*=}"
209 | ;;
210 | --win32-cxx)
211 | win32_cxx="$1"; shift
212 | ;;
213 |
214 | --win32-flags=*)
215 | win32_flags="$win32_flags ${CMD#*=}"
216 | ;;
217 | --win32-flags)
218 | win32_flags="$win32_flags $1"; shift
219 | ;;
220 | --win32-static)
221 | win32_static=1
222 | ;;
223 |
224 | --wine-path=*)
225 | wine_path="${CMD#*=}"
226 | ;;
227 | --wine-path)
228 | wine_path="$1"; shift
229 | ;;
230 |
231 | --with-win64)
232 | with_win64="true"
233 | ;;
234 |
235 | --win64-prebuilt)
236 | win64_cxx="prebuilt"
237 | ;;
238 | --win64-cxx=*)
239 | win64_cxx="${CMD#*=}"
240 | ;;
241 | --win64-cxx)
242 | win64_cxx="$1"; shift
243 | ;;
244 |
245 | --win64-flags=*)
246 | win64_flags="$win64_flags ${CMD#*=}"
247 | ;;
248 | --win64-flags)
249 | win64_flags="$win64_flags $1"; shift
250 | ;;
251 | --win64-static)
252 | win64_static=1
253 | ;;
254 |
255 | --wine64-path=*)
256 | wine64_path="${CMD#*=}"
257 | ;;
258 | --wine64-path)
259 | wine64_path="$1"; shift
260 | ;;
261 |
262 | --help)
263 | usage
264 | exit
265 | ;;
266 | *)
267 | echo "WARNING: Unknown argument $CMD." >&2
268 | ;;
269 | esac
270 | done
271 |
272 | # Determine current git commit
273 | if [ -z "$git_commit" ] && [ -d "./.git" ] && command -v git >/dev/null 2>&1; then
274 | git_commit="$(git log --pretty=format:'%H' -n 1)"
275 | fi
276 |
277 | # Get the version number
278 | changelog="$(head -n1 ./debian/changelog)"
279 | if [[ "$changelog" =~ \((.*)\)\ (UNRELEASED)? ]]; then
280 | version="${BASH_REMATCH[1]}"
281 | if [ "${BASH_REMATCH[2]}" == "UNRELEASED" ]; then
282 | version="$version-daily"
283 | elif [ -z "$git_commit" ]; then
284 | git_commit="v$version"
285 | fi
286 | fi
287 |
288 | # Intialize other dirs, if not already set by switches
289 | init_dirs "$prefix"
290 |
291 | # Try to autodetect linux compiler
292 | if [ -z "$cxx" ]; then
293 | if command -v g++ >/dev/null 2>&1; then
294 | cxx="g++"
295 | elif command -v clang++ > /dev/null 2>&1; then
296 | cxx="clang++"
297 | else
298 | echo "ERROR: No cxx compiler found. Please use --cxx to specify one."
299 | exit 1
300 | fi
301 | fi
302 |
303 | # In case of using prebuilt windows binaries we need the git_commit variable, and a downloader if the files don't exist yet
304 | if [ "$win32_cxx" == "prebuilt" ] || [ "$win64_cxx" == "prebuilt" ]; then
305 | if [ -z "$git_commit" ]; then
306 | echo "ERROR: Unable to determine git commit! Please use --git-commit to specify the tag/sha1 of this version."
307 | exit 1
308 | fi
309 |
310 | if [ ! -f "./pluginloader-$git_commit.tar.gz" ] || [ ! -f "./pluginloader-$git_commit.tar.gz.sig" ]; then
311 | if [ -z "$downloader" ]; then
312 | if command -v wget >/dev/null 2>&1; then
313 | downloader="wget -O"
314 | elif command -v fetch >/dev/null 2>&1; then
315 | downloader="fetch -o"
316 | else
317 | echo "ERROR: Could neither find wget nor fetch! Please use --downloader to specify a program."
318 | exit 1
319 | fi
320 | fi
321 | fi
322 | fi
323 |
324 | # Try to autodetect windows 32-bit compiler
325 | if [ -z "$win32_cxx" ]; then
326 | if command -v i686-w64-mingw32-g++ >/dev/null 2>&1; then
327 | win32_cxx="i686-w64-mingw32-g++"
328 | win32_static=1
329 |
330 | elif command -v mingw32-g++ > /dev/null 2>&1; then
331 | win32_cxx="mingw32-g++"
332 | win32_flags="$win32_flags -DMINGW32_FALLBACK"
333 | win32_static=1
334 |
335 | elif command -v i686-pc-mingw32-g++ > /dev/null 2>&1; then
336 | win32_cxx="i686-pc-mingw32-g++"
337 | win32_flags="$win32_flags -DMINGW32_FALLBACK"
338 | win32_static=1
339 |
340 | elif command -v i586-mingw32msvc-c++ > /dev/null 2>&1; then
341 | win32_cxx="i586-mingw32msvc-c++"
342 | win32_flags="$win32_flags -DMINGW32_FALLBACK"
343 | win32_static=1
344 |
345 | elif command -v wineg++ > /dev/null 2>&1; then
346 | win32_cxx="wineg++"
347 | win32_static=0
348 |
349 | else
350 | echo "ERROR: No mingw32-g++ compiler found. Please use --win32-cxx to specify one."
351 | exit 1
352 | fi
353 | fi
354 |
355 | # # Try to autodetect windows 64-bit compiler (if required)
356 | if [ "$with_win64" == "true" ] && [ -z "$win64_cxx" ]; then
357 | if command -v x86_64-w64-mingw32-g++ >/dev/null 2>&1; then
358 | win64_cxx="x86_64-w64-mingw32-g++"
359 | win64_static=1
360 |
361 | else
362 | echo "ERROR: No mingw64-g++ compiler found. Please use --win64-cxx to specify one."
363 | exit 1
364 | fi
365 | fi
366 |
367 | if [ "$win32_static" -ne 0 ]; then
368 | win32_flags="$win32_flags -static-libgcc -static-libstdc++ -static"
369 | fi
370 |
371 | if [ "$win64_static" -ne 0 ]; then
372 | win64_flags="$win64_flags -static-libgcc -static-libstdc++ -static"
373 | fi
374 |
375 | if [ ! -z "$mingw_cxxflags" ]; then
376 | win32_flags="$mingw_cxxflags $win32_flags"
377 | win64_flags="$mingw_cxxflags $win64_flags"
378 | fi
379 |
380 | if [ "$with_win64" == "true" ] && [ -z "$wine64_path" ]; then
381 | wine64_path="$wine_path/../wine64"
382 | fi
383 |
384 | # Normalize the paths
385 | prefix=$(resolvepath "$prefix")
386 | bindir=$(resolvepath "$bindir")
387 | datadir=$(resolvepath "$datadir")
388 | libdir=$(resolvepath "$libdir")
389 | mandir=$(resolvepath "$mandir")
390 | bash_interp=$(resolvepath "$bash_interp")
391 | gpg_exec=$(resolvepath "$gpg_exec")
392 | moz_plugin_path=$(resolvepath "$moz_plugin_path")
393 | wine_path=$(resolvepath "$wine_path")
394 | wine64_path=$(resolvepath "$wine64_path")
395 |
396 | (
397 | echo "#"
398 | echo "# This file is automatically created by ./configure, DO NOT EDIT!"
399 | echo "#"
400 | echo ""
401 | echo "# General"
402 | echo "version=$version"
403 | echo "prefix=$prefix"
404 | echo "bindir=$bindir"
405 | echo "datadir=$datadir"
406 | echo "libdir=$libdir"
407 | echo "mandir=$mandir"
408 | echo "bash_interp=$bash_interp"
409 | echo "gpg_exec=$gpg_exec"
410 | echo "moz_plugin_path=$moz_plugin_path"
411 | echo "so_mode=$so_mode"
412 | echo "debug=$debug"
413 | echo "cxx=$cxx"
414 | echo "cxxflags=$cxxflags"
415 | echo ""
416 | echo "# Prebuilt"
417 | echo "git_commit=$git_commit"
418 | echo "downloader=$downloader"
419 | echo ""
420 | echo "# Win32"
421 | echo "win32_cxx=$win32_cxx"
422 | echo "win32_flags=$win32_flags"
423 | echo "wine_path=$wine_path"
424 | echo ""
425 | echo "# Win64"
426 | echo "with_win64=$with_win64"
427 | echo "win64_cxx=$win64_cxx"
428 | echo "win64_flags=$win64_flags"
429 | echo "wine64_path=$wine64_path"
430 | ) > config.make
431 |
432 | echo "Configuration Summary"
433 | echo "---------------------"
434 | echo ""
435 | echo "Pipelight has been configured with:"
436 | while IFS="=" read key val; do
437 | if [ -z "$key" ]; then
438 | echo ""
439 | elif [ "${key:0:1}" != "#" ]; then
440 | printf "%20s = %s\n" "$(echo "$key" | sed -e 's|_|-|g')" "$val"
441 | fi
442 | done < config.make
443 | echo ""
444 | echo "IMPORTANT: Please ensure you have XATTR support enabled for both wine and"
445 | echo " your file system (required to watch DRM protected content)!"
446 | echo ""
447 |
448 | exit 0
449 |
--------------------------------------------------------------------------------
/debian/README-pipelight:
--------------------------------------------------------------------------------
1 | The pipelight package is only a meta package to install pipelight-multi
2 | and configure Silverlight for system-wide installation and is only used
3 | to stay compatible with old installations. It should no longer be used
4 | for new installations, install pipelight-multi instead.
--------------------------------------------------------------------------------
/debian/changelog:
--------------------------------------------------------------------------------
1 | pipelight-multi (0.2.9) UNRELEASED; urgency=low
2 |
3 | * Update Flash to 19.0.0.226
4 |
5 | -- Michael Mueller Fri, 16 Oct 2015 18:00:47 +0200
6 |
7 | pipelight-multi (0.2.8.2) RELEASED; urgency=low
8 |
9 | * Update Flash to 19.0.0.185
10 | * Update Shockwave to 12.2.0.162
11 | * Update Silverlight 5 to 5.1.40416.0
12 | * Update Unity3D checksum
13 | * Fix compatibility with gpg2
14 |
15 | -- Michael Mueller Sun, 04 Oct 2015 14:32:48 +0200
16 |
17 |
18 | pipelight-multi (0.2.8.1) RELEASED; urgency=low
19 |
20 | * Change dependency from wine-compholio to wine-staging for Debian/Ubuntu
21 | * Update checksum for Shockwave
22 |
23 | -- Michael Mueller Sun, 11 Jan 2015 05:09:54 +0100
24 |
25 |
26 | pipelight-multi (0.2.8) RELEASED; urgency=low
27 |
28 | * Use signature for install-dependency.sig in clearsign format
29 | * Use new key for signing install-dependency.sig (used for --update)
30 | * Use cached plugin information when plugin initialization fails
31 | * 'pipelight-plugin --update' now automatically updates file timestamps
32 | * Update Flash to 16.0.0.235
33 | * Update Silverlight to 5.1.30514.0
34 | * Update AdobeReader to 11.0.08
35 | * Update Shockwave to 12.1.5.155
36 | * Update Unity3D checksum
37 | * Update Foxit Reader to 7.0.6.1126 (broken in Wine 1.7.32)
38 | * Update Roblox checksum (broken in Wine 1.7.32)
39 | * Remove TrianglePlayer plugin (doesn't exist anymore?)
40 | * Avoid exporting unnecessary symbols in libpipelight.so
41 | * Rewrite Makefile system to automatically detect dependencies
42 | * Code cleanup
43 |
44 | -- Sebastian Lackner Wed, 10 Dec 2014 05:55:56 +0100
45 |
46 |
47 | pipelight-multi (0.2.7.3) RELEASED; urgency=high
48 |
49 | * Fix 'pipelight-plugin --update' command
50 |
51 | -- Sebastian Lackner Sun, 20 Jul 2014 05:24:43 +0200
52 |
53 |
54 | pipelight-multi (0.2.7.2) RELEASED; urgency=low
55 |
56 | * Update Flash to 14.0.0.145
57 | * Update Shockwave to 12.1.3.153
58 | * Update FoxitPDF to 6.2.1.0618
59 | * Update Unity3D to 4.5.2f1
60 | * Effectively drop group-privileges by calling initgroups()
61 | prior to setuid() and/or setgid()
62 | * Prefer `cp -af` over `install -m 0644`, but change timestamp
63 | * Add configure-switches: bash-interp, bindir, datadir, gpg-exec,
64 | libdir, mandir, mingw-cxxflags, so-modeq, git-commit
65 | * Preserve timestamps on 'make install'
66 | * Additional improvements to the build system
67 | * Fix --no-gpu-accel configure switch
68 |
69 | -- Michael Mueller Sat, 19 Jul 2014 22:51:15 +0200
70 |
71 |
72 | pipelight-multi (0.2.7.1) RELEASED; urgency=low
73 |
74 | * Update Shockwave to 12.1.2.152
75 | * Fix AMD detection for open source drivers
76 | * Make Pipelight FreeBSD compatible
77 |
78 | -- Michael Mueller Mon, 09 Jun 2014 22:57:23 +0200
79 |
80 |
81 | pipelight-multi (0.2.7) RELEASED; urgency=low
82 |
83 | * Update Flash to 13.0.0.214
84 | * Update Shockwave to 12.1.1.151
85 | * Update for Unity3D plugin
86 | * Update for Adobereader, FoxitReader and Roblox plugin
87 | * Added experimental TrianglePlayer plugin
88 | * Fixed pluginloader.exe crash when closing browser window and using
89 | multiple instances of the same plugin
90 | * Fix issue that Firefox detected wrong plugin version in some cases
91 | * Fix structure for x11drv_escape_set_drawable (linux windowless mode)
92 | * Integrate graphic driver check directly into pluginloader.exe
93 | * Allow changing strict draw ordering at runtime via context menu
94 | * Add system-check utility to verify that installation is correct
95 | * Remove full paths from plugin config files
96 | * Make scripts more compatible with BSD systems
97 | * Add --debug configure option
98 | * Code cleanup
99 |
100 | -- Michael Mueller Tue, 03 Jun 2014 03:09:13 +0200
101 |
102 |
103 | pipelight-multi (0.2.6) RELEASED; urgency=low
104 |
105 | * Update Silverlight to 5.1.30214.0
106 | * Add ViewRight for Caiway plugin
107 | * Update Flash to 12.0.0.77
108 | * Update Shockwave Player to 12.1.0.150
109 | * Update Roblox plugin
110 | * Added Vizzed RGR plugin
111 | * Add pipelight-plugin commandline switch --list-enabled-all
112 | * Silverlight now works even with less strict user agent settings
113 | * Made pluginloader 64-bit compatible and added experimental 64-bit
114 | version of Flash
115 | * Add implementation for NPN_PluginThreadAsyncCall
116 | * Some first steps to make Pipelight MacOS compatible
117 | * --win{32/64}-prebuilt now automatically downloads the prebuilt binary
118 | if it doesn't exist yet in the 'make' step
119 | * Fixed compilation of 32bit pluginloader with wineg++
120 | * More code cleanup
121 |
122 | -- Michael Mueller Sun, 06 Apr 2014 04:42:15 +0200
123 |
124 |
125 | pipelight-multi (0.2.5) RELEASED; urgency=low
126 |
127 | * Update Flash to 12.0.0.70
128 | * Update version of Unity3D, Shockwave and FoxitPDF
129 | * Add np-ActiveX plugin
130 | * Add Roblox plugin
131 | * Add Hikvision Webcontrol plugin as experimental plugin
132 | * install-dependency: Fix compatibility with old versions of mktemp
133 | * Add compile flag -DMINGW32_FALLBACK for old versions of Mingw
134 | * Increase startup timeout for Wine from 20sec to 1min (for slow PCs)
135 | * Add man page for pipelight-plugin commandline utility
136 | * Moved configure-* scripts to /usr/share/pipelight/scripts/*
137 |
138 | -- Michael Mueller Sat, 22 Feb 2014 02:46:41 +0100
139 |
140 |
141 | pipelight-multi (0.2.4.2) RELEASED; urgency=high
142 |
143 | * Improved identifier caching system to ensure that the linux side never
144 | uses invalid values
145 | * Don't require ScheduleTimer and UnscheduleTimer function calls
146 | * Revert PIPELIGHT_SYNC in some specific cases, where some browsers seem
147 | to behave differently - will be readded later after some more testing
148 |
149 | -- Michael Mueller Mon, 20 Jan 2014 01:11:27 +0100
150 |
151 |
152 | pipelight-multi (0.2.4.1) RELEASED; urgency=high
153 |
154 | * Fix a regression with Firefox/Opera browsers, which pass a malformed
155 | value in the plugin initialization array
156 |
157 | -- Michael Mueller Sun, 19 Jan 2014 18:13:43 +0100
158 |
159 |
160 | pipelight-multi (0.2.4) RELEASED; urgency=low
161 |
162 | * Add Widevine plugin (version 6.0.0.12442)
163 | * Add experimental Adobe Reader plugin (version 11.0.06)
164 | * Updated Flash plugin to version 12.0.0.43
165 | * Updated version of Unity3D and FoxitPDF
166 | * Added additional wine patches to improve performance
167 | * Several speed improvements like: Give control back to plugin/browser before
168 | cleaning up stuff, use async calls when possible, improved refcounting
169 | system, use cache for NPIdentifiers
170 | * Show corresponding plugin and library licenses when activating a module
171 | * Add experimental strictDrawOrdering support (can help in case of drawing
172 | bugs with AMD graphic cards)
173 | * Added experimental linuxWindowlessMode (required by browsers without
174 | XEMBED support, like for example QT5 browsers)
175 | * Change behaviour of install-dependency to stop on the first failure
176 | * Several smaller bugs fixed and other code improvements
177 |
178 | -- Michael Mueller Sun, 19 Jan 2014 01:35:20 +0100
179 |
180 |
181 | pipelight-multi (0.2.3) RELEASED; urgency=low
182 |
183 | * Updated Silverlight to version 5.1.20913.0
184 | * Updated Flash plugin to version 11.9.900.170
185 | * Updated version of Unity3D and Shockwave
186 | * Added pulseaudio patches to wine-compholio
187 | * Added install-dependency supports for the debug version of the flash
188 | plugin (wine-flash-debug-installer)
189 | * Fixed a bug that the plugin resolution is not set correct in
190 | non-embedded mode
191 | * Added additional checks to ensure that the windows and linux part of
192 | pipelight are compatible
193 | * Improved sandboxing support to allow sandboxing even on the first startup
194 | * Show sandbox status and wine version in popup menu
195 | * Several code optimizations and improvements
196 | * Added experimental plugins: foxitpdf, grandstream (not created by default,
197 | but can be unlocked with: sudo pipelight-plugin --unlock-plugin PLUGIN)
198 |
199 | -- Michael Mueller Sat, 14 Dec 2013 16:54:15 +0100
200 |
201 |
202 | pipelight-multi (0.2.2) RELEASED; urgency=high
203 |
204 | * Updated flash to version 11.9.900.152 (security update!) and unity 3D
205 | installer checksum
206 | * Fixed an error when the gpu acceleration check is set to /bin/false
207 | * Added an additional wine patch to fix loading problems with TestOut
208 | * Added additional checks to ensure that the wine prefix is owned by
209 | the correct user
210 | * Fixed kdialog/qdbus error in install-dependency script
211 |
212 | -- Michael Mueller Thu, 14 Nov 2013 22:57:34 +0100
213 |
214 |
215 | pipelight-multi (0.2.1) RELEASED; urgency=medium
216 |
217 | * Added shockwave and unity3d plugin (including installer)
218 | * Added wine-wininet-installer to work around some bugs in the wine
219 | implementation (eg. authentication dialogs not working)
220 | * Fixed a bug in install-dep that the downloads were not cached anymore
221 | * Added --destdir to install-dep script (required for distributions without
222 | postinstallation step)
223 | * Added workaround for archlinux, which seems to set always the
224 | environment variable MOZ_PLUGIN_PATH
225 | * The win32 part is now statically linked against the mingw32 runtime
226 | and we therefore dropped the dependency on mingw for end users
227 | which should save a lot of space
228 | * Enable GPU acceleration for flash
229 | * For Silverlight and flash: Show popup menu entries when right-clicking on
230 | the plugin (more options will be added later)
231 | * Added additional workaround for a Chrome bug
232 | * Updated the wine-compholio patches to work around problems with multiple
233 | browser tabs and the flash plugin, moreover to fix a bug related to the
234 | QT XEmbed libraries
235 | * Added experimental "Stay in fullscreen" context menu for Silverlight and
236 | Flash
237 | * Fixed a bug where in windowlessmode the focus is not always set correctly
238 |
239 | -- Michael Mueller Wed, 30 Oct 2013 18:47:18 +0100
240 |
241 |
242 | pipelight-multi (0.2.0) RELEASED; urgency=low
243 |
244 | * Implemented possibility to use multiple windows plugins
245 | * Renamed package to pipelight-multi, converted pipelight into a meta package
246 | (contains only a readme file and enables Silverlight to be backwards
247 | compatible)
248 | * Dropped dependencies on other packages than wine-compholio and moved all
249 | required scripts into pipelight-multi
250 | * Added config and downloader for Flash
251 | * Added several wine patches to fix deadlocks and race conditions when using
252 | hardware acceleration with Silverlight
253 | * Removed all Silverlight specific config options (except graphicDriverCheck)
254 | * Added possibility to read plugin path from the registry, so that it is not
255 | necessary to update the configuration on a plugin update
256 | * Added pipelight-plugin script which allows the user to enable or disable
257 | specific plugins for either his account or system-wide
258 | * Code refactoring (renamed files, moved shared code into common.h, use of
259 | inline functions when appropriate, ...)
260 | * Added PIPELIGHT_X11WINDOW environment variable (can be used for XBMC-like
261 | plugins based on pipelight)
262 | * Fixed several smaller bugs
263 |
264 | -- Michael Mueller Mon, 14 Oct 2013 23:35:37 +0200
265 |
266 |
267 | pipelight (0.1-4) RELEASED; urgency=low
268 |
269 | * Add unofficial flash support by fixing some bugs and implementing
270 | additional functions
271 | * Added HIGHLY experimental sandbox support
272 | * Imported new translations (nl, en_GB)
273 | * Improved and cleaned up debugging code for developers
274 |
275 | -- Michael Mueller Mon, 16 Sep 2013 03:43:00 +0200
276 |
277 |
278 | pipelight (0.1-3) RELEASED; urgency=low
279 |
280 | * Added additional wine patches, which allows one to use additional streaming
281 | pages like for example LOVEFiLM
282 | * Added configuration option that allows to install additional dependencies
283 | * Initialize FPU registers on startup (fixes error popup messages)
284 | * Code cleanup and some bug fixes
285 |
286 | -- Michael Mueller Sun, 08 Sep 2013 01:00:00 +0200
287 |
288 |
289 | pipelight (0.1-2-1) RELEASED; urgency=low
290 |
291 | * Fixed bug that a symlink can not be created if the /usr/lib/mozilla/plugins
292 | directory does not exist
293 |
294 | -- Michael Mueller Mon, 28 Aug 2013 22:28:00 +0200
295 |
296 |
297 | pipelight (0.1-2) RELEASED; urgency=low
298 |
299 | * Fixed build flags for wingw32. (fixes lp issue 1213725)
300 | * Added documentation for option gccRuntimeDlls to the config file
301 | * Added experimental usermode timer support (experimental-userModeTimer)
302 | * Added an alternative event handling method using async calls
303 | to make it work with browsers like Midori which don't support timers.
304 | * Fixed the wine xembed patch such that it also should work on KDE
305 | and others (fixes lp issue 1213784)
306 | * Added PIPELIGHT_CONFIG env. variable to overwrite the config search path.
307 | * Merged with changes by Joseph Yasi (merge 180968)
308 | Allows to define WINEARCH via the config variable wineArch.
309 | * Added fix to make Pipelight working with Opera (fixes lp issue 1214447)
310 | * Added the possibility to enable/disable pipelight system-wide
311 | * Changed meaning of winePath variable in config file - its now the path to
312 | the wine directory, not the wine executable (see default config)
313 | * Prevent Wine from asking for Gecko or Mono
314 | * Automatically enable/disable windowlessMode when required
315 | * Detect Opera browser automatically to set eventAsyncCall to true
316 | * Added a config option to execute Javascript on instance creation,
317 | this allows faking the user agent in some cases without external plugin
318 | * Added diagnostic debug output via JavaScript in case of an error
319 | * Changed the meaning of overwriteArg, which is now also able to add
320 | arguments if they were not defined by the website
321 | * Provide Wine patch which implements a part of the
322 | IDirect3DSwapChain9Ex interface which is required to get hardware
323 | acceleration with Silverlight
324 | * Added GPU driver check script, which will check if the driver is known
325 | to work with hardware acceleration and Silverlight
326 |
327 | -- Michael Mueller Mon, 28 Aug 2013 03:40:00 +0200
328 |
329 |
330 | pipelight (0.1-1) RELEASED; urgency=low
331 |
332 | * Initial release.
333 |
334 | -- Michael Mueller Mon, 16 Aug 2013 20:26:54 +0200
335 |
--------------------------------------------------------------------------------
/debian/compat:
--------------------------------------------------------------------------------
1 | 8
2 |
--------------------------------------------------------------------------------
/debian/control:
--------------------------------------------------------------------------------
1 | Source: pipelight-multi
2 | Maintainer: Michael Mueller
3 | Section: misc
4 | Priority: optional
5 | Standards-Version: 3.9.3
6 | Build-Depends: debhelper (>= 8), libc6-dev(>= 2.11.1), libx11-dev (>= 2:1.3),
7 | mingw-w64, g++-mingw-w64, make (>= 3.81), g++ (>= 4:4.4), sed (>= 4.2.1), po-debconf
8 |
9 | Package: pipelight-multi
10 | Architecture: amd64 i386
11 | Depends: ${shlibs:Depends}, ${misc:Depends}, libx11-6, mesa-utils,
12 | ttf-mscorefonts-installer, wget, zenity | kde-baseapps-bin, zenity | qdbus,
13 | wine-staging, bash (>= 4.0), unzip, cabextract, gnupg
14 | Conflicts: pipelight (<< 0.2.0~)
15 | Replaces: pipelight (<< 0.2.0~)
16 | Description: allows usage of Windows NPAPI plugins through Wine
17 | Pipelight allows one to use NPAPI plugins inside a Linux browser
18 | with the help of Wine.
19 |
--------------------------------------------------------------------------------
/debian/copyright:
--------------------------------------------------------------------------------
1 | Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
2 | Upstream-Name: Pipelight
3 | Upstream-Contact: Michael Mueller
4 | Source: http://fds-team.de/cms/projects.html
5 |
6 | Files: *
7 | Copyright: 2013, Michael Mueller
8 | 2013, Sebastian Lackner
9 | License: MPL-1.1 or GPL-2 or LGPL-2.1
10 |
11 | Files: src/*
12 | Copyright: 1998, Netscape Communications Corporation
13 | 1998, Josh Aas
14 | 2013, Michael Mueller
15 | 2013, Sebastian Lackner
16 | License: MPL-1.1 or GPL-2 or LGPL-2.1
17 |
18 | Files: src/npapi-headers/*
19 | Copyright: 1998, Netscape Communications Corporation
20 | 1998, Josh Aas
21 | License: MPL-1.1 or GPL-2 or LGPL-2.1
22 |
23 | Files: src/npapi-headers/npruntime.h
24 | Copyright: 2014, Michael Müller
25 | License: MPL-1.1 or GPL-2 or LGPL-2.1
26 |
27 | Files: debian/po/*
28 | Copyright: see individual files for the creator of the translation
29 | License: BSD-3-clause
30 |
31 | License: MPL-1.1
32 | The contents of this file are subject to the Mozilla Public License Version
33 | 1.1 (the "License"); you may not use this file except in compliance with
34 | the License. You may obtain a copy of the License at
35 | http://www.mozilla.org/MPL/
36 | .
37 | Software distributed under the License is distributed on an "AS IS" basis,
38 | WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
39 | for the specific language governing rights and limitations under the
40 | License.
41 | .
42 | The Original Code is mozilla.org code.
43 | .
44 | The Initial Developer of the Original Code is
45 | Netscape Communications Corporation.
46 | Portions created by the Initial Developer are Copyright (C) 1998
47 | the Initial Developer. All Rights Reserved.
48 | .
49 | Contributor(s):
50 | Josh Aas
51 | Michael Müller
52 | Sebastian Lackner
53 | .
54 | Alternatively, the contents of this file may be used under the terms of
55 | either the GNU General Public License Version 2 or later (the "GPL"), or
56 | the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
57 | in which case the provisions of the GPL or the LGPL are applicable instead
58 | of those above. If you wish to allow use of your version of this file only
59 | under the terms of either the GPL or the LGPL, and not to allow others to
60 | use your version of this file under the terms of the MPL, indicate your
61 | decision by deleting the provisions above and replace them with the notice
62 | and other provisions required by the GPL or the LGPL. If you do not delete
63 | the provisions above, a recipient may use your version of this file under
64 | the terms of any one of the MPL, the GPL or the LGPL.
65 |
66 | License: GPL-2
67 | This program is free software; you can redistribute it
68 | and/or modify it under the terms of the GNU General Public
69 | License as published by the Free Software Foundation; either
70 | version 2 of the License, or (at your option) any later
71 | version.
72 | .
73 | This program is distributed in the hope that it will be
74 | useful, but WITHOUT ANY WARRANTY; without even the implied
75 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
76 | PURPOSE. See the GNU General Public License for more
77 | details.
78 | .
79 | You should have received a copy of the GNU General Public
80 | License along with this package; if not, write to the Free
81 | Software Foundation, Inc., 51 Franklin St, Fifth Floor,
82 | Boston, MA 02110-1301 USA
83 | .
84 | On Debian systems, the full text of the GNU General Public
85 | License version 2 can be found in the file
86 | `/usr/share/common-licenses/GPL-2'.
87 |
88 | License: LGPL-2.1
89 | This library is free software; you can redistribute it and/or
90 | modify it under the terms of the GNU Lesser General Public
91 | License as published by the Free Software Foundation; either
92 | version 2.1 of the License, or (at your option) any later version.
93 | .
94 | This library is distributed in the hope that it will be useful,
95 | but WITHOUT ANY WARRANTY; without even the implied warranty of
96 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
97 | Lesser General Public License for more details.
98 | .
99 | You should have received a copy of the GNU Lesser General Public
100 | License along with this library; if not, write to the Free Software
101 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
102 | .
103 | On Debian systems, the full text of the GNU Lesser General Public
104 | License version 2.1 can be found in the file
105 | `/usr/share/common-licenses/LGPL-2.1'.
106 |
107 | License: BSD-3-clause
108 | Redistribution and use in source and binary forms, with or without
109 | modification, are permitted provided that the following conditions are
110 | met:
111 | .
112 | * Redistributions of source code must retain the above copyright
113 | notice, this list of conditions and the following disclaimer.
114 | .
115 | * Redistributions in binary form must reproduce the above
116 | copyright notice, this list of conditions and the following
117 | disclaimer in the documentation and/or other materials provided
118 | with the distribution.
119 | .
120 | * Neither the name of the Pipelight project nor the names of its
121 | contributors may be used to endorse or promote products derived
122 | from this software without specific prior written permission.
123 | .
124 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
125 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
126 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
127 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
128 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
129 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
130 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
131 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
132 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
133 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
134 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/debian/pipelight-multi.postinst:
--------------------------------------------------------------------------------
1 | #!/bin/sh -e
2 | #DEBHELPER#
3 |
4 | pipelight-plugin --create-mozilla-plugins
5 |
--------------------------------------------------------------------------------
/debian/pipelight-multi.prerm:
--------------------------------------------------------------------------------
1 | #!/bin/sh -e
2 | #DEBHELPER#
3 |
4 | pipelight-plugin --remove-mozilla-plugins
5 |
6 | # Keep the previous configuration on an update
7 | if [ "$1" != "upgrade" ]; then
8 | pipelight-plugin --disable-all
9 | fi
10 |
--------------------------------------------------------------------------------
/debian/rules:
--------------------------------------------------------------------------------
1 | #!/usr/bin/make -f
2 | %:
3 | dh $@
4 |
5 | override_dh_auto_configure:
6 | ifeq ($(DEB_BUILD_ARCH), amd64)
7 | dh_auto_configure -- --win32-static --gcc-runtime-dlls="" --with-win64 --wine-path="/opt/wine-staging/bin/wine"
8 | else
9 | dh_auto_configure -- --win32-static --gcc-runtime-dlls="" --wine-path="/opt/wine-staging/bin/wine"
10 | endif
11 |
12 | override_dh_auto_install:
13 | $(MAKE) DESTDIR=$$(pwd)/debian/pipelight-multi install
14 | mkdir -p $$(pwd)/debian/pipelight/usr/share/pipelight
15 | install -m 0644 "$$(pwd)/debian/README-pipelight" "$$(pwd)/debian/pipelight/usr/share/pipelight"
16 |
--------------------------------------------------------------------------------
/debian/source/format:
--------------------------------------------------------------------------------
1 | 3.0 (quilt)
2 |
--------------------------------------------------------------------------------
/debian/source/options:
--------------------------------------------------------------------------------
1 | compression = xz
2 |
--------------------------------------------------------------------------------
/include/npapi-headers/npfunctions.h:
--------------------------------------------------------------------------------
1 | /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 | /* ***** BEGIN LICENSE BLOCK *****
3 | * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4 | *
5 | * The contents of this file are subject to the Mozilla Public License Version
6 | * 1.1 (the "License"); you may not use this file except in compliance with
7 | * the License. You may obtain a copy of the License at
8 | * http://www.mozilla.org/MPL/
9 | *
10 | * Software distributed under the License is distributed on an "AS IS" basis,
11 | * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 | * for the specific language governing rights and limitations under the
13 | * License.
14 | *
15 | * The Original Code is mozilla.org code.
16 | *
17 | * The Initial Developer of the Original Code is
18 | * Netscape Communications Corporation.
19 | * Portions created by the Initial Developer are Copyright (C) 1998
20 | * the Initial Developer. All Rights Reserved.
21 | *
22 | * Contributor(s):
23 | *
24 | * Alternatively, the contents of this file may be used under the terms of
25 | * either the GNU General Public License Version 2 or later (the "GPL"), or
26 | * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27 | * in which case the provisions of the GPL or the LGPL are applicable instead
28 | * of those above. If you wish to allow use of your version of this file only
29 | * under the terms of either the GPL or the LGPL, and not to allow others to
30 | * use your version of this file under the terms of the MPL, indicate your
31 | * decision by deleting the provisions above and replace them with the notice
32 | * and other provisions required by the GPL or the LGPL. If you do not delete
33 | * the provisions above, a recipient may use your version of this file under
34 | * the terms of any one of the MPL, the GPL or the LGPL.
35 | *
36 | * ***** END LICENSE BLOCK ***** */
37 |
38 | #ifndef npfunctions_h_
39 | #define npfunctions_h_
40 |
41 | #ifdef __OS2__
42 | #pragma pack(1)
43 | #define NP_LOADDS _System
44 | #else
45 | #define NP_LOADDS
46 | #endif
47 |
48 | #include "npapi.h"
49 | #include "npruntime.h"
50 |
51 | typedef NPError (* NP_LOADDS NPP_NewProcPtr)(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc, char* argn[], char* argv[], NPSavedData* saved);
52 | typedef NPError (* NP_LOADDS NPP_DestroyProcPtr)(NPP instance, NPSavedData** save);
53 | typedef NPError (* NP_LOADDS NPP_SetWindowProcPtr)(NPP instance, NPWindow* window);
54 | typedef NPError (* NP_LOADDS NPP_NewStreamProcPtr)(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16_t* stype);
55 | typedef NPError (* NP_LOADDS NPP_DestroyStreamProcPtr)(NPP instance, NPStream* stream, NPReason reason);
56 | typedef int32_t (* NP_LOADDS NPP_WriteReadyProcPtr)(NPP instance, NPStream* stream);
57 | typedef int32_t (* NP_LOADDS NPP_WriteProcPtr)(NPP instance, NPStream* stream, int32_t offset, int32_t len, void* buffer);
58 | typedef void (* NP_LOADDS NPP_StreamAsFileProcPtr)(NPP instance, NPStream* stream, const char* fname);
59 | typedef void (* NP_LOADDS NPP_PrintProcPtr)(NPP instance, NPPrint* platformPrint);
60 | typedef int16_t (* NP_LOADDS NPP_HandleEventProcPtr)(NPP instance, void* event);
61 | typedef void (* NP_LOADDS NPP_URLNotifyProcPtr)(NPP instance, const char* url, NPReason reason, void* notifyData);
62 | /* Any NPObjects returned to the browser via NPP_GetValue should be retained
63 | by the plugin on the way out. The browser is responsible for releasing. */
64 | typedef NPError (* NP_LOADDS NPP_GetValueProcPtr)(NPP instance, NPPVariable variable, void *ret_value);
65 | typedef NPError (* NP_LOADDS NPP_SetValueProcPtr)(NPP instance, NPNVariable variable, void *value);
66 | typedef NPBool (* NP_LOADDS NPP_GotFocusPtr)(NPP instance, NPFocusDirection direction);
67 | typedef void (* NP_LOADDS NPP_LostFocusPtr)(NPP instance);
68 | typedef void (* NP_LOADDS NPP_URLRedirectNotifyPtr)(NPP instance, const char* url, int32_t status, void* notifyData);
69 | typedef NPError (* NP_LOADDS NPP_ClearSiteDataPtr)(const char* site, uint64_t flags, uint64_t maxAge);
70 | typedef char** (* NP_LOADDS NPP_GetSitesWithDataPtr)(void);
71 | typedef void (* NP_LOADDS NPP_DidCompositePtr)(NPP instance);
72 |
73 | typedef NPError (* NP_LOADDS NPN_GetValueProcPtr)(NPP instance, NPNVariable variable, void *ret_value);
74 | typedef NPError (* NP_LOADDS NPN_SetValueProcPtr)(NPP instance, NPPVariable variable, void *value);
75 | typedef NPError (* NP_LOADDS NPN_GetURLNotifyProcPtr)(NPP instance, const char* url, const char* window, void* notifyData);
76 | typedef NPError (* NP_LOADDS NPN_PostURLNotifyProcPtr)(NPP instance, const char* url, const char* window, uint32_t len, const char* buf, NPBool file, void* notifyData);
77 | typedef NPError (* NP_LOADDS NPN_GetURLProcPtr)(NPP instance, const char* url, const char* window);
78 | typedef NPError (* NP_LOADDS NPN_PostURLProcPtr)(NPP instance, const char* url, const char* window, uint32_t len, const char* buf, NPBool file);
79 | typedef NPError (* NP_LOADDS NPN_RequestReadProcPtr)(NPStream* stream, NPByteRange* rangeList);
80 | typedef NPError (* NP_LOADDS NPN_NewStreamProcPtr)(NPP instance, NPMIMEType type, const char* window, NPStream** stream);
81 | typedef int32_t (* NP_LOADDS NPN_WriteProcPtr)(NPP instance, NPStream* stream, int32_t len, void* buffer);
82 | typedef NPError (* NP_LOADDS NPN_DestroyStreamProcPtr)(NPP instance, NPStream* stream, NPReason reason);
83 | typedef void (* NP_LOADDS NPN_StatusProcPtr)(NPP instance, const char* message);
84 | /* Browser manages the lifetime of the buffer returned by NPN_UserAgent, don't
85 | depend on it sticking around and don't free it. */
86 | typedef const char* (* NP_LOADDS NPN_UserAgentProcPtr)(NPP instance);
87 | typedef void* (* NP_LOADDS NPN_MemAllocProcPtr)(uint32_t size);
88 | typedef void (* NP_LOADDS NPN_MemFreeProcPtr)(void* ptr);
89 | typedef uint32_t (* NP_LOADDS NPN_MemFlushProcPtr)(uint32_t size);
90 | typedef void (* NP_LOADDS NPN_ReloadPluginsProcPtr)(NPBool reloadPages);
91 | typedef void* (* NP_LOADDS NPN_GetJavaEnvProcPtr)(void);
92 | typedef void* (* NP_LOADDS NPN_GetJavaPeerProcPtr)(NPP instance);
93 | typedef void (* NP_LOADDS NPN_InvalidateRectProcPtr)(NPP instance, NPRect *rect);
94 | typedef void (* NP_LOADDS NPN_InvalidateRegionProcPtr)(NPP instance, NPRegion region);
95 | typedef void (* NP_LOADDS NPN_ForceRedrawProcPtr)(NPP instance);
96 | typedef NPIdentifier (* NP_LOADDS NPN_GetStringIdentifierProcPtr)(const NPUTF8* name);
97 | typedef void (* NP_LOADDS NPN_GetStringIdentifiersProcPtr)(const NPUTF8** names, int32_t nameCount, NPIdentifier* identifiers);
98 | typedef NPIdentifier (* NP_LOADDS NPN_GetIntIdentifierProcPtr)(int32_t intid);
99 | typedef bool (* NP_LOADDS NPN_IdentifierIsStringProcPtr)(NPIdentifier identifier);
100 | typedef NPUTF8* (* NP_LOADDS NPN_UTF8FromIdentifierProcPtr)(NPIdentifier identifier);
101 | typedef int32_t (* NP_LOADDS NPN_IntFromIdentifierProcPtr)(NPIdentifier identifier);
102 | typedef NPObject* (* NP_LOADDS NPN_CreateObjectProcPtr)(NPP npp, NPClass *aClass);
103 | typedef NPObject* (* NP_LOADDS NPN_RetainObjectProcPtr)(NPObject *obj);
104 | typedef void (* NP_LOADDS NPN_ReleaseObjectProcPtr)(NPObject *obj);
105 | typedef bool (* NP_LOADDS NPN_InvokeProcPtr)(NPP npp, NPObject* obj, NPIdentifier methodName, const NPVariant *args, uint32_t argCount, NPVariant *result);
106 | typedef bool (* NP_LOADDS NPN_InvokeDefaultProcPtr)(NPP npp, NPObject* obj, const NPVariant *args, uint32_t argCount, NPVariant *result);
107 | typedef bool (* NP_LOADDS NPN_EvaluateProcPtr)(NPP npp, NPObject *obj, NPString *script, NPVariant *result);
108 | typedef bool (* NP_LOADDS NPN_GetPropertyProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName, NPVariant *result);
109 | typedef bool (* NP_LOADDS NPN_SetPropertyProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName, const NPVariant *value);
110 | typedef bool (* NP_LOADDS NPN_RemovePropertyProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName);
111 | typedef bool (* NP_LOADDS NPN_HasPropertyProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName);
112 | typedef bool (* NP_LOADDS NPN_HasMethodProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName);
113 | typedef void (* NP_LOADDS NPN_ReleaseVariantValueProcPtr)(NPVariant *variant);
114 | typedef void (* NP_LOADDS NPN_SetExceptionProcPtr)(NPObject *obj, const NPUTF8 *message);
115 | typedef void (* NP_LOADDS NPN_PushPopupsEnabledStateProcPtr)(NPP npp, NPBool enabled);
116 | typedef void (* NP_LOADDS NPN_PopPopupsEnabledStateProcPtr)(NPP npp);
117 | typedef bool (* NP_LOADDS NPN_EnumerateProcPtr)(NPP npp, NPObject *obj, NPIdentifier **identifier, uint32_t *count);
118 | typedef void (* NP_LOADDS NPN_PluginThreadAsyncCallProcPtr)(NPP instance, void (*func)(void *), void *userData);
119 | typedef bool (* NP_LOADDS NPN_ConstructProcPtr)(NPP npp, NPObject* obj, const NPVariant *args, uint32_t argCount, NPVariant *result);
120 | typedef NPError (* NP_LOADDS NPN_GetValueForURLPtr)(NPP npp, NPNURLVariable variable, const char *url, char **value, uint32_t *len);
121 | typedef NPError (* NP_LOADDS NPN_SetValueForURLPtr)(NPP npp, NPNURLVariable variable, const char *url, const char *value, uint32_t len);
122 | typedef NPError (* NP_LOADDS NPN_GetAuthenticationInfoPtr)(NPP npp, const char *protocol, const char *host, int32_t port, const char *scheme, const char *realm, char **username, uint32_t *ulen, char **password, uint32_t *plen);
123 | typedef uint32_t (* NP_LOADDS NPN_ScheduleTimerPtr)(NPP instance, uint32_t interval, NPBool repeat, void (*timerFunc)(NPP npp, uint32_t timerID));
124 | typedef void (* NP_LOADDS NPN_UnscheduleTimerPtr)(NPP instance, uint32_t timerID);
125 | typedef NPError (* NP_LOADDS NPN_PopUpContextMenuPtr)(NPP instance, NPMenu* menu);
126 | typedef NPBool (* NP_LOADDS NPN_ConvertPointPtr)(NPP instance, DOUBLE sourceX, DOUBLE sourceY, NPCoordinateSpace sourceSpace, DOUBLE *destX, DOUBLE *destY, NPCoordinateSpace destSpace);
127 | typedef NPBool (* NP_LOADDS NPN_HandleEventPtr)(NPP instance, void *event, NPBool handled);
128 | typedef NPBool (* NP_LOADDS NPN_UnfocusInstancePtr)(NPP instance, NPFocusDirection direction);
129 | typedef void (* NP_LOADDS NPN_URLRedirectResponsePtr)(NPP instance, void* notifyData, NPBool allow);
130 | typedef NPError (* NP_LOADDS NPN_InitAsyncSurfacePtr)(NPP instance, NPSize *size, NPImageFormat format, void *initData, NPAsyncSurface *surface);
131 | typedef NPError (* NP_LOADDS NPN_FinalizeAsyncSurfacePtr)(NPP instance, NPAsyncSurface *surface);
132 | typedef void (* NP_LOADDS NPN_SetCurrentAsyncSurfacePtr)(NPP instance, NPAsyncSurface *surface, NPRect *changed);
133 |
134 | typedef struct _NPPluginFuncs {
135 | uint16_t size;
136 | uint16_t version;
137 | NPP_NewProcPtr newp;
138 | NPP_DestroyProcPtr destroy;
139 | NPP_SetWindowProcPtr setwindow;
140 | NPP_NewStreamProcPtr newstream;
141 | NPP_DestroyStreamProcPtr destroystream;
142 | NPP_StreamAsFileProcPtr asfile;
143 | NPP_WriteReadyProcPtr writeready;
144 | NPP_WriteProcPtr write;
145 | NPP_PrintProcPtr print;
146 | NPP_HandleEventProcPtr event;
147 | NPP_URLNotifyProcPtr urlnotify;
148 | void* javaClass;
149 | NPP_GetValueProcPtr getvalue;
150 | NPP_SetValueProcPtr setvalue;
151 | NPP_GotFocusPtr gotfocus;
152 | NPP_LostFocusPtr lostfocus;
153 | NPP_URLRedirectNotifyPtr urlredirectnotify;
154 | NPP_ClearSiteDataPtr clearsitedata;
155 | NPP_GetSitesWithDataPtr getsiteswithdata;
156 | NPP_DidCompositePtr didComposite;
157 | } NPPluginFuncs;
158 |
159 | typedef struct _NPNetscapeFuncs {
160 | uint16_t size;
161 | uint16_t version;
162 | NPN_GetURLProcPtr geturl;
163 | NPN_PostURLProcPtr posturl;
164 | NPN_RequestReadProcPtr requestread;
165 | NPN_NewStreamProcPtr newstream;
166 | NPN_WriteProcPtr write;
167 | NPN_DestroyStreamProcPtr destroystream;
168 | NPN_StatusProcPtr status;
169 | NPN_UserAgentProcPtr uagent;
170 | NPN_MemAllocProcPtr memalloc;
171 | NPN_MemFreeProcPtr memfree;
172 | NPN_MemFlushProcPtr memflush;
173 | NPN_ReloadPluginsProcPtr reloadplugins;
174 | NPN_GetJavaEnvProcPtr getJavaEnv;
175 | NPN_GetJavaPeerProcPtr getJavaPeer;
176 | NPN_GetURLNotifyProcPtr geturlnotify;
177 | NPN_PostURLNotifyProcPtr posturlnotify;
178 | NPN_GetValueProcPtr getvalue;
179 | NPN_SetValueProcPtr setvalue;
180 | NPN_InvalidateRectProcPtr invalidaterect;
181 | NPN_InvalidateRegionProcPtr invalidateregion;
182 | NPN_ForceRedrawProcPtr forceredraw;
183 | NPN_GetStringIdentifierProcPtr getstringidentifier;
184 | NPN_GetStringIdentifiersProcPtr getstringidentifiers;
185 | NPN_GetIntIdentifierProcPtr getintidentifier;
186 | NPN_IdentifierIsStringProcPtr identifierisstring;
187 | NPN_UTF8FromIdentifierProcPtr utf8fromidentifier;
188 | NPN_IntFromIdentifierProcPtr intfromidentifier;
189 | NPN_CreateObjectProcPtr createobject;
190 | NPN_RetainObjectProcPtr retainobject;
191 | NPN_ReleaseObjectProcPtr releaseobject;
192 | NPN_InvokeProcPtr invoke;
193 | NPN_InvokeDefaultProcPtr invokeDefault;
194 | NPN_EvaluateProcPtr evaluate;
195 | NPN_GetPropertyProcPtr getproperty;
196 | NPN_SetPropertyProcPtr setproperty;
197 | NPN_RemovePropertyProcPtr removeproperty;
198 | NPN_HasPropertyProcPtr hasproperty;
199 | NPN_HasMethodProcPtr hasmethod;
200 | NPN_ReleaseVariantValueProcPtr releasevariantvalue;
201 | NPN_SetExceptionProcPtr setexception;
202 | NPN_PushPopupsEnabledStateProcPtr pushpopupsenabledstate;
203 | NPN_PopPopupsEnabledStateProcPtr poppopupsenabledstate;
204 | NPN_EnumerateProcPtr enumerate;
205 | NPN_PluginThreadAsyncCallProcPtr pluginthreadasynccall;
206 | NPN_ConstructProcPtr construct;
207 | NPN_GetValueForURLPtr getvalueforurl;
208 | NPN_SetValueForURLPtr setvalueforurl;
209 | NPN_GetAuthenticationInfoPtr getauthenticationinfo;
210 | NPN_ScheduleTimerPtr scheduletimer;
211 | NPN_UnscheduleTimerPtr unscheduletimer;
212 | NPN_PopUpContextMenuPtr popupcontextmenu;
213 | NPN_ConvertPointPtr convertpoint;
214 | NPN_HandleEventPtr handleevent;
215 | NPN_UnfocusInstancePtr unfocusinstance;
216 | NPN_URLRedirectResponsePtr urlredirectresponse;
217 | NPN_InitAsyncSurfacePtr initasyncsurface;
218 | NPN_FinalizeAsyncSurfacePtr finalizeasyncsurface;
219 | NPN_SetCurrentAsyncSurfacePtr setcurrentasyncsurface;
220 | } NPNetscapeFuncs;
221 |
222 | #ifdef XP_MACOSX
223 | /*
224 | * Mac OS X version(s) of NP_GetMIMEDescription(const char *)
225 | * These can be called to retreive MIME information from the plugin dynamically
226 | *
227 | * Note: For compatibility with Quicktime, BPSupportedMIMEtypes is another way
228 | * to get mime info from the plugin only on OSX and may not be supported
229 | * in furture version -- use NP_GetMIMEDescription instead
230 | */
231 | enum
232 | {
233 | kBPSupportedMIMETypesStructVers_1 = 1
234 | };
235 | typedef struct _BPSupportedMIMETypes
236 | {
237 | SInt32 structVersion; /* struct version */
238 | Handle typeStrings; /* STR# formated handle, allocated by plug-in */
239 | Handle infoStrings; /* STR# formated handle, allocated by plug-in */
240 | } BPSupportedMIMETypes;
241 | OSErr BP_GetSupportedMIMETypes(BPSupportedMIMETypes *mimeInfo, UInt32 flags);
242 | #define NP_GETMIMEDESCRIPTION_NAME "NP_GetMIMEDescription"
243 | typedef const char* (*NP_GetMIMEDescriptionProcPtr)(void);
244 | typedef OSErr (*BP_GetSupportedMIMETypesProcPtr)(BPSupportedMIMETypes*, UInt32);
245 | #endif
246 |
247 | #if defined(_WIN32)
248 | #define OSCALL WINAPI
249 | #else
250 | #if defined(__OS2__)
251 | #define OSCALL _System
252 | #else
253 | #define OSCALL
254 | #endif
255 | #endif
256 |
257 | #if defined(XP_UNIX)
258 | /* GCC 3.3 and later support the visibility attribute. */
259 | #if defined(__GNUC__) && ((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
260 | #define NP_VISIBILITY_DEFAULT __attribute__((visibility("default")))
261 | #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
262 | #define NP_VISIBILITY_DEFAULT __global
263 | #else
264 | #define NP_VISIBILITY_DEFAULT
265 | #endif
266 | #define NP_EXPORT(__type) NP_VISIBILITY_DEFAULT __type
267 | #endif
268 |
269 | #if defined(_WIN32) || defined (__OS2__)
270 | #ifdef __cplusplus
271 | extern "C" {
272 | #endif
273 | /* plugin meta member functions */
274 | #if defined(__OS2__)
275 | typedef struct _NPPluginData { /* Alternate OS2 Plugin interface */
276 | char *pMimeTypes;
277 | char *pFileExtents;
278 | char *pFileOpenTemplate;
279 | char *pProductName;
280 | char *pProductDescription;
281 | unsigned long dwProductVersionMS;
282 | unsigned long dwProductVersionLS;
283 | } NPPluginData;
284 | typedef NPError (OSCALL *NP_GetPluginDataFunc)(NPPluginData*);
285 | NPError OSCALL NP_GetPluginData(NPPluginData * pPluginData);
286 | #endif
287 | typedef NPError (OSCALL *NP_GetEntryPointsFunc)(NPPluginFuncs*);
288 | NPError OSCALL NP_GetEntryPoints(NPPluginFuncs* pFuncs);
289 | typedef NPError (OSCALL *NP_InitializeFunc)(NPNetscapeFuncs*);
290 | NPError OSCALL NP_Initialize(NPNetscapeFuncs* bFuncs);
291 | typedef NPError (OSCALL *NP_ShutdownFunc)(void);
292 | NPError OSCALL NP_Shutdown(void);
293 | typedef const char* (*NP_GetMIMEDescriptionFunc)(void);
294 | const char* NP_GetMIMEDescription(void);
295 | #ifdef __cplusplus
296 | }
297 | #endif
298 | #endif
299 |
300 | #if defined(__OS2__)
301 | #pragma pack()
302 | #endif
303 |
304 | #ifdef XP_UNIX
305 | #ifdef __cplusplus
306 | extern "C" {
307 | #endif
308 | typedef char* (*NP_GetPluginVersionFunc)(void);
309 | NP_EXPORT(char*) NP_GetPluginVersion(void);
310 | typedef const char* (*NP_GetMIMEDescriptionFunc)(void);
311 | NP_EXPORT(const char*) NP_GetMIMEDescription(void);
312 | #ifdef XP_MACOSX
313 | typedef NPError (*NP_InitializeFunc)(NPNetscapeFuncs*);
314 | NP_EXPORT(NPError) NP_Initialize(NPNetscapeFuncs* bFuncs);
315 | typedef NPError (*NP_GetEntryPointsFunc)(NPPluginFuncs*);
316 | NP_EXPORT(NPError) NP_GetEntryPoints(NPPluginFuncs* pFuncs);
317 | #else
318 | typedef NPError (*NP_InitializeFunc)(NPNetscapeFuncs*, NPPluginFuncs*);
319 | NP_EXPORT(NPError) NP_Initialize(NPNetscapeFuncs* bFuncs, NPPluginFuncs* pFuncs);
320 | #endif
321 | typedef NPError (*NP_ShutdownFunc)(void);
322 | NP_EXPORT(NPError) NP_Shutdown(void);
323 | typedef NPError (*NP_GetValueFunc)(void *, NPPVariable, void *);
324 | NP_EXPORT(NPError) NP_GetValue(void *future, NPPVariable aVariable, void *aValue);
325 | #ifdef __cplusplus
326 | }
327 | #endif
328 | #endif
329 |
330 | #endif /* npfunctions_h_ */
331 |
--------------------------------------------------------------------------------
/include/npapi-headers/npruntime.h:
--------------------------------------------------------------------------------
1 | /* ***** BEGIN LICENSE BLOCK *****
2 | * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3 | *
4 | * The contents of this file are subject to the Mozilla Public License Version
5 | * 1.1 (the "License"); you may not use this file except in compliance with
6 | * the License. You may obtain a copy of the License at
7 | * http://www.mozilla.org/MPL/
8 | *
9 | * Software distributed under the License is distributed on an "AS IS" basis,
10 | * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11 | * for the specific language governing rights and limitations under the
12 | * License.
13 | *
14 | * The Original Code is fds-team.de code.
15 | *
16 | * The Initial Developer of the Original Code is
17 | * Michael Müller
18 | * Portions created by the Initial Developer are Copyright (C) 2014
19 | * the Initial Developer. All Rights Reserved.
20 | *
21 | * Contributor(s):
22 | * Michael Müller
23 | *
24 | * Alternatively, the contents of this file may be used under the terms of
25 | * either the GNU General Public License Version 2 or later (the "GPL"), or
26 | * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27 | * in which case the provisions of the GPL or the LGPL are applicable instead
28 | * of those above. If you wish to allow use of your version of this file only
29 | * under the terms of either the GPL or the LGPL, and not to allow others to
30 | * use your version of this file under the terms of the MPL, indicate your
31 | * decision by deleting the provisions above and replace them with the notice
32 | * and other provisions required by the GPL or the LGPL. If you do not delete
33 | * the provisions above, a recipient may use your version of this file under
34 | * the terms of any one of the MPL, the GPL or the LGPL.
35 | *
36 | * ***** END LICENSE BLOCK ***** */
37 |
38 | #ifndef _NP_RUNTIME_H_
39 | #define _NP_RUNTIME_H_
40 |
41 | #ifdef __cplusplus
42 | extern "C" {
43 | #endif
44 |
45 | #include "nptypes.h"
46 |
47 | typedef void *NPIdentifier;
48 | typedef char NPUTF8;
49 | typedef struct _NPClass NPClass;
50 |
51 | typedef struct _NPString
52 | {
53 | const NPUTF8 *UTF8Characters;
54 | uint32_t UTF8Length;
55 | } NPString;
56 |
57 | typedef struct _NPObject
58 | {
59 | NPClass *_class;
60 | uint32_t referenceCount;
61 | } NPObject;
62 |
63 | typedef enum
64 | {
65 | NPVariantType_Void,
66 | NPVariantType_Null,
67 | NPVariantType_Bool,
68 | NPVariantType_Int32,
69 | NPVariantType_Double,
70 | NPVariantType_String,
71 | NPVariantType_Object
72 | } NPVariantType;
73 |
74 | typedef struct _NPVariant
75 | {
76 | NPVariantType type;
77 | union
78 | {
79 | bool boolValue;
80 | int32_t intValue;
81 | DOUBLE doubleValue;
82 | NPString stringValue;
83 | NPObject *objectValue;
84 | } value;
85 | } NPVariant;
86 |
87 | #define NP_CLASS_STRUCT_VERSION 3
88 | #define NP_CLASS_STRUCT_VERSION_ENUM 2
89 | #define NP_CLASS_STRUCT_VERSION_CTOR 3
90 |
91 | struct _NPClass
92 | {
93 | uint32_t structVersion;
94 | NPObject *(*allocate)(NPP instance, NPClass *aClass);
95 | void (*deallocate)(NPObject *obj);
96 | void (*invalidate)(NPObject *obj);
97 | bool (*hasMethod)(NPObject *obj, NPIdentifier ident);
98 | bool (*invoke)(NPObject *obj, NPIdentifier ident, const NPVariant *args, uint32_t count, NPVariant *ret);
99 | bool (*invokeDefault)(NPObject *obj, const NPVariant *args, uint32_t count, NPVariant *ret);
100 | bool (*hasProperty)(NPObject *obj, NPIdentifier ident);
101 | bool (*getProperty)(NPObject *obj, NPIdentifier ident, NPVariant *ret);
102 | bool (*setProperty)(NPObject *obj, NPIdentifier ident, const NPVariant *val);
103 | bool (*removeProperty)(NPObject *obj, NPIdentifier ident);
104 | bool (*enumerate)(NPObject *obj, NPIdentifier **val, uint32_t *count);
105 | bool (*construct)(NPObject *obj, const NPVariant *args, uint32_t count, NPVariant *ret);
106 | };
107 |
108 | #ifdef __cplusplus
109 | }
110 | #endif
111 |
112 | #endif
113 |
--------------------------------------------------------------------------------
/include/npapi-headers/nptypes.h:
--------------------------------------------------------------------------------
1 | /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 | /* ***** BEGIN LICENSE BLOCK *****
3 | * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4 | *
5 | * The contents of this file are subject to the Mozilla Public License Version
6 | * 1.1 (the "License"); you may not use this file except in compliance with
7 | * the License. You may obtain a copy of the License at
8 | * http://www.mozilla.org/MPL/
9 | *
10 | * Software distributed under the License is distributed on an "AS IS" basis,
11 | * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 | * for the specific language governing rights and limitations under the
13 | * License.
14 | *
15 | * The Original Code is mozilla.org code.
16 | *
17 | * The Initial Developer of the Original Code is
18 | * mozilla.org.
19 | * Portions created by the Initial Developer are Copyright (C) 2004
20 | * the Initial Developer. All Rights Reserved.
21 | *
22 | * Contributor(s):
23 | * Johnny Stenback (Original author)
24 | *
25 | * Alternatively, the contents of this file may be used under the terms of
26 | * either the GNU General Public License Version 2 or later (the "GPL"), or
27 | * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
28 | * in which case the provisions of the GPL or the LGPL are applicable instead
29 | * of those above. If you wish to allow use of your version of this file only
30 | * under the terms of either the GPL or the LGPL, and not to allow others to
31 | * use your version of this file under the terms of the MPL, indicate your
32 | * decision by deleting the provisions above and replace them with the notice
33 | * and other provisions required by the GPL or the LGPL. If you do not delete
34 | * the provisions above, a recipient may use your version of this file under
35 | * the terms of any one of the MPL, the GPL or the LGPL.
36 | *
37 | * ***** END LICENSE BLOCK ***** */
38 |
39 | #ifndef nptypes_h_
40 | #define nptypes_h_
41 |
42 | /*
43 | * Use DOUBLE instead of double to work around different align of doubles.
44 | * On Windows doubles are always 64-bit aligned, on Linux they are only 32-bit
45 | * aligned. Wineg++ doesn't handle the alignment correctly when using 'double'.
46 | */
47 | #if defined(__WINE__)
48 | typedef double __attribute__((aligned(8))) DOUBLE;
49 | #else
50 | typedef double DOUBLE;
51 | #endif
52 |
53 | /*
54 | * Header file for ensuring that C99 types ([u]int32_t, [u]int64_t and bool) and
55 | * true/false macros are available.
56 | */
57 |
58 | #if (defined(WIN32) && !defined(__GNUC__)) || defined(OS2)
59 | /*
60 | * Win32 and OS/2 don't know C99, so define [u]int_16/32/64 here. The bool
61 | * is predefined tho, both in C and C++.
62 | */
63 | typedef short int16_t;
64 | typedef unsigned short uint16_t;
65 | typedef int int32_t;
66 | typedef unsigned int uint32_t;
67 | typedef long long int64_t;
68 | typedef unsigned long long uint64_t;
69 | #elif defined(_AIX) || defined(__sun) || defined(__osf__) || defined(IRIX) || defined(HPUX)
70 | /*
71 | * AIX and SunOS ship a inttypes.h header that defines [u]int32_t,
72 | * but not bool for C.
73 | */
74 | #include
75 |
76 | #ifndef __cplusplus
77 | typedef int bool;
78 | #define true 1
79 | #define false 0
80 | #endif
81 | #elif defined(bsdi) || defined(FREEBSD) || defined(OPENBSD)
82 | /*
83 | * BSD/OS, FreeBSD, and OpenBSD ship sys/types.h that define int32_t and
84 | * u_int32_t.
85 | */
86 | #include
87 |
88 | /*
89 | * BSD/OS ships no header that defines uint32_t, nor bool (for C)
90 | */
91 | #if defined(bsdi)
92 | typedef u_int32_t uint32_t;
93 | typedef u_int64_t uint64_t;
94 |
95 | #if !defined(__cplusplus)
96 | typedef int bool;
97 | #define true 1
98 | #define false 0
99 | #endif
100 | #else
101 | /*
102 | * FreeBSD and OpenBSD define uint32_t and bool.
103 | */
104 | #include
105 | #include
106 | #endif
107 | #elif defined(BEOS)
108 | #include
109 | #else
110 | /*
111 | * For those that ship a standard C99 stdint.h header file, include
112 | * it. Can't do the same for stdbool.h tho, since some systems ship
113 | * with a stdbool.h file that doesn't compile!
114 | */
115 | #include
116 |
117 | #ifndef __cplusplus
118 | #if !defined(__GNUC__) || (__GNUC__ > 2 || __GNUC_MINOR__ > 95)
119 | #include
120 | #else
121 | /*
122 | * GCC 2.91 can't deal with a typedef for bool, but a #define
123 | * works.
124 | */
125 | #define bool int
126 | #define true 1
127 | #define false 0
128 | #endif
129 | #endif
130 | #endif
131 |
132 | #endif /* nptypes_h_ */
133 |
--------------------------------------------------------------------------------
/patches/0001-Workaround-for-Qt5.2-Invalidate-always-whole-drawing-a.patch:
--------------------------------------------------------------------------------
1 | From 9235a12bd03e0b03b93fff29ee77580d2b6cfb29 Mon Sep 17 00:00:00 2001
2 | From: Sebastian Lackner
3 | Date: Sun, 12 Jan 2014 19:24:59 +0100
4 | Subject: Workaround for Qt5.2: Invalidate always whole drawing area for
5 | repaint events
6 |
7 | ---
8 | src/windows/npnfunctions.c | 23 +----------------------
9 | 1 file changed, 1 insertion(+), 22 deletions(-)
10 |
11 | diff --git a/src/windows/npnfunctions.c b/src/windows/npnfunctions.c
12 | index e92c095..b2c26a2 100644
13 | --- a/src/windows/npnfunctions.c
14 | +++ b/src/windows/npnfunctions.c
15 | @@ -469,28 +469,7 @@ void NP_LOADDS NPN_InvalidateRect(NPP instance, NPRect *rect){
16 | InvalidateRect(ndata->hWnd, NULL, false);
17 |
18 | }else if (ndata->hDC){
19 | -
20 | - if (!rect)
21 | - ndata->invalidate = INVALIDATE_EVERYTHING;
22 | -
23 | - else if (!ndata->invalidate){
24 | - memcpy(&ndata->invalidateRect, rect, sizeof(*rect));
25 | - ndata->invalidate = INVALIDATE_RECT;
26 | -
27 | - }else if (ndata->invalidate == INVALIDATE_RECT){
28 | -
29 | - /* Merge the NPRects */
30 | - if (rect->top < ndata->invalidateRect.top)
31 | - ndata->invalidateRect.top = rect->top;
32 | - if (rect->left < ndata->invalidateRect.left)
33 | - ndata->invalidateRect.left = rect->left;
34 | - if (rect->bottom > ndata->invalidateRect.bottom)
35 | - ndata->invalidateRect.bottom = rect->bottom;
36 | - if (rect->right > ndata->invalidateRect.right)
37 | - ndata->invalidateRect.right = rect->right;
38 | -
39 | - }
40 | -
41 | + ndata->invalidate = INVALIDATE_EVERYTHING;
42 | invalidateLinuxWindowless = true;
43 | }
44 | }
45 | --
46 | 1.7.9.5
47 |
48 |
--------------------------------------------------------------------------------
/pipelight-plugin.1.in:
--------------------------------------------------------------------------------
1 | .TH PIPELIGHT "1" "February 2014" "@@VERSION@@" "Pipelight"
2 | .SH NAME
3 | Pipelight \- use Windows plugins in Linux browsers (based on Wine)
4 | .SH SYNOPSIS
5 | .B pipelight-plugin
6 | [\fIOPTIONS \fR...] \fICOMMAND\fR
7 | .PP
8 | For a list of possible options and commands please take a look at the
9 | \fBOPTIONS/COMMANDS\fR section on the man page.
10 | .SH DESCRIPTION
11 | Pipelight is a special browser plugin which allows one to use Windows only
12 | plugins inside Linux browsers. Currently supported plugins are Silverlight,
13 | Flash, Shockwave, the Unity3D Webplayer, and some more (see the \fBPLUGINS\fR
14 | section).
15 | .PP
16 | The commandline utility \fBpipelight-plugin\fR allows you to enable/disable
17 | plugins and to update the plugin database.
18 | .SH OPTIONS/COMMANDS
19 | .SS "Options:"
20 | .TP
21 | \fB\-y, \-\-accept\fR
22 | Don't ask the user for license confirmation, instead enable plugins directly.
23 | Can be used to automate the process of accepting the license agreement.
24 | .SS "User commands:"
25 | .TP
26 | \fB\-\-enable\fR \fIPLUGIN\fR
27 | Enables the specified plugin for the current user (by creating a symlink in
28 | \fI$HOME/.mozilla/plugins\fR). When you run this command as root the plugin is
29 | enabled system-wide by creating a symlink in the mozilla plugins directory
30 | instead (often located at \fI@@MOZ_PLUGIN_PATH@@\fR). For a list of
31 | plugins see the \fBPLUGINS\fR section in this man page.
32 | .TP
33 | \fB\-\-disable\fR \fIPLUGIN\fR
34 | Disables the specified plugin for the current user, or disables the system-wide
35 | symlink when executed as root. Please note that a plugin may still stay
36 | active if it was enabled both system-wide and for the current user before.
37 | .TP
38 | \fB\-\-disable\-all\fR
39 | Disables all enabled plugins. For more details see \fB--disable\fR.
40 | .TP
41 | \fB\-\-list\-enabled\fR
42 | Returns a list of all plugins which are enabled for the current user. The
43 | result contains one plugin per line in order to simplify parsing by external
44 | scripts.
45 | .TP
46 | \fB\-\-list\-enabled\-all\fR
47 | Returns a list which contains both the plugins enabled for the current user and
48 | additionally the system-wide enabled plugins. If a plugin is enabled multiple
49 | times it also appears multiple times in the list.
50 | .TP
51 | \fB\-\-system\-check\fR
52 | Will perform some system checks to ensure that wine and all required components
53 | are installed correctly. A warning doesn't necessarily mean that something is
54 | wrong, but if you encounter a problem it is useful to attach this to your bug
55 | report.
56 | .TP
57 | \fB\-\-help\fR
58 | Shows a short version of this help.
59 | .TP
60 | \fB\-\-version\fR
61 | Shows the current version of Pipelight.
62 | .SS "Global commands (require root rights):"
63 | .TP
64 | \fB\-\-create\-mozilla\-plugins\fR
65 | In order to make it possible to use multiple Windows plugins with Pipelight at
66 | the same time, it is necessary to have multiple copies of \fIlibpipelight.so\fR
67 | installed. This command is typically used in the installation process of Pipelight
68 | itself to create all the necessary copies. On a first execution it will only create
69 | the libraries for the standard plugins, on all future executions it will
70 | additionally update all unlocked additional plugins.
71 | .TP
72 | \fB\-\-remove\-mozilla\-plugins\fR
73 | Removes all the copies of \fIlibpipelight.so\fR. This command is typically
74 | used during the uninstallation (but not for updating!). All unlocked plugins
75 | are locked again afterwards.
76 | .TP
77 | \fB\-\-unlock\fR PLUGIN
78 | To save some disk space the default installation of Pipelight only creates
79 | copies of \fIlibpipelight.so\fR for the most commonly used plugins. This
80 | command can be used to unlock an additional plugin by creating another copy of
81 | \fIlibpipelight.so\fR. Afterwards you can \fB--enable\fR it like any other
82 | standard plugin.
83 | .TP
84 | \fB\-\-lock\fR PLUGIN
85 | Removes the copy of \fIlibpipelight.so\fR for a specific plugin. This command
86 | can only be used for additional plugins, not for the standard plugins.
87 | .TP
88 | \fB\-\-update\fR
89 | Establishes a connection to the Pipelight upstream repository and downloads
90 | the latest version of the plugin database (called \fIdependency-installer\fR)
91 | containing the plugin URLs and checksums. The main purpose of this command is
92 | to update the plugins between the official Pipelight releases. The signature
93 | of the downloaded file is checked to prevent corruption or modification.
94 | .SH "ENVIRONMENT VARIABLES"
95 | You can export the following environment variables to modify the behaviour of
96 | \fBpipelight-plugin\fR.
97 | .TP
98 | \fBMOZ_PLUGIN_PATH\fR
99 | Create the plugin symlinks in the provided path instead of
100 | \fI$HOME/.mozilla/plugins\fR. You can use this environment variable to keep
101 | your Pipelight plugins separate from your other browser plugins.
102 | .SH PLUGINS
103 | Pipelight currently supports the following browser plugins:
104 | .TP
105 | \fBStandard plugins\fR
106 | silverlight5.1,
107 | silverlight5.0,
108 | flash,
109 | unity3d,
110 | widevine
111 | .TP
112 | \fBAdditional plugins (experimental or not often used):\fR
113 | shockwave
114 | .SH EXAMPLES
115 | .PP
116 | Here are some typical examples how to use \fBpipelight-plugin\fR.
117 | .PP
118 | $ sudo pipelight-plugin --update
119 | .PP
120 | Downloads the latest version of the plugin database. If there was a new
121 | update, it will be installed on the next browser restart or when the plugin is
122 | reloaded the next time.
123 | .PP
124 | $ sudo pipelight-plugin --enable silverlight --enable unity3d
125 | .PP
126 | Enable multiple plugins (in this example Silverlight and the Unity3D Webplayer)
127 | system-wide.
128 | .PP
129 | $ MOZ_PLUGIN_PATH=$HOME/myplugins pipelight-plugin --enable silverlight
130 | .br
131 | $ MOZ_PLUGIN_PATH=$HOME/myplugins/ google-chrome --user-data-dir=$HOME/.config/chrome-pipelight
132 | .PP
133 | The first line enables Silverlight in the (self-defined) plugin directory
134 | \fI$HOME/myplugins\fR, afterwards Google-Chrome is started with the same
135 | environment variable, such that it can detect the Silverlight plugin. All other
136 | browsers will not have Silverlight enabled, because they don't search for
137 | plugins in the custom plugin directory.
138 | .SH FILES
139 | .TP
140 | \fI@@BINDIR@@/pipelight-plugin\fR
141 | Commandline utility to enable/disable plugins and to update the plugin database.
142 | .TP
143 | \fI@@LIBDIR@@/pipelight/libpipelight*.so\fR
144 | The shared library \fIlibpipelight.so\fR and additional copies for all
145 | unlocked and standard plugins.
146 | .TP
147 | \fI@@DATADIR@@/pipelight/licenses/*\fR
148 | License information for supported plugins.
149 | .TP
150 | \fI@@DATADIR@@/pipelight/configs/*\fR
151 | Configuration files containing for example which dependencies are required for
152 | a specific plugin, and where Pipelight can find the plugin DLLs. Normally
153 | there should be \fBno\fR need to edit them manually!
154 | .TP
155 | \fI@@DATADIR@@/pipelight/scripts/*\fR
156 | Helper scripts for specific plugins, for example to enable/disable GPU acceleration.
157 | .TP
158 | \fI@@DATADIR@@/pipelight/*\fR
159 | Directory containing other files used internally by Pipelight.
160 | .TP
161 | \fI@@MOZ_PLUGIN_PATH@@/libpipelight-*.so\fR
162 | Symlinks to all enabled system-wide plugins.
163 | .TP
164 | \fI$HOME/.mozilla/plugins/libpipelight-*.so\fR
165 | Symlinks to all enabled user-specific plugins.
166 | .SH COPYRIGHT
167 | Pipelight can be distributed under the terms of the
168 | \fIMPL-1.1\fR
169 | or
170 | \fIGPL-2.0\fR
171 | or
172 | \fILGPL-2.1\fR
173 | license.
174 | .br
175 | Please note that most of the plugins also have their own end-user license
176 | agreement. Take a look there or ask the developers if you want to redistribute
177 | Pipelight with third-party plugins included.
178 | .SH BUGS
179 | Bugs can be reported on the
180 | .UR @@REPO@@
181 | .B Pipelight project page
182 | .UE .
183 | Please note that Pipelight uses a patched wine version, so don't report Wine
184 | related bugs at the official Wine bug tracker. Instead report them also at the
185 | Pipelight project page (unless you can reproduce them with an unpatched
186 | version of Wine).
187 | .SH "SEE ALSO"
188 | .UR @@REPO@@
189 | .B Pipelight project page
190 | .UE ,
191 | .br
192 | .UR http://web.archive.org/web/20160815170857/http://pipelight.net:80/cms/installation.html
193 | .B Installation instructions
194 | .UE ,
195 | .br
196 | .B #pipelight
197 | on IRC freenode
198 |
--------------------------------------------------------------------------------
/share/configs/pipelight-flash:
--------------------------------------------------------------------------------
1 | # ---BEGIN CONFIG---
2 | # winePath = $share/wine
3 | # winePrefix = $HOME/.wine-pipelight
4 | # wineArch = win32
5 | # pluginLoaderPath = $share/pluginloader.exe
6 | # # dllPath = C:\windows\system32\Macromed\Flash\
7 | # # dllName = NPSWF32_11_8_800_168.dll
8 | # regKey = @adobe.com/FlashPlayer
9 | # windowlessMode = false
10 | # windowlessOverwriteArg = wmode=opaque
11 | # experimental-windowClassHook = true
12 | # ---END CONFIG---
13 |
14 | install_flash()
15 | {
16 | # http://www.adobe.com/de/software/flash/about/
17 | local URL="http://fpdownload.macromedia.com/get/flashplayer/pdc/23.0.0.205/install_flash_player.exe"
18 | local SHA="c4d38ca72b0e818d3418c020753132a3c95fccab4dd361b5486a151608689f5c"
19 | local VER="23_0_0_205"
20 |
21 | if ! download "$URL" "$SHA" "flash" ""; then
22 | echo "[flash] ERROR: Download failed." >&2
23 | return 1
24 | fi
25 |
26 | # Launch the installer
27 | if [ "$QUIETINSTALLATION" -eq 0 ]; then
28 | "$WINE" "$DOWNLOADFILE" 2>&1
29 | else
30 | "$WINE" "$DOWNLOADFILE" -install 2>&1 | progressbar "Please wait, installing ..." "Running Flash installer"
31 | fi
32 |
33 | local installdir="$WINEPREFIX/drive_c/windows/system32/Macromed/Flash"
34 | if [ ! -f "$installdir/NPSWF32_$VER.dll" ]; then
35 | echo "[flash] ERROR: Installer did not run correctly or was aborted." >&2
36 | return 1
37 | fi
38 |
39 | local flashconfig="$installdir/mms.cfg"
40 | if ! grep -q "^OverrideGPUValidation=" "$flashconfig" 2>/dev/null; then
41 | (
42 | grep -v "^OverrideGPUValidation=" "$flashconfig" 2>/dev/null
43 | echo "OverrideGPUValidation=true"
44 | ) > "$flashconfig.bak"
45 |
46 | if ! mv "$flashconfig.bak" "$flashconfig"; then
47 | echo "[flash] ERROR: Unable to change plugin settings." >&2
48 | fi
49 | fi
50 |
51 | return 0
52 | }
53 |
54 | install_plugin()
55 | {
56 | install_flash
57 | return $?
58 | }
59 |
--------------------------------------------------------------------------------
/share/configs/pipelight-shockwave:
--------------------------------------------------------------------------------
1 | # ---BEGIN CONFIG---
2 | # winePath = $share/wine
3 | # winePrefix = $HOME/.wine-pipelight
4 | # wineArch = win32
5 | # pluginLoaderPath = $share/pluginloader.exe
6 | # # dllPath = C:\windows\system32\Adobe\Director\
7 | # # dllName = np32dsw_1204144.dll
8 | # regKey = @adobe.com/ShockwavePlayer
9 | # ---END CONFIG---
10 |
11 | install_shockwave()
12 | {
13 | # http://get.adobe.com/de/shockwave/otherversions/
14 | local URL="http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/latest/sw_lic_full_installer.exe"
15 | local SHA="4c50d3f64372a9e242f13d8a12d3f5ef091b4a59ade48f8d878557d62ec74c3f"
16 | local VER="1225195"
17 |
18 | if ! download "$URL" "$SHA" "shockwave" ""; then
19 | echo "[shockwave] ERROR: Download failed." >&2
20 | return 1
21 | fi
22 |
23 | # Launch the installer
24 | if [ "$QUIETINSTALLATION" -eq 0 ]; then
25 | "$WINE" "$DOWNLOADFILE" 2>&1
26 | else
27 | "$WINE" "$DOWNLOADFILE" /S 2>&1 | progressbar "Please wait, installing ..." "Running Shockwave installer"
28 | fi
29 |
30 | local installdir1="$WINEPREFIX/drive_c/windows/system32/Adobe/Director"
31 | local installdir2="$WINEPREFIX/drive_c/windows/syswow64/Adobe/Director"
32 | if [ ! -f "$installdir1/np32dsw_$VER.dll" ] && [ ! -f "$installdir2/np32dsw_$VER.dll" ]; then
33 | echo "[shockwave] ERROR: Installer did not run correctly or was aborted." >&2
34 | return 1
35 | fi
36 |
37 | # Switch to OpenGL mode and disable fallback mode
38 | local tmpfile=$(mktemp)
39 | [ -f "$tmpfile" ] || return 1
40 |
41 | (
42 | echo "REGEDIT4"
43 | echo ""
44 | echo "[HKEY_CURRENT_USER\\Software\\Adobe\\Shockwave 12\\allowfallback]"
45 | echo "@=\"n\""
46 | echo ""
47 | echo "[HKEY_CURRENT_USER\\Software\\Adobe\\Shockwave 12\\renderer3dsetting]"
48 | echo "@=\"2\""
49 | echo ""
50 | echo "[HKEY_CURRENT_USER\\Software\\Adobe\\Shockwave 12\\renderer3dsettingPerm]"
51 | echo "@=\"2\""
52 | ) > "$tmpfile"
53 |
54 | "$WINE" regedit "$tmpfile"
55 | local res=$?
56 |
57 | # Cleanup
58 | rm "$tmpfile"
59 |
60 | return "$res"
61 | }
62 |
63 | install_plugin()
64 | {
65 | install_shockwave
66 | return $?
67 | }
68 |
--------------------------------------------------------------------------------
/share/configs/pipelight-silverlight5.0:
--------------------------------------------------------------------------------
1 | # ---BEGIN CONFIG---
2 | # winePath = $share/wine
3 | # winePrefix = $HOME/.wine-pipelight
4 | # wineArch = win32
5 | # pluginLoaderPath = $share/pluginloader.exe
6 | # dllPath = c:\Program Files\Silverlight\5.0.61118.0\
7 | # dllName = npctrl.dll
8 | # # regKey = @Microsoft.com/NpCtrl,version=1.0
9 | # fakeVersion = 5.1.30214.0
10 | # overwriteArg = minRuntimeVersion=5.0.61118.0
11 | # # overwriteArg = enableGPUAcceleration=true
12 | # silverlightGraphicDriverCheck = true
13 | # experimental-windowClassHook = true
14 | # ---END CONFIG---
15 |
16 | install_silverlight50()
17 | {
18 | local URL="http://silverlight.dlservice.microsoft.com/download/5/5/7/55748E53-D673-4225-8072-4C7A377BB513/runtime/Silverlight.exe"
19 | local SHA="dd45a55419026c592f8b6fc848dceface7e1ce98720bf13848a2e8ae366b29e8"
20 | local VER="5.0.61118.0"
21 |
22 | if ! download "$URL" "$SHA" "silverlight50" ""; then
23 | echo "[silverlight5.0] ERROR: Download failed." >&2
24 | return 1
25 | fi
26 |
27 | # Remove the registry keys for Silverlight since other versions can prevent this one from installing
28 | "$WINE" msiexec /uninstall {89F4137D-6C26-4A84-BDB8-2E5A4BB71E00};
29 |
30 | # Launch the installer
31 | if [ "$QUIETINSTALLATION" -eq 0 ]; then
32 | "$WINE" "$DOWNLOADFILE" /noupdate 2>&1
33 | else
34 | "$WINE" "$DOWNLOADFILE" /q /doNotRequireDRMPrompt /noupdate 2>&1 | progressbar "Please wait, installing ..." "Running Silverlight 5.0 installer"
35 | fi
36 |
37 | local programfiles="$WINEPREFIX/drive_c/Program Files"
38 | if [ ! -d "$programfiles/Microsoft Silverlight/$VER" ]; then
39 | echo "[silverligh5.0] ERROR: Installer did not run correctly or was aborted." >&2
40 | return 1
41 | fi
42 |
43 | # Move the installation to a version-specific folder that nothing will touch
44 | mkdir -p "$programfiles/Silverlight"
45 | rm -rf "$programfiles/Silverlight/$VER"
46 | mv "$programfiles/Microsoft Silverlight/$VER" "$programfiles/Silverlight/$VER"
47 |
48 | # Remove the Silverlight menu shortcut
49 | rm -f "$WINEPREFIX/drive_c/users/$USER/Start Menu/Programs/Microsoft Silverlight/Microsoft Silverlight.lnk"
50 |
51 | # Successful
52 | return 0
53 | }
54 |
55 | install_mpg2splt()
56 | {
57 | local URL="http://download.microsoft.com/download/8/0/D/80D7E79D-C0E4-415A-BCCA-E229EAFE2679/dshow_nt.cab"
58 | local SHA="984ed15e23a00a33113f0012277e1e680c95782ce2c44f414e7af14e28e3f1a2"
59 |
60 | if ! download "$URL" "$SHA" "mpg2splt" ""; then
61 | echo "[mpg2splt] ERROR: Download failed." >&2
62 | return 1
63 | fi
64 |
65 | install_cabextract "$DOWNLOADFILE" mpg2splt.ax --reg
66 | return $?
67 | }
68 |
69 | install_plugin()
70 | {
71 | install_mpg2splt && install_silverlight50
72 | return $?
73 | }
74 |
--------------------------------------------------------------------------------
/share/configs/pipelight-silverlight5.1:
--------------------------------------------------------------------------------
1 | # ---BEGIN CONFIG---
2 | # winePath = $share/wine
3 | # winePrefix = $HOME/.wine-pipelight
4 | # wineArch = win32
5 | # pluginLoaderPath = $share/pluginloader.exe
6 | # dllPath = c:\Program Files\Silverlight\latest\
7 | # dllName = npctrl.dll
8 | # # regKey = @Microsoft.com/NpCtrl,version=1.0
9 | # # fakeVersion = 5.1.30214.0
10 | # # overwriteArg = minRuntimeVersion=5.0.61118.0
11 | # # overwriteArg = enableGPUAcceleration=true
12 | #
13 | # executeJavascript = var __pipelight_navigator = new Object();
14 | # executeJavascript = for (var __i in window.navigator) { __pipelight_navigator[__i] = window.navigator[__i]; }
15 | # executeJavascript = __pipelight_navigator.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1';
16 | # replaceJavascript = window.navigator = __pipelight_navigator
17 | #
18 | # silverlightGraphicDriverCheck = true
19 | # experimental-windowClassHook = true
20 | # ---END CONFIG---
21 |
22 | install_silverlight51()
23 | {
24 | # http://www.microsoft.com/getsilverlight/locale/en-us/html/Microsoft%20Silverlight%20Release%20History.htm
25 | local URL="http://download.microsoft.com/download/5/3/D/53D3880B-25F8-4714-A4AC-E463A492F96E/41212.00/Silverlight.exe"
26 | local SHA="af2d435a034e03c2940a648291013ebd9de20d855447dbdb93416e7e03c3e91b"
27 | local VER="5.1.41212.0"
28 | local SHORTVER="latest"
29 |
30 | if ! download "$URL" "$SHA" "silverlight51" ""; then
31 | echo "[silverlight5.1] ERROR: Download failed." >&2
32 | return 1
33 | fi
34 |
35 | # Remove the registry keys for Silverlight since other versions can prevent this one from installing
36 | "$WINE" msiexec /uninstall {89F4137D-6C26-4A84-BDB8-2E5A4BB71E00};
37 |
38 | # Launch the installer
39 | if [ "$QUIETINSTALLATION" -eq 0 ]; then
40 | "$WINE" "$DOWNLOADFILE" /noupdate 2>&1
41 | else
42 | "$WINE" "$DOWNLOADFILE" /q /doNotRequireDRMPrompt /noupdate 2>&1 | progressbar "Please wait, installing ..." "Running Silverlight 5.1 installer"
43 | fi
44 |
45 | local programfiles="$WINEPREFIX/drive_c/Program Files"
46 | if [ ! -d "$programfiles/Microsoft Silverlight/$VER" ]; then
47 | echo "[silverligh5.1] ERROR: Installer did not run correctly or was aborted." >&2
48 | return 1
49 | fi
50 |
51 | # Move the installation to a version-specific folder that nothing will touch
52 | mkdir -p "$programfiles/Silverlight"
53 | rm -rf "$programfiles/Silverlight/$VER"
54 | mv "$programfiles/Microsoft Silverlight/$VER" "$programfiles/Silverlight/$VER"
55 |
56 | # Create a short symlink if SHORTVER is provided.
57 | if [ ! -z "$SHORTVER" ]; then
58 | local shortsymlink="$programfiles/Silverlight/$SHORTVER"
59 | if [ -L "$shortsymlink" ]; then
60 | rm "$shortsymlink"
61 | elif [ -e "$shortsymlink" ]; then
62 | echo "[silverlight5.1] ERROR: Unable to overwrite $shortsymlink, please delete this file manually." >&2
63 | return 1
64 | fi
65 | ln -s "$VER" "$shortsymlink"
66 | fi
67 |
68 | # Remove the Silverlight menu shortcut
69 | rm -f "$WINEPREFIX/drive_c/users/$USER/Start Menu/Programs/Microsoft Silverlight/Microsoft Silverlight.lnk"
70 |
71 | # Successful
72 | return 0
73 | }
74 |
75 | install_mpg2splt()
76 | {
77 | local URL="http://download.microsoft.com/download/8/0/D/80D7E79D-C0E4-415A-BCCA-E229EAFE2679/dshow_nt.cab"
78 | local SHA="984ed15e23a00a33113f0012277e1e680c95782ce2c44f414e7af14e28e3f1a2"
79 |
80 | if ! download "$URL" "$SHA" "mpg2splt" ""; then
81 | echo "[mpg2splt] ERROR: Download failed." >&2
82 | return 1
83 | fi
84 |
85 | install_cabextract "$DOWNLOADFILE" mpg2splt.ax --reg
86 | return $?
87 | }
88 |
89 | install_plugin()
90 | {
91 | install_mpg2splt && install_silverlight51
92 | return $?
93 | }
94 |
--------------------------------------------------------------------------------
/share/configs/pipelight-unity3d:
--------------------------------------------------------------------------------
1 | # ---BEGIN CONFIG---
2 | # winePath = $share/wine
3 | # winePrefix = $HOME/.wine-pipelight
4 | # wineArch = win32
5 | # wineDLLOverrides = mscoree,mshtml,winegstreamer,d3d11,winemenubuilder.exe=
6 | # pluginLoaderPath = $share/pluginloader.exe
7 | # # dllPath = C:\Program Files\Unity\WebPlayer\loader
8 | # # dllName = npUnity3D32.dll
9 | # regKey = @unity3d.com/UnityPlayer,version=1.0
10 | # # fakeVersion = Unity Player 4.2.2f1
11 | # ---END CONFIG---
12 |
13 | install_unity3d()
14 | {
15 | # http://get.adobe.com/de/shockwave/otherversions/
16 | local URL="http://webplayer.unity3d.com/download_webplayer-3.x/UnityWebPlayer.exe"
17 | local SHA="9a5bcbe13bb74590e97ea4ee4fe76c24a5ac0b9cc99948e1be33ed3394d8c245"
18 |
19 | if ! download "$URL" "$SHA" "unity3d" ""; then
20 | echo "[unity3d] ERROR: Download failed." >&2
21 | return 1
22 | fi
23 |
24 | if [ "$QUIETINSTALLATION" -eq 0 ]; then
25 | "$WINE" "$DOWNLOADFILE" /AllUsers 2>&1
26 | else
27 | "$WINE" "$DOWNLOADFILE" /S /AllUsers 2>&1 | progressbar "Please wait, installing ..." "Running Unity3D plugin installer"
28 | fi
29 |
30 | local installdir="$WINEPREFIX/drive_c/Program Files/Unity/WebPlayer/loader"
31 | if [ ! -f "$installdir/npUnity3D32.dll" ]; then
32 | echo "[unity3d] ERROR: Installer did not run correctly or was aborted." >&2
33 | return 1
34 | fi
35 |
36 | return 0
37 | }
38 |
39 | install_plugin()
40 | {
41 | install_unity3d
42 | return $?
43 | }
44 |
--------------------------------------------------------------------------------
/share/configs/pipelight-widevine:
--------------------------------------------------------------------------------
1 | # ---BEGIN CONFIG---
2 | # winePath = $share/wine
3 | # winePrefix = $HOME/.wine-pipelight
4 | # wineArch = win32
5 | # pluginLoaderPath = $share/pluginloader.exe
6 | # dllPath = C:\windows\system32
7 | # dllName = npwidevinemediaoptimizer.dll
8 | # experimental-forceSetWindow = true
9 | # ---END CONFIG---
10 |
11 | install_widevine()
12 | {
13 | # http://www.widevine.com/download/videooptimizer/index.html
14 | local URL="https://dl.google.com/widevine/6.0.0.12442/WidevineMediaOptimizer_Win.xpi"
15 | local SHA="84cde1b83d8f5e4b287303a25e61227ce9a253268af6bd88b9a2f98c85129bc8"
16 | local EXT="zip"
17 |
18 | if ! download "$URL" "$SHA" "widevine" "$EXT"; then
19 | echo "[widevine] ERROR: Download failed." >&2
20 | return 1
21 | fi
22 |
23 | local system32="$WINEPREFIX/drive_c/windows/system32"
24 | if ! unzip -p "$DOWNLOADFILE" "plugins/npwidevinemediaoptimizer.dll" > "$system32/npwidevinemediaoptimizer.dll"; then
25 | echo "[widevine] ERROR: Unable to extract plugin from xip file." >&2
26 | return 1
27 | fi
28 |
29 | return 0
30 | }
31 |
32 | install_plugin()
33 | {
34 | install_widevine
35 | return $?
36 | }
37 |
--------------------------------------------------------------------------------
/share/configs/pipelight-x64-flash:
--------------------------------------------------------------------------------
1 | # ---BEGIN CONFIG---
2 | # winePath = $share/wine64
3 | # winePrefix = $HOME/.wine-pipelight64
4 | # wineArch = win64
5 | # pluginLoaderPath = $share/pluginloader64.exe
6 | # # dllPath = C:\windows\system32\Macromed\Flash\
7 | # # dllName = NPSWF64_11_8_800_168.dll
8 | # regKey = @adobe.com/FlashPlayer
9 | # windowlessMode = false
10 | # windowlessOverwriteArg = wmode=opaque
11 | # experimental-windowClassHook = true
12 | # ---END CONFIG---
13 |
14 | install_flash()
15 | {
16 | # http://www.adobe.com/de/software/flash/about/
17 | local URL="http://fpdownload.macromedia.com/get/flashplayer/pdc/23.0.0.205/install_flash_player.exe"
18 | local SHA="c4d38ca72b0e818d3418c020753132a3c95fccab4dd361b5486a151608689f5c"
19 | local VER="23_0_0_205"
20 |
21 | if ! download "$URL" "$SHA" "flash-x64" ""; then
22 | echo "[flash-x64] ERROR: Download failed." >&2
23 | return 1
24 | fi
25 |
26 | # Launch the installer
27 | if [ "$QUIETINSTALLATION" -eq 0 ]; then
28 | "$WINE" "$DOWNLOADFILE" 2>&1
29 | else
30 | "$WINE" "$DOWNLOADFILE" -install 2>&1 | progressbar "Please wait, installing ..." "Running Flash installer"
31 | fi
32 |
33 | local installdir="$WINEPREFIX/drive_c/windows/system32/Macromed/Flash"
34 | if [ ! -f "$installdir/NPSWF64_$VER.dll" ]; then
35 | echo "[flash-x64] ERROR: Installer did not run correctly or was aborted." >&2
36 | return 1
37 | fi
38 |
39 | local flashconfig="$installdir/mms.cfg"
40 | if ! grep -q "^OverrideGPUValidation=" "$flashconfig" 2>/dev/null; then
41 | (
42 | grep -v "^OverrideGPUValidation=" "$flashconfig" 2>/dev/null
43 | echo "OverrideGPUValidation=true"
44 | ) > "$flashconfig.bak"
45 |
46 | if ! mv "$flashconfig.bak" "$flashconfig"; then
47 | echo "[flash-x64] ERROR: Unable to change plugin settings." >&2
48 | fi
49 | fi
50 |
51 | return 0
52 | }
53 |
54 | install_plugin()
55 | {
56 | install_flash
57 | return $?
58 | }
59 |
--------------------------------------------------------------------------------
/share/configs/pipelight-x64-unity3d:
--------------------------------------------------------------------------------
1 | # ---BEGIN CONFIG---
2 | # winePath = $share/wine64
3 | # winePrefix = $HOME/.wine-pipelight64
4 | # wineArch = win64
5 | # pluginLoaderPath = $share/pluginloader64.exe
6 | # dllPath = C:\Program Files\Unity\WebPlayer64\loader-x64
7 | # dllName = npUnity3D64.dll
8 | # # regKey = @unity3d.com/UnityPlayer,version=1.0
9 | # ---END CONFIG---
10 |
11 | install_unity3d_x64()
12 | {
13 | local URL="http://webplayer.unity3d.com/download_webplayer-3.x/UnityWebPlayerFull64.exe"
14 | local SHA="38bb0ddb2e833786c5563af72624316759e2f6cfb5a0249c7f76357859d2262c"
15 |
16 | if ! download "$URL" "$SHA" "unity3d-x64" ""; then
17 | echo "[unity3d-x64] ERROR: Download failed." >&2
18 | return 1
19 | fi
20 |
21 | # Launch the installer
22 | if [ "$QUIETINSTALLATION" -eq 0 ]; then
23 | "$WINE" "$DOWNLOADFILE" /AllUsers 2>&1
24 | else
25 | "$WINE" "$DOWNLOADFILE" /S /AllUsers 2>&1 | progressbar "Please wait, installing ..." "Running Unity3D x64 installer"
26 | fi
27 |
28 | local installdir="$WINEPREFIX/drive_c/Program Files/Unity/WebPlayer64/loader-x64"
29 | if [ ! -f "$installdir/npUnity3D64.dll" ]; then
30 | echo "[unity3d-x64] ERROR: Installer did not run correctly or was aborted." >&2
31 | return 1
32 | fi
33 |
34 | return 0
35 | }
36 |
37 | install_plugin()
38 | {
39 | install_unity3d_x64
40 | return $?
41 | }
42 |
--------------------------------------------------------------------------------
/share/install-plugin:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | PRG=$(basename "$0")
4 |
5 | # > Marks a file in order to delete it at program termination
6 | # arguments:
7 | # $1 - File to delete
8 | ATEXIT_RM_LIST=()
9 | atexit_add_rm()
10 | {
11 | ATEXIT_RM_LIST+=("$1")
12 | }
13 |
14 | atexit()
15 | {
16 | local file
17 | for file in "${ATEXIT_RM_LIST[@]}"; do
18 | echo "Deleting temporary '$file'."
19 | rm "$file"
20 | done
21 | }
22 |
23 | mktemp_with_ext()
24 | {
25 | file=$(mktemp --suffix=".$1" 2>/dev/null)
26 | if [ "$?" -eq 0 ]; then echo "$file"; return 0; fi
27 | file=$(mktemp 2>/dev/null) # old version of mktemp
28 | if [ "$?" -eq 0 ]; then echo "$file"; return 0; fi
29 | file=$(mktemp -t pipelight 2>/dev/null) # MacOS version of mktemp
30 | if [ "$?" -eq 0 ]; then echo "$file"; return 0; fi
31 | return 1
32 | }
33 |
34 | # > Checks if a dependency is already installed
35 | # arguments:
36 | # $1 - Date of last change
37 | is_installed()
38 | {
39 | local LASTCHANGE="$1"
40 | local ckfile="$WINEPREFIX/$PLUGIN.installed"
41 | [ -f "$ckfile" ] && [ "$LASTCHANGE" == "$(cat "$ckfile")" ]
42 | return $?
43 | }
44 |
45 | # > Marks a dependency as already installed
46 | # arguments: same as is_installed
47 | mark_installed()
48 | {
49 | local LASTCHANGE="$1"
50 | local ckfile="$WINEPREFIX/$PLUGIN.installed"
51 | echo "$LASTCHANGE" > "$ckfile"
52 | }
53 |
54 | # > Download a given dependency file
55 | # arguments:
56 | # $1 - URL
57 | # $2 - SHA256
58 | # $3 - Name
59 | # $4 - Overwrite file extension
60 | # returns:
61 | # $DOWNLOADFILE
62 | DOWNLOADFILE=""
63 | download()
64 | {
65 | local URL="$1"; local SHA="$2"; local NAME="$3"; local EXT="$4"
66 |
67 | if [ -z "$EXT" ]; then
68 | EXT=$(echo "$URL" | sed 's/.*\.//')
69 | fi
70 |
71 | # Reuse existing download
72 | local dlfile="/tmp/pipelight-$NAME.$EXT"
73 | if [ -f "$dlfile" ] && [ "$SHA" == "$(sha256sum "$dlfile" | cut -d' ' -f1)" ]; then
74 | DOWNLOADFILE="$dlfile"
75 | return 0
76 | fi
77 |
78 | local trycount=3
79 | local tmpfile=$(mktemp_with_ext "$EXT")
80 | [ -f "$tmpfile" ] || return 1
81 | local filesize=$(get_download_size "$URL")
82 |
83 | # Download to tmpfile
84 | while true; do
85 | if [ "$trycount" -le 0 ]; then
86 | rm "$tmpfile"
87 | echo "[$PRG] ERROR: Downloading of $NAME failed multiple times. Please check:" >&2
88 | echo "[$PRG]" >&2
89 | echo "[$PRG] * that your internet connection is working properly" >&2
90 | echo "[$PRG]" >&2
91 | echo "[$PRG] * and that the plugin database is up-to-date. To update it just run:" >&2
92 | echo "[$PRG] sudo pipelight-plugin --update" >&2
93 | echo "[$PRG]" >&2
94 | echo "[$PRG] If this doesn't help then most-likely the download URLs or checksums" >&2
95 | echo "[$PRG] have changed. We recommend to open a bug-report in this case." >&2
96 | return 1
97 | fi
98 |
99 | download_file "$tmpfile" "$URL" 2>&1 | progressbar "Please wait, downloading ..." "Downloading $NAME ($filesize MiB)"
100 | if [ -f "$tmpfile" ] && [ "$SHA" == "$(sha256sum "$tmpfile" | cut -d' ' -f1)" ]; then
101 | break
102 | fi
103 |
104 | (( trycount-- ))
105 | sleep 2
106 | done
107 |
108 | # Move the downloaded file to the right path
109 | if mv "$tmpfile" "$dlfile"; then
110 | chmod 0644 "$dlfile"
111 | DOWNLOADFILE="$dlfile"
112 | return 0
113 | fi
114 |
115 | # Continue using the temp path
116 | atexit_add_rm "$tmpfile"
117 | DOWNLOADFILE="$tmpfile"
118 | return 0
119 | }
120 |
121 |
122 | # > Extract cab library
123 | # arguments:
124 | # $1 - cab file
125 | # $2 - file to extract
126 | #
127 | # optional arguments:
128 | # --reg - run regsvr32.dll to register the dll
129 | install_cabextract()
130 | {
131 | local CABFILE="$1"; shift
132 | local FILE="$1"; shift
133 |
134 | local system32="$WINEPREFIX/drive_c/windows/system32"
135 | cabextract -d "$system32" "$CABFILE" -F "$FILE"
136 | if [ ! -f "$system32/$FILE" ]; then
137 | echo "[$PRG] ERROR: Failed to extract $FILE from cab file." >&2
138 | return 1
139 | fi
140 |
141 | # Process additional args
142 | while [ $# -gt 0 ] ; do
143 | local cmd=$1; shift
144 | case "$cmd" in
145 | --rename)
146 | if ! mv "$system32/$FILE" "$system32/$1"; then
147 | echo "[$PRG] ERROR: Unable to rename extracted file." >&2
148 | return 1
149 | fi
150 | FILE="$1"; shift
151 | ;;
152 | --reg)
153 | "$WINE" regsvr32.exe "$FILE"
154 | ;;
155 | *)
156 | echo "[$PRG] ERROR: Internal error, install_cabextract called with argument: $cmd" >&2
157 | return 1
158 | ;;
159 | esac
160 | done
161 |
162 | # Successful
163 | return 0
164 | }
165 |
166 | # Use fetch on FreeBSD if wget is not available
167 | if command -v wget >/dev/null 2>&1; then
168 | download_file()
169 | {
170 | wget -O "$1" "$2"
171 | }
172 | get_download_size()
173 | {
174 | local filesize="$(wget -O- "$1" --spider --server-response 2>&1 | sed -ne '/Content-Length/{s/.*: //;p}')"
175 | local re='^[0-9]+$'
176 | if [[ "$filesize" -ne "0" ]] && [[ "$filesize" =~ $re ]]; then
177 | echo "$(($filesize/(1024*1024)))"
178 | else
179 | echo "N/A"
180 | fi
181 | }
182 | elif command -v fetch >/dev/null 2>&1; then
183 | download_file()
184 | {
185 | fetch -o "$1" "$2"
186 | }
187 | get_download_size()
188 | {
189 | echo "N/A"
190 | }
191 | else
192 | download_file()
193 | {
194 | echo "ERROR: Could neither find wget nor fetch. Unable to download file!" >&2
195 | return 1
196 | }
197 | get_download_size()
198 | {
199 | echo "N/A"
200 | }
201 | fi
202 |
203 | # Use shasum instead of sha256sum on MacOS / *BSD
204 | if ! command -v sha256sum >/dev/null 2>&1 && command -v shasum >/dev/null 2>&1; then
205 | sha256sum()
206 | {
207 | shasum -a 256 "$1"
208 | }
209 | fi
210 |
211 | # Use md5 instead of md5sum on MacOS / *BSD
212 | if ! command -v md5sum >/dev/null 2>&1 && command -v md5 >/dev/null 2>&1; then
213 | md5sum()
214 | {
215 | md5
216 | }
217 | fi
218 |
219 | # Check if some visual feedback is possible
220 | if command -v zenity >/dev/null 2>&1; then
221 | progressbar()
222 | {
223 | WINDOWID="" zenity --progress --title="$1" --text="$2" --pulsate --width=400 --auto-close --no-cancel ||
224 | WINDOWID="" zenity --progress --title="$1" --text="$2" --pulsate --width=400 --auto-close
225 | }
226 |
227 | elif command -v kdialog >/dev/null 2>&1 && command -v qdbus >/dev/null 2>&1; then
228 | #Check if qdbus is symlinked to qtchooser (for Arch Linux)
229 | QDBUSPATH=$(which qdbus)
230 | QDBUSPATH=$(readlink "$QDBUSPATH")
231 | if [ "$QDBUSPATH" == "qtchooser" ]; then
232 | QDBUSPATH="qtchooser -run-tool=qdbus -qt=4"
233 | else
234 | QDBUSPATH="qdbus"
235 | fi
236 |
237 | progressbar()
238 | {
239 | local dcopref=$(kdialog --title "$1" --progressbar "$2" 10)
240 |
241 | # Update the progress bar (not really the progress, but the user knows that something is going on)
242 | (
243 | local progress=1
244 | while true; do
245 | local err=$($QDBUSPATH $dcopref org.freedesktop.DBus.Properties.Set org.kde.kdialog.ProgressDialog value "$progress" 2>&1)
246 | if [ ! -z "$err" ]; then break; fi
247 |
248 | sleep 1
249 |
250 | (( progress++ ))
251 | if [ "$progress" -gt 10 ]; then progress=0; fi
252 | done
253 | ) 0 /dev/null
260 | }
261 |
262 | else
263 | progressbar()
264 | {
265 | cat -
266 | }
267 | fi
268 |
269 | # Abort if no arguments were given
270 | if [ $# -ne 2 ]; then
271 | echo "[$PRG] ERROR: Please provide a path to a plugin config and a plugin name." >&2
272 | exit 1
273 | fi
274 |
275 | # Check for environment variables
276 | if [ -z "$WINE" ] || [ -z "$WINEPREFIX" ]; then
277 | echo "[$PRG] ERROR: Missing necessary environment variables WINE and WINEPREFIX." >&2
278 | exit 1
279 | fi
280 |
281 | if [ ! -w "$WINEPREFIX" ]; then
282 | WINEPREFIX_PARENT="$(dirname "$WINEPREFIX")"
283 | if [ ! -w "$WINEPREFIX_PARENT" ] || [ ! -O "$WINEPREFIX_PARENT" ]; then
284 | echo "[$PRG] ERROR: You're running this script as a wrong user - WINEPREFIX or parent directory not owned by you." >&2
285 | exit 1
286 | fi
287 | fi
288 |
289 | PLUGIN_SCRIPT="$1"
290 | PLUGIN="$2"
291 |
292 | if [ ! -f "$PLUGIN_SCRIPT" ]; then
293 | echo "[$PRG] ERROR: Plugin script $PLUGIN_SCRIPT does not exist" >&2
294 | exit 1
295 | fi
296 |
297 | # Silent installation
298 | if [ -z "$QUIETINSTALLATION" ]; then
299 | QUIETINSTALLATION=0
300 | fi
301 |
302 | # Generate a lock file based on the wine prefix
303 | LOCKFILE=$(echo "$WINEPREFIX" | md5sum | cut -d' ' -f1)
304 | LOCKFILE="/tmp/wine-$LOCKFILE.tmp"
305 |
306 | LOCKFD=9; eval "exec $LOCKFD> \"\$LOCKFILE\""
307 | if ! flock -x -w 360 "$LOCKFD"; then
308 | echo "[$PRG] ERROR: Failed to obtain an installation lock in 6 minutes." >&2
309 | exit 1
310 | fi
311 |
312 | # Close file descriptor (ensure that the lock is released when the installation is ready)
313 | trap "EXITSTATUS=\$?; flock -u \"$LOCKFD\"; atexit; exit \"\$EXITSTATUS\"" 0
314 |
315 | # Initialize wine if not done yet
316 | if [ ! -f "$WINEPREFIX/system.reg" ]; then
317 |
318 | # Directory exists, but without system.reg - wine will assume wrong platform, so create dummy system.reg
319 | if [ -d "$WINEPREFIX" ] && [ ! -f "$WINEPREFIX/system.reg" ]; then
320 | if [ "$WINEARCH" == "win32" ] || [ "$WINEARCH" == "win64" ]; then
321 | echo -en "WINE REGISTRY Version 2\n\n#arch=$WINEARCH\n" > "$WINEPREFIX/system.reg"
322 | echo "[$PRG] Forced creation of a $WINEARCH wine prefix."
323 | fi
324 | fi
325 |
326 | DISPLAY="" "$WINE" wineboot.exe 2>&1 | progressbar "Please wait..." "Creating wine prefix"
327 | fi
328 |
329 | file_date=$(date -u -Ins -r "$PLUGIN_SCRIPT")
330 |
331 | # Is already installed?
332 | if is_installed "$file_date"; then
333 | echo "[$PRG] $PLUGIN is already installed in '$WINEPREFIX'."
334 | exit 0
335 | fi
336 |
337 | echo "[$PRG] Running $PLUGIN installation script."
338 |
339 | source "$PLUGIN_SCRIPT"
340 | if ! install_plugin; then
341 | echo "[$PRG] ERROR: Installation script for $PLUGIN failed." >&2
342 | exit 1
343 | fi
344 |
345 | # Mark the package as installed
346 | mark_installed "$file_date"
347 |
348 | exit 0
349 |
--------------------------------------------------------------------------------
/share/licenses/license-adobereader.txt.in:
--------------------------------------------------------------------------------
1 | [*] Adobe Reader
2 | By continuing the installation you agree that you've read and accepted the
3 | ADOBE Personal Computer Software License Agreement:
4 | http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/legal/licenses-terms/pdf/Reader_11.0.pdf
5 |
6 | To find out more click here:
7 | http://get.adobe.com/reader
8 |
--------------------------------------------------------------------------------
/share/licenses/license-flash.txt.in:
--------------------------------------------------------------------------------
1 | [*] Adobe Flash Player
2 | By continuing the installation you agree that you've read and accepted the
3 | ADOBE Personal Computer Software License Agreement:
4 | http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/legal/licenses-terms/pdf/Flash%20Player_11.0.pdf
5 |
6 | To find out more click here:
7 | http://get.adobe.com/flashplayer
8 |
--------------------------------------------------------------------------------
/share/licenses/license-foxitpdf.txt.in:
--------------------------------------------------------------------------------
1 | [*] Foxit PDF Reader
2 | By continuing the installation you agree that you've read and accepted the
3 | FOXIT CORPORATION LICENSE AGREEMENT FOR DESKTOP SOFTWARE APPLICATIONS:
4 | http://www.foxitsoftware.com/Secure_PDF_Reader/eula.php
5 |
6 | To find out more click here:
7 | http://www.foxitsoftware.com/Secure_PDF_Reader/
8 |
--------------------------------------------------------------------------------
/share/licenses/license-grandstream.txt.in:
--------------------------------------------------------------------------------
1 | [*] Grandstream WebControl Plugin
2 | To find out more about this plugin click here:
3 | http://www.grandstream.com/support/tools
4 |
--------------------------------------------------------------------------------
/share/licenses/license-hikvision.txt.in:
--------------------------------------------------------------------------------
1 | [*] Hikvision WebControl Plugin
2 | To find out more about this plugin click here:
3 | http://www.hikvision.com/en/
4 |
--------------------------------------------------------------------------------
/share/licenses/license-mpg2splt.txt.in:
--------------------------------------------------------------------------------
1 | [*] mpg2splt.ax
2 | This library is part of the Microsoft DirectX End-User Runtime.
3 | By continuing the installation you agree that you've read and accepted the
4 | Microsoft Software License Terms.
5 | You can find them in @@PIPELIGHT_SHARE_PATH@@/licenses/license-mpg2splt.txt
6 |
7 | To find out more click here:
8 | http://www.microsoft.com/en-us/download/details.aspx?id=35
9 | ---
10 |
11 | MICROSOFT SOFTWARE LICENSE TERMS
12 | MICROSOFT DIRECTX END USER RUNTIME
13 | These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft
14 | * updates,
15 | * supplements,
16 | * Internet-based services, and
17 | * support services
18 | for this software, unless other terms accompany those items. If so, those terms apply.
19 | BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.
20 | If you comply with these license terms, you have the rights below.
21 | 1. INSTALLATION AND USE RIGHTS. You may install and use any number of copies of the software on your devices.
22 | 2. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not
23 | * work around any technical limitations in the software;
24 | * reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;
25 | * make more copies of the software than specified in this agreement or allowed by applicable law, despite this limitation;
26 | * publish the software for others to copy;
27 | * rent, lease or lend the software;
28 | * transfer the software or this agreement to any third party; or
29 | * use the software for commercial software hosting services.
30 | 3. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software.
31 | 4. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes.
32 | 5. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting.
33 | 6. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it.
34 | 7. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.
35 | 8. APPLICABLE LAW.
36 | a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort.
37 | b. Outside the United States. If you acquired the software in any other country, the laws of that country apply.
38 | 9. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.
39 | 10. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
40 | 11. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.
41 | This limitation applies to
42 | * anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and
43 | * claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.
44 | It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.
45 |
--------------------------------------------------------------------------------
/share/licenses/license-mspatcha.txt.in:
--------------------------------------------------------------------------------
1 | [*] mspatcha.dll
2 | This library is part of the Windows Installer 2.0 Redistributable Windows
3 | 2000 and Windows NT 4.0. By continuing the installation you agree that
4 | you've read and accepted the End-User License Agreement for Microsoft
5 | Software:
6 | http://download.microsoft.com/download/WindowsInstaller/Install/2.0/NT45/EN-US/License.txt
7 |
8 | To find out more click here:
9 | http://www.microsoft.com/en-us/download/details.aspx?id=11176
10 |
--------------------------------------------------------------------------------
/share/licenses/license-roblox.txt.in:
--------------------------------------------------------------------------------
1 | [*] ROBLOX Software
2 | By continuing the installation you agree that you've read and accepted the
3 | ROBLOX Software License Agreement: http://www.roblox.com/Info/EULA.htm
4 |
5 | To find out more click here:
6 | http://www.roblox.com
7 |
--------------------------------------------------------------------------------
/share/licenses/license-shockwave.txt.in:
--------------------------------------------------------------------------------
1 | [*] Adobe Shockwave Player
2 | By continuing the installation you agree that you've read and accepted the
3 | ADOBE SOFTWARE LICENSE AGREEMENT:
4 | http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/legal/licenses-terms/pdf/Shockwave%2011.0.pdf
5 |
6 | To find out more click here:
7 | http://get.adobe.com/shockwave
8 |
--------------------------------------------------------------------------------
/share/licenses/license-silverlight4.txt.in:
--------------------------------------------------------------------------------
1 | [*] Microsoft Silverlight 4
2 | By continuing the installation you agree that you've read and accepted the
3 | MICROSOFT SOFTWARE LICENSE TERMS:
4 | http://go2.microsoft.com/fwlink/?LinkID=183382
5 |
6 | Microsoft Silverlight Privacy Statement:
7 | http://go2.microsoft.com/fwlink/?LinkID=200620
8 |
9 | To find out more click here:
10 | http://www.microsoft.com/silverlight/
11 |
--------------------------------------------------------------------------------
/share/licenses/license-silverlight5.0.txt.in:
--------------------------------------------------------------------------------
1 | [*] Microsoft Silverlight 5.0
2 | By continuing the installation you agree that you've read and accepted the
3 | MICROSOFT SOFTWARE LICENSE TERMS:
4 | http://go.microsoft.com/fwlink/?LinkId=229303
5 |
6 | Microsoft Silverlight Privacy Statement:
7 | http://go.microsoft.com/fwlink/?LinkId=229306
8 |
9 | To find out more click here:
10 | http://www.microsoft.com/silverlight/
11 |
--------------------------------------------------------------------------------
/share/licenses/license-silverlight5.1.txt.in:
--------------------------------------------------------------------------------
1 | [*] Microsoft Silverlight 5.1
2 | By continuing the installation you agree that you've read and accepted the
3 | MICROSOFT SOFTWARE LICENSE TERMS:
4 | http://go.microsoft.com/fwlink/?LinkId=229303
5 |
6 | Microsoft Silverlight Privacy Statement:
7 | http://go.microsoft.com/fwlink/?LinkId=229306
8 |
9 | To find out more click here:
10 | http://www.microsoft.com/silverlight/
11 |
--------------------------------------------------------------------------------
/share/licenses/license-unity3d.txt.in:
--------------------------------------------------------------------------------
1 | [*] Unity Web Player
2 | By continuing the installation you agree that you've read and accepted the
3 | Web Player License Agreement:
4 | http://unity3d.com/company/legal/webplayer-eula
5 |
6 | To find out more click here:
7 | http://unity3d.com/unity
8 |
--------------------------------------------------------------------------------
/share/licenses/license-viewright-caiway.txt.in:
--------------------------------------------------------------------------------
1 | [*] ViewRight Caiway
2 | By continuing the installation you agree that you've read and accepted the
3 | END USER LICENSE AGREEMENT.
4 | You can find it in @@PIPELIGHT_SHARE_PATH@@/licenses/license-viewright-caiway.txt
5 |
6 | To find out more click here:
7 | https://www.caiway.nl/site/nl/applicatie/multiscreentvplugins
8 | ---
9 |
10 | ViewRight™ Web
11 |
12 | “CLICK TO ACCEPT” END USER LICENSE AGREEMENT
13 |
14 | PLEASE READ THIS END USER LICENSE AGREEMENT (“EULA”) CAREFULLY. BY USING THIS SOFTWARE YOU OR YOUR COMPANY (“LICENSEE”) ACCEPT ALL OF THE TERMS AND CONDITIONS OF THIS EULA. IF YOU ACQUIRE THIS PRODUCT FOR YOUR COMPANY’S USE, YOU REPRESENT THAT YOU ARE AN AUTHORIZED REPRESENTATIVE WHO HAS THE AUTHORITY TO LEGALLY BIND YOUR COMPANY TO THE TERMS OF THIS EULA. IF YOU/LICENSEE DO NOT AGREE TO THE TERMS OF THIS EULA, YOU/LICENSEE ARE NOT AUTHORIZED TO USE THIS SOFTWARE.
15 |
16 | 1.0 Ownership. Verimatrix, Inc. (“Verimatrix”) and its licensors own the Software and all intellectual property rights therein. The structure, organization and code of the Software are valuable trade secrets and are confidential information. The Software is protected by law including, without limitation, the copyright laws of the United States and by international treaties. This EULA does not grant to Licensee any intellectual property rights in the Software and all rights are expressly reserved by Verimatrix.
17 |
18 | 2.0 Software License. Subject to the terms of this EULA, Verimatrix grants to Licensee a non-exclusive license to use the Software internally for the purposes described in the Software Documentation. Use of some third party materials may be subject to other terms and conditions typically found in a separate license agreement or “Read Me” file located near such materials. Licensee is permitted to make a single copy of the Software strictly for backup/archival purposes only. Licensee may not alter or modify the Software.
19 |
20 | 3.0 Restrictions on Use. Licensee may not and shall not permit a third party to:
21 | (i) Create derivative works based on the Software;
22 | (ii) Sell, assign, license, disclose or otherwise transfer or make available the Software in whole or in part to any third party;
23 | (iii) Alter, translate, decompile or attempt to reverse engineer the Software;
24 | (iv) Use the Software to provide services to third parties or to provide any type of service bureau or application service provider service; or
25 | (v) Remove or alter any proprietary notices or marks on the Software.
26 |
27 | 4.0 Updates. If Licensee is receiving an update or an upgrade to or a new version of the Software (“Update”), License must possess a valid license to use the previous version in order to use the Update. All Updates are provided to Licensee on a license exchange basis. Licensee agrees that by using an Update, Licensee voluntarily terminates Licensee’s right to use any previous version of the Software. Licensee may continue to use previous versions of the Software but Licensee acknowledges and agrees that any obligation that Verimatrix has to support previous versions of the Software may end upon availability of the Update.
28 |
29 | 5.0 NO WARRANTY. THE SOFTWARE IS OFFERED ON AN “AS-IS” BASIS. NO WARRANTY EITHER EXPRESS OR IMPLIED IS GIVEN. VERIMATRIX AND ITS LICENSORS DISCLAIM ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. VERIMATRIX SPECIFICALLY DISCLAIMS ANY AND ALL LIABILITY HOWSOEVER ARISING WHICH RESULTS FROM THE USE OF MPEG EMBEDDED SOFTWARE AND SPECIFIC TECHNIQUES EMPLOYED BY SOFTWARE TO PREVENT ALTERATION, REVERSE ENGINEERING AND DECOMPILATION, IF ANY.
30 |
31 | 6.0 Indemnification. By having read this EULA and using the Software, Licensee agrees to indemnify and hold harmless Verimatrix, its officers, employees, agents, subsidiaries, affiliates and partners from any direct, indirect, incidental, special, consequential or exemplary damages arising out of, relating to, or resulting from Licensee’s use of the Software or any other matter relating to the Software.
32 |
33 | 7.0 Limitation of Liability. Licensee expressly UNDERSTANDS AND AGREES THAT VERIMATRIX SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA OR OTHER INTANGIBLE LOSSES EVEN IF VERIMATRIX HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE EXLCUSION OR THE LIMITATION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES. aCCORDINGLY, SOME OF THE ABOVE LIMITATIONS MAY NOT APPLY TO LICENSEE. IN NO EVENT SHALL VERIMATRIX’S TOTAL CUMULATIVE DAMAGES ARISING UNDER THE TERMS OF THIS eula EXCEED THE FEES PAID BY LICENSEE TO VERIMATRIX FOR THE SOFTWARE.
34 |
35 | 8.0 General Provisions. The terms of this EULA shall be governed by and construed in accordance with the laws of the State of California without regard to its conflict of law principles. The EULA contains the entire agreement between the parties with respect to its subject matter and supersedes any prior agreements between the parties. If any provision of this EULA is held to be invalid or unenforceable by a court of law, such provision shall be changed and interpreted so as to best accomplish the objectives of the original version to the fullest extent allowed by law and the remaining provisions shall remain in full force and effect. The parties acknowledge that licensing of the Software is subject to the export control laws of the United States including, the U.S. Bureau of Export Administration regulations, as amended, and the parties agree to obey all such laws. Licensee may not assign this EULA and any purported assignment of this EULA by Licensee shall be null and void. Verimatrix and the Verimatrix logo are and shall remain the trademarks of Verimatrix.
36 |
37 | 9.0 USE OF THIS PRODUCT IN ANY MANNER THAT COMPLIES WITH THE MPEG-2 STANDARD IS EXPRESSLY PROHIBITED WITHOUT A LICENSE UNDER APPLICABLE PATENTS IN THE MPEG-2 PATENT PORTFOLIO, WHICH LICENSE IS AVAILABLE FROM MPEG LA, LLC, 250 STEELE STREET, SUITE 300, DENVER, COLORADO 80206.
38 |
39 | 10.0 THIS PRODUCT IS LICENSED UNDER THE AVC PATENT PORTFOLIO LICENSE FOR THE PERSONAL AND NON-COMMERCIAL USE OF A CONSUMER TO (I) ENCODE VIDEO IN COMPLIANCE WITH THE AVC STANDARD ("AVC VIDEO") AND/OR (II) DECODE AVC VIDEO THAT WAS ENCODED BY A CONSUMER ENGAGED IN A PERSONAL AND NON-COMMERCIAL ACTIVITY AND/OR WAS OBTAINED FROM A VIDEO PROVIDER LICENSED TO PROVIDE AVC VIDEO. NO LICENSE IS GRANTED OR SHALL BE IMPLIED FOR ANY OTHER USE. ADDITIONAL INFORMATION MAY BE OBTAINED FROM MPEG LA, LLC. SEE HTTP://WWW.MPEGLA.COM.
40 |
--------------------------------------------------------------------------------
/share/licenses/license-widevine.txt.in:
--------------------------------------------------------------------------------
1 | [*] Widevine Media Optimizer
2 | To find out more about this plugin click here:
3 | https://tools.google.com/dlpage/widevine
4 |
--------------------------------------------------------------------------------
/share/licenses/license-wininet.txt.in:
--------------------------------------------------------------------------------
1 | [*] wininet.dll
2 | This wininet.dll library is a debug version provided for the Microsoft
3 | Internet Explorer. By continuing the installation you agree that you've
4 | read and accepted the license terms.
5 | You can find them in @@PIPELIGHT_SHARE_PATH@@/licenses/license-wininet.txt
6 |
7 | To find out more click here:
8 | http://www.microsoft.com/en-us/download/details.aspx?id=11434
9 | ---
10 |
11 | PLEASE NOTE: Microsoft Corporation (or based
12 | on where you live, one of its affiliates)
13 | licenses this supplement to you. The
14 | supplement is identified for use with one or
15 | more Microsoft operating system products (the
16 | 'software'). You may use a copy of this
17 | supplement with each validly licensed copy of
18 | the software. You may not use it if you do
19 | not have a license for the software. The
20 | license terms for the software apply to your
21 | use of this supplement. To read the license
22 | terms, go to www.microsoft.com/useterms
23 | .
24 | Microsoft provides support services for the
25 | supplement as described at www.support.
26 | microsoft.com/common/international.aspx
27 | .
29 |
30 | EULAID:HFX_RM.1_GDR_NRL_EN
31 |
--------------------------------------------------------------------------------
/share/scripts/configure-flash.in:
--------------------------------------------------------------------------------
1 | #!@@BASH@@
2 | PIPELIGHT_SHARE_PATH="@@PIPELIGHT_SHARE_PATH@@"
3 |
4 | # Don't run this as root
5 | if [ $(/usr/bin/id -u) -eq 0 ]; then
6 | echo "ERROR: You should not run this as root!" >&2
7 | exit 1
8 | fi
9 |
10 | # Check for environment variables
11 | if [ -z "$WINE" ]; then
12 | export WINE="$PIPELIGHT_SHARE_PATH/wine"
13 | fi
14 | if [ -z "$WINEPREFIX" ]; then
15 | export WINEPREFIX="$HOME/.wine-pipelight"
16 | fi
17 | if [ -z "$WINEARCH" ]; then
18 | export WINEARCH="win32"
19 | fi
20 | if [ -z "$WINEDLLOVERRIDES" ]; then
21 | export WINEDLLOVERRIDES="mscoree,mshtml,winegstreamer,winemenubuilder.exe="
22 | fi
23 |
24 | if [ ! -x "$WINE" ]; then
25 | echo "ERROR: wine executable not found!" >&2
26 | exit 1
27 | fi
28 |
29 | system32="$WINEPREFIX/drive_c/windows/system32"
30 | flashconfig="$system32/Macromed/Flash/mms.cfg"
31 |
32 | while true; do
33 | hwaccel="disabled"
34 | if grep -q "OverrideGPUValidation=true" "$flashconfig" 2>/dev/null; then
35 | hwaccel="enabled"
36 | fi
37 |
38 | echo ""
39 | echo "Flash hardware acceleration is currently $hwaccel in the config file."
40 |
41 | read -p "[enable/disable/abort]? " hwaccel_new
42 | if [ -z "$hwaccel_new" ] || [ "$hwaccel_new" == "abort" ]; then break; fi
43 |
44 | (
45 | grep -v "^OverrideGPUValidation=" "$flashconfig" 2>/dev/null
46 | if [ "$hwaccel_new" == "disable" ]; then
47 | echo "OverrideGPUValidation=false"
48 | else
49 | echo "OverrideGPUValidation=true"
50 | fi
51 | ) > "$flashconfig.new"
52 |
53 | if ! mv "$flashconfig.new" "$flashconfig"; then
54 | echo "ERROR: Unable to change Flash plugin settings." >&2
55 | fi
56 | done
57 |
58 |
--------------------------------------------------------------------------------
/share/scripts/configure-silverlight.in:
--------------------------------------------------------------------------------
1 | #!@@BASH@@
2 | PIPELIGHT_SHARE_PATH="@@PIPELIGHT_SHARE_PATH@@"
3 |
4 | # Don't run this as root
5 | if [ $(/usr/bin/id -u) -eq 0 ]; then
6 | echo "ERROR: You should not run this as root!" >&2
7 | exit 1
8 | fi
9 |
10 | # Check for environment variables
11 | if [ -z "$WINE" ]; then
12 | export WINE="$PIPELIGHT_SHARE_PATH/wine"
13 | fi
14 | if [ -z "$WINEPREFIX" ]; then
15 | export WINEPREFIX="$HOME/.wine-pipelight"
16 | fi
17 | if [ -z "$WINEARCH" ]; then
18 | export WINEARCH="win32"
19 | fi
20 | if [ -z "$WINEDLLOVERRIDES" ]; then
21 | export WINEDLLOVERRIDES="mscoree,mshtml,winegstreamer,winemenubuilder.exe="
22 | fi
23 |
24 | if [ ! -x "$WINE" ]; then
25 | echo "ERROR: wine executable not found!" >&2
26 | exit 1
27 | fi
28 |
29 | tmpfile=$(mktemp)
30 | [ -f "$tmpfile" ] || exit 1
31 |
32 | while true; do
33 | hwaccel="enabled"
34 | "$WINE" regedit /E "$tmpfile" "HKEY_CURRENT_USER\\Software\\Microsoft\\Silverlight"
35 | if [ $? -eq 0 ]; then
36 | if grep -q "\"DisableGPUAcceleration\"=dword:00000001" "$tmpfile"; then
37 | hwaccel="disabled"
38 | elif grep -q "\"ForceGPUAcceleration\"=dword:00000001" "$tmpfile"; then
39 | hwaccel="forced"
40 | fi
41 | fi
42 |
43 | echo ""
44 | echo "Silverlight hardware acceleration is currently $hwaccel in the registry."
45 | if [ "$hwaccel" == "enabled" ]; then
46 | echo "Please note that it will not be used unless your graphic card is whitelisted."
47 | fi
48 |
49 | read -p "[enable/disable/force/abort]? " hwaccel_new
50 | if [ -z "$hwaccel_new" ] || [ "$hwaccel_new" == "abort" ]; then break; fi
51 |
52 | (
53 | echo "REGEDIT4"
54 | echo ""
55 | echo "[HKEY_CURRENT_USER\\Software\\Microsoft\\Silverlight]"
56 | [ "$hwaccel_new" != "disable" ]
57 | echo "\"DisableGPUAcceleration\"=dword:0000000$?"
58 | [ "$hwaccel_new" != "force" ]
59 | echo "\"ForceGPUAcceleration\"=dword:0000000$?"
60 | ) > "$tmpfile"
61 |
62 | "$WINE" regedit "$tmpfile"
63 | if [ $? -ne 0 ]; then
64 | echo "ERROR: Unable to change Silverlight plugin settings." >&2
65 | fi
66 | done
67 |
68 | # Cleanup
69 | rm "$tmpfile"
70 |
71 | exit 0
--------------------------------------------------------------------------------
/share/sig-install-dependency.gpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/keithbowes/pipelight/40dbef17afd4d559f7e923e4970c2468fd30c83b/share/sig-install-dependency.gpg
--------------------------------------------------------------------------------
/share/sig-pluginloader.gpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/keithbowes/pipelight/40dbef17afd4d559f7e923e4970c2468fd30c83b/share/sig-pluginloader.gpg
--------------------------------------------------------------------------------
/src/common/Makefile:
--------------------------------------------------------------------------------
1 | CXXFLAGS := -I../../include $(CXXFLAGS)
2 | export
3 |
4 | SOURCE = $(wildcard *.c)
5 | OBJECTS = $(SOURCE:.c=_$(common_suffix).o)
6 |
7 | .PHONY: all
8 | all: $(OBJECTS)
9 |
10 | %_$(common_suffix).o: %.c
11 | $(CXX) $(CXXFLAGS) -MMD -MP -o $@ -c $<
12 |
13 | -include $(SOURCE:.c=.d)
14 |
15 | .PHONY: clean
16 | clean:
17 | rm -f *.o *.d
18 |
--------------------------------------------------------------------------------
/src/linux/Makefile:
--------------------------------------------------------------------------------
1 | CXXFLAGS := -I../../../include -Wall -std=gnu++0x -fPIC $(CXXFLAGS)
2 | export
3 |
4 | SUBDIRS = $(dir $(wildcard */Makefile))
5 |
6 | .PHONY: all
7 | all: $(SUBDIRS)
8 |
9 | .PHONY: $(SUBDIRS)
10 | $(SUBDIRS):
11 | $(MAKE) -C $@
12 |
13 | .PHONY: clean
14 | clean:
15 | for dir in $(SUBDIRS); do \
16 | $(MAKE) -C $$dir $@; \
17 | done
--------------------------------------------------------------------------------
/src/linux/libpipelight/Makefile:
--------------------------------------------------------------------------------
1 | CXXFLAGS := -fvisibility=hidden -DPIPELIGHT_SHARE_PATH='"$(datadir)/pipelight"' $(CXXFLAGS)
2 | LDFLAGS := -lpthread -Wl,--unresolved-symbols=report-all $(LDFLAGS)
3 | UNAME_S := $(shell uname -s)
4 | ifeq ($(UNAME_S), FreeBSD)
5 | CXXFLAGS := -I/usr/local/include $(CXXFLAGS)
6 | LDFLAGS := -L/usr/local/lib $(LDFLAGS)
7 | else
8 | LDFLAGS := -ldl $(LDFLAGS)
9 | endif
10 | ifneq ($(UNAME_S),Darwin)
11 | LDFLAGS := -lX11 $(LDFLAGS)
12 | endif
13 | common_suffix := lin
14 | export
15 |
16 | SOURCE = $(wildcard *.c)
17 | OBJECTS = $(SOURCE:.c=.o) ../../common/common_lin.o
18 | SUBDIRS := ../../common/
19 |
20 | .PHONY: all
21 | all: libpipelight.so
22 |
23 | libpipelight.so: $(OBJECTS)
24 | $(CXX) -shared $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -o libpipelight.so
25 |
26 | %.o: %.c
27 | $(CXX) $(CXXFLAGS) -MMD -MP -o $@ -c $<
28 |
29 | ../../common/common_lin.o: dummy
30 | $(MAKE) -C ../../common/
31 |
32 | -include $(SOURCE:.c=.d)
33 |
34 | .PHONY: clean dummy
35 | clean:
36 | rm -f *.so *.o *.d
37 | for dir in $(SUBDIRS); do \
38 | $(MAKE) -C $$dir $@; \
39 | done
--------------------------------------------------------------------------------
/src/linux/libpipelight/basicplugin.h:
--------------------------------------------------------------------------------
1 | /* ***** BEGIN LICENSE BLOCK *****
2 | * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3 | *
4 | * The contents of this file are subject to the Mozilla Public License Version
5 | * 1.1 (the "License"); you may not use this file except in compliance with
6 | * the License. You may obtain a copy of the License at
7 | * http://www.mozilla.org/MPL/
8 | *
9 | * Software distributed under the License is distributed on an "AS IS" basis,
10 | * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11 | * for the specific language governing rights and limitations under the
12 | * License.
13 | *
14 | * The Original Code is mozilla.org code.
15 | *
16 | * The Initial Developer of the Original Code is
17 | * Netscape Communications Corporation.
18 | * Portions created by the Initial Developer are Copyright (C) 1998
19 | * the Initial Developer. All Rights Reserved.
20 | *
21 | * Contributor(s):
22 | * Josh Aas
23 | * Michael Müller
24 | * Sebastian Lackner
25 | *
26 | * Alternatively, the contents of this file may be used under the terms of
27 | * either the GNU General Public License Version 2 or later (the "GPL"), or
28 | * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
29 | * in which case the provisions of the GPL or the LGPL are applicable instead
30 | * of those above. If you wish to allow use of your version of this file only
31 | * under the terms of either the GPL or the LGPL, and not to allow others to
32 | * use your version of this file under the terms of the MPL, indicate your
33 | * decision by deleting the provisions above and replace them with the notice
34 | * and other provisions required by the GPL or the LGPL. If you do not delete
35 | * the provisions above, a recipient may use your version of this file under
36 | * the terms of any one of the MPL, the GPL or the LGPL.
37 | *
38 | * ***** END LICENSE BLOCK ***** */
39 |
40 | #ifndef BasicPlugin_h_
41 | #define BasicPlugin_h_
42 |
43 | #include
44 |
45 | #include "common/common.h"
46 | #include "configloader.h"
47 |
48 | extern PluginConfig config;
49 |
50 | /*
51 | Plugin Interface for the Browser
52 | */
53 |
54 | NPError NP_Initialize(NPNetscapeFuncs* bFuncs, NPPluginFuncs* pFuncs);
55 | NPError NP_Shutdown();
56 |
57 | NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc, char* argn[], char* argv[], NPSavedData* saved);
58 | NPError NPP_Destroy(NPP instance, NPSavedData** save);
59 | NPError NPP_SetWindow(NPP instance, NPWindow* window);
60 | NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16_t* stype);
61 | NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason);
62 | int32_t NPP_WriteReady(NPP instance, NPStream* stream);
63 | int32_t NPP_Write(NPP instance, NPStream* stream, int32_t offset, int32_t len, void* buffer);
64 | void NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname);
65 | void NPP_Print(NPP instance, NPPrint* platformPrint);
66 | int16_t NPP_HandleEvent(NPP instance, void* event);
67 | void NPP_URLNotify(NPP instance, const char* URL, NPReason reason, void* notifyData);
68 | NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value);
69 | NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value);
70 |
71 | /* XEMBED messages */
72 | #define XEMBED_EMBEDDED_NOTIFY 0
73 | #define XEMBED_WINDOW_ACTIVATE 1
74 | #define XEMBED_WINDOW_DEACTIVATE 2
75 | #define XEMBED_REQUEST_FOCUS 3
76 | #define XEMBED_FOCUS_IN 4
77 | #define XEMBED_FOCUS_OUT 5
78 | #define XEMBED_FOCUS_NEXT 6
79 | #define XEMBED_FOCUS_PREV 7
80 | /* 8-9 were used for XEMBED_GRAB_KEY/XEMBED_UNGRAB_KEY */
81 | #define XEMBED_MODALITY_ON 10
82 | #define XEMBED_MODALITY_OFF 11
83 | #define XEMBED_REGISTER_ACCELERATOR 12
84 | #define XEMBED_UNREGISTER_ACCELERATOR 13
85 | #define XEMBED_ACTIVATE_ACCELERATOR 14
86 |
87 | /* Details for XEMBED_FOCUS_IN: */
88 | #define XEMBED_FOCUS_CURRENT 0
89 | #define XEMBED_FOCUS_FIRST 1
90 | #define XEMBED_FOCUS_LAST 2
91 |
92 | #define XEMBED_MAPPED (1 << 0)
93 |
94 | /* public */
95 | struct PluginData
96 | {
97 | Context *ctx;
98 | bool pipelightError;
99 | int containerType;
100 | void* container;
101 | #ifndef __APPLE__
102 | Window plugin;
103 | #endif
104 | };
105 |
106 | #endif // BasicPlugin_h_
107 |
--------------------------------------------------------------------------------
/src/linux/libpipelight/configloader.h:
--------------------------------------------------------------------------------
1 | /* ***** BEGIN LICENSE BLOCK *****
2 | * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3 | *
4 | * The contents of this file are subject to the Mozilla Public License Version
5 | * 1.1 (the "License"); you may not use this file except in compliance with
6 | * the License. You may obtain a copy of the License at
7 | * http://www.mozilla.org/MPL/
8 | *
9 | * Software distributed under the License is distributed on an "AS IS" basis,
10 | * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11 | * for the specific language governing rights and limitations under the
12 | * License.
13 | *
14 | * The Original Code is fds-team.de code.
15 | *
16 | * The Initial Developer of the Original Code is
17 | * Michael Müller
18 | * Portions created by the Initial Developer are Copyright (C) 2013
19 | * the Initial Developer. All Rights Reserved.
20 | *
21 | * Contributor(s):
22 | * Michael Müller
23 | * Sebastian Lackner
24 | *
25 | * Alternatively, the contents of this file may be used under the terms of
26 | * either the GNU General Public License Version 2 or later (the "GPL"), or
27 | * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
28 | * in which case the provisions of the GPL or the LGPL are applicable instead
29 | * of those above. If you wish to allow use of your version of this file only
30 | * under the terms of either the GPL or the LGPL, and not to allow others to
31 | * use your version of this file under the terms of the MPL, indicate your
32 | * decision by deleting the provisions above and replace them with the notice
33 | * and other provisions required by the GPL or the LGPL. If you do not delete
34 | * the provisions above, a recipient may use your version of this file under
35 | * the terms of any one of the MPL, the GPL or the LGPL.
36 | *
37 | * ***** END LICENSE BLOCK ***** */
38 |
39 | #ifndef ConfigLoader_h_
40 | #define ConfigLoader_h_
41 |
42 | #include // for strcasecmp
43 | #include // for std::string
44 | #include // for std::vector
45 | #include