diff --git a/java-21-openjdk.spec b/java-21-openjdk.spec index a015d6b..f72d4b7 100644 --- a/java-21-openjdk.spec +++ b/java-21-openjdk.spec @@ -2471,6 +2471,10 @@ exit 0 %endif %changelog +* Wed Jul 09 2025 Antonio Vieiro - 1:21.0.8.0.1-0.1.ea +- Add script to obtain bundled library versions from OpenJDK sources +- Related: RHEL-103211 + * Wed Jul 09 2025 Thomas Fitzsimmons - 1:21.0.8.0.1-0.1.ea - Warn about bundled provide version bumps and backouts in openjdk_news.sh - Related: RHEL-103211 diff --git a/scripts/get_bundle_versions.sh b/scripts/get_bundle_versions.sh new file mode 100755 index 0000000..f1f21ab --- /dev/null +++ b/scripts/get_bundle_versions.sh @@ -0,0 +1,83 @@ +#!/usr/bin/env sh + +if [ $# -ne 1 ]; then + echo "Usage: $0 openjdk-root-directory" + exit 1 +fi + +JDKROOT=$1 + +# +# Freetype +# +FREETYPE=src/java.desktop/share/native/libfreetype/include/freetype/freetype.h +if [ ! -f $JDKROOT/$FREETYPE ]; then + echo "freetype header not found!" + exit 2 +fi +FREETYPE_VERSION=$(cat $JDKROOT/$FREETYPE | awk '/#define FREETYPE_MAJOR/ {MAJOR=$3} /#define FREETYPE_MINOR/ {MINOR=$3} /#define FREETYPE_PATCH/ {PATCH=$3} END {printf "%s.%s.%s", MAJOR, MINOR, PATCH}') +echo "# Version in ${FREETYPE}" +echo "Provides: bundled(freetype) = ${FREETYPE_VERSION}" + +# giflib +GIFLIB=src/java.desktop/share/native/libsplashscreen/giflib/gif_lib.h +if [ ! -f $JDKROOT/$GIFLIB ]; then + echo "giflib header not found!" + exit 2 +fi +GIFLIB_VERSION=$(cat $JDKROOT/$GIFLIB| awk '/#define GIFLIB_MAJOR/ {MAJOR=$3} /#define GIFLIB_MINOR/ {MINOR=$3} /#define GIFLIB_RELEASE/ {PATCH=$3} END {printf "%s.%s.%s", MAJOR, MINOR, PATCH}') +echo "# Version in ${GIFLIB}" +echo "Provides: bundled(giflib) = ${GIFLIB_VERSION}" + +# hatfbuzz +HARFBUZZ=src/java.desktop/share/native/libharfbuzz/hb-version.h +if [ ! -f $JDKROOT/$HARFBUZZ ]; then + echo "harfbuzz header not found!" + exit 2 +fi +HARFBUZZ_VERSION=$(cat $JDKROOT/$HARFBUZZ | awk '/#define HB_VERSION_MAJOR/ {MAJOR=$3} /#define HB_VERSION_MINOR/ {MINOR=$3} /#define HB_VERSION_MICRO/ {PATCH=$3} END {printf "%s.%s.%s", MAJOR, MINOR, PATCH}') +echo "# Version in ${HARFBUZZ}" +echo "Provides: bundled(harfbuzz) = ${HARFBUZZ_VERSION}" + +# lcms +LCMS=src/java.desktop/share/native/liblcms/lcms2.h +if [ ! -f $JDKROOT/$LCMS ]; then + echo "lcms header not found!" + exit 2 +fi +LCMS_VERSION=$(cat $JDKROOT/$LCMS | awk '/#define LCMS_VERSION/ { MAJOR=int($3 / 1000); REST=$3 % 1000; MINOR=int(REST / 10); PATCH=REST % 10; } END {printf "%s.%s.%s", MAJOR, MINOR, PATCH}') +echo "# Version in ${LCMS}" +echo "Provides: bundled(lcms2) = ${LCMS_VERSION}" + +# jpeg +JPEG=src/java.desktop/share/native/libjavajpeg/jpeglib.h +if [ ! -f $JDKROOT/$JPEG ]; then + echo "jpeg header not found!" + exit 2 +fi +JPEG_VERSION=$(cat $JDKROOT/$JPEG | awk '/#define JPEG_LIB_VERSION/ { VERSION=$3; MAJOR=int(VERSION / 10); MINOR=VERSION%10; } END {printf "%s.%c", MAJOR, (MINOR+96)}') +echo "# Version in ${JPEG}" +echo "Provides: bundled(libjpeg) = ${JPEG_VERSION}" + +# png +PNG=src/java.desktop/share/native/libsplashscreen/libpng/png.h +if [ ! -f $JDKROOT/$PNG ]; then + echo "png header not found!" + exit 2 +fi +PNG_VERSION=$(cat $JDKROOT/$PNG | awk '/#define PNG_LIBPNG_VER_STRING/ { VERSION=$3; gsub("\"", "", VERSION) } END {print VERSION}') +echo "# Version in ${PNG}" +echo "Provides: bundled(libpng) = ${PNG_VERSION}" + +# zlib +ZLIB=src/java.base/share/native/libzip/zlib/zlib.h +if [ ! -f $JDKROOT/$ZLIB ]; then + echo "zlib header not found!" + exit 2 +fi +ZLIB_VERSION=$(cat $JDKROOT/$ZLIB | awk '/#define ZLIB_VERSION/ { VERSION=$3; gsub("\"", "", VERSION) } END {print VERSION}') +echo "# Version in ${ZLIB}" +echo "Provides: bundled(zlib) = ${ZLIB_VERSION}" + + +