Sync fileset with c9s

Related: RHEL-30918
This commit is contained in:
Andrew Hughes 2024-04-26 20:52:39 +01:00
parent 354f2edc44
commit 0825845337
7 changed files with 653 additions and 3 deletions

116
.gitignore vendored
View File

@ -1,7 +1,117 @@
SOURCES/openjdk-jdk11u-jdk-11.0.18+9-4curve.tar.xz
SOURCES/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz
/openjdk-jdk11u-jdk-11.0.18+9-4curve.tar.xz
*.rpm
/systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz
/shenandoah-jdk11-b516c8c7a0a4.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11+22.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11+28.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.1+13.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.1+13-20190101.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.2+7.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.3+6.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.3+7.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.4+2.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.4+3.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.4+4.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.4+5.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.4+6.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.4+7.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.4+8.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.4+9.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.4+10.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.4+11.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.5+1.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.5+2.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.5+2-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.5+9-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.5+9.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.5+10.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.5+10-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.6+1-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.6+2-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.6+9-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.6+10-4curve.tar.xz
/tapsets-icedtea-3.11.0.tar.xz
/tapsets-icedtea-3.15.0.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+1-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+2-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+3-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+3.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+4-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+4.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+5-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+5.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+6-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+6.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+7-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+7.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+8-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+8.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+9-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+9.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+10-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.7+10.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.8+1-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.8+2-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.8+3-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.8+4-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.8+5-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.8+6-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.8+7-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.8+8-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.8+9-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.8+10-4curve.tar.xz
/shenandoah-jdk11-shenandoah-jdk-11.0.9+1-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.9+2-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.9+3-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.9+4-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.9+5-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.9+6-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.9+7-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.9+8-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.9+9-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.9+10-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.9+11-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.10+1-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.10+2-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.10+3-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.10+4-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.10+5-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.10+8-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.10+9-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.11+1-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.11+2-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.11+3-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.11+4-4curve.tar.xz
/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz
/jdk-updates-jdk11u-jdk-11.0.11+5-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.11+6-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.11+7-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.11+9-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.12+1-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.12+2-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.12+3-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.12+4-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.12+6-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.12+7-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.12+7-4curve-clean.tar.xz
/jdk-updates-jdk11u-jdk-11.0.13+1-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.13+7-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.13+8-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.14+1-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.14+8-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.14+9-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.14.1+1-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.15+1-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.15+8-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.15+9-4curve.tar.xz
/jdk-updates-jdk11u-jdk-11.0.15+10-4curve.tar.xz
/openjdk-jdk11u-jdk-11.0.16+7-4curve.tar.xz
/openjdk-jdk11u-jdk-11.0.16+8-4curve.tar.xz
/openjdk-jdk11u-jdk-11.0.16.1+1-4curve.tar.xz
/openjdk-jdk11u-jdk-11.0.17+1-4curve.tar.xz
/openjdk-jdk11u-jdk-11.0.17+7-4curve.tar.xz
/openjdk-jdk11u-jdk-11.0.17+8-4curve.tar.xz
/openjdk-jdk11u-jdk-11.0.18+1-4curve.tar.xz
/openjdk-jdk11u-jdk-11.0.18+9-4curve.tar.xz
/openjdk-jdk11u-jdk-11.0.18+10-4curve.tar.xz
/java-11-openjdk-11.0.18.0.10-6.portable.docs.el.aarch64.tar.xz
/java-11-openjdk-11.0.18.0.10-6.portable.docs.el.ppc64le.tar.xz

9
README.md Normal file
View File

@ -0,0 +1,9 @@
Package of LTS OpenJDK 11
OpenJDK have release cadence of 6 months. but 3/4 of them are Short Term Supported for 6 months only. This package is designed to harbore them. Currently it is build on openJDK 11. LTSs (next is 15) will go as separate packages.
JDK11 is last LTS release of Java platform. It is bringing many cool improvements - http://openjdk.java.net/projects/jdk/11/ and is landing to your Fedora. Where it will be maintained for several years. You will always be allowed to install Used LTSs in build root, and alongside via alternatives.
See announcement: http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html
See java SIG plans: https://jvanek.fedorapeople.org/devconf/2018/changesInjavaReleaseProcess.pdf
https://fedoraproject.org/wiki/Changes/java-11-openjdk-TechPreview

200
generate_source_tarball.sh Executable file
View File

