Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@
sqlcl-package (0.1.2) unstable; urgency=low

* Version-detection overhaul for SQLcl ≥ 25.x:
- Look for bin/version.txt before JAR inspection.
- Accept renamed dbtools-sqlcl.jar in addition to the original
oracle.sqldeveloper.sqlcl.jar.
- Parse both Release and Implementation-Version manifest headers.
- Handle revision strings containing more than two dots.

* Avoid archive-root name clash: rename the lib directory directly
instead of creating a top-level “25.x.x.x” file that collides with
the numeric version file in upstream ZIPs.

* Organise new files in oracle .zip:
- Move bin/dependencies.txt, bin/version.txt and the numeric version
directory into /usr/share/sqlcl/<ver>/.
- Install LICENSE.txt, NOTICES.txt and THIRD-PARTY-LICENSES.txt under
/usr/share/doc/sqlcl-<ver>/.

* Lintian: drop obsolete no-upstream-changelog override.

-- Petr Ledvina <[email protected]> Thu, 12 Jun 2025 19:11:00 +0200

sqlcl-package (0.1.1) unstable; urgency=low

* Fixed lintian warnings
Expand Down
67 changes: 54 additions & 13 deletions make-sqlcl-package
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ if [ ${DEBUG:=0} -ne 0 ] ; then
set -x
fi

