public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Austin English" <wizardedit@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-util/artifactory-bin/files/, dev-util/artifactory-bin/
Date: Fri, 14 Oct 2016 17:49:53 +0000 (UTC)	[thread overview]
Message-ID: <1476467383.5718cff0244fecb9ea96e9eadb8769b464396fee.wizardedit@gentoo> (raw)

commit:     5718cff0244fecb9ea96e9eadb8769b464396fee
Author:     Austin English <wizardedit <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 14 17:12:06 2016 +0000
Commit:     Austin English <wizardedit <AT> gentoo <DOT> org>
CommitDate: Fri Oct 14 17:49:43 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5718cff0

dev-util/artifactory-bin: version bump - 4.13.1

Also fix bashism warnings in /etc/init.d/artifactory

Package-Manager: portage-2.3.0

 dev-util/artifactory-bin/Manifest                  |   1 +
 .../artifactory-bin/artifactory-bin-4.13.1.ebuild  |  97 ++++++++++++
 dev-util/artifactory-bin/files/initd-r1            | 165 +++++++++++++++++++++
 3 files changed, 263 insertions(+)

diff --git a/dev-util/artifactory-bin/Manifest b/dev-util/artifactory-bin/Manifest
index 4381336..a6e08ff 100644
--- a/dev-util/artifactory-bin/Manifest
+++ b/dev-util/artifactory-bin/Manifest
@@ -6,6 +6,7 @@ DIST artifactory-4.12.0.1.zip 41341922 SHA256 463e6267fbc6f7f4393a6fd824d812d398
 DIST artifactory-4.12.1.zip 41353207 SHA256 30dfa6cb9e5b1b8beb917fa7aacd76b54882d054edcc7a1b77761e3bef03bd82 SHA512 e0974bc83259859964883a90b064a38736aa2cb59fba1eb34b96a7b48fd33c9f3d64f0624b7169e5b663daf31b0999e33e9bd1fde8a25f7eb8ef2e1fc47626ea WHIRLPOOL c9ce0bd1f0a5172a057e8c5f32312308e4cfaa4ae59496947b6a757f904b7ef8ac459e270af3df392398e49d68d0f4a6e542e2a8d89cc4fce05821d08122f40c
 DIST artifactory-4.12.2.zip 41341044 SHA256 7b330eed2c53633bbe77e4ffaa1f7826bde57751e9c2be50884d4fb5e6cfa6f5 SHA512 a5d35958263b58caf8971d2c67eb9417f576875f56ed302ffa1d1deffc4b7e0a2595b21ea077eabf4e42f12e947689b92f328ee887c6714317419a43a51b8cd7 WHIRLPOOL 8d79e189d4e9279a37dfb06c2b8413d3bad67da3626665e8eaf88af35c3b0b31e1f5e5498a332bf9fe218e0b02e1382357b90b48220c08479697480b51feada8
 DIST artifactory-4.13.0.zip 41369905 SHA256 5724e879642ba393f3242f73fc2684d3eafb21dee80c8086ab566f5c99aa908d SHA512 958d8c02ada6e140ed73279db4645869f56abe91a0f9c64777035e212c880e4b15659bf28a8055cf2f7e65c15cf429e0dd678bdee11a2ba18d11654c91500053 WHIRLPOOL 70b1c03463b99b83572d6e00dcf46b9f236e16b5d7eb83f0e8cb2a08cfa04d5757dda02fd28470212fbbe44ddabbd26b9b1a8085e2336661b9cd240d106882de
