diff options
Diffstat (limited to 'pkgs/servers/atlassian')
-rw-r--r-- | pkgs/servers/atlassian/confluence.nix | 49 | ||||
-rw-r--r-- | pkgs/servers/atlassian/crowd.nix | 49 | ||||
-rw-r--r-- | pkgs/servers/atlassian/jira.nix | 46 |
3 files changed, 144 insertions, 0 deletions
diff --git a/pkgs/servers/atlassian/confluence.nix b/pkgs/servers/atlassian/confluence.nix new file mode 100644 index 00000000000..f580abc1878 --- /dev/null +++ b/pkgs/servers/atlassian/confluence.nix @@ -0,0 +1,49 @@ +{ stdenvNoCC, lib, fetchurl, mysql_jdbc ? null +, enableSSO ? false +, crowdProperties ? null +, withMysql ? true +}: + +assert withMysql -> (mysql_jdbc != null); + +stdenvNoCC.mkDerivation rec { + pname = "atlassian-confluence"; + version = "7.14.1"; + + src = fetchurl { + url = "https://product-downloads.atlassian.com/software/confluence/downloads/${pname}-${version}.tar.gz"; + sha256 = "1lcwdjby18xr54i408kncfhlizf18xcrnhfgsvhx5m02arid7mk7"; + }; + + buildPhase = '' + echo "confluence.home=/run/confluence/home" > confluence/WEB-INF/classes/confluence-init.properties + mv conf/server.xml conf/server.xml.dist + ln -sf /run/confluence/home/deploy conf/Standalone + ln -sf /run/confluence/server.xml conf/server.xml + rm -r logs; ln -sf /run/confluence/logs/ . + rm -r work; ln -sf /run/confluence/work/ . + rm -r temp; ln -sf /run/confluence/temp/ . + '' + lib.optionalString enableSSO '' + substituteInPlace confluence/WEB-INF/classes/seraph-config.xml \ + --replace com.atlassian.confluence.user.ConfluenceAuthenticator\ + com.atlassian.confluence.user.ConfluenceCrowdSSOAuthenticator + '' + lib.optionalString (crowdProperties != null) '' + cat <<EOF > confluence/WEB-INF/classes/crowd.properties + ${crowdProperties} + EOF + '' + lib.optionalString withMysql '' + cp -v ${mysql_jdbc}/share/java/*jar confluence/WEB-INF/lib/ + ''; + + installPhase = '' + cp -rva . $out + patchShebangs $out/bin + ''; + + meta = with lib; { + description = "Team collaboration software written in Java and mainly used in corporate environments"; + homepage = "https://www.atlassian.com/software/confluence"; + license = licenses.unfree; + maintainers = with maintainers; [ fpletz globin willibutz ciil ]; + }; +} diff --git a/pkgs/servers/atlassian/crowd.nix b/pkgs/servers/atlassian/crowd.nix new file mode 100644 index 00000000000..f62abe805c2 --- /dev/null +++ b/pkgs/servers/atlassian/crowd.nix @@ -0,0 +1,49 @@ +{ lib, stdenv, fetchurl, home ? "/var/lib/crowd" +, port ? 8092, proxyUrl ? null, openidPassword ? "WILL_NEVER_BE_SET" }: + +stdenv.mkDerivation rec { + pname = "atlassian-crowd"; + version = "4.4.0"; + + src = fetchurl { + url = "https://www.atlassian.com/software/crowd/downloads/binary/${pname}-${version}.tar.gz"; + sha256 = "0ipfvdjs8v02y37rmihljy9lkb3ycz5hyc14mcg65ilsscsq3x91"; + }; + + buildPhase = '' + mv apache-tomcat/conf/server.xml apache-tomcat/conf/server.xml.dist + ln -s /run/atlassian-crowd/server.xml apache-tomcat/conf/server.xml + + rm -rf apache-tomcat/{logs,work} + ln -s /run/atlassian-crowd/logs apache-tomcat/logs + ln -s /run/atlassian-crowd/work apache-tomcat/work + + ln -s /run/atlassian-crowd/database database + + substituteInPlace apache-tomcat/bin/startup.sh --replace start run + + echo "crowd.home=${home}" > crowd-webapp/WEB-INF/classes/crowd-init.properties + substituteInPlace build.properties \ + --replace "openidserver.url=http://localhost:8095/openidserver" \ + "openidserver.url=http://localhost:${toString port}/openidserver" + substituteInPlace crowd-openidserver-webapp/WEB-INF/classes/crowd.properties \ + --replace "http://localhost:8095/" \ + "http://localhost:${toString port}/" + sed -r -i crowd-openidserver-webapp/WEB-INF/classes/crowd.properties \ + -e 's,application.password\s+password,application.password ${openidPassword},' + '' + lib.optionalString (proxyUrl != null) '' + sed -i crowd-openidserver-webapp/WEB-INF/classes/crowd.properties \ + -e 's,http://localhost:${toString port}/openidserver,${proxyUrl}/openidserver,' + ''; + + installPhase = '' + cp -rva . $out + ''; + + meta = with lib; { + description = "Single sign-on and identity management tool"; + homepage = "https://www.atlassian.com/software/crowd"; + license = licenses.unfree; + maintainers = with maintainers; [ fpletz globin ]; + }; +} diff --git a/pkgs/servers/atlassian/jira.nix b/pkgs/servers/atlassian/jira.nix new file mode 100644 index 00000000000..7880c529c73 --- /dev/null +++ b/pkgs/servers/atlassian/jira.nix @@ -0,0 +1,46 @@ +{ stdenv +, lib +, fetchurl +, gawk +, enableSSO ? false +, crowdProperties ? null +}: + +stdenv.mkDerivation rec { + pname = "atlassian-jira"; + version = "8.22.0"; + + src = fetchurl { + url = "https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-${version}.tar.gz"; + sha256 = "sha256-swEq8g/A1Ok1P7JtceUDId7kG0GRtBPGblY09xt81Ys="; + }; + + buildPhase = '' + mv conf/server.xml conf/server.xml.dist + ln -sf /run/atlassian-jira/server.xml conf/server.xml + rm -r logs; ln -sf /run/atlassian-jira/logs/ . + rm -r work; ln -sf /run/atlassian-jira/work/ . + rm -r temp; ln -sf /run/atlassian-jira/temp/ . + substituteInPlace bin/check-java.sh \ + --replace "awk" "${gawk}/bin/gawk" + '' + lib.optionalString enableSSO '' + substituteInPlace atlassian-jira/WEB-INF/classes/seraph-config.xml \ + --replace com.atlassian.jira.security.login.JiraSeraphAuthenticator \ + com.atlassian.jira.security.login.SSOSeraphAuthenticator + '' + lib.optionalString (crowdProperties != null) '' + cat <<EOF > atlassian-jira/WEB-INF/classes/crowd.properties + ${crowdProperties} + EOF + ''; + + installPhase = '' + cp -rva . $out + ''; + + meta = with lib; { + description = "Proprietary issue tracking product, also providing project management functions"; + homepage = "https://www.atlassian.com/software/jira"; + license = licenses.unfree; + maintainers = with maintainers; [ fpletz globin ciil megheaiulian ]; + }; +} |