%{!?perl_vendorarch: %define perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch)}
Summary: JavaScript interpreter and libraries
Name: js
Version: 1.60
Release: 3%{?dist}
# The sources are triple licensed, but when we link against readline which is
# GPL, the result can only be GPL.
%if 0%{?_without_readline:1}
License: GPLv2+ or LGPLv2+ or MPLv1.1
%else
License: GPLv2+
%endif
Group: Development/Languages
URL: http://www.mozilla.org/js/
Source: http://ftp.mozilla.org/pub/mozilla.org/js/js-%{version}.tar.gz
Patch0: js-make.patch
Patch1: js-shlib.patch
Patch2: js-1.5-va_copy.patch
Patch3: js-ldflags.patch
Patch4: js-1.5-threadsafe.patch
Patch5: js-1.60-ncurses.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
BuildRequires: perl(ExtUtils::MakeMaker)
Buildrequires: readline-devel, ncurses-devel, nspr-devel
# Temporary fix (#226970 - nspr-devel should require pkgconfig)
Buildrequires: pkgconfig
Provides: libjs = %{version}-%{release}
%description
JavaScript is the Netscape-developed object scripting languages.
This package has been created for purposes of Sablotron and is suitable
for embedding in applications.
%package devel
Summary: Header files, libraries and development documentation for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}, pkgconfig
Provides: libjs-devel = %{version}-%{release}
%description devel
This package contains the header files, static libraries and development
documentation for %{name}. If you like to develop programs using %{name},
you will need to install %{name}-devel.
%prep
%setup -q -n %{name}
%patch0 -p0 -b .make
%patch1 -p0 -b .shlib
%patch2 -p1 -b .vacopy
%patch3 -p0 -b .ldflags
%patch4 -p1 -b .threadsafe
%patch5 -p1 -b .ncurses
%{__cp} src/perlconnect/README.html src/README.perlconnect.html
# Create pkgconfig file
%{__cat} > libjs.pc << 'EOF'
prefix=%{_prefix}
exec_prefix=%{_prefix}
libdir=%{_libdir}
includedir=%{_includedir}
Name: libjs
Description: JS library
Requires:
Version: %{version}
Libs: -L${libdir} -ljs
Cflags: -I${includedir}
EOF
%build
export BUILD_OPT=1
%{__make} -C src -f Makefile.ref \
JS_THREADSAFE="1" \
XCFLAGS="%{optflags} -fPIC" \
BUILD_OPT="1" \
%if 0%{!?_without_readline:1}
JS_READLINE="1" \
%endif
JS_PERLCONNECT="1"
cd src/perlconnect
MAKEFLAGS=-s %{__perl} Makefile.PL INSTALLDIRS=vendor
%{__make} %{?_smp_mflags} OPTIMIZE="%{optflags}"
cd -
%install
%{__rm} -rf %{buildroot}
%{__mkdir_p} %{buildroot}%{_bindir} \
%{buildroot}%{_libdir}/pkgconfig \
%{buildroot}%{_includedir}
%{__install} -m 0755 src/Linux_All_OPT.OBJ/{js,jscpucfg} \
%{buildroot}%{_bindir}/
%{__install} -m 0644 src/Linux_All_OPT.OBJ/libjs.a \
%{buildroot}%{_libdir}/
%{__install} -m 0755 src/Linux_All_OPT.OBJ/libjs.so \
%{buildroot}%{_libdir}/
%{__mv} %{buildroot}%{_libdir}/libjs.so %{buildroot}%{_libdir}/libjs.so.1
%{__ln_s} -nf libjs.so.1 %{buildroot}%{_libdir}/libjs.so
%{__install} -m 0644 src/js*.h src/js.msg src/jsopcode.tbl \
src/Linux_All_OPT.OBJ/jsautocfg.h \
%{buildroot}%{_includedir}/
%{__install} -m 0644 libjs.pc \
%{buildroot}%{_libdir}/pkgconfig/
%{__make} -C src/perlconnect pure_install PERL_INSTALL_ROOT=%{buildroot}
# Remove unwanted perl related files
find %{buildroot} -type f -name .packlist -o -name jsperlbuild.pl | xargs -r rm
find %{buildroot} -type f -name '*.bs' -a -size 0 | xargs -r rm
# For some reason, the pure_install above doesn't set u+w :-(
find %{buildroot}%{perl_vendorarch} -type f -exec %{__chmod} u+w {} \;
%clean
%{__rm} -rf %{buildroot}
%check || :
ln -s libjs.so src/Linux_All_OPT.OBJ/libjs.so.1
LD_LIBRARY_PATH=`pwd`/src/Linux_All_OPT.OBJ %{__make} -C src/perlconnect test
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
%doc src/README*.html src/perlconnect/bg.jpg
%{_bindir}/js
%{_libdir}/*.so.*
%{perl_vendorarch}/auto/JS/
%{perl_vendorarch}/*.pm
%files devel
%defattr(-,root,root,-)
%{_bindir}/jscpucfg
%{_libdir}/pkgconfig/*.pc
%{_libdir}/*.so
%{_libdir}/*.a
%{_includedir}/js*.h
%{_includedir}/jsopcode.tbl
%{_includedir}/js.msg
%changelog
* Mon Aug 6 2007 Matthias Saou 1.60-3
- Update License field.
- Add perl(ExtUtils::MakeMaker) build requirement to pull in perl-devel.
* Fri Feb 2 2007 Matthias Saou 1.60-2
- Include jsopcode.tbl and js.msg in devel (#235481).
- Install static lib mode 644 instead of 755.
* Fri Feb 2 2007 Matthias Saou 1.60-1
- Update to 1.60.
- Rebuild in order to link against ncurses instead of termcap (#226773).
- Add ncurses-devel build requirement and patch s/termcap/ncurses/ in.
- Change mode of perl library from 555 to 755 (#224603).
* Mon Aug 28 2006 Matthias Saou 1.5-6
- Fix pkgconfig file (#204232 & dupe #204236).
* Mon Jul 24 2006 Matthias Saou 1.5-5
- FC6 rebuild.
- Enable JS_THREADSAFE in the build (#199696), add patch and nspr build req.
* Mon Mar 6 2006 Matthias Saou 1.5-4
- FC5 rebuild.
* Thu Feb 9 2006 Matthias Saou 1.5-3
- Rebuild for new gcc/glibc.
* Mon Jan 30 2006 Matthias Saou 1.5-2
- Fix .pc file.
* Thu Jan 26 2006 Matthias Saou 1.5-1
- Update to 1.5.0 final.
- Spec file cleanups.
- Move docs from devel to main, since we need the license there.
- Remove no longer needed js-perlconnect.patch.
- Update js-1.5-va_copy.patch.
- Include a pkgconfig file (#178993).
* Tue Apr 19 2005 Ville Skyttä - 1.5-0.rc6a.6
- Link shared lib with libperl.
* Fri Apr 7 2005 Michael Schwendt
- rebuilt
* Mon Feb 14 2005 David Woodhouse - 1.5-0.rc6a.4
- Take js-va_copy.patch out of %%ifarch x86_64 so it fixes the PPC build too
* Sun Feb 13 2005 Thorsten Leemhuis - 1.5-0.rc6a.3
- Add js-va_copy.patch to fix x86_64; Patch was found in a Mandrake srpm
* Sat Dec 11 2004 Ville Skyttä - 1.5-0.rc6a.2
- Include perlconnect.
- Include readline support, rebuild using "--without readline" to disable.
- Add libjs* provides for upstream compatibility.
- Install header files in %%{_includedir} instead of %%{_includedir}/js.
* Tue Jun 15 2004 Matthias Saou 1.5-0.rc6a
- Update to 1.5rc6a.
* Tue Mar 02 2004 Dag Wieers - 1.5-0.rc6
- Initial package. (using DAR)