nixpkgs/pkgs/servers/web-apps/sogo/default.nix
Jonathan Ringer 9bb3fccb5b treewide: pkgs.pkgconfig -> pkgs.pkg-config, move pkgconfig to alias.nix
continuation of #109595

pkgconfig was aliased in 2018, however, it remained in
all-packages.nix due to its wide usage. This cleans
up the remaining references to pkgs.pkgsconfig and
moves the entry to aliases.nix.

python3Packages.pkgconfig remained unchanged because
it's the canonical name of the upstream package
on pypi.
2021-01-19 01:16:25 -08:00

78 lines
2.6 KiB
Nix

{ gnustep, lib, fetchFromGitHub, fetchpatch, makeWrapper, python2, lndir
, openssl_1_1, openldap, sope, libmemcached, curl, libsodium, libzip, pkg-config }:
with lib; gnustep.stdenv.mkDerivation rec {
pname = "SOGo";
version = "5.0.1";
src = fetchFromGitHub {
owner = "inverse-inc";
repo = pname;
rev = "SOGo-${version}";
sha256 = "145hdlwnqds5zmpxbh4yainsbv5vy99ji93d6pl7xkbqwncfi80i";
};
nativeBuildInputs = [ gnustep.make makeWrapper python2 ];
buildInputs = [ gnustep.base sope openssl_1_1 libmemcached (curl.override { openssl = openssl_1_1; }) libsodium libzip pkg-config ]
++ optional (openldap != null) openldap;
patches = [
# TODO: take a closer look at other patches in https://sources.debian.org/patches/sogo/ and https://github.com/Skrupellos/sogo-patches
(fetchpatch {
url = "https://salsa.debian.org/debian/sogo/-/raw/120ac6390602c811908c7fcb212a79acbc7f7f28/debian/patches/0005-Remove-build-date.patch";
sha256 = "151i8504kwdlcirgd0pbif7cxnb1q6jsp5j7dbh9p6zw2xgwkp25";
})
];
postPatch = ''
# Exclude NIX_ variables
sed -i 's/grep GNUSTEP_/grep ^GNUSTEP_/g' configure
# Disable argument verification because $out is not a GNUStep prefix
sed -i 's/^validateArgs$//g' configure
# Patch exception-generating python scripts
patchShebangs .
# Move all GNUStep makefiles to a common directory
mkdir -p makefiles
cp -r {${gnustep.make},${sope}}/share/GNUstep/Makefiles/* makefiles
# Modify the search path for GNUStep makefiles
find . -type f -name GNUmakefile -exec sed -i "s:\\$.GNUSTEP_MAKEFILES.:$PWD/makefiles:g" {} +
'';
configureFlags = [ "--disable-debug" "--with-ssl=ssl" ];
preFixup = ''
# Create gnustep.conf
mkdir -p $out/share/GNUstep
cp ${gnustep.make}/etc/GNUstep/GNUstep.conf $out/share/GNUstep/
sed -i "s:${gnustep.make}:$out:g" $out/share/GNUstep/GNUstep.conf
# Link in GNUstep base
${lndir}/bin/lndir ${gnustep.base}/lib/GNUstep/ $out/lib/GNUstep/
# Link in sope
${lndir}/bin/lndir ${sope}/ $out/
# sbin fixup
mkdir -p $out/bin
mv $out/sbin/* $out/bin
rmdir $out/sbin
# Make sogo find its files
for bin in $out/bin/*; do
wrapProgram $bin --prefix LD_LIBRARY_PATH : $out/lib/sogo --prefix GNUSTEP_CONFIG_FILE : $out/share/GNUstep/GNUstep.conf
done
'';
meta = {
description = "A very fast and scalable modern collaboration suite (groupware)";
license = with licenses; [ gpl2 lgpl21 ];
homepage = "https://sogo.nu/";
platforms = platforms.linux;
maintainers = with maintainers; [ ajs124 das_j ];
};
}