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
openSUSE Build Service is sponsored by