X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FConfig%2FNix.git;a=blobdiff_plain;f=pkgs%2Fwebapps%2Froundcubemail%2Fdefault.nix;fp=pkgs%2Fwebapps%2Froundcubemail%2Fdefault.nix;h=0000000000000000000000000000000000000000;hp=bdddf2fdf6e22df5f8d83cde0227421426c33041;hb=1a64deeb894dc95e2645a75771732c6cc53a79ad;hpb=fa25ffd4583cc362075cd5e1b4130f33306103f0 diff --git a/pkgs/webapps/roundcubemail/default.nix b/pkgs/webapps/roundcubemail/default.nix deleted file mode 100644 index bdddf2f..0000000 --- a/pkgs/webapps/roundcubemail/default.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ varDir ? "/var/lib/roundcubemail" -, roundcube_config ? "/etc/roundcube/config.php" -, stdenv, fetchurl, jre, unzip, lib, callPackage }: -let - defaultInstall = '' - mkdir -p $out - cp -R . $out/ - cd $out - if [ -d skins -a -d skins/larry -a ! -d skins/elastic ]; then - ln -s larry skins/elastic - fi - ''; - buildPlugin = { appName, version, url, sha256, installPhase ? defaultInstall }: - stdenv.mkDerivation rec { - name = "roundcube-${appName}-${version}"; - inherit version; - phases = "unpackPhase installPhase"; - inherit installPhase; - src = fetchurl { inherit url sha256; }; - passthru.pluginName = appName; - }; - skinNames = []; - allSkins = lib.attrsets.genAttrs skinNames - (name: callPackage (./skins + "/${name}") {}); - pluginNames = [ - "automatic_addressbook" "carddav" "contextmenu" - "contextmenu_folder" "html5_notifier" "ident_switch" - "message_highlight" "thunderbird_labels" - ]; - allPlugins = lib.attrsets.genAttrs pluginNames - (name: callPackage (./plugins + "/${name}") { inherit buildPlugin; }); - toPassthru = pkg: plugins: skins: { - inherit plugins skins allSkins allPlugins; - withSkins = withSkins pkg; - withPlugins = withPlugins pkg; - }; - withPlugins = pkg: toPlugins: - let - plugins = toPlugins allPlugins; - toInstallPlugin = n: "ln -s ${n} $out/plugins/${n.pluginName}"; - newRoundcube = pkg.overrideAttrs(old: { - installPhase = old.installPhase + "\n" + builtins.concatStringsSep "\n" (map toInstallPlugin plugins); - passthru = toPassthru newRoundcube (pkg.plugins ++ plugins) pkg.skins; - }); - in newRoundcube; - withSkins = pkg: toSkins: - let - skins = toSkins allSkins; - toInstallSkin = n: "ln -s ${n} $out/skins/${n.skinName}"; - newRoundcube = pkg.overrideAttrs(old: { - installPhase = old.installPhase + "\n" + builtins.concatStringsSep "\n" (map toInstallSkin skins); - passthru = toPassthru newRoundcube pkg.plugins (pkg.skins ++ skins); - }); - in newRoundcube; - shrinker = fetchurl { - url = "https://dl.google.com/closure-compiler/compiler-20200719.zip"; - sha256 = "0j46y9ack2yq67naca6nfysbmyilwjlkl29dbswidf1lq09yhhj3"; - }; - package = stdenv.mkDerivation rec { - version = "1.4.4"; - name = "roundcubemail-${version}"; - src= fetchurl { - url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/${name}-complete.tar.gz"; - sha256 = "1my726p0wmsn21nbdsjx02h6hnbh8nidzipzdy0gk0qgda1j729b"; - }; - patches = [ ./add_all.patch ]; # This patch includes js modification which requires to re-run the jsshrink below - buildInputs = [ unzip jre ]; - buildPhase = '' - mkdir -p /tmp - unzip -p "${shrinker}" "*.jar" > "/tmp/compiler.jar" - ./bin/jsshrink.sh - sed -i \ - -e "s|RCUBE_INSTALL_PATH . 'temp.*|'${varDir}/cache';|" \ - config/defaults.inc.php - sed -i \ - -e "s|RCUBE_INSTALL_PATH . 'logs.*|'${varDir}/logs';|" \ - config/defaults.inc.php - ''; - installPhase = '' - cp -a . $out - ln -s ${roundcube_config} $out/config/config.inc.php - ''; - passthru = toPassthru package [] []; - }; -in package