From 3ef0fc98e5acf96b6be7f81d94f934a2e83d7ef2 Mon Sep 17 00:00:00 2001 From: Giorgio Peron Date: Thu, 28 Dec 2023 11:09:40 +0100 Subject: development/sonarqube: Updated for version 10.3.0.82913. Signed-off-by: Willy Sudiarto Raharjo --- development/sonarqube/README | 23 -- development/sonarqube/README.SBo | 61 ++++ development/sonarqube/doinst.sh | 4 +- development/sonarqube/rc.sonarqube | 550 +---------------------------- development/sonarqube/slack-desc | 2 +- development/sonarqube/sonarqube.SlackBuild | 54 ++- development/sonarqube/sonarqube.info | 14 +- 7 files changed, 105 insertions(+), 603 deletions(-) create mode 100644 development/sonarqube/README.SBo mode change 100644 => 100755 development/sonarqube/rc.sonarqube diff --git a/development/sonarqube/README b/development/sonarqube/README index 47c10a8d4e..7ef6bb37f1 100644 --- a/development/sonarqube/README +++ b/development/sonarqube/README @@ -1,26 +1,3 @@ SonarQube software (previously called Sonar) is an open source quality management platform, dedicated to continuously analyze and measure technical quality, from project portfolio to method. - -To create the MariaDB SonarQube database run: - -CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; -CREATE USER 'sonar' IDENTIFIED BY 'sonar'; -GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; -GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar'; -FLUSH PRIVILEGES; - -Then start the service - /etc/rc.d/rc.sonarqube start - -Then point your browser to - http://localhost:9000/sonarqube/ - -Then login as: - user: admin - password: admin - -This requires a "sonar" user and group. - groupadd -g 287 sonar - useradd -g 287 -u 287 -r -c 'SonarQube user' \ - -s /bin/bash -d /usr/share/sonarqube sonar diff --git a/development/sonarqube/README.SBo b/development/sonarqube/README.SBo new file mode 100644 index 0000000000..881b8f4d29 --- /dev/null +++ b/development/sonarqube/README.SBo @@ -0,0 +1,61 @@ +README.SBo + +This package requires a "sonar" user and group: + + # groupadd -g 287 sonar + # useradd -g 287 -u 287 -r -c 'SonarQube user' \ + -s /bin/bash -d /usr/share/sonarqube sonar + +Now start the SonarQube service + + # /etc/rc.d/rc.sonarqube start + +And point your browser to + http://localhost:9000/sonarqube/ + +You can login as: + user: admin + password: admin + +Please read the documentation for more information: + + https://docs.sonarsource.com/sonarqube/latest/ + +The database postgresql (version 14.x or 15.x) is an optional package, +but highly recommended. +To create the PostgreSQL SonarQube database: + + 1. init the database + + # su postgres -c \\ + "initdb -D /var/lib/pgsql/14/data --locale=en_US.UTF-8 -A md5 -W" + + 2. add sonar user and database + + # su - postgres + # psql + > create user sonar; + > ALTER USER sonar WITH ENCRYPTED password '**secret**'; + > create database sonarqube; + > GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonar; + > \q + # exit + + 3. to configure SonarQube to use PostgreSQL, edit the file + /etc/sonarqube/sonar.properties adding + + sonar.jdbc.username=sonar + sonar.jdbc.password=**secret** + sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube + + Note: Replace '**secret**' with the password you set in step 2. + +Finally check the file descriptors and virtual memory defined in +/etc/security/limits.conf because you probably need to add + + sonar - as unlimited + sonar soft nofile 655535 + +and run + + # sysctl vm.max_map_count=262144 diff --git a/development/sonarqube/doinst.sh b/development/sonarqube/doinst.sh index 79a4ddfee7..abcbf87a20 100644 --- a/development/sonarqube/doinst.sh +++ b/development/sonarqube/doinst.sh @@ -20,6 +20,4 @@ preserve_perms() { } preserve_perms etc/rc.d/rc.sonarqube.new -config usr/share/sonarqube/conf/sonar.properties.new -config usr/share/sonarqube/conf/wrapper.conf.new - +config etc/sonarqube/sonar.properties.new diff --git a/development/sonarqube/rc.sonarqube b/development/sonarqube/rc.sonarqube old mode 100644 new mode 100755 index fa31ee7ecc..63b82f486c --- a/development/sonarqube/rc.sonarqube +++ b/development/sonarqube/rc.sonarqube @@ -1,562 +1,42 @@ -#! /bin/sh +#!/bin/sh -# -# Copyright (c) 1999, 2006 Tanuki Software Inc. -# -# Java Service Wrapper sh script. Suitable for starting and stopping -# wrapped Java applications on UNIX platforms. -# - -#----------------------------------------------------------------------------- -# These settings can be modified to fit the needs of your application - -# Default values for the Application variables, below. -# -# NOTE: The build for specific applications may override this during the resource-copying -# phase, to fill in a concrete name and avoid the use of the defaults specified here. -DEF_APP_NAME="SonarQube" -DEF_APP_LONG_NAME="SonarQube" - -# Application -APP_NAME="${DEF_APP_NAME}" -APP_LONG_NAME="${DEF_APP_LONG_NAME}" - -# Wrapper -WRAPPER_CMD="./wrapper" -WRAPPER_CONF="/etc/sonarqube/wrapper.conf" - -# Priority at which to run the wrapper. See "man nice" for valid priorities. -# nice is only used if a priority is specified. -PRIORITY= - -# Location of the pid file. PIDDIR="/var/run/sonarqube" - -# If uncommented, causes the Wrapper to be shutdown using an anchor file. -# When launched with the 'start' command, it will also ignore all INT and -# TERM signals. -#IGNORE_SIGNALS=true - -# If specified, the Wrapper will be run as the specified user. -# IMPORTANT - Make sure that the user has the required privileges to write -# the PID file and wrapper.log files. Failure to be able to write the log -# file will cause the Wrapper to exit without any way to write out an error -# message. -# NOTE - This will set the user which is used to run the Wrapper as well as -# the JVM and is not useful in situations where a privileged resource or -# port needs to be allocated prior to the user being changed. -RUN_AS_USER=sonar - -# The following two lines are used by the chkconfig command. Change as is -# appropriate for your application. They should remain commented. -# chkconfig: 2345 20 80 -# description: Test Wrapper Sample Application - -# Do not modify anything beyond this point -#----------------------------------------------------------------------------- - -# Get the fully qualified path to the script -case $0 in - /*) - SCRIPT="$0" - ;; - *) - PWD=`pwd` - SCRIPT="$PWD/$0" - ;; -esac - -# Resolve the true real path without any sym links. -CHANGED=true -while [ "X$CHANGED" != "X" ] -do - # Change spaces to ":" so the tokens can be parsed. - SAFESCRIPT=`echo $SCRIPT | sed -e 's; ;:;g'` - # Get the real path to this script, resolving any symbolic links - TOKENS=`echo $SAFESCRIPT | sed -e 's;/; ;g'` - REALPATH= - for C in $TOKENS; do - # Change any ":" in the token back to a space. - C=`echo $C | sed -e 's;:; ;g'` - REALPATH="$REALPATH/$C" - # If REALPATH is a sym link, resolve it. Loop for nested links. - while [ -h "$REALPATH" ] ; do - LS="`ls -ld "$REALPATH"`" - LINK="`expr "$LS" : '.*-> \(.*\)$'`" - if expr "$LINK" : '/.*' > /dev/null; then - # LINK is absolute. - REALPATH="$LINK" - else - # LINK is relative. - REALPATH="`dirname "$REALPATH"`""/$LINK" - fi - done - done - - if [ "$REALPATH" = "$SCRIPT" ] - then - CHANGED="" - else - SCRIPT="$REALPATH" - fi -done - -# Change the current directory to the location of the script -cd "`dirname "$REALPATH"`" -REALDIR=`pwd` - -# If the PIDDIR is relative, set its value relative to the full REALPATH to avoid problems if -# the working directory is later changed. -FIRST_CHAR=`echo $PIDDIR | cut -c1,1` -if [ "$FIRST_CHAR" != "/" ] -then - PIDDIR=$REALDIR/$PIDDIR -fi -# Same test for WRAPPER_CMD -FIRST_CHAR=`echo $WRAPPER_CMD | cut -c1,1` -if [ "$FIRST_CHAR" != "/" ] -then - WRAPPER_CMD=$REALDIR/$WRAPPER_CMD -fi -# Same test for WRAPPER_CONF -FIRST_CHAR=`echo $WRAPPER_CONF | cut -c1,1` -if [ "$FIRST_CHAR" != "/" ] -then - WRAPPER_CONF=$REALDIR/$WRAPPER_CONF -fi - -# Process ID -ANCHORFILE="$PIDDIR/$APP_NAME.anchor" -PIDFILE="$PIDDIR/$APP_NAME.pid" -LOCKDIR="/var/lock/subsys" -LOCKFILE="$LOCKDIR/$APP_NAME" -pid="" - -# Resolve the location of the 'ps' command -PSEXE="/usr/bin/ps" -if [ ! -x "$PSEXE" ] -then - PSEXE="/bin/ps" - if [ ! -x "$PSEXE" ] - then - echo "Unable to locate 'ps'." - echo "Please report this message along with the location of the command on your system." - exit 1 - fi -fi - -# Resolve the os -DIST_OS=`uname -s | tr [:upper:] [:lower:] | tr -d [:blank:]` -case "$DIST_OS" in - 'sunos') - DIST_OS="solaris" - ;; - 'hp-ux' | 'hp-ux64') - DIST_OS="hpux" - ;; - 'darwin') - DIST_OS="macosx" - ;; - 'unix_sv') - DIST_OS="unixware" - ;; -esac - -# Resolve the architecture -DIST_ARCH=`uname -p | tr [:upper:] [:lower:] | tr -d [:blank:]` -if [ "$DIST_ARCH" = "unknown" ] -then - DIST_ARCH=`uname -m | tr [:upper:] [:lower:] | tr -d [:blank:]` -fi -case "$DIST_ARCH" in - 'amd64' | 'athlon' | 'ia32' | 'ia64' | 'i386' | 'i486' | 'i586' | 'i686' | 'x86_64') - DIST_ARCH="x86" - ;; - 'ip27') - DIST_ARCH="mips" - ;; - 'power' | 'powerpc' | 'power_pc' | 'ppc64') - DIST_ARCH="ppc" - ;; - 'pa_risc' | 'pa-risc') - DIST_ARCH="parisc" - ;; - 'sun4u' | 'sparcv9') - DIST_ARCH="sparc" - ;; - '9000/800') - DIST_ARCH="parisc" - ;; -esac - -outputFile() { - if [ -f "$1" ] - then - echo " $1 (Found but not executable.)"; - else - echo " $1" - fi -} - -# Decide on the wrapper binary to use. -# If a 32-bit wrapper binary exists then it will work on 32 or 64 bit -# platforms, if the 64-bit binary exists then the distribution most -# likely wants to use long names. Otherwise, look for the default. -# For macosx, we also want to look for universal binaries. -WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32" -if [ -x "$WRAPPER_TEST_CMD" ] -then - WRAPPER_CMD="$WRAPPER_TEST_CMD" -else - if [ "$DIST_OS" = "macosx" ] - then - WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-32" - if [ -x "$WRAPPER_TEST_CMD" ] - then - WRAPPER_CMD="$WRAPPER_TEST_CMD" - else - WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64" - if [ -x "$WRAPPER_TEST_CMD" ] - then - WRAPPER_CMD="$WRAPPER_TEST_CMD" - else - WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-64" - if [ -x "$WRAPPER_TEST_CMD" ] - then - WRAPPER_CMD="$WRAPPER_TEST_CMD" - else - if [ ! -x "$WRAPPER_CMD" ] - then - echo "Unable to locate any of the following binaries:" - outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32" - outputFile "$WRAPPER_CMD-$DIST_OS-universal-32" - outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64" - outputFile "$WRAPPER_CMD-$DIST_OS-universal-64" - outputFile "$WRAPPER_CMD" - exit 1 - fi - fi - fi - fi - else - WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64" - if [ -x "$WRAPPER_TEST_CMD" ] - then - WRAPPER_CMD="$WRAPPER_TEST_CMD" - else - if [ ! -x "$WRAPPER_CMD" ] - then - echo "Unable to locate any of the following binaries:" - outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32" - outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64" - outputFile "$WRAPPER_CMD" - exit 1 - fi - fi - fi -fi - -# Build the nice clause -if [ "X$PRIORITY" = "X" ] -then - CMDNICE="" -else - CMDNICE="nice -$PRIORITY" -fi - -# Build the anchor file clause. -if [ "X$IGNORE_SIGNALS" = "X" ] -then - ANCHORPROP= - IGNOREPROP= -else - ANCHORPROP=wrapper.anchorfile=\"$ANCHORFILE\" - IGNOREPROP=wrapper.ignore_signals=TRUE -fi - -# Build the lock file clause. Only create a lock file if the lock directory exists on this platform. -LOCKPROP= -if [ -d $LOCKDIR ] -then - if [ -w $LOCKDIR ] - then - LOCKPROP=wrapper.lockfile=\"$LOCKFILE\" - fi -fi - -checkUser() { - # $1 touchLock flag - # $2 command - - # Check the configured user. If necessary rerun this script as the desired user. - if [ "X$RUN_AS_USER" != "X" ] - then - # Resolve the location of the 'id' command - IDEXE="/usr/xpg4/bin/id" - if [ ! -x "$IDEXE" ] - then - IDEXE="/usr/bin/id" - if [ ! -x "$IDEXE" ] - then - echo "Unable to locate 'id'." - echo "Please report this message along with the location of the command on your system." - exit 1 - fi - fi - - if [ "`$IDEXE -u -n`" = "$RUN_AS_USER" ] - then - # Already running as the configured user. Avoid password prompts by not calling su. - RUN_AS_USER="" - fi - fi - if [ "X$RUN_AS_USER" != "X" ] - then - # If LOCKPROP and $RUN_AS_USER are defined then the new user will most likely not be - # able to create the lock file. The Wrapper will be able to update this file once it - # is created but will not be able to delete it on shutdown. If $2 is defined then - # the lock file should be created for the current command - if [ "X$LOCKPROP" != "X" ] - then - if [ "X$1" != "X" ] - then - # Resolve the primary group - RUN_AS_GROUP=`groups $RUN_AS_USER | awk '{print $3}' | tail -1` - if [ "X$RUN_AS_GROUP" = "X" ] - then - RUN_AS_GROUP=$RUN_AS_USER - fi - touch $LOCKFILE - chown $RUN_AS_USER:$RUN_AS_GROUP $LOCKFILE - fi - fi - - # Still want to change users, recurse. This means that the user will only be - # prompted for a password once. Variables shifted by 1 - su -m $RUN_AS_USER -c "\"$REALPATH\" $2" - RETVAL=$? - - # Now that we are the original user again, we may need to clean up the lock file. - if [ "X$LOCKPROP" != "X" ] - then - getpid - if [ "X$pid" = "X" ] - then - # Wrapper is not running so make sure the lock file is deleted. - if [ -f "$LOCKFILE" ] - then - rm "$LOCKFILE" - fi - fi - fi - - exit $RETVAL - fi -} - -getpid() { - if [ -f "$PIDFILE" ] - then - if [ -r "$PIDFILE" ] - then - pid=`cat "$PIDFILE"` - if [ "X$pid" != "X" ] - then - # It is possible that 'a' process with the pid exists but that it is not the - # correct process. This can happen in a number of cases, but the most - # common is during system startup after an unclean shutdown. - # The ps statement below looks for the specific wrapper command running as - # the pid. If it is not found then the pid file is considered to be stale. - pidtest=`$PSEXE -p $pid -o args | grep "$WRAPPER_CMD" | tail -1` - if [ "X$pidtest" = "X" ] - then - # This is a stale pid file. - rm -f "$PIDFILE" - echo "Removed stale pid file: $PIDFILE" - pid="" - fi - fi - else - echo "Cannot read $PIDFILE." - exit 1 - fi - fi -} - -testpid() { - pid=`$PSEXE -p $pid | grep $pid | grep -v grep | awk '{print $1}' | tail -1` - if [ "X$pid" = "X" ] - then - # Process is gone so remove the pid file. - rm -f "$PIDFILE" - pid="" - fi -} - -console() { - echo "Running $APP_LONG_NAME..." - getpid - if [ "X$pid" = "X" ] - then - # The string passed to eval must handles spaces in paths correctly. - COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=$APP_NAME wrapper.pidfile=\"$PIDFILE\" $ANCHORPROP $LOCKPROP" - eval $COMMAND_LINE - else - echo "$APP_LONG_NAME is already running." - exit 1 - fi -} - -start() { - echo "Starting $APP_LONG_NAME..." - getpid - if [ "X$pid" = "X" ] - then - # The string passed to eval must handles spaces in paths correctly. - COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=$APP_NAME wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $LOCKPROP" - eval $COMMAND_LINE - else - echo "$APP_LONG_NAME is already running." - exit 1 - fi - getpid - if [ "X$pid" != "X" ] - then - echo "Started $APP_LONG_NAME." - else - echo "Failed to start $APP_LONG_NAME." - fi -} - -stopit() { - echo "Stopping $APP_LONG_NAME..." - getpid - if [ "X$pid" = "X" ] - then - echo "$APP_LONG_NAME was not running." - else - if [ "X$IGNORE_SIGNALS" = "X" ] - then - # Running so try to stop it. - kill $pid - if [ $? -ne 0 ] - then - # An explanation for the failure should have been given - echo "Unable to stop $APP_LONG_NAME." - exit 1 - fi - else - rm -f "$ANCHORFILE" - if [ -f "$ANCHORFILE" ] - then - # An explanation for the failure should have been given - echo "Unable to stop $APP_LONG_NAME." - exit 1 - fi - fi - - # We can not predict how long it will take for the wrapper to - # actually stop as it depends on settings in wrapper.conf. - # Loop until it does. - savepid=$pid - CNT=0 - TOTCNT=0 - while [ "X$pid" != "X" ] - do - # Show a waiting message every 5 seconds. - if [ "$CNT" -lt "5" ] - then - CNT=`expr $CNT + 1` - else - echo "Waiting for $APP_LONG_NAME to exit..." - CNT=0 - fi - TOTCNT=`expr $TOTCNT + 1` - - sleep 1 - - testpid - done - - pid=$savepid - testpid - if [ "X$pid" != "X" ] - then - echo "Failed to stop $APP_LONG_NAME." - exit 1 - else - echo "Stopped $APP_LONG_NAME." - fi - fi -} - -status() { - getpid - if [ "X$pid" = "X" ] - then - echo "$APP_LONG_NAME is not running." - exit 1 - else - echo "$APP_LONG_NAME is running ($pid)." - exit 0 - fi -} - -dump() { - echo "Dumping $APP_LONG_NAME..." - getpid - if [ "X$pid" = "X" ] - then - echo "$APP_LONG_NAME was not running." - - else - kill -3 $pid - - if [ $? -ne 0 ] - then - echo "Failed to dump $APP_LONG_NAME." - exit 1 - else - echo "Dumped $APP_LONG_NAME." - fi - fi -} +RUNAS="sonar" +SCRIPT="/sbin/sonar.sh" +export SONAR_JAVA_PATH="/usr/lib64/java/bin/java" case "$1" in 'console') - checkUser touchlock $1 - console + su ${RUNAS} -c "PIDDIR=${PIDDIR} ${SCRIPT} $*" ;; 'start') - checkUser touchlock $1 - start + su ${RUNAS} -c "PIDDIR=${PIDDIR} ${SCRIPT} $*" ;; 'stop') - checkUser "" $1 - stopit + su ${RUNAS} -c "PIDDIR=${PIDDIR} ${SCRIPT} $*" + ;; + + 'force-stop') + su ${RUNAS} -c "PIDDIR=${PIDDIR} ${SCRIPT} $*" ;; 'restart') - checkUser touchlock $1 - stopit - start + su ${RUNAS} -c "PIDDIR=${PIDDIR} ${SCRIPT} $*" ;; 'status') - checkUser "" $1 - status + su ${RUNAS} -c "PIDDIR=${PIDDIR} ${SCRIPT} $*" ;; 'dump') - checkUser "" $1 - dump + su ${RUNAS} -c "PIDDIR=${PIDDIR} ${SCRIPT} $*" ;; *) - echo "Usage: $0 { console | start | stop | restart | status | dump }" + echo "Usage: $0 { console | start | stop | force-stop | restart | status | dump }" exit 1 ;; esac diff --git a/development/sonarqube/slack-desc b/development/sonarqube/slack-desc index e6a7dcdfe9..724d6cf6f8 100644 --- a/development/sonarqube/slack-desc +++ b/development/sonarqube/slack-desc @@ -14,6 +14,6 @@ sonarqube: measure technical quality, from project portfolio to method. sonarqube: sonarqube: sonarqube: -sonarqube: Homepage: http://www.sonarqube.org/ +sonarqube: Homepage: https://www.sonarqube.org/ sonarqube: sonarqube: diff --git a/development/sonarqube/sonarqube.SlackBuild b/development/sonarqube/sonarqube.SlackBuild index ed0f390ab9..ec5ff4f08a 100644 --- a/development/sonarqube/sonarqube.SlackBuild +++ b/development/sonarqube/sonarqube.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Slackware build script for sonarqube -# Copyright 2016 Giorgio Peron , Belluno, Italy +# Copyright 2023 Giorgio Peron , Belluno, Italy # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=sonarqube -VERSION=${VERSION:-5.6.1} +VERSION=${VERSION:-10.3.0.82913} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -62,21 +62,9 @@ TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} -if [ "$ARCH" = "i586" ]; then - SLKCFLAGS="-O2 -march=i586 -mtune=i686" - LIBDIRSUFFIX="" - BINDIR="linux-x86-32" -elif [ "$ARCH" = "i686" ]; then - SLKCFLAGS="-O2 -march=i686 -mtune=i686" - LIBDIRSUFFIX="" - BINDIR="linux-x86-32" -elif [ "$ARCH" = "x86_64" ]; then - SLKCFLAGS="-O2 -fPIC" - LIBDIRSUFFIX="64" - BINDIR="linux-x86-64" -else - SLKCFLAGS="-O2" - BINDIR="" +if [ "$ARCH" != "x86_64" ]; then + echo "$ARCH is not supported." + exit 1 fi set -e @@ -88,37 +76,35 @@ cd $TMP unzip $CWD/$PRGNAM-$VERSION.zip mkdir -p $PKG/usr/share/$PRGNAM -mkdir -p $PKG/var/{log,run,tmp}/$PRGNAM -mkdir -p $PKG/etc/rc.d +mkdir -p $PKG/var/{log,run,tmp,lib}/$PRGNAM +mkdir -p $PKG/etc/{$PRGNAM,rc.d} mv $TMP/$PRGNAM-$VERSION/* $PKG/usr/share/$PRGNAM/ # expose the configuration file under /etc -mv $PKG/usr/share/$PRGNAM/conf/sonar.properties{,.new} -mv $PKG/usr/share/$PRGNAM/conf/wrapper.conf{,.new} -cd $PKG/etc -ln -sf ../usr/share/$PRGNAM/conf $PRGNAM - -sed -i "s_sonar.jdbc.url=jdbc:h2:_#sonar.jdbc.url=jdbc:h2:_g" $PKG/usr/share/$PRGNAM/conf/sonar.properties.new -sed -i "s_#sonar.jdbc.url=jdbc:mysql:_sonar.jdbc.url=jdbc:mysql:_g" $PKG/usr/share/$PRGNAM/conf/sonar.properties.new -sed -i "s_#sonar.web.context=_sonar.web.context=/sonarqube_g" $PKG/usr/share/$PRGNAM/conf/sonar.properties.new -sed -i "s_wrapper.java.command=java_wrapper.java.command=/usr/lib${LIBDIRSUFFIX}/java/bin/java_g" $PKG/usr/share/$PRGNAM/conf/wrapper.conf.new - -chown -R sonar:sonar $PKG/usr/share/$PRGNAM -chown -R sonar:sonar $PKG/var/{log,run,tmp}/$PRGNAM +mv $PKG/usr/share/$PRGNAM/conf/sonar.properties $PKG/etc/$PRGNAM/sonar.properties.new +rm -rf $PKG/usr/share/$PRGNAM/conf +rm -rf $PKG/usr/share/$PRGNAM/data rm -rf $PKG/usr/share/$PRGNAM/logs rm -rf $PKG/usr/share/$PRGNAM/temp cd $PKG/usr/share/$PRGNAM +ln -fs ../../../etc/$PRGNAM conf +ln -fs ../../../var/lib/$PRGNAM data ln -fs ../../../var/log/$PRGNAM logs ln -fs ../../../var/tmp/$PRGNAM temp # remove the executables for the others platforms cd $PKG/usr/share/$PRGNAM/bin -find . -type d -not -name ${BINDIR} -not -name "." -not -name "lib" | xargs rm -rf +find . -type d -not -name "linux-x86-64" -not -name "." -not -name "lib" | xargs rm -rf + +chown -R sonar:sonar $PKG/usr/share/$PRGNAM +chown -R sonar:sonar $PKG/var/{log,run,tmp,lib}/$PRGNAM -cat $CWD/rc.$PRGNAM > $PKG/etc/rc.d/rc.$PRGNAM.new -sed -i "s:WRAPPER_CMD=\"./wrapper\":WRAPPER_CMD=\"/usr/share/sonarqube/bin/${BINDIR}/wrapper\":g" $PKG/etc/rc.d/rc.$PRGNAM.new +mkdir $PKG/sbin +cd $PKG/sbin +ln -fs ../usr/share/$PRGNAM/bin/${BINDIR}/sonar.sh sonar.sh +cp $CWD/rc.$PRGNAM $PKG/etc/rc.d/rc.$PRGNAM.new mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild diff --git a/development/sonarqube/sonarqube.info b/development/sonarqube/sonarqube.info index aa60c85219..50890c3b19 100644 --- a/development/sonarqube/sonarqube.info +++ b/development/sonarqube/sonarqube.info @@ -1,10 +1,10 @@ PRGNAM="sonarqube" -VERSION="5.6.1" -HOMEPAGE="http://www.sonarqube.org" -DOWNLOAD="https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.1.zip" -MD5SUM="d8729bc92fdcd601661aa23885a7c6f7" -DOWNLOAD_x86_64="" -MD5SUM_x86_64="" -REQUIRES="zulu-openjdk8" +VERSION="10.3.0.82913" +HOMEPAGE="https://www.sonarsource.com" +DOWNLOAD="UNSUPPORTED" +MD5SUM="" +DOWNLOAD_x86_64="https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-10.3.0.82913.zip" +MD5SUM_x86_64="1ead6982a8d565fde9b0571cc40d647b" +REQUIRES="OpenJDK17" MAINTAINER="Giorgio Peron" EMAIL="giorgio.peron@gmail.com" -- cgit v1.2.3-65-gdbad