Hello community, here is the log from the commit of package nspluginwrapper checked in at Wed Apr 18 00:37:36 CEST 2007. -------- --- nspluginwrapper/nspluginwrapper.changes 2007-04-03 19:42:02.000000000 +0200 +++ /mounts/work_src_done/STABLE/nspluginwrapper/nspluginwrapper.changes 2007-04-17 18:35:36.000000000 +0200 @@ -1,0 +2,8 @@ +Tue Apr 17 18:05:18 CEST 2007 - sbrabec@suse.cz + +- Updated to version 0.9.91.4: + * Don’t try to wrap native plugins + * Fix build on Linux systems with SSP enabled by default +- Removed self-requires. + +------------------------------------------------------------------- Old: ---- nspluginwrapper-0.9.91.3.tar.bz2 nspluginwrapper-null-last-argument.patch New: ---- nspluginwrapper-0.9.91.4.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nspluginwrapper.spec ++++++ --- /var/tmp/diff_new_pack.b23929/_old 2007-04-18 00:37:05.000000000 +0200 +++ /var/tmp/diff_new_pack.b23929/_new 2007-04-18 00:37:05.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package nspluginwrapper (Version 0.9.91.3) +# spec file for package nspluginwrapper (Version 0.9.91.4) # # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -11,14 +11,13 @@ # norootforbuild Name: nspluginwrapper -Version: 0.9.91.3 -Release: 4 +Version: 0.9.91.4 +Release: 1 Group: Productivity/Networking/Web/Utilities Summary: Compatibility Layer for Netscape 4 Plugins License: GNU General Public License (GPL) URL: http://gwenole.beauchesne.info/projects/nspluginwrapper/ Source: %{name}-%{version}.tar.bz2 -Patch: nspluginwrapper-null-last-argument.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: gtk2-devel # We need libstdc++41, libstdc++ does not yet contain libsupc++ @@ -27,7 +26,6 @@ BuildRequires: gcc41-32bit glibc-devel-32bit libstdc++41-32bit libstdc++41-devel-32bit %endif Provides: %{name}-%{_arch} = %{version}-%{release} -Requires: %{name}-%{_arch} = %{version} %description nspluginwrapper makes it possible to use Netscape 4 compatible plugins @@ -47,7 +45,6 @@ %prep %setup -q -%patch %build # @@ -111,6 +108,11 @@ %{_prefix}/lib/%{name} %changelog +* Tue Apr 17 2007 - sbrabec@suse.cz +- Updated to version 0.9.91.4: + * Don’t try to wrap native plugins + * Fix build on Linux systems with SSP enabled by default +- Removed self-requires. * Tue Apr 03 2007 - lrupp@suse.de - fix typo => _arch instead of target_arch * Mon Mar 26 2007 - sbrabec@suse.cz ++++++ nspluginwrapper-0.9.91.3.tar.bz2 -> nspluginwrapper-0.9.91.4.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/nspluginwrapper-0.9.91.3/ChangeLog new/nspluginwrapper-0.9.91.4/ChangeLog --- old/nspluginwrapper-0.9.91.3/ChangeLog 2007-03-04 17:07:18.000000000 +0100 +++ new/nspluginwrapper-0.9.91.4/ChangeLog 2007-04-03 20:00:08.000000000 +0200 @@ -1,5 +1,91 @@ +2007-04-03 17:59 Gwenole Beauchesne <gb.public@free.fr> + + * lsb-build/headers/stddef.h: Fix NULL definition for C (openSUSE + patch). + +2007-04-03 05:36 Gwenole Beauchesne <gb.public@free.fr> + + * ChangeLog: Generated by svn2cl. + +2007-04-03 05:35 Gwenole Beauchesne <gb.public@free.fr> + + * NEWS: 0.9.91.4. + +2007-04-03 05:34 Gwenole Beauchesne <gb.public@free.fr> + + * tests/test-plugins.html: Add Citrix ICA Client plugin demo page. + Need to find a better one. + +2007-04-03 05:32 Gwenole Beauchesne <gb.public@free.fr> + + * Makefile: Move generated RPMs in archivedir (files/ directory). + +2007-04-03 05:20 Gwenole Beauchesne <gb.public@free.fr> + + * Makefile: Handle make distrpm for public RPMs redistribution + (--with-generic build). + +2007-04-03 05:05 Gwenole Beauchesne <gb.public@free.fr> + + * README, nspluginwrapper.spec: Document --generic-build. + +2007-04-02 22:30 Gwenole Beauchesne <gb.public@free.fr> + + * nspluginwrapper.spec: Updates: typos & mention use of anonymous + sockets by default. + +2007-04-02 21:42 Gwenole Beauchesne <gb.public@free.fr> + + * NEWS, configure, lsb-build/stub_libs/libc_main.c, + nspluginwrapper.spec: Fix build on Linux systems with SSP + enabled by default (e.g. Ubuntu). + +2007-04-02 21:05 Gwenole Beauchesne <gb.public@free.fr> + + * configure: Document missing options. + +2007-04-02 20:54 Gwenole Beauchesne <gb.public@free.fr> + + * Makefile, NEWS, configure, src/npw-config.c: DragonFlyBSD + support (Steve O'Hara-Smith). + +2007-04-02 20:40 Gwenole Beauchesne <gb.public@free.fr> + + * nspluginwrapper.spec: Prepare for 0.9.91.4. + +2007-04-02 20:28 Gwenole Beauchesne <gb.public@free.fr> + + * configure: Handle --with-x11-prefix=* to feed in an X11 base + directory. + +2007-04-02 20:17 Gwenole Beauchesne <gb.public@free.fr> + + * README: Citrix ICA Client also works (Denny Reeh). + +2007-04-02 20:07 Gwenole Beauchesne <gb.public@free.fr> + + * configure, src/rpc.c: Use anonymous sockets when building for + native Linux only. If building a + viewer to be run on a non-Linux system, configure with + --generic-build. + +2007-04-02 20:02 Gwenole Beauchesne <gb.public@free.fr> + + * NEWS, src/npw-config.c, src/npw-viewer.sh: Don't try to wrap + native plugins. + +2007-04-02 19:50 Gwenole Beauchesne <gb.public@free.fr> + + * NEWS, configure: Fix build on NetBSD, including v4-beta (David + Brownlee). + +2007-03-13 06:56 Gwenole Beauchesne <gb.public@free.fr> + + * src/npw-wrapper.c: Missing headers (aka NetBSD compile fix). + 2007-03-04 16:07 Gwenole Beauchesne <gb.public@free.fr> + * ChangeLog: Generated by svn2cl. * NEWS, nspluginwrapper.spec: 0.9.91.3 2007-03-04 16:04 Gwenole Beauchesne <gb.public@free.fr> diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/nspluginwrapper-0.9.91.3/configure new/nspluginwrapper-0.9.91.4/configure --- old/nspluginwrapper-0.9.91.3/configure 2007-03-04 16:01:22.000000000 +0100 +++ new/nspluginwrapper-0.9.91.4/configure 2007-04-02 23:42:24.000000000 +0200 @@ -23,8 +23,10 @@ prefix="/usr" lib32="" lib64="" +x_base_dirs="" biarch="guess" build_viewer="guess" +linux_only="guess" cc="gcc -std=c99" cxx="g++" host_os=`uname -s | tr '[A-Z]' '[a-z]'` @@ -84,6 +86,9 @@ --target-cpu=*) target_cpu=`echo $opt | cut -d '=' -f 2 | sed -e 's/^i.86$/i386/'` ;; +--generic-build) + linux_only="no" + ;; --with-biarch) biarch="yes" ;; @@ -102,6 +107,9 @@ --with-lib64=*) lib64=`echo $opt | cut -d '=' -f 2` ;; +--with-x11-prefix=*) + x_base_dirs=`echo $opt | cut -d '=' -f 2` + ;; --with-cc=*) cc=`echo $opt | cut -d '=' -f 2` ;; @@ -111,6 +119,15 @@ esac done +# check for linux only build +if test "$linux_only" = "guess"; then + if test "$host_os" = "linux" -a "$target_os" = "linux"; then + linux_only="yes" + else + linux_only="no" + fi +fi + # check for biarch build if test "$biarch" = "guess"; then case $host_cpu:$target_cpu in @@ -200,6 +217,32 @@ fi rm -f $TMPC $TMPE +# check for egrep program +if echo a | (grep -E '(a|b)') >/dev/null 2>&1; then + EGREP='grep -E' +else + EGREP='egrep' +fi + +# check for __stack_chk_fail() in target GNU C library +if test "$biarch" = "yes"; then + glibc_header_dir="/usr/include" + libc_provides_ssp=no + if test -f $glibc_header_dir/features.h \ + && $EGREP '^[ ]*#[ ]*define[ ]+__GNU_LIBRARY__[ ]+([1-9][0-9]|[6-9])' \ + $glibc_header_dir/features.h > /dev/null; then + if $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC__[ ]+([1-9][0-9]|[3-9])' \ + $glibc_header_dir/features.h > /dev/null; then + libc_provides_ssp=yes + elif $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC__[ ]+2' \ + $glibc_header_dir/features.h > /dev/null \ + && $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC_MINOR__[ ]+([1-9][0-9]|[4-9])' \ + $glibc_header_dir/features.h > /dev/null; then + libc_provides_ssp=yes + fi + fi +fi + # check for compiler flag check_cc_option() { echo "int i;" > $TMPC @@ -279,10 +322,14 @@ fi # check for X11 base dir -x_base_dirs=' -/usr -/usr/X11R6 -/usr/local/X11R6' +if test -z "$x_base_dirs"; then + x_base_dirs=" + /usr + /usr/X11R6 + /usr/local/X11R6 + $prefix + " +fi for dir in $x_base_dirs; do x_include_dir="$dir/include" if test -f $x_include_dir/X11/Intrinsic.h; then @@ -410,9 +457,11 @@ echo "" echo "Advanced options (experts only):" echo " --source-path=PATH path of source code [$source_path]" +echo " --generic-build don't use system-specific additions" +echo " --with-biarch build both 32-bit and 64-bit components at once" echo " --with-lib32=NAME use NAME as the 32-bit library dir name [$lib32]" echo " --with-lib64=NAME use NAME as the 64-bit library dir name [$lib64]" -echo " --with-biarch build both 32-bit and 64-bit components at once" +echo " --with-x11-prefix=PREFIX use PREFIX as the X11 base dir [autodetect]" echo " --with-cc=CC use C compiler CC [$cc]" echo " --with-cxx=CXX use C++ compiler CXX [$cxx]" echo "" @@ -424,6 +473,7 @@ echo "nspluginwrapper root dir $pkglibdir" echo "Bi-arch build $biarch" echo "Build viewer $build_viewer" +echo "Build for Linux only $linux_only" echo "32-bit library dir name $lib32" echo "64-bit library dir name $lib64" echo "Source path $source_path" @@ -458,6 +508,10 @@ echo "OS=linux" >> $config_mak echo "#define HOST_LINUX 1" >> $config_h echo "#define HOST_OS "linux"" >> $config_h +elif test "$host_os" = "dragonfly"; then + echo "OS=dragonfly" >> $config_mak + echo "#define HOST_DRAGONFLY 1" >> $config_h + echo "#define HOST_OS "dragonfly"" >> $config_h elif test "$host_os" = "freebsd"; then echo "OS=freebsd" >> $config_mak echo "#define HOST_FREEBSD 1" >> $config_h @@ -558,6 +612,11 @@ else echo "#undef HAVE_INITFINI_ARRAY" >> $config_h fi +if test "$libc_provides_ssp" = "yes"; then + echo "#define TARGET_LIBC_PROVIDES_SSP 1" >> $config_h +else + echo "#undef TARGET_LIBC_PROVIDES_SSP" >> $config_h +fi config_mak="config.mak" echo "# Automatically generated by configure - do not modify" > $config_mak @@ -567,6 +626,10 @@ echo "/* Automatically generated by configure - do not modify */" > $config_h echo "#include "config-host.h"" >> $config_h +if test "$linux_only" = "yes"; then + echo "#define BUILD_LINUX_ONLY 1" >> $config_h +fi + if test "$target_os" = "linux"; then echo "TARGET_OS=linux" >> $config_mak echo "#define TARGET_OS "linux"" >> $config_h diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/nspluginwrapper-0.9.91.3/lsb-build/headers/stddef.h new/nspluginwrapper-0.9.91.4/lsb-build/headers/stddef.h --- old/nspluginwrapper-0.9.91.3/lsb-build/headers/stddef.h 2006-11-19 18:27:03.000000000 +0100 +++ new/nspluginwrapper-0.9.91.4/lsb-build/headers/stddef.h 2007-04-03 19:58:28.000000000 +0200 @@ -8,10 +8,11 @@ #define offsetof(TYPE,MEMBER) ((size_t)&((TYPE*)0)->MEMBER) -#define NULL (0L) - #if !defined(__cplusplus) + +#define NULL (void*)(0) + typedef int wchar_t; #endif diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/nspluginwrapper-0.9.91.3/lsb-build/stub_libs/libc_main.c new/nspluginwrapper-0.9.91.4/lsb-build/stub_libs/libc_main.c --- old/nspluginwrapper-0.9.91.3/lsb-build/stub_libs/libc_main.c 2006-12-22 12:38:34.000000000 +0100 +++ new/nspluginwrapper-0.9.91.4/lsb-build/stub_libs/libc_main.c 2007-04-02 23:40:33.000000000 +0200 @@ -1,3 +1,10 @@ +#include "config.h" + +#ifdef TARGET_LIBC_PROVIDES_SSP +void __stack_chk_fail() {} ; +void __stack_chk_fail_local() {} ; +#endif + void _Exit() {} ; void _IO_feof() {} ; void _IO_getc() {} ; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/nspluginwrapper-0.9.91.3/Makefile new/nspluginwrapper-0.9.91.4/Makefile --- old/nspluginwrapper-0.9.91.3/Makefile 2007-03-04 16:01:22.000000000 +0100 +++ new/nspluginwrapper-0.9.91.4/Makefile 2007-04-03 07:31:22.000000000 +0200 @@ -41,9 +41,14 @@ libdl_LDFLAGS = -ldl endif +libpthread_LDFLAGS = -lpthread +ifeq ($(OS),dragonfly) +libpthread_LDFLAGS = -pthread +endif + X_CFLAGS = -I$(x11prefix)/include X_LDFLAGS = -L$(x11prefix)/$(lib64) -lX11 -lXt -ifeq ($(OS),netbsd) +ifneq (,$(findstring $(OS),netbsd dragonfly)) X_LDFLAGS += -Wl,--rpath,$(x11prefix)/$(lib64) endif @@ -78,7 +83,7 @@ npwrapper_SOURCES = $(npwrapper_RAWSRCS:%.c=$(SRC_PATH)/src/%.c) npwrapper_OBJECTS = $(npwrapper_RAWSRCS:%.c=npwrapper-%.os) npwrapper_CFLAGS = $(CFLAGS) $(X_CFLAGS) $(MOZILLA_CFLAGS) $(GLIB_CFLAGS) -npwrapper_LDFLAGS = $(X_LDFLAGS) -lpthread +npwrapper_LDFLAGS = $(X_LDFLAGS) $(libpthread_LDFLAGS) npwrapper_LDFLAGS += $(GLIB_LDFLAGS) npviewer_PROGRAM = npviewer.bin @@ -97,7 +102,7 @@ npviewer_LDFLAGS = $(GTK_LDFLAGS) $(X_LDFLAGS) endif npviewer_CFLAGS += $(MOZILLA_CFLAGS) -npviewer_LDFLAGS += $(libdl_LDFLAGS) -lpthread +npviewer_LDFLAGS += $(libdl_LDFLAGS) $(libpthread_LDFLAGS) ifeq ($(TARGET_ARCH),i386) npviewer_MAPFILE = $(SRC_PATH)/src/npw-viewer.map endif @@ -122,11 +127,11 @@ npconfig_SOURCES = $(npconfig_RAWSRCS:%.c=$(SRC_PATH)/src/%.c) npconfig_OBJECTS = $(npconfig_RAWSRCS:%.c=npconfig-%.o) npconfig_LDFLAGS = $(libdl_LDFLAGS) -ifeq ($(OS),netbsd) +ifneq (,$(findstring $(OS),netbsd dragonfly)) # We will try to dlopen() the native plugin library. If that lib is # linked against libpthread, then so must our program too. # XXX use the ELF decoder for native plugins too? -npconfig_LDFLAGS += -lpthread +npconfig_LDFLAGS += $(libpthread_LDFLAGS) endif nploader_PROGRAM = npviewer @@ -261,8 +266,18 @@ $(archivedir)$(SRCARCHIVE).bz2: $(archivedir)$(SRCARCHIVE) bzip2 -9vf $(archivedir)$(SRCARCHIVE) +RPMBUILD = \ + RPMDIR=`mktemp -d` ; \ + mkdir -p $$RPMDIR/{SPECS,SOURCES,BUILD,RPMS,SRPMS} ; \ + rpmbuild --define "_topdir $$RPMDIR" -ta $(2) $(1) && \ + find $$RPMDIR/ -name *.rpm -exec mv -f {} $(archivedir) ; ; \ + rm -rf $$RPMDIR + +distrpm: $(archivedir)$(SRCARCHIVE).bz2 + $(call RPMBUILD,$<,--with generic) + localrpm: $(archivedir)$(SRCARCHIVE).bz2 - rpm -ta $< + $(call RPMBUILD,$<) changelog: ../common/authors.xml svn_prefix=`svn info .|sed -n '/^URL *: .*/svn/(.*)$$/s//\1//p'`; \ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/nspluginwrapper-0.9.91.3/NEWS new/nspluginwrapper-0.9.91.4/NEWS --- old/nspluginwrapper-0.9.91.3/NEWS 2007-03-04 17:05:00.000000000 +0100 +++ new/nspluginwrapper-0.9.91.4/NEWS 2007-04-03 07:21:19.000000000 +0200 @@ -1,6 +1,12 @@ -nspluginwrapper NEWS -- history of user-visible changes. 2007-03-04 +nspluginwrapper NEWS -- history of user-visible changes. 2007-04-03 Copyright (C) 2005-2007 Gwenole Beauchesne +Version 0.9.91.4 (BETA) - 03.Apr.2007 +* Don't try to wrap native plugins +* Fix build on NetBSD (David Brownlee) +* Fix build on DragonFlyBSD (Steve O'Hara-Smith) +* Fix build on Linux systems with SSP enabled by default (e.g. Ubuntu) + Version 0.9.91.3 (BETA) - 04.Mar.2007 * Fix printing with EMBED plugins * Fix build on Debian (Rob Andrews) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/nspluginwrapper-0.9.91.3/nspluginwrapper.spec new/nspluginwrapper-0.9.91.4/nspluginwrapper.spec --- old/nspluginwrapper-0.9.91.3/nspluginwrapper.spec 2007-03-04 17:14:49.000000000 +0100 +++ new/nspluginwrapper-0.9.91.4/nspluginwrapper.spec 2007-04-03 21:53:31.000000000 +0200 @@ -1,7 +1,7 @@ %define name nspluginwrapper -%define version 0.9.91.3 +%define version 0.9.91.4 %define release 1 -#define svndate 20070304 +#define svndate 20070403 # define 32-bit arch of multiarch platforms %define arch_32 %{nil} @@ -28,7 +28,8 @@ %define plugindir %{_libdir}/mozilla/plugins # define to build a biarch package -# XXX really build one package and handle upgrades +# NOTE: biarch builds require a "multilib" capable compiler, which +# should be the default on decent Linux distributions %define build_biarch 0 %if "%{_arch}:%{arch_32}" == "x86_64:i386" %define build_biarch 1 @@ -36,6 +37,14 @@ %{expand: %{?_with_biarch: %%global build_biarch 1}} %{expand: %{?_without_biarch: %%global build_biarch 0}} +# define to build a Linux package suitable for other OS (e.g. NetBSD) +# NOTE: this option is *not* needed on Linux usually. However, if you +# need this package to be used verbatim on *BSD systems, you have to +# define this option for your Linux build +%define build_generic 0 +%{expand: %{?_with_generic: %%global build_generic 1}} +%{expand: %{?_without_generic: %%global build_generic 0}} + Summary: A compatibility layer for Netscape 4 plugins Name: %{name} Version: %{version} @@ -62,6 +71,9 @@ %package %{target_arch} Summary: A viewer for %{target_arch} compiled Netscape 4 plugins Group: Networking/WWW +%if "%{target_arch}" == "i386" +Requires: %{_bindir}/linux32 +%endif %description %{target_arch} nspluginwrapper makes it possible to use Netscape 4 compatible plugins @@ -84,9 +96,12 @@ %else biarch="--without-biarch" %endif +%if %{build_generic} +generic_build="--generic-build" +%endif mkdir objs pushd objs -../configure --prefix=%{_prefix} $biarch +../configure --prefix=%{_prefix} $biarch $generic_build make popd @@ -143,6 +158,12 @@ %endif %changelog +* Mon Apr 2 2007 Gwenole Beauchesne <gb.public@free.fr> 0.9.91.4-1 +- use anonymous sockets by default +- don't try to wrap native plugins +- require linux32 for nspluginwrapper-i386 +- fix build on systems with SSP enabled by default + * Sun Mar 4 2007 Gwenole Beauchesne <gb.public@free.fr> 0.9.91.3-1 - fix printing with EMBED plugins - fix build on Debian systems (Rob Andrews) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/nspluginwrapper-0.9.91.3/README new/nspluginwrapper-0.9.91.4/README --- old/nspluginwrapper-0.9.91.3/README 2006-12-25 00:57:20.000000000 +0100 +++ new/nspluginwrapper-0.9.91.4/README 2007-04-03 06:52:06.000000000 +0200 @@ -2,7 +2,7 @@ nspluginwrapper A cross-platform NPAPI plugin viewer - Copyright (C) 2005-2006 Gwenole Beauchesne + Copyright (C) 2005-2007 Gwenole Beauchesne License @@ -35,6 +35,11 @@ Or, if you prefer from a source package: $ rpm --rebuild nspluginwrapper.src.rpm +NOTE: if you are building the Linux viewer to use on a non-Linux +system (e.g. NetBSD, FreeBSD), you will have to configure the Linux +build with the --generic-build option. That way, named sockets will be +used and work under the Linux emulation on those operating systems. + Requirements and Installation ----------------------------- @@ -79,6 +84,7 @@ - Real Player 10.0.5 - Tcl plugin 3.1 - Squeak VM plugin 3.7 +- Citrix ICA Client 10.0 Broken or partially working: - Real Player 8.0 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/nspluginwrapper-0.9.91.3/src/npw-config.c new/nspluginwrapper-0.9.91.4/src/npw-config.c --- old/nspluginwrapper-0.9.91.3/src/npw-config.c 2007-03-04 16:01:22.000000000 +0100 +++ new/nspluginwrapper-0.9.91.4/src/npw-config.c 2007-04-02 22:42:15.000000000 +0200 @@ -124,6 +124,14 @@ }; dirs = freebsd_dirs; } +#elif defined(__DragonFly__) + { + static const char *dragonfly_dirs[] = { + "/usr/pkg/" LIB "/mozilla/plugins", + "/usr/pkg/" LIB "/firefox/plugins", + }; + dirs = dragonfly_dirs; + } #elif defined(__NetBSD__) { static const char *netbsd_dirs[] = { @@ -206,6 +214,13 @@ "/usr/local/lib/npapi/linux-flashplugin", "/usr/X11R6/Adobe/Acrobat7.0/ENU/Browser/intellinux", #endif +#if defined(__DragonFly__) + "/usr/pkg/lib/netscape/plugins", + "/usr/pkg/lib/firefox/plugins", + "/usr/pkg/lib/RealPlayer/mozilla", + "/usr/pkg/Acrobat5/Browsers/intellinux", + "/usr/pkg/Acrobat7/Browser/intellinux", +#endif #if defined(__NetBSD__) "/usr/pkg/lib/netscape/plugins", "/usr/pkg/lib/firefox/plugins", @@ -500,7 +515,14 @@ return ret; } -static bool is_plugin_viewer_available(const char *filename, NPW_PluginInfo *out_plugin_info) +enum { + EXIT_VIEWER_NOT_FOUND = -2, + EXIT_VIEWER_ERROR = -1, + EXIT_VIEWER_OK = 0, + EXIT_VIEWER_NATIVE = 20 +}; + +static int detect_plugin_viewer(const char *filename, NPW_PluginInfo *out_plugin_info) { static const char *target_arch_table[] = { NULL, @@ -541,7 +563,7 @@ if (target_os == NULL) continue; if (strcmp(target_arch, HOST_ARCH) == 0 && strcmp(target_os, HOST_OS) == 0) - continue; // skip viewers that match host OS/ARCH pairs + return EXIT_VIEWER_NATIVE; // don't wrap plugins for host OS/ARCH char viewer_path[PATH_MAX]; sprintf(viewer_path, "%s/%s/%s", viewer_arch_path, target_os, NPW_VIEWER); if (access(viewer_path, F_OK) != 0) @@ -557,17 +579,24 @@ int status; while (waitpid(pid, &status, 0) != pid) ; - if (WIFEXITED(status) && WEXITSTATUS(status) == 0) { - if (out_plugin_info) { + if (WIFEXITED(status)) { + status = WEXITSTATUS(status); + if (status == EXIT_VIEWER_OK && out_plugin_info) { strcpy(out_plugin_info->target_arch, target_arch); strcpy(out_plugin_info->target_os, target_os); } - return true; + return status; } + return EXIT_VIEWER_ERROR; } } } - return false; + return EXIT_VIEWER_NOT_FOUND; +} + +static bool is_plugin_viewer_available(const char *filename, NPW_PluginInfo *out_plugin_info) +{ + return detect_plugin_viewer(filename, out_plugin_info) == EXIT_VIEWER_OK; } static bool is_plugin(const char *filename, NPW_PluginInfo *out_plugin_info) @@ -997,7 +1026,7 @@ static int process_install(int argc, char *argv[]) { - int i; + int i, ret; if (g_auto) return auto_install_plugins(); @@ -1008,9 +1037,15 @@ for (i = 0; i < argc; i++) { NPW_PluginInfo plugin_info; const char *plugin_path = argv[i]; - if (!is_compatible_plugin(plugin_path, &plugin_info)) + if (!is_plugin(plugin_path, &plugin_info)) error("%s is not a valid NPAPI plugin", plugin_path); - int ret = install_plugin(plugin_path, &plugin_info); + ret = detect_plugin_viewer(plugin_path, &plugin_info); + if (ret != EXIT_VIEWER_OK) { + if (ret == EXIT_VIEWER_NATIVE) + return 0; /* silently ignore exit status */ + error("no appropriate viewer found for %s", plugin_path); + } + ret = install_plugin(plugin_path, &plugin_info); if (ret != 0) return ret; } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/nspluginwrapper-0.9.91.3/src/npw-viewer.sh new/nspluginwrapper-0.9.91.4/src/npw-viewer.sh --- old/nspluginwrapper-0.9.91.3/src/npw-viewer.sh 2007-03-04 17:03:08.000000000 +0100 +++ new/nspluginwrapper-0.9.91.4/src/npw-viewer.sh 2007-04-02 21:52:57.000000000 +0200 @@ -71,6 +71,15 @@ fi fi +# Don't wrap host plugins +case " $@ " in +*" --test "*|*" -t "*) + if test "$TARGET_OS" = "$OS" -a "$TARGET_ARCH" = "$ARCH"; then + exit 20 # EXIT_VIEWER_NATIVE + fi + ;; +esac + # Expand PATH for RealPlayer package on NetBSD (realplay) if test "$OS" = "NetBSD"; then REALPLAYER_HOME="/usr/pkg/lib/RealPlayer" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/nspluginwrapper-0.9.91.3/src/npw-wrapper.c new/nspluginwrapper-0.9.91.4/src/npw-wrapper.c --- old/nspluginwrapper-0.9.91.3/src/npw-wrapper.c 2007-03-04 16:01:22.000000000 +0100 +++ new/nspluginwrapper-0.9.91.4/src/npw-wrapper.c 2007-04-02 21:52:57.000000000 +0200 @@ -26,6 +26,7 @@ #include <limits.h> #include <errno.h> #include <unistd.h> +#include <signal.h> #include <pthread.h> #include <semaphore.h> #include <sys/wait.h> diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/nspluginwrapper-0.9.91.3/src/rpc.c new/nspluginwrapper-0.9.91.4/src/rpc.c --- old/nspluginwrapper-0.9.91.3/src/rpc.c 2007-03-04 16:01:22.000000000 +0100 +++ new/nspluginwrapper-0.9.91.4/src/rpc.c 2007-04-02 22:03:07.000000000 +0200 @@ -58,8 +58,8 @@ // build of the viewer can interoperate with non-Linux wrappers. Linux // distributions can use this code though. // XXX better clean-up dead sockets properly on failure... -#if defined __linux__ -#define USE_ANONYMOUS_SOCKETS 0 +#ifdef BUILD_LINUX_ONLY +#define USE_ANONYMOUS_SOCKETS 1 #endif // Define the maximum amount of time (in seconds) to wait for a message diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/nspluginwrapper-0.9.91.3/tests/test-plugins.html new/nspluginwrapper-0.9.91.4/tests/test-plugins.html --- old/nspluginwrapper-0.9.91.3/tests/test-plugins.html 2006-12-25 00:37:21.000000000 +0100 +++ new/nspluginwrapper-0.9.91.4/tests/test-plugins.html 2007-04-03 00:33:45.000000000 +0200 @@ -27,6 +27,8 @@ <a href="http://www.tcl.tk/software/plugin/applets.html">http://www.tcl.tk/software/plugin/applets.html</a> <li><p><b>Squeak VM plugin tests</b><br> <a href="http://www.squeakland.org/plugin/launch.html">http://www.squeakland.org/plugin/launch.html</a> +<li><p><b>Citrix ICA Client demo</b><br> +<a href="http://www.rentonlinesoftware.com/store/tryademo.asp">http://www.rentonlinesoftware.com/store/tryademo.asp</a> </ul> </body> </html> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org