[java-sig-commits] [javapackages] Don't hardcode absolute paths

Mikolaj Izdebski mizdebsk at fedoraproject.org
Mon Sep 16 08:55:10 UTC 2013


commit ae7f8565ed2316e1af4f5c95dc779dbcb877b7da
Author: Mikolaj Izdebski <mizdebsk at redhat.com>
Date:   Mon Sep 16 10:01:16 2013 +0200

    Don't hardcode absolute paths
    
    There is a need for variable prefixes so that relocatable RPMs can be
    created for javapackages-tools.

 bin/build-classpath        |    6 +++---
 bin/build-jar-repository   |    6 +++---
 bin/check-binary-files     |    6 +++---
 bin/clean-binary-files     |    8 ++++----
 bin/create-jar-links       |    8 ++++----
 bin/diff-jars              |    4 ++--
 bin/find-jar               |    6 +++---
 bin/jvmjar                 |   12 ++++++------
 bin/mvn-rpmbuild           |    2 +-
 bin/rebuild-jar-repository |    6 +++---
 build                      |   19 ++++++++++++++++++-
 etc/macros.fjava           |    4 ++--
 install                    |   28 ++++++++++++++--------------
 java-utils/java-functions  |   28 ++++++++++++++--------------
 test/xmvn                  |    4 ++--
 15 files changed, 82 insertions(+), 65 deletions(-)
---
diff --git a/bin/build-classpath b/bin/build-classpath
index f825cd2..8bb9e9b 100755
--- a/bin/build-classpath
+++ b/bin/build-classpath
@@ -7,12 +7,12 @@
 # $Id: build-classpath,v 1.2 2005/09/17 07:06:19 david Exp $
 
 # Import java functions
