all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [PATCH] gnu: Add 4store.
@ 2016-03-23 14:09 Roel Janssen
  2016-03-28 16:16 ` Leo Famulari
  0 siblings, 1 reply; 8+ messages in thread
From: Roel Janssen @ 2016-03-23 14:09 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: 0001-gnu-Add-4store.patch --]
[-- Type: text/x-patch, Size: 6498 bytes --]

From 2366fd58893547e4db6e4350a643a44c056e0902 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Wed, 23 Mar 2016 14:58:37 +0100
Subject: [PATCH] gnu: Add 4store.

* gnu/packages/databases.scm (4store): New variable.
* gnu/packages/patches/4store-fix-buildsystem.patch: New file.
* gnu-system.am (dist_patch_DATA): Add patch file entry.
---
 gnu-system.am                                     |  1 +
 gnu/packages/databases.scm                        | 53 +++++++++++++++++++++
 gnu/packages/patches/4store-fix-buildsystem.patch | 56 +++++++++++++++++++++++
 3 files changed, 110 insertions(+)
 create mode 100644 gnu/packages/patches/4store-fix-buildsystem.patch

diff --git a/gnu-system.am b/gnu-system.am
index 6cdc1e3..971100b 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -396,6 +396,7 @@ GNU_SYSTEM_MODULES =				\
 
 patchdir = $(guilemoduledir)/gnu/packages/patches
 dist_patch_DATA =						\
+  gnu/packages/patches/4store-fix-buildsystem.patch		\
   gnu/packages/patches/abiword-explictly-cast-bools.patch	\
   gnu/packages/patches/abiword-link-plugins-against-backend.patch	\
   gnu/packages/patches/abiword-no-include-glib-internal-headers.patch	\
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 6612e37..e2007cc 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
+;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,8 +28,12 @@
 
 (define-module (gnu packages databases)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages avahi)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages language)
   #:use-module (gnu packages linux)
@@ -40,9 +45,12 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages python)
   #:use-module (gnu packages pcre)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages rdf)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages jemalloc)
@@ -58,6 +66,51 @@
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match))
 
+(define-public 4store
+  (let ((commit "c5a56d7c7504551a1f2fff6c16c4d9a440e4a317"))
+    (package
+      (name "4store")
+      (version (string-append "1.1.6-0." (string-take commit 7)))
+      (source (origin
+                (method url-fetch)
+                (uri (string-append "https://github.com/garlik/4store/archive/"
+                                    commit ".tar.gz"))
+                (file-name (string-append name "-" version ".tar.gz"))
+                (sha256
+                 (base32 "12pn5masjrfp1d8v1dz47qga0ns8d03f2f5icnb9d6m1jfp8l38a"))
+                (patches (list (search-patch "4store-fix-buildsystem.patch")))))
+      (build-system gnu-build-system)
+      (native-inputs
+       `(("perl" ,perl)
+         ("python" ,python-2)
+         ("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("gettext" ,gnu-gettext)
+         ("libtool" ,libtool)
+         ("pkg-config" ,pkg-config)))
+      (inputs
+       `(("glib" ,glib)
+         ("rasqal" ,rasqal)
+         ("libxml2" ,libxml2)
+         ("raptor2" ,raptor2)
+         ("readline" ,readline)
+         ("avahi" ,avahi)
+         ("pcre" ,pcre)
+         ("cyrus-sasl" ,cyrus-sasl)
+         ("openssl" ,openssl)
+         ("util-linux" ,util-linux)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-before 'configure 'generate-configure
+             (lambda _
+               (zero? (system* "./autogen.sh")))))))
+      (home-page "http://www.4store.org")
+      (synopsis "Clustered RDF storage and query engine")
+      (description "4store is a RDF/SPARQL store written in C, supporting
+either single machines or networked clusters.")
+      (license gpl3+))))
+
 (define-public gdbm
   (package
     (name "gdbm")
diff --git a/gnu/packages/patches/4store-fix-buildsystem.patch b/gnu/packages/patches/4store-fix-buildsystem.patch
new file mode 100644
index 0000000..ec5e1d4
--- /dev/null
+++ b/gnu/packages/patches/4store-fix-buildsystem.patch
@@ -0,0 +1,56 @@
+This patch sets a fixed version to avoid needing Git and the .git/ folder.
+It also removes the creation of "/var/lib/4store", which is not available
+during the install phase in GNU Guix.
+
+Patch by Roel Janssen <roel@gnu.org>
+*** a/configure.ac	Wed Feb  4 19:05:24 2015
+--- b/configure.ac	Wed Mar 23 11:20:38 2016
+***************
+*** 2,13 ****
+  # Process this file with autoconf to produce a configure script.
+  
+  AC_PREREQ([2.50])
+! AC_INIT([4store], m4_esyscmd([./version.sh .version]), [http://4store.org/support/], [4store])
+  AC_CONFIG_SRCDIR([src/backend/backend-intl.h])
+! AM_INIT_AUTOMAKE([1.7 std-options -Wall])
+  AC_CONFIG_HEADERS(4store-config.h)
+  
+  # Checks for programs.
+  AC_PROG_LIBTOOL
+  AC_PROG_AWK
+  AC_PROG_CC
+--- 2,14 ----
+  # Process this file with autoconf to produce a configure script.
+  
+  AC_PREREQ([2.50])
+! AC_INIT([4store], [1.1.6], [http://4store.org/support/], [4store])
+  AC_CONFIG_SRCDIR([src/backend/backend-intl.h])
+! AM_INIT_AUTOMAKE([1.7 std-options foreign -Wall])
+  AC_CONFIG_HEADERS(4store-config.h)
+  
+  # Checks for programs.
++ AM_PROG_AR
+  AC_PROG_LIBTOOL
+  AC_PROG_AWK
+  AC_PROG_CC
+
+*** a/src/utilities/Makefile.am	Wed Feb  4 19:05:24 2015
+--- b/src/utilities/Makefile.am	Wed Mar 23 14:05:56 2016
+***************
+*** 13,20 ****
+  noinst_PROGRAMS = lex-file-verify 4s-rid
+  
+  install-data-local: 
+! 	mkdir -p $(DESTDIR)@FS_STORE_ROOT@
+! 	chmod 1777 $(DESTDIR)@FS_STORE_ROOT@
+  
+  4s_backend_destroy_SOURCES = backend-destroy.c
+  4s_backend_destroy_LDADD = ../common/lib4sintl.a
+--- 13,19 ----
+  noinst_PROGRAMS = lex-file-verify 4s-rid
+  
+  install-data-local: 
+! 	echo "Please create the following directory: " $(DESTDIR)@FS_STORE_ROOT@
+  
+  4s_backend_destroy_SOURCES = backend-destroy.c
+  4s_backend_destroy_LDADD = ../common/lib4sintl.a
-- 
2.5.5


[-- Attachment #2: Type: text/plain, Size: 521 bytes --]

Dear Guix,

I would like to add 4store.  The official website is currently offline,
but there is an effort going on to get it back on line:
  https://github.com/garlik/4store/issues/137

Therefore, I would like to propose to keep the dead website link as this
should sort itself out in time.

I had to patch some build system files to avoid the need for Git and to
avoid "mkdir -p /var/lib/4store".

Now that I've triple-checked the patch, I hope everything is fine.

Thank you for your time.

Kind regards,
Roel Janssen

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

end of thread, other threads:[~2016-05-02 18:58 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-23 14:09 [PATCH] gnu: Add 4store Roel Janssen
2016-03-28 16:16 ` Leo Famulari
2016-03-29  6:54   ` Roel Janssen
2016-04-06 22:23     ` Leo Famulari
2016-04-26 22:47       ` Roel Janssen
2016-05-01 20:18         ` Leo Famulari
2016-05-02  7:44           ` Roel Janssen
2016-05-02 18:58         ` Leo Famulari

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.