-
-
Notifications
You must be signed in to change notification settings - Fork 77
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
implement jinja templating to handle linux installer updates
- Loading branch information
Showing
14 changed files
with
450 additions
and
113 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -30,3 +30,9 @@ Thumbs.db | |
|
||
node_modules/ | ||
wix/Workdir/ | ||
|
||
|
||
lib/ | ||
bin/ | ||
.venv/ | ||
adoptium_cache.sqlite |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# https://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# | ||
|
||
supported_distributions: | ||
Distros: [alpine] | ||
Versions: [8, 11, 17, 21, 22] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# https://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# | ||
|
||
import os | ||
|
||
import requests | ||
import requests_cache | ||
import yaml | ||
from jinja2 import Environment, FileSystemLoader | ||
|
||
requests_cache.install_cache("adoptium_cache", expire_after=3600) | ||
|
||
# Setup the Jinja2 environment | ||
env = Environment(loader=FileSystemLoader("linux/templates")) | ||
|
||
headers = { | ||
"User-Agent": "Adoptium Linux Specfile Updater", | ||
} | ||
|
||
|
||
def archHelper(arch): | ||
if arch == "x64": | ||
return "x86_64" | ||
else: | ||
return arch | ||
|
||
|
||
# Load the YAML configuration | ||
with open("linux/config/temurin.yml", "r") as file: | ||
config = yaml.safe_load(file) | ||
|
||
for image_type in ["jdk", "jre"]: | ||
# Iterate through supported_distributions | ||
for distro in config["supported_distributions"]["Distros"]: | ||
for version in config["supported_distributions"]["Versions"]: | ||
|
||
# Fetch latest release for version from Adoptium API | ||
url = f"https://api.adoptium.net/v3/assets/feature_releases/{version}/ga?page=0&image_type={image_type}&os=alpine-linux&page_size=1&vendor=eclipse" | ||
response = requests.get(url, headers=headers) | ||
response.raise_for_status() | ||
data = response.json() | ||
|
||
release = response.json()[0] | ||
|
||
# Extract the version number from the release name | ||
openjdk_version = release["release_name"] | ||
|
||
# If version doesn't equal 8, get the more accurate version number | ||
if version != 8: | ||
openjdk_version = release["version_data"]["openjdk_version"] | ||
# if openjdk_version contains -LTS remove it | ||
if "-LTS" in openjdk_version: | ||
openjdk_version = openjdk_version.replace("-LTS", "") | ||
|
||
# Convert version from 11.0.24+8 to 11.0.24_p8 | ||
openjdk_version = openjdk_version.replace("jdk", "") | ||
openjdk_version = openjdk_version.replace("+", "_p") | ||
openjdk_version = openjdk_version.replace("u", ".") | ||
openjdk_version = openjdk_version.replace("-b", ".") | ||
|
||
# Generate the data for each architecture | ||
arch_data = {} | ||
|
||
for binary in release["binaries"]: | ||
arch_data[archHelper(binary["architecture"])] = { | ||
"download_url": binary["package"]["link"], | ||
"checksum": binary["package"]["checksum"], | ||
"filename": binary["package"]["name"], | ||
} | ||
|
||
# Set path to the specfiles | ||
path = f"linux/{image_type}/{distro}/src/main/packaging/temurin/{version}" | ||
|
||
# Check that the path exists | ||
os.makedirs(path, exist_ok=True) | ||
|
||
# Load the template | ||
template = env.get_template(f"{distro}.spec.j2") | ||
|
||
# Render the template | ||
rendered = template.render( | ||
arch_data=arch_data, | ||
openjdk_version=openjdk_version, | ||
release_name=release["release_name"], | ||
version=version, | ||
image_type=image_type, | ||
) | ||
|
||
# Set filename based on switch distro e.g APKBUILD for alpine, spec for others | ||
filename = "APKBUILD" if distro == "alpine" else "temurin.spec" | ||
|
||
# Write the rendered template to the file | ||
with open(f"{path}/{filename}", "w") as file: | ||
file.write(rendered) | ||
print(f"Generated {path}/{filename}") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,11 @@ | ||
# Maintainer: Eclipse Adoptium Package Maintainers <[email protected]> | ||
pkgname=temurin-11 | ||
pkgver=11.0.24_p8 | ||
# replace _p1 with _1 | ||
_pkgver=${pkgver/_p/_} | ||
_pkgverplus=${pkgver/_p/+} | ||
_pkgvername=${_pkgverplus/+/%2B} | ||
pkgrel=1 | ||
pkgrel=0 | ||
pkgdesc="Eclipse Temurin 11" | ||
provider_priority=11 | ||
url="https://adoptium.net" | ||
arch="noarch" | ||
arch="x86_64" | ||
license="GPL-2.0-with-classpath-exception" | ||
makedepends=" | ||
alsa-lib-dev | ||
|
@@ -25,8 +21,9 @@ makedepends=" | |
" | ||
depends="" | ||
subpackages="$pkgname-src:_src:noarch | ||
$pkgname-jdk:_jdk:x86_64" | ||
source="https://github.com/adoptium/temurin11-binaries/releases/download/jdk-$_pkgvername/OpenJDK11U-jdk_x64_alpine-linux_hotspot_$_pkgver.tar.gz | ||
$pkgname-jdk:_jdk" | ||
source=" | ||
https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.24%2B8/OpenJDK11U-jdk_${CARCH/x86_64/x64}_alpine-linux_hotspot_11.0.24_8.tar.gz | ||
HelloWorld.java | ||
TestECDSA.java | ||
|
@@ -43,7 +40,7 @@ prepare() { | |
} | ||
|
||
check() { | ||
local _java_bin="./jdk-$_pkgverplus/bin" | ||
local _java_bin="./jdk-11.0.24+8/bin" | ||
|
||
# 1) compile and run a simple hello world | ||
$_java_bin/javac -d . "$srcdir"/HelloWorld.java | ||
|
@@ -60,7 +57,7 @@ check() { | |
|
||
package() { | ||
mkdir -p "$pkgdir/$_java_home" | ||
cp -r "$srcdir"/jdk-"$_pkgverplus"/* "$pkgdir/$_java_home" | ||
cp -r "$srcdir"/jdk-11.0.24+8/* "$pkgdir/$_java_home" | ||
} | ||
|
||
_src() { | ||
|
@@ -94,8 +91,14 @@ _jdk() { | |
"$_toroot/lib/security/cacerts" | ||
} | ||
|
||
case "$CARCH" in | ||
x86_64) | ||
_arch_sum="ae988c72eeb2d78bb729a3387601ce0ea84305734ebdbe95d276f39952a8e019" | ||
;; | ||
esac | ||
|
||
sha256sums=" | ||
ae988c72eeb2d78bb729a3387601ce0ea84305734ebdbe95d276f39952a8e019 OpenJDK11U-jdk_x64_alpine-linux_hotspot_$_pkgver.tar.gz | ||
$_arch_sum OpenJDK11U-jdk_${CARCH/x86_64/x64}_alpine-linux_hotspot_11.0.24_8.tar.gz | ||
e9185736dde99a4dc570a645a20407bdb41c1f48dfc34d9c3eb246cf0435a378 HelloWorld.java | ||
22d2ff9757549ebc64e09afd3423f84b5690dcf972cd6535211c07c66d38fab0 TestCryptoLevel.java | ||
9fb00c7b0220de8f3ee2aa398459a37d119f43fd63321530a00b3bb9217dd933 TestECDSA.java | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,11 @@ | ||
# Maintainer: Eclipse Adoptium Package Maintainers <[email protected]> | ||
pkgname=temurin-17 | ||
pkgver=17.0.12_p7 | ||
# replace _p1 with _1 | ||
_pkgver=${pkgver/_p/_} | ||
_pkgverplus=${pkgver/_p/+} | ||
_pkgvername=${_pkgverplus/+/%2B} | ||
pkgrel=1 | ||
pkgrel=0 | ||
pkgdesc="Eclipse Temurin 17" | ||
provider_priority=17 | ||
url="https://adoptium.net" | ||
arch="noarch" | ||
arch="x86_64" | ||
license="GPL-2.0-with-classpath-exception" | ||
makedepends=" | ||
alsa-lib-dev | ||
|
@@ -25,8 +21,9 @@ makedepends=" | |
" | ||
depends="" | ||
subpackages="$pkgname-src:_src:noarch | ||
$pkgname-jdk:_jdk:x86_64" | ||
source="https://github.com/adoptium/temurin17-binaries/releases/download/jdk-$_pkgvername/OpenJDK17U-jdk_x64_alpine-linux_hotspot_$_pkgver.tar.gz | ||
$pkgname-jdk:_jdk" | ||
source=" | ||
https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.12%2B7/OpenJDK17U-jdk_${CARCH/x86_64/x64}_alpine-linux_hotspot_17.0.12_7.tar.gz | ||
HelloWorld.java | ||
TestECDSA.java | ||
|
@@ -43,7 +40,7 @@ prepare() { | |
} | ||
|
||
check() { | ||
local _java_bin="./jdk-$_pkgverplus/bin" | ||
local _java_bin="./jdk-17.0.12+7/bin" | ||
|
||
# 1) compile and run a simple hello world | ||
$_java_bin/javac -d . "$srcdir"/HelloWorld.java | ||
|
@@ -60,7 +57,7 @@ check() { | |
|
||
package() { | ||
mkdir -p "$pkgdir/$_java_home" | ||
cp -r "$srcdir"/jdk-"$_pkgverplus"/* "$pkgdir/$_java_home" | ||
cp -r "$srcdir"/jdk-17.0.12+7/* "$pkgdir/$_java_home" | ||
} | ||
|
||
_src() { | ||
|
@@ -94,8 +91,14 @@ _jdk() { | |
"$_toroot/lib/security/cacerts" | ||
} | ||
|
||
case "$CARCH" in | ||
x86_64) | ||
_arch_sum="6d274a292a717a6f8d00a3ed0695497405c5c634c27fec1692dd13784f6ff6fa" | ||
;; | ||
esac | ||
|
||
sha256sums=" | ||
6d274a292a717a6f8d00a3ed0695497405c5c634c27fec1692dd13784f6ff6fa OpenJDK17U-jdk_x64_alpine-linux_hotspot_$_pkgver.tar.gz | ||
$_arch_sum OpenJDK17U-jdk_${CARCH/x86_64/x64}_alpine-linux_hotspot_17.0.12_7.tar.gz | ||
e9185736dde99a4dc570a645a20407bdb41c1f48dfc34d9c3eb246cf0435a378 HelloWorld.java | ||
22d2ff9757549ebc64e09afd3423f84b5690dcf972cd6535211c07c66d38fab0 TestCryptoLevel.java | ||
9fb00c7b0220de8f3ee2aa398459a37d119f43fd63321530a00b3bb9217dd933 TestECDSA.java | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,7 @@ | ||
# Maintainer: Eclipse Adoptium Package Maintainers <[email protected]> | ||
pkgname=temurin-21 | ||
pkgver=21.0.4_p7 | ||
# replace _p1 with _1 | ||
_pkgver=${pkgver/_p/_} | ||
_pkgverplus=${pkgver/_p/+} | ||
_pkgvername=${_pkgverplus/+/%2B} | ||
pkgrel=1 | ||
pkgrel=0 | ||
pkgdesc="Eclipse Temurin 21" | ||
provider_priority=21 | ||
url="https://adoptium.net" | ||
|
@@ -27,7 +23,7 @@ depends="" | |
subpackages="$pkgname-src:_src:noarch | ||
$pkgname-jdk:_jdk" | ||
source=" | ||
https://github.com/adoptium/temurin21-binaries/releases/download/jdk-$_pkgvername/OpenJDK21u-jdk_${CARCH/x86_64/x64}_alpine-linux_hotspot_$_pkgver.tar.gz | ||
https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.4%2B7/OpenJDK21U-jdk_${CARCH/x86_64/x64}_alpine-linux_hotspot_21.0.4_7.tar.gz | ||
HelloWorld.java | ||
TestECDSA.java | ||
|
@@ -44,7 +40,7 @@ prepare() { | |
} | ||
|
||
check() { | ||
local _java_bin="./jdk-$_pkgverplus/bin" | ||
local _java_bin="./jdk-21.0.4+7/bin" | ||
|
||
# 1) compile and run a simple hello world | ||
$_java_bin/javac -d . "$srcdir"/HelloWorld.java | ||
|
@@ -61,7 +57,7 @@ check() { | |
|
||
package() { | ||
mkdir -p "$pkgdir/$_java_home" | ||
cp -r "$srcdir"/jdk-"$_pkgverplus"/* "$pkgdir/$_java_home" | ||
cp -r "$srcdir"/jdk-21.0.4+7/* "$pkgdir/$_java_home" | ||
} | ||
|
||
_src() { | ||
|
@@ -96,16 +92,16 @@ _jdk() { | |
} | ||
|
||
case "$CARCH" in | ||
x86_64) | ||
_arch_sum="8fa232fc9de5a861c1a6b0cbdc861d0b0a2bdbdd27da53d991802a460a7f0973" | ||
;; | ||
aarch64) | ||
_arch_sum="849c6d5a62a1f3dc2a3d2d7be07ffda089d35b862f6160b2a288c0408c2d8be8" | ||
;; | ||
x86_64) | ||
_arch_sum="8fa232fc9de5a861c1a6b0cbdc861d0b0a2bdbdd27da53d991802a460a7f0973" | ||
;; | ||
esac | ||
|
||
sha256sums=" | ||
$_arch_sum OpenJDK21u-jdk_${CARCH/x86_64/x64}_alpine-linux_hotspot_$_pkgver.tar.gz | ||
$_arch_sum OpenJDK21U-jdk_${CARCH/x86_64/x64}_alpine-linux_hotspot_21.0.4_7.tar.gz | ||
e9185736dde99a4dc570a645a20407bdb41c1f48dfc34d9c3eb246cf0435a378 HelloWorld.java | ||
22d2ff9757549ebc64e09afd3423f84b5690dcf972cd6535211c07c66d38fab0 TestCryptoLevel.java | ||
9fb00c7b0220de8f3ee2aa398459a37d119f43fd63321530a00b3bb9217dd933 TestECDSA.java | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,7 @@ | ||
# Maintainer: Eclipse Adoptium Package Maintainers <[email protected]> | ||
pkgname=temurin-22 | ||
pkgver=22.0.2_p9 | ||
# replace _p1 with _1 | ||
_pkgver=${pkgver/_p/_} | ||
_pkgverplus=${pkgver/_p/+} | ||
_pkgvername=${_pkgverplus/+/%2B} | ||
pkgrel=1 | ||
pkgrel=0 | ||
pkgdesc="Eclipse Temurin 22" | ||
provider_priority=22 | ||
url="https://adoptium.net" | ||
|
@@ -27,7 +23,7 @@ depends="" | |
subpackages="$pkgname-src:_src:noarch | ||
$pkgname-jdk:_jdk" | ||
source=" | ||
https://github.com/adoptium/temurin22-binaries/releases/download/jdk-$_pkgvername/OpenJDK22u-jdk_${CARCH/x86_64/x64}_alpine-linux_hotspot_$_pkgver.tar.gz | ||
https://github.com/adoptium/temurin22-binaries/releases/download/jdk-22.0.2%2B9/OpenJDK22U-jdk_${CARCH/x86_64/x64}_alpine-linux_hotspot_22.0.2_9.tar.gz | ||
HelloWorld.java | ||
TestECDSA.java | ||
|
@@ -44,7 +40,7 @@ prepare() { | |
} | ||
|
||
check() { | ||
local _java_bin="./jdk-$_pkgverplus/bin" | ||
local _java_bin="./jdk-22.0.2+9/bin" | ||
|
||
# 1) compile and run a simple hello world | ||
$_java_bin/javac -d . "$srcdir"/HelloWorld.java | ||
|
@@ -61,7 +57,7 @@ check() { | |
|
||
package() { | ||
mkdir -p "$pkgdir/$_java_home" | ||
cp -r "$srcdir"/jdk-"$_pkgverplus"/* "$pkgdir/$_java_home" | ||
cp -r "$srcdir"/jdk-22.0.2+9/* "$pkgdir/$_java_home" | ||
} | ||
|
||
_src() { | ||
|
@@ -96,16 +92,16 @@ _jdk() { | |
} | ||
|
||
case "$CARCH" in | ||
x86_64) | ||
_arch_sum="49f73414824b1a7c268a611225fa4d7ce5e25600201e0f1cd59f94d1040b5264" | ||
;; | ||
aarch64) | ||
_arch_sum="8ac93a2d5a55aabbc0f7156c2f9032026e87c185689d628ef8a4184b6e9ab006" | ||
;; | ||
x86_64) | ||
_arch_sum="49f73414824b1a7c268a611225fa4d7ce5e25600201e0f1cd59f94d1040b5264" | ||
;; | ||
esac | ||
|
||
sha256sums=" | ||
$_arch_sum OpenJDK22u-jdk_${CARCH/x86_64/x64}_alpine-linux_hotspot_$_pkgver.tar.gz | ||
$_arch_sum OpenJDK22U-jdk_${CARCH/x86_64/x64}_alpine-linux_hotspot_22.0.2_9.tar.gz | ||
e9185736dde99a4dc570a645a20407bdb41c1f48dfc34d9c3eb246cf0435a378 HelloWorld.java | ||
22d2ff9757549ebc64e09afd3423f84b5690dcf972cd6535211c07c66d38fab0 TestCryptoLevel.java | ||
9fb00c7b0220de8f3ee2aa398459a37d119f43fd63321530a00b3bb9217dd933 TestECDSA.java | ||
|
Oops, something went wrong.