--- /dev/null
+--- js/src/Makefile.ref.orig Tue Mar 19 05:28:16 2002
++++ js/src/Makefile.ref Sat May 18 15:36:52 2002
+@@ -56,7 +56,7 @@
+
+ ifdef JS_THREADSAFE
+ DEFINES += -DJS_THREADSAFE
+-INCLUDES += -I../../dist/$(OBJDIR)/include
++INCLUDES += -I../../dist/$(OBJDIR)/include -I/usr/include/nspr
+ ifdef USE_MSVC
+ OTHER_LIBS += ../../dist/$(OBJDIR)/lib/libnspr${NSPR_LIBSUFFIX}.lib
+ else
+@@ -291,7 +291,7 @@
+ link.exe -out:"$@" $(EXE_LINK_FLAGS) $^
+ else
+ $(PROGRAM): $(PROG_OBJS) $(LIBRARY) $(FDLIBM_LIBRARY)
+- $(CC) -o $@ $(CFLAGS) $(PROG_OBJS) $(LIBRARY) $(LDFLAGS) $(OTHER_LIBS) \
++ $(CC) -o $@ $(CFLAGS) $(PROG_OBJS) -L$(OBJDIR) -ljs $(LDFLAGS) $(OTHER_LIBS) \
+ $(PROG_LIBS)
+ endif
+
+--- js/src/perlconnect/Makefile.PL.orig Tue Aug 14 15:09:43 2001
++++ js/src/perlconnect/Makefile.PL Sat May 18 16:32:49 2002
+@@ -40,7 +40,7 @@
+ open FOO, ">tempmakefile";
+ print FOO $tmpmk;
+ close FOO;
+- my $objdir = `gmake -f tempmakefile`;
++ my $objdir = `make -f tempmakefile`;
+ unlink "tempmakefile";
+ $inc = "-I.. -I../$objdir";
+ $libpath = "-L../$objdir";
+--- js/src/liveconnect/Makefile.ref.orig Tue Mar 19 05:28:45 2002
++++ js/src/liveconnect/Makefile.ref Sat May 18 18:40:34 2002
+@@ -125,7 +125,7 @@
+
+ ifdef JS_THREADSAFE
+ DEFINES += -DJS_THREADSAFE
+-INCLUDES += -I../../../dist/$(OBJDIR)/include
++INCLUDES += -I../../../dist/$(OBJDIR)/include -I/usr/include/nspr
+ ifdef USE_MSVC
+ OTHER_LIBS += $(DEPTH)/../../dist/$(OBJDIR)/lib/libnspr${NSPR_LIBSUFFIX}.lib
+ else
+@@ -159,5 +159,5 @@
+
+ $(PROGRAM): $(OBJDIR)/$(PROG_FILE).o $(OBJDIR)/jsj_simpleapi.o
+ @$(MAKE_OBJDIR)
+- $(CC) -o $@ $(CFLAGS) $+ $(LIBRARY) ../$(OBJDIR)/libjs.a $(LDFLAGS) $(OTHER_LIBS)
++ $(CC) -o $@ $(CFLAGS) $+ -L$(OBJDIR) -ljsj $(LDFLAGS) $(OTHER_LIBS) $(PROG_LIBS) -Wl,-rpath=$(JDK)/jre/lib/i386 -Wl,-rpath=$(JDK)/jre/lib/i386/native_threads -Wl,-rpath=$(JDK)/jre/lib/i386/classic -Wl,-rpath=$(JDK)/jre/lib/i386/client
+ endif
+--- js/src/liveconnect/config/Linux_All.mk.orig Tue Mar 19 05:28:53 2002
++++ js/src/liveconnect/config/Linux_All.mk Sat May 18 18:51:49 2002
+@@ -45,9 +45,10 @@
+ # INCLUDES += -I$(JDK)/include -I$(JDK)/include/solaris
+ INCLUDES += -I$(JDK)/include/linux -I$(JDK)/include
+
+-OTHER_LIBS += -L$(JDK)/jre/lib/i386/native_threads
+-OTHER_LIBS += -L$(JDK)/jre/lib/i386/classic
+-OTHER_LIBS += -L$(JDK)/jre/lib/i386 -ljava -ljvm -lhpi
++PROG_LIBS += -L$(JDK)/jre/lib/i386/native_threads
++PROG_LIBS += -L$(JDK)/jre/lib/i386/classic
++PROG_LIBS += -L$(JDK)/jre/lib/i386/client
++PROG_LIBS += -L$(JDK)/jre/lib/i386 -ljava -ljvm -lhpi -lverify
+
+ # To run lcshell with the above, built in a Mozilla tree with a local nspr:
+ # LD_LIBRARY_PATH=../../../dist/lib:/share/builds/components/jdk/1.2.2/Linux/jre/lib/i386:/share/builds/components/jdk/1.2.2/Linux/jre/lib/i386/classic:/share/builds/components/jdk/1.2.2/Linux/jre/lib/i386/native_threads CLASSPATH=./classes/Linux_All_DBG.OBJ/js15lc30.jar lcshell
--- /dev/null
+#
+# Conditional build:
+# _with_threads - build thread-safe library (requires nspr)
+# _with_java - with libjsj and lshell
+#
+%include /usr/lib/rpm/macros.perl
+Summary: JavaScript Reference Implementation
+Summary(pl): Wzorcowa implementacja JavaScriptu
+Name: js
+Version: 1.5
+%define rcver rc4a
+Release: 0.%{rcver}
+License: GPL or Netscape Public License 1.1
+Group: Libraries
+Source0: http://ftp.mozilla.org/pub/js/%{name}-%{version}-%{rcver}.tar.gz
+Patch0: %{name}-makefile.patch
+URL: http://www.mozilla.org/js/
+%{?_with_java:BuildRequires: jdk}
+%{?_with_threads:BuildRequires: nspr-devel}
+BuildRequires: readline-devel
+BuildRequires: rpm-perlprov
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+JavaScript Reference Implementation (codename SpiderMonkey). The
+package contains JavaScript runtime (compiler, interpreter,
+decompiler, garbage collector, atom manager, standard classes) and
+small "shell" program that can be used interactively and with .js
+files to run scripts.
+
+%description -l pl
+Wzorcowa implementacja JavaScriptu (o nazwie kodowej SpiderMonkey).
+Pakiet zawiera ¶rodowisko uruchomieniowe (kompilator, interpreter,
+dekompilator, od¶miecacz, standardowe klasy) i niewielk± pow³okê,
+która mo¿e byæ u¿ywana interaktywnie lub z plikami .js do uruchamiania
+skryptów.
+
+%package devel
+Summary: Header files for JavaScript reference library
+Summary(pl): Pliki nag³ówkowe do biblioteki JavaScript
+Group: Development/Libraries
+Requires: %{name} = %{version}
+
+%description devel
+Header files for JavaScript reference library.
+
+%description devel -l pl
+Pliki nag³ówkowe do biblioteki JavaScript.
+
+%package static
+Summary: Static JavaScript reference library
+Summary(pl): Statyczna biblioteka JavaScript
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}
+
+%description static
+Static version of JavaScript reference library.
+
+%description static -l pl
+Statyczna wersja biblioteki JavaScript.
+
+%package -n perl-JS
+Summary: JS perl module - interface to JavaScript
+Summary(pl): Modu³ perla JS - interfejs do JavaScriptu
+Group: Development/Languages/Perl
+Requires: %{name} = %{version}
+
+%description -n perl-JS
+JS perl module allows calling JavaScript from Perl.
+
+%description -n perl-JS -l pl
+Modu³ perla JS pozwalaj±cy na wywo³ywanie JavaScriptu z Perla.
+
+%prep
+%setup -q -n %{name}
+%patch -p1
+
+%build
+%{__make} -C src -f Makefile.ref \
+ %{!?debug:BUILD_OPT=1} \
+ OPTIMIZER="%{rpmcflags}" \
+ JS_READLINE=1 \
+ %{?_with_threads:JS_THREADSAFE=1} \
+ %{?_with_java:JS_LIVECONNECT=1 JDK=/usr/lib/java}
+
+# js segfaults when jsperl is compiled in
+# JS_PERLCONNECT=1
+
+cd src/perlconnect
+%{!?debug:BUILD_OPT=1} perl Makefile.PL
+
+%{__make} \
+ OPTIMIZE="%{rpmcflags}"
+
+# no UNIX makefiles
+# %{__make} -C jsd
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_includedir}/js}
+
+cd src
+install Linux*/{js,jscpucfg} $RPM_BUILD_ROOT%{_bindir}
+install Linux*/libjs.{a,so} $RPM_BUILD_ROOT%{_libdir}
+install Linux*/jsautocfg.h $RPM_BUILD_ROOT%{_includedir}/js
+install js.msg jsapi.h jsarray.h jsarena.h jsatom.h jsbit.h jsbool.h \
+ jsclist.h jscntxt.h jscompat.h jsconfig.h jsdate.h jsdbgapi.h \
+ jsdhash.h jsemit.h jsfun.h jsgc.h jshash.h jsinterp.h jslock.h \
+ jslong.h jsmath.h jsnum.h jsobj.h jsopcode.tbl jsopcode.h jsosdep.h \
+ jsotypes.h jsparse.h jsprf.h jsprvtd.h jspubtd.h jsregexp.h jsscan.h \
+ jsscope.h jsscript.h jsstr.h jstypes.h jsutil.h jsxdrapi.h jsstddef.h \
+ $RPM_BUILD_ROOT%{_includedir}/js
+
+%{?_with_java:install liveconnect/Linux*/libjsj.{a,so} $RPM_BUILD_ROOT%{_libdir}}
+%{?_with_java:install liveconnect/Linux*/lcshell $RPM_BUILD_ROOT%{_bindir}}
+%{?_with_java:install liveconnect/jsjava.h $RPM_BUILD_ROOT%{_includedir}/js}
+%{?_with_java:install liveconnect/nsI*.h $RPM_BUILD_ROOT%{_includedir}/js}
+%{?_with_java:install liveconnect/_jni/*.h $RPM_BUILD_ROOT%{_includedir}/js}
+
+cd perlconnect
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
+
+cd ..
+%{?_with_java:mv -f liveconnect/README.html README-liveconnect.html}
+mv -f perlconnect/README.html README-perlconnect.html
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(644,root,root,755)
+%doc src/README*.html
+%attr(755,root,root) %{_bindir}/*
+%attr(755,root,root) %{_libdir}/lib*.so
+
+%files devel
+%defattr(644,root,root,755)
+%{_includedir}/js
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/lib*.a
+
+%files -n perl-JS
+%defattr(644,root,root,755)
+%{perl_sitearch}/JS.pm
+%{perl_sitearch}/jsperlbuild.pl
+%dir %{perl_sitearch}/auto/JS
+%{perl_sitearch}/auto/JS/JS.bs
+%attr(755,root,root) %{perl_sitearch}/auto/JS/JS.so
+# unusable now (helper module for PerlConnect in libjs, which is not built)
+#%{perl_sitearch}/PerlConnect.pm