From 14eea491b82663117e9a40a65b01a86b9549ee03 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Tue, 29 Jun 2010 22:18:49 +0000 Subject: [PATCH] Adding Redstore HTTP RDF/SPARQL server svn path=/nixpkgs/trunk/; revision=22428 --- maintainers/docs/update-upstream-data.txt | 1 - pkgs/development/libraries/librdf/raptor.nix | 8 ++--- pkgs/development/libraries/redland/1.0.10.nix | 4 --- pkgs/lib/misc.nix | 9 ++++-- pkgs/servers/http/redstore/default.nix | 32 +++++++++++++++++++ .../servers/http/redstore/src-for-default.nix | 9 ++++++ .../http/redstore/src-info-for-default.nix | 6 ++++ pkgs/top-level/all-packages.nix | 4 +++ 8 files changed, 62 insertions(+), 11 deletions(-) create mode 100644 pkgs/servers/http/redstore/default.nix create mode 100644 pkgs/servers/http/redstore/src-for-default.nix create mode 100644 pkgs/servers/http/redstore/src-info-for-default.nix diff --git a/maintainers/docs/update-upstream-data.txt b/maintainers/docs/update-upstream-data.txt index adeb410d6c4..2abce3b4055 100644 --- a/maintainers/docs/update-upstream-data.txt +++ b/maintainers/docs/update-upstream-data.txt @@ -12,4 +12,3 @@ src-for-default.nix will contain advertisedUrl (raw URL chosen on the site; its nixpkgs/pkgs/build-support/upstream-updater directory contains some scripts. The worker script is called update-upstream-data.sh. This script requires main expression name (e.g. default.nix). It can optionally accpet a second parameter, URL which will be used instead of getting one by parsing the downloadPage (version extraction, mirror URL creation etc. will still be run). After running the script, check src-for-default.nix (or replace default.nix with expression name, if there are seceral expressions in the directory) for new version information. - diff --git a/pkgs/development/libraries/librdf/raptor.nix b/pkgs/development/libraries/librdf/raptor.nix index 294e51c6654..0ddb45be30c 100644 --- a/pkgs/development/libraries/librdf/raptor.nix +++ b/pkgs/development/libraries/librdf/raptor.nix @@ -1,10 +1,10 @@ args: with args; -stdenv.mkDerivation { - name = "raptor-1.4.19"; +stdenv.mkDerivation rec { + name = "raptor-1.4.21"; src = fetchurl { - url = http://download.librdf.org/source/raptor-1.4.19.tar.gz; - sha256 = "0qpfl73dvkhngica7wk9qglvd0b3fp9wqnjkl5q8m6h1kf8605ml"; + url = "http://download.librdf.org/source/${name}.tar.gz"; + sha256 = "db3172d6f3c432623ed87d7d609161973d2f7098e3d2233d0702fbcc22cfd8ca"; }; buildInputs = [ diff --git a/pkgs/development/libraries/redland/1.0.10.nix b/pkgs/development/libraries/redland/1.0.10.nix index 6907899edd3..959581d407e 100644 --- a/pkgs/development/libraries/redland/1.0.10.nix +++ b/pkgs/development/libraries/redland/1.0.10.nix @@ -18,10 +18,6 @@ stdenv.mkDerivation rec { librdf_raptor librdf_rasqal ]; - preConfigure = '' - export NIX_LDFLAGS="$NIX_LDFLAGS -lrasqal -lraptor" - ''; - configureFlags = [ "--with-threads" ] ++ stdenv.lib.optional (bdb != null) "--with-bdb=${bdb}"; diff --git a/pkgs/lib/misc.nix b/pkgs/lib/misc.nix index 32b30ee2fbf..f3eb7e8bf8f 100644 --- a/pkgs/lib/misc.nix +++ b/pkgs/lib/misc.nix @@ -94,6 +94,11 @@ rec { composedArgsAndFun = f: foldArgs defaultMerge f {}; + # shortcut for attrByPath ["name"] default attrs + maybeAttrNullable = name: default: attrs: + if attrs == null then default else + if (__hasAttr name attrs) then (__getAttr name attrs) else default; + # shortcut for attrByPath ["name"] default attrs maybeAttr = name: default: attrs: if (__hasAttr name attrs) then (__getAttr name attrs) else default; @@ -204,8 +209,8 @@ rec { innerClosePropagation (ready ++ [(head list)]) ((tail list) - ++ (maybeAttr "propagatedBuildInputs" [] (head list)) - ++ (maybeAttr "propagatedBuildNativeInputs" [] (head list))); + ++ (maybeAttrNullable "propagatedBuildInputs" [] (head list)) + ++ (maybeAttrNullable "propagatedBuildNativeInputs" [] (head list))); closePropagation = list: (uniqList {inputList = (innerClosePropagation [] list);}); diff --git a/pkgs/servers/http/redstore/default.nix b/pkgs/servers/http/redstore/default.nix new file mode 100644 index 00000000000..87a89072ec6 --- /dev/null +++ b/pkgs/servers/http/redstore/default.nix @@ -0,0 +1,32 @@ +x@{builderDefsPackage + , redland, pkgconfig, gmp + , ...}: +builderDefsPackage +(a : +let + s = import ./src-for-default.nix; + helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ + []; + buildInputs = map (n: builtins.getAttr n x) + (builtins.attrNames (builtins.removeAttrs x helperArgNames)); +in +rec { + src = a.fetchUrlFromSrcInfo s; + + inherit (s) name; + inherit buildInputs; + + /* doConfigure should be removed if not needed */ + phaseNames = ["doConfigure" "doMakeInstall"]; + + meta = { + description = "An HTTP interface to Redland RDF store"; + maintainers = with a.lib.maintainers; + [ + raskin + ]; + platforms = with a.lib.platforms; + linux ++ freebsd ++ gnu; + }; +}) x + diff --git a/pkgs/servers/http/redstore/src-for-default.nix b/pkgs/servers/http/redstore/src-for-default.nix new file mode 100644 index 00000000000..963abcb7dbb --- /dev/null +++ b/pkgs/servers/http/redstore/src-for-default.nix @@ -0,0 +1,9 @@ +rec { + version="0.4"; + name="redstore-0.4"; + hash="1fs54v0d0kkqaz9ajacabb8wifrglvg6kkhd5b0mxmnng352wpp7"; + url="http://redstore.googlecode.com/files/redstore-${version}.tar.gz"; + advertisedUrl="http://redstore.googlecode.com/files/redstore-0.4.tar.gz"; + + +} diff --git a/pkgs/servers/http/redstore/src-info-for-default.nix b/pkgs/servers/http/redstore/src-info-for-default.nix new file mode 100644 index 00000000000..fe1082a587e --- /dev/null +++ b/pkgs/servers/http/redstore/src-info-for-default.nix @@ -0,0 +1,6 @@ +{ + downloadPage = "http://code.google.com/p/redstore/downloads/list"; + baseName = "redstore"; + choiceCommand = '' head -n 1 | + sed -re "s@[&].*@@; s@.*[?]name=(.*)@http://$(sed -re "s@.*/p/([^/]+)/.*@\\1@" <<< "$(getAttr downloadPage)").googlecode.com/files/\\1@" ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d6ffc8eb132..15086b5c7ed 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5943,6 +5943,10 @@ let inherit fetchurl stdenv m4 groff readline; }; + redstore = import ../servers/http/redstore { + inherit builderDefsPackage redland pkgconfig gmp; + }; + samba = makeOverridable (import ../servers/samba) { inherit stdenv fetchurl readline openldap pam kerberos popt iniparser libunwind acl fam;