-{ stdenv, fetchurl, callPackage
-, varDir ? "/var/lib/phpbb"
-}:
-let
- allExts = {
- alfredoramos.markdown = callPackage ./extensions/markdown.nix {};
- davidiq.mailinglist = callPackage ./extensions/mailinglist.nix {};
- dmzx.mchat = callPackage ./extensions/mchat.nix {};
- empteintesduweb.monitoranswers = callPackage ./extensions/monitoranswers.nix {};
- lr94.autosubscribe = callPackage ./extensions/autosubscribe.nix {};
- phpbbmodders.adduser = callPackage ./extensions/adduser.nix {};
- };
- allLangs = {
- fr = callPackage ./langs/fr.nix {};
- };
- toPassthru = pkg: {
- inherit allLangs allExts;
- withLangs = withLangs pkg;
- withExts = withExts pkg;
- };
- withExts = pkg: toExts:
- let
- exts = toExts allExts;
- toInstallExt = ext: "cp -r ${ext}/* $out/ext/";
- newPhpBB = pkg.overrideAttrs(old: {
- installPhase = old.installPhase + "\n" + builtins.concatStringsSep "\n" (map toInstallExt exts);
- passthru = toPassthru newPhpBB;
- });
- in newPhpBB;
- withLangs = pkg: toLangs:
- let
- langs = toLangs allLangs;
- toInstallLang = lang: "cp -r ${lang}/*/ $out";
- newPhpBB = pkg.overrideAttrs(old: {
- installPhase = old.installPhase + "\n" + builtins.concatStringsSep "\n" (map toInstallLang langs);
- passthru = toPassthru newPhpBB;
- });
- in newPhpBB;
- phpBB = stdenv.mkDerivation rec {
- pname = "phpBB";
- version = "3.3.0";
-
- src = fetchurl {
- url = "https://download.phpbb.com/pub/release/3.3/${version}/${pname}-${version}.tar.bz2";
- sha256 = "a6234ac9dcf9086c025ece29a0a235f997a92bb9a994eff0ddcf8917e841262f";
- };
-
- phases = [ "unpackPhase" "installPhase" ];
-
- installPhase = ''
- cp -a . $out
- mkdir -p $out/vars
- mv $out/{cache,files,store,config.php} $out/vars
- ln -s ${varDir}/{cache,files,store,config.php} $out/
- echo -e "core:\n allow_install_dir: true" >> $out/config/production/config.yml
- '';
-
- passthru = toPassthru phpBB;
- };
-in
- phpBB