+DIST artifactory-4.13.1.zip 41392021 SHA256 295463b4a6e6c9b1a8ddde6d62f03b206cba160b39bb6c0801f64e138e21bca2 SHA512 2ebeb5d1c1746ca90be4de644ce7dacf81fa7aee68c9408560bda8546dbf78d366ccecbcfada46261897a49c7df7dda5d5da3b030d76cb8ea59162c73238b62e WHIRLPOOL 37a7f00ceca80b648b7765aab3e7a7523d516ed77af87d0312d2e02626d41390281c52e2e42e35a76c025f3ce6c4643e173a509d410b927e7e46dc1c76b732a9
 DIST artifactory-4.7.6.zip 40332783 SHA256 8f2ee405e7b13ea2121a0e1c97ef3097ae54e9753d7288cc4ee95d3831cb01dd SHA512 06d102b8a17172a8f6a67e9f166278b59569ba8439c9eea02bc1a7401182f72bc00da8ea3484a30b1c96ab167d331868169edd3051f6e027d772a9c5ede50852 WHIRLPOOL 296dc74c9698058b2fc020ce0561929a7a75dc47ad48cce37be1d4e86e0c4bbddfb7ab108f58ee1175bb0fff113a4a216a11c6ddf01380d3fd8c826607712990
 DIST artifactory-4.7.7.zip 40327123 SHA256 953a208daa35767ca915a9bab20310493c9abd78f238f787387c89077d377716 SHA512 2ebda9b45a819c9f060a7d789878f09ffb5e8791f9913ba5f86498ad69a01731fca9efde7c0ed9e206ea35a98d733052146c407208f28a3efc0b25423b11a894 WHIRLPOOL 57e60d9426849f140fdd67bc775c9d9e08c0c78926347dc5bd64cf0c5d0fd1ab759539756e98183e093e6e9b27301d5bb6192ca5c023c71664a49bded23b8a0e
 DIST artifactory-4.8.0.zip 41084705 SHA256 2de13962ad1e6f4f1537e1fd86b6e70da6afae67a2449bf0cb369d3a84267647 SHA512 a21310a7699c63a2fe3f305f42fef0aab6a0b9d43b2b8ba89d2360e5f8364d233f6f64616271d6cd4e79c1cecd18b1a7197fbb034a5eabd77d97b257e09b2910 WHIRLPOOL e6a62c25f2927ea069fa512c40f8b7ea4cecb8625acdd8149c1f2db298b7375e362ee616562b37e9a00d5ed5451cb5861bf906d4d5c796eec9735e62b2a46e88

