nixos-seafile-overlay/seafile-server/default.nix

83 lines
2.8 KiB
Nix
Raw Normal View History

2019-10-09 00:53:54 +02:00
{ stdenv, lib, fetchFromGitHub,
autoconf, automake, autoreconfHook, pkgconfig, curl, libevent, glib, libuuid, intltool, sqlite, withMysql ? true, libmysql, libarchive, libtool, jansson, vala, fuse, openssl, libevhtp, ccnet, libsearpc,
# for SeaHub
python27, python27Packages }:
let
version = "7.1.0";
seafile-server-core = stdenv.mkDerivation rec {
name = "seafile-server-core";
inherit version;
src = fetchFromGitHub {
owner = "haiwen";
repo = "seafile-server";
rev = "v${version}-server";
sha256 = "sha256:0r3vw145vzhbipwk4cyj1h7sb3szy5hcp36n3pf2jxpwy365ir92";
};
nativeBuildInputs = [ autoconf automake libtool pkgconfig autoreconfHook ];
buildInputs = [ sqlite glib python27 libuuid openssl ];
checkPhase = "bash ./run_tests.sh";
};
seahub = python27Packages.buildPythonApplication rec {
name = "seahub";
inherit version;
src = fetchFromGitHub {
owner = "haiwen";
repo = "seahub";
rev = "v${version}-server";
sha256 = "1l4rmkdh0mcxjmm5fiz3frqm4wyq4pbdg9pwmb82f1q64ph9pjy2";
};
phases = [ "installPhase" "fixupPhase" "distPhase" ];
installPhase = ''
find ./
'';
};
propagatedBuildInputs = with python27Packages; [
django pytz django-statici18n djangorestframework django_compressor
django-post_office django-constance gunicorn flup chardet dateutil six
openpyxl
];
django-constance = python27.buildPythonPackage rec {
pname = "django-constance";
version = "1.0.1";
src = fetchFromGitHub {
owner = "haiwen";
repo = pname;
rev = "bde7f7c";
sha256 = "sha256:12ccqa3168n0s8mqgywbg87qk72yh9salqxafcq4nc4lc3mcsmxx";
};
meta = {
license = lib.licenses.bsd3;
};
};
ccnet-server = stdenv.mkDerivation rec {
name = "ccnet-server";
inherit version;
src = fetchFromGitHub {
owner = "haiwen";
repo = "ccnet-server";
rev = "v${version}-server";
sha256 = "sha256:0yfq8fvz17l0295kkpj95f33gwm31ikyhymxq4fy088q608vd8g5";
};
buildInputs = [ vala libsearpc ]
++ lib.optional (!withMysql) "--without-mysql";
nativeBuildInputs = [ autoconf automake libtool ];
preConfigure = "bash autogen.sh";
meta = {
description = "Internal communication framework and user/group management for Seafile server";
license = lib.licenses.agpl3; # with additional OpenSSL linking exception
};
};
in stdenv.mkDerivation {
name = "seafile-server";
inherit version;
buildInputs = [ seahub seafile-server-core ccnet-server libsearpc ]
++ lib.optional withMysql libmysql;
phases = [ "installPhase" "fixupPhase" "distPhase" ];
# todo: create data directory in /srv in activation script
}