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