3 %bcond_without threads # thread-safe library (requires nspr)
4 %bcond_with java # libjsj and lshell
6 %ifarch i386 i486 ppc ppc64
10 %include /usr/lib/rpm/macros.perl
11 Summary: JavaScript Reference Implementation
12 Summary(pl.UTF-8): Wzorcowa implementacja JavaScriptu
17 License: GPL or Netscape Public License 1.1
19 Source0: http://ftp.mozilla.org/pub/mozilla.org/js/%{name}-%{version}.tar.gz
20 # Source0-md5: bd8f021e43a8fbbec55ac2cd3d483243
21 Patch0: %{name}-makefile.patch
22 URL: http://www.mozilla.org/js/
23 %{?with_java:BuildRequires: jdk}
24 %{?with_java:BuildRequires: jpackage-utils}
25 %{?with_threads:BuildRequires: nspr-devel}
26 BuildRequires: perl-devel
27 BuildRequires: readline-devel
28 BuildRequires: rpm-perlprov
29 BuildRequires: rpmbuild(macros) >= 1.294
31 %{?with_threads:Provides: js(threads)}
32 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
34 %define classdir %{_datadir}/java
37 JavaScript Reference Implementation (codename SpiderMonkey). The
38 package contains JavaScript runtime (compiler, interpreter,
39 decompiler, garbage collector, atom manager, standard classes) and
40 small "shell" program that can be used interactively and with .js
43 %description -l pl.UTF-8
44 Wzorcowa implementacja JavaScriptu (o nazwie kodowej SpiderMonkey).
45 Pakiet zawiera środowisko uruchomieniowe (kompilator, interpreter,
46 dekompilator, odśmiecacz, standardowe klasy) i niewielką powłokę,
47 która może być używana interaktywnie lub z plikami .js do uruchamiania
51 Summary: Header files for JavaScript reference library
52 Summary(pl.UTF-8): Pliki nagłówkowe do biblioteki JavaScript
53 Group: Development/Libraries
54 Requires: %{name} = %{epoch}:%{version}-%{release}
56 %{?with_threads:Provides: js-devel(threads)}
59 Header files for JavaScript reference library.
61 %description devel -l pl.UTF-8
62 Pliki nagłówkowe do biblioteki JavaScript.
65 Summary: Static JavaScript reference library
66 Summary(pl.UTF-8): Statyczna biblioteka JavaScript
67 Group: Development/Libraries
68 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
70 %{?with_threads:Provides: js-static(threads)}
73 Static version of JavaScript reference library.
75 %description static -l pl.UTF-8
76 Statyczna wersja biblioteki JavaScript.
79 Summary: JavaScript LiveConnect Version 3 implementation
80 Summary(pl.UTF-8): Implementacja JavaScript LiveConnect w wersji 3
82 Requires: %{name} = %{epoch}:%{version}-%{release}
84 Conflicts: mozilla-embedded
87 LiveConnect is a library that permits JavaScript and Java virtual
88 machines to interoperate. Specifically, it enables JavaScript to
89 access Java fields, invoke Java methods and enables Java to access
90 JavaScript object properties and evaluate arbitrary JavaScript.
91 LiveConnect was originally an integrated feature of both the Netscape
92 Navigator browser and Netscape's server-side JavaScript. Now, it is a
93 standalone library that can be embedded within other projects, such as
96 %description java -l pl.UTF-8
97 LiveConnect to biblioteka pozwalająca na współpracę maszyn wirtualnych
98 JavaScriptu i Javy. W szczególności pozwala z poziomu JavaScriptu na
99 dostęp do pól Javy, wywoływanie metod Javy oraz z poziomu Javy na
100 dostęp do składowych obiektów JavaScriptu i wykonywanie dowolnego kodu
101 w JavaScripcie. LiveConnect oryginalnie był zintegrowaną częścią
102 przeglądarki Netscape Navigator oraz Netscape JavaScript działającego
103 po stronie serwera. Teraz jest to samodzielna biblioteka, którą można
104 osadzać w innych projektach, takich jak przeglądarka Mozilla.
107 Summary: JavaScript LiveConnect 3 implementation header files
108 Summary(pl.UTF-8): Pliki nagłówkowe implementacji JavaScript LiveConnect 3
109 Group: Development/Libraries
110 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
111 Requires: %{name}-java = %{epoch}:%{version}-%{release}
113 %description java-devel
114 JavaScript LiveConnect 3 implementation header files.
116 %description java-devel -l pl.UTF-8
117 Pliki nagłówkowe implementacji JavaScript LiveConnect 3.
120 Summary: JavaScript Live Connect 3 implementation static library
121 Summary(pl.UTF-8): Biblioteka statyczna implementacji JavaScript LiveConnect 3
122 Group: Development/Libraries
123 Requires: %{name}-java-devel = %{epoch}:%{version}-%{release}
125 %description java-static
126 JavaScript Live Connect 3 implementation static library.
128 %description java-static -l pl.UTF-8
129 Biblioteka statyczna implementacji JavaScript LiveConnect 3.
132 Summary: JS Perl module - interface to JavaScript
133 Summary(pl.UTF-8): Moduł Perla JS - interfejs do JavaScriptu
134 Group: Development/Languages/Perl
135 Requires: %{name} = %{epoch}:%{version}-%{release}
137 %description -n perl-JS
138 JS Perl module allows calling JavaScript from Perl.
140 %description -n perl-JS -l pl.UTF-8
141 Moduł Perla JS pozwalający na wywoływanie JavaScriptu z Perla.
147 echo 'SONAME=libjs.so.0' >> src/Makefile.ref
148 echo 'SONAME=libjsj.so.0' >> src/liveconnect/Makefile.ref
151 %{__make} -j1 -C src -f Makefile.ref \
152 %{!?debug:BUILD_OPT=1} \
153 OPTIMIZER="%{rpmcflags} -DHAVE_VA_COPY -DVA_COPY=va_copy" \
156 LDFLAGS="%{rpmldflags}" \
157 MKSHLIB="%{__cc} -shared -Wl,-soname=\$(SONAME)" \
158 %{?with_threads:JS_THREADSAFE=1} \
159 %{?with_java:JS_LIVECONNECT=1 JDK=%{java_home}}
161 # js segfaults when jsperl is compiled in
165 %{!?debug:BUILD_OPT=1} \
166 %{__perl} Makefile.PL \
170 OPTIMIZE="%{rpmcflags}"
176 rm -rf $RPM_BUILD_ROOT
177 install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_includedir}/js,%{classdir}}
180 install Linux*/{js,jscpucfg} $RPM_BUILD_ROOT%{_bindir}
181 install Linux*/libjs.a $RPM_BUILD_ROOT%{_libdir}
182 install Linux*/libjs.so $RPM_BUILD_ROOT%{_libdir}/libjs.so.0.1.0
183 ln -sf libjs.so.0.1.0 $RPM_BUILD_ROOT%{_libdir}/libjs.so
184 install Linux*/jsautocfg.h $RPM_BUILD_ROOT%{_includedir}/js
185 install js.msg jsapi.h jsarray.h jsarena.h jsatom.h jsbit.h jsbool.h \
186 jsclist.h jscntxt.h jscompat.h jsconfig.h jsdate.h jsdbgapi.h \
187 jsdhash.h jsemit.h jsfun.h jsgc.h jshash.h jsinterp.h jslock.h \
188 jslong.h jsmath.h jsnum.h jsobj.h jsopcode.tbl jsopcode.h jsosdep.h \
189 jsotypes.h jsparse.h jsprf.h jsprvtd.h jspubtd.h jsregexp.h jsscan.h \
190 jsscope.h jsscript.h jsstr.h jstypes.h jsutil.h jsxdrapi.h jsstddef.h \
191 $RPM_BUILD_ROOT%{_includedir}/js
194 install liveconnect/Linux*/libjsj.a $RPM_BUILD_ROOT%{_libdir}
195 install liveconnect/Linux*/libjsj.so $RPM_BUILD_ROOT%{_libdir}/libjsj.so.0.1.0
196 ln -sf libjsj.so.0.1.0 $RPM_BUILD_ROOT%{_libdir}/libjsj.so
197 install liveconnect/Linux*/lcshell $RPM_BUILD_ROOT%{_bindir}
198 install liveconnect/classes/Linux*/*.jar $RPM_BUILD_ROOT%{classdir}
199 install liveconnect/{jsjava.h,nsI*.h,_jni/*.h} $RPM_BUILD_ROOT%{_includedir}/js
202 %{__make} -C perlconnect pure_install \
203 DESTDIR=$RPM_BUILD_ROOT
205 cp -f perlconnect/README.html README-perlconnect.html
207 /sbin/ldconfig -n -N $RPM_BUILD_ROOT%{_libdir}
210 rm -rf $RPM_BUILD_ROOT
212 %post -p /sbin/ldconfig
213 %postun -p /sbin/ldconfig
215 %post java -p /sbin/ldconfig
216 %postun java -p /sbin/ldconfig
219 %defattr(644,root,root,755)
220 %doc src/README*.html
221 %attr(755,root,root) %{_bindir}/js*
222 %attr(755,root,root) %{_libdir}/libjs.so.*.*.*
223 %attr(755,root,root) %ghost %{_libdir}/libjs.so.0
226 %defattr(644,root,root,755)
227 %attr(755,root,root) %{_libdir}/libjs.so
228 %dir %{_includedir}/js
229 %{_includedir}/js/js.msg
230 %{_includedir}/js/jsopcode.tbl
231 %{_includedir}/js/js[!j]*.h
234 %defattr(644,root,root,755)
239 %defattr(644,root,root,755)
240 %doc src/liveconnect/README.html
241 %attr(755,root,root) %{_bindir}/lcshell
242 %attr(755,root,root) %{_libdir}/libjsj.so.*.*.*
243 %attr(755,root,root) %ghost %{_libdir}/libjsj.so.0
247 %defattr(644,root,root,755)
248 %attr(755,root,root) %{_libdir}/libjsj.so
249 %{_includedir}/js/jsjava.h
250 %{_includedir}/js/n*.h
253 %defattr(644,root,root,755)
258 %defattr(644,root,root,755)
259 %{perl_vendorarch}/JS.pm
260 %{perl_vendorarch}/jsperlbuild.pl
261 %dir %{perl_vendorarch}/auto/JS
262 %{perl_vendorarch}/auto/JS/JS.bs
263 %attr(755,root,root) %{perl_vendorarch}/auto/JS/JS.so
264 # unusable now (helper module for PerlConnect in libjs, which is not built)
265 #%%{perl_vendorarch}/PerlConnect.pm