%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}
# Compile as a debug package
%define make_debug_package 0
# What gecko we use
%define gecko_flavour "mozilla"
%define plugin_config_version 1.9
%define plugin_config_name plugin-config-%{plugin_config_version}
%define plugin_config_binary plugin-config
# Excluded plugins (separated by ':')
%define exclude_list "libtotem*:libjavaplugin*:gecko-mediaplayer*:mplayerplug-in*:librhythmbox*"
# Target defines
%if "%{_target_cpu}" == "i386"
%define target_bits 32
%endif
%if "%{_target_cpu}" == "i586"
%define target_bits 32
%endif
%if "%{_target_cpu}" == "i686"
%define target_bits 32
%endif
%if "%{_target_cpu}" == "ppc"
%define target_bits 32
%endif
%if "%{_target_cpu}" == "x86_64"
%define target_bits 64
%endif
%if "%{_target_cpu}" == "ppc64"
%define target_bits 64
%endif
# Define libraries for 32/64 arches
%define lib32 lib
%define lib64 lib64
%define libdir32 /usr/lib
%define libdir64 /usr/lib64
# define nspluginswrapper libdir (invariant, including libdir)
%define pkgdir32 %{libdir32}/%{name}
%define pkgdir64 %{libdir64}/%{name}
# define mozilla plugin dir and back up dir for 32-bit browsers
%define pluginsourcedir32 %{libdir32}/mozilla/plugins
%define plugindir32 %{libdir32}/mozilla/plugins-wrapped
# define mozilla plugin dir and back up dir for 64-bit browsers
%define pluginsourcedir64 %{libdir64}/mozilla/plugins
%define plugindir64 %{libdir64}/mozilla/plugins-wrapped
%define build_dir objs-%{target_bits}
%if "%{target_bits}" == "32"
%define lib %{lib32}
%define libdir %{libdir32}
%define pkgdir %{pkgdir32}
%define plugindir %{plugindir32}
%define pluginsourcedir %{pluginsourcedir32}
%else
%define lib %{lib64}
%define libdir %{libdir64}
%define pkgdir %{pkgdir64}
%define plugindir %{plugindir64}
%define pluginsourcedir %{pluginsourcedir64}
%endif
Summary: A compatibility layer for Netscape 4 plugins
Name: nspluginwrapper
Version: 1.3.0
Release: 2%{?_dist_release}
Source0: %{name}-%{version}%{?svndate:-%{svndate}}.tar.bz2
Source1: %{plugin_config_name}.tar.gz
Source2: plugin-config.sh.in
Source3: %{name}.sh.in
Patch1: nspluginwrapper-1.3.0-make.patch
Patch2: nspluginwrapper-1.3.0-configure.patch
Patch3: nspluginwrapper-1.3.0-directory.patch
Patch100: plugin-config-setuid.patch
Patch101: plugin-config-umask.patch
Patch102: plugin-config-print.patch
Patch103: plugin-config-native.patch
License: GPLv2+
Group: Applications/Internet
URL: http://gwenole.beauchesne.info/projects/nspluginwrapper/
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Provides: %{name} = %{version}-%{release}
#Requires: mozilla-filesystem
%ifarch x86_64
Requires: compat32-%{name} = %{version}-%{release}
%endif
BuildRequires: pkgconfig gtk2-devel glib2-devel nspr-devel
BuildRequires: libX11-devel libXt-devel cairo-devel pango-devel curl-devel
BuildRequires: gecko-devel
ExclusiveArch: %{ix86} x86_64 ppc
%description
nspluginwrapper makes it possible to use Netscape 4 compatible plugins
compiled for %{_arch} into Mozilla for another architecture, e.g. x86_64.
This package consists in:
* npviewer: the plugin viewer
* npwrapper.so: the browser-side plugin
* nspluginplayer: stand-alone NPAPI plugin player
* mozilla-plugin-config: a tool to manage plugins installation and update
## to build compat32 for x86_64 architecture support
%package -n compat32-%{name}
Summary: A compatibility layer for Netscape 4 plugins
Group: System Environment/Libraries
%description -n compat32-%{name}
nspluginwrapper makes it possible to use Netscape 4 compatible plugins
compiled for %{_arch} into Mozilla for another architecture, e.g. x86_64.
This package consists in:
* npviewer: the plugin viewer
* npwrapper.so: the browser-side plugin
* nspluginplayer: stand-alone NPAPI plugin player
* mozilla-plugin-config: a tool to manage plugins installation and update
%prep
%setup -q -a 1
# Installation & build patches
%patch1 -p1 -b .make
%patch2 -p1 -b .conf
%patch3 -p1 -b .dir
# Plugin-config patches
pushd %plugin_config_name
%patch100 -p2
%patch101 -p2 -b .umask
%patch102 -p2 -b .print
%patch103 -p2 -b .native
popd
%build
# Build wrapper
# set the propper built options
%if %{make_debug_package}
%if "%{target_bits}" == "64"
export CFLAGS="-g -m64 -DDEBUG"
%else
export CFLAGS="-g -m32 -DDEBUG"
%endif
%else
export CFLAGS="$RPM_OPT_FLAGS"
%endif
# set the propper built options
%if "%{target_bits}" == "64"
export LDFLAGS="-m64 -L%{libdir64}"
%else
export LDFLAGS="-m32 -L%{libdir32}"
%endif
mkdir %{build_dir}
pushd %{build_dir}
../configure \
--prefix=%{_prefix} \
--target-cpu=%{_target_cpu} \
--pkgdir=%{name} \
--pkglibdir=%{pkgdir} \
--with-lib32=%{lib32} \
--with-lib64=%{lib64} \
--with-base-lib=%{lib} \
--with-base-libdir=%{libdir} \
--viewer-paths=%{pkgdir} \
--with-x11-prefix=/usr \
--with-gecko=%{gecko_flavour} \
--enable-viewer \
--viewer-paths="%{pkgdir32}:%{pkgdir64}"\
--disable-biarch
make
popd
#Build plugin configuration utility
pushd %{plugin_config_name}
./configure --prefix=/usr CFLAGS="$RPM_OPT_FLAGS"
make
popd
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{_bindir}
mkdir -p $RPM_BUILD_ROOT%{plugindir}
mkdir -p $RPM_BUILD_ROOT%{pluginsourcedir}
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
make -C %{build_dir} install DESTDIR=$RPM_BUILD_ROOT
ln -s %{pkgdir}/npwrapper.so $RPM_BUILD_ROOT/%{plugindir}/npwrapper.so
# Install plugin-config utility
pushd %{plugin_config_name}
DESTDIR=$RPM_BUILD_ROOT make install
popd
cd $RPM_BUILD_ROOT/usr/bin
mv %{plugin_config_binary} $RPM_BUILD_ROOT/%{pkgdir}
cd -
rm -rf $RPM_BUILD_ROOT/usr/doc/plugin-config
cat %{SOURCE2} > $RPM_BUILD_ROOT%{_bindir}/mozilla-plugin-config
chmod 755 $RPM_BUILD_ROOT%{_bindir}/mozilla-plugin-config
cat %{SOURCE3} | %{__sed} -e "s|EXCLUDE_LIST|%{exclude_list}|g" \
> $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}
chmod 644 $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}
# set up nsplugin player starting script
%{__cat} > $RPM_BUILD_ROOT%{pkgdir}/nspluginplayer << EOF
export MOZ_PLUGIN_PATH=%{pluginsourcedir}
%{pkgdir}/npplayer "$@"
EOF
chmod 755 $RPM_BUILD_ROOT%{pkgdir}/nspluginplayer
# Remove conflicting files
rm -rf $RPM_BUILD_ROOT%{_bindir}/nspluginplayer
rm -rf $RPM_BUILD_ROOT%{_bindir}/nspluginwrapper
##
mkdir -p $RPM_BUILD_ROOT/usr/{lib,%{_lib}}/mozilla/{plugins,extensions}
mkdir -p $RPM_BUILD_ROOT/%{_datadir}/mozilla/extensions
mkdir -p $RPM_BUILD_ROOT/etc/skel/.mozilla/{plugins,extensions}
##
%clean
rm -rf $RPM_BUILD_ROOT
%post
/usr/bin/mozilla-plugin-config -i -f > /dev/null 2>&1 || :
%preun
if [ "$1" == "0" ]; then
/usr/bin/mozilla-plugin-config -r > /dev/null 2>&1 || :
fi;
%files
%defattr(-,root,root)
%doc README COPYING NEWS
%dir %{pkgdir}
%dir %{plugindir}
%{pkgdir}/%{plugin_config_binary}
%{pkgdir}/npconfig
%{pkgdir}/npwrapper.so
%{pkgdir}/npviewer.bin
%{pkgdir}/npviewer.sh
%{pkgdir}/npviewer
%{pkgdir}/npplayer
%{pkgdir}/libxpcom.so
%{pkgdir}/libnoxshm.so
%{pkgdir}/nspluginplayer
%{plugindir}/npwrapper.so
%{_bindir}/mozilla-plugin-config
%config %{_sysconfdir}/sysconfig/%{name}
##
/usr/lib*/mozilla
%{_datadir}/mozilla
/etc/skel/.mozilla
##
## to build compat32 for x86_64 architecture support
%if %{build_compat32}
%files -n compat32-%{name}
%defattr(-,root,root)
%dir %{pkgdir}
%dir %{plugindir}
%{pkgdir}/%{plugin_config_binary}
%{pkgdir}/npconfig
%{pkgdir}/npwrapper.so
%{pkgdir}/npviewer.bin
%{pkgdir}/npviewer.sh
%{pkgdir}/npviewer
%{pkgdir}/npplayer
%{pkgdir}/libxpcom.so
%{pkgdir}/libnoxshm.so
%{pkgdir}/nspluginplayer
%{plugindir}/npwrapper.so
%endif
%changelog
* Sat Aug 28 2010 Ryoichi INAGAKI 1.3.0-2
- changed Group to System Environment/Libraries
* Sat Jun 20 2009 Munehiro Yamamoto 1.3.0-1
- initial release
- ported from Fedora development package
* Tue Mar 03 2009 Warren Togami - 1.3.0-5
- Really Fix x86 32bit build (#488308)
* Sun Mar 01 2009 Warren Togami - 1.3.0-4
- Fix x86 32bit build
* Wed Feb 25 2009 Fedora Release Engineering - 1.3.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Thu Jan 9 2009 Martin Stransky 1.3.0-2
- Fixed multilib conflicts
* Thu Jan 8 2009 Martin Stransky 1.3.0-1
- Updated to 1.3.0 and removed some fedora build patches
* Tue Dec 02 2008 Warren Togami 1.1.8-2
- fix-invalid-RPC-after-NPP_Destroy fixes a crasher
* Mon Dec 1 2008 Martin Stransky 1.1.8-1
- Updated to 1.1.8
- Removed already upstreamed patches
* Wed Nov 12 2008 Martin Stransky 1.1.4-1
- Updated to 1.1.4
- Consolidated build patches
* Wed Oct 22 2008 Martin Stransky 1.1.2-4
- Fixed #449338 - mozilla-plugin-config segfaults with -v argument
* Tue Oct 21 2008 Martin Stransky 1.1.2-3
- Removed event patch, it blocks X events and breaks Adobe pdf plugin
- Removed event limit in xt_event_polling_timer_callback
* Fri Oct 17 2008 Martin Stransky 1.1.2-2
- added umask to plugin config (#463736)
* Thu Oct 16 2008 Martin Stransky 1.1.2-1
- updated to 1.1.12
- added librhythmbox* to ignored plugins (#467187)
- removed debug prints (#467090)
* Mon Oct 06 2008 Warren Togami 1.1.0-11
- Unrevert patch from -7 because Warren was wrong
- Concurrent rpc_method_invoke() patch
* Fri Oct 03 2008 Warren Togami 1.1.0-10
- Revert libcurl requires because it was done in an incorrect way
- Revert patch from -7 because it made things worse
* Tue Sep 30 2008 Martin Stransky 1.1.0-7
- Updated fix for #456432 -(Windowless Crash) Flash 10 w/ Firefox 3
* Wed Sep 17 2008 Martin Stransky 1.1.0-6
- Added libcurl to requires (#460988)
* Mon Aug 04 2008 Martin Stransky 1.1.0-5
- Added fix for #456432 -(Windowless Crash) Flash 10 w/ Firefox 3
* Mon Jul 21 2008 Martin Stransky 1.1.0-4
- Removed gecko-libs from requieres (it's not needed now)
* Tue Jul 18 2008 Martin Stransky 1.1.0-3
- Enabled experimental stand-alone plugin player
* Tue Jul 15 2008 Martin Stransky 1.1.0-2
- Fixed build warnings in our patches
* Tue Jul 8 2008 Martin Stransky 1.1.0-1
- update to latest upstream version (1.1.0)
* Mon May 5 2008 Martin Stransky 0.9.91.5-28
- link pluginwrapper with stdc++ lib
* Wed Apr 30 2008 Christopher Aillon 0.9.91.5-27
- mozilla-filesystem now owns the plugin source dir
* Tue Mar 11 2008 Martin Stransky 0.9.91.5-26
- /etc/sysconfig/nspluginwrapper marked as config file
- exclude some player plugins
* Mon Mar 10 2008 Martin Stransky 0.9.91.5-25
- updated the sleep patch
* Thu Mar 06 2008 Martin Stransky 0.9.91.5-24
- added experimental patch for #426968 - nspluginwrapper wakes up too much
* Tue Feb 26 2008 Martin Stransky 0.9.91.5-23
- merged exclude patch with main tarball
- fixed #431095 - Typo in mozilla-plugin-config verbose output
* Tue Feb 19 2008 Fedora Release Engineering - 0.9.91.5-22
- Autorebuild for GCC 4.3
* Mon Jan 21 2008 Martin Stransky 0.9.91.5-21
- fixed #426618 - gcjwebplugin error: Failed to run
(added to ignored plugins)
* Mon Jan 14 2008 Martin Stransky 0.9.91.5-20
- fixed #426176 - Orphaned npviewer.bin processes
* Thu Jan 10 2008 Martin Stransky 0.9.91.5-19
- xulrunner rebuild
- fixed build script, added gthread-2.0
* Mon Dec 24 2007 Warren Togami 0.9.91.5-18
- Make nsviewer.bin initialized for multithreading, fixes #360891
* Tue Dec 20 2007 Martin Stransky 0.9.91.5-17
- disabled xpcom support - it causes more troubles than advantages
* Tue Dec 13 2007 Martin Stransky 0.9.91.5-16
- spec fixes
- fixed xulrunner support
* Mon Dec 10 2007 Martin Stransky 0.9.91.5-15
- updated configure script - gecko selection
* Thu Dec 06 2007 Martin Stransky 0.9.91.5-14
- enabled xpcom support
- added fix for #393541 - scripts will never fail
* Fri Nov 23 2007 Martin Stransky 0.9.91.5-13
- rebuilt against xulrunner
* Tue Nov 6 2007 Martin Stransky 0.9.91.5-12
- more fixes from review by security standards team
* Wed Oct 31 2007 Martin Stransky 0.9.91.5-11
- added fixes from review by security standards team
* Fri Oct 26 2007 Martin Stransky 0.9.91.5-10
- mozilla-plugin-config can be run by normal user now
* Wed Oct 24 2007 Martin Stransky 0.9.91.5-9
- Updated config utility - removes dangling symlinks and
wrapped plugins
* Tue Oct 23 2007 Jeremy Katz 0.9.91.5-8
- Rebuild against new firefox
* Mon Oct 15 2007 Martin Stransky 0.9.91.5-7
- added a fix for #281061 - gnash fails when wrapped, works when native
* Wed Oct 10 2007 Martin Stransky 0.9.91.5-6
- removed possibble deadlock during plugin restart
* Tue Oct 9 2007 Martin Stransky 0.9.91.5-5
- fixed browser crashes (#290901)
* Mon Oct 1 2007 Martin Stransky 0.9.91.5-4
- quit the plugin when browser crashes (#290901)
* Fri Sep 21 2007 Martin Stransky 0.9.91.5-3
- added original plugin dir to the package
* Mon Sep 10 2007 Martin Stransky 0.9.91.5-2
- added upstream patches - RPC error handling and plugin restart
* Mon Aug 27 2007 Martin Stransky 0.9.91.5-1
- update to the latest upstream
* Mon Aug 27 2007 Martin Stransky 0.9.91.4-19
- converted rpc error handling code to a thread-safe variant
- added a time limit to plugin restart
* Tue Aug 14 2007 Martin Stransky 0.9.91.4-18
- implemented plugin restart (#251530)
* Tue Aug 14 2007 Martin Stransky 0.9.91.4-17
- fixed an installation script (#251698)
* Mon Aug 13 2007 Martin Stransky 0.9.91.4-16
- fixed plugins check
- minor spec fixes
* Fri Aug 10 2007 Martin Stransky 0.9.91.4-15
- removed mozembeded dependency
- excluded totem plugins from wrapping
- xpcom support is optional now
* Thu Aug 9 2007 Christopher Aillon 0.9.91.4-14
- Rebuild against newer gecko
* Wed Aug 8 2007 Martin Stransky 0.9.91.4-13
- removed unsafe plugins probe
- added agruments to mozilla-plugin-config
* Tue Aug 7 2007 Martin Stransky 0.9.91.4-12
- removed fake libxpcom
* Mon Aug 6 2007 Martin Stransky 0.9.91.4-11
- added gecko dependency
- added plugin configuration utility
* Fri Aug 3 2007 Martin Stransky 0.9.91.4-10
- fixed totem-complex plugin wrapping
* Mon Jul 30 2007 Martin Stransky 0.9.91.4-9
- added plugin dirs
* Fri Jul 27 2007 Martin Stransky 0.9.91.4-8
- added switch for creating debug packages
* Thu Jul 19 2007 Martin Stransky 0.9.91.4-7
- integrated with firefox / seamonkey
* Tue Jul 11 2007 Martin Stransky 0.9.91.4-6
- added new options to the configuration utility
- modified along new plug-ins concept
* Thu Jun 19 2007 Martin Stransky 0.9.91.4-5
- updated nspluginsetup script
- added support for x86_64 plug-ins
* Thu Jun 14 2007 Martin Stransky 0.9.91.4-4
- added ppc arch
- silenced installation scripts
- moved configuration to /etc/sysconfig
* Thu Jun 12 2007 Martin Stransky 0.9.91.4-3
- updated nspluginsetup script and package install/uninstall scripts
- added cross-compilation support
- removed binaries stripping
* Fri Jun 8 2007 Martin Stransky 0.9.91.4-2
- added BuildRequires - pkgconfig, gtk2-devel, glib, libXt-devel
* Fri Jun 8 2007 Martin Stransky 0.9.91.4-1
- initial build