@ -0,0 +1,200 @@
#!/bin/bash
# Generates the 'source tarball' for JDK projects.
#
# Example:
# When used from local repo set REPO_ROOT pointing to file:// with your repo
# If your local repo follows upstream forests conventions, it may be enough to set OPENJDK_URL
# If you want to use a local copy of patch GH001, set the path to it in the GH001 variable
#
# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
# PROJECT_NAME=openjdk
# REPO_NAME=jdk11u
# VERSION=HEAD
# or to eg prepare systemtap:
# icedtea7's jstack and other tapsets
# VERSION=6327cf1cea9e
# REPO_NAME=icedtea7-2.6
# PROJECT_NAME=release
# OPENJDK_URL=http://icedtea.classpath.org/hg/
# TO_COMPRESS="*/tapset"
#
# They are used to create correct name and are used in construction of sources url (unless REPO_ROOT is set)
# This script creates a single source tarball out of the repository
# based on the given tag and removes code not allowed in fedora/rhel. For
# consistency, the source tarball will always contain 'openjdk' as the top
# level folder, name is created, based on parameter
#
if [ ! "x$GH001" = "x" ] ; then
if [ ! -f "$GH001" ] ; then
echo "You have specified GH001 as $GH001 but it does not exist. Exiting"
exit 1
fi
fi
if [ ! "x$GH003" = "x" ] ; then
if [ ! -f "$GH003" ] ; then
echo "You have specified GH003 as $GH003 but it does not exist. Exiting"
exit 1
fi
fi
set -e
OPENJDK_URL_DEFAULT=https://github.com
COMPRESSION_DEFAULT=xz
# Corresponding IcedTea version
ICEDTEA_VERSION=6.0
if [ "x$1" = "xhelp" ] ; then
echo -e "Behaviour may be specified by setting the following variables:\n"
echo "VERSION - the version of the specified OpenJDK project"
echo "PROJECT_NAME -- the name of the OpenJDK project being archived (optional; only needed by defaults)"
echo "REPO_NAME - the name of the OpenJDK repository (optional; only needed by defaults)"
echo "OPENJDK_URL - the URL to retrieve code from (optional; defaults to ${OPENJDK_URL_DEFAULT})"
echo "COMPRESSION - the compression type to use (optional; defaults to ${COMPRESSION_DEFAULT})"
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults to PROJECT_NAME-REPO_NAME-VERSION)"
echo "REPO_ROOT - the location of the Mercurial repository to archive (optional; defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
echo "TO_COMPRESS - what part of clone to pack (default is openjdk)"
echo "GH001 - the path to the ECC code patch, GH001, to apply (optional; downloaded if unavailable)"
echo "GH003 - the path to the ECC test patch, GH003, to apply (optional; downloaded if unavailable)"
exit 1;
fi
if [ "x$VERSION" = "x" ] ; then
echo "No VERSION specified"
exit -2
fi
echo "Version: ${VERSION}"
# REPO_NAME is only needed when we default on REPO_ROOT and FILE_NAME_ROOT
if [ "x$FILE_NAME_ROOT" = "x" -o "x$REPO_ROOT" = "x" ] ; then
if [ "x$PROJECT_NAME" = "x" ] ; then
echo "No PROJECT_NAME specified"
exit -1
fi
echo "Project name: ${PROJECT_NAME}"
if [ "x$REPO_NAME" = "x" ] ; then
echo "No REPO_NAME specified"
exit -3
fi
echo "Repository name: ${REPO_NAME}"
fi
if [ "x$OPENJDK_URL" = "x" ] ; then
OPENJDK_URL=${OPENJDK_URL_DEFAULT}
echo "No OpenJDK URL specified; defaulting to ${OPENJDK_URL}"
else
echo "OpenJDK URL: ${OPENJDK_URL}"
fi
if [ "x$COMPRESSION" = "x" ] ; then
# rhel 5 needs tar.gz
COMPRESSION=${COMPRESSION_DEFAULT}
fi
echo "Creating a tar.${COMPRESSION} archive"
if [ "x$FILE_NAME_ROOT" = "x" ] ; then
FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
echo "No file name root specified; default to ${FILE_NAME_ROOT}"
fi
if [ "x$REPO_ROOT" = "x" ] ; then
REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git"
echo "No repository root specified; default to ${REPO_ROOT}"
fi;
if [ "x$TO_COMPRESS" = "x" ] ; then
TO_COMPRESS="openjdk"
echo "No to be compressed targets specified, ; default to ${TO_COMPRESS}"
fi;
echo -e "Settings:"
echo -e "\tVERSION: ${VERSION}"
echo -e "\tPROJECT_NAME: ${PROJECT_NAME}"
echo -e "\tREPO_NAME: ${REPO_NAME}"
echo -e "\tOPENJDK_URL: ${OPENJDK_URL}"
echo -e "\tCOMPRESSION: ${COMPRESSION}"
echo -e "\tFILE_NAME_ROOT: ${FILE_NAME_ROOT}"
echo -e "\tREPO_ROOT: ${REPO_ROOT}"
echo -e "\tTO_COMPRESS: ${TO_COMPRESS}"
echo -e "\tGH001: ${GH001}"
echo -e "\tGH003: ${GH003}"
if [ -d ${FILE_NAME_ROOT} ] ; then
echo "exists exists exists exists exists exists exists "
echo "reusing reusing reusing reusing reusing reusing "
echo ${FILE_NAME_ROOT}
else
mkdir "${FILE_NAME_ROOT}"
pushd "${FILE_NAME_ROOT}"
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
git clone -b ${VERSION} ${REPO_ROOT} openjdk
popd
fi
pushd "${FILE_NAME_ROOT}"
# UnderlineTaglet.java has a BSD license with a field-of-use restriction, making it non-Free
if [ -d openjdk/test ] ; then
echo "Removing langtools test case with non-Free license"
rm -vf openjdk/test/langtools/tools/javadoc/api/basic/taglets/UnderlineTaglet.java
fi
if [ -d openjdk/src ]; then
pushd openjdk
echo "Removing EC source code we don't build"
CRYPTO_PATH=src/jdk.crypto.ec/share/native/libsunec/impl
rm -vf ${CRYPTO_PATH}/ec2.h
rm -vf ${CRYPTO_PATH}/ec2_163.c
rm -vf ${CRYPTO_PATH}/ec2_193.c
rm -vf ${CRYPTO_PATH}/ec2_233.c
rm -vf ${CRYPTO_PATH}/ec2_aff.c
rm -vf ${CRYPTO_PATH}/ec2_mont.c
rm -vf ${CRYPTO_PATH}/ecp_192.c
rm -vf ${CRYPTO_PATH}/ecp_224.c
echo "Syncing EC list with NSS"
if [ "x$GH001" = "x" ] ; then
# get gh001-4curve.patch (from https://github.com/icedtea-git/icedtea) in the ${ICEDTEA_VERSION} branch
# Do not push it or publish it
echo "GH001 not found. Downloading..."
wget -v https://github.com/icedtea-git/icedtea/raw/${ICEDTEA_VERSION}/patches/gh001-4curve.patch
echo "Applying ${PWD}/gh001-4curve.patch"
git apply --stat --apply -v -p1 gh001-4curve.patch
rm gh001-4curve.patch
else
echo "Applying ${GH001}"
git apply --stat --apply -v -p1 $GH001
fi;
if [ "x$GH003" = "x" ] ; then
# get gh001-4curve.patch (from https://github.com/icedtea-git/icedtea) in the ${ICEDTEA_VERSION} branch
echo "GH003 not found. Downloading..."
wget -v https://github.com/icedtea-git/icedtea/raw/${ICEDTEA_VERSION}/patches/gh003-4curve.patch
echo "Applying ${PWD}/gh003-4curve.patch"
git apply --stat --apply -v -p1 gh003-4curve.patch
rm gh003-4curve.patch
else
echo "Applying ${GH003}"
git apply --stat --apply -v -p1 $GH003
fi;
find . -name '*.orig' -exec rm -vf '{}' ';' || echo "No .orig files found. This is suspicious, but may happen."
popd
fi
# Generate .src-rev so build has knowledge of the revision the tarball was created from
mkdir build
pushd build
sh ${PWD}/../openjdk/configure
make store-source-revision
popd
rm -rf build
echo "Compressing remaining forest"
if [ "X$COMPRESSION" = "Xxz" ] ; then
SWITCH=cJf
else
SWITCH=czf
fi
TARBALL_NAME=${FILE_NAME_ROOT}-4curve.tar.${COMPRESSION}
tar --exclude-vcs -$SWITCH ${TARBALL_NAME} $TO_COMPRESS
mv ${TARBALL_NAME} ..
popd
echo "Done. You may want to remove the uncompressed version - $FILE_NAME_ROOT."

