From 5a64784bdd245027ac398e3819f96493b64d3931 Mon Sep 17 00:00:00 2001 From: Andrew Hughes Date: Thu, 21 Mar 2024 02:25:25 +0000 Subject: [PATCH] Fix maintenance scripts to pass shellcheck - discover_trees.sh: Set compile-command and indentation instructions for Emacs - discover_trees.sh: shellcheck: Do not use -o (SC2166) - discover_trees.sh: shellcheck: Remove x-prefixes since we use Bash (SC2268) - discover_trees.sh: shellcheck: Double-quote variable references (SC2086) - generate_source_tarball.sh: Add authorship - icedtea_sync.sh: Set compile-command and indentation instructions for Emacs - icedtea_sync.sh: shellcheck: Double-quote variable references (SC2086) - icedtea_sync.sh: shellcheck: Remove x-prefixes since we use Bash (SC2268) - openjdk_news.sh: Set compile-command and indentation instructions for Emacs - openjdk_news.sh: shellcheck: Double-quote variable references (SC2086) - openjdk_news.sh: shellcheck: Remove x-prefixes since we use Bash (SC2268) - openjdk_news.sh: shellcheck: Remove deprecated egrep usage (SC2196) Related: RHEL-30946 --- java-21-openjdk.spec | 12 ++++++ scripts/discover_trees.sh | 27 +++++++----- scripts/generate_source_tarball.sh | 4 ++ scripts/icedtea_sync.sh | 67 +++++++++++++++++------------- scripts/openjdk_news.sh | 51 +++++++++++++---------- 5 files changed, 99 insertions(+), 62 deletions(-) diff --git a/java-21-openjdk.spec b/java-21-openjdk.spec index fb0eede..26973b1 100644 --- a/java-21-openjdk.spec +++ b/java-21-openjdk.spec @@ -2541,6 +2541,18 @@ cjc.mainProgram(args) - generate_source_tarball.sh: Create directory in TMPDIR when using WITH_TEMP - generate_source_tarball.sh: Only add --depth=1 on non-local repositories - Move maintenance scripts to a scripts subdirectory +- discover_trees.sh: Set compile-command and indentation instructions for Emacs +- discover_trees.sh: shellcheck: Do not use -o (SC2166) +- discover_trees.sh: shellcheck: Remove x-prefixes since we use Bash (SC2268) +- discover_trees.sh: shellcheck: Double-quote variable references (SC2086) +- generate_source_tarball.sh: Add authorship +- icedtea_sync.sh: Set compile-command and indentation instructions for Emacs +- icedtea_sync.sh: shellcheck: Double-quote variable references (SC2086) +- icedtea_sync.sh: shellcheck: Remove x-prefixes since we use Bash (SC2268) +- openjdk_news.sh: Set compile-command and indentation instructions for Emacs +- openjdk_news.sh: shellcheck: Double-quote variable references (SC2086) +- openjdk_news.sh: shellcheck: Remove x-prefixes since we use Bash (SC2268) +- openjdk_news.sh: shellcheck: Remove deprecated egrep usage (SC2196) - Related: RHEL-30946 * Sun Apr 14 2024 Andrew Hughes - 1:21.0.3.0.1-0.1.ea diff --git a/scripts/discover_trees.sh b/scripts/discover_trees.sh index 8c31278..7a0b800 100755 --- a/scripts/discover_trees.sh +++ b/scripts/discover_trees.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2020 Red Hat, Inc. +# Copyright (C) 2024 Red Hat, Inc. # Written by Andrew John Hughes . # # This program is free software: you can redistribute it and/or modify @@ -18,37 +18,44 @@ TREE=${1} -if test "x${TREE}" = "x"; then +if test "${TREE}" = ""; then TREE=${PWD} fi -if [ -e ${TREE}/nashorn/.hg -o -e ${TREE}/nashorn/merge.changeset ] ; then +if [ -e "${TREE}"/nashorn/.hg ] || [ -e "${TREE}"/nashorn/merge.changeset ] ; then NASHORN="nashorn" ; fi -if [ -e ${TREE}/corba/.hg -o -e ${TREE}/corba/merge.changeset ] ; then +if [ -e "${TREE}"/corba/.hg ] || [ -e "${TREE}"/corba/merge.changeset ] ; then CORBA="corba"; fi -if [ -e ${TREE}/jaxp/.hg -o -e ${TREE}/jaxp/merge.changeset ] ; then +if [ -e "${TREE}"/jaxp/.hg ] || [ -e "${TREE}"/jaxp/merge.changeset ] ; then JAXP="jaxp"; fi -if [ -e ${TREE}/jaxws/.hg -o -e ${TREE}/jaxws/merge.changeset ] ; then +if [ -e "${TREE}"/jaxws/.hg ] || [ -e "${TREE}"/jaxws/merge.changeset ] ; then JAXWS="jaxws"; fi -if [ -e ${TREE}/langtools/.hg -o -e ${TREE}/langtools/merge.changeset ] ; then +if [ -e "${TREE}"/langtools/.hg ] || [ -e "${TREE}"/langtools/merge.changeset ] ; then LANGTOOLS="langtools"; fi -if [ -e ${TREE}/jdk/.hg -o -e ${TREE}/jdk/merge.changeset ] ; then +if [ -e "${TREE}"/jdk/.hg ] || [ -e "${TREE}"/jdk/merge.changeset ] ; then JDK="jdk"; fi -if [ -e ${TREE}/hotspot/.hg -o -e ${TREE}/hotspot/merge.changeset ] ; then +if [ -e "${TREE}"/hotspot/.hg ] || [ -e "${TREE}"/hotspot/merge.changeset ] ; then HOTSPOT="hotspot"; fi SUBTREES="${CORBA} ${JAXP} ${JAXWS} ${LANGTOOLS} ${NASHORN} ${JDK} ${HOTSPOT}"; -echo ${SUBTREES} +echo "${SUBTREES}" + +# Local Variables: +# compile-command: "shellcheck discover_trees.sh" +# fill-column: 80 +# indent-tabs-mode: nil +# sh-basic-offset: 4 +# End: diff --git a/scripts/generate_source_tarball.sh b/scripts/generate_source_tarball.sh index 6279670..982c10b 100755 --- a/scripts/generate_source_tarball.sh +++ b/scripts/generate_source_tarball.sh @@ -1,6 +1,10 @@ #!/bin/bash # Copyright (C) 2024 Red Hat, Inc. +# Written by: +# Andrew John Hughes +# Thomas Fitzsimmons +# Jiri Vanek # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/scripts/icedtea_sync.sh b/scripts/icedtea_sync.sh index 022d199..3f5cb82 100755 --- a/scripts/icedtea_sync.sh +++ b/scripts/icedtea_sync.sh @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright (C) 2019 Red Hat, Inc. +# Copyright (C) 2024 Red Hat, Inc. # Written by Andrew John Hughes . # # This program is free software: you can redistribute it and/or modify @@ -26,31 +26,31 @@ ICEDTEA_HG_URL=https://icedtea.classpath.org/hg/icedtea11 set -e RPM_DIR=${PWD} -if [ ! -f ${RPM_DIR}/jconsole.desktop.in ] ; then +if [ ! -f "${RPM_DIR}/jconsole.desktop.in" ] ; then echo "Not in RPM source tree."; exit 1; fi -if test "x${TMPDIR}" = "x"; then +if test "${TMPDIR}" = ""; then TMPDIR=/tmp; fi WORKDIR=${TMPDIR}/it.sync echo "Using working directory ${WORKDIR}" -mkdir ${WORKDIR} -pushd ${WORKDIR} +mkdir "${WORKDIR}" +pushd "${WORKDIR}" -if test "x${WGET}" = "x"; then +if test "${WGET}" = ""; then WGET=$(which wget); - if test "x${WGET}" = "x"; then + if test "${WGET}" = ""; then echo "wget not found"; exit 1; fi fi -if test "x${TAR}" = "x"; then +if test "${TAR}" = ""; then TAR=$(which tar) - if test "x${TAR}" = "x"; then + if test "${TAR}" = ""; then echo "tar not found"; exit 2; fi @@ -60,36 +60,36 @@ echo "Dependencies:"; echo -e "\tWGET: ${WGET}"; echo -e "\tTAR: ${TAR}\n"; -if test "x${ICEDTEA_USE_VCS}" = "xtrue"; then +if test "${ICEDTEA_USE_VCS}" = "true"; then echo "Mode: Using VCS"; - if test "x${GREP}" = "x"; then + if test "${GREP}" = ""; then GREP=$(which grep); - if test "x${GREP}" = "x"; then + if test "${GREP}" = ""; then echo "grep not found"; exit 3; fi fi - if test "x${CUT}" = "x"; then + if test "${CUT}" = ""; then CUT=$(which cut); - if test "x${CUT}" = "x"; then + if test "${CUT}" = ""; then echo "cut not found"; exit 4; fi fi - if test "x${TR}" = "x"; then + if test "${TR}" = ""; then TR=$(which tr); - if test "x${TR}" = "x"; then + if test "${TR}" = ""; then echo "tr not found"; exit 5; fi fi - if test "x${HG}" = "x"; then + if test "${HG}" = ""; then HG=$(which hg); - if test "x${HG}" = "x"; then + if test "${HG}" = ""; then echo "hg not found"; exit 6; fi @@ -113,33 +113,33 @@ if test "x${ICEDTEA_USE_VCS}" = "xtrue"; then ICEDTEA_VERSION="${ROOT_VER}-${VCS_REV}" echo "Creating icedtea-${ICEDTEA_VERSION}"; - mkdir icedtea-${ICEDTEA_VERSION} + mkdir "icedtea-${ICEDTEA_VERSION}" echo "Copying required files from checkout to icedtea-${ICEDTEA_VERSION}"; # Commented out for now as IcedTea 6's jconsole.desktop.in is outdated #cp -a icedtea/jconsole.desktop.in ../icedtea-${ICEDTEA_VERSION} - cp -a ${RPM_DIR}/jconsole.desktop.in icedtea-${ICEDTEA_VERSION} - cp -a icedtea/tapset icedtea-${ICEDTEA_VERSION} + cp -a "${RPM_DIR}/jconsole.desktop.in" "icedtea-${ICEDTEA_VERSION}" + cp -a icedtea/tapset "icedtea-${ICEDTEA_VERSION}" rm -rf icedtea else echo "Mode: Using tarball"; - if test "x${ICEDTEA_VERSION}" = "x"; then + if test "${ICEDTEA_VERSION}" = ""; then echo "No IcedTea version specified for tarball download."; exit 3; fi - if test "x${CHECKSUM}" = "x"; then + if test "${CHECKSUM}" = ""; then CHECKSUM=$(which sha256sum) - if test "x${CHECKSUM}" = "x"; then + if test "${CHECKSUM}" = ""; then echo "sha256sum not found"; exit 4; fi fi - if test "x${PGP}" = "x"; then + if test "${PGP}" = ""; then PGP=$(which gpg) - if test "x${PGP}" = "x"; then + if test "${PGP}" = ""; then echo "gpg not found"; exit 5; fi @@ -179,13 +179,20 @@ else fi echo "Replacing desktop files..."; -mv -v icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in ${RPM_DIR} +mv -v "icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in" "${RPM_DIR}" echo "Creating new tapset tarball..."; -mv -v icedtea-${ICEDTEA_VERSION} openjdk -${TAR} cJf ${RPM_DIR}/tapsets-icedtea-${ICEDTEA_VERSION}.tar.xz openjdk +mv -v "icedtea-${ICEDTEA_VERSION}" openjdk +${TAR} cJf "${RPM_DIR}/tapsets-icedtea-${ICEDTEA_VERSION}.tar.xz" openjdk rm -rvf openjdk popd -rm -rf ${WORKDIR} +rm -rf "${WORKDIR}" + +# Local Variables: +# compile-command: "shellcheck icedtea_sync.sh" +# fill-column: 80 +# indent-tabs-mode: nil +# sh-basic-offset: 4 +# End: diff --git a/scripts/openjdk_news.sh b/scripts/openjdk_news.sh index 386aa53..64b1434 100755 --- a/scripts/openjdk_news.sh +++ b/scripts/openjdk_news.sh @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright (C) 2022 Red Hat, Inc. +# Copyright (C) 2024 Red Hat, Inc. # Written by Andrew John Hughes , 2012-2022 # # This program is free software: you can redistribute it and/or modify @@ -20,57 +20,64 @@ OLD_RELEASE=$1 NEW_RELEASE=$2 REPO=$3 SUBDIR=$4 -SCRIPT_DIR=$(dirname ${0}) +SCRIPT_DIR=$(dirname "${0}") -if test "x${SUBDIR}" = "x"; then +if test "${SUBDIR}" = ""; then echo "No subdirectory specified; using ."; SUBDIR="."; fi -if test "x$REPO" = "x"; then +if test "$REPO" = ""; then echo "No repository specified; using ${PWD}" REPO=${PWD} fi -if test x${TMPDIR} = x; then +if test "${TMPDIR}" = ""; then TMPDIR=/tmp; fi echo "Repository: ${REPO}" -if [ -e ${REPO}/.git ] ; then +if [ -e "${REPO}/.git" ] ; then TYPE=git; -elif [ -e ${REPO}/.hg ] ; then +elif [ -e "${REPO}/.hg" ] ; then TYPE=hg; else echo "No Mercurial or Git repository detected."; exit 1; fi -if test "x$OLD_RELEASE" = "x" || test "x$NEW_RELEASE" = "x"; then +if test "$OLD_RELEASE" = "" || test "$NEW_RELEASE" = ""; then echo "ERROR: Need to specify old and new release"; exit 2; fi echo "Listing fixes between $OLD_RELEASE and $NEW_RELEASE in $REPO" -rm -f ${TMPDIR}/fixes2 ${TMPDIR}/fixes3 ${TMPDIR}/fixes -for repos in . $(${SCRIPT_DIR}/discover_trees.sh ${REPO}); +rm -f "${TMPDIR}/fixes2" "${TMPDIR}/fixes3" "${TMPDIR}/fixes" +for repos in . $("${SCRIPT_DIR}/discover_trees.sh" "${REPO}"); do - if test "x$TYPE" = "xhg"; then - hg log -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R $REPO/$repos -G -M ${REPO}/${SUBDIR} | \ - egrep '^[o:| ]*summary'|grep -v 'Added tag'|sed -r 's#^[o:| ]*summary:\W*([0-9])# - JDK-\1#'| \ - sed 's#^[o:| ]*summary:\W*# - #' >> ${TMPDIR}/fixes2; - hg log -v -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R $REPO/$repos -G -M ${REPO}/${SUBDIR} | \ - egrep '^[o:| ]*[0-9]{7}'|sed -r 's#^[o:| ]*([0-9]{7})# - JDK-\1#' >> ${TMPDIR}/fixes3; + if test "$TYPE" = "hg"; then + hg log -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R "$REPO/$repos" -G -M "${REPO}/${SUBDIR}" | \ + grep -E '^[o:| ]*summary'|grep -v 'Added tag'|sed -r 's#^[o:| ]*summary:\W*([0-9])# - JDK-\1#'| \ + sed 's#^[o:| ]*summary:\W*# - #' >> "${TMPDIR}/fixes2"; + hg log -v -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R "$REPO/$repos" -G -M "${REPO}/${SUBDIR}" | \ + grep -E '^[o:| ]*[0-9]{7}'|sed -r 's#^[o:| ]*([0-9]{7})# - JDK-\1#' >> "${TMPDIR}/fixes3"; else - git -C ${REPO} log --no-merges --pretty=format:%B ${NEW_RELEASE}...${OLD_RELEASE} -- ${SUBDIR} |egrep '^[0-9]{7}' | \ - sed -r 's#^([0-9])# - JDK-\1#' >> ${TMPDIR}/fixes2; - touch ${TMPDIR}/fixes3 ; # unused + git -C "${REPO}" log --no-merges --pretty=format:%B "${NEW_RELEASE}...${OLD_RELEASE}" -- "${SUBDIR}" |grep -E '^[0-9]{7}' | \ + sed -r 's#^([0-9])# - JDK-\1#' >> "${TMPDIR}/fixes2"; + touch "${TMPDIR}/fixes3" ; # unused fi done -sort ${TMPDIR}/fixes2 ${TMPDIR}/fixes3 | uniq > ${TMPDIR}/fixes -rm -f ${TMPDIR}/fixes2 ${TMPDIR}/fixes3 +sort "${TMPDIR}/fixes2" "${TMPDIR}/fixes3" | uniq > "${TMPDIR}/fixes" +rm -f "${TMPDIR}/fixes2" "${TMPDIR}/fixes3" echo "In ${TMPDIR}/fixes:" -cat ${TMPDIR}/fixes +cat "${TMPDIR}/fixes" + +# Local Variables: +# compile-command: "shellcheck openjdk_news.sh" +# fill-column: 80 +# indent-tabs-mode: nil +# sh-basic-offset: 4 +# End: