Compare commits
31 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
b6281fa044 | ||
|
f6de0e71b5 | ||
|
a1b4ddc797 | ||
|
0ef00754c6 | ||
|
c57ff62ed2 | ||
|
d3b6e4820b | ||
|
242a78f54c | ||
|
ff487763fc | ||
|
f1d0e16cc1 | ||
|
a71185e830 | ||
|
2b512f61b4 | ||
|
1d97cec83f | ||
|
5ab235ae09 | ||
|
2aed69fb8b | ||
|
2e9bc90b6c | ||
|
bade6a4d92 | ||
|
4b38c2140b | ||
|
8a7656ebac | ||
|
0066a17fe1 | ||
|
e4459f4dcc | ||
|
26504dac4c | ||
|
1eb10e704b | ||
|
898c425bb6 | ||
|
9e5764b72d | ||
|
4ec83bb3a6 | ||
|
fff7874101 | ||
|
f6cdd00fde | ||
|
fd0dca9bab | ||
|
a238aebf8e | ||
|
43b5b84321 | ||
|
dee0f27293 |
9
.gitignore
vendored
9
.gitignore
vendored
@ -34,3 +34,12 @@
|
|||||||
/openjdk-jdk20u-jdk-20+36.tar.xz
|
/openjdk-jdk20u-jdk-20+36.tar.xz
|
||||||
/openjdk-jdk20u-jdk-20.0.1+9.tar.xz
|
/openjdk-jdk20u-jdk-20.0.1+9.tar.xz
|
||||||
/openjdk-jdk20u-jdk-20.0.2+9.tar.xz
|
/openjdk-jdk20u-jdk-20.0.2+9.tar.xz
|
||||||
|
/openjdk-jdk21u-jdk-21+34.tar.xz
|
||||||
|
/openjdk-jdk21u-jdk-21+35.tar.xz
|
||||||
|
/openjdk-21+35.tar.xz
|
||||||
|
/openjdk-21.0.1+12.tar.xz
|
||||||
|
/openjdk-21.0.2+11.tar.xz
|
||||||
|
/openjdk-21.0.2+12.tar.xz
|
||||||
|
/openjdk-21.0.2+13.tar.xz
|
||||||
|
/openjdk-22+32-ea.tar.xz
|
||||||
|
/openjdk-jdk-22+36-ea.tar.xz
|
||||||
|
22
README.md
22
README.md
@ -1,16 +1,16 @@
|
|||||||
# java-latest-openjdk-portable
|
# java-latest-openjdk-portable
|
||||||
|
|
||||||
The java-latest-openjdk-portable package
|
This package contains the latest rolling release of OpenJDK. OpenJDK
|
||||||
=======
|
has a release cadence of six months, with a new release in March and
|
||||||
Rolling release of (usually) STSs OpenJDK
|
September each year.
|
||||||
OpenJDK has release cadence of 6 months, but 3/4 of them are Short Term Supported for 6 months only. This package is designed to harbor them. Currently it is build of OpenJDK 12. LTSs will go also as separate packages.
|
|
||||||
|
|
||||||
JDK12 is current release of Java platform. It is bringing many cool improvements - https://openjdk.java.net/projects/jdk/12/ and is landing to your Fedora. Where it will be maintained for f28 and newer. Unluckily, this package is STS (short term support) version. Between individual LTS there will be always several STS. Again, please see announcement: http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html and See java SIG plans: https://jvanek.fedorapeople.org/devconf/2018/changesInjavaReleaseProcess.pdf . So this is rolling release of all STSs to come. Its fate during the release of fresh LTS is yet to be decided. You will always be allowed to install LTS in fedora build root, alongside with latest STS via alternatives.
|
The current release is OpenJDK 22. For a list of major changes from
|
||||||
|
OpenJDK 21, see the NEWS file included in this package and the
|
||||||
|
upstream release page:
|
||||||
|
|
||||||
|
https://openjdk.java.net/projects/jdk/22/
|
||||||
|
|
||||||
See announcement: http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html
|
This package is intended for those who want to follow the latest
|
||||||
See java SIG plans: https://jvanek.fedorapeople.org/devconf/2018/changesInjavaReleaseProcess.pdf
|
OpenJDK releases. Long term support versions of OpenJDK are available
|
||||||
|
in the java-1.8.0-openjdk, java-11-openjdk, java-17-openjdk and java-21-openjdk
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=1557371#c0
|
packages.
|
||||||
https://fedoraproject.org/wiki/Changes/java-openjdk-10
|
|
||||||
https://fedoraproject.org/wiki/Changes/java-11-openjdk-TechPreview
|
|
||||||
|
100
alt-java.c
Normal file
100
alt-java.c
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2023 Red Hat, Inc.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
*
|
||||||
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
|
* published by the Free Software Foundation. Red Hat designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Red Hat in the LICENSE file that accompanied this code.
|
||||||
|
*
|
||||||
|
* This code 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 General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License version
|
||||||
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <libgen.h>
|
||||||
|
#include <linux/limits.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/prctl.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
/* Per task speculation control */
|
||||||
|
#ifndef PR_GET_SPECULATION_CTRL
|
||||||
|
# define PR_GET_SPECULATION_CTRL 52
|
||||||
|
#endif
|
||||||
|
#ifndef PR_SET_SPECULATION_CTRL
|
||||||
|
# define PR_SET_SPECULATION_CTRL 53
|
||||||
|
#endif
|
||||||
|
/* Speculation control variants */
|
||||||
|
#ifndef PR_SPEC_STORE_BYPASS
|
||||||
|
# define PR_SPEC_STORE_BYPASS 0
|
||||||
|
#endif
|
||||||
|
/* Return and control values for PR_SET/GET_SPECULATION_CTRL */
|
||||||
|
|
||||||
|
#ifndef PR_SPEC_NOT_AFFECTED
|
||||||
|
# define PR_SPEC_NOT_AFFECTED 0
|
||||||
|
#endif
|
||||||
|
#ifndef PR_SPEC_PRCTL
|
||||||
|
# define PR_SPEC_PRCTL (1UL << 0)
|
||||||
|
#endif
|
||||||
|
#ifndef PR_SPEC_ENABLE
|
||||||
|
# define PR_SPEC_ENABLE (1UL << 1)
|
||||||
|
#endif
|
||||||
|
#ifndef PR_SPEC_DISABLE
|
||||||
|
# define PR_SPEC_DISABLE (1UL << 2)
|
||||||
|
#endif
|
||||||
|
#ifndef PR_SPEC_FORCE_DISABLE
|
||||||
|
# define PR_SPEC_FORCE_DISABLE (1UL << 3)
|
||||||
|
#endif
|
||||||
|
#ifndef PR_SPEC_DISABLE_NOEXEC
|
||||||
|
# define PR_SPEC_DISABLE_NOEXEC (1UL << 4)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static void set_speculation() {
|
||||||
|
#if defined(__linux__) && defined(__x86_64__)
|
||||||
|
// PR_SPEC_DISABLE_NOEXEC doesn't survive execve, so we can't use it
|
||||||
|
// if ( prctl(PR_SET_SPECULATION_CTRL,
|
||||||
|
// PR_SPEC_STORE_BYPASS,
|
||||||
|
// PR_SPEC_DISABLE_NOEXEC, 0, 0) == 0 ) {
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0);
|
||||||
|
#else
|
||||||
|
#warning alt-java requested but SSB mitigation not available on this platform.
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
set_speculation();
|
||||||
|
|
||||||
|
char our_name[PATH_MAX], java_name[PATH_MAX];
|
||||||
|
ssize_t len = readlink("/proc/self/exe", our_name, PATH_MAX - 1);
|
||||||
|
if (len < 0) {
|
||||||
|
perror("I can't find myself");
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
our_name[len] = '\0'; // readlink(2) doesn't append a null byte
|
||||||
|
char *path = dirname(our_name);
|
||||||
|
strncpy(java_name, path, PATH_MAX - 1);
|
||||||
|
|
||||||
|
size_t remaining_bytes = PATH_MAX - strlen(path) - 1;
|
||||||
|
strncat(java_name, "/java", remaining_bytes);
|
||||||
|
|
||||||
|
execv(java_name, argv);
|
||||||
|
fprintf(stderr, "%s failed to launch: %s\n", java_name, strerror(errno));
|
||||||
|
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
54
discover_trees.sh
Executable file
54
discover_trees.sh
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Copyright (C) 2020 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 <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
TREE=${1}
|
||||||
|
|
||||||
|
if test "x${TREE}" = "x"; then
|
||||||
|
TREE=${PWD}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e ${TREE}/nashorn/.hg -o -e ${TREE}/nashorn/merge.changeset ] ; then
|
||||||
|
NASHORN="nashorn" ;
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e ${TREE}/corba/.hg -o -e ${TREE}/corba/merge.changeset ] ; then
|
||||||
|
CORBA="corba";
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e ${TREE}/jaxp/.hg -o -e ${TREE}/jaxp/merge.changeset ] ; then
|
||||||
|
JAXP="jaxp";
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e ${TREE}/jaxws/.hg -o -e ${TREE}/jaxws/merge.changeset ] ; then
|
||||||
|
JAXWS="jaxws";
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e ${TREE}/langtools/.hg -o -e ${TREE}/langtools/merge.changeset ] ; then
|
||||||
|
LANGTOOLS="langtools";
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e ${TREE}/jdk/.hg -o -e ${TREE}/jdk/merge.changeset ] ; then
|
||||||
|
JDK="jdk";
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e ${TREE}/hotspot/.hg -o -e ${TREE}/hotspot/merge.changeset ] ; then
|
||||||
|
HOTSPOT="hotspot";
|
||||||
|
fi
|
||||||
|
|
||||||
|
SUBTREES="${CORBA} ${JAXP} ${JAXWS} ${LANGTOOLS} ${NASHORN} ${JDK} ${HOTSPOT}";
|
||||||
|
echo ${SUBTREES}
|
File diff suppressed because it is too large
Load Diff
@ -1,75 +1,146 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright (C) 2024 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# 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/>.
|
||||||
|
|
||||||
# Generates the 'source tarball' for JDK projects.
|
# Generates the 'source tarball' for JDK projects.
|
||||||
#
|
#
|
||||||
# Example:
|
# Example 1:
|
||||||
# When used from local repo set REPO_ROOT pointing to file:// with your repo
|
# 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 your local repo follows upstream forests conventions, it may be enough to
|
||||||
|
# set OPENJDK_URL.
|
||||||
|
#
|
||||||
|
# Example 2:
|
||||||
|
# This will read the OpenJDK feature version from the spec file, then create a
|
||||||
|
# tarball from the most recent tag for that version in the upstream Git
|
||||||
|
# repository.
|
||||||
|
#
|
||||||
|
# $ OPENJDK_LATEST=1 ./generate_source_tarball.sh
|
||||||
|
# [...]
|
||||||
|
# Tarball is: temp-generated-source-tarball-ujD/openjdk-17.0.10+6-ea.tar.xz
|
||||||
|
#
|
||||||
|
# Unless you use OPENJDK_LATEST, you have to set PROJECT_NAME, REPO_NAME and
|
||||||
|
# VERSION, e.g.:
|
||||||
#
|
#
|
||||||
# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
|
|
||||||
# PROJECT_NAME=openjdk
|
# PROJECT_NAME=openjdk
|
||||||
# REPO_NAME=jdk18u
|
# REPO_NAME=jdk22u
|
||||||
# VERSION=jdk-18.0.1+10
|
# VERSION=jdk-22+36
|
||||||
# or to eg prepare systemtap:
|
#
|
||||||
# icedtea7's jstack and other tapsets
|
# or to e.g., prepare systemtap, icedtea7's jstack and other tapsets:
|
||||||
|
#
|
||||||
# VERSION=6327cf1cea9e
|
# VERSION=6327cf1cea9e
|
||||||
# REPO_NAME=icedtea7-2.6
|
# REPO_NAME=icedtea7-2.6
|
||||||
# PROJECT_NAME=release
|
# PROJECT_NAME=release
|
||||||
# OPENJDK_URL=http://icedtea.classpath.org/hg/
|
# OPENJDK_URL=http://icedtea.classpath.org/hg/
|
||||||
# TO_COMPRESS="*/tapset"
|
# TO_COMPRESS="*/tapset"
|
||||||
#
|
#
|
||||||
# They are used to create correct name and are used in construction of sources url (unless REPO_ROOT is set)
|
# 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
|
|
||||||
#
|
#
|
||||||
|
# This script creates a single source tarball out of the repository based on the
|
||||||
|
# given tag and removes code not allowed in Fedora/RHEL.
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
OPENJDK_URL_DEFAULT=https://github.com
|
OPENJDK_URL_DEFAULT=https://github.com
|
||||||
COMPRESSION_DEFAULT=xz
|
COMPRESSION_DEFAULT=xz
|
||||||
# Corresponding IcedTea version
|
|
||||||
ICEDTEA_VERSION=15.0
|
|
||||||
|
|
||||||
if [ "x$1" = "xhelp" ] ; then
|
if [ "$1" = "help" ] ; then
|
||||||
echo -e "Behaviour may be specified by setting the following variables:\n"
|
echo "Behaviour may be specified by setting the following variables:"
|
||||||
echo "VERSION - the version of the specified OpenJDK project"
|
echo
|
||||||
echo "PROJECT_NAME -- the name of the OpenJDK project being archived (optional; only needed by defaults)"
|
echo "VERSION - the version of the specified OpenJDK project"
|
||||||
echo "REPO_NAME - the name of the OpenJDK repository (optional; only needed by defaults)"
|
echo " (required unless OPENJDK_LATEST is set)"
|
||||||
echo "OPENJDK_URL - the URL to retrieve code from (optional; defaults to ${OPENJDK_URL_DEFAULT})"
|
echo "PROJECT_NAME - the name of the OpenJDK project being archived"
|
||||||
echo "COMPRESSION - the compression type to use (optional; defaults to ${COMPRESSION_DEFAULT})"
|
echo " (needed to compute REPO_ROOT and/or"
|
||||||
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults to PROJECT_NAME-REPO_NAME-VERSION)"
|
echo " FILE_NAME_ROOT automatically;"
|
||||||
echo "REPO_ROOT - the location of the Git repository to archive (optional; defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)"
|
echo " optional if they are set explicitly)"
|
||||||
echo "TO_COMPRESS - what part of clone to pack (default is openjdk)"
|
echo "REPO_NAME - the name of the OpenJDK repository"
|
||||||
echo "BOOT_JDK - the bootstrap JDK to satisfy the configure run"
|
echo " (needed to compute REPO_ROOT automatically;"
|
||||||
|
echo " optional if REPO_ROOT is set explicitly)"
|
||||||
|
echo "OPENJDK_URL - the URL to retrieve code from"
|
||||||
|
echo " (defaults to ${OPENJDK_URL_DEFAULT})"
|
||||||
|
echo "COMPRESSION - the compression type to use"
|
||||||
|
echo " (defaults to ${COMPRESSION_DEFAULT})"
|
||||||
|
echo "FILE_NAME_ROOT - name of the archive, minus extensions"
|
||||||
|
echo " (defaults to PROJECT_NAME-VERSION)"
|
||||||
|
echo "REPO_ROOT - the location of the Git repository to archive"
|
||||||
|
echo " (defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME.git)"
|
||||||
|
echo "TO_COMPRESS - what part of clone to pack"
|
||||||
|
echo " (defaults to ${VERSION})"
|
||||||
|
echo "BOOT_JDK - the bootstrap JDK to satisfy the configure run"
|
||||||
|
echo " (defaults to packaged JDK version)"
|
||||||
|
echo "WITH_TEMP - run in a temporary directory"
|
||||||
|
echo " (defaults to disabled)"
|
||||||
|
echo "OPENJDK_LATEST - deduce VERSION from most recent upstream tag"
|
||||||
|
echo " (implies WITH_TEMP, computes everything else"
|
||||||
|
echo " automatically; Note: accesses network to read"
|
||||||
|
echo " tag list from remote Git repository)"
|
||||||
exit 1;
|
exit 1;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$OPENJDK_LATEST" != "" ] ; then
|
||||||
|
FEATURE_VERSION=$(echo '%featurever' \
|
||||||
|
| rpmspec --shell ./*.spec 2>/dev/null \
|
||||||
|
| grep --after-context 1 featurever \
|
||||||
|
| tail --lines 1)
|
||||||
|
PROJECT_NAME=openjdk
|
||||||
|
REPO_NAME=jdk"${FEATURE_VERSION}"u
|
||||||
|
# Skip -ga tags since those are the same as the most recent non-ga tag, and
|
||||||
|
# the non-ga tag is the one that is used to generated the official source
|
||||||
|
# tarball. For example:
|
||||||
|
# ca760c86642aa2e0d9b571aaabac054c0239fbdc refs/tags/jdk-17.0.10-ga^{}
|
||||||
|
# 25a2e6c20c9a96853714284cabc6b456eb095070 refs/tags/jdk-17.0.10-ga
|
||||||
|
# ca760c86642aa2e0d9b571aaabac054c0239fbdc refs/tags/jdk-17.0.10+7^{}
|
||||||
|
# e49c5749b10f3e90274b72e9279f794fdd191d27 refs/tags/jdk-17.0.10+7
|
||||||
|
VERSION=$(git ls-remote --tags --refs --sort=-version:refname \
|
||||||
|
"${OPENJDK_URL_DEFAULT}/${PROJECT_NAME}/${REPO_NAME}.git" \
|
||||||
|
"jdk-${FEATURE_VERSION}*" \
|
||||||
|
| grep --invert-match '\-ga$' \
|
||||||
|
| head --lines 1 | cut --characters 52-)
|
||||||
|
FILE_NAME_ROOT=open${VERSION}
|
||||||
|
WITH_TEMP=1
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "x$VERSION" = "x" ] ; then
|
if [ "$WITH_TEMP" != "" ] ; then
|
||||||
|
pushd "$(mktemp --directory temp-generated-source-tarball-XXX)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$VERSION" = "" ] ; then
|
||||||
echo "No VERSION specified"
|
echo "No VERSION specified"
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
echo "Version: ${VERSION}"
|
echo "Version: ${VERSION}"
|
||||||
|
|
||||||
NUM_VER=${VERSION##jdk-}
|
NUM_VER=${VERSION##jdk-}
|
||||||
RELEASE_VER=${NUM_VER%%+*}
|
RELEASE_VER=${NUM_VER%%+*}
|
||||||
BUILD_VER=${NUM_VER##*+}
|
BUILD_VER=${NUM_VER##*+}
|
||||||
MAJOR_VER=${RELEASE_VER%%.*}
|
MAJOR_VER=${RELEASE_VER%%.*}
|
||||||
echo "Major version is ${MAJOR_VER}, release ${RELEASE_VER}, build ${BUILD_VER}"
|
echo "Major version is ${MAJOR_VER}, release ${RELEASE_VER}, build ${BUILD_VER}"
|
||||||
|
|
||||||
if [ "x$BOOT_JDK" = "x" ] ; then
|
if [ "$BOOT_JDK" = "" ] ; then
|
||||||
echo "No boot JDK specified".
|
echo "No boot JDK specified".
|
||||||
BOOT_JDK=/usr/lib/jvm/java-${MAJOR_VER}-openjdk;
|
BOOT_JDK=/usr/lib/jvm/java-${MAJOR_VER}-openjdk;
|
||||||
echo -n "Checking for ${BOOT_JDK}...";
|
echo -n "Checking for ${BOOT_JDK}...";
|
||||||
if [ -d ${BOOT_JDK} -a -x ${BOOT_JDK}/bin/java ] ; then
|
if [ -d "${BOOT_JDK}" ] && [ -x "${BOOT_JDK}"/bin/java ] ; then
|
||||||
echo "Boot JDK found at ${BOOT_JDK}";
|
echo "Boot JDK found at ${BOOT_JDK}";
|
||||||
else
|
else
|
||||||
echo "Not found";
|
echo "Not found";
|
||||||
PREV_VER=$((${MAJOR_VER} - 1));
|
PREV_VER=$((MAJOR_VER - 1));
|
||||||
BOOT_JDK=/usr/lib/jvm/java-${PREV_VER}-openjdk;
|
BOOT_JDK=/usr/lib/jvm/java-${PREV_VER}-openjdk;
|
||||||
echo -n "Checking for ${BOOT_JDK}...";
|
echo -n "Checking for ${BOOT_JDK}...";
|
||||||
if [ -d ${BOOT_JDK} -a -x ${BOOT_JDK}/bin/java ] ; then
|
if [ -d ${BOOT_JDK} ] && [ -x ${BOOT_JDK}/bin/java ] ; then
|
||||||
echo "Boot JDK found at ${BOOT_JDK}";
|
echo "Boot JDK found at ${BOOT_JDK}";
|
||||||
else
|
else
|
||||||
echo "Not found";
|
echo "Not found";
|
||||||
@ -80,45 +151,43 @@ else
|
|||||||
echo "Boot JDK: ${BOOT_JDK}";
|
echo "Boot JDK: ${BOOT_JDK}";
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# REPO_NAME is only needed when we default on REPO_ROOT and FILE_NAME_ROOT
|
if [ "$OPENJDK_URL" = "" ] ; then
|
||||||
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}
|
OPENJDK_URL=${OPENJDK_URL_DEFAULT}
|
||||||
echo "No OpenJDK URL specified; defaulting to ${OPENJDK_URL}"
|
echo "No OpenJDK URL specified; defaulting to ${OPENJDK_URL}"
|
||||||
else
|
else
|
||||||
echo "OpenJDK URL: ${OPENJDK_URL}"
|
echo "OpenJDK URL: ${OPENJDK_URL}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "x$COMPRESSION" = "x" ] ; then
|
if [ "$COMPRESSION" = "" ] ; then
|
||||||
# rhel 5 needs tar.gz
|
# rhel 5 needs tar.gz
|
||||||
COMPRESSION=${COMPRESSION_DEFAULT}
|
COMPRESSION=${COMPRESSION_DEFAULT}
|
||||||
fi
|
fi
|
||||||
echo "Creating a tar.${COMPRESSION} archive"
|
echo "Creating a tar.${COMPRESSION} archive"
|
||||||
|
|
||||||
if [ "x$FILE_NAME_ROOT" = "x" ] ; then
|
if [ "$FILE_NAME_ROOT" = "" ] ; then
|
||||||
FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
|
if [ "$PROJECT_NAME" = "" ] ; then
|
||||||
|
echo "No PROJECT_NAME specified, needed by FILE_NAME_ROOT"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
FILE_NAME_ROOT=${PROJECT_NAME}-${VERSION}
|
||||||
echo "No file name root specified; default to ${FILE_NAME_ROOT}"
|
echo "No file name root specified; default to ${FILE_NAME_ROOT}"
|
||||||
fi
|
fi
|
||||||
if [ "x$REPO_ROOT" = "x" ] ; then
|
if [ "$REPO_ROOT" = "" ] ; then
|
||||||
|
if [ "$PROJECT_NAME" = "" ] ; then
|
||||||
|
echo "No PROJECT_NAME specified, needed by REPO_ROOT"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "$REPO_NAME" = "" ] ; then
|
||||||
|
echo "No REPO_NAME specified, needed by REPO_ROOT"
|
||||||
|
exit 3
|
||||||
|
fi
|
||||||
REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git"
|
REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git"
|
||||||
echo "No repository root specified; default to ${REPO_ROOT}"
|
echo "No repository root specified; default to ${REPO_ROOT}"
|
||||||
fi;
|
fi;
|
||||||
|
|
||||||
if [ "x$TO_COMPRESS" = "x" ] ; then
|
if [ "$TO_COMPRESS" = "" ] ; then
|
||||||
TO_COMPRESS="openjdk"
|
TO_COMPRESS="${VERSION}"
|
||||||
echo "No targets to be compressed specified, ; default to ${TO_COMPRESS}"
|
echo "No targets to be compressed specified ; default to ${TO_COMPRESS}"
|
||||||
fi;
|
fi;
|
||||||
|
|
||||||
echo -e "Settings:"
|
echo -e "Settings:"
|
||||||
@ -132,52 +201,74 @@ echo -e "\tREPO_ROOT: ${REPO_ROOT}"
|
|||||||
echo -e "\tTO_COMPRESS: ${TO_COMPRESS}"
|
echo -e "\tTO_COMPRESS: ${TO_COMPRESS}"
|
||||||
echo -e "\tBOOT_JDK: ${BOOT_JDK}"
|
echo -e "\tBOOT_JDK: ${BOOT_JDK}"
|
||||||
|
|
||||||
if [ -d ${FILE_NAME_ROOT} ] ; then
|
if [ -d "${FILE_NAME_ROOT}" ] ; then
|
||||||
echo "exists exists exists exists exists exists exists "
|
echo "exists exists exists exists exists exists exists "
|
||||||
echo "reusing reusing reusing reusing reusing reusing "
|
echo "reusing reusing reusing reusing reusing reusing "
|
||||||
echo ${FILE_NAME_ROOT}
|
echo "${FILE_NAME_ROOT}"
|
||||||
|
STAT_TIME="$(stat --format=%Y "${FILE_NAME_ROOT}")"
|
||||||
|
TAR_TIME="$(date --date=@"${STAT_TIME}" --iso-8601=seconds)"
|
||||||
else
|
else
|
||||||
mkdir "${FILE_NAME_ROOT}"
|
mkdir "${FILE_NAME_ROOT}"
|
||||||
pushd "${FILE_NAME_ROOT}"
|
pushd "${FILE_NAME_ROOT}"
|
||||||
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
|
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
|
||||||
git clone -b ${VERSION} ${REPO_ROOT} openjdk
|
git clone --depth=1 -b "${VERSION}" "${REPO_ROOT}" "${VERSION}"
|
||||||
popd
|
pushd "${VERSION}"
|
||||||
|
TAR_TIME="$(git log --max-count 1 --format=%cI)"
|
||||||
|
popd
|
||||||
|
popd
|
||||||
fi
|
fi
|
||||||
pushd "${FILE_NAME_ROOT}"
|
pushd "${FILE_NAME_ROOT}"
|
||||||
# Generate .src-rev so build has knowledge of the revision the tarball was created from
|
# Generate .src-rev so build has knowledge of the revision the tarball was
|
||||||
|
# created from
|
||||||
mkdir build
|
mkdir build
|
||||||
pushd build
|
pushd build
|
||||||
sh ${PWD}/../openjdk/configure --with-boot-jdk=${BOOT_JDK}
|
sh "${PWD}"/../"${VERSION}"/configure --with-boot-jdk="${BOOT_JDK}"
|
||||||
make store-source-revision
|
make store-source-revision
|
||||||
popd
|
popd
|
||||||
rm -rf build
|
rm -rf build
|
||||||
|
|
||||||
# Remove commit checks
|
EA_PART="$(awk -F= \
|
||||||
echo "Removing $(find openjdk -name '.jcheck' -print)"
|
'/^DEFAULT_PROMOTED_VERSION_PRE/ { if ($2) print "-"$2 }' \
|
||||||
find openjdk -name '.jcheck' -print0 | xargs -0 rm -rf
|
"${VERSION}"/make/conf/version-numbers.conf)"
|
||||||
|
TARBALL_BASE=${FILE_NAME_ROOT}${EA_PART}.tar
|
||||||
# Remove history and GHA
|
pushd "${VERSION}"
|
||||||
echo "find openjdk -name '.hgtags'"
|
# Omit commit checks, history, and GHA from archive.
|
||||||
find openjdk -name '.hgtags' -exec rm -fv '{}' '+'
|
for skip in .jcheck .hgtags .hgignore .gitattributes .gitignore .github
|
||||||
echo "find openjdk -name '.hgignore'"
|
do
|
||||||
find openjdk -name '.hgignore' -exec rm -fv '{}' '+'
|
echo "${skip}"" export-ignore" >> .git/info/attributes
|
||||||
echo "find openjdk -name '.gitattributes'"
|
done
|
||||||
find openjdk -name '.gitattributes' -exec rm -fv '{}' '+'
|
# Do not bother with --mtime here; specify it to tar below.
|
||||||
echo "find openjdk -name '.gitignore'"
|
# Unforunately, git-archive sorts added files like .src-rev at the end;
|
||||||
find openjdk -name '.gitignore' -exec rm -fv '{}' '+'
|
# retar below to use GNU tar --sort=name ordering which sorts .src-rev
|
||||||
echo "find openjdk -name '.git'"
|
# at the start.
|
||||||
find openjdk -name '.git' -exec rm -rfv '{}' '+'
|
git archive --output "${TARBALL_BASE}" --prefix="${VERSION}"/ \
|
||||||
echo "find openjdk -name '.github'"
|
--add-file=.src-rev --format=tar "${VERSION}"
|
||||||
find openjdk -name '.github' -exec rm -rfv '{}' '+'
|
popd
|
||||||
|
mv "${VERSION}" "${VERSION}".git
|
||||||
|
tar xf "${VERSION}".git/"${TARBALL_BASE}"
|
||||||
echo "Compressing remaining forest"
|
echo "Compressing remaining forest"
|
||||||
if [ "X$COMPRESSION" = "Xxz" ] ; then
|
if [ "$COMPRESSION" = "xz" ] ; then
|
||||||
SWITCH=cJf
|
SWITCH=cJf
|
||||||
else
|
else
|
||||||
SWITCH=czf
|
SWITCH=czf
|
||||||
fi
|
fi
|
||||||
TARBALL_NAME=${FILE_NAME_ROOT}.tar.${COMPRESSION}
|
TARBALL_NAME=${TARBALL_BASE}.${COMPRESSION}
|
||||||
tar --exclude-vcs -$SWITCH ${TARBALL_NAME} $TO_COMPRESS
|
XZ_OPT=${XZ_OPT-"-T0"} \
|
||||||
mv ${TARBALL_NAME} ..
|
tar --mtime="${TAR_TIME}" --owner=root --group=root --sort=name \
|
||||||
|
-$SWITCH "${TARBALL_NAME}" "${TO_COMPRESS}"
|
||||||
|
mv "${TARBALL_NAME}" ..
|
||||||
popd
|
popd
|
||||||
echo "Done. You may want to remove the uncompressed version - $FILE_NAME_ROOT."
|
if [ "$WITH_TEMP" != "" ] ; then
|
||||||
|
echo "Tarball is: $(realpath --relative-to=.. .)/${TARBALL_NAME}"
|
||||||
|
popd
|
||||||
|
else
|
||||||
|
echo -n "Done. You may want to remove the uncompressed version"
|
||||||
|
echo " - $FILE_NAME_ROOT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# compile-command: "shellcheck generate_source_tarball.sh"
|
||||||
|
# fill-column: 80
|
||||||
|
# indent-tabs-mode: nil
|
||||||
|
# sh-basic-offset: 4
|
||||||
|
# End:
|
||||||
|
193
icedtea_sync.sh
193
icedtea_sync.sh
@ -1,192 +1 @@
|
|||||||
#!/bin/bash
|
# this file is intentionally not here, as portable builds do not have desktop integration
|
||||||
|
|
||||||
# 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}
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,10 +1 @@
|
|||||||
[Desktop Entry]
|
# this file is intentionally not here, as portable builds do not have desktop integration
|
||||||
Name=OpenJDK @JAVA_VER@ for @target_cpu@ Monitoring & Management Console (@OPENJDK_VER@)
|
|
||||||
Comment=Monitor and manage OpenJDK applications
|
|
||||||
Exec=_SDKBINDIR_/jconsole
|
|
||||||
Icon=java-@JAVA_VER@-@JAVA_VENDOR@
|
|
||||||
Terminal=false
|
|
||||||
Type=Application
|
|
||||||
StartupWMClass=sun-tools-jconsole-JConsole
|
|
||||||
Categories=Development;Profiling;Java;
|
|
||||||
Version=1.0
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
|
|
@ -1 +0,0 @@
|
|||||||
|
|
@ -1,5 +0,0 @@
|
|||||||
name = NSS
|
|
||||||
nssLibraryDirectory = @NSS_LIBDIR@
|
|
||||||
nssDbMode = noDb
|
|
||||||
attributes = compatibility
|
|
||||||
handleStartupErrors = ignoreMultipleInitialisation
|
|
@ -1,8 +0,0 @@
|
|||||||
name = NSS-FIPS
|
|
||||||
nssLibraryDirectory = @NSS_LIBDIR@
|
|
||||||
nssSecmodDirectory = sql:/etc/pki/nssdb
|
|
||||||
nssDbMode = readOnly
|
|
||||||
nssModule = fips
|
|
||||||
|
|
||||||
attributes(*,CKO_SECRET_KEY,CKK_GENERIC_SECRET)={ CKA_SIGN=true }
|
|
||||||
|
|
@ -18,8 +18,8 @@
|
|||||||
|
|
||||||
OLD_RELEASE=$1
|
OLD_RELEASE=$1
|
||||||
NEW_RELEASE=$2
|
NEW_RELEASE=$2
|
||||||
SUBDIR=$3
|
REPO=$3
|
||||||
REPO=$4
|
SUBDIR=$4
|
||||||
SCRIPT_DIR=$(dirname ${0})
|
SCRIPT_DIR=$(dirname ${0})
|
||||||
|
|
||||||
if test "x${SUBDIR}" = "x"; then
|
if test "x${SUBDIR}" = "x"; then
|
||||||
@ -58,12 +58,12 @@ for repos in . $(${SCRIPT_DIR}/discover_trees.sh ${REPO});
|
|||||||
do
|
do
|
||||||
if test "x$TYPE" = "xhg"; then
|
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} | \
|
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#'| \
|
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;
|
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} | \
|
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;
|
grep -E '^[o:| ]*[0-9]{7}'|sed -r 's#^[o:| ]*([0-9]{7})# - JDK-\1#' >> ${TMPDIR}/fixes3;
|
||||||
else
|
else
|
||||||
git -C ${REPO} log --no-merges --pretty=format:%B ${NEW_RELEASE}...${OLD_RELEASE} -- ${SUBDIR} |egrep '^[0-9]{7}' | \
|
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;
|
sed -r 's#^([0-9])# - JDK-\1#' >> ${TMPDIR}/fixes2;
|
||||||
touch ${TMPDIR}/fixes3 ; # unused
|
touch ${TMPDIR}/fixes3 ; # unused
|
||||||
fi
|
fi
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
diff -r 618ad1237e73 src/java.desktop/share/classes/java/awt/Toolkit.java
|
|
||||||
--- a/src/java.desktop/share/classes/java/awt/Toolkit.java Thu Jun 13 19:37:49 2019 +0200
|
|
||||||
+++ b/src/java.desktop/share/classes/java/awt/Toolkit.java Thu Jul 04 10:35:42 2019 +0200
|
|
||||||
@@ -595,7 +595,11 @@
|
|
||||||
toolkit = new HeadlessToolkit(toolkit);
|
|
||||||
}
|
|
||||||
if (!GraphicsEnvironment.isHeadless()) {
|
|
||||||
- loadAssistiveTechnologies();
|
|
||||||
+ try {
|
|
||||||
+ loadAssistiveTechnologies();
|
|
||||||
+ } catch (AWTError error) {
|
|
||||||
+ // ignore silently
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return toolkit;
|
|
@ -1,12 +0,0 @@
|
|||||||
diff --git openjdk.orig/src/java.base/share/conf/security/java.security openjdk/src/java.base/share/conf/security/java.security
|
|
||||||
index 68a9c1a2d08..7aa25eb2cb7 100644
|
|
||||||
--- openjdk.orig/src/java.base/share/conf/security/java.security
|
|
||||||
+++ openjdk/src/java.base/share/conf/security/java.security
|
|
||||||
@@ -78,6 +78,7 @@ security.provider.tbd=SunMSCAPI
|
|
||||||
security.provider.tbd=Apple
|
|
||||||
#endif
|
|
||||||
security.provider.tbd=SunPKCS11
|
|
||||||
+#security.provider.tbd=SunPKCS11 ${java.home}/lib/security/nss.cfg
|
|
||||||
|
|
||||||
#
|
|
||||||
# Security providers used when FIPS mode support is active
|
|
@ -1,20 +0,0 @@
|
|||||||
--- openjdk/src/java.base/share/conf/security/java.security
|
|
||||||
+++ openjdk/src/java.base/share/conf/security/java.security
|
|
||||||
@@ -304,6 +304,8 @@
|
|
||||||
#
|
|
||||||
package.access=sun.misc.,\
|
|
||||||
sun.reflect.,\
|
|
||||||
+ org.GNOME.Accessibility.,\
|
|
||||||
+ org.GNOME.Bonobo.,\
|
|
||||||
|
|
||||||
#
|
|
||||||
# List of comma-separated packages that start with or equal this string
|
|
||||||
@@ -316,6 +318,8 @@
|
|
||||||
#
|
|
||||||
package.definition=sun.misc.,\
|
|
||||||
sun.reflect.,\
|
|
||||||
+ org.GNOME.Accessibility.,\
|
|
||||||
+ org.GNOME.Bonobo.,\
|
|
||||||
|
|
||||||
#
|
|
||||||
# Determines whether this properties file can be appended to
|
|
@ -1,15 +0,0 @@
|
|||||||
diff --git a/openjdk/src/java.smartcardio/unix/classes/sun/security/smartcardio/PlatformPCSC.java b/src/java.smartcardio/unix/classes/sun/security/smartcardio/PlatformPCSC.java
|
|
||||||
index bacff32efbc..ff7b3dcc81c 100644
|
|
||||||
--- openjdk/src/java.smartcardio/unix/classes/sun/security/smartcardio/PlatformPCSC.java
|
|
||||||
+++ openjdk/src/java.smartcardio/unix/classes/sun/security/smartcardio/PlatformPCSC.java
|
|
||||||
@@ -46,8 +46,8 @@ class PlatformPCSC {
|
|
||||||
|
|
||||||
private static final String PROP_NAME = "sun.security.smartcardio.library";
|
|
||||||
|
|
||||||
- private static final String LIB1 = "/usr/$LIBISA/libpcsclite.so";
|
|
||||||
- private static final String LIB2 = "/usr/local/$LIBISA/libpcsclite.so";
|
|
||||||
+ private static final String LIB1 = "/usr/$LIBISA/libpcsclite.so.1";
|
|
||||||
+ private static final String LIB2 = "/usr/local/$LIBISA/libpcsclite.so.1";
|
|
||||||
private static final String PCSC_FRAMEWORK = "/System/Library/Frameworks/PCSC.framework/Versions/Current/PCSC";
|
|
||||||
|
|
||||||
PlatformPCSC() {
|
|
@ -1,117 +0,0 @@
|
|||||||
diff --git openjdk.orig/make/modules/java.base/Launcher.gmk openjdk/make/modules/java.base/Launcher.gmk
|
|
||||||
index 700ddefda49..2882de68eb2 100644
|
|
||||||
--- openjdk.orig/make/modules/java.base/Launcher.gmk
|
|
||||||
+++ openjdk/make/modules/java.base/Launcher.gmk
|
|
||||||
@@ -41,6 +41,14 @@ $(eval $(call SetupBuildLauncher, java, \
|
|
||||||
OPTIMIZATION := HIGH, \
|
|
||||||
))
|
|
||||||
|
|
||||||
+#Wno-error=cpp is present to allow commented warning in ifdef part of main.c
|
|
||||||
+$(eval $(call SetupBuildLauncher, alt-java, \
|
|
||||||
+ CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES -DREDHAT_ALT_JAVA -Wno-error=cpp, \
|
|
||||||
+ EXTRA_RCFLAGS := $(JAVA_RCFLAGS), \
|
|
||||||
+ VERSION_INFO_RESOURCE := $(JAVA_VERSION_INFO_RESOURCE), \
|
|
||||||
+ OPTIMIZATION := HIGH, \
|
|
||||||
+))
|
|
||||||
+
|
|
||||||
ifeq ($(call isTargetOs, windows), true)
|
|
||||||
$(eval $(call SetupBuildLauncher, javaw, \
|
|
||||||
CFLAGS := -DJAVAW -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES, \
|
|
||||||
diff --git openjdk.orig/src/java.base/share/native/launcher/alt_main.h openjdk/src/java.base/share/native/launcher/alt_main.h
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000000..697df2898ac
|
|
||||||
--- /dev/null
|
|
||||||
+++ openjdk/src/java.base/share/native/launcher/alt_main.h
|
|
||||||
@@ -0,0 +1,73 @@
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2019, Red Hat, Inc. All rights reserved.
|
|
||||||
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
+ *
|
|
||||||
+ * This code is free software; you can redistribute it and/or modify it
|
|
||||||
+ * under the terms of the GNU General Public License version 2 only, as
|
|
||||||
+ * published by the Free Software Foundation. Oracle designates this
|
|
||||||
+ * particular file as subject to the "Classpath" exception as provided
|
|
||||||
+ * by Oracle in the LICENSE file that accompanied this code.
|
|
||||||
+ *
|
|
||||||
+ * This code 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 General Public License
|
|
||||||
+ * version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
+ * accompanied this code).
|
|
||||||
+ *
|
|
||||||
+ * You should have received a copy of the GNU General Public License version
|
|
||||||
+ * 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
+ *
|
|
||||||
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
+ * or visit www.oracle.com if you need additional information or have any
|
|
||||||
+ * questions.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#ifdef REDHAT_ALT_JAVA
|
|
||||||
+
|
|
||||||
+#include <sys/prctl.h>
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/* Per task speculation control */
|
|
||||||
+#ifndef PR_GET_SPECULATION_CTRL
|
|
||||||
+# define PR_GET_SPECULATION_CTRL 52
|
|
||||||
+#endif
|
|
||||||
+#ifndef PR_SET_SPECULATION_CTRL
|
|
||||||
+# define PR_SET_SPECULATION_CTRL 53
|
|
||||||
+#endif
|
|
||||||
+/* Speculation control variants */
|
|
||||||
+#ifndef PR_SPEC_STORE_BYPASS
|
|
||||||
+# define PR_SPEC_STORE_BYPASS 0
|
|
||||||
+#endif
|
|
||||||
+/* Return and control values for PR_SET/GET_SPECULATION_CTRL */
|
|
||||||
+
|
|
||||||
+#ifndef PR_SPEC_NOT_AFFECTED
|
|
||||||
+# define PR_SPEC_NOT_AFFECTED 0
|
|
||||||
+#endif
|
|
||||||
+#ifndef PR_SPEC_PRCTL
|
|
||||||
+# define PR_SPEC_PRCTL (1UL << 0)
|
|
||||||
+#endif
|
|
||||||
+#ifndef PR_SPEC_ENABLE
|
|
||||||
+# define PR_SPEC_ENABLE (1UL << 1)
|
|
||||||
+#endif
|
|
||||||
+#ifndef PR_SPEC_DISABLE
|
|
||||||
+# define PR_SPEC_DISABLE (1UL << 2)
|
|
||||||
+#endif
|
|
||||||
+#ifndef PR_SPEC_FORCE_DISABLE
|
|
||||||
+# define PR_SPEC_FORCE_DISABLE (1UL << 3)
|
|
||||||
+#endif
|
|
||||||
+#ifndef PR_SPEC_DISABLE_NOEXEC
|
|
||||||
+# define PR_SPEC_DISABLE_NOEXEC (1UL << 4)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+static void set_speculation() __attribute__((constructor));
|
|
||||||
+static void set_speculation() {
|
|
||||||
+ if ( prctl(PR_SET_SPECULATION_CTRL,
|
|
||||||
+ PR_SPEC_STORE_BYPASS,
|
|
||||||
+ PR_SPEC_DISABLE_NOEXEC, 0, 0) == 0 ) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#endif // REDHAT_ALT_JAVA
|
|
||||||
diff --git openjdk.orig/src/java.base/share/native/launcher/main.c openjdk/src/java.base/share/native/launcher/main.c
|
|
||||||
index b734fe2ba78..79dc8307650 100644
|
|
||||||
--- openjdk.orig/src/java.base/share/native/launcher/main.c
|
|
||||||
+++ openjdk/src/java.base/share/native/launcher/main.c
|
|
||||||
@@ -34,6 +34,14 @@
|
|
||||||
#include "jli_util.h"
|
|
||||||
#include "jni.h"
|
|
||||||
|
|
||||||
+#ifdef REDHAT_ALT_JAVA
|
|
||||||
+#if defined(__linux__) && defined(__x86_64__)
|
|
||||||
+#include "alt_main.h"
|
|
||||||
+#else
|
|
||||||
+#warning alt-java requested but SSB mitigation not available on this platform.
|
|
||||||
+#endif
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* Entry point.
|
|
||||||
*/
|
|
@ -1,19 +0,0 @@
|
|||||||
Remove uses of FAR in jpeg code
|
|
||||||
|
|
||||||
Upstream libjpeg-trubo removed the (empty) FAR macro:
|
|
||||||
http://sourceforge.net/p/libjpeg-turbo/code/1312/
|
|
||||||
|
|
||||||
Adjust our code to not use the undefined FAR macro anymore.
|
|
||||||
|
|
||||||
diff --git a/jdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c b/jdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
|
|
||||||
--- openjdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
|
|
||||||
+++ openjdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
|
|
||||||
@@ -1385,7 +1385,7 @@
|
|
||||||
/* and fill it in */
|
|
||||||
dst_ptr = icc_data;
|
|
||||||
for (seq_no = first; seq_no < last; seq_no++) {
|
|
||||||
- JOCTET FAR *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN;
|
|
||||||
+ JOCTET *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN;
|
|
||||||
unsigned int length =
|
|
||||||
icc_markers[seq_no]->data_length - ICC_OVERHEAD_LEN;
|
|
||||||
|
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (openjdk-jdk20u-jdk-20.0.2+9.tar.xz) = ce5383228c42f612e79e65300c048e91ec3ae5941b6769c67c05aa4e98299f8044b2945e64cd38b2e60f3c7558e608a3baa20cf7af2b0108d48c865a71ee1979
|
SHA512 (openjdk-jdk-22+36-ea.tar.xz) = ecc6e6b6fd10eb6c16d9eba03fe4dbf5f5b5406b166e0e24d9d4b8e339d148da4a7b551e5669f7c9327821837988696990886e55f1045ea20b54bb1ac6ef0fc6
|
||||||
|
Loading…
Reference in New Issue
Block a user