unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH 1/4] gnu: Add mlocate.
@ 2016-08-23  6:15 Eric Bavier
  2016-08-23  6:15 ` [PATCH 2/4] gnu: Add steghide Eric Bavier
                   ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Eric Bavier @ 2016-08-23  6:15 UTC (permalink / raw)
  To: guix-devel

From: Eric Bavier <bavier@member.fsf.org>

* gnu/packages/search.scm (mlocate): New variable.
---
 gnu/packages/search.scm | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index 9b01909..9a7bc76 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,7 +19,7 @@
 
 (define-module (gnu packages search)
   #:use-module ((guix licenses)
-                #:select (gpl2+ gpl3+ bsd-3 x11))
+                #:select (gpl2 gpl2+ gpl3+ bsd-3 x11))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
@@ -148,4 +148,27 @@ accounting for new lines and paragraph changes.  It also has robust support
 for parsing HTML files.")
     (license gpl3+)))
 
+(define-public mlocate
+  (package
+    (name "mlocate")
+    (version "0.26")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://fedorahosted.org/releases/m/l/"
+                                  "mlocate/mlocate-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0gi6y52gkakhhlnzy0p6izc36nqhyfx5830qirhvk3qrzrwxyqrh"))))
+    (build-system gnu-build-system)
+    (home-page "https://fedorahosted.org/mlocate/")
+    (synopsis "Locate files on the filesystem")
+    (description
+     "mlocate is a locate/updatedb implementation.  The 'm' stands for
+\"merging\": @code{updatedb} reuses the existing database to avoid rereading
+most of the file system, which makes it faster and does not trash the system
+caches as much.  The locate(1) utility is intended to be completely compatible
+with slocate, and attempts to be compatible to GNU locate when it does not
+conflict with slocate compatibility.")
+    (license gpl2)))
+
 ;;; search.scm ends here
-- 
2.9.2

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/4] gnu: Add steghide.
  2016-08-23  6:15 [PATCH 1/4] gnu: Add mlocate Eric Bavier
@ 2016-08-23  6:15 ` Eric Bavier
  2016-08-23 20:16   ` Leo Famulari
  2016-08-23  6:15 ` [PATCH 3/4] gnu: Add Swish-e Eric Bavier
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 15+ messages in thread
From: Eric Bavier @ 2016-08-23  6:15 UTC (permalink / raw)
  To: guix-devel

From: Eric Bavier <bavier@member.fsf.org>

* gnu/packages/image.scm (steghide): New variable.
* gnu/packages/patches/steghide-fixes.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                              |  1 +
 gnu/packages/image.scm                    | 36 ++++++++++++++++
 gnu/packages/patches/steghide-fixes.patch | 71 +++++++++++++++++++++++++++++++
 3 files changed, 108 insertions(+)
 create mode 100644 gnu/packages/patches/steghide-fixes.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index b8c5378..02a7cc4 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -777,6 +777,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/slim-sigusr1.patch			\
   %D%/packages/patches/slurm-configure-remove-nonfree-contribs.patch \
   %D%/packages/patches/soprano-find-clucene.patch		\
+  %D%/packages/patches/steghide-fixes.patch			\
   %D%/packages/patches/superlu-dist-scotchmetis.patch		\
   %D%/packages/patches/synfig-build-fix.patch			\
   %D%/packages/patches/t1lib-CVE-2010-2642.patch		\
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 7d72492..8d9f5a3 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,10 +34,12 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages mcrypt)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -833,3 +836,36 @@ whether they look alike.  It uses a computational model of the human visual
 system to detect similarities.  This allows it too see beyond irrelevant
 differences in file encoding, image quality, and other small variations.")
     (license license:gpl2+)))
