Merge pull request #4400 from matejc/seeksservice

seeks: update and write nixos module
This commit is contained in:
Mateusz Kowalczyk 2014-10-13 21:37:11 +01:00
commit b9c2fe5fd8
5 changed files with 108 additions and 14 deletions

View File

@ -155,6 +155,7 @@
consul = 145; consul = 145;
mailpile = 146; mailpile = 146;
redmine = 147; redmine = 147;
seeks = 148;
prosody = 148; prosody = 148;
@ -279,6 +280,7 @@
uhub = 142; uhub = 142;
mailpile = 146; mailpile = 146;
redmine = 147; redmine = 147;
seeks = 148;
prosody = 148; prosody = 148;

View File

@ -259,6 +259,7 @@
./services/networking/rpcbind.nix ./services/networking/rpcbind.nix
./services/networking/sabnzbd.nix ./services/networking/sabnzbd.nix
./services/networking/searx.nix ./services/networking/searx.nix
./services/networking/seeks.nix
./services/networking/spiped.nix ./services/networking/spiped.nix
./services/networking/ssh/lshd.nix ./services/networking/ssh/lshd.nix
./services/networking/ssh/sshd.nix ./services/networking/ssh/sshd.nix

View File

@ -0,0 +1,75 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.seeks;
confDir = cfg.confDir;
seeks = pkgs.seeks.override { seeks_confDir = confDir; };
in
{
###### interface
options = {
services.seeks = {
enable = mkOption {
default = false;
type = types.bool;
description = "
Whether to enable the Seeks server.
";
};
confDir = mkOption {
default = "";
type = types.str;
description = "
The Seeks server configuration. If it is not specified,
a default configuration is used (${seeks}/etc/seeks).
";
};
};
};
###### implementation
config = mkIf config.services.seeks.enable {
users.extraUsers.seeks =
{ uid = config.ids.uids.seeks;
description = "Seeks user";
createHome = true;
home = "/var/lib/seeks";
};
users.extraGroups.seeks =
{ gid = config.ids.gids.seeks;
};
systemd.services.seeks =
{
description = "Seeks server, the p2p search engine.";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = "seeks";
ExecStart = "${seeks}/bin/seeks";
};
};
environment.systemPackages = [ seeks ];
};
}

View File

@ -1,28 +1,44 @@
{ fetchurl, stdenv, zlib, docbook2x, pcre, curl, libxml2, libevent, perl { fetchgit, stdenv, zlib, docbook2x, pcre, curl, libxml2, libevent, perl
, pkgconfig, protobuf, tokyocabinet, tokyotyrant, opencv , pkgconfig, protobuf, tokyocabinet, tokyotyrant, opencv, autoconf, automake
, libtool, seeks_confDir ? ""
}: }:
let version = "0.4.1"; in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "seeks-${version}"; name = "seeks-0.4.1";
src = fetchurl { src = fetchgit {
url = "mirror://sourceforge/seeks/hippy/seeks-${version}.tar.gz"; url = "git://github.com/beniz/seeks.git";
sha256 = "1ppbbjw1zffxxhyvy64xwsff9xlw9wigqb7qwq5iw5mhbblz545q"; rev = "1168b3a2f3111c3fca31dd961135194c3e8df5fd";
sha256 = "159k9fk1ry8cybrq38jxm1qyxks9hlkfz624hzwxlzah6xb2j8a4";
}; };
buildInputs = buildInputs =
[ zlib docbook2x pcre curl libxml2 libevent perl pkgconfig [ zlib docbook2x pcre curl libxml2 libevent perl pkgconfig
protobuf tokyocabinet tokyotyrant opencv protobuf tokyocabinet tokyotyrant opencv autoconf automake libtool
]; ];
configureFlags = configureFlags =
[ # Enable the built-in web server providing a web search interface. [ # Enable the built-in web server providing a web search interface.
# See <http://www.seeks-project.info/wiki/index.php/Seeks_On_Web>.
"--enable-httpserv-plugin=yes" "--enable-httpserv-plugin=yes"
"--with-libevent=${libevent}" "--with-libevent=${libevent}"
]; ];
preConfigure = ''
./autogen.sh
'';
postInstall = stdenv.lib.optionalString (seeks_confDir != "") ''
ln -svf ${seeks_confDir}/config $out/etc/seeks/config
ln -svf ${seeks_confDir}/cf-config $out/etc/seeks/cf-config
ln -svf ${seeks_confDir}/httpserv-config $out/etc/seeks/httpserv-config
ln -svf ${seeks_confDir}/img-websearch-config $out/etc/seeks/img-websearch-config
ln -svf ${seeks_confDir}/lsh-config $out/etc/seeks/lsh-config
ln -svf ${seeks_confDir}/query-capture-config $out/etc/seeks/query-capture-config
ln -svf ${seeks_confDir}/udb-service-config $out/etc/seeks/udb-service-config
ln -svf ${seeks_confDir}/uri-capture-config $out/etc/seeks/uri-capture-config
ln -svf ${seeks_confDir}/websearch-config $out/etc/seeks/websearch-config
'';
# FIXME: Test suite needs <https://code.google.com/p/googletest/>. # FIXME: Test suite needs <https://code.google.com/p/googletest/>.
doCheck = false; doCheck = false;
@ -44,8 +60,10 @@ stdenv.mkDerivation {
homepage = http://www.seeks-project.info/; homepage = http://www.seeks-project.info/;
maintainers = [ stdenv.lib.maintainers.ludo ]; maintainers = [
stdenv.lib.maintainers.ludo
stdenv.lib.maintainers.matejc
];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice platforms = stdenv.lib.platforms.gnu; # arbitrary choice
hydraPlatforms = [];
}; };
} }

View File

@ -10195,9 +10195,7 @@ let
seafile-client = callPackage ../applications/networking/seafile-client { }; seafile-client = callPackage ../applications/networking/seafile-client { };
seeks = callPackage ../tools/networking/p2p/seeks { seeks = callPackage ../tools/networking/p2p/seeks { };
opencv = opencv_2_1;
};
seg3d = callPackage ../applications/graphics/seg3d { seg3d = callPackage ../applications/graphics/seg3d {
wxGTK = wxGTK28.override { unicode = false; }; wxGTK = wxGTK28.override { unicode = false; };