about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/tools/repository-managers
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/tools/repository-managers')
-rw-r--r--nixpkgs/pkgs/development/tools/repository-managers/nexus/default.nix46
-rw-r--r--nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-bin.patch48
-rw-r--r--nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-vm-opts.patch14
3 files changed, 108 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/repository-managers/nexus/default.nix b/nixpkgs/pkgs/development/tools/repository-managers/nexus/default.nix
new file mode 100644
index 000000000000..ffd9774ee447
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/repository-managers/nexus/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, makeWrapper, jre_headless, gawk }:
+
+stdenv.mkDerivation rec {
+  name = "nexus-${version}";
+  version = "3.16.1-02";
+
+  src = fetchurl {
+    url = "https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-${version}-unix.tar.gz";
+    sha256 = "0nfcpsb7byykiwrdz01c99a6hr5ww2d4471spzpgs9i64kbjj7ln";
+  };
+
+  sourceRoot = name;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  patches = [ ./nexus-bin.patch ./nexus-vm-opts.patch ];
+
+  postPatch = ''
+    substituteInPlace bin/nexus.vmoptions \
+      --replace etc/karaf $out/etc/karaf \
+      --replace =. =$out
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -rfv * .install4j $out
+    rm -fv $out/bin/nexus.bat
+
+    wrapProgram $out/bin/nexus \
+      --set JAVA_HOME ${jre_headless} \
+      --set ALTERNATIVE_NAME "nexus" \
+      --prefix PATH "${stdenv.lib.makeBinPath [ gawk ]}"
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Repository manager for binary software components";
+    homepage = http://www.sonatype.org/nexus;
+    license = licenses.epl10;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ aespinosa ironpinguin ma27 zaninime ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-bin.patch b/nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-bin.patch
new file mode 100644
index 000000000000..14bcc973aae7
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-bin.patch
@@ -0,0 +1,48 @@
+diff --git a/bin/nexus b/bin/nexus
+index d06cb44..37c606e 100755
+--- a/bin/nexus
++++ b/bin/nexus
+@@ -88,7 +88,7 @@ create_db_entry() {
+   fi
+   db_new_file=${db_file}_new
+   if [ -f "$db_file" ]; then
+-    awk '$2 != "'"$test_dir"'" {print $0}' $db_file > $db_new_file
++    awk '$2 != "'"$test_dir"'" {print $scriptname}' $db_file > $db_new_file
+     rm "$db_file"
+     mv "$db_new_file" "$db_file"
+   fi
+@@ -246,7 +246,7 @@ read_vmoptions() {
+ 
+ unpack_file() {
+   if [ -f "$1" ]; then
+-    jar_file=`echo "$1" | awk '{ print substr($0,1,length-5) }'`
++    jar_file=`echo "$1" | awk '{ print substr($scriptname,1,length-5) }'`
+     bin/unpack200 -r "$1" "$jar_file"
+ 
+     if [ $? -ne 0 ]; then
+@@ -377,9 +377,14 @@ fi
+ 
+ old_pwd=`pwd`
+ 
+-progname=`basename "$0"`
+-linkdir=`dirname "$0"`
++scriptname=$0
+ 
++if [ ! -z "$ALTERNATIVE_NAME" ]; then
++  scriptname=`dirname "$0"`"/"$ALTERNATIVE_NAME
++fi
++
++progname=`basename "$scriptname"`
++linkdir=`dirname "$scriptname"`
+ cd "$linkdir"
+ prg="$progname"
+ 
+@@ -590,7 +595,7 @@ return_code=$?
+ 
+     ;;
+     *)
+-        echo "Usage: $0 {start|stop|run|run-redirect|status|restart|force-reload}"
++        echo "Usage: $scriptname {start|stop|run|run-redirect|status|restart|force-reload}"
+         exit 1
+     ;;
+ esac
diff --git a/nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-vm-opts.patch b/nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-vm-opts.patch
new file mode 100644
index 000000000000..744b4b96a56b
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-vm-opts.patch
@@ -0,0 +1,14 @@
+diff --git a/bin/nexus b/bin/nexus
+index e7ed3fb..8db766b 100755
+--- a/bin/nexus
++++ b/bin/nexus
+@@ -440,7 +440,8 @@ add_class_path "$app_home/lib/boot/org.apache.karaf.diagnostic.boot-4.0.9.jar"
+ add_class_path "$app_home/lib/boot/org.apache.karaf.jaas.boot-4.0.9.jar"
+ 
+ vmoptions_val=""
+-read_vmoptions "$prg_dir/$progname.vmoptions"
++VM_OPTS=${VM_OPTS_FILE:-"$prg_dir/$progname.vmoptions"}
++read_vmoptions "$VM_OPTS"
+ INSTALL4J_ADD_VM_PARAMS="$INSTALL4J_ADD_VM_PARAMS $vmoptions_val"
+ 
+