-[ -r /usr/share/java-utils/java-functions ] \
- &&  . /usr/share/java-utils/java-functions || exit 1
+[ -r "%{javadir}-utils/java-functions" ] \
+ &&  . "%{javadir}-utils/java-functions" || exit 1
 
 # Prints help message
 usage() {
-/bin/cat >&2 << EOF_USAGE
+cat >&2 << EOF_USAGE
 Usage: $0 <jar1> [<jar2> .. <jarn>]
 jarX: name of a jar
       Example: jndi
diff --git a/bin/build-jar-repository b/bin/build-jar-repository
index 780be9e..a6fba32 100755
--- a/bin/build-jar-repository
+++ b/bin/build-jar-repository
@@ -7,12 +7,12 @@
 # $Id: build-jar-repository,v 1.2 2005/09/17 07:06:19 david Exp $
 
 # Import java functions
-[ -r /usr/share/java-utils/java-functions ] \
- &&  . /usr/share/java-utils/java-functions || exit 1
+[ -r "%{javadir}-utils/java-functions" ] \
+ &&  . "%{javadir}-utils/java-functions" || exit 1
 
 # Prints help message
 usage() {
-/bin/cat >&2 << EOF_USAGE
+cat >&2 << EOF_USAGE
 Usage: $0 [<linktype>] <directory> <jar1> [<jar2> .. <jarn>]
 
 With:
diff --git a/bin/check-binary-files b/bin/check-binary-files
index c7872d7..b1f7e5b 100755
--- a/bin/check-binary-files
+++ b/bin/check-binary-files
@@ -7,12 +7,12 @@
 # $Id: check-binary-files,v 1.1 2006/09/19 19:39:37 fnasser Exp $
 
 # Import java functions
-[ -r /usr/share/java-utils/java-functions ] \
- &&  . /usr/share/java-utils/java-functions || exit 1
+[ -r "%{javadir}-utils/java-functions" ] \
+ &&  . "%{javadir}-utils/java-functions" || exit 1
 
 # Prints help message
 usage() {
-	/bin/cat >&2 << EOF_USAGE
+	cat >&2 << EOF_USAGE
 
 Usage: $0 -f instructions_file [-a archive_file]
 
diff --git a/bin/clean-binary-files b/bin/clean-binary-files
index e844119..3afe7a1 100755
--- a/bin/clean-binary-files
+++ b/bin/clean-binary-files
@@ -7,12 +7,12 @@
 # $Id: clean-binary-files,v 1.1 2006/09/19 19:39:37 fnasser Exp $
 
 # Import java functions
-[ -r /usr/share/java-utils/java-functions ] \
- &&  . /usr/share/java-utils/java-functions || exit 1
+[ -r "%{javadir}-utils/java-functions" ] \
+ &&  . "%{javadir}-utils/java-functions" || exit 1
 
 # Prints help message
 usage() {
-	/bin/cat >&2 << EOF_USAGE
+	cat >&2 << EOF_USAGE
 
 Usage: $0 {[-f {-, instructions_file}], [-e exclusion_file] [-l]} [-a archive_file] [-d custom_jar_map] [-n] [-p] [-s] 
 
@@ -44,7 +44,7 @@ set_jvm_dirs || exit 5
 _WORKING_DIR=`pwd`
 
 # Default jar map
-_JAR_MAP_FILE=/usr/share/java-utils/jarname-jpp-map
+_JAR_MAP_FILE="%{javadir}-utils/jarname-jpp-map"
 
 # Variables used for comparing file lists
 _TEMP_COMPARISON_FILE=/tmp/_temp_comparison_file.$$
diff --git a/bin/create-jar-links b/bin/create-jar-links
index fb1fcd1..5f50d0e 100755
--- a/bin/create-jar-links
+++ b/bin/create-jar-links
@@ -7,12 +7,12 @@
 # $Id: create-jar-links,v 1.1 2006/09/19 19:39:37 fnasser Exp $
 
 # Import java functions
-[ -r /usr/share/java-utils/java-functions ] \
- &&  . /usr/share/java-utils/java-functions || exit 1
+[ -r "%{javadir}-utils/java-functions" ] \
+ &&  . "%{javadir}-utils/java-functions" || exit 1
 
 # Prints help message
 usage() {
-	/bin/cat >&2 << EOF_USAGE
+	cat >&2 << EOF_USAGE
 
 Usage: $0 -f instructions_file [-a archive_file] [-p]
 
@@ -34,7 +34,7 @@ check_java_env || exit 4
 set_jvm_dirs || exit 5
 
 # Default jar map
-_JAR_MAP_FILE=/usr/share/java-utils/jarname-jpp-map
+_JAR_MAP_FILE="%{javadir}-utils/jarname-jpp-map"
 
 # Directory in which script was invoked
 _WORKING_DIR=`pwd`
diff --git a/bin/diff-jars b/bin/diff-jars
index d378bb5..bd5ef03 100755
--- a/bin/diff-jars
+++ b/bin/diff-jars
@@ -13,8 +13,8 @@
 # 1.3  - fix java-functions location
 
 # Source functions library
-if [ -r /usr/share/java-utils/java-functions ] ; then 
-  . /usr/share/java-utils/java-functions
+if [ -r "%{javadir}-utils/java-functions" ] ; then
+  . "%{javadir}-utils/java-functions"
 else
   echo "Can't find functions library, aborting"
   exit 1
diff --git a/bin/find-jar b/bin/find-jar
index 86447a4..87e58f0 100755
--- a/bin/find-jar
+++ b/bin/find-jar
@@ -6,12 +6,12 @@
 # $Id: find-jar,v 1.2 2005/09/17 07:06:19 david Exp $
 
 # Import java functions
-[ -r /usr/share/java-utils/java-functions ] \
- &&  . /usr/share/java-utils/java-functions || exit 1
+[ -r "%{javadir}-utils/java-functions" ] \
+ &&  . "%{javadir}-utils/java-functions" || exit 1
 
 # Prints help message
 usage() {
-/bin/cat << EOF_USAGE
+cat << EOF_USAGE
 Usage: $0 <jar>
 jarX: name of a jar or a jar directory
       Example: javamail
diff --git a/bin/jvmjar b/bin/jvmjar
index 778e325..9addea0 100755
--- a/bin/jvmjar
+++ b/bin/jvmjar
@@ -7,14 +7,14 @@
 # $Id: jvmjar,v 1.1 2004/12/15 16:23:45 robert Exp $
 
 # System-wide java configuration
-JAVA_CONF=/etc/java/java.conf
+JAVA_CONF="%{sysconfdir}/java/java.conf"
 
 if [ -z "$JAVA_LIBDIR" ] ; then 
-	[ -r "$JAVA_CONF" ] && . "$JAVA_CONF" || JAVA_LIBDIR=/usr/share/java
+	[ -r "$JAVA_CONF" ] && . "$JAVA_CONF" || JAVA_LIBDIR="%{javadir}"
 fi
 
 usage() {
-/bin/cat << EOF_USAGE
+cat << EOF_USAGE
 Usage: $0 <l|u> <jar> <extension> <version> [<versionB> ... <versionZ>]
 - l|u: link/unlink jars
 - jar: name of the jar present in $JAVA_LIBDIR-ext to install as a jvm extension
@@ -57,10 +57,10 @@ shift
 
 for version in "$@" ; do
     if [ $LINK = "true" ] ; then
-	[ -d $JAVA_LIBDIR-$version ] || /usr/bin/install -d -m 755 $JAVA_LIBDIR-$version
-	/bin/ln -fs "../java-ext/$ORIGINAL_JAR_NAME.jar" \
+	[ -d $JAVA_LIBDIR-$version ] || install -d -m 755 $JAVA_LIBDIR-$version
+	ln -fs "../java-ext/$ORIGINAL_JAR_NAME.jar" \
 	    $JAVA_LIBDIR-$version/$EXTENSION_NAME.jar
     else
-	/bin/rm -f "$JAVA_LIBDIR-$version/$EXTENSION_NAME.jar"
+	rm -f "$JAVA_LIBDIR-$version/$EXTENSION_NAME.jar"
     fi
 done
diff --git a/bin/mvn-rpmbuild b/bin/mvn-rpmbuild
index 921f841..4844293 100755
--- a/bin/mvn-rpmbuild
+++ b/bin/mvn-rpmbuild
@@ -76,7 +76,7 @@ export XMVN_COMPAT
 # used without giving groupId prefix.
 for groupId in org/apache/maven/plugins org/codehaus/mojo; do
     mkdir -p "$repo"/${groupId}
-    ln -sf /etc/maven/metadata-${groupId////-}.xml \
+    ln -sf "%{sysconfdir}"/maven/metadata-${groupId////-}.xml \
         "$repo"/${groupId}/maven-metadata-central.xml
 done
 
diff --git a/bin/rebuild-jar-repository b/bin/rebuild-jar-repository
index 65c1cd2..770ddf1 100755
--- a/bin/rebuild-jar-repository
+++ b/bin/rebuild-jar-repository
@@ -7,12 +7,12 @@
 # $Id: rebuild-jar-repository,v 1.3 2006/03/29 19:45:09 jasonc Exp $
 
 # Import java functions
-[ -r /usr/share/java-utils/java-functions ] \
- &&  . /usr/share/java-utils/java-functions || exit 1
+[ -r "%{javadir}-utils/java-functions" ] \
+ &&  . "%{javadir}-utils/java-functions" || exit 1
 
 # Prints help message
 usage() {
-/bin/cat >&2 << EOF_USAGE
+cat >&2 << EOF_USAGE
 Usage: $0 [<linktype>] <directory>
                                                                                                                               
 With:
diff --git a/build b/build
index 8a2205d..f2f1ef3 100755
--- a/build
+++ b/build
@@ -52,14 +52,31 @@ expand()
 {
     local target=target/$(basename "${1}")
 
-    sed -e "s|%{javadir}|${javadir}|" \
+    sed \
+        -e "s|%{bindir}|${bindir}|" \
+        -e "s|%{datadir}|${datadir}|" \
+        -e "s|%{javadir}|${javadir}|" \
         -e "s|%{jnidir}|${jnidir}|" \
         -e "s|%{jvmdir}|${jvmdir}|" \
         -e "s|%{sysconfdir}|${sysconfdir}|" \
         "${1}" >"${target}"
 }
 
+expand bin/abs2rel
+expand bin/build-classpath
+expand bin/build-classpath-directory
+expand bin/build-jar-repository
+expand bin/check-binary-files
+expand bin/clean-binary-files
+expand bin/create-jar-links
+expand bin/diff-jars
+expand bin/find-jar
+expand bin/jvmjar
+expand bin/mvn-local
+expand bin/mvn-rpmbuild
+expand bin/rebuild-jar-repository
 expand etc/java.conf
+expand java-utils/java-functions
 
 manpage abs2rel
 manpage find-jar
diff --git a/etc/macros.fjava b/etc/macros.fjava
index 171a849..18e954d 100644
--- a/etc/macros.fjava
+++ b/etc/macros.fjava
@@ -71,7 +71,7 @@ for _dir in %{_jnidir} %{_javajnidir} %{_javadir}; do \
 	_jpath="%{buildroot}$_dir/$_jarpart" \
     fi \
 done \
-python -m /usr/share/java-utils/maven_depmap %{-a} %{-v*:-r %{-v*}} \\\
+python -m %{javadir}-utils/maven_depmap %{-a} %{-v*:-r %{-v*}} \\\
           %{-m:-m %{buildroot}%{_maven_repository}} \\\
           %{buildroot}%{_mavendepmapfragdir}/%{name}%{-f*:-%{-f*}} \\\
           %{buildroot}%{_mavenpomdir}/$_pompart \\\
@@ -188,7 +188,7 @@ fi \
 #
 
 # Private macro, shouldn't be used directly
-%__pom_call           . /usr/share/java-utils/pom_editor.sh; pom_
+%__pom_call           . %{javadir}-utils/pom_editor.sh; pom_
 
 
 # %pom_remove_dep - remove dependency on Maven artifact from POM file
diff --git a/install b/install
index 3aa9b47..9344644 100755
--- a/install
+++ b/install
@@ -99,24 +99,24 @@ for ver in 1.5.0 1.6.0 1.7.0 1.8.0; do
     dir "${jnidir}-${ver}"
 done
 
-inst_exec bin/abs2rel "${bindir}"
-inst_exec bin/build-classpath "${bindir}"
-inst_exec bin/build-classpath-directory "${bindir}"
-inst_exec bin/build-jar-repository "${bindir}"
-inst_exec bin/check-binary-files "${bindir}"
-inst_exec bin/clean-binary-files "${bindir}"
-inst_exec bin/create-jar-links "${bindir}"
-inst_exec bin/diff-jars "${bindir}"
-inst_exec bin/find-jar "${bindir}"
-inst_exec bin/jvmjar "${bindir}"
-inst_exec bin/rebuild-jar-repository "${bindir}"
+inst_exec target/abs2rel "${bindir}"
+inst_exec target/build-classpath "${bindir}"
+inst_exec target/build-classpath-directory "${bindir}"
+inst_exec target/build-jar-repository "${bindir}"
+inst_exec target/check-binary-files "${bindir}"
+inst_exec target/clean-binary-files "${bindir}"
+inst_exec target/create-jar-links "${bindir}"
+inst_exec target/diff-jars "${bindir}"
+inst_exec target/find-jar "${bindir}"
+inst_exec target/jvmjar "${bindir}"
+inst_exec target/rebuild-jar-repository "${bindir}"
 
 link "${bindir}/abs2rel" "${javadir}-utils/abs2rel.sh"
 
 inst_config etc/font.properties "${sysconfdir}/java"
 inst_config target/java.conf "${sysconfdir}/java"
 
-inst_data java-utils/java-functions "${javadir}-utils"
+inst_data target/java-functions "${javadir}-utils"
 inst_exec java-utils/mvn_alias.py "${javadir}-utils"
 inst_exec java-utils/mvn_build.py "${javadir}-utils"
 inst_exec java-utils/mvn_compat_version.py "${javadir}-utils"
@@ -177,8 +177,8 @@ inst_data etc/macros.xmvn "${sysconfdir}/rpm"
 inst_data metadata/metadata-org-apache-maven-plugins.xml "${sysconfdir}/maven"
 inst_data metadata/metadata-org-codehaus-mojo.xml "${sysconfdir}/maven"
 
-inst_exec bin/mvn-local "${bindir}"
-inst_exec bin/mvn-rpmbuild "${bindir}"
+inst_exec target/mvn-local "${bindir}"
+inst_exec target/mvn-rpmbuild "${bindir}"
 
 inst_data configs/configuration-20.xml "${datadir}/xmvn"
 inst_data configs/configuration-20-rpmbuild.xml "${datadir}/xmvn"
diff --git a/java-utils/java-functions b/java-utils/java-functions
index eeed64a..da576a9 100644
--- a/java-utils/java-functions
+++ b/java-utils/java-functions
@@ -14,8 +14,8 @@
 _JAVA_HOME="$JAVA_HOME"
 
 # Read configuration or die.
-if [ -f /etc/java/java.conf ] ; then
-  . /etc/java/java.conf
+if [ -f "%{sysconfdir}/java/java.conf" ] ; then
+  . "%{sysconfdir}/java/java.conf"
 else
   echo "Can't find configuration file, aborting"
   exit 1
@@ -89,7 +89,7 @@ set_classpath() {
   if [ -n "$ADDITIONAL_JARS" ] ; then
       jars="$jars $ADDITIONAL_JARS"
   fi
-  LOCAL_CLASSPATH=$(/usr/bin/build-classpath $jars)
+  LOCAL_CLASSPATH=$("%{bindir}/build-classpath" $jars)
   # append original classpath if defined
   CLASSPATH=$LOCAL_CLASSPATH:$CLASSPATH
 }
@@ -210,17 +210,17 @@ link_jar_repository() {
    while [ $# -gt 0 ] ; do
       case "$1" in
          -h|--hard)
-            _LINK_CMD="/bin/ln -f"
+            _LINK_CMD="ln -f"
             ;;
          -s|--soft|--symbolic)
-            _LINK_CMD="/bin/ln -fs"
+            _LINK_CMD="ln -fs"
             ;;
          -c|--copy)
-            _LINK_CMD="/bin/cp -f"
+            _LINK_CMD="cp -f"
             ;;
          -p|--preserve-naming)
             _PRESERVE_NAMING="true"
-            [ -z "$_LINK_CMD" ] && _LINK_CMD="/bin/cp -f"
+            [ -z "$_LINK_CMD" ] && _LINK_CMD="cp -f"
             ;;
          --|-)
             break
@@ -240,7 +240,7 @@ link_jar_repository() {
       shift
    done
 
-   [ -z "$_LINK_CMD" ] && _LINK_CMD="/bin/ln -fs"
+   [ -z "$_LINK_CMD" ] && _LINK_CMD="ln -fs"
    extension_list="$extension_list $@"
 
    pushd $repository > /dev/null
@@ -255,18 +255,18 @@ link_jar_repository() {
          if [ $found -eq 0 ] ; then
             if [ -d "$found_extension" ] ; then
                for jar in $(find "$found_extension" -follow -name "*.jar") ; do
-                  /bin/rm -fr "$extension$(basename $jar)"
+                  rm -fr "$extension$(basename $jar)"
                   $_LINK_CMD $jar "$extension$(basename $jar)"
                done
             else
-               /bin/rm -fr $extension.jar
+               rm -fr $extension.jar
                $_LINK_CMD $found_extension $extension.jar
             fi
          else
             # Defer failure to get list of all errors in one shot
             # Do create a symlink so we can recover with another jvm
-            /bin/rm -fr $extension.jar
-            /bin/ln -fs /could/not/find/extension/for/this/jvm $extension.jar
+            rm -fr $extension.jar
+            ln -fs /could/not/find/extension/for/this/jvm $extension.jar
             _ALLFOUND=1
          fi
       done
@@ -282,13 +282,13 @@ find_jar() {
    # If extension contains semicolon then assume it specifies Maven
    # artifact coordinates.
    if echo "$1" | grep -q ':'; then
-      if ! [ -x "${M2_HOME:-/usr/share/xmvn}/bin/xmvn-resolve" ]; then
+      if ! [ -x "${M2_HOME:-%{datadir}/xmvn}/bin/xmvn-resolve" ]; then
          echo "$0: Unable to execute xmvn-resolve." >&2
          echo "$0: Make sure that XMvn is installed and M2_HOME is set correctly." >&2
          return 1
       fi
 
-      found_extension=$("${M2_HOME:-/usr/share/xmvn}/bin/xmvn-resolve" -c "$1")
+      found_extension=$("${M2_HOME:-%{datadir}/xmvn}/bin/xmvn-resolve" -c "$1")
       found=$?
    else
       # Remove jar extension if present
diff --git a/test/xmvn b/test/xmvn
index 0961c8f..7ea8c03 100755
--- a/test/xmvn
+++ b/test/xmvn
@@ -1,4 +1,4 @@
 #!/bin/sh
 #mock script for testing arguments passed to xmvn
-/bin/mkdir -p .xmvn
-/bin/echo "${@}">.xmvn/out
+mkdir -p .xmvn
+echo "${@}">.xmvn/out


More information about the java-sig-commits mailing list