#
# Conditional build:
%bcond_without threads # thread-safe library (requires nspr)
-%bcond_with java # libjsj and lshell
-#
-%ifarch i386 i486 ppc ppc64
-%undefine with_java
-%endif
+%bcond_without java # libjsj and lshell
#
%include /usr/lib/rpm/macros.perl
Summary: JavaScript Reference Implementation
Summary(pl.UTF-8): Wzorcowa implementacja JavaScriptu
Name: js
-Version: 1.60
-Release: 4
-Epoch: 1
-License: GPL or Netscape Public License 1.1
-Group: Libraries
+Version: 1.7.0
+Release: 10
+Epoch: 2
+License: MPL 1.1 or GPL v2+ or LGPL v2.1+
+Group: Development/Languages
Source0: http://ftp.mozilla.org/pub/mozilla.org/js/%{name}-%{version}.tar.gz
-# Source0-md5: bd8f021e43a8fbbec55ac2cd3d483243
+# Source0-md5: 5571134c3863686b623ebe4e6b1f6fe6
Patch0: %{name}-makefile.patch
+Patch1: %{name}-java.patch
+Patch2: %{name}-build.patch
URL: http://www.mozilla.org/js/
%{?with_java:BuildRequires: jdk}
%{?with_java:BuildRequires: jpackage-utils}
BuildRequires: readline-devel
BuildRequires: rpm-perlprov
BuildRequires: rpmbuild(macros) >= 1.294
+Requires: %{name}-libs = %{epoch}:%{version}-%{release}
+# dead, removed upstream
+Obsoletes: perl-JS
Conflicts: njs
%{?with_threads:Provides: js(threads)}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
która może być używana interaktywnie lub z plikami .js do uruchamiania
skryptów.
+%package libs
+Summary: JavaScript Reference Implementation library
+Summary(pl.UTF-8): Biblioteka wzorcowej implementacja JavaScriptu
+Group: Libraries
+Conflicts: js < 1.7.0-8
+
+%description libs
+JavaScript Reference Implementation (codename SpiderMonkey) library.
+
+%description libs -l pl.UTF-8
+Biblioteka wzorcowej implementacja JavaScriptu (SpiderMonkey).
+
%package devel
Summary: Header files for JavaScript reference library
Summary(pl.UTF-8): Pliki nagłówkowe do biblioteki JavaScript
Group: Development/Libraries
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name}-libs = %{epoch}:%{version}-%{release}
Conflicts: njs-devel
%{?with_threads:Provides: js-devel(threads)}
%description java-static -l pl.UTF-8
Biblioteka statyczna implementacji JavaScript LiveConnect 3.
-%package -n perl-JS
-Summary: JS Perl module - interface to JavaScript
-Summary(pl.UTF-8): Moduł Perla JS - interfejs do JavaScriptu
-Group: Development/Languages/Perl
-Requires: %{name} = %{epoch}:%{version}-%{release}
-
-%description -n perl-JS
-JS Perl module allows calling JavaScript from Perl.
-
-%description -n perl-JS -l pl.UTF-8
-Moduł Perla JS pozwalający na wywoływanie JavaScriptu z Perla.
-
%prep
%setup -q -n %{name}
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
-echo 'SONAME=libjs.so.0' >> src/Makefile.ref
-echo 'SONAME=libjsj.so.0' >> src/liveconnect/Makefile.ref
+echo 'SONAME=libjs.so.1' >> src/Makefile.ref
+echo 'SONAME=libjsj.so.1' >> src/liveconnect/Makefile.ref
+
+%ifarch %{x8664}
+sed -i -e 's#i386#amd64#g' src/liveconnect/Makefile.ref src/liveconnect/config/*.mk
+sed -i -e 's#lib/amd64/client#lib/amd64/server#g' src/liveconnect/Makefile.ref src/liveconnect/config/*.mk
+%endif
%build
%{__make} -j1 -C src -f Makefile.ref \
%{!?debug:BUILD_OPT=1} \
- OPTIMIZER="%{rpmcflags} -DHAVE_VA_COPY -DVA_COPY=va_copy" \
+ OPTIMIZER="%{rpmcflags} -DHAVE_VA_COPY -DVA_COPY=va_copy -DJS_C_STRINGS_ARE_UTF8=1" \
JS_READLINE=1 \
CC="%{__cc}" \
LDFLAGS="%{rpmldflags}" \
%{?with_threads:JS_THREADSAFE=1} \
%{?with_java:JS_LIVECONNECT=1 JDK=%{java_home}}
-# js segfaults when jsperl is compiled in
-# JS_PERLCONNECT=1
-
-cd src/perlconnect
-%{!?debug:BUILD_OPT=1} \
-%{__perl} Makefile.PL \
- INSTALLDIRS=vendor
-
-%{__make} \
- OPTIMIZE="%{rpmcflags}"
-
# no UNIX makefiles
# %{__make} -C jsd
cd src
install Linux*/{js,jscpucfg} $RPM_BUILD_ROOT%{_bindir}
install Linux*/libjs.a $RPM_BUILD_ROOT%{_libdir}
-install Linux*/libjs.so $RPM_BUILD_ROOT%{_libdir}/libjs.so.0.1.0
-ln -sf libjs.so.0.1.0 $RPM_BUILD_ROOT%{_libdir}/libjs.so
-install Linux*/jsautocfg.h $RPM_BUILD_ROOT%{_includedir}/js
+install Linux*/libjs.so $RPM_BUILD_ROOT%{_libdir}/libjs.so.1.0.0
+ln -sf libjs.so.1.0.0 $RPM_BUILD_ROOT%{_libdir}/libjs.so.1
+ln -sf libjs.so.1.0.0 $RPM_BUILD_ROOT%{_libdir}/libjs.so
+install Linux*/{jsautocfg.h,jsautokw.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 \
+ jsdhash.h jsemit.h jsfun.h jsgc.h jshash.h jsinterp.h jsiter.h \
+ jslock.h jslong.h jsmath.h jsnum.h jsobj.h jsopcode.tbl jsopcode.h \
+ jsosdep.h jsotypes.h jsparse.h jsprf.h jsproto.tbl jsprvtd.h jspubtd.h \
+ jsregexp.h jsscan.h jsscope.h jsscript.h jsstddef.h jsstr.h jstypes.h \
+ jsutil.h jsxdrapi.h jsxml.h \
$RPM_BUILD_ROOT%{_includedir}/js
%if %{with java}
install liveconnect/Linux*/libjsj.a $RPM_BUILD_ROOT%{_libdir}
-install liveconnect/Linux*/libjsj.so $RPM_BUILD_ROOT%{_libdir}/libjsj.so.0.1.0
-ln -sf libjsj.so.0.1.0 $RPM_BUILD_ROOT%{_libdir}/libjsj.so
+install liveconnect/Linux*/libjsj.so $RPM_BUILD_ROOT%{_libdir}/libjsj.so.1.0.0
+ln -sf libjsj.so.1.0.0 $RPM_BUILD_ROOT%{_libdir}/libjsj.so.1
+ln -sf libjsj.so.1.0.0 $RPM_BUILD_ROOT%{_libdir}/libjsj.so
install liveconnect/Linux*/lcshell $RPM_BUILD_ROOT%{_bindir}
install liveconnect/classes/Linux*/*.jar $RPM_BUILD_ROOT%{classdir}
install liveconnect/{jsjava.h,nsI*.h,_jni/*.h} $RPM_BUILD_ROOT%{_includedir}/js
%endif
-%{__make} -C perlconnect pure_install \
- DESTDIR=$RPM_BUILD_ROOT
-
-cp -f perlconnect/README.html README-perlconnect.html
-
-/sbin/ldconfig -n -N $RPM_BUILD_ROOT%{_libdir}
-
%clean
rm -rf $RPM_BUILD_ROOT
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%post libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
%post java -p /sbin/ldconfig
%postun java -p /sbin/ldconfig
%files
%defattr(644,root,root,755)
-%doc src/README*.html
-%attr(755,root,root) %{_bindir}/js*
+%doc src/README.html
+%attr(755,root,root) %{_bindir}/js
+
+%files libs
+%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libjs.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libjs.so.0
+%attr(755,root,root) %ghost %{_libdir}/libjs.so.1
%files devel
%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/jscpucfg
%attr(755,root,root) %{_libdir}/libjs.so
%dir %{_includedir}/js
%{_includedir}/js/js.msg
%{_includedir}/js/jsopcode.tbl
+%{_includedir}/js/jsproto.tbl
%{_includedir}/js/js[!j]*.h
%files static
%doc src/liveconnect/README.html
%attr(755,root,root) %{_bindir}/lcshell
%attr(755,root,root) %{_libdir}/libjsj.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libjsj.so.0
-%{classdir}/*.jar
+%attr(755,root,root) %ghost %{_libdir}/libjsj.so.1
+%{classdir}/js*.jar
%files java-devel
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%{_libdir}/libjsj.a
%endif
-
-%files -n perl-JS
-%defattr(644,root,root,755)
-%{perl_vendorarch}/JS.pm
-%{perl_vendorarch}/jsperlbuild.pl
-%dir %{perl_vendorarch}/auto/JS
-%{perl_vendorarch}/auto/JS/JS.bs
-%attr(755,root,root) %{perl_vendorarch}/auto/JS/JS.so
-# unusable now (helper module for PerlConnect in libjs, which is not built)
-#%%{perl_vendorarch}/PerlConnect.pm