+
+(define-public steghide
+  (package
+    (name "steghide")
+    (version "0.5.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/steghide/steghide/"
+                                  version "/steghide-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "18bxlhbdc3zsmxj84i417xjh0q28kv26q449k23n0a72ldwziix2"))
+              (patches (list (search-patch "steghide-fixes.patch")))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("gettext" ,gnu-gettext)
+       ("libtool" ,libtool)
+       ("perl" ,perl)))                 ;for tests
+    (inputs
+     `(("libmhash" ,libmhash)
+       ("libmcrypt" ,libmcrypt)
+       ("libjpeg" ,libjpeg)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:make-flags '("CXXFLAGS=-fpermissive"))) ;required for MHashPP.cc
+    (home-page "http://steghide.sourceforge.net")
+    (synopsis "Image and audio steganography")
+    (description
+     "Steghide is a steganography program that is able to hide data in various
+kinds of image- and audio-files.  The color- respectivly sample-frequencies
+are not changed thus making the embedding resistant against first-order
+statistical tests.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/patches/steghide-fixes.patch b/gnu/packages/patches/steghide-fixes.patch
new file mode 100644
index 0000000..4e7f447
--- /dev/null
+++ b/gnu/packages/patches/steghide-fixes.patch
@@ -0,0 +1,71 @@
+--- steghide-0.5.1/src/AuData.h
++++ steghide-0.5.1/src/AuData.h
+@@ -26,22 +26,22 @@
+ 
+ // AuMuLawAudioData
+ typedef AudioDataImpl<AuMuLaw,BYTE> AuMuLawAudioData ;
+-inline BYTE AuMuLawAudioData::readValue (BinaryIO* io) const { return (io->read8()) ; }
+-inline void AuMuLawAudioData::writeValue (BinaryIO* io, BYTE v) const { io->write8(v) ; }
++template<> inline BYTE AuMuLawAudioData::readValue (BinaryIO* io) const { return (io->read8()) ; }
++template<> inline void AuMuLawAudioData::writeValue (BinaryIO* io, BYTE v) const { io->write8(v) ; }
+ 
+ // AuPCM8AudioData
+ typedef AudioDataImpl<AuPCM8,SBYTE> AuPCM8AudioData ;
+-inline SBYTE AuPCM8AudioData::readValue (BinaryIO* io) const { return ((SBYTE) io->read8()) ; }
+-inline void AuPCM8AudioData::writeValue (BinaryIO* io, SBYTE v) const { io->write8((BYTE) v) ; }
++template<> inline SBYTE AuPCM8AudioData::readValue (BinaryIO* io) const { return ((SBYTE) io->read8()) ; }
++template<> inline void AuPCM8AudioData::writeValue (BinaryIO* io, SBYTE v) const { io->write8((BYTE) v) ; }
+ 
+ // AuPCM16AudioData
+ typedef AudioDataImpl<AuPCM16,SWORD16> AuPCM16AudioData ;
+-inline SWORD16 AuPCM16AudioData::readValue (BinaryIO* io) const { return ((SWORD16) io->read16_be()) ; }
+-inline void AuPCM16AudioData::writeValue (BinaryIO* io, SWORD16 v) const { io->write16_be((UWORD16) v) ; }
++template<> inline SWORD16 AuPCM16AudioData::readValue (BinaryIO* io) const { return ((SWORD16) io->read16_be()) ; }
++template<> inline void AuPCM16AudioData::writeValue (BinaryIO* io, SWORD16 v) const { io->write16_be((UWORD16) v) ; }
+ 
+ // AuPCM32AudioData
+ typedef AudioDataImpl<AuPCM32,SWORD32> AuPCM32AudioData ;
+-inline SWORD32 AuPCM32AudioData::readValue (BinaryIO* io) const { return ((SWORD32) io->read32_be()) ; }
+-inline void AuPCM32AudioData::writeValue (BinaryIO* io, SWORD32 v) const { io->write32_be((UWORD32) v) ; }
++template<> inline SWORD32 AuPCM32AudioData::readValue (BinaryIO* io) const { return ((SWORD32) io->read32_be()) ; }
++template<> inline void AuPCM32AudioData::writeValue (BinaryIO* io, SWORD32 v) const { io->write32_be((UWORD32) v) ; }
+ 
+ #endif // ndef SH_AUDATA_H
+--- steghide-0.5.1/src/AuSampleValues.cc
++++ steghide-0.5.1/src/AuSampleValues.cc
+@@ -21,17 +21,17 @@
+ #include "AuSampleValues.h"
+ 
+ // AuMuLawSampleValue
+-const BYTE AuMuLawSampleValue::MinValue = 0 ;
+-const BYTE AuMuLawSampleValue::MaxValue = BYTE_MAX ;
++template<> const BYTE AuMuLawSampleValue::MinValue = 0 ;
++template<> const BYTE AuMuLawSampleValue::MaxValue = BYTE_MAX ;
+ 
+ // AuPCM8SampleValue
+-const SBYTE AuPCM8SampleValue::MinValue = SBYTE_MIN ;
+-const SBYTE AuPCM8SampleValue::MaxValue = SBYTE_MAX ;
++template<> const SBYTE AuPCM8SampleValue::MinValue = SBYTE_MIN ;
++template<> const SBYTE AuPCM8SampleValue::MaxValue = SBYTE_MAX ;
+ 
+ // AuPCM16SampleValue
+-const SWORD16 AuPCM16SampleValue::MinValue = SWORD16_MIN ;
+-const SWORD16 AuPCM16SampleValue::MaxValue = SWORD16_MAX ;
++template<> const SWORD16 AuPCM16SampleValue::MinValue = SWORD16_MIN ;
++template<> const SWORD16 AuPCM16SampleValue::MaxValue = SWORD16_MAX ;
+ 
+ // AuPCM32SampleValue
+-const SWORD32 AuPCM32SampleValue::MinValue = SWORD32_MIN ;
+-const SWORD32 AuPCM32SampleValue::MaxValue = SWORD32_MAX ;
++template<> const SWORD32 AuPCM32SampleValue::MinValue = SWORD32_MIN ;
++template<> const SWORD32 AuPCM32SampleValue::MaxValue = SWORD32_MAX ;
+--- steghide-0.5.1/src/Graph.cc
++++ steghide-0.5.1/src/Graph.cc
+@@ -18,6 +18,7 @@
+  *
+  */
+ 
++#include <climits>
+ #include <ctime>
+ #include <list>
+ #include <map>
-- 
2.9.2

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 3/4] gnu: Add Swish-e.
  2016-08-23  6:15 [PATCH 1/4] gnu: Add mlocate Eric Bavier
  2016-08-23  6:15 ` [PATCH 2/4] gnu: Add steghide Eric Bavier
@ 2016-08-23  6:15 ` Eric Bavier
  2016-08-23  6:27   ` Leo Famulari
  2016-08-23  6:15 ` [PATCH 4/4] gnu: Add Tomb Eric Bavier
  2016-08-23 20:12 ` [PATCH 1/4] gnu: Add mlocate Leo Famulari
  3 siblings, 1 reply; 15+ messages in thread
From: Eric Bavier @ 2016-08-23  6:15 UTC (permalink / raw)
  To: guix-devel

From: Eric Bavier <bavier@member.fsf.org>

* 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		\
   %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-search.patch b/gnu/packages/patches/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	
++++ a/src/compress.c	
+@@ -995,7 +995,7 @@ void    remove_worddata_longs(unsigned char *worddata,int *sz_worddata)
+             progerr("Internal error in remove_worddata_longs");
+ 
+         /* dst may be smaller than src. So move the data */
+-        memcpy(dst,src,data_len);
++        memmove(dst,src,data_len);
+ 
+         /* Increase pointers */
+         src += data_len;
+--- a/src/headers.c	
++++ a/src/headers.c	
+@@ -280,7 +280,7 @@ static SWISH_HEADER_VALUE fetch_single_header( IndexFILE *indexf, HEADER_MAP *he
+ 
+         case SWISH_NUMBER:
+         case SWISH_BOOL:
+-            value.number = *(unsigned long *) data_pointer;
++            value.number = *(unsigned int *) data_pointer;
+ 
+             /* $$$ Ugly hack alert! */
+             /* correct for removed files */
+--- a/src/swishspider	
++++ a/src/swishspider	
+@@ -27,6 +27,7 @@ use LWP::UserAgent;
+ use HTTP::Status;
+ use HTML::Parser 3.00;
+ use HTML::LinkExtor;
++use Encode;
+ 
+     if (scalar(@ARGV) != 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 = 1;
+ 
+-    $p->parse( $$content_ref );
++    $p->parse( decode_utf8 $$content_ref );
+     close( LINKS );
+ 
+     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))
 
 (define-public xapian
   (package
@@ -171,4 +175,65 @@ with slocate, and attempts to be compatible to GNU locate when it does not
 conflict with slocate compatibility.")
     (license gpl2)))
 
+(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/pool/"
+                                        "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_perl"))
+                                     ;; These perl modules have no propagated
+                                     ;; inputs, so no further analysis needed.
+                                     '("perl-uri"
+                                       "perl-html-parser"
+                                       "perl-html-tagset"
+                                       "perl-mime-types")))))
+                         (list (string-append out "/lib/swish-e/swishspider")
+                               (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
-- 
2.9.2

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 4/4] gnu: Add Tomb.
  2016-08-23  6:15 [PATCH 1/4] gnu: Add mlocate Eric Bavier
  2016-08-23  6:15 ` [PATCH 2/4] gnu: Add steghide Eric Bavier
  2016-08-23  6:15 ` [PATCH 3/4] gnu: Add Swish-e Eric Bavier
@ 2016-08-23  6:15 ` Eric Bavier
  2016-08-23 20:50   ` Leo Famulari
  2016-08-23 20:12 ` [PATCH 1/4] gnu: Add mlocate Leo Famulari
  3 siblings, 1 reply; 15+ messages in thread
From: Eric Bavier @ 2016-08-23  6:15 UTC (permalink / raw)
  To: guix-devel

From: Eric Bavier <bavier@member.fsf.org>

* gnu/packages/crypto.scm (tomb): New variable.
---
 gnu/packages/crypto.scm | 60 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 7d61164..ea2d58a 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox>
 ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,9 +23,13 @@
 
 (define-module (gnu packages crypto)
   #:use-module (gnu packages)
+  #:use-module (gnu packages aidc)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages cryptsetup)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages libbsd)
   #:use-module (gnu packages linux)
@@ -32,8 +37,10 @@
   #:use-module (gnu packages password-utils)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages search)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages zsh)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -223,3 +230,56 @@ to provide security against off-line attacks, such as a drive falling into
 the wrong hands.")
     (license (list license:lgpl3+                 ;encfs library
                    license:gpl3+))))              ;command-line tools
+
+(define-public tomb
+  (package
+    (name "tomb")
+    (version "2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://files.dyne.org/tomb/"
+                                  "tomb-" version ".tar.gz"))
+              (sha256
+               (base32
+                "11msj38fdmymiqcmwq1883kjqi5zr01ybdjj58rfjjrw4zw2w5y0"))))
+    (build-system gnu-build-system)
+    (inputs                   ;users should install their preferred pinentry-*
+     `(("zsh" ,zsh)
+       ("gnupg" ,gnupg)
+       ("cryptsetup" ,cryptsetup)
+       ("gettext" ,gnu-gettext)         ;used at runtime
+       ("mlocate" ,mlocate)
+       ("qrencode" ,qrencode)
+       ("steghide" ,steghide)
+       ("swish-e" ,swish-e)))
+    (arguments
+     `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:tests? #f                      ;requires root
+       ;; TODO: Build and install gtk and qt trays
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)   ;no configuration to be done
+         (add-after 'install 'i18n
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (zero? (apply system*
+                           "make" "-C" "extras/translations"
+                           "install" make-flags))))
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/tomb")
+                 `("PATH" ":" prefix
+                   (,(string-append (assoc-ref inputs "mlocate") "/bin")
+                    ,@(map (lambda (program)
+                             (or (and=> (which program) dirname)
+                                 (error "program not found:" program)))
+                           '("gpg" "cryptsetup" "gettext"
+                             "qrencode" "steghide" "swish-e")))))
+               #t))))))
+    (home-page "http://www.dyne.org/software/tomb")
+    (synopsis "File encryption for secret data")
+    (description
+     "Tomb is an application to manage the creation and access of encrypted
+storage files: it can be operated from commandline and it can integrate with a
+user's graphical desktop.")
+    (license license:gpl3+)))
-- 
2.9.2

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/4] gnu: Add Swish-e.
  2016-08-23  6:15 ` [PATCH 3/4] gnu: Add Swish-e Eric Bavier
@ 2016-08-23  6:27   ` Leo Famulari
  2016-08-23  6:49     ` Eric Bavier
  0 siblings, 1 reply; 15+ messages in thread
From: Leo Famulari @ 2016-08-23  6:27 UTC (permalink / raw)
  To: Eric Bavier; +Cc: guix-devel

On Tue, Aug 23, 2016 at 01:15:11AM -0500, Eric Bavier wrote:
> From: Eric Bavier <bavier@member.fsf.org>
> 
> * 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.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/4] gnu: Add Swish-e.
  2016-08-23  6:27   ` Leo Famulari
