nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 89 lines 2.5 kB view raw
1{ 2 lib, 3 clangStdenv, 4 fetchFromGitHub, 5 fetchpatch, 6 libxml2, 7 openssl, 8 openldap, 9 mariadb, 10 libmysqlclient, 11 libpq, 12 gnustep-make, 13 gnustep-base, 14}: 15 16clangStdenv.mkDerivation rec { 17 pname = "sope"; 18 version = "5.12.3"; 19 20 src = fetchFromGitHub { 21 owner = "Alinto"; 22 repo = "sope"; 23 rev = "SOPE-${version}"; 24 hash = "sha256-GeJ1o8Juw7jm3/pkfuMqVpfMxKewU6hQmBoPmb0HgTc="; 25 }; 26 27 patches = [ 28 (fetchpatch { 29 name = "CVE-2025-53603.patch"; 30 url = "https://github.com/Alinto/sope/commit/e954ab0cd254dc1837af690329b04504410cbe63.patch"; 31 hash = "sha256-F/dexphHH8S90njmTDvm+NZChbKekv78tUgB+VFOsSY="; 32 }) 33 ]; 34 35 nativeBuildInputs = lib.optional (libpq != null) [ libpq.pg_config ]; 36 buildInputs = [ 37 gnustep-base 38 libxml2 39 openssl 40 ] 41 ++ lib.optional (openldap != null) openldap 42 ++ lib.optionals (mariadb != null) [ 43 libmysqlclient 44 mariadb 45 ] 46 ++ lib.optional (libpq != null) libpq; 47 48 # Configure directories where files are installed to. Everything is automatically 49 # put into $out (thanks GNUstep) apart from the makefiles location which is where 50 # makefiles are read from during build but also where the SOPE makefiles are 51 # installed to in the install phase. We move them over after the installation. 52 preConfigure = '' 53 mkdir -p /build/Makefiles 54 ln -s ${gnustep-make}/share/GNUstep/Makefiles/* /build/Makefiles 55 cat <<EOF > /build/GNUstep.conf 56 GNUSTEP_MAKEFILES=/build/Makefiles 57 EOF 58 ''; 59 60 configureFlags = [ 61 "--prefix=" 62 "--disable-debug" 63 "--enable-xml" 64 "--with-ssl=ssl" 65 ] 66 ++ lib.optional (openldap != null) "--enable-openldap" 67 ++ lib.optional (mariadb != null) "--enable-mysql" 68 ++ lib.optional (libpq != null) "--enable-postgresql"; 69 70 env = { 71 GNUSTEP_CONFIG_FILE = "/build/GNUstep.conf"; 72 NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=int-conversion"; 73 }; 74 75 # Move over the makefiles (see comment over preConfigure) 76 postInstall = '' 77 mkdir -p $out/share/GNUstep/Makefiles 78 find /build/Makefiles -mindepth 1 -maxdepth 1 -not -type l -exec cp -r '{}' $out/share/GNUstep/Makefiles \; 79 ''; 80 81 meta = { 82 description = "Extensive set of frameworks which form a complete Web application server environment"; 83 license = lib.licenses.lgpl2Plus; 84 homepage = "https://github.com/Alinto/sope"; 85 platforms = lib.platforms.linux; 86 maintainers = with lib.maintainers; [ jceb ]; 87 knownVulnerabilities = [ ]; 88 }; 89}