summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Graaff <graaff@gentoo.org>2011-12-04 10:12:59 +0000
committerHans de Graaff <graaff@gentoo.org>2011-12-04 10:12:59 +0000
commit1f7b0270b3230d8861b8e3bc3d5c7fdaeff7b69f (patch)
tree77492a2d2bdb3f9a1ec72c7cf7f796cfe109de21 /www-servers/gorg
parentsplit opts to extra_commands (diff)
downloadgentoo-2-1f7b0270b3230d8861b8e3bc3d5c7fdaeff7b69f.tar.gz
gentoo-2-1f7b0270b3230d8861b8e3bc3d5c7fdaeff7b69f.tar.bz2
gentoo-2-1f7b0270b3230d8861b8e3bc3d5c7fdaeff7b69f.zip
Convert to ruby-ng.eclass. Add ruby19 support. Thanks to naota for patches and testing in bug 315487.
(Portage version: 2.1.10.11/cvs/Linux x86_64)
Diffstat (limited to 'www-servers/gorg')
-rw-r--r--www-servers/gorg/ChangeLog9
-rw-r--r--www-servers/gorg/files/gorg-0.6.4-ruby19-date.patch32
-rw-r--r--www-servers/gorg/files/gorg-0.6.4-ruby19.patch161
-rw-r--r--www-servers/gorg/gorg-0.6.4-r1.ebuild63
4 files changed, 264 insertions, 1 deletions
diff --git a/www-servers/gorg/ChangeLog b/www-servers/gorg/ChangeLog
index 56ec1e3d20c4..be50e6487fcc 100644
--- a/www-servers/gorg/ChangeLog
+++ b/www-servers/gorg/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for www-servers/gorg
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/www-servers/gorg/ChangeLog,v 1.27 2011/04/09 18:13:34 graaff Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/gorg/ChangeLog,v 1.28 2011/12/04 10:12:59 graaff Exp $
+
+*gorg-0.6.4-r1 (04 Dec 2011)
+
+ 04 Dec 2011; Hans de Graaff <graaff@gentoo.org> +gorg-0.6.4-r1.ebuild,
+ +files/gorg-0.6.4-ruby19-date.patch, +files/gorg-0.6.4-ruby19.patch:
+ Convert to ruby-ng.eclass. Add ruby19 support. Thanks to naota for patches
+ and testing in bug 315487.
09 Apr 2011; Hans de Graaff <graaff@gentoo.org> gorg-0.6.3-r2.ebuild,
gorg-0.6.4.ebuild:
diff --git a/www-servers/gorg/files/gorg-0.6.4-ruby19-date.patch b/www-servers/gorg/files/gorg-0.6.4-ruby19-date.patch
new file mode 100644
index 000000000000..03b6ef8d10f9
--- /dev/null
+++ b/www-servers/gorg/files/gorg-0.6.4-ruby19-date.patch
@@ -0,0 +1,32 @@
+diff --git a/lib/gorg/cache.rb b/lib/gorg/cache.rb
+index 543b6a2..00ad1ab 100644
+--- a/lib/gorg/cache.rb
++++ b/lib/gorg/cache.rb
+@@ -22,7 +22,13 @@
+ # . a list of parameters as received by a webserver e.g.
+ # . a list of files it depends on
+
+-require "parsedate"
++begin
++ require "parsedate"
++ $haveparsedate = true
++rescue LoadError
++ require "time"
++ $haveparsedate = false
++end
+ require "fileutils"
+ require "find"
+ require "digest"
+@@ -106,7 +112,11 @@ module Cache
+
+ fst = File.stat(f)
+ raise "Size of #{f} has changed from #{fst.size} to #{s.to_i}" unless fst.size == s.to_i
+- raise "Timestamp of #{f} has changed" unless Time.utc(*ParseDate.parsedate(d)) == fst.mtime.utc
++ if $haveparsedate
++ raise "Timestamp of #{f} has changed" unless Time.utc(*ParseDate.parsedate(d)) == fst.mtime.utc
++ else
++ raise "Timestamp of #{f} has changed" unless Time.parse(d) == fst.mtime.utc
++ end
+ end
+ mline = meta.shift
+ end
diff --git a/www-servers/gorg/files/gorg-0.6.4-ruby19.patch b/www-servers/gorg/files/gorg-0.6.4-ruby19.patch
new file mode 100644
index 000000000000..d155ffaad2fb
--- /dev/null
+++ b/www-servers/gorg/files/gorg-0.6.4-ruby19.patch
@@ -0,0 +1,161 @@
+diff --git a/ext/gorg/xsl/xsl.c b/ext/gorg/xsl/xsl.c
+index d8d40b6..58ffc49 100644
+--- a/ext/gorg/xsl/xsl.c
++++ b/ext/gorg/xsl/xsl.c
+@@ -20,6 +20,13 @@
+
+ #include "xsl.h"
+
++#ifndef RARRAY_LEN
++#define RARRAY_LEN(a) RARRAY(a)->len
++#endif
++#ifndef RSTRING_LEN
++#define RSTRING_LEN(str) RSTRING(str)->len
++#endif
++
+ /*
+ * Copied from xmlIO.c from libxml2
+ */
+@@ -156,8 +163,8 @@ void *XRootOpen (const char *filename, const char* rw) {
+
+ if (g_xroot != Qnil)
+ {
+- rbxrootPtr = RSTRING(g_xroot)->ptr;
+- rbxrootLen = RSTRING(g_xroot)->len;
++ rbxrootPtr = RSTRING_PTR(g_xroot);
++ rbxrootLen = RSTRING_LEN(g_xroot);
+ }
+ path = (char *) malloc((strlen(filename) + rbxrootLen + 1) * sizeof(char));
+ if (path == NULL)
+@@ -284,10 +291,10 @@ void xslMessageHandler(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...)
+ */
+ int looksLikeXML(VALUE v)
+ {
+- return (RSTRING(v)->len > FILENAME_MAX)
+- || (!strncmp(RSTRING(v)->ptr, "<?xml", 5))
+- || (!strncmp(RSTRING(v)->ptr, "<?xsl", 5))
+- || (strstr(RSTRING(v)->ptr, "\n"));
++ return (RSTRING_LEN(v) > FILENAME_MAX)
++ || (!strncmp(RSTRING_PTR(v), "<?xml", 5))
++ || (!strncmp(RSTRING_PTR(v), "<?xsl", 5))
++ || (strstr(RSTRING_PTR(v), "\n"));
+ // We could also try with " " but some are stupid enough to use spaces in filenames
+ }
+
+@@ -456,7 +463,7 @@ VALUE check_params(VALUE xparams)
+ // empty array => Qnil
+ // array.length==2, could be 2 params [[p1,v1],[p2,v2]] or 1 param [p,v]
+ // if both items are arrays, we have a list of params, otherwise we have a single param
+- len = RARRAY(ary)->len;
++ len = RARRAY_LEN(ary);
+ switch (len)
+ {
+ case 0:
+@@ -522,17 +529,17 @@ char *build_params(VALUE rbparams)
+
+ // Compute total block size in one go
+ tempval = rb_funcall(rbparams, id.to_s, 0);
+- ret = malloc ( ((RARRAY(rbparams)->len)*2+1) * sizeof(void *) // Two pointers per [param, value] + 1 NULL
+- + (RARRAY(rbparams)->len) * 4 * sizeof(char) // Quotes around values + 1 NULL per value
+- + (RSTRING(tempval)->len) * sizeof(char) // Size of param names & values
++ ret = malloc ( ((RARRAY_LEN(rbparams))*2+1) * sizeof(void *) // Two pointers per [param, value] + 1 NULL
++ + (RARRAY_LEN(rbparams)) * 4 * sizeof(char) // Quotes around values + 1 NULL per value
++ + (RSTRING_LEN(tempval)) * sizeof(char) // Size of param names & values
+ );
+ if ( ret==NULL)
+ return NULL; // out of memory
+
+ paramPtr = (char **)ret;
+- paramData = ret + ((RARRAY(rbparams)->len)*2+1) * sizeof(void *);
++ paramData = ret + ((RARRAY_LEN(rbparams))*2+1) * sizeof(void *);
+ // Copy each param name & value
+- for (i=0; i<RARRAY(rbparams)->len; ++i)
++ for (i=0; i<RARRAY_LEN(rbparams); ++i)
+ {
+ tempval = rb_ary_entry(rbparams, i); // ith param, i.e. [name, value]
+
+@@ -542,9 +549,9 @@ char *build_params(VALUE rbparams)
+ // Add param name address to list of pointers
+ *paramPtr++ = paramData;
+ // Copy param name into data block
+- strcpy(paramData, RSTRING(tempstr)->ptr);
++ strcpy(paramData, RSTRING_PTR(tempstr));
+ // Move data pointer after inserted string
+- paramData += 1+ RSTRING(tempstr)->len;
++ paramData += 1+ RSTRING_LEN(tempstr);
+
+ // 2. Copy param value, quoting it with ' or "
+
+@@ -552,7 +559,7 @@ char *build_params(VALUE rbparams)
+ // Don't bother if param is a mix of ' and ", users should know better :-)
+ // or it's been checked already. Here we expect params to be OK.
+ quotingChar = '"';
+- if ( strchr(RSTRING(tempstr)->ptr, quotingChar) )
++ if ( strchr(RSTRING_PTR(tempstr), quotingChar) )
+ quotingChar = '\''; // Use ' instead of "
+
+ // Add para value address in list of pointers
+@@ -561,9 +568,9 @@ char *build_params(VALUE rbparams)
+ // Start with quoting character
+ *paramData++ = quotingChar;
+ // Copy value
+- strcpy(paramData, RSTRING(tempstr)->ptr);
++ strcpy(paramData, RSTRING_PTR(tempstr));
+ // Move data pointer after inserted string
+- paramData += RSTRING(tempstr)->len;
++ paramData += RSTRING_LEN(tempstr);
+ // Close quote
+ *paramData++ = quotingChar;
+ // End string with \0
+@@ -593,13 +600,13 @@ VALUE xsl_process_real(VALUE none, VALUE self)
+ if (NIL_P(rbxml))
+ rb_raise(rb_eArgError, "No XML data");
+ rbxml = StringValue(rbxml);
+- if (!RSTRING(rbxml)->len)
++ if (!RSTRING_LEN(rbxml))
+ rb_raise(rb_eArgError, "No XML data");
+ rbxsl = rb_iv_get(self, "@xsl");
+ if (NIL_P(rbxsl))
+ rb_raise(rb_eArgError, "No Stylesheet");
+ rbxsl = StringValue(rbxsl);
+- if (!RSTRING(rbxsl)->len)
++ if (!RSTRING_LEN(rbxsl))
+ rb_raise(rb_eArgError, "No Stylesheet");
+ rbxroot = rb_iv_get(self, "@xroot");
+ rbparams = check_params(rb_iv_get(self, "@xparams"));
+@@ -625,7 +632,7 @@ VALUE xsl_process_real(VALUE none, VALUE self)
+ // Parse XSL
+ if (looksLikeXML(rbxsl))
+ {
+- myPointers.docxsl = xmlParseMemory(RSTRING(rbxsl)->ptr, RSTRING(rbxsl)->len);
++ myPointers.docxsl = xmlParseMemory(RSTRING_PTR(rbxsl), RSTRING_LEN(rbxsl));
+ // myPointers.docxsl = xmlReadMemory(RSTRING(rbxsl)->ptr, RSTRING(rbxsl)->len, ".", NULL, 0);
+ if (myPointers.docxsl == NULL)
+ {
+@@ -641,7 +648,7 @@ VALUE xsl_process_real(VALUE none, VALUE self)
+ }
+ else // xsl is a filename
+ {
+- myPointers.xsl = xsltParseStylesheetFile(RSTRING(rbxsl)->ptr);
++ myPointers.xsl = xsltParseStylesheetFile(RSTRING_PTR(rbxsl));
+ if (myPointers.xsl == NULL)
+ {
+ my_raise(self, &myPointers, rb_eSystemCallError, "XSL file loading error");
+@@ -652,7 +659,7 @@ VALUE xsl_process_real(VALUE none, VALUE self)
+ // Parse XML
+ if (looksLikeXML(rbxml))
+ {
+- myPointers.docxml = xmlReadMemory(RSTRING(rbxml)->ptr, RSTRING(rbxml)->len, ".", NULL, xmlOptions);
++ myPointers.docxml = xmlReadMemory(RSTRING_PTR(rbxml), RSTRING_LEN(rbxml), ".", NULL, xmlOptions);
+ if (myPointers.docxml == NULL)
+ {
+ my_raise(self, &myPointers, rb_eSystemCallError, "XML parsing error");
+@@ -661,7 +668,7 @@ VALUE xsl_process_real(VALUE none, VALUE self)
+ }
+ else // xml is a filename
+ {
+- myPointers.docxml = xmlReadFile(RSTRING(rbxml)->ptr, NULL, xmlOptions);
++ myPointers.docxml = xmlReadFile(RSTRING_PTR(rbxml), NULL, xmlOptions);
+ if (myPointers.docxml == NULL)
+ {
+ my_raise(self, &myPointers, rb_eSystemCallError, "XML file parsing error");
diff --git a/www-servers/gorg/gorg-0.6.4-r1.ebuild b/www-servers/gorg/gorg-0.6.4-r1.ebuild
new file mode 100644
index 000000000000..17936e86acf7
--- /dev/null
+++ b/www-servers/gorg/gorg-0.6.4-r1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-servers/gorg/gorg-0.6.4-r1.ebuild,v 1.1 2011/12/04 10:12:59 graaff Exp $
+
+EAPI=2
+USE_RUBY="ruby18 ruby19"
+
+inherit ruby-ng eutils
+
+DESCRIPTION="Back-end XSLT processor for an XML-based web site"
+HOMEPAGE="http://www.gentoo.org/proj/en/gdp/doc/gorg.xml"
+SRC_URI="http://gentoo.neysx.org/mystuff/gorg/${P}.tgz"
+IUSE="fastcgi mysql"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+CDEPEND="
+ >=dev-libs/libxml2-2.6.16
+ >=dev-libs/libxslt-1.1.12"
+DEPEND="${DEPEND} ${CDEPEND}"
+RDEPEND="${RDEPEND} ${CDEPEND}
+ fastcgi? ( virtual/httpd-fastcgi )"
+
+ruby_add_rdepend "
+ mysql? ( >=dev-ruby/ruby-dbi-0.0.21[mysql] )
+ fastcgi? ( >=dev-ruby/ruby-fcgi-0.8.5-r1 )"
+
+pkg_setup() {
+ enewgroup gorg
+ enewuser gorg -1 -1 -1 gorg
+}
+
+all_ruby_prepare() {
+ epatch "${FILESDIR}/${P}-ruby19.patch"
+ epatch "${FILESDIR}/${P}-ruby19-date.patch"
+}
+
+each_ruby_configure() {
+ ${RUBY} setup.rb config --prefix=/usr || die
+}
+
+each_ruby_compile() {
+ ${RUBY} setup.rb setup || die
+}
+
+each_ruby_install() {
+ ${RUBY} setup.rb config --prefix="${D}"/usr || die
+ ${RUBY} setup.rb install || die
+
+ # install doesn't seem to chmod these correctly, forcing it here
+ SITE_LIB_DIR=$(ruby_rbconfig_value 'sitelibdir')
+ chmod +x "${D}"/${SITE_LIB_DIR}/gorg/cgi-bin/*.cgi
+ chmod +x "${D}"/${SITE_LIB_DIR}/gorg/fcgi-bin/*.fcgi
+}
+
+all_ruby_install() {
+ keepdir /etc/gorg; insinto /etc/gorg ; doins etc/gorg/*
+ diropts -m0770 -o gorg -g gorg; keepdir /var/cache/gorg
+
+ dodoc Changelog README
+}