diff --git a/dev-util/artifactory-bin/artifactory-bin-4.13.1.ebuild b/dev-util/artifactory-bin/artifactory-bin-4.13.1.ebuild
new file mode 100644
index 00000000..90c97a4
--- /dev/null
+++ b/dev-util/artifactory-bin/artifactory-bin-4.13.1.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Using a binary ebuild until a source ebuild is doable.
+# This was previously blocked by two major bugs upstream:
+# A lack of documented build instructions - https://www.jfrog.com/jira/browse/RTFACT-8960
+# A lack of source releases - https://www.jfrog.com/jira/browse/RTFACT-8961
+# Upstream now releases source and instructions (yay!), but most of artifactory's
+# dependencies are not in portage yet.
+
+EAPI=6
+
+inherit user
+
+MY_P="${P/-bin}"
+MY_PN="${PN/-bin}"
+MY_PV="${PV/-bin}"
+
+DESCRIPTION="The world's most advanced repository manager for maven"
+HOMEPAGE="http://www.jfrog.org/products.php"
+SRC_URI="https://bintray.com/artifact/download/jfrog/artifactory/jfrog-artifactory-oss-${MY_PV}.zip -> ${MY_P}.zip"
+
+LICENSE="AGPL-3+"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE="ssl"
+
+RDEPEND=">=virtual/jre-1.8"
+DEPEND=">=virtual/jdk-1.8
+		app-arch/unzip"
+
+S="${WORKDIR}/${MY_PN}-oss-${MY_PV}"
+
+pkg_setup() {
+	enewgroup artifactory
+	enewuser artifactory -1 /bin/sh -1 artifactory
+}
+
+src_prepare() {
+	default
+
+	if use ssl ; then
+		cp "${FILESDIR}/artifactory.xml" tomcat/conf/Catalina/localhost/artifactory.xml || die
+		cp "${FILESDIR}/server.xml" tomcat/conf/server.xml || die
+	fi
+
+	# Reverse https://www.jfrog.com/jira/browse/RTFACT-7123
+	sed -i -e "s%artifactory.repo.global.disabled=true%artifactory.repo.global.disabled=false%g;" \
+		etc/artifactory.system.properties || die
+
+	# See FIXME in src_install(), this can probably go away,
+	# but catalina.sh may need to be fixed for that:
+	sed -i -e "s%/etc/opt/jfrog/artifactory/default%/etc/conf.d/${MY_PN}%g;" \
+		misc/service/setenv.sh || die
+}
+
+src_install() {
+	local ARTIFACTORY_HOME="/opt/artifactory"
+	local TOMCAT_HOME="${ARTIFACTORY_HOME}/tomcat"
+
+	insinto ${ARTIFACTORY_HOME}
+	doins -r etc logs misc tomcat webapps
+
+	dodir /etc/opt/jfrog
+	dosym ${ARTIFACTORY_HOME}/etc /etc/opt/jfrog/artifactory
+
+	dosym ${ARTIFACTORY_HOME}/logs /var/log/artifactory
+
+	exeinto ${ARTIFACTORY_HOME}/bin
+	doexe bin/*
+
+	# FIXME: this is called by catalina.sh (it echoes the variables before starting
+	# artifactory, as well as makes sure log dir, etc. exists). Those directories
+	# could probably be moved to the ebuild and the script removed from catalina.sh
+	# without consequence (and quieter starts). Would need to check if CATALINA_*
+	# variables are actually used anywhere (from reading code don't appear to be
+	# actually needed)
+	exeinto ${TOMCAT_HOME}/bin
+	doexe misc/service/setenv.sh
+	doexe tomcat/bin/*
+
+	keepdir ${ARTIFACTORY_HOME}/backup
+	keepdir ${ARTIFACTORY_HOME}/data
+	keepdir ${ARTIFACTORY_HOME}/run
+	keepdir ${ARTIFACTORY_HOME}/work
+	keepdir ${TOMCAT_HOME}/logs/catalina
+	keepdir ${TOMCAT_HOME}/temp
+	keepdir ${TOMCAT_HOME}/work
+	keepdir /var/opt/jfrog/artifactory/run
+
+	newconfd "${FILESDIR}/confd" ${MY_PN}
+	newinitd "${FILESDIR}/initd-r1" ${MY_PN}
+
+	fowners -R artifactory:artifactory ${ARTIFACTORY_HOME}
+	fperms -R u+w ${TOMCAT_HOME}/work
+}

diff --git a/dev-util/artifactory-bin/files/initd-r1 b/dev-util/artifactory-bin/files/initd-r1
new file mode 100644
index 00000000..631b698
--- /dev/null
+++ b/dev-util/artifactory-bin/files/initd-r1
@@ -0,0 +1,165 @@
+#!/sbin/openrc-run
+
+description="Manages the services needed to run Artifactory on a dedicated Tomcat"
+command="/opt/artifactory/tomcat/bin/catalina.sh"
+pidfile="/opt/artifactory/run/artifactory.pid"
+procname="artifactory"
+user=${ARTIFACTORY_USER:-artifactory}
+group=${group:-artifactory}
+
+# Artifactory can be very slow to start, and without locking,
+# restarting via runscript is very error prone
+CATALINA_LOCK_FILE="$(dirname $pidfile)/lock"
+
+CATALINA_MGMT_PORT=8015
+REQUIRED_JAVA_VERSION="1.8"
+START_TIMEOUT=300
+
+# Helper functions:
+is_mgmt_port_used() {
+    mgmt_port_used=$(netstat -vatn | grep LISTEN | grep $CATALINA_MGMT_PORT | wc -l)
+}
+
+get_pid_info() {
+    pidValue=""
+    javaPs=""
+    if [ -e "$pidfile" ]; then
+        pidValue=$(cat $pidfile)
+        if [ -n "$pidValue" ]; then
+            javaPs="$(ps -p $pidValue | grep java)"
+        fi
+    fi
+}
+
+depend() {
+    need net nginx
+    use dns logger netmount
+}
+
+start_pre() {
+    if [ -z "$ARTIFACTORY_HOME" ] || [ ! -d "$ARTIFACTORY_HOME" ]; then
+        eerror "Artifactory home folder not defined or does not exists at $ARTIFACTORY_HOME"
+        return 1
+    fi
+
+    if [ -z "$pidfile" ]; then
+        eerror "Artifactory pid destination pidfile was not set!"
+        return 1
+    fi
+
+    if [ -z "$TOMCAT_HOME" ] || [ ! -d "$TOMCAT_HOME" ]; then
+        eerror "Tomcat Artifactory folder not defined or does not exists at $TOMCAT_HOME"
+        return 1
+    fi
+
+    if [ -z "$ARTIFACTORY_USER" ]; then
+        ARTIFACTORY_USER=$user
+    fi
+
+    current_open_file_limit=$(su -l $ARTIFACTORY_USER -c "ulimit -n")
+    desired_open_file_limit=32000
+    if [ "$current_open_file_limit" != "unlimited" ] && [ $current_open_file_limit -lt $desired_open_file_limit ]; then
+        eerror "Maximum number of open files ($current_open_file_limit) is too small!"
+        eerror "You should add:"
+        eerror "artifactory soft nofile $desired_open_file_limit"
+        eerror "artifactory hard nofile $desired_open_file_limit"
+        eerror "to your /etc/security/limits.conf file."
+        return 1
+    fi
+
+    current_max_process_limit=$(su -l $ARTIFACTORY_USER -c "ulimit -u")
+    desired_max_process_limit=1024
+    if [ "$current_max_process_limit" != "unlimited" ] && [ $current_max_process_limit -lt $desired_max_process_limit ]; then
+        eerror "Number of processes $current_max_process_limit is too small!"
+        eerror "You should add:"
+        eerror "artifactory soft nproc $desired_max_process_limit"
+        eerror "artifactory hard nproc $desired_max_process_limit"
+        eerror "to your /etc/security/limits.conf file."
+        return 1
+    fi
+
+    if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
+        einfo "Found java executable in $JAVA_HOME"
+        _java="$JAVA_HOME/bin/java"
+    elif command -v java > dev/null 2>&1 ; then
+        _java=java
+    else
+        eerror "No Java Runtime Environment (jre) found! At least java-$REQUIRED_JAVA_VERSION is required."
+        return 1
+    fi
+    if [ "$_java" ]; then
+        java_version=$($_java -version 2>&1 | grep 'version' | cut -d ' ' -f3 | tr -d \")
+        java_major=$(echo $java_version | cut -d . -f1-2)
+        if [ "$java_major" != "$REQUIRED_JAVA_VERSION" ] ; then
+            eerror "Java version $java_version is too old, java-$REQUIRED_JAVA_VERSION is required."
+            return 1
+        fi
+    fi
+}
+
+# We have to pass start/stop through to catalina.sh, which doesn't understand restart (and restart can't be overridden in OpenRC):
+start() {
+    get_pid_info
+    is_mgmt_port_used
+    if [ $mgmt_port_used -ne 0 ] || [ -n "$javaPs" ]; then
+        eerror "$RC_SERVICE already started!"
+        return 1
+    else
+        ebegin "Starting $RC_SERVICE"
+        start-stop-daemon --exec $command --pidfile $pidfile --user $user:$group --wait $START_TIMEOUT start
+        RETVAL=$?
+        eend $RETVAL "start-stop-daemon failed to start $RC_SERVICE"
+    fi
+
+
+    is_mgmt_port_used
+    seconds=1
+    while [ $mgmt_port_used -eq 0 ] && [ $seconds -lt $START_TIMEOUT ]; do
+        sleep 1
+        $((seconds=seconds+1))
+        is_mgmt_port_used
+    done
+    if [ $mgmt_port_used -eq 0 ]; then
+        eerror "$RC_SERVICE did not start in $START_TIMEOUT seconds!"
+        return 1
+    elif [ $mgmt_port_used -eq 1 ]; then
+        einfo "$RC_SERVICE started"
+        [ $RETVAL=0 ] && touch $CATALINA_LOCK_FILE
+    else
+        eerror "Got unexpected result when checking port $CATALINA_MGMT_PORT"
+        return 1
+    fi
+    return $RETVAL
+}
+
+stop() {
+    ebegin "Stopping $RC_SERVICE"
+    start-stop-daemon --stop --pidfile $pidfile --wait $START_TIMEOUT stop
+    RETVAL=$?
+    eend $RETVAL "Failed to stop $RC_SERVICE!"
+
+    [ $RETVAL=0 ] && rm -f "$CATALINA_LOCK_FILE" "$pidfile"
+    return $RETVAL
+}
+
+status() {
+    is_mgmt_port_used
+    if [ $mgmt_port_used -eq 0 ]; then
+        if [ -e "$pidfile" ]; then
+            eerror "$RC_SERVICE stopped but the pid file $pidfile still exists!"
+            RETVAL=1
+        else
+            if [ -e "$CATALINA_LOCK_FILE" ]; then
+                eerror "$RC_SERVICE is stopped but the lock file $CATALINA_LOCK_FILE still exists!"
+                RETVAL=2
+            else
+                eerror "$RC_SERVICE is stopped"
+                RETVAL=3
+            fi
+        fi
+    else
+        einfo "$RC_SERVICE is running"
+        RETVAL=0
+    fi
+    return $RETVAL
+}


             reply	other threads:[~2016-10-14 17:49 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-14 17:49 Austin English [this message]
  -- strict thread matches above, loose matches on Subject: below --
2017-07-12 22:06 [gentoo-commits] repo/gentoo:master commit in: dev-util/artifactory-bin/files/, dev-util/artifactory-bin/ Austin English

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1476467383.5718cff0244fecb9ea96e9eadb8769b464396fee.wizardedit@gentoo \
    --to=wizardedit@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox