OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /v/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src Date: 06-Mar-2006 22:51:48
Branch: HEAD Handle: 2006030621514800
Modified files:
openpkg-src/js js.patch js.spec
Log:
add two additional Perl bindings
Summary:
Revision Changes Path
1.4 +122 -24 openpkg-src/js/js.patch
1.10 +76 -30 openpkg-src/js/js.spec
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/js/js.patch
============================================================================
$ cvs diff -u -r1.3 -r1.4 js.patch
--- openpkg-src/js/js.patch 29 Jan 2006 21:19:31 -0000 1.3
+++ openpkg-src/js/js.patch 6 Mar 2006 21:51:48 -0000 1.4
@@ -1,6 +1,92 @@
-Index: jsapi.c
---- jsapi.c.orig 2005-10-22 12:19:14 +0200
-+++ jsapi.c 2006-01-29 22:17:08 +0100
+Index: JavaScript-0.55/JavaScript.xs
+--- JavaScript-0.55/JavaScript.xs.orig 2005-06-29 21:07:06 +0200
++++ JavaScript-0.55/JavaScript.xs 2006-03-06 22:39:04 +0100
+@@ -6,7 +6,7 @@
+ #else
+ #include <jsapi.h>
+ #endif
+-#include <malloc.h>
++#include <stdlib.h>
+
+ #define _IS_UNDEF(a) (SvANY(a) == SvANY(&PL_sv_undef))
+
+Index: JavaScript-0.55/Makefile.PL
+--- JavaScript-0.55/Makefile.PL.orig 2005-06-28 23:49:03 +0200
++++ JavaScript-0.55/Makefile.PL 2006-03-06 22:39:04 +0100
+@@ -10,30 +10,13 @@
+ $define .= " -DXP_UNIX";
+ }
+
+-my $inc = '';
+-
+-if(-f "/etc/gentoo-release") {
+- # Gentoo puts libjs in a slightly hidden spot.
+- $inc = '-I/usr/lib/MozillaFirefox/include/js/
-I/usr/lib/MozillaFirefox/';
+-}
+-
+-#test for debian type include files...
+-if (-f "/usr/include/smjs/jsapi.h" or -f "/usr/local/include/smjs/jsapi.h")
{
+- $define .= " -DINCLUDES_IN_SMJS"
+-}
++my $inc = '-I../js/src';
+
+ if($ENV{JS_THREADSAFE}) {
+ $define .= " -DJS_THREADSAFE";
+ }
+
+-my $lib = "-ljs";
+-#test for debian type libsmjs
+-#this could probably be done better, but I'm not sure how to
+-#get this platform independant
+-if (-f "/usr/lib/libsmjs.so" or -f "/usr/local/lib/libsmjs.so") {
+- $lib = "-lsmjs";
+-}
+-
++my $lib = "-L../js/src -ljs";
+
+ WriteMakefile(
+ 'NAME' => 'JavaScript',
+Index: JavaScript-SpiderMonkey-0.15/Makefile.PL
+--- JavaScript-SpiderMonkey-0.15/Makefile.PL.orig 2006-02-28 18:13:08
+0100
++++ JavaScript-SpiderMonkey-0.15/Makefile.PL 2006-03-06 22:39:27 +0100
+@@ -108,7 +108,6 @@
+ 'NAME' => 'JavaScript::SpiderMonkey',
+ 'VERSION_FROM' => 'SpiderMonkey.pm', # finds $VERSION
+ 'PREREQ_PM' => {
+- 'Log::Log4perl' => 0,
+ 'Data::Dumper' => 0,
+ }, # e.g., Module::Name => 1.1
+ ($] >= 5.005 ? ## Add these new keywords supported since 5.005
+Index: JavaScript-SpiderMonkey-0.15/SpiderMonkey.pm
+--- JavaScript-SpiderMonkey-0.15/SpiderMonkey.pm.orig 2006-03-06
17:48:27 +0100
++++ JavaScript-SpiderMonkey-0.15/SpiderMonkey.pm 2006-03-06 22:39:04
+0100
+@@ -75,7 +75,6 @@
+ use strict;
+ use warnings;
+ use Data::Dumper;
+-use Log::Log4perl qw(:easy);
+
+ require Exporter;
+ require DynaLoader;
+@@ -555,14 +554,7 @@
+ ##################################################
+ sub debug_enabled {
+ ##################################################
+- my $logger = Log::Log4perl::get_logger("JavaScript::SpiderMonkey");
+- if(Log::Log4perl->initialized() and $logger->is_debug()) {
+- # print "DEBUG IS ENABLED\n";
+- return 1;
+- } else {
+- # print "DEBUG IS DISABLED\n";
+- return 0;
+- }
++ return 0;
+ }
+
+ 1;
+Index: js/src/jsapi.c
+--- js/src/jsapi.c.orig 2005-10-22 12:19:14 +0200
++++ js/src/jsapi.c 2006-03-06 22:39:04 +0100
@@ -125,7 +125,7 @@
static JSBool
@@ -39,9 +125,9 @@
atom = NULL;
attrs &= ~JSPROP_INDEX;
} else {
-Index: jscntxt.c
---- jscntxt.c.orig 2004-08-19 19:57:36 +0200
-+++ jscntxt.c 2006-01-29 22:17:08 +0100
+Index: js/src/jscntxt.c
+--- js/src/jscntxt.c.orig 2004-08-19 19:57:36 +0200
++++ js/src/jscntxt.c 2006-03-06 22:39:04 +0100
@@ -334,7 +334,7 @@
{
const JSResolvingKey *key = (const JSResolvingKey *)ptr;
@@ -51,9 +137,9 @@
}
JS_PUBLIC_API(JSBool)
-Index: jsdtoa.c
---- jsdtoa.c.orig 2004-04-04 00:11:11 +0200
-+++ jsdtoa.c 2006-01-29 22:17:08 +0100
+Index: js/src/jsdtoa.c
+--- js/src/jsdtoa.c.orig 2004-04-04 00:11:11 +0200
++++ js/src/jsdtoa.c 2006-03-06 22:39:04 +0100
@@ -257,7 +257,7 @@
#define word1(x) JSDOUBLE_LO32(x)
#define set_word1(x, y) JSDOUBLE_SET_LO32(x, y)
@@ -90,9 +176,9 @@
set_word0(rv0, Exp_1 - P*Exp_msk1);
set_word1(rv0, 0);
if ((word0(rv) & Exp_mask) <= P*Exp_msk1
-Index: jsinterp.c
---- jsinterp.c.orig 2004-09-24 04:16:49 +0200
-+++ jsinterp.c 2006-01-29 22:17:08 +0100
+Index: js/src/jsinterp.c
+--- js/src/jsinterp.c.orig 2004-09-24 04:16:49 +0200
++++ js/src/jsinterp.c 2006-03-06 22:39:04 +0100
@@ -1741,11 +1741,11 @@
void *mark;
jsbytecode *pc, *pc2, *endpc;
@@ -132,9 +218,9 @@
goto out;
}
sp = newsp + depth;
-Index: jsosdep.h
---- jsosdep.h.orig 2003-11-15 01:10:59 +0100
-+++ jsosdep.h 2006-01-29 22:17:08 +0100
+Index: js/src/jsosdep.h
+--- js/src/jsosdep.h.orig 2003-11-15 01:10:59 +0100
++++ js/src/jsosdep.h 2006-03-06 22:39:04 +0100
@@ -101,7 +101,7 @@
#elif defined(SOLARIS)
#define JS_HAVE_LONG_LONG
@@ -144,9 +230,9 @@
#define JS_HAVE_LONG_LONG
#elif defined(SUNOS4)
-Index: jspubtd.h
---- jspubtd.h.orig 2004-06-15 18:38:43 +0200
-+++ jspubtd.h 2006-01-29 22:17:08 +0100
+Index: js/src/jspubtd.h
+--- js/src/jspubtd.h.orig 2004-06-15 18:38:43 +0200
++++ js/src/jspubtd.h 2006-03-06 22:39:04 +0100
@@ -531,7 +531,7 @@
typedef JSBool
(* JS_DLL_CALLBACK JSArgumentFormatter)(JSContext *cx, const char *format,
@@ -156,9 +242,9 @@
#endif
typedef JSBool
-Index: jstypes.h
---- jstypes.h.orig 2003-11-15 01:11:04 +0100
-+++ jstypes.h 2006-01-29 22:17:08 +0100
+Index: js/src/jstypes.h
+--- js/src/jstypes.h.orig 2003-11-15 01:11:04 +0100
++++ js/src/jstypes.h 2006-03-06 22:39:04 +0100
@@ -203,6 +203,19 @@
#define JS_BITMASK(n) (JS_BIT(n) - 1)
@@ -179,9 +265,21 @@
** MACROS: JS_HOWMANY
** JS_ROUNDUP
** JS_MIN
-Index: rules.mk
---- rules.mk.orig 2003-11-15 01:11:04 +0100
-+++ rules.mk 2006-01-29 22:17:08 +0100
+Index: js/src/perlconnect/JS.xs
+--- js/src/perlconnect/JS.xs.orig 2005-02-12 21:10:34 +0100
++++ js/src/perlconnect/JS.xs 2006-03-06 22:39:04 +0100
+@@ -61,7 +61,7 @@
+
+ #include <jsapi.h>
+ #include "jsperlpvt.h"
+-#include <malloc.h>
++#include <stdlib.h>
+
+ /* __REMOVE__ */
+ /* #include <stdio.h> */
+Index: js/src/rules.mk
+--- js/src/rules.mk.orig 2003-11-15 01:11:04 +0100
++++ js/src/rules.mk 2006-03-06 22:39:04 +0100
@@ -58,7 +58,7 @@
# TARGETS = $(LIBRARY) # $(PROGRAM) not supported for MSVC yet
TARGETS += $(SHARED_LIBRARY) $(PROGRAM) # it is now
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/js/js.spec
============================================================================
$ cvs diff -u -r1.9 -r1.10 js.spec
--- openpkg-src/js/js.spec 29 Jan 2006 21:19:32 -0000 1.9
+++ openpkg-src/js/js.spec 6 Mar 2006 21:51:48 -0000 1.10
@@ -22,6 +22,11 @@
## SUCH DAMAGE.
##
+# package version
+%define V_js 1.5
+%define V_javascript 0.55
+%define V_javascript_spidermonkey 0.15
+
# package information
Name: js
Summary: Mozilla JavaScript (JS)
@@ -32,15 +37,17 @@
Class: EVAL
Group: Language
License: MPL/GPL/LGPL
-Version: 1.5
-Release: 20060129
+Version: %{V_js}
+Release: 20060306
# package options
%option with_perl no
# list of sources
-Source0: http://ftp.mozilla.org/pub/mozilla.org/js/js-%{version}.tar.gz
-Source1: js.pc
+Source0: http://ftp.mozilla.org/pub/mozilla.org/js/js-%{V_js}.tar.gz
+Source1:
http://www.cpan.org/modules/by-module/JavaScript/JavaScript-%{V_javascript}.tar.gz
+Source2:
http://www.cpan.org/modules/by-module/JavaScript/JavaScript-SpiderMonkey-%{V_javascript_spidermonkey}.tar.gz
+Source3: js.pc
Patch0: js.patch
# build information
@@ -61,45 +68,73 @@
Netscape-developed object scripting language used in millions of web
pages and server applications worldwide. Netscape's JavaScript is a
superset of the ECMA-262 Edition 3 (ECMAScript) standard scripting
- language.
+ language. This package also optionally provides Perl bindings.
%track
prog js = {
- version = %{version}
+ version = %{V_js}
url = http://ftp.mozilla.org/pub/mozilla.org/js/
regex = js-(__VER__)\.tar\.gz
}
+ prog js:JavaScript = {
+ version = %{V_javascript}
+ url = http://www.cpan.org/modules/by-module/JavaScript/
+ regex = JavaScript-(__VER__)\.tar\.gz
+ }
+ prog js:JavaScript-SpiderMonkey = {
+ version = %{V_javascript_spidermonkey}
+ url = http://www.cpan.org/modules/by-module/JavaScript/
+ regex = JavaScript-SpiderMonkey-(__VER__)\.tar\.gz
+ }
%prep
%setup -q -c
- %patch -p0 -d js/src
+ %setup -q -D -T -a 1
+ %setup -q -D -T -a 2
+ %patch -p0
%build
- cd js/src
-
# build components
- cp Makefile.ref Makefile
- case "%{l_platform -t}" in
- *-freebsd* ) cp config/Linux_All.mk config/`uname -s``uname -r`.mk ;;
- esac
- touch config/`uname -s``uname -r`.mk
- %{l_make} %{l_mflags} \
- CC="%{l_cc}" \
- XCFLAGS="%{l_cppflags} %{l_cflags -O}" \
- XLDFLAGS="%{l_ldflags}" \
- BUILD_OPT=1 \
- JS_EDITLINE=1
-
-%if "%{with_perl}" == "yes"
- # build Perl API
- objdir="`echo *.OBJ`"
- %{l_shtool} subst \
- -e "s:\\(\$inc.=.\"\\).*\\(\";\\):\\1-I../$objdir -I..\\2:g" \
- -e "s:\\(\$libpath.=.\"\\).*\\(\";\\):\\1-L../$objdir\\2:g" \
- perlconnect/Makefile.PL
+%if "%{with_perl}" == "yes"
%{l_prefix}/bin/perl-openpkg prepare
- %{l_prefix}/bin/perl-openpkg -d perlconnect -A "-c" configure
- %{l_prefix}/bin/perl-openpkg -d perlconnect build
+%endif
+ ( cd js/src
+ cp Makefile.ref Makefile
+ case "%{l_platform -t}" in
+ *-freebsd* ) cp config/Linux_All.mk config/`uname -s``uname -r`.mk
;;
+ esac
+ touch config/`uname -s``uname -r`.mk
+ %{l_make} %{l_mflags} \
+ CC="%{l_cc}" \
+ XCFLAGS="%{l_cppflags} %{l_cflags -O}" \
+ XLDFLAGS="%{l_ldflags}" \
+ BUILD_OPT=1 \
+ JS_EDITLINE=1
+
+%if "%{with_perl}" == "yes"
+ # build Perl API
+ objdir="`echo *.OBJ`"
+ %{l_shtool} subst \
+ -e "s:\\(\$inc.=.\"\\).*\\(\";\\):\\1-I../$objdir -I..\\2:g" \
+ -e "s:\\(\$libpath.=.\"\\).*\\(\";\\):\\1-L../$objdir\\2:g" \
+ perlconnect/Makefile.PL
+ %{l_prefix}/bin/perl-openpkg -d perlconnect -A "-c" configure
+ %{l_prefix}/bin/perl-openpkg -d perlconnect build
+%endif
+ ) || exit $?
+
+%if "%{with_perl}" == "yes"
+ # build add-on Perl bindings
+ ( cd JavaScript-%{V_javascript}
+ ln ../js/src/`uname -s``uname -r`_OPT.OBJ/libjs.a ../js/src/
+ ln ../js/src/`uname -s``uname -r`_OPT.OBJ/jsautocfg.h ../js/src/
+ %{l_prefix}/bin/perl-openpkg configure build
+ rm -f ../js/src/libjs.a
+ rm -f ../js/src/jsautocfg.h
+ ) || exit $?
+ ( cd JavaScript-SpiderMonkey-%{V_javascript_spidermonkey}
+ %{l_prefix}/bin/perl-openpkg configure build
+ ) || exit $?
%endif
%install
@@ -130,6 +165,17 @@
%{l_prefix}/bin/perl-openpkg -d perlconnect install
%endif
) || exit $?
+
+%if "%{with_perl}" == "yes"
+ # install add-on Perl bindings
+ ( cd JavaScript-%{V_javascript}
+ %{l_prefix}/bin/perl-openpkg install
+ ) || exit $?
+ ( cd JavaScript-SpiderMonkey-%{V_javascript_spidermonkey}
+ %{l_prefix}/bin/perl-openpkg install
+ ) || exit $?
+%endif
+
%if "%{with_perl}" == "yes"
%{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup
%else
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [email protected]