@ 2016-08-23  6:49     ` Eric Bavier
  2016-08-23 20:46       ` Leo Famulari
  0 siblings, 1 reply; 15+ messages in thread
From: Eric Bavier @ 2016-08-23  6:49 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1237 bytes --]

On Tue, 23 Aug 2016 02:27:26 -0400
Leo Famulari <leo@famulari.name> wrote:

> On Tue, Aug 23, 2016 at 01:15:11AM -0500, Eric Bavier wrote:
> > From: Eric Bavier <bavier@member.fsf.org>
> > 
> > * 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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0003-gnu-Add-Swish-e.patch --]
[-- Type: text/x-patch, Size: 8526 bytes --]

From 365fa64bb0ae6a249ad7ca3218bb008eab9a9577 Mon Sep 17 00:00:00 2001
From: Eric Bavier <bavier@member.fsf.org>
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 =						\
   %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/packages/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);
+ }
+ 
+ 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);
+ }
+ 
+ 
+--- 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 = (char *) emalloc(MAXWORDLEN + 1);
+             n = strftime(s, (size_t) MAXWORDLEN, fmt, localtime(&(pv->value.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/patches/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	
++++ a/src/compress.c	
+@@ -995,7 +995,7 @@ void    remove_worddata_longs(unsigned char *worddata,int *sz_worddata)
+             progerr("Internal error in remove_worddata_longs");
+ 
+         /* dst may be smaller than src. So move the data */
+-        memcpy(dst,src,data_len);
++        memmove(dst,src,data_len);
+ 
+         /* Increase pointers */
+         src += data_len;
+--- a/src/headers.c	
++++ a/src/headers.c	
+@@ -280,7 +280,7 @@ static SWISH_HEADER_VALUE fetch_single_header( IndexFILE *indexf, HEADER_MAP *he
+ 
+         case SWISH_NUMBER:
+         case SWISH_BOOL:
+-            value.number = *(unsigned long *) data_pointer;
++            value.number = *(unsigned int *) data_pointer;
+ 
+             /* $$$ Ugly hack alert! */
+             /* correct for removed files */
+--- a/src/swishspider	
++++ a/src/swishspider	
+@@ -27,6 +27,7 @@ use LWP::UserAgent;
+ use HTTP::Status;
+ use HTML::Parser 3.00;
+ use HTML::LinkExtor;
++use Encode;
+ 
+     if (scalar(@ARGV) != 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 = 1;
+ 
+-    $p->parse( $$content_ref );
++    $p->parse( decode_utf8 $$content_ref );
+     close( LINKS );
+ 
+     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))
 
 (define-public xapian
   (package
@@ -171,4 +175,65 @@ with slocate, and attempts to be compatible to GNU locate when it does not
 conflict with slocate compatibility.")
     (license gpl2)))
 
+(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/pool/"
+                                        "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_perl"))
+                                     ;; These perl modules have no propagated
+                                     ;; inputs, so no further analysis needed.
+                                     '("perl-uri"
+                                       "perl-html-parser"
+                                       "perl-html-tagset"
+                                       "perl-mime-types")))))
+                         (list (string-append out "/lib/swish-e/swishspider")
+                               (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
-- 
2.9.2


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/4] gnu: Add mlocate.
  2016-08-23  6:15 [PATCH 1/4] gnu: Add mlocate Eric Bavier
                   ` (2 preceding siblings ...)
  2016-08-23  6:15 ` [PATCH 4/4] gnu: Add Tomb Eric Bavier
@ 2016-08-23 20:12 ` Leo Famulari
  3 siblings, 0 replies; 15+ messages in thread
From: Leo Famulari @ 2016-08-23 20:12 UTC (permalink / raw)
  To: Eric Bavier; +Cc: guix-devel

On Tue, Aug 23, 2016 at 01:15:09AM -0500, Eric Bavier wrote:
> From: Eric Bavier <bavier@member.fsf.org>
> 
> * gnu/packages/search.scm (mlocate): New variable.

LGTM

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/4] gnu: Add steghide.
  2016-08-23  6:15 ` [PATCH 2/4] gnu: Add steghide Eric Bavier
@ 2016-08-23 20:16   ` Leo Famulari
  2016-08-23 22:19     ` Eric Bavier
  0 siblings, 1 reply; 15+ messages in thread
From: Leo Famulari @ 2016-08-23 20:16 UTC (permalink / raw)
  To: Eric Bavier; +Cc: guix-devel

On Tue, Aug 23, 2016 at 01:15:10AM -0500, Eric Bavier wrote:
> * gnu/packages/image.scm (steghide): New variable.
> * gnu/packages/patches/steghide-fixes.patch: New patch.
> * gnu/local.mk (dist_patch_DATA): Add it.

> +    (arguments
> +     `(#:make-flags '("CXXFLAGS=-fpermissive"))) ;required for MHashPP.cc

My understanding is that '-fpermissive' downgrades some compiler errors
to warnings. Is that correct?

> diff --git a/gnu/packages/patches/steghide-fixes.patch b/gnu/packages/patches/steghide-fixes.patch

I don't understand what this patch does (I don't know any C++). Can you
add some comments explaining it? Should we try to get the upstream
maintainers to apply it?  

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/4] gnu: Add Swish-e.
  2016-08-23  6:49     ` Eric Bavier
@ 2016-08-23 20:46       ` Leo Famulari
  2016-08-23 22:34         ` Eric Bavier
  0 siblings, 1 reply; 15+ messages in thread
From: Leo Famulari @ 2016-08-23 20:46 UTC (permalink / raw)
  To: Eric Bavier; +Cc: guix-devel

On Tue, Aug 23, 2016 at 01:49:12AM -0500, Eric Bavier wrote:
> * 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.

It would be ideal to present these patches to the upstream maintainers,
but their site is offline. Do we know if the project is still active?

> diff --git a/gnu/packages/patches/swish-e-format-security.patch b/gnu/packages/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);
> + }
> + 
> + 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);
> + }