VERSION="0.1.1"
VERSION="0.1.2"
DESC="Debian package builder and installer for Oracle SQL Developer Command-Line"
AUTHOR="Lazarus Long"
COPYRIGHT="2017-2018"
Expand Down Expand Up @@ -432,18 +432,35 @@ func_upstreamversion() {
exit 1
fi

# try version.txt first
if [ -z "${UPSTREAMVER}" ] && [ -f "${1}/bin/version.txt" ]; then
UPSTREAMVER="$(${GREP} ${GREP_OPTS} '^RELEASE=' "${1}/bin/version.txt" | ${CUT} -d= -f2 | ${TR} -d '[[:space:]]' )"
fi
# extract version from sqlcl jar file
if [ -z "${UPSTREAMVER}" ] ; then
local CUT_OPTS_FUNC_UPVER="-d = -f 2"
local TR_OPTS_FUNC_UPVER="-d [[:space:]]"
local UNZIP_OPTS_FUNC_UPVER="-p"
local JARFILE="${1}/${PROGNAME}/lib/oracle.sqldeveloper.sqlcl.jar"
# Oracle renamed the jar file, try both
if [ -f "${1}/${PROGNAME}/lib/oracle.sqldeveloper.sqlcl.jar" ]; then
local JARFILE="${1}/${PROGNAME}/lib/oracle.sqldeveloper.sqlcl.jar"
elif [ -f "${1}/${PROGNAME}/lib/dbtools-sqlcl.jar" ]; then
local JARFILE="${1}/${PROGNAME}/lib/dbtools-sqlcl.jar"
else
if [ ${SILENT} -eq 0 ] ; then
printf "\nfunc_upstreamversion(): sqlcl jar not found, aborting...\n" >&2
else
printf "%s - func_upstreamversion(): sqlcl jar not found, aborting...\n" "${INVOCATION}" >&2
fi
exit 1
fi

local VERSTRING="^SQLclVersion.VERSION"
local VERTEMP="$(${UNZIP} ${UNZIP_OPTS_FUNC_UPVER} "${JARFILE}" "oracle/dbtools/versions/version.properties" 2>/dev/null)"

if [ ${#VERTEMP} -eq 0 ] ; then
CUT_OPTS_FUNC_UPVER="-d : -f 2"
VERSTRING="Release"
VERSTRING="Release|Implementation-Version"
VERTEMP="$(${UNZIP} ${UNZIP_OPTS_FUNC_UPVER} "${JARFILE}" "META-INF/MANIFEST.MF" 2>/dev/null)"
fi

Expand All @@ -457,18 +474,16 @@ func_upstreamversion() {
exit 1
fi

UPSTREAMVER="$(printf "${VERTEMP}" |${GREP} ${GREP_OPTS} "^${VERSTRING}" |${CUT} ${CUT_OPTS_FUNC_UPVER} |${TR} ${TR_OPTS_FUNC_UPVER})"
UPSTREAMVER="$(printf '%s' "${VERTEMP}" | ${GREP} ${GREP_OPTS} "^(${VERSTRING})" | ${CUT} ${CUT_OPTS_FUNC_UPVER} | ${TR} ${TR_OPTS_FUNC_UPVER})"
fi

if [ ${SILENT} -eq 0 ] ; then
printf "\"%s\" ... " "${UPSTREAMVER}"
fi

UPSTREAMVERMAJ="${UPSTREAMVER%%.*}"
UPSTREAMVERMIN="${UPSTREAMVER#*.}"
UPSTREAMVERREV="${UPSTREAMVERMIN#*.}"
UPSTREAMVERMIN="${UPSTREAMVERMIN%%.*}"
UPSTREAMVERREV="${UPSTREAMVERREV%%.*}"
UPSTREAMVERMAJ=$(printf '%s\n' "$UPSTREAMVER" | cut -d. -f1)
UPSTREAMVERMIN=$(printf '%s\n' "$UPSTREAMVER" | cut -d. -f2)
UPSTREAMVERREV=$(printf '%s\n' "$UPSTREAMVER" | cut -d. -f3-)

if [ -z "${LOCALVER}" ] ; then
LOCALVER=1
Expand Down Expand Up @@ -527,9 +542,8 @@ func_reorganize() {
exit 1
fi

${MV} ${MV_OPTS_FUNC_REORG} "${OPTDIR}/lib" "${OPTDIR}/${UPSTREAMVER}"
${MKDIR} ${MKDIR_OPTS} "${OPTDIR}/share/${PROGNAME}"
${MV} ${MV_OPTS_FUNC_REORG} "${OPTDIR}/${UPSTREAMVER}" "${OPTDIR}/share/${PROGNAME}"
${MV} ${MV_OPTS_FUNC_REORG} --no-target-directory "${OPTDIR}/lib" "${OPTDIR}/share/${PROGNAME}/${UPSTREAMVER}"

if [ -f "${OPTDIR}/bin/sql" ] ; then
${MV} ${MV_OPTS_FUNC_REORG} "${OPTDIR}/bin/sql" "${OPTDIR}/bin/sql.${UPSTREAMVER}.standalone"
Expand Down Expand Up @@ -595,6 +609,34 @@ func_cleanup() {
printf "done!\n"
fi

[ ${SILENT} -eq 0 ] && printf "\tmoving files to better locations ..."
# move /bin/ files to user/share
for f in bin/dependencies.txt bin/version.txt ${UPSTREAMVER}; do
if [ -f "${OPTDIR}/${f}" ] ; then
# Ensure target dir exists
${MKDIR} ${MKDIR_OPTS} \
"${OPTDIR}/share/${PROGNAME}/${UPSTREAMVER}"
# Move and fix rights
local dest="${OPTDIR}/share/${PROGNAME}/${UPSTREAMVER}/$(basename "${f}")"
${MV} ${MV_OPTS_FUNC_REORG} \
"${OPTDIR}/${f}" \
"${OPTDIR}/share/${PROGNAME}/${UPSTREAMVER}"
${CHMOD} ${CHMOD_OPTS_NOEXEC} "${dest}"
fi
done

# move top-level licence files to /usr/share/doc
for f in LICENSE.txt NOTICES.txt THIRD-PARTY-LICENSES.txt ; do
if [ -f "${OPTDIR}/${f}" ] ; then
docdir="${OPTDIR}/share/doc/${PROGNAME}-${UPSTREAMVER}"
${MKDIR} ${MKDIR_OPTS} "${docdir}"
${MV} ${MV_OPTS_FUNC_CLEAN} "${OPTDIR}/${f}" "${docdir}/"
${CHMOD} ${CHMOD_OPTS_NOEXEC} "${docdir}/${f}"
fi
done

[ ${SILENT} -eq 0 ] && printf "done!\n"

# Fixes
#
if [ ${SILENT} -eq 0 ] ; then
Expand Down Expand Up @@ -647,7 +689,7 @@ func_debianize() {
local DATE_OPTS_FUNC_DEB="-R"
local DPKG_QUERY_OPTS_VERSION="--showformat=\${Version} --show"
local DEBIAN_WORKDIR="${1}/debian"
local POSTINST_PRIO=$(printf "%02u%02u%02u" ${UPSTREAMVERMAJ} ${UPSTREAMVERMIN} ${UPSTREAMVERREV})
local POSTINST_PRIO=$(printf "%02u%02u%02u" ${UPSTREAMVERMAJ} ${UPSTREAMVERMIN} $(printf '%s' "$UPSTREAMVERREV" | cut -d. -f1 ))
${MKDIR} ${MKDIR_OPTS} "${DEBIAN_WORKDIR}"

if [ ${SILENT} -eq 0 ] ; then
Expand Down Expand Up @@ -970,7 +1012,6 @@ EOF
${CAT} <<EOF
classpath-contains-relative-path
missing-manifest
no-upstream-changelog
EOF
) >"${DEBIAN_WORKDIR}/lintian-overrides"

Expand Down