From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Bavier Subject: Re: [PATCH 3/4] gnu: Add Swish-e. Date: Tue, 23 Aug 2016 01:49:12 -0500 Message-ID: <20160823014912.1f80a48d@openmailbox.org> References: <20160823061512.13024-1-ericbavier@openmailbox.org> <20160823061512.13024-3-ericbavier@openmailbox.org> <20160823062726.GA6297@jasmine> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/yQPQa36MwdCJ=hP=w.DRRNc" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:45367) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bc5WY-0006go-G4 for guix-devel@gnu.org; Tue, 23 Aug 2016 02:49:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bc5WT-0004Db-KU for guix-devel@gnu.org; Tue, 23 Aug 2016 02:49:25 -0400 Received: from mail.openmailbox.org ([62.4.1.34]:53393) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bc5WT-0004DV-97 for guix-devel@gnu.org; Tue, 23 Aug 2016 02:49:21 -0400 In-Reply-To: <20160823062726.GA6297@jasmine> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Leo Famulari Cc: guix-devel@gnu.org --MP_/yQPQa36MwdCJ=hP=w.DRRNc Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline On Tue, 23 Aug 2016 02:27:26 -0400 Leo Famulari wrote: > On Tue, Aug 23, 2016 at 01:15:11AM -0500, Eric Bavier wrote: > > From: Eric Bavier > > > > * gnu/packages/search.scm (swish-e): New variable. > > * gnu/packages/patches/swish-e-search.patch: New patch. > > * gnu/local.mk (dist_patch_DATA): Add it. > > --- > > gnu/local.mk | 2 + > > gnu/packages/patches/swish-e-search.patch | 43 ++++++++++++++++++++ > > gnu/packages/search.scm | 67 ++++++++++++++++++++++++++++++- > > 3 files changed, 111 insertions(+), 1 deletion(-) > > create mode 100644 gnu/packages/patches/swish-e-search.patch > > > > diff --git a/gnu/local.mk b/gnu/local.mk > > index 02a7cc4..59f22d4 100644 > > --- a/gnu/local.mk > > +++ b/gnu/local.mk > > @@ -779,6 +779,8 @@ dist_patch_DATA = \ > > %D%/packages/patches/soprano-find-clucene.patch \ > > %D%/packages/patches/steghide-fixes.patch \ > > %D%/packages/patches/superlu-dist-scotchmetis.patch \ > > + %D%/packages/patches/swish-e-search.patch \ > > + %D%/packages/patches/swish-e-format-security.patch \ > > This patch seems to be missing. Indeed. Updated patch attached. `~Eric --MP_/yQPQa36MwdCJ=hP=w.DRRNc Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0003-gnu-Add-Swish-e.patch =46rom 365fa64bb0ae6a249ad7ca3218bb008eab9a9577 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 18 May 2016 01:02:02 -0500 Subject: [PATCH 3/4] gnu: Add Swish-e. * gnu/packages/search.scm (swish-e): New variable. * gnu/packages/patches/swish-e-search.patch, gnu/packages/patches/swish-e-format-security.patch: New patches. * gnu/local.mk (dist_patch_DATA): Add them. --- gnu/local.mk | 2 + gnu/packages/patches/swish-e-format-security.patch | 33 +++++++++++ gnu/packages/patches/swish-e-search.patch | 43 ++++++++++++++ gnu/packages/search.scm | 67 ++++++++++++++++++= +++- 4 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/swish-e-format-security.patch create mode 100644 gnu/packages/patches/swish-e-search.patch diff --git a/gnu/local.mk b/gnu/local.mk index 02a7cc4..59f22d4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -779,6 +779,8 @@ dist_patch_DATA =3D \ %D%/packages/patches/soprano-find-clucene.patch \ %D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/superlu-dist-scotchmetis.patch \ + %D%/packages/patches/swish-e-search.patch \ + %D%/packages/patches/swish-e-format-security.patch \ %D%/packages/patches/synfig-build-fix.patch \ %D%/packages/patches/t1lib-CVE-2010-2642.patch \ %D%/packages/patches/t1lib-CVE-2011-0764.patch \ diff --git a/gnu/packages/patches/swish-e-format-security.patch b/gnu/packa= ges/patches/swish-e-format-security.patch new file mode 100644 index 0000000..be9d7cb --- /dev/null +++ b/gnu/packages/patches/swish-e-format-security.patch @@ -0,0 +1,33 @@ +Borrowed from Debian. + +--- swish-e-2.4.7/src/parser.c 2009-04-05 03:58:32.000000000 +0200 ++++ swish-e-2.4.7/src/parser.c 2013-06-11 13:53:08.196559035 +0200 +@@ -1760,7 +1760,7 @@ + va_start(args, msg); + vsnprintf(str, 1000, msg, args ); + va_end(args); +- xmlParserError(parse_data->ctxt, str); ++ xmlParserError(parse_data->ctxt, "%s", str); + } +=20 + static void warning(void *data, const char *msg, ...) +@@ -1772,7 +1772,7 @@ + va_start(args, msg); + vsnprintf(str, 1000, msg, args ); + va_end(args); +- xmlParserWarning(parse_data->ctxt, str); ++ xmlParserWarning(parse_data->ctxt, "%s", str); + } +=20 +=20 +--- swish-e-2.4.7/src/result_output.c 2009-04-05 03:58:32.000000000 +0200 ++++ swish-e-2.4.7/src/result_output.c 2013-06-11 13:53:38.593550825 +0200 +@@ -752,7 +752,7 @@ + s =3D (char *) emalloc(MAXWORDLEN + 1); + n =3D strftime(s, (size_t) MAXWORDLEN, fmt, localtime(&(pv->v= alue.v_date))); + if (n && f) +- fprintf(f, s); ++ fprintf(f, "%s", s); + efree(s); + } + break; diff --git a/gnu/packages/patches/swish-e-search.patch b/gnu/packages/patch= es/swish-e-search.patch new file mode 100644 index 0000000..2a57a31 --- /dev/null +++ b/gnu/packages/patches/swish-e-search.patch @@ -0,0 +1,43 @@ +From http://swish-e.org/archive/2015-09/13295.html + +--- a/src/compress.c=09 ++++ a/src/compress.c=09 +@@ -995,7 +995,7 @@ void remove_worddata_longs(unsigned char *worddata,= int *sz_worddata) + progerr("Internal error in remove_worddata_longs"); +=20 + /* dst may be smaller than src. So move the data */ +- memcpy(dst,src,data_len); ++ memmove(dst,src,data_len); +=20 + /* Increase pointers */ + src +=3D data_len; +--- a/src/headers.c=09 ++++ a/src/headers.c=09 +@@ -280,7 +280,7 @@ static SWISH_HEADER_VALUE fetch_single_header( IndexFI= LE *indexf, HEADER_MAP *he +=20 + case SWISH_NUMBER: + case SWISH_BOOL: +- value.number =3D *(unsigned long *) data_pointer; ++ value.number =3D *(unsigned int *) data_pointer; +=20 + /* $$$ Ugly hack alert! */ + /* correct for removed files */ +--- a/src/swishspider=09 ++++ a/src/swishspider=09 +@@ -27,6 +27,7 @@ use LWP::UserAgent; + use HTTP::Status; + use HTML::Parser 3.00; + use HTML::LinkExtor; ++use Encode; +=20 + if (scalar(@ARGV) !=3D 2) { + print STDERR "Usage: $0 localpath url\n"; +@@ -94,7 +95,7 @@ use HTML::LinkExtor; + # Don't allow links above the base + $URI::ABS_REMOTE_LEADING_DOTS =3D 1; +=20 +- $p->parse( $$content_ref ); ++ $p->parse( decode_utf8 $$content_ref ); + close( LINKS ); +=20 + exit; diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index 9a7bc76..60f902f 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -23,10 +23,14 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) + #:use-module (gnu packages) #:use-module (gnu packages compression) #:use-module (gnu packages check) #:use-module (gnu packages databases) - #:use-module (gnu packages linux)) + #:use-module (gnu packages linux) + #:use-module (gnu packages perl) + #:use-module (gnu packages web) + #:use-module (gnu packages xml)) =20 (define-public xapian (package @@ -171,4 +175,65 @@ with slocate, and attempts to be compatible to GNU loc= ate when it does not conflict with slocate compatibility.") (license gpl2))) =20 +(define-public swish-e + (package + (name "swish-e") + (version "2.4.7") + (source (origin + (method url-fetch) + (uri (list (string-append "http://swish-e.org/distribution/" + "swish-e-" version ".tar.gz") + ;; The upstream swish-e.org appears to be down...= so + ;; use debian's copy as a fallback. + (string-append "http://http.debian.net/debian/poo= l/" + "main/s/swish-e/swish-e_" version + ".orig.tar.gz"))) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0qkrk7z25yp9hynj21vxkyn7yi8gcagcfxnass5cgczcz0gm9pax")) + (patches (search-patches "swish-e-search.patch" + "swish-e-format-security.patch")))) + (build-system gnu-build-system) + ;; Several other packages and perl modules may be installed alongside + ;; swish-e to extend its features at runtime, but are not required for + ;; building: xpdf, catdoc, MP3::Tag, Spreadsheet::ParseExcel, + ;; HTML::Entities. + (inputs + `(("libxml" ,libxml2) + ("zlib" ,zlib) + ("perl" ,perl) + ("perl-uri" ,perl-uri) + ("perl-html-parser" ,perl-html-parser) + ("perl-html-tagset" ,perl-html-tagset) + ("perl-mime-types" ,perl-mime-types))) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'install 'wrap-programs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (for-each + (lambda (program) + (wrap-program program + `("PERL5LIB" ":" prefix + ,(map (lambda (i) + (string-append (assoc-ref inputs i) + "/lib/perl5/site_per= l")) + ;; These perl modules have no propaga= ted + ;; inputs, so no further analysis nee= ded. + '("perl-uri" + "perl-html-parser" + "perl-html-tagset" + "perl-mime-types"))))) + (list (string-append out "/lib/swish-e/swishspide= r") + (string-append out "/bin/swish-filter-test"= ))) + #t)))))) + (home-page "http://swish-e.org") + (synopsis "Web indexing system") + (description + "Swish-e is Simple Web Indexing System for Humans - Enhanced. Swish-e +can quickly and easily index directories of files or remote web sites and +search the generated indexes.") + (license gpl2+))) ;with exception + ;;; search.scm ends here --=20 2.9.2 --MP_/yQPQa36MwdCJ=hP=w.DRRNc--