My understanding is that xmlParserWarning() is from libxml2, defined in
'xmlerror.h' like this:

XMLPUBFUN void XMLCDECL
    xmlParserWarning            (void *ctx,
                                 const char *msg,
                                 ...) LIBXML_ATTR_FORMAT(2,3);

I don't understand this definition very much, but in libxml2 file
'xmlversion.h', LIBXML_ATTR_FORMAT is commented with "Macro used to
indicate to GCC the parameter are printf like".

Somebody else should review this.

> +--- 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 = (char *) emalloc(MAXWORDLEN + 1);
> +             n = strftime(s, (size_t) MAXWORDLEN, fmt, localtime(&(pv->value.v_date)));
> +             if (n && f)
> +-                fprintf(f, s);
> ++                fprintf(f, "%s", s);

LGTM

> diff --git a/gnu/packages/patches/swish-e-search.patch b/gnu/packages/patches/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

The site is offline, but I found it on archive.org:
https://web.archive.org/web/20150907203848/http://www.swish-e.org/archive/2015-09/13295.html

Interestingly, I'm a few blocks the patch author's office :)

As far as I can tell, nobody from swish-e ever replied.

> +
> +--- a/src/compress.c	
> ++++ a/src/compress.c	
> +@@ -995,7 +995,7 @@ void    remove_worddata_longs(unsigned char *worddata,int *sz_worddata)
> +             progerr("Internal error in remove_worddata_longs");
> + 
> +         /* dst may be smaller than src. So move the data */
> +-        memcpy(dst,src,data_len);
> ++        memmove(dst,src,data_len);

