File libjs.spec of Package libjs
#
# spec file for package libjs (Version 1.8.0)
#
# Based on the work from Christian Cornelssens, see
# http://user.cs.tu-berlin.de/~ccorn/index.de.html
# and
# http://packman.links2linux.de/package/libjs
#
%define so_version 1.8
%define js_version 1.8.0
BuildRequires: gcc perl mozilla-nspr-devel ncurses-devel pkg-config readline-devel
Name: libjs
Summary: Mozilla's SpiderMonkey, a C library for JavaScript interpretation
Summary(de): Mozillas SpiderMonkey, eine C-Bibliothek zur JavaScript-Interpretation
Version: 1.8.0
Release: 1
Group: Productivity/Networking/Other
License: Netscape Public License
URL: http://www.mozilla.org/js/spidermonkey/
Source0: js-%{version}-rc1.tar.bz2
Patch0: js-%{version}-make.patch
Patch1: js-%{version}-shlib.patch
Patch2: js-%{version}-va_copy.patch
Patch4: js-%{version}-threadsafe.patch
Patch5: js-%{version}-ncurses.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
SpiderMonkey is the code-name for Mozilla's C implementation of JavaScript.
This package contains a library that does JavaScript interpretation.
The package js-utils contains a corresponding command-line interpreter.
%description -l de
SpiderMonkey ist der Codename für Mozillas C-Implementation von JavaScript.
Dieses Paket enthält eine Funktionsbibliothek, die JavaScript interpretiert.
Das Paket js-utils enthält einen dazugehörigen Kommandozeilen-Interpreter.
%package -n libjs1
Summary: Mozilla's SpiderMonkey, a C library for JavaScript interpretation
Summary(de): Mozillas SpiderMonkey, eine C-Bibliothek zur JavaScript-Interpretation
Obsoletes: %{name} < %{version}
Provides: %{name} = %{version}
%description -n libjs1
SpiderMonkey is the code-name for Mozilla's C implementation of JavaScript.
This package contains a library that does JavaScript interpretation.
The package js-utils contains a corresponding command-line interpreter.
%package -n js-utils
Summary: Command line interface to %{name}
Summary(de): Kommandozeilen-Schnittstelle zur %{name}
Group: Productivity/Networking/Web/Browsers
Requires: %{name} = %{version}
Requires: ncurses
Requires: readline
Obsoletes: %{name}-utils < %{version}
Provides: %{name}-utils = %{version}
%description -n js-utils
Command line interface offering access to %{name} functions.
%description -n js-utils -l de
Kommandozeilen-Schnittstelle, die Zugriff auf %{name}-Funktionen bietet.
%package devel
Summary: Supplementary files for developing %{name} applications
Summary(de): Ergänzende Dateien zur Entwicklung von %{name}-Anwendungen
Group: Development/Libraries/C and C++
Requires: libjs1 = %{version}
%description devel
Header files, static libraries, and documentation for %{name}.
%description devel -l de
Include-Dateien, statische Bibliothek und Dokumentation zu %{name}.
%debug_package
%prep
%setup -q -n js
%patch0 -p1 -b .make
%patch1 -p1 -b .shlib
%patch2 -p1 -b .vacopy
%patch4 -p1 -b .threadsafe
%patch5 -p1 -b .ncurses
%build
cd src
export CFLAGS="%{optflags} -DPIC -fPIC -D_REENTRANT -I%{_includedir}/nspr4"
BUILD_OPT=1 JS_THREADSAFE=1 %{__make} -f Makefile.ref
cd -
%install
%{__install} -d %{buildroot}%{_bindir}
%{__install} -d %{buildroot}%{_libdir}
%{__install} -d %{buildroot}%{_includedir}/js
# install headers
%{__install} -m644 src/*.h %{buildroot}%{_includedir}/js/
%{__install} -m644 src/*.tbl %{buildroot}%{_includedir}/js/
%{__install} -m644 src/Linux_All_OPT.OBJ/jsautocfg.h %{buildroot}%{_includedir}/js/
# install shared library
%{__install} -m755 src/Linux_All_OPT.OBJ/%{name}.so \
%{buildroot}%{_libdir}/%{name}.so.%{js_version}
# Create the links needed
( cd "%{buildroot}/%{_libdir}"
%{__ln_s} libjs.so.%{js_version} libjs.so.%{so_version}
%{__ln_s} libjs.so.%{js_version} libjs.so
) || exit $?
# install binary
%{__install} -m755 src/Linux_All_OPT.OBJ/js %{buildroot}%{_bindir}/
( cd src
# Create pkgconfig info
%{__mkdir_p} "%{buildroot}/%{_libdir}/pkgconfig"
cat <<EOF >"%{buildroot}/%{_libdir}/pkgconfig/%{name}.pc"
prefix=%{_prefix}
exec_prefix=%{_exec_prefix}
libdir=%{_libdir}
includedir=%{_includedir}
Name: SpiderMonkey
Description: Mozilla C-based JavaScript Engine
Version: %{version}
Libs: -L%{_libdir} -ljs -lm
%if "%{_includedir}" != "%{_oldincludedir}"
Cflags: -I%{_includedir}$CLIENT_DEFS
%else
Cflags:$CLIENT_DEFS
%endif
EOF
) || exit $?
%post -n libjs1
/sbin/ldconfig
%postun -n libjs1
/sbin/ldconfig
%clean
[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}
%files -n libjs1
%defattr(-,root,root)
%{_libdir}/lib*.so.*
%files -n js-utils
%defattr(-,root,root)
%{_bindir}/*
%files -n libjs-devel
%defattr(-,root,root)
%{_includedir}/*
%{_libdir}/lib*.so
%{_libdir}/pkgconfig/%{name}.pc
%doc src/README.html
%changelog
* Wed Aug 26 2009 Manfred.Tremmel <Manfred.Tremmel@iiv.de> - 1.7-2.pm.0
- cleanups where rpmlint wasn't so happy
* Thu Oct 16 2008 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- included some patches from the RedHat-Package
* Sat Dec 08 2007 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- enabled patch not only for ppc, also solves problems on i586
* Tue Oct 30 2007 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added a patch sent from Vladimir V. Kolpakov
* Fri Oct 26 2007 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- update to 1.7.0
* Thu Oct 26 2006 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added JS_THREADSAFE=1 to make libjs threadsave (needed by new
avidemux versions), thanks to Detlef Reichelt
* Fri Apr 21 2006 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added provides entry for compatibility reasons
* Thu Apr 20 2006 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- more cleanups
* Tue Mar 21 2006 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- some more changes for ppc
* Wed Oct 26 2005 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- integrated some little changes for x86_64 from Detlef Reichelt
* Mon Oct 24 2005 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- update to 1.5 final
* Wed Sep 14 2005 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- adapted for packman
* Fri Oct 08 2004 Christian Cornelssen <ccorn@cs.tu-berlin.de>
- Initial spec file for js-1.5rc6a, js-tests-20021118