Sophie

Sophie

distrib > Mandriva > current > i586 > media > contrib-release-src > by-pkgid > 3c6fc877ba42fa887106ec13fa2dbe37 > files > 3

perl-JavaScript-1.160.0-1mdv2010.1.src.rpm

%define upstream_name	JavaScript
%define upstream_version 1.16

Name:       perl-%{upstream_name}
Version:    %perl_convert_version %{upstream_version}
Release:    %mkrel 1

Summary:	Execute JavaScript from within Perl
License:	Artistic or GPL 
Group:		Development/Perl
Url:		http://search.cpan.org/dist/%{upstream_name}/
Source0:	ftp://ftp.perl.org/pub/CPAN/modules/by-module/JavaScript/%{upstream_name}-%{upstream_version}.tar.gz
Patch0:     JavaScript-1.12-fix-inline-c-inc-from-jsinc.patch

%define do_test 1
%{?_without_test:           %global do_test 0}
%{?_with_test:              %global do_test 1}

Buildrequires:	libjs-devel
Buildrequires:	libnspr-devel
Buildrequires:	perl-devel
Buildrequires:	pkgconfig
Buildrequires:	sed
%if %do_test
Buildrequires:	perl(Test::Exception)
%endif

BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}

%description
JavaScript.pm is an interface to the SpiderMonkey JS engine. It lets you execute JS code, 
call JS functions, bind Perl classes to JS, import Perl functions to JS, precompile and exeute 
scripts among many other things. It does conversion between Perl and JS datatypes.

  use JavaScript;

  my $rt = JavaScript::Runtime->new();
  my $cx = $rt->create_context();

  $cx->bind_function(write => sub { print @_; });

  $cx->eval(q/
    for (i = 99; i > 0; i--) {
        write(i + " bottle(s) of beer on the wall, " + i + " bottle(s) of beer\n");
        write("Take 1 down, pass it around, ");
        if (i > 1) {
            write((i - 1) + " bottle(s) of beer on the wall.");
        }
        else {
            write("No more bottles of beer on the wall!");
        }
    }
  /);


%package devel
Summary:  Perl JavaScript development files
Group:    Development/Perl
Requires: %{name} = %{version}
Requires: libjs-devel

%description devel
Development files for extending Perl Javascript 
or for testing JavaScript code from Perl.


%prep
%setup -q -n %{upstream_name}-%{upstream_version}
%patch0 -b .fix-inc
%define jsinc   %(eval echo $(pkg-config libjs --cflags-only-I | sed s/-I//))
%define nsprinc %(eval echo $(pkg-config nspr --cflags-only-I  | sed s/-I//))
%define JS_INC %{jsinc}:%{nsprinc}

%build
JS_INC=%{JS_INC} JS_THREADSAFE=1 JS_UTF8=0 JS_ENABLE_E4X=1 %{__perl} Makefile.PL
perl -pi -e's|/usr/local/share/man/man3|/usr/share/man/man3|' Makefile
%make CFLAGS="%{optflags}" 

%install
rm -rf %{buildroot}
%makeinstall_std 

%check
%if %do_test
JS_INC=%{JS_INC} %{__make} test
%endif

%clean 
rm -rf %{buildroot}

%files 
%defattr(-,root,root)
%{perl_sitearch}/JavaScript
%{perl_sitearch}/JavaScript.pm
%dir %{perl_sitearch}/auto/JavaScript
%{perl_sitearch}/auto/JavaScript/JavaScript.so
%{_mandir}/man3/JavaScript*

%files devel
%defattr(-,root,root)
%{perl_sitearch}/Test
%{perl_sitearch}/auto/JavaScript/*.h
%{perl_sitearch}/auto/JavaScript/typemap
%{_mandir}/man3/Test::*



%changelog
* Tue Feb 23 2010 Jérôme Quelin <jquelin@mandriva.org> 1.160.0-1mdv2010.1
+ Revision: 510077
- update to 1.16

* Tue Jan 05 2010 Jérôme Quelin <jquelin@mandriva.org> 1.150.0-1mdv2010.1
+ Revision: 486315
- update to 1.15

* Wed Dec 02 2009 Jérôme Quelin <jquelin@mandriva.org> 1.140.0-1mdv2010.1
+ Revision: 472579
- update to 1.14
- update to 1.13

* Wed Oct 07 2009 Jérôme Quelin <jquelin@mandriva.org> 1.120.0-2mdv2010.0
+ Revision: 455534
- remove lib dependency, auto extracted

* Tue Oct 06 2009 Jérôme Quelin <jquelin@mandriva.org> 1.120.0-1mdv2010.0
+ Revision: 454644
- import perl-JavaScript


* Thu Sep 17 2009 cpan2dist 0.14-1mdv
- initial mdv release, taken from http://users.on.net/~emerson/perl-JavaScript/mdv2009.1/perl-JavaScript-1.11-1mdv2009.1.src.rpm
- updated to 1.12
- fixed threadsafe mode
- patched to fix wrong @INC parsing for Inline::C