192
icedtea_sync.sh Executable file
View File

@ -0,0 +1,192 @@
#!/bin/bash
# Copyright (C) 2019 Red Hat, Inc.
# Written by Andrew John Hughes <gnu.andrew@redhat.com>.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
ICEDTEA_USE_VCS=true
ICEDTEA_VERSION=3.15.0
ICEDTEA_URL=https://icedtea.classpath.org/download/source
ICEDTEA_SIGNING_KEY=CFDA0F9B35964222
ICEDTEA_HG_URL=https://icedtea.classpath.org/hg/icedtea11
set -e
RPM_DIR=${PWD}
if [ ! -f ${RPM_DIR}/jconsole.desktop.in ] ; then
echo "Not in RPM source tree.";
exit 1;
fi
if test "x${TMPDIR}" = "x"; then
TMPDIR=/tmp;
fi
WORKDIR=${TMPDIR}/it.sync
echo "Using working directory ${WORKDIR}"
mkdir ${WORKDIR}
pushd ${WORKDIR}
if test "x${WGET}" = "x"; then
WGET=$(which wget);
if test "x${WGET}" = "x"; then
echo "wget not found";
exit 1;
fi
fi
if test "x${TAR}" = "x"; then
TAR=$(which tar)
if test "x${TAR}" = "x"; then
echo "tar not found";
exit 2;
fi
fi
echo "Dependencies:";
echo -e "\tWGET: ${WGET}";
echo -e "\tTAR: ${TAR}\n";
if test "x${ICEDTEA_USE_VCS}" = "xtrue"; then
echo "Mode: Using VCS";
if test "x${GREP}" = "x"; then
GREP=$(which grep);
if test "x${GREP}" = "x"; then
echo "grep not found";
exit 3;
fi
fi
if test "x${CUT}" = "x"; then
CUT=$(which cut);
if test "x${CUT}" = "x"; then
echo "cut not found";
exit 4;
fi
fi
if test "x${TR}" = "x"; then
TR=$(which tr);
if test "x${TR}" = "x"; then
echo "tr not found";
exit 5;
fi
fi
if test "x${HG}" = "x"; then
HG=$(which hg);
if test "x${HG}" = "x"; then
echo "hg not found";
exit 6;
fi
fi
echo "Dependencies:";
echo -e "\tGREP: ${GREP}";
echo -e "\tCUT: ${CUT}";
echo -e "\tTR: ${TR}";
echo -e "\tHG: ${HG}";
echo "Checking out repository from VCS...";
${HG} clone ${ICEDTEA_HG_URL} icedtea
echo "Obtaining version from configure.ac...";
ROOT_VER=$(${GREP} '^AC_INIT' icedtea/configure.ac|${CUT} -d ',' -f 2|${TR} -d '[][:space:]')
echo "Root version from configure: ${ROOT_VER}";
VCS_REV=$(${HG} log -R icedtea --template '{node|short}' -r tip)
echo "VCS revision: ${VCS_REV}";
ICEDTEA_VERSION="${ROOT_VER}-${VCS_REV}"
echo "Creating 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}
rm -rf icedtea
else
echo "Mode: Using tarball";
if test "x${ICEDTEA_VERSION}" = "x"; then
echo "No IcedTea version specified for tarball download.";
exit 3;
fi
if test "x${CHECKSUM}" = "x"; then
CHECKSUM=$(which sha256sum)
if test "x${CHECKSUM}" = "x"; then
echo "sha256sum not found";
exit 4;
fi
fi
if test "x${PGP}" = "x"; then
PGP=$(which gpg)
if test "x${PGP}" = "x"; then
echo "gpg not found";
exit 5;
fi
fi
echo "Dependencies:";
echo -e "\tCHECKSUM: ${CHECKSUM}";
echo -e "\tPGP: ${PGP}\n";
echo "Checking for IcedTea signing key ${ICEDTEA_SIGNING_KEY}...";
if ! gpg --list-keys ${ICEDTEA_SIGNING_KEY}; then
echo "IcedTea signing key ${ICEDTEA_SIGNING_KEY} not installed.";
exit 6;
fi
echo "Downloading IcedTea release tarball...";
${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.tar.xz
echo "Downloading IcedTea tarball signature...";
${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.tar.xz.sig
echo "Downloading IcedTea tarball checksums...";
${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.sha256
echo "Verifying checksums...";
${CHECKSUM} --check --ignore-missing icedtea-${ICEDTEA_VERSION}.sha256
echo "Checking signature...";
${PGP} --verify icedtea-${ICEDTEA_VERSION}.tar.xz.sig
echo "Extracting files...";
${TAR} xJf icedtea-${ICEDTEA_VERSION}.tar.xz \
icedtea-${ICEDTEA_VERSION}/tapset \
icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in
rm -vf icedtea-${ICEDTEA_VERSION}.tar.xz
rm -vf icedtea-${ICEDTEA_VERSION}.tar.xz.sig
rm -vf icedtea-${ICEDTEA_VERSION}.sha256
fi
echo "Replacing desktop files...";
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
rm -rvf openjdk
popd
rm -rf ${WORKDIR}

76
openjdk_news.sh Executable file
View File

@ -0,0 +1,76 @@
#!/bin/bash
# Copyright (C) 2022 Red Hat, Inc.
# Written by Andrew John Hughes <gnu.andrew@redhat.com>, 2012-2022
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
OLD_RELEASE=$1
NEW_RELEASE=$2
SUBDIR=$3
REPO=$4
SCRIPT_DIR=$(dirname ${0})
if test "x${SUBDIR}" = "x"; then
echo "No subdirectory specified; using .";
SUBDIR=".";
fi
if test "x$REPO" = "x"; then
echo "No repository specified; using ${PWD}"
REPO=${PWD}
fi
if test x${TMPDIR} = x; then
TMPDIR=/tmp;
fi
echo "Repository: ${REPO}"
if [ -e ${REPO}/.git ] ; then
TYPE=git;
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
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});
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;
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
fi
done
sort ${TMPDIR}/fixes2 ${TMPDIR}/fixes3 | uniq > ${TMPDIR}/fixes
rm -f ${TMPDIR}/fixes2 ${TMPDIR}/fixes3
echo "In ${TMPDIR}/fixes:"
cat ${TMPDIR}/fixes

21
tests/tests.yml Normal file
View File

@ -0,0 +1,21 @@
---
- hosts: localhost
roles:
- role: standard-test-source
tags:
- always
- role: standard-test-basic
tags:
- classic
- atomic
required_packages:
- java-11-openjdk-devel
tests:
- javaVersion1:
dir: ~
run: set -ex; useradd franta1; su franta1 -c 'java -version';
run: set -ex; useradd franta4; su franta4 -c 'javac -version';
run: ls -l /usr/lib/jvm;
- javaVersion2:
dir: ~
run: set -ex; useradd franta2; su franta2 -c 'java --version'

42
update_package.sh Normal file
View File

@ -0,0 +1,42 @@
#!/bin/bash -x
# this file contains defaults for currently generated source tarballs
set -e
# OpenJDK from Shenandoah project
export PROJECT_NAME="shenandoah"
export REPO_NAME="jdk11"
# warning, clonning without shenadnaoh prefix, you will clone pure jdk - thus without shenandaoh GC
export VERSION="shenandoah-jdk-11.0.3+7"
export COMPRESSION=xz
# unset tapsets overrides
export OPENJDK_URL=""
export TO_COMPRESS=""
# warning, filename and filenameroot creation is duplicated here from generate_source_tarball.sh
export FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
FILENAME=${FILE_NAME_ROOT}.tar.${COMPRESSION}
if [ ! -f ${FILENAME} ] ; then
echo "Generating ${FILENAME}"
sh ./generate_source_tarball.sh
else
echo "exists exists exists exists exists exists exists "
echo "reusing reusing reusing reusing reusing reusing "
echo ${FILENAME}
fi
set +e
major=`echo $REPO_NAME | sed 's/[a-zA-Z]*//g'`
build=`echo $VERSION | sed 's/.*+//g'`
name_helper=`echo $FILENAME | sed s/$major/'%{majorver}'/g `
name_helper=`echo $name_helper | sed s/$build/'%{buildver}'/g `
echo "align specfile acordingly:"
echo " sed 's/^Source0:.*/Source0: $name_helper/' -i *.spec"
echo " sed 's/^Source8:.*/Source8: $TAPSET/' -i *.spec"
echo " sed 's/^%global buildver.*/%global buildver $build/' -i *.spec"
echo " sed 's/Release:.*/Release: 1%{?dist}/' -i *.spec"
echo "and maybe others...."
echo "you should fedpkg/rhpkg new-sources $TAPSET $FILENAME"
echo "you should fedpkg/rhpkg prep --arch XXXX on all architectures: x86_64 i386 i586 i686 ppc ppc64 ppc64le s390 s390x aarch64 armv7hl"