]>
Commit | Line | Data |
---|---|---|
19c3fbcd JB |
1 | # |
2 | # Conditional build: | |
3baa2563 | 3 | %bcond_without threads # thread-safe library (requires nspr) |
5254e17d | 4 | %bcond_without java # libjsj and lshell |
da36d3aa | 5 | # |
286739a7 | 6 | %include /usr/lib/rpm/macros.perl |
19c3fbcd | 7 | Summary: JavaScript Reference Implementation |
d603892a | 8 | Summary(pl.UTF-8): Wzorcowa implementacja JavaScriptu |
19c3fbcd | 9 | Name: js |
5254e17d | 10 | Version: 1.7.0 |
0c7a21ff | 11 | Release: 10 |
5254e17d JB |
12 | Epoch: 2 |
13 | License: MPL 1.1 or GPL v2+ or LGPL v2.1+ | |
da36d3aa | 14 | Group: Development/Languages |
e1bd9563 | 15 | Source0: http://ftp.mozilla.org/pub/mozilla.org/js/%{name}-%{version}.tar.gz |
5254e17d | 16 | # Source0-md5: 5571134c3863686b623ebe4e6b1f6fe6 |
19c3fbcd | 17 | Patch0: %{name}-makefile.patch |
5254e17d | 18 | Patch1: %{name}-java.patch |
0c7a21ff | 19 | Patch2: %{name}-build.patch |
19c3fbcd | 20 | URL: http://www.mozilla.org/js/ |
354a2ac8 | 21 | %{?with_java:BuildRequires: jdk} |
6744a6ec | 22 | %{?with_java:BuildRequires: jpackage-utils} |
354a2ac8 | 23 | %{?with_threads:BuildRequires: nspr-devel} |
c2b7e186 | 24 | BuildRequires: perl-devel |
19c3fbcd JB |
25 | BuildRequires: readline-devel |
26 | BuildRequires: rpm-perlprov | |
7ffb0d7b | 27 | BuildRequires: rpmbuild(macros) >= 1.294 |
da36d3aa | 28 | Requires: %{name}-libs = %{epoch}:%{version}-%{release} |
5254e17d JB |
29 | # dead, removed upstream |
30 | Obsoletes: perl-JS | |
9fd95202 | 31 | Conflicts: njs |
08550a4a | 32 | %{?with_threads:Provides: js(threads)} |
19c3fbcd JB |
33 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
34 | ||
2629887b | 35 | %define classdir %{_datadir}/java |
9fd95202 | 36 | |
19c3fbcd JB |
37 | %description |
38 | JavaScript Reference Implementation (codename SpiderMonkey). The | |
39 | package contains JavaScript runtime (compiler, interpreter, | |
40 | decompiler, garbage collector, atom manager, standard classes) and | |
41 | small "shell" program that can be used interactively and with .js | |
42 | files to run scripts. | |
43 | ||
e925599b | 44 | %description -l pl.UTF-8 |
19c3fbcd | 45 | Wzorcowa implementacja JavaScriptu (o nazwie kodowej SpiderMonkey). |
e925599b JR |
46 | Pakiet zawiera środowisko uruchomieniowe (kompilator, interpreter, |
47 | dekompilator, odśmiecacz, standardowe klasy) i niewielką powłokę, | |
48 | która może być używana interaktywnie lub z plikami .js do uruchamiania | |
49 | skryptów. | |
19c3fbcd | 50 | |
da36d3aa JB |
51 | %package libs |
52 | Summary: JavaScript Reference Implementation library | |
53 | Summary(pl.UTF-8): Biblioteka wzorcowej implementacja JavaScriptu | |
54 | Group: Libraries | |
55 | Conflicts: js < 1.7.0-8 | |
56 | ||
57 | %description libs | |
58 | JavaScript Reference Implementation (codename SpiderMonkey) library. | |
59 | ||
60 | %description libs -l pl.UTF-8 | |
61 | Biblioteka wzorcowej implementacja JavaScriptu (SpiderMonkey). | |
62 | ||
19c3fbcd JB |
63 | %package devel |
64 | Summary: Header files for JavaScript reference library | |
d603892a | 65 | Summary(pl.UTF-8): Pliki nagłówkowe do biblioteki JavaScript |
19c3fbcd | 66 | Group: Development/Libraries |
da36d3aa | 67 | Requires: %{name}-libs = %{epoch}:%{version}-%{release} |
9fd95202 | 68 | Conflicts: njs-devel |
08550a4a | 69 | %{?with_threads:Provides: js-devel(threads)} |
19c3fbcd JB |
70 | |
71 | %description devel | |
72 | Header files for JavaScript reference library. | |
73 | ||
e925599b JR |
74 | %description devel -l pl.UTF-8 |
75 | Pliki nagłówkowe do biblioteki JavaScript. | |
19c3fbcd JB |
76 | |
77 | %package static | |
78 | Summary: Static JavaScript reference library | |
d603892a | 79 | Summary(pl.UTF-8): Statyczna biblioteka JavaScript |
19c3fbcd | 80 | Group: Development/Libraries |
5ae6f060 | 81 | Requires: %{name}-devel = %{epoch}:%{version}-%{release} |
9fd95202 | 82 | Conflicts: njs-static |
08550a4a | 83 | %{?with_threads:Provides: js-static(threads)} |
19c3fbcd JB |
84 | |
85 | %description static | |
86 | Static version of JavaScript reference library. | |
87 | ||
e925599b | 88 | %description static -l pl.UTF-8 |
19c3fbcd JB |
89 | Statyczna wersja biblioteki JavaScript. |
90 | ||
9fd95202 JB |
91 | %package java |
92 | Summary: JavaScript LiveConnect Version 3 implementation | |
d603892a | 93 | Summary(pl.UTF-8): Implementacja JavaScript LiveConnect w wersji 3 |
9fd95202 | 94 | Group: Libraries |
5ae6f060 | 95 | Requires: %{name} = %{epoch}:%{version}-%{release} |
9fd95202 JB |
96 | Conflicts: mozilla |
97 | Conflicts: mozilla-embedded | |
98 | ||
99 | %description java | |
100 | LiveConnect is a library that permits JavaScript and Java virtual | |
101 | machines to interoperate. Specifically, it enables JavaScript to | |
102 | access Java fields, invoke Java methods and enables Java to access | |
103 | JavaScript object properties and evaluate arbitrary JavaScript. | |
104 | LiveConnect was originally an integrated feature of both the Netscape | |
105 | Navigator browser and Netscape's server-side JavaScript. Now, it is a | |
106 | standalone library that can be embedded within other projects, such as | |
107 | the Mozilla browser. | |
108 | ||
e925599b JR |
109 | %description java -l pl.UTF-8 |
110 | LiveConnect to biblioteka pozwalająca na współpracę maszyn wirtualnych | |
111 | JavaScriptu i Javy. W szczególności pozwala z poziomu JavaScriptu na | |
112 | dostęp do pól Javy, wywoływanie metod Javy oraz z poziomu Javy na | |
113 | dostęp do składowych obiektów JavaScriptu i wykonywanie dowolnego kodu | |
114 | w JavaScripcie. LiveConnect oryginalnie był zintegrowaną częścią | |
115 | przeglądarki Netscape Navigator oraz Netscape JavaScript działającego | |
116 | po stronie serwera. Teraz jest to samodzielna biblioteka, którą można | |
117 | osadzać w innych projektach, takich jak przeglądarka Mozilla. | |
9fd95202 JB |
118 | |
119 | %package java-devel | |
120 | Summary: JavaScript LiveConnect 3 implementation header files | |
d603892a | 121 | Summary(pl.UTF-8): Pliki nagłówkowe implementacji JavaScript LiveConnect 3 |
9fd95202 | 122 | Group: Development/Libraries |
5ae6f060 | 123 | Requires: %{name}-devel = %{epoch}:%{version}-%{release} |
124 | Requires: %{name}-java = %{epoch}:%{version}-%{release} | |
9fd95202 JB |
125 | |
126 | %description java-devel | |
127 | JavaScript LiveConnect 3 implementation header files. | |
128 | ||
e925599b JR |
129 | %description java-devel -l pl.UTF-8 |
130 | Pliki nagłówkowe implementacji JavaScript LiveConnect 3. | |
9fd95202 JB |
131 | |
132 | %package java-static | |
133 | Summary: JavaScript Live Connect 3 implementation static library | |
d603892a | 134 | Summary(pl.UTF-8): Biblioteka statyczna implementacji JavaScript LiveConnect 3 |
9fd95202 | 135 | Group: Development/Libraries |
5ae6f060 | 136 | Requires: %{name}-java-devel = %{epoch}:%{version}-%{release} |
9fd95202 JB |
137 | |
138 | %description java-static | |
139 | JavaScript Live Connect 3 implementation static library. | |
140 | ||
e925599b | 141 | %description java-static -l pl.UTF-8 |
9fd95202 JB |
142 | Biblioteka statyczna implementacji JavaScript LiveConnect 3. |
143 | ||
19c3fbcd JB |
144 | %prep |
145 | %setup -q -n %{name} | |
380c9ee3 | 146 | %patch0 -p1 |
5254e17d | 147 | %patch1 -p1 |
0c7a21ff | 148 | %patch2 -p1 |
19c3fbcd | 149 | |
5254e17d JB |
150 | echo 'SONAME=libjs.so.1' >> src/Makefile.ref |
151 | echo 'SONAME=libjsj.so.1' >> src/liveconnect/Makefile.ref | |
0f6791fd | 152 | |
556c4129 AM |
153 | %ifarch %{x8664} |
154 | sed -i -e 's#i386#amd64#g' src/liveconnect/Makefile.ref src/liveconnect/config/*.mk | |
155 | sed -i -e 's#lib/amd64/client#lib/amd64/server#g' src/liveconnect/Makefile.ref src/liveconnect/config/*.mk | |
156 | %endif | |
157 | ||
19c3fbcd | 158 | %build |
ff5e3b1d | 159 | %{__make} -j1 -C src -f Makefile.ref \ |
19c3fbcd | 160 | %{!?debug:BUILD_OPT=1} \ |
e003c9e6 | 161 | OPTIMIZER="%{rpmcflags} -DHAVE_VA_COPY -DVA_COPY=va_copy -DJS_C_STRINGS_ARE_UTF8=1" \ |
19c3fbcd | 162 | JS_READLINE=1 \ |
cef40177 | 163 | CC="%{__cc}" \ |
380c9ee3 | 164 | LDFLAGS="%{rpmldflags}" \ |
0f6791fd | 165 | MKSHLIB="%{__cc} -shared -Wl,-soname=\$(SONAME)" \ |
354a2ac8 | 166 | %{?with_threads:JS_THREADSAFE=1} \ |
6744a6ec | 167 | %{?with_java:JS_LIVECONNECT=1 JDK=%{java_home}} |
19c3fbcd | 168 | |
19c3fbcd JB |
169 | # no UNIX makefiles |
170 | # %{__make} -C jsd | |
171 | ||
172 | %install | |
173 | rm -rf $RPM_BUILD_ROOT | |
9fd95202 | 174 | install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_includedir}/js,%{classdir}} |
19c3fbcd JB |
175 | |
176 | cd src | |
177 | install Linux*/{js,jscpucfg} $RPM_BUILD_ROOT%{_bindir} | |
70d3437e | 178 | install Linux*/libjs.a $RPM_BUILD_ROOT%{_libdir} |
5254e17d JB |
179 | install Linux*/libjs.so $RPM_BUILD_ROOT%{_libdir}/libjs.so.1.0.0 |
180 | ln -sf libjs.so.1.0.0 $RPM_BUILD_ROOT%{_libdir}/libjs.so.1 | |
181 | ln -sf libjs.so.1.0.0 $RPM_BUILD_ROOT%{_libdir}/libjs.so | |
182 | install Linux*/{jsautocfg.h,jsautokw.h} $RPM_BUILD_ROOT%{_includedir}/js | |
19c3fbcd JB |
183 | install js.msg jsapi.h jsarray.h jsarena.h jsatom.h jsbit.h jsbool.h \ |
184 | jsclist.h jscntxt.h jscompat.h jsconfig.h jsdate.h jsdbgapi.h \ | |
5254e17d JB |
185 | jsdhash.h jsemit.h jsfun.h jsgc.h jshash.h jsinterp.h jsiter.h \ |
186 | jslock.h jslong.h jsmath.h jsnum.h jsobj.h jsopcode.tbl jsopcode.h \ | |
187 | jsosdep.h jsotypes.h jsparse.h jsprf.h jsproto.tbl jsprvtd.h jspubtd.h \ | |
188 | jsregexp.h jsscan.h jsscope.h jsscript.h jsstddef.h jsstr.h jstypes.h \ | |
189 | jsutil.h jsxdrapi.h jsxml.h \ | |
19c3fbcd JB |
190 | $RPM_BUILD_ROOT%{_includedir}/js |
191 | ||
354a2ac8 | 192 | %if %{with java} |
0f6791fd | 193 | install liveconnect/Linux*/libjsj.a $RPM_BUILD_ROOT%{_libdir} |
5254e17d JB |
194 | install liveconnect/Linux*/libjsj.so $RPM_BUILD_ROOT%{_libdir}/libjsj.so.1.0.0 |
195 | ln -sf libjsj.so.1.0.0 $RPM_BUILD_ROOT%{_libdir}/libjsj.so.1 | |
196 | ln -sf libjsj.so.1.0.0 $RPM_BUILD_ROOT%{_libdir}/libjsj.so | |
9fd95202 JB |
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 | |
200 | %endif | |
19c3fbcd | 201 | |
19c3fbcd JB |
202 | %clean |
203 | rm -rf $RPM_BUILD_ROOT | |
204 | ||
da36d3aa JB |
205 | %post libs -p /sbin/ldconfig |
206 | %postun libs -p /sbin/ldconfig | |
19c3fbcd | 207 | |
9fd95202 JB |
208 | %post java -p /sbin/ldconfig |
209 | %postun java -p /sbin/ldconfig | |
210 | ||
19c3fbcd JB |
211 | %files |
212 | %defattr(644,root,root,755) | |
5254e17d | 213 | %doc src/README.html |
f74aa5c1 | 214 | %attr(755,root,root) %{_bindir}/js |
da36d3aa JB |
215 | |
216 | %files libs | |
217 | %defattr(644,root,root,755) | |
3d1ec0b0 | 218 | %attr(755,root,root) %{_libdir}/libjs.so.*.*.* |
5254e17d | 219 | %attr(755,root,root) %ghost %{_libdir}/libjs.so.1 |
19c3fbcd JB |
220 | |
221 | %files devel | |
222 | %defattr(644,root,root,755) | |
f74aa5c1 | 223 | %attr(755,root,root) %{_bindir}/jscpucfg |
70d3437e | 224 | %attr(755,root,root) %{_libdir}/libjs.so |
9fd95202 JB |
225 | %dir %{_includedir}/js |
226 | %{_includedir}/js/js.msg | |
227 | %{_includedir}/js/jsopcode.tbl | |
5254e17d | 228 | %{_includedir}/js/jsproto.tbl |
9fd95202 | 229 | %{_includedir}/js/js[!j]*.h |
19c3fbcd JB |
230 | |
231 | %files static | |
232 | %defattr(644,root,root,755) | |
9fd95202 JB |
233 | %{_libdir}/libjs.a |
234 | ||
354a2ac8 | 235 | %if %{with java} |
9fd95202 JB |
236 | %files java |
237 | %defattr(644,root,root,755) | |
238 | %doc src/liveconnect/README.html | |
239 | %attr(755,root,root) %{_bindir}/lcshell | |
3d1ec0b0 | 240 | %attr(755,root,root) %{_libdir}/libjsj.so.*.*.* |
5254e17d JB |
241 | %attr(755,root,root) %ghost %{_libdir}/libjsj.so.1 |
242 | %{classdir}/js*.jar | |
9fd95202 JB |
243 | |
244 | %files java-devel | |
245 | %defattr(644,root,root,755) | |
0f6791fd | 246 | %attr(755,root,root) %{_libdir}/libjsj.so |
9fd95202 JB |
247 | %{_includedir}/js/jsjava.h |
248 | %{_includedir}/js/n*.h | |
249 | ||
250 | %files java-static | |
251 | %defattr(644,root,root,755) | |
252 | %{_libdir}/libjsj.a | |
253 | %endif |