LGTM

> + 
> +         /* Increase pointers */
> +         src += data_len;
> +--- a/src/headers.c	
> ++++ a/src/headers.c	
> +@@ -280,7 +280,7 @@ static SWISH_HEADER_VALUE fetch_single_header( IndexFILE *indexf, HEADER_MAP *he
> + 
> +         case SWISH_NUMBER:
> +         case SWISH_BOOL:
> +-            value.number = *(unsigned long *) data_pointer;
> ++            value.number = *(unsigned int *) data_pointer;

Could there be any risk in reducing the size of the variable like this?

> + 
> +             /* $$$ Ugly hack alert! */
> +             /* correct for removed files */
> +--- a/src/swishspider	
> ++++ a/src/swishspider	
> +@@ -27,6 +27,7 @@ use LWP::UserAgent;
> + use HTTP::Status;
> + use HTML::Parser 3.00;
> + use HTML::LinkExtor;
> ++use Encode;
> + 
> +     if (scalar(@ARGV) != 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 = 1;
> + 
> +-    $p->parse( $$content_ref );
> ++    $p->parse( decode_utf8 $$content_ref );

Can you explain why we need this?

> +(define-public swish-e

The package definition LGTM. I did not try to build it.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4/4] gnu: Add Tomb.
  2016-08-23  6:15 ` [PATCH 4/4] gnu: Add Tomb Eric Bavier
@ 2016-08-23 20:50   ` Leo Famulari
  2016-08-23 22:41     ` Eric Bavier
  0 siblings, 1 reply; 15+ messages in thread
From: Leo Famulari @ 2016-08-23 20:50 UTC (permalink / raw)
  To: Eric Bavier; +Cc: guix-devel

On Tue, Aug 23, 2016 at 01:15:12AM -0500, Eric Bavier wrote:
> +    (inputs                   ;users should install their preferred pinentry-*
> +     `(("zsh" ,zsh)

Does it really need the zsh shell?

> +       #:tests? #f                      ;requires root

Too bad :/ A program like this should be tested.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/4] gnu: Add steghide.
  2016-08-23 20:16   ` Leo Famulari
@ 2016-08-23 22:19     ` Eric Bavier
  2016-08-23 23:53       ` Leo Famulari
  0 siblings, 1 reply; 15+ messages in thread
From: Eric Bavier @ 2016-08-23 22:19 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

On Tue, 23 Aug 2016 16:16:11 -0400
Leo Famulari <leo@famulari.name> wrote:

> On Tue, Aug 23, 2016 at 01:15:10AM -0500, Eric Bavier wrote:
> > * gnu/packages/image.scm (steghide): New variable.
> > * gnu/packages/patches/steghide-fixes.patch: New patch.
> > * gnu/local.mk (dist_patch_DATA): Add it.  
> 
> > +    (arguments
> > +     `(#:make-flags '("CXXFLAGS=-fpermissive"))) ;required for MHashPP.cc  
> 
> My understanding is that '-fpermissive' downgrades some compiler errors
> to warnings. Is that correct?

Correct.  Specifically, this is to avoid:

MHashPP.cc:123:38: error: invalid conversion from ‘uint8_t* {aka unsigned char*}’ to ‘char*’ [-fpermissive]

which I'm not comfortable developing a better fix for.

> 
> > diff --git a/gnu/packages/patches/steghide-fixes.patch b/gnu/packages/patches/steghide-fixes.patch  
> 
> I don't understand what this patch does (I don't know any C++). Can you
> add some comments explaining it? Should we try to get the upstream
> maintainers to apply it?  

This patch fixes an "undefined ULONG_MAX" error and "specializing
member ‘...’ requires ‘template<>’ syntax" errors.

Upstream appears to currently be in limbo, but I just sent the patch to
the mailing list.

`~Eric

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/4] gnu: Add Swish-e.
  2016-08-23 20:46       ` Leo Famulari
@ 2016-08-23 22:34         ` Eric Bavier
  0 siblings, 0 replies; 15+ messages in thread
From: Eric Bavier @ 2016-08-23 22:34 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

On Tue, 23 Aug 2016 16:46:51 -0400
Leo Famulari <leo@famulari.name> wrote:

> On Tue, Aug 23, 2016 at 01:49:12AM -0500, Eric Bavier wrote:
> > * 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.  
> 
> It would be ideal to present these patches to the upstream maintainers,
> but their site is offline. Do we know if the project is still active?

The last active maintainer stepped out a while ago, and it seems no one
else has stepped up:
https://web.archive.org/web/20150908004634/http://www.swish-e.org/archive/2014-04/13214.html

> 
> > diff --git a/gnu/packages/patches/swish-e-format-security.patch b/gnu/packages/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);
> > + }
> > + 
> > + 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);
> > + }  
> 
> My understanding is that xmlParserWarning() is from libxml2, defined in
> 'xmlerror.h' like this:
> 
> XMLPUBFUN void XMLCDECL
>     xmlParserWarning            (void *ctx,
>                                  const char *msg,
>                                  ...) LIBXML_ATTR_FORMAT(2,3);
> 
> I don't understand this definition very much, but in libxml2 file
> 'xmlversion.h', LIBXML_ATTR_FORMAT is commented with "Macro used to
> indicate to GCC the parameter are printf like".
> 
> Somebody else should review this.
> 
> > +--- 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 = (char *) emalloc(MAXWORDLEN + 1);
> > +             n = strftime(s, (size_t) MAXWORDLEN, fmt, localtime(&(pv->value.v_date)));
> > +             if (n && f)
> > +-                fprintf(f, s);
> > ++                fprintf(f, "%s", s);  
> 
> LGTM
> 
> > diff --git a/gnu/packages/patches/swish-e-search.patch b/gnu/packages/patches/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  
> 
> The site is offline, but I found it on archive.org:
> https://web.archive.org/web/20150907203848/http://www.swish-e.org/archive/2015-09/13295.html
> 
> Interestingly, I'm a few blocks the patch author's office :)
> 
> As far as I can tell, nobody from swish-e ever replied.

AFAICT that right.

> 
> > +
> > +--- a/src/compress.c	
> > ++++ a/src/compress.c	
> > +@@ -995,7 +995,7 @@ void    remove_worddata_longs(unsigned char *worddata,int *sz_worddata)
> > +             progerr("Internal error in remove_worddata_longs");
> > + 
> > +         /* dst may be smaller than src. So move the data */
> > +-        memcpy(dst,src,data_len);
> > ++        memmove(dst,src,data_len);  
> 
> LGTM
> 
> > + 
> > +         /* Increase pointers */
> > +         src += data_len;
> > +--- a/src/headers.c	
> > ++++ a/src/headers.c	
> > +@@ -280,7 +280,7 @@ static SWISH_HEADER_VALUE fetch_single_header( IndexFILE *indexf, HEADER_MAP *he
> > + 
> > +         case SWISH_NUMBER:
> > +         case SWISH_BOOL:
> > +-            value.number = *(unsigned long *) data_pointer;
> > ++            value.number = *(unsigned int *) data_pointer;  
> 
> Could there be any risk in reducing the size of the variable like this?

Assuming the value is indeed a boolean, probably not.

> 
> > + 
> > +             /* $$$ Ugly hack alert! */
> > +             /* correct for removed files */
> > +--- a/src/swishspider	
> > ++++ a/src/swishspider	
> > +@@ -27,6 +27,7 @@ use LWP::UserAgent;
> > + use HTTP::Status;
> > + use HTML::Parser 3.00;
> > + use HTML::LinkExtor;
> > ++use Encode;
> > + 
> > +     if (scalar(@ARGV) != 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 = 1;
> > + 
> > +-    $p->parse( $$content_ref );
> > ++    $p->parse( decode_utf8 $$content_ref );  
> 
> Can you explain why we need this?

Presumably to better handle utf8-encoded input.

Tomb developers have expressed interest in replacing their use of
swish-e with the "Recoll" search tool
https://github.com/dyne/Tomb/issues/211.  If maintenance of this
package turns out to be burdensome, we might be able to drop it.

Thanks for reviewing,

`~Eric

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4/4] gnu: Add Tomb.
  2016-08-23 20:50   ` Leo Famulari
@ 2016-08-23 22:41     ` Eric Bavier
  2016-08-23 23:50       ` Leo Famulari
  0 siblings, 1 reply; 15+ messages in thread
From: Eric Bavier @ 2016-08-23 22:41 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

On Tue, 23 Aug 2016 16:50:59 -0400
Leo Famulari <leo@famulari.name> wrote:

> On Tue, Aug 23, 2016 at 01:15:12AM -0500, Eric Bavier wrote:
> > +    (inputs                   ;users should install their preferred pinentry-*
> > +     `(("zsh" ,zsh)  
> 
> Does it really need the zsh shell?

Yes, "bin/tomb" is a Zsh script.

> 
> > +       #:tests? #f                      ;requires root  
> 
> Too bad :/ A program like this should be tested.

I've tested most functionality manually.  But there is no way to get
root in the build environment.  There may be some sanity tests that
could be performed in a custom 'check phase, checks that don't need
root.

`~Eric

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4/4] gnu: Add Tomb.
  2016-08-23 22:41     ` Eric Bavier
@ 2016-08-23 23:50       ` Leo Famulari
  0 siblings, 0 replies; 15+ messages in thread
From: Leo Famulari @ 2016-08-23 23:50 UTC (permalink / raw)
  To: Eric Bavier; +Cc: guix-devel

On Tue, Aug 23, 2016 at 05:41:27PM -0500, Eric Bavier wrote:
> On Tue, 23 Aug 2016 16:50:59 -0400
> Leo Famulari <leo@famulari.name> wrote:
> 
> > On Tue, Aug 23, 2016 at 01:15:12AM -0500, Eric Bavier wrote:
> > > +    (inputs                   ;users should install their preferred pinentry-*
> > > +     `(("zsh" ,zsh)  
> > 
> > Does it really need the zsh shell?
> 
> Yes, "bin/tomb" is a Zsh script.

Wow, interesting. I will read it (not as part of patch review).

> 
> > 
> > > +       #:tests? #f                      ;requires root  
> > 
> > Too bad :/ A program like this should be tested.
> 
> I've tested most functionality manually.  But there is no way to get
> root in the build environment.  There may be some sanity tests that
> could be performed in a custom 'check phase, checks that don't need
> root.

Yes, there may be. I don't think it's a blocker, however.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/4] gnu: Add steghide.
  2016-08-23 22:19     ` Eric Bavier
@ 2016-08-23 23:53       ` Leo Famulari
  0 siblings, 0 replies; 15+ messages in thread
From: Leo Famulari @ 2016-08-23 23:53 UTC (permalink / raw)
  To: Eric Bavier; +Cc: guix-devel

On Tue, Aug 23, 2016 at 05:19:49PM -0500, Eric Bavier wrote:
> On Tue, 23 Aug 2016 16:16:11 -0400
> Leo Famulari <leo@famulari.name> wrote:
> > My understanding is that '-fpermissive' downgrades some compiler errors
> > to warnings. Is that correct?
> 
> Correct.  Specifically, this is to avoid:
> 
> MHashPP.cc:123:38: error: invalid conversion from ‘uint8_t* {aka unsigned char*}’ to ‘char*’ [-fpermissive]
> 
> which I'm not comfortable developing a better fix for.

Okay. Can you mention that specific error in a code comment? It seems
like valuable information to me.

> 
> > 
> > > diff --git a/gnu/packages/patches/steghide-fixes.patch b/gnu/packages/patches/steghide-fixes.patch  
> > 
> > I don't understand what this patch does (I don't know any C++). Can you
> > add some comments explaining it? Should we try to get the upstream
> > maintainers to apply it?  
> 
> This patch fixes an "undefined ULONG_MAX" error and "specializing
> member ‘...’ requires ‘template<>’ syntax" errors.
> 
> Upstream appears to currently be in limbo, but I just sent the patch to
> the mailing list.

Okay, maybe wait a couple days in case they respond?

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2016-08-23 23:53 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-23  6:15 [PATCH 1/4] gnu: Add mlocate Eric Bavier
2016-08-23  6:15 ` [PATCH 2/4] gnu: Add steghide Eric Bavier
2016-08-23 20:16   ` Leo Famulari
2016-08-23 22:19     ` Eric Bavier
2016-08-23 23:53       ` Leo Famulari
2016-08-23  6:15 ` [PATCH 3/4] gnu: Add Swish-e Eric Bavier
2016-08-23  6:27   ` Leo Famulari
2016-08-23  6:49     ` Eric Bavier
2016-08-23 20:46       ` Leo Famulari
2016-08-23 22:34         ` Eric Bavier
2016-08-23  6:15 ` [PATCH 4/4] gnu: Add Tomb Eric Bavier
2016-08-23 20:50   ` Leo Famulari
2016-08-23 22:41     ` Eric Bavier
2016-08-23 23:50       ` Leo Famulari
2016-08-23 20:12 ` [PATCH 1/4] gnu: Add mlocate Leo Famulari

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).