Compare commits

..

1 Commits

Author SHA1 Message Date
Owen Zimmerman c97578ff6f fix (starship): disable outdated patch 2026-04-29 09:23:36 -05:00
191 changed files with 468 additions and 13710 deletions
-1
View File
@@ -29,7 +29,6 @@ body:
description: Which version of Terra are you using?
options:
- frawhide
- f44
- f43
- f42
- el10
+2 -2
View File
@@ -1,6 +1,6 @@
Name: bazzite-portal
Version: 0.2.2
Release: 1%{?dist}
Version: 0.2.1
Release: 2%{?dist}
Summary: Bazzite Portal is a tabbed frontend for curated script execution, with a focus on distro specific QOL shortcuts
URL: https://github.com/ublue-os/yafti-gtk
Source0: https://github.com/ublue-os/yafti-gtk/archive/refs/tags/v%{version}.tar.gz
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-canary-openasar
Version: 1.0.1027
Version: 1.0.991
Release: 1%{?dist}
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
+1 -1
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-canary
Version: 1.0.1027
Version: 1.0.991
Release: 1%{?dist}
Summary: Free Voice and Text Chat for Gamers
URL: discord.com
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-openasar
Version: 1.0.137
Version: 0.0.135
Release: 1%{?dist}
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-ptb-openasar
Version: 1.0.189
Version: 1.0.188
Release: 1%{?dist}
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
+3 -3
View File
@@ -6,8 +6,8 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-ptb
Version: 1.0.189
Release: 2%{?dist}
Version: 1.0.188
Release: 1%{?dist}
Summary: Free Voice and Text Chat for Gamers.
URL: https://discord.com
Source0: https://dl-ptb.discordapp.net/apps/linux/%{version}/discord-ptb-%{version}.tar.gz
@@ -37,7 +37,7 @@ mkdir -p %{buildroot}%{_datadir}/applications/
mkdir -p %{buildroot}%{_datadir}/pixmaps
ln -s %_datadir/discord-ptb/discord-ptb.desktop %{buildroot}%{_datadir}/applications/
ln -s %_datadir/discord-ptb/discord.png %{buildroot}%{_datadir}/pixmaps/discord-ptb.png
ln -s %_datadir/discord-ptb/discord-ptb %buildroot%_bindir/discord-ptb
ln -s %_datadir/discord-ptb/Discord %buildroot%_bindir/discord-ptb
%files
%_bindir/discord-ptb
+23 -17
View File
@@ -1,16 +1,24 @@
%define debug_package %{nil}
%global _build_id_links none
# Exclude private libraries
%global __requires_exclude libffmpeg.so
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord
Version: 1.0.137
Version: 0.0.135
Release: 1%{?dist}
Summary: Free Voice and Text Chat for Gamers
URL: https://discord.com
Source0: https://dl.discordapp.net/apps/linux/%{version}/discord-%{version}.tar.gz
Source1: https://discord.com/terms#/terms.html
License: Proprietary
License: https://discord.com/terms
Requires: glibc GConf2
Requires: nspr >= 4.13
Requires: nss >= 3.27
Requires: libX11 >= 1.6
Requires: libXtst >= 1.2
Group: Applications/Internet
ExclusiveArch: x86_64
%electronmeta -D
%description
All-in-one voice and text chat for gamers that's free, secure, and works on
both your desktop and phone.
@@ -21,24 +29,22 @@ both your desktop and phone.
%build
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p %{buildroot}%{_bindir}
install -Dpm755 ./* -t %{buildroot}%{_datadir}/discord
mkdir -p %{buildroot}%{_appsdir}
mkdir -p %{buildroot}%{_datadir}/discord
cp -rv * %{buildroot}%{_datadir}/discord
mkdir -p %{buildroot}%{_datadir}/applications/
mkdir -p %{buildroot}%{_datadir}/pixmaps
mv %{buildroot}%{_datadir}/discord/discord.desktop -t %{buildroot}%{_appsdir}
mv %{buildroot}%{_datadir}/discord/discord.png -t %{buildroot}%{_datadir}/pixmaps
mv %{buildroot}%{_datadir}/discord/discord -t %{buildroot}%{_bindir}
cp %{SOURCE1} -t .
ln -s %_datadir/discord/discord.desktop %{buildroot}%{_datadir}/applications/discord.desktop
ln -s %_datadir/discord/discord.png %{buildroot}%{_datadir}/pixmaps/discord.png
ln -s %_datadir/discord/Discord %buildroot%_bindir/discord
%files
%license terms.html
%{_bindir}/discord
%_bindir/discord
%{_datadir}/discord/
%{_appsdir}/discord.desktop
%{_datadir}/applications/discord.desktop
%{_datadir}/pixmaps/discord.png
%changelog
* Mon May 4 2026 Gilver E. <roachy@fyralabs.com> - 1.0.136-2
- Updated /usr/bin symlink
* Thu Jan 19 2023 madonuko <mado@fyralabs.com> - 0.0.143-1
- Initial package
+2 -2
View File
@@ -1,9 +1,9 @@
#? https://github.com/flameshot-org/flameshot/blob/master/packaging/rpm/fedora/flameshot.spec
%global ver 13.3.0
%global commit 1534a895e757b51d34ab5b1184344f04d67b8ebc
%global commit a6694bf45ace6a8552351d5f9ca6f006786ce6f9
%global shortcommit %{sub %{commit} 1 7}
%global commit_date 20260504
%global commit_date 20260426
%global devel_name QtColorWidgets
%global _distro_extra_cflags -fuse-ld=mold
%global _distro_extra_cxxflags -fuse-ld=mold
@@ -11,7 +11,7 @@
%endif
Name: helium-browser-bin
Version: 0.11.7.1
Version: 0.11.6.1
Release: 1%{?dist}
Summary: Private, fast, and honest web browser based on Chromium
+1 -1
View File
@@ -5,7 +5,7 @@
%global pure_protobuf_version 2.0.0
Name: komikku
Version: 50.3.0
Version: 50.2.0
%forgemeta
Release: 1%{?dist}
Summary: A manga reader for GNOME
+2 -2
View File
@@ -1,9 +1,9 @@
# Disable X11 for RHEL 10+
%bcond x11 %[%{undefined rhel} || 0%{?rhel} < 10]
%global commit 333857403f01d760d6cf6b80654cf7a734f0ece5
%global commit 3e3936eee4bd0c9cc6542c3cca313ac4d54846e0
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20260504
%global commit_date 20260429
%global ver 0.41.0
Name: mpv-nightly
+3 -3
View File
@@ -1,10 +1,10 @@
%global commit 8ce6f3eadf8e41d364d76d0853ae7f0cbb4fc23d
%global commit_date 20260501
%global commit 0fee3911afdaabbdcf4e8214e3472198a1c0c9db
%global commit_date 20260304
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: rpinters
Version: 0~%commit_date.git~%shortcommit
Release: 1%{?dist}
Release: 1%?dist
Summary: Raspberry Pi printing utility module
License: GPL-2+ AND BSD-3-Clause
URL: https://github.com/raspberrypi-ui/rpinters
+1 -1
View File
@@ -1,4 +1,4 @@
%global ver 2026-05-05
%global ver 2026-04-29
%global goodver %(echo %ver | sed 's/-//g')
%global __brp_mangle_shebangs %{nil}
%bcond_without mold
+1 -1
View File
@@ -1,5 +1,5 @@
Name: rustnet
Version: 1.3.0
Version: 1.2.0
Release: 1%{?dist}
Summary: A cross-platform network monitoring terminal UI tool built with Rust
License: Apache-2.0 AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 AND ISC) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-3-Clause OR Apache-2.0) AND BSL-1.0 AND ISC AND (LGPL-2.1-only OR BSD-2-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) AND Zlib
+1 -1
View File
@@ -46,7 +46,7 @@ BuildRequires: python3-sdkmanager
Requires: %{name}-server
# Gradle here really wants Java 21-23 to work properly
# Java 25 breaks the build
BuildRequires: java-latest-openjdk-devel
BuildRequires: java-21-openjdk-devel
BuildConflicts: dkms-nvidia akmod-nvidia
Requires: android-tools
+2 -2
View File
@@ -13,8 +13,8 @@
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
Name: voicevox
Version: 0.25.2
Release: 1%{?dist}
Version: 0.25.1
Release: 1%?dist
Summary: Free Japanese text-to-speech editor
License: LGPL-3.0
URL: https://voicevox.hiroshiba.jp
+1 -1
View File
@@ -1,5 +1,5 @@
project pkg {
rpm {
spec = "anda.spec"
spec = "rust-anda.spec"
}
}
-77
View File
@@ -1,77 +0,0 @@
# Work around a bug in rustc 1.95.0 with GCC
%global toolchain clang
%global crate anda
Name: anda
Version: 0.5.4
Release: 2%{?dist}
Summary: Andaman Build toolchain
SourceLicense: MIT
License: ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 AND ISC) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND BSL-1.0 AND CDLA-Permissive-2.0 AND ISC AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND MPL-2.0-or-later AND MPL-2.0-only AND Unicode-3.0 AND (Unlicense OR MIT)
URL: https://crates.io/crates/anda
Source0: https://github.com/FyraLabs/anda/archive/refs/tags/%{version}.tar.gz
%if %["%{toolchain}" == "clang"]
BuildRequires: clang
%else
BuildRequires: gcc
%endif
BuildRequires: rust-packaging >= 21
BuildRequires: anda-srpm-macros
BuildRequires: openssl-devel
%if %{defined fedora}
BuildRequires: openssl-devel-engine
%endif
BuildRequires: git-core
BuildRequires: libgit2-devel
BuildRequires: libssh2-devel
BuildRequires: mold
Requires: mock
Requires: rpm-build
Requires: createrepo_c
Requires: git-core
Requires: libgit2
%if 0%{?fedora} >= 42
Requires: mock-filesystem
Requires: util-linux-script
%endif
Packager: Terra Packaging Team <terra@fyralabs.com>
%description
Andaman Build toolchain.
%pkg_completion -bfz
%prep
%autosetup -n %{crate}-%{version}
%cargo_prep_online
%{__cargo} fetch --locked
%build
%{cargo_build} --frozen
%{cargo_license_online} > LICENSE.dependencies
%{__cargo} run --release -p xtask -- manpage
%{__cargo} run --release -p xtask -- completion
%install
%crate_install_bin
# Install shell completions
COMPDIR="target/assets/completion"
install -Dm644 $COMPDIR/bash/anda.bash -t %{buildroot}%{bash_completions_dir}
install -Dm644 $COMPDIR/zsh/_anda -t %{buildroot}%{zsh_completions_dir}
install -Dm644 $COMPDIR/fish/anda.fish -t %{buildroot}%{fish_completions_dir}
# Install man pages
install -Dm644 target/assets/man_pages/* -t %{buildroot}%{_mandir}/man1
%files
%doc README.md
%license LICENSE.dependencies LICENSE.md
%{_bindir}/anda
%{_mandir}/man1/anda*.1.*
%changelog
* Sun May 3 2026 Gilver E. <roachy@fyralabs.com> - 0.5.4-2
- Fix build on Fedora 43
- Add shell completions subpackages
+89
View File
@@ -0,0 +1,89 @@
# Generated by rust2rpm 22
%bcond_without check
%define debug_package %{nil}
%global crate anda
Name: rust-anda
Version: 0.5.3
Release: 1%{?dist}
Summary: Andaman Build toolchain
License: MIT
URL: https://crates.io/crates/anda
Source: https://github.com/FyraLabs/anda/archive/refs/tags/%{version}.tar.gz
ExclusiveArch: %{rust_arches}
BuildRequires: rust-packaging >= 21
BuildRequires: anda-srpm-macros
BuildRequires: openssl-devel
%if %{defined fedora}
BuildRequires: openssl-devel-engine
%endif
BuildRequires: git-core
BuildRequires: libgit2-devel
BuildRequires: libssh2-devel
BuildRequires: mold
%global _description %{expand:
Andaman Build toolchain.}
%description %{_description}
%package -n %{crate}
Summary: %{summary}
Requires: mock
Requires: rpm-build
Requires: createrepo_c
Requires: git-core
Requires: libgit2
%if 0%{?fedora} >= 42
Requires: mock-filesystem
Requires: util-linux-script
%endif
%description -n %{crate} %{_description}
%files -n %{crate}
%license LICENSE.dependencies LICENSE.md
%{_bindir}/anda
%{_mandir}/man1/anda*.1*
%config %{_sysconfdir}/bash_completion.d/anda.bash
%{_datadir}/zsh/site-functions/_anda
%{_datadir}/fish/completions/anda.fish
%prep
%autosetup -n %{crate}-%{version_no_tilde} -p1
%cargo_prep_online
%build
%cargo_build
%{cargo_license_online} > LICENSE.dependencies
cargo run --release -p xtask -- manpage
cargo run --release -p xtask -- completion
%install
install -Dpm755 target/rpm/anda -t %buildroot%_bindir/
mkdir -p %{buildroot}%{_mandir}/man1/
# Install shell completions
COMPDIR="target/assets/completion"
mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d/
cp -v $COMPDIR/bash/anda.bash %{buildroot}%{_sysconfdir}/bash_completion.d/anda.bash
mkdir -p %{buildroot}%{_datadir}/zsh/site-functions/
cp -v $COMPDIR/zsh/_anda %{buildroot}%{_datadir}/zsh/site-functions/_anda
mkdir -p %{buildroot}%{_datadir}/fish/completions/
cp -v $COMPDIR/fish/anda.fish %{buildroot}%{_datadir}/fish/completions/anda.fish
# install man pages
cp -v target/assets/man_pages/* %{buildroot}%{_mandir}/man1/
rm -rf %{buildroot}%{cargo_registry}
%changelog
%autochangelog
+1 -1
View File
@@ -5,7 +5,7 @@
%global crate mise
Name: rust-mise
Version: 2026.5.1
Version: 2026.4.26
Release: 1%{?dist}
Summary: Front-end to your dev env
+23 -30
View File
@@ -1,50 +1,43 @@
%global pypi_name ops2deb
%global _desc Generate Debian packages for common devops tools such as kubectl, kustomize, helm.
%global debug_package %nil
%define _python_dist_allow_version_zero # upstream issue?
Name: python-%{pypi_name}
Name: python3-ops2deb
Version: 2.7.0
Release: 1%?dist
Summary: Generate Debian packages for common devops tools such as kubectl, kustomize, helm
Summary: Generate Debian packages for common devops tools
License: MIT
URL: https://github.com/upciti/ops2deb
Source0: %{pypi_source}
Patch0: versions.patch
BuildArch: noarch
BuildRequires: python3-devel
BuildRequires: python3-pip
BuildRequires: python3-poetry
Packager: Owen Zimmerman <owen@fyralabs.com>
Source0: %url/archive/refs/tags/%version.tar.gz
BuildRequires: python3-devel poetry python3.10
BuildRequires: python3dist(setuptools)
BuildArch: noarch
%description
%_desc
ops2deb is designed to generate Debian packages for common devops tools, but
can be used to package any portable application. It consumes a configuration
file and outputs .deb packages. ops2deb can also track new releases of upstream
applications and automatically bump application versions in its configuration
file.
%package -n python3-%{pypi_name}
Summary: %{summary}
%{?python_provide:%python_provide python3-%{pypi_name}}
%description -n python3-%{pypi_name}
%_desc
%prep
%autosetup -n %{pypi_name}-%{version} -p1
%autosetup -n ops2deb-%version
%build
%pyproject_wheel
poetry build
%install
%pyproject_install
%pyproject_save_files %{pypi_name}
python3.10 -m ensurepip
python3.10 -m pip install installer
python3.10 -m installer --destdir=%buildroot dist/*.whl
rm -rf %buildroot/%python3_sitelib/*/__pycache__
%files -n python3-%{pypi_name} -f %{pyproject_files}
%doc README.md
%files
%license LICENSE
%{_bindir}/ops2deb
%doc README.md
/usr/bin/ops2deb
/usr/lib/python3*/site-packages/ops2deb*
%changelog
* Thu Apr 23 2026 Owen Zimmerman <owen@fyralabs.com>
- Switch to modern python packaging methods
* Fri Apr 28 2023 madonuko <mado@fyralabs.com> - 2.4.1-1
- Initial package.
-18
View File
@@ -1,18 +0,0 @@
diff --git a/pyproject.toml b/pyproject.toml
index 29b753f..926abf8 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -18,10 +18,10 @@ packages = [
]
[tool.poetry.dependencies]
-python = ">=3.10,<3.12"
+python = ">=3.10"
httpx = ">=0.20.0"
-semver = "3.0.2"
-"ruamel.yaml" = "0.18.14"
+semver = ">3.0.2"
+"ruamel.yaml" = ">0.18.14"
python-debian = ">=0.1.42"
PyYAML = "^6"
typer = ">=0.6.1"
+1 -1
View File
@@ -1,5 +1,5 @@
Name: driftwm
Version: 0.5.0
Version: 0.4.0
Release: 1%{?dist}
Summary: A trackpad-first infinite canvas Wayland compositor
License: GPL-3.0-or-later
@@ -3,7 +3,7 @@
Name: gnome-shell-extension-%{extension}
Version: 12
Release: 4%{?dist}
Release: 3%?dist
Summary: GNOME Shell extension to bring back the app menu
License: GPL-3.0-only
URL: https://github.com/fthx/appmenu-is-back
@@ -12,7 +12,7 @@ BuildArch: noarch
Source0: https://github.com/fthx/appmenu-is-back/archive/refs/tags/v%{version}.tar.gz
Requires: gnome-shell >= 48~
Requires: (gnome-shell >= 48~ with gnome-shell < 50~)
Recommends: gnome-extensions-app
%description
@@ -7,7 +7,7 @@
Name: gnome-shell-extension-%{extension}
Version: 0~%{commit_date}git.%{shortcommit}
Release: 3%{?dist}
Release: 2%?dist
Summary: Battery remaining time extension for GNOME Shell
License: GPL-2.0-only
URL: https://github.com/pomoke/battery_time
@@ -18,7 +18,7 @@ Source0: %url/archive/%commit/battery_time-%commit.tar.gz
# License declared in README
Source1: https://scancode-licensedb.aboutcode.org/gpl-2.0.LICENSE
Requires: gnome-shell >= 48~
Requires: (gnome-shell >= 48~ with gnome-shell < 50~)
Recommends: gnome-extensions-app
Packager: Owen Zimmerman <owen@fyralabs.com>
@@ -7,22 +7,18 @@
Name: gnome-shell-extension-%{extension}
Version: %ver^%commit_date.%shortcommit
Release: 3%{?dist}
Release: 2%?dist
Summary: GPU Profile switcher Gnome-Shell-Extension for ASUS laptops using Supergfxctl
License: GPL-3.0-only
URL: https://github.com/chikobara/GPU-Switcher-Supergfxctl
Source0: %url/archive/%commit.tar.gz
Requires: gnome-shell >= 48~
Requires: asusctl
Requires: supergfxctl
Requires: (gnome-shell >= 48~ with gnome-shell < 50~) asusctl supergfxctl
Recommends: gnome-extensions-app
BuildArch: noarch
Packager: june-fish <june@fyralabs.com>
%description
GPU Profile switcher Gnome-Shell-Extension for ASUS laptops using Supergfxctl
@@ -3,7 +3,7 @@
Name: gnome-shell-extension-%{extension}
Version: 10
Release: 2%{?dist}
Release: 1%{?dist}
Summary: GNOME extension that removes the 'Window is ready' notification and brings the window into focus instead
License: AGPL-3.0-only
URL: https://github.com/zalckos/GrandTheftFocus
@@ -12,7 +12,7 @@ BuildArch: noarch
Source0: https://github.com/zalckos/GrandTheftFocus/archive/refs/tags/v%version.tar.gz
Requires: gnome-shell >= 48~
Requires: (gnome-shell >= 48~ with gnome-shell < 50~)
Recommends: gnome-extensions-app
Packager: Owen Zimmerman <owen@fyralabs.com>
@@ -1,5 +1,5 @@
%global commit 1d36e934d5c5a00b99164309e09f0cc4a930b7a2
%global commit_date 20260502
%global commit 50da30c124e941f4ab5e76f34dc90f294a3aae98
%global commit_date 20260424
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global extension multi-monitors-bar
@@ -17,7 +17,7 @@ BuildArch: noarch
Source0: %url/archive/%commit/multi-monitors-bar_fapv2-%commit.tar.gz
# README declared the license, but they do not provide a license file
Requires: gnome-shell >= 48~
Requires: (gnome-shell >= 48~ with gnome-shell < 50~)
Recommends: gnome-extensions-app
Packager: Owen Zimmerman <owen@fyralabs.com>
@@ -2,7 +2,7 @@
Name: gnome-shell-extension-vicinae
Version: 1.6.1
Release: 2%{?dist}
Release: 1%{?dist}
License: MIT
URL: https://github.com/dagimg-dot/vicinae-gnome-extension
Source: %{url}/archive/refs/tags/v%{version}.tar.gz
@@ -12,7 +12,7 @@ Packager: metcya <metcya@gmail.com>
BuildArch: noarch
BuildRequires: bun-bin glib2-devel
Requires: gnome-shell >= 48~
Requires: (gnome-shell >= 48~ with gnome-shell < 50~)
Requires: vicinae
Recommends: gnome-extensions-app
Provides: gnome-shell-extension-vicinae-gnome-extension
@@ -1,10 +1,10 @@
#? https://src.fedoraproject.org/rpms/hyprutils/blob/rawhide/f/hyprutils.spec
%global realname hyprutils
%global ver 0.13.0
%global ver 0.12.0
%global commit ec5c0c709706bad5b82f667fd8758eae442577ce
%global commit_date 20260430
%global commit ee9ef3d43ed194cae1b55edb716a696a45c37b48
%global commit_date 20260427
%global shortcommit %{sub %commit 1 7}
Name: %realname.nightly
@@ -1,5 +1,5 @@
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-system-settings
%global commit cdf9dc925feb09c4e4e540849d3e9f6efa67599d
%global commit 6005adf3220279a76b450abb39497e275ec7f325
%forgemeta
Name: lomiri-system-settings
+1 -4
View File
@@ -1,5 +1,5 @@
Name: iio-niri
Version: 2.0.0
Version: 1.3.0
Release: 1%{?dist}
Summary: Autorotation daemon for niri
URL: https://github.com/Zhaith-Izaliel/iio-niri
@@ -30,8 +30,5 @@ Packager: Tulip Blossom <tulilirockz@outlook.com>
%{_bindir}/%{name}
%changelog
* Fri May 05 2026 Tulip Blossom <tulilirockz@outlook.com> - 2.0.0-1
- Update package and add autoupdate definitions
* Fri Mar 13 2026 Tulip Blossom <tulilirockz@outlook.com>
- Initial commit
-1
View File
@@ -1 +0,0 @@
rpm.version(find(`version = "([\d.]+)"`, gh_rawfile("Zhaith-Izaliel/iio-niri", "master", "Cargo.toml"), 1));
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("Satty-org/Satty"));
+1 -1
View File
@@ -4,7 +4,7 @@
# prevent library files from being installed
%global cargo_install_lib 0
%global upstream_version v2.16.2
%global upstream_version v2.16.1
%global ver %{sub %upstream_version 2}
Name: walker
@@ -16,7 +16,7 @@
%global __requires_exclude ^libaaudio\\.so.*|^libandroid\\.so.*|^libmediandk\\.so.*|^liblog\\.so.*|^libc\\.so.*|^libm\\.so.*|^libdl\\.so.*|^libcrypt\\.so.*|^libstdc\\+\\+\\.so.*|^libncursesw\\.so.*|^libtinfo\\.so.*|^libnsl\\.so.*|^libpanelw\\.so.*$
Name: android-studio-canary
Version: 2026.1.1.3
Version: 2026.1.1.2
Release: 1%{?dist}
Summary: Official IDE for Android development (Canary build)
License: Apache-2.0
@@ -24,7 +24,7 @@ Packager: veuxit <erroor234@gmail.com>
ExclusiveArch: x86_64
URL: https://developer.android.com/studio/preview
%define suffixS quail1-canary3
%define suffixS quail1-canary2
Source0: https://dl.google.com/dl/android/studio/ide-zips/%{version}/android-studio-%{suffixS}-linux.tar.gz
@@ -16,7 +16,7 @@
%global __requires_exclude ^libaaudio\\.so.*|^libandroid\\.so.*|^libmediandk\\.so.*|^liblog\\.so.*|^libc\\.so.*|^libm\\.so.*|^libdl\\.so.*|^libcrypt\\.so.*|^libstdc\\+\\+\\.so.*|^libncursesw\\.so.*|^libtinfo\\.so.*|^libnsl\\.so.*|^libpanelw\\.so.*$
Name: android-studio
Version: 2025.3.4.7
Version: 2025.3.4.6
Release: 1%{?dist}
Summary: Official IDE for Android development
License: Apache-2.0
@@ -24,7 +24,7 @@ Packager: veuxit <erroor234@gmail.com>, like-engels <higashikataengels@icl
ExclusiveArch: x86_64
URL: https://developer.android.com/studio
%define suffixS panda4-patch1
%define suffixS panda4
Source0: https://dl.google.com/dl/android/studio/ide-zips/%{version}/android-studio-%{suffixS}-linux.tar.gz
-1
View File
@@ -1,5 +1,4 @@
project pkg {
arches = ["x86_64"]
rpm {
spec = "nodejs-backport.spec"
}
+3 -8
View File
@@ -3,11 +3,11 @@
%bcond test 0
Name: nodejs-%{npm_name}
Version: 12.0.0
Release: 2%{?dist}
Version: 11.0.2
Release: 1%{?dist}
Summary: Backport GitHub commits
SourceLicense: Apache-2.0
License: MIT AND ISC AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause
License: 0BSD AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND ISC AND MIT AND (MIT OR CC0-1.0) AND (WTFPL OR ISC)
URL: https://github.com/sorenlouv/%{npm_name}
Source0: http://registry.npmjs.org/%{npm_name}/-/%{npm_name}-%{version}.tgz
BuildRequires: anda-srpm-macros >= 0.3.0
@@ -17,7 +17,6 @@ BuildRequires: nodejs-license-checker
%if %{with test}
BuildRequires: yarnpkg
%endif
Requires: git-core
Obsoletes: node-backport <= 10.2.0
BuildArch: noarch
Packager: Gilver E. <roachy@fyralabs.com>
@@ -27,9 +26,7 @@ A simple CLI tool that automates the process of backporting commits on a GitHub
%prep
%npm_prep
%if %{with test}
%fetch_node_tests /src/test/ /tests/
%endif
%build
# Empty build section, because RPM reasons
@@ -53,8 +50,6 @@ A simple CLI tool that automates the process of backporting commits on a GitHub
%{_bindir}/%{npm_name}
%changelog
* Sun May 3 2026 Gilver E. <roachy@fyralabs.com> - 12.0.0-2
- Added explicit dependency on git-core
* Wed Jan 21 2026 Gilver E. <roachy@fyralabs.com> - 10.2.0-3
- Fixed package name and licenses
* Wed Jul 2 2025 Gilver E. <rockgrub@disroot.org> - 9.6.6-1
+28
View File
@@ -0,0 +1,28 @@
#!/usr/bin/bash
## Some sources need to be fetched BEFORE the build process
# Also I'm just better at scripting in Bash and calling the Rhai sh function hundreds of times times sounded like hell
# Have I mentioned I hate runtime languages?
node=backport
# Enable logs for debugging
set -x
# I guess just $PWD doesn't work for this
builddir=$(pwd)/anda/devs/$node
# We only need the tests folder so sourcing the whole repo is overkill, Git can make a tarball of specific directories
pushd $builddir
ver=$(cat ./*.spec | grep -P -m1 'Version:' | sed -e 's/Version://g' -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
url=$(sed -n 's/^URL:\s\(.*\)$/\1/p' ./*.spec | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e "s/%{module}/$node/")
dir=$node
git clone --recurse-submodules -j$(nproc) $url.git
pushd $dir
# I'm not sure why .tar.bz2 is the tar format of choice for this but it's also what Fedora does so it's what I'm doing
git archive --format=tar --prefix=tests/ v${ver}:src/test/ | bzip2 > ../tests-${ver}.tar.bz2
popd
rm -rf $dir
exit 0
+1 -1
View File
@@ -1,5 +1,5 @@
Name: flutter
Version: 3.41.9
Version: 3.41.8
Release: 1%{?dist}
Summary: SDK for crafting beautiful, fast user experiences from a single codebase
License: BSD-3-Clause
@@ -1,6 +1,6 @@
%global commit 563b085a4d623995663b320818b6088ba0f2588f
%global commit 6590196661f769dd8f2b3e85d6c98262c4ec5b3b
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global fulldate 2026-05-04
%global fulldate 2026-04-27
%global commit_date %(echo %{fulldate} | sed 's/-//g')
%global public_key RWQlAjJC23149WL2sEpT/l0QKy7hMIFhYdQOFy0Z7z7PbneUgvlsnYcV
%global ver 1.3.2
+2 -2
View File
@@ -12,8 +12,8 @@
# Naming variable as something other than "commit" is necessary
# to stop %%gometa from putting commit hash in release
%global commit_hash 253065a4af5a417e3b13d62ec5f5f722457f4a53
%global commit_date 20260505
%global commit_hash bd0003b9c0a68291cc65c16aaf48320bda8b4eaf
%global commit_date 20260427
%global shortcommit %{sub %{commit_hash} 1 7}
%global ver 2.0.15
+19 -8
View File
@@ -1,10 +1,10 @@
%global crate rioterm
%global appid com.rioterm.Rio
%global _description %{expand:
A hardware-accelerated terminal emulator focusing to run in desktops and browsers.}
%bcond docs 1
Name: rio
Version: 0.4.2
Version: 0.3.11
Release: 1%{?dist}
Summary: A hardware-accelerated terminal written in Rust.
SourceLicense: MIT
@@ -17,7 +17,6 @@ BuildRequires: desktop-file-utils
BuildRequires: freetype-devel
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: glslc
BuildRequires: libxcb-devel
BuildRequires: libxkbcommon-devel
BuildRequires: mold
@@ -26,9 +25,10 @@ BuildRequires: pkgconfig(alsa)
Requires: freetype
Requires: fontconfig
Requires: hicolor-icon-theme
Requires: ncurses-term
Obsoletes: %{crate} < %{version}-%{release}
Obsoletes: %{name}-doc < %{evr}
%if %{with docs}
Suggests: %{name}-doc = %{version}-%{release}
%endif
Packager: Gilver E. <roachy@fyralabs.com>
%description %_description
@@ -40,6 +40,14 @@ Requires: %{name} = %{version}-%{release}
%description devel
This package contains the development libraries for Rio.
%if %{with docs}
%package doc
Summary: Documentation for Rio
%description doc
This package contains all official documentation files for the Rio terminal.
%endif
%prep
%autosetup -n %{name}-%{version}
%cargo_prep_online
@@ -51,8 +59,7 @@ sed -i 's/Exec=.*/Exec=%{crate}/g' misc/%{name}.desktop
%install
install -Dm755 target/rpm/%{name} %{buildroot}%{_bindir}/%{crate}
install -Dm755 target/rpm/*.so -t %{buildroot}%{_libdir}
install -Dm644 misc/logo.svg %{buildroot}%{_scalableiconsdir}/%{name}.svg
install -Dm644 misc/%{appid}.metainfo.xml -t %{buildroot}%{_metainfodir}
install -Dm644 docs/static/assets/%{name}-logo.svg %{buildroot}%{_iconsdir}/hicolor/scalable/apps/%{name}.svg
desktop-file-install misc/%{name}.desktop
%{cargo_license_online -a} > LICENSE.dependencies
@@ -66,13 +73,17 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
%{_bindir}/%{crate}
%{_datadir}/applications/%{name}.desktop
%{_iconsdir}/hicolor/scalable/apps/%{name}.svg
%{_metainfodir}/%{appid}.metainfo.xml
%files devel
%{_libdir}/librio_backend.so
%{_libdir}/librio_proc_macros.so
%{_libdir}/libsugarloaf.so
%if %{with docs}
%files doc
%doc docs/docs/*
%endif
%changelog
* Mon May 5 2025 Gilver E. <rockgrub@disroot.org> - 0.2.13-1
- Added doc package
+3 -4
View File
@@ -1,11 +1,11 @@
%global commit 8d153d7feb6d49b0f42550d6aa111378d5e0013f
%global commit 3014170d7e4dfbe8379beda4dec92d6256b41209
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20260505
%global commit_date 20260429
%global ver 1.2.0
%bcond_with check
%bcond_with debug_no_build
%bcond nightly 0
%bcond nightly 1
%if 0%{?with_debug_no_build}
%global debug_package %{nil}
@@ -19,7 +19,6 @@
%global appstream_component desktop-application
%global rustflags_debuginfo 0
%global toolchain clang
Name: zed-nightly
Version: %ver^%commit_date.%shortcommit
+1 -3
View File
@@ -1,5 +1,3 @@
%global toolchain clang
%bcond_with check
%bcond_with debug_no_build
@@ -7,7 +5,7 @@
%global debug_package %{nil}
%endif
%global ver 1.1.5-pre
%global ver 0.234.6-pre
# Exclude input files from mangling
%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$
+1 -3
View File
@@ -1,5 +1,3 @@
%global toolchain clang
%bcond_with check
%bcond_with debug_no_build
@@ -17,7 +15,7 @@
%global rustflags_debuginfo 0
Name: zed
Version: 1.0.1
Version: 0.233.10
Release: 1%{?dist}
Summary: Zed is a high-performance, multiplayer code editor
SourceLicense: AGPL-3.0-only AND Apache-2.0 AND GPL-3.0-or-later
+2 -2
View File
@@ -4,8 +4,8 @@
%global crate chess-tui
Name: rust-chess-tui
Version: 2.6.2
Release: 1%{?dist}
Version: 2.5.1
Release: 1%?dist
Summary: Rusty chess game in your terminal 🦀
License: MIT
@@ -3,10 +3,10 @@
%global name_pretty %{quote:Prism Launcher (Nightly)}
%global appid org.prismlauncher.PrismLauncher-nightly
%global commit ac7c8adea26c40b9e24d432d3bf37dbbc545edce
%global commit 031015b3327b41d64b7e5ee54734cc93eb69c4ec
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20260505
%global commit_date 20260423
%global snapshot_info %{commit_date}.%{shortcommit}
# Change this variables if you want to use custom keys
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "protonplus.spec"
}
}
-56
View File
@@ -1,56 +0,0 @@
%define appid com.vysp3r.ProtonPlus
Name: protonplus
Version: 0.5.20
Release: 1%{?dist}
Summary: A modern compatibility tools manager
License: GPL-3.0-or-later
URL: https://github.com/Vysp3r/ProtonPlus
Source0: %{url}/archive/refs/tags/v%{version}.tar.gz
Packager: Owen Zimmerman <owen@fyralabs.com>
BuildRequires: meson
BuildRequires: ninja-build
BuildRequires: gcc
BuildRequires: vala
BuildRequires: pkgconfig(gtk4)
BuildRequires: pkgconfig(libadwaita-1)
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(libsoup-3.0)
BuildRequires: pkgconfig(gee-0.8)
BuildRequires: pkgconfig(libarchive)
BuildRequires: desktop-file-utils
Provides: ProtonPlus
%description
ProtonPlus is a modern compatibility tools manager for Linux.
It allows you to easily manage and update various compatibility
tools like Proton, Wine, DXVK, and VKD3D across different launchers.
%prep
%autosetup -n ProtonPlus-%{version}
%conf
%meson
%build
%meson_build
%install
%meson_install
%find_lang %{appid}
%files -f %{appid}.lang
%doc README.md CODE_OF_CONDUCT.md CONTRIBUTING.md SECURITY.md
%license LICENSE.md
%{_bindir}/protonplus
%{_metainfodir}/%{appid}.metainfo.xml
%{_appsdir}/%{appid}.desktop
%{_datadir}/glib-2.0/schemas/%{appid}.gschema.xml
%{_hicolordir}/*/apps/%{appid}.png
%changelog
* Mon May 04 2026 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("Vysp3r/ProtonPlus"));
+2 -2
View File
@@ -9,8 +9,8 @@
# GLIBCXX_ASSERTIONS is known to break RPCS3
%global build_cflags %(echo "%{__build_flags_lang_c}" | sed 's|-Wp,-D_GLIBCXX_ASSERTIONS ||g') %{?_distro_extra_cflags}
%global build_cxxflags %(echo "%{__build_flags_lang_cxx}" | sed 's|-Wp,-D_GLIBCXX_ASSERTIONS ||g') %{?_distro_extra_cflags}
%global commit 4f47fee36039f38449830eccf10e72282d680f1a
%global ver 0.0.40-19334
%global commit b212935c702d228b29bbacf11f6fe02e86b655d8
%global ver 0.0.40-19262
Name: rpcs3
Version: %(echo %{ver} | sed 's/-/^/g')
@@ -1,6 +1,6 @@
Name: steamos-manager
Version: 26.1.0
Release: 1%{?dist}
Version: 26.0.1
Release: 1%?dist
Summary: SteamOS Manager is a system daemon that aims to abstract Steam's interactions with the operating system.
License: MIT AND (MIT OR Apache-2.0) AND Unicode-3.0 AND Apache-2.0 OR BSL-1.0 AND Apache-2.0 OR MIT AND Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT AND BSD-3-Clause OR MIT OR Apache-2.0 AND ISC AND LGPL-2.1 OR MIT OR Apache-2.0 AND MIT AND MIT OR Apache-2.0 AND MIT OR Apache-2.0 OR LGPL-2.1-or-later AND Unlicense OR MIT AND Zlib OR Apache-2.0 OR MIT
URL: https://gitlab.steamos.cloud/holo/steamos-manager
+1 -1
View File
@@ -2,7 +2,7 @@
%global bootstrap_version 1.17.1
Name: crystal
Version: 1.20.1
Version: 1.20.0
Release: 1%{?dist}
Summary: A general-purpose, object-oriented programming language
License: Apache-2.0
+1 -1
View File
@@ -12,7 +12,7 @@
# https://github.com/nektos/act
%global goipath github.com/nektos/act
Version: 0.2.88
Version: 0.2.87
%gometa -f
@@ -11,7 +11,7 @@
# https://github.com/grpc/grpc-go
%global goipath google.golang.org/grpc
%global forgeurl https://github.com/grpc/grpc-go
Version: 1.81.0
Version: 1.80.0
%gometa -L
@@ -1,7 +1,7 @@
%global commit 074305b21bb3797eac2415aa5c385a579cd5943c
%global commit 8cd9934593307c19bd55ebc11e07ea1dc183b103
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global ver v2.2.7.5
%global commit_date 20260505
%global commit_date 20260420
%global goipath github.com/v2rayA/v2rayA
Version: %{ver}^%{commit_date}git.%{shortcommit}
+1 -1
View File
@@ -1,5 +1,5 @@
%global goipath github.com/v2rayA/v2rayA
Version: 2.4.0
Version: 2.3.4
%global golicenses LICENSE
%global godocs README.md
+2 -2
View File
@@ -1,7 +1,7 @@
%global commit 228f1e13aa22739b0d6b9adbdb2b600f1e2018e1
%global commit 1836b1c6e4f672e266f629532e3252ce2a07ff54
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global ver v26.3.27
%global commit_date 20260504
%global commit_date 20260429
%global goipath github.com/XTLS/Xray-core
Version: %{ver}^%{commit_date}git.%{shortcommit}
+1 -1
View File
@@ -1,7 +1,7 @@
# Disabled because compiled without debug
%global goipath github.com/XTLS/Xray-core
Version: 26.5.3
Version: 26.4.25
%global golicenses LICENSE
%global godocs README.md SECURITY.md CODE_OF_CONDUCT.md
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "ghc-libriscv.spec"
}
}
@@ -1,13 +0,0 @@
diff --git a/libriscv.cabal b/libriscv.cabal
index 25e48fa..22e204a 100644
--- a/libriscv.cabal
+++ b/libriscv.cabal
@@ -91,7 +91,7 @@ library
, base >= 4.15.0.0 && <4.20.0.0
, array ^>= 0.5.4.0
, filepath ^>= 1.4.2.1
- , bytestring >= 0.10.10 && <0.12
+ , bytestring >= 0.10.10
, exceptions ^>= 0.10.4
, melf ^>= 1.3.0
, freer-simple ^>= 1.2.1.2
@@ -1,166 +0,0 @@
# generated by cabal-rpm-2.3.2
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/
%global pkg_name libriscv
%global pkgver %{pkg_name}-%{version}
%{?haskell_setup}
# testsuite missing deps: bv tasty tasty-hunit
Name: ghc-%{pkg_name}
Version: 0.1.0.0
Release: 1%{?dist}
Summary: A versatile, flexible and executable formal model for the RISC-V architecture
License: MIT
URL: https://hackage.haskell.org/package/libriscv
# Begin cabal-rpm sources:
Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz
# End cabal-rpm sources
Patch0: bytestring-ver-fix.patch
# Begin cabal-rpm deps:
BuildRequires: ghc-rpm-macros
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-array-devel
BuildRequires: ghc-base-devel
BuildRequires: ghc-bv-devel
BuildRequires: ghc-bytestring-devel
BuildRequires: ghc-containers-devel
BuildRequires: ghc-exceptions-devel
BuildRequires: ghc-extra-devel
BuildRequires: ghc-file-embed-devel
BuildRequires: ghc-filepath-devel
BuildRequires: ghc-freer-simple-devel
BuildRequires: ghc-melf-devel
BuildRequires: ghc-optparse-applicative-devel
BuildRequires: ghc-parameterized-utils-devel
BuildRequires: ghc-template-haskell-devel
BuildRequires: ghc-transformers-devel
BuildRequires: ghc-yaml-devel
%if %{with ghc_prof}
BuildRequires: ghc-array-prof
BuildRequires: ghc-base-prof
BuildRequires: ghc-bv-prof
BuildRequires: ghc-bytestring-prof
BuildRequires: ghc-containers-prof
BuildRequires: ghc-exceptions-prof
BuildRequires: ghc-extra-prof
BuildRequires: ghc-file-embed-prof
BuildRequires: ghc-filepath-prof
BuildRequires: ghc-freer-simple-prof
BuildRequires: ghc-melf-prof
BuildRequires: ghc-optparse-applicative-prof
BuildRequires: ghc-parameterized-utils-prof
BuildRequires: ghc-template-haskell-prof
BuildRequires: ghc-transformers-prof
BuildRequires: ghc-yaml-prof
%endif
# End cabal-rpm deps
Packager: Owen Zimmerman <owen@fyralabs.com>
%description
A formal model for the <https://riscv.org/ RISC-V> /Instruction Set
Architecture/ (ISA). Contrary to other Haskell RISC-V ISA models, like
<https://github.com/GaloisInc/grift GRIFT> or
<https://github.com/mit-plv/riscv-semantics riscv-semantics>, LibRISCV is
specifically tailored to the creation of custom ISA interpreters. To this end,
it is designed for flexibility, allowing a versatile representation of
instruction operands. For example, instruction operands can be
<https://en.wikipedia.org/wiki/Satisfiability_modulo_theories SMT> expressions
for <https://doi.org/10.48550/arXiv.2404.04132 symbolic execution> of binary
code.
LibRISCV abstractly describes instruction semantics using an /Embedded Domain
Specific Language/ (EDSL) with <https://doi.org/10.1145/2887747.2804319 free(r)
monads>. This Haskell library is intended to build custom interpreters for this
free monad. The entry point for this purpose is the
'LibRISCV.Semantics.buildAST' function which obtains the free monad AST based
on an entry address. The entry address can be obtained from a provided ELF
loader implementation, this "Loader" module is also responsible for loading
binary instructions into a provided memory implementation. Refer to provided
example interpreters in the <https://github.com/agra-uni-bremen/libriscv GitHub
repository> for practical usage instruction. More detailed information on
LibRISCV and its concepts is also available in a
<https://doi.org/10.1007/978-3-031-38938-2_2 TFP'23 publication>.
%package devel
Summary: Haskell %{pkg_name} library development files
Provides: %{name}-static = %{version}-%{release}
Provides: %{name}-static%{?_isa} = %{version}-%{release}
%if %{defined ghc_version}
Requires: ghc-compiler = %{ghc_version}
%endif
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
This package provides the Haskell %{pkg_name} library development files.
%if %{with haddock}
%package doc
Summary: Haskell %{pkg_name} library documentation
BuildArch: noarch
Requires: ghc-filesystem
%description doc
This package provides the Haskell %{pkg_name} library documentation.
%endif
%if %{with ghc_prof}
%package prof
Summary: Haskell %{pkg_name} profiling library
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Supplements: (%{name}-devel and ghc-prof)
%description prof
This package provides the Haskell %{pkg_name} profiling library.
%endif
%prep
# Begin cabal-rpm setup:
%setup -q -n %{pkgver}
%patch -P0 -p1
# End cabal-rpm setup
%build
# Begin cabal-rpm build:
%ghc_lib_build
# End cabal-rpm build
%install
# Begin cabal-rpm install
%ghc_lib_install
# End cabal-rpm install
%files -f %{name}.files
# Begin cabal-rpm files:
%license LICENSE.txt
%{_datadir}/%{pkgver}
# End cabal-rpm files
%files devel -f %{name}-devel.files
%{_bindir}/riscv-tiny
%if %{with haddock}
%files doc -f %{name}-doc.files
%license LICENSE.txt
%endif
%if %{with ghc_prof}
%files prof -f %{name}-prof.files
%endif
%changelog
* Tue Apr 28 2026 Owen Zimmerman <owen@fyralabs.com> - 0.1.0.0-1
- Initial commit
@@ -1 +0,0 @@
rpm.version(hackage("libriscv"));
@@ -1,53 +0,0 @@
/jdk-jdk12-jdk-12+33.tar.xz
/systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz
/jdk-updates-jdk12u-jdk-12.0.1+12.tar.xz
/jdk-jdk13-jdk-13+27.tar.xz
/jdk-jdk13-jdk-13+28.tar.xz
/jdk-jdk13-jdk-13+33.tar.xz
/jdk-updates-jdk13u-jdk-13.0.1+9.tar.xz
/jdk-updates-jdk13u-jdk-13.0.2+8.tar.xz
/jdk-jdk14-jdk-14+36.tar.xz
/jdk-updates-jdk14u-jdk-14.0.1+7.tar.xz
/jdk-updates-jdk14u-jdk-14.0.2+12.tar.xz
/jdk-jdk15-jdk-15+36.tar.xz
/jdk-updates-jdk15u-jdk-15.0.1+9.tar.xz
/tapsets-icedtea-3.15.0.tar.xz
/jdk-updates-jdk15u-jdk-15.0.2+7.tar.xz
/openjdk-jdk16-jdk-16+36.tar.xz
/openjdk-jdk16u-jdk-16.0.1+9.tar.xz
/openjdk-jdk17-jdk-17+26.tar.xz
/openjdk-jdk17-jdk-17+33.tar.xz
/openjdk-jdk17-jdk-17+35.tar.xz
/openjdk-jdk17u-jdk-17.0.1+12.tar.xz
/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz
/openjdk-jdk17u-jdk-17.0.2+8.tar.xz
/openjdk-jdk-jdk-18+27.tar.xz
/openjdk-jdk18-jdk-18+27.tar.xz
/openjdk-jdk18-jdk-18+37.tar.xz
/openjdk-jdk18u-jdk-18.0.1+0.tar.xz
/openjdk-jdk18u-jdk-18.0.1+10.tar.xz
/openjdk-jdk18u-jdk-18.0.1.1+2.tar.xz
/openjdk-jdk18u-jdk-18.0.2+9.tar.xz
/openjdk-jdk19u-jdk-19+36.tar.xz
/openjdk-jdk19u-jdk-19.0.1+10.tar.xz
/openjdk-jdk19u-jdk-19.0.2+7.tar.xz
/openjdk-jdk20u-jdk-20+36.tar.xz
/openjdk-jdk20u-jdk-20.0.1+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-jdk-21.0.3+9.tar.xz
/openjdk-21.0.3+9.tar.xz
/openjdk-21.0.4+7.tar.xz
/openjdk-21.0.5+11.tar.xz
/openjdk-21.0.6+7.tar.xz
/openjdk-21.0.7+6.tar.xz
/openjdk-21.0.8+9.tar.xz
/openjdk-21.0.9+10.tar.xz
/openjdk-21.0.10+7.tar.xz
/openjdk-21.0.11+10.tar.xz
@@ -1,65 +0,0 @@
/* CheckVendor -- Check the vendor properties match specified values.
Copyright (C) 2020 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/>.
*/
/**
* @test
*/
public class CheckVendor {
public static void main(String[] args) {
if (args.length < 4) {
System.err.println("CheckVendor <VENDOR> <VENDOR-URL> <VENDOR-BUG-URL> <VENDOR-VERSION-STRING>");
System.exit(1);
}
String vendor = System.getProperty("java.vendor");
String expectedVendor = args[0];
String vendorURL = System.getProperty("java.vendor.url");
String expectedVendorURL = args[1];
String vendorBugURL = System.getProperty("java.vendor.url.bug");
String expectedVendorBugURL = args[2];
String vendorVersionString = System.getProperty("java.vendor.version");
String expectedVendorVersionString = args[3];
if (!expectedVendor.equals(vendor)) {
System.err.printf("Invalid vendor %s, expected %s\n",
vendor, expectedVendor);
System.exit(2);
}
if (!expectedVendorURL.equals(vendorURL)) {
System.err.printf("Invalid vendor URL %s, expected %s\n",
vendorURL, expectedVendorURL);
System.exit(3);
}
if (!expectedVendorBugURL.equals(vendorBugURL)) {
System.err.printf("Invalid vendor bug URL %s, expected %s\n",
vendorBugURL, expectedVendorBugURL);
System.exit(4);
}
if (!expectedVendorVersionString.equals(vendorVersionString)) {
System.err.printf("Invalid vendor version string %s, expected %s\n",
vendorVersionString, expectedVendorVersionString);
System.exit(5);
}
System.err.printf("Vendor information verified as %s, %s, %s, %s\n",
vendor, vendorURL, vendorBugURL, vendorVersionString);
}
}
File diff suppressed because it is too large Load Diff
@@ -1,72 +0,0 @@
/* TestCryptoLevel -- Ensure unlimited crypto policy is in use.
Copyright (C) 2012 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/>.
*/
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
import java.security.Permission;
import java.security.PermissionCollection;
public class TestCryptoLevel
{
public static void main(String[] args)
throws NoSuchFieldException, ClassNotFoundException,
IllegalAccessException, InvocationTargetException
{
Class<?> cls = null;
Method def = null, exempt = null;
try
{
cls = Class.forName("javax.crypto.JceSecurity");
}
catch (ClassNotFoundException ex)
{
System.err.println("Running a non-Sun JDK.");
System.exit(0);
}
try
{
def = cls.getDeclaredMethod("getDefaultPolicy");
exempt = cls.getDeclaredMethod("getExemptPolicy");
}
catch (NoSuchMethodException ex)
{
System.err.println("Running IcedTea with the original crypto patch.");
System.exit(0);
}
def.setAccessible(true);
exempt.setAccessible(true);
PermissionCollection defPerms = (PermissionCollection) def.invoke(null);
PermissionCollection exemptPerms = (PermissionCollection) exempt.invoke(null);
Class<?> apCls = Class.forName("javax.crypto.CryptoAllPermission");
Field apField = apCls.getDeclaredField("INSTANCE");
apField.setAccessible(true);
Permission allPerms = (Permission) apField.get(null);
if (defPerms.implies(allPerms) && (exemptPerms == null || exemptPerms.implies(allPerms)))
{
System.err.println("Running with the unlimited policy.");
System.exit(0);
}
else
{
System.err.println("WARNING: Running with a restricted crypto policy.");
System.exit(-1);
}
}
}
@@ -1,49 +0,0 @@
/* TestECDSA -- Ensure ECDSA signatures are working.
Copyright (C) 2016 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/>.
*/
import java.math.BigInteger;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.Signature;
/**
* @test
*/
public class TestECDSA {
public static void main(String[] args) throws Exception {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC");
KeyPair key = keyGen.generateKeyPair();
byte[] data = "This is a string to sign".getBytes("UTF-8");
Signature dsa = Signature.getInstance("NONEwithECDSA");
dsa.initSign(key.getPrivate());
dsa.update(data);
byte[] sig = dsa.sign();
System.out.println("Signature: " + new BigInteger(1, sig).toString(16));
Signature dsaCheck = Signature.getInstance("NONEwithECDSA");
dsaCheck.initVerify(key.getPublic());
dsaCheck.update(data);
boolean success = dsaCheck.verify(sig);
if (!success) {
throw new RuntimeException("Test failed. Signature verification error");
}
System.out.println("Test passed.");
}
}
@@ -1,84 +0,0 @@
/* TestSecurityProperties -- Ensure system security properties can be used to
enable the crypto policies.
Copyright (C) 2022 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/>.
*/
import java.io.File;
import java.io.FileInputStream;
import java.security.Security;
import java.util.Properties;
public class TestSecurityProperties {
// JDK 11
private static final String JDK_PROPS_FILE_JDK_11 = System.getProperty("java.home") + "/conf/security/java.security";
// JDK 8
private static final String JDK_PROPS_FILE_JDK_8 = System.getProperty("java.home") + "/lib/security/java.security";
private static final String POLICY_FILE = "/etc/crypto-policies/back-ends/java.config";
private static final String MSG_PREFIX = "DEBUG: ";
public static void main(String[] args) {
if (args.length == 0) {
System.err.println("TestSecurityProperties <true|false>");
System.err.println("Invoke with 'true' if system security properties should be enabled.");
System.err.println("Invoke with 'false' if system security properties should be disabled.");
System.exit(1);
}
boolean enabled = Boolean.valueOf(args[0]);
System.out.println(MSG_PREFIX + "System security properties enabled: " + enabled);
Properties jdkProps = new Properties();
loadProperties(jdkProps);
if (enabled) {
loadPolicy(jdkProps);
}
for (Object key: jdkProps.keySet()) {
String sKey = (String)key;
String securityVal = Security.getProperty(sKey);
String jdkSecVal = jdkProps.getProperty(sKey);
if (!securityVal.equals(jdkSecVal)) {
String msg = "Expected value '" + jdkSecVal + "' for key '" +
sKey + "'" + " but got value '" + securityVal + "'";
throw new RuntimeException("Test failed! " + msg);
} else {
System.out.println(MSG_PREFIX + sKey + " = " + jdkSecVal + " as expected.");
}
}
System.out.println("TestSecurityProperties PASSED!");
}
private static void loadProperties(Properties props) {
String javaVersion = System.getProperty("java.version");
System.out.println(MSG_PREFIX + "Java version is " + javaVersion);
String propsFile = JDK_PROPS_FILE_JDK_11;
if (javaVersion.startsWith("1.8.0")) {
propsFile = JDK_PROPS_FILE_JDK_8;
}
try (FileInputStream fin = new FileInputStream(propsFile)) {
props.load(fin);
} catch (Exception e) {
throw new RuntimeException("Test failed!", e);
}
}
private static void loadPolicy(Properties props) {
try (FileInputStream fin = new FileInputStream(POLICY_FILE)) {
props.load(fin);
} catch (Exception e) {
throw new RuntimeException("Test failed!", e);
}
}
}
@@ -1,160 +0,0 @@
/* TestTranslations -- Ensure translations are available for new timezones
Copyright (C) 2022 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/>.
*/
import java.text.DateFormatSymbols;
import java.time.ZoneId;
import java.time.format.TextStyle;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Locale;
import java.util.Objects;
import java.util.TimeZone;
public class TestTranslations {
private static Map<Locale,String[]> KYIV, CIUDAD_JUAREZ;
static {
Map<Locale,String[]> map = new HashMap<Locale,String[]>();
map.put(Locale.US, new String[] { "Eastern European Standard Time", "GMT+02:00", "EET",
"Eastern European Summer Time", "GMT+03:00", "EEST",
"Eastern European Time", "GMT+02:00", "EET"});
map.put(Locale.FRANCE, new String[] { "heure normale d\u2019Europe de l\u2019Est", "UTC+02:00", "EET",
"heure d\u2019\u00e9t\u00e9 d\u2019Europe de l\u2019Est", "UTC+03:00", "EEST",
"heure d\u2019Europe de l\u2019Est", "UTC+02:00", "EET"});
map.put(Locale.GERMANY, new String[] { "Osteurop\u00e4ische Normalzeit", "OEZ", "OEZ",
"Osteurop\u00e4ische Sommerzeit", "OESZ", "OESZ",
"Osteurop\u00e4ische Zeit", "OEZ", "OEZ"});
KYIV = Collections.unmodifiableMap(map);
map = new HashMap<Locale,String[]>();
map.put(Locale.US, new String[] { "Mountain Standard Time", "MST", "MST",
"Mountain Daylight Time", "MDT", "MDT",
"Mountain Time", "MT", "MT"});
map.put(Locale.FRANCE, new String[] { "heure normale des Rocheuses", "UTC\u221207:00", "MST",
"heure d\u2019\u00e9t\u00e9 des Rocheuses", "UTC\u221206:00", "MDT",
"heure des Rocheuses", "UTC\u221207:00", "MT"});
map.put(Locale.GERMANY, new String[] { "Rocky-Mountain-Normalzeit", "GMT-07:00", "MST",
"Rocky-Mountain-Sommerzeit", "GMT-06:00", "MDT",
"Rocky-Mountain-Zeit", "GMT-07:00", "MT"});
CIUDAD_JUAREZ = Collections.unmodifiableMap(map);
}
public static void main(String[] args) {
if (args.length < 1) {
System.err.println("Test must be started with the name of the locale provider.");
System.exit(1);
}
System.out.println("Checking sanity of full zone string set...");
boolean invalid = Arrays.stream(Locale.getAvailableLocales())
.peek(l -> System.out.println("Locale: " + l))
.map(l -> DateFormatSymbols.getInstance(l).getZoneStrings())
.flatMap(zs -> Arrays.stream(zs))
.flatMap(names -> Arrays.stream(names))
.filter(name -> Objects.isNull(name) || name.isEmpty())
.findAny()
.isPresent();
if (invalid) {
System.err.println("Zone string for a locale returned null or empty string");
System.exit(2);
}
String localeProvider = args[0];
testZone(localeProvider, KYIV,
new String[] { "Europe/Kiev", "Europe/Kyiv", "Europe/Uzhgorod", "Europe/Zaporozhye" });
testZone(localeProvider, CIUDAD_JUAREZ,
new String[] { "America/Cambridge_Bay", "America/Ciudad_Juarez" });
}
private static void testZone(String localeProvider, Map<Locale,String[]> exp, String[] ids) {
for (Locale l : exp.keySet()) {
String[] expected = exp.get(l);
System.out.printf("Expected values for %s are %s\n", l, Arrays.toString(expected));
for (String id : ids) {
String expectedShortStd = null;
String expectedShortDST = null;
String expectedShortGen = null;
System.out.printf("Checking locale %s for %s...\n", l, id);
if ("JRE".equals(localeProvider)) {
expectedShortStd = expected[2];
expectedShortDST = expected[5];
expectedShortGen = expected[8];
} else if ("CLDR".equals(localeProvider)) {
expectedShortStd = expected[1];
expectedShortDST = expected[4];
expectedShortGen = expected[7];
} else {
System.err.printf("Invalid locale provider %s\n", localeProvider);
System.exit(3);
}
System.out.printf("Locale Provider is %s, using short values %s, %s and %s\n",
localeProvider, expectedShortStd, expectedShortDST, expectedShortGen);
String longStd = TimeZone.getTimeZone(id).getDisplayName(false, TimeZone.LONG, l);
String shortStd = TimeZone.getTimeZone(id).getDisplayName(false, TimeZone.SHORT, l);
String longDST = TimeZone.getTimeZone(id).getDisplayName(true, TimeZone.LONG, l);
String shortDST = TimeZone.getTimeZone(id).getDisplayName(true, TimeZone.SHORT, l);
String longGen = ZoneId.of(id).getDisplayName(TextStyle.FULL, l);
String shortGen = ZoneId.of(id).getDisplayName(TextStyle.SHORT, l);
if (!expected[0].equals(longStd)) {
System.err.printf("Long standard display name for %s in %s was %s, expected %s\n",
id, l, longStd, expected[0]);
System.exit(4);
}
if (!expectedShortStd.equals(shortStd)) {
System.err.printf("Short standard display name for %s in %s was %s, expected %s\n",
id, l, shortStd, expectedShortStd);
System.exit(5);
}
if (!expected[3].equals(longDST)) {
System.err.printf("Long DST display name for %s in %s was %s, expected %s\n",
id, l, longDST, expected[3]);
System.exit(6);
}
if (!expectedShortDST.equals(shortDST)) {
System.err.printf("Short DST display name for %s in %s was %s, expected %s\n",
id, l, shortDST, expectedShortDST);
System.exit(7);
}
if (!expected[6].equals(longGen)) {
System.err.printf("Long generic display name for %s in %s was %s, expected %s\n",
id, l, longGen, expected[6]);
System.exit(8);
}
if (!expectedShortGen.equals(shortGen)) {
System.err.printf("Short generic display name for %s in %s was %s, expected %s\n",
id, l, shortGen, expectedShortGen);
System.exit(9);
}
}
}
}
}
@@ -1,100 +0,0 @@
/*
* 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);
}
@@ -1,8 +0,0 @@
project pkg {
rpm {
spec = "java-21-openjdk-portable.spec"
}
labels {
updbranch = 1
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,47 +0,0 @@
diff --git a/src/java.base/linux/native/libnio/ch/FileDispatcherImpl.c b/src/java.base/linux/native/libnio/ch/FileDispatcherImpl.c
index 207e61431dc..7c3761a613c 100644
--- a/src/java.base/linux/native/libnio/ch/FileDispatcherImpl.c
+++ b/src/java.base/linux/native/libnio/ch/FileDispatcherImpl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2022, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2026, Oracle and/or its affiliates. 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
@@ -63,7 +63,7 @@ Java_sun_nio_ch_FileDispatcherImpl_transferFrom0(JNIEnv *env, jobject this,
if (n < 0) {
if (errno == EAGAIN)
return IOS_UNAVAILABLE;
- if (errno == ENOSYS)
+ if (errno == ENOSYS || errno == EOPNOTSUPP)
return IOS_UNSUPPORTED_CASE;
if ((errno == EBADF || errno == EINVAL || errno == EXDEV) &&
((ssize_t)count >= 0))
@@ -103,6 +103,7 @@ Java_sun_nio_ch_FileDispatcherImpl_transferTo0(JNIEnv *env, jobject this,
case EINVAL:
case ENOSYS:
case EXDEV:
+ case EOPNOTSUPP:
// ignore and try sendfile()
break;
default:
diff --git a/src/java.base/linux/native/libnio/fs/LinuxNativeDispatcher.c b/src/java.base/linux/native/libnio/fs/LinuxNativeDispatcher.c
index cf8592e1ced..5f14896ad24 100644
--- a/src/java.base/linux/native/libnio/fs/LinuxNativeDispatcher.c
+++ b/src/java.base/linux/native/libnio/fs/LinuxNativeDispatcher.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2022, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2026, Oracle and/or its affiliates. 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
@@ -199,6 +199,7 @@ Java_sun_nio_fs_LinuxNativeDispatcher_directCopy0
case EINVAL:
case ENOSYS:
case EXDEV:
+ case EOPNOTSUPP:
// ignore and try sendfile()
break;
default:
@@ -1,164 +0,0 @@
#!/bin/sh
# Arguments: <JDK TREE> <MINIMAL|FULL>
TREE=${1}
TYPE=${2}
ZIP_SRC=src/java.base/share/native/libzip/zlib/
FREETYPE_SRC=src/java.desktop/share/native/libfreetype/
JPEG_SRC=src/java.desktop/share/native/libjavajpeg/
GIF_SRC=src/java.desktop/share/native/libsplashscreen/giflib/
PNG_SRC=src/java.desktop/share/native/libsplashscreen/libpng/
LCMS_SRC=src/java.desktop/share/native/liblcms/
if test "x${TREE}" = "x"; then
echo "$0 <JDK_TREE> (MINIMAL|FULL)";
exit 1;
fi
if test "x${TYPE}" = "x"; then
TYPE=minimal;
fi
if test "x${TYPE}" != "xminimal" -a "x${TYPE}" != "xfull"; then
echo "Type must be minimal or full";
exit 2;
fi
echo "Removing in-tree libraries from ${TREE}"
echo "Cleansing operation: ${TYPE}";
cd ${TREE}
echo "Removing built-in libs (they will be linked)"
# On full runs, allow for zlib & freetype having already been deleted by minimal
echo "Removing zlib"
if [ "x${TYPE}" = "xminimal" -a ! -d ${ZIP_SRC} ]; then
echo "${ZIP_SRC} does not exist. Refusing to proceed."
exit 1
fi
rm -rvf ${ZIP_SRC}
echo "Removing freetype"
if [ "x${TYPE}" = "xminimal" -a ! -d ${FREETYPE_SRC} ]; then
echo "${FREETYPE_SRC} does not exist. Refusing to proceed."
exit 1
fi
rm -rvf ${FREETYPE_SRC}
# Minimal is limited to just zlib and freetype so finish here
if test "x${TYPE}" = "xminimal"; then
echo "Finished.";
exit 0;
fi
echo "Removing libjpeg"
if [ ! -f ${JPEG_SRC}/jdhuff.c ]; then # some file that should definitely exist
echo "${JPEG_SRC} does not contain jpeg sources. Refusing to proceed."
exit 1
fi
rm -vf ${JPEG_SRC}/jcomapi.c
rm -vf ${JPEG_SRC}/jdapimin.c
rm -vf ${JPEG_SRC}/jdapistd.c
rm -vf ${JPEG_SRC}/jdcoefct.c
rm -vf ${JPEG_SRC}/jdcolor.c
rm -vf ${JPEG_SRC}/jdct.h
rm -vf ${JPEG_SRC}/jddctmgr.c
rm -vf ${JPEG_SRC}/jdhuff.c
rm -vf ${JPEG_SRC}/jdhuff.h
rm -vf ${JPEG_SRC}/jdinput.c
rm -vf ${JPEG_SRC}/jdmainct.c
rm -vf ${JPEG_SRC}/jdmarker.c
rm -vf ${JPEG_SRC}/jdmaster.c
rm -vf ${JPEG_SRC}/jdmerge.c
rm -vf ${JPEG_SRC}/jdphuff.c
rm -vf ${JPEG_SRC}/jdpostct.c
rm -vf ${JPEG_SRC}/jdsample.c
rm -vf ${JPEG_SRC}/jerror.c
rm -vf ${JPEG_SRC}/jerror.h
rm -vf ${JPEG_SRC}/jidctflt.c
rm -vf ${JPEG_SRC}/jidctfst.c
rm -vf ${JPEG_SRC}/jidctint.c
rm -vf ${JPEG_SRC}/jidctred.c
rm -vf ${JPEG_SRC}/jinclude.h
rm -vf ${JPEG_SRC}/jmemmgr.c
rm -vf ${JPEG_SRC}/jmemsys.h
rm -vf ${JPEG_SRC}/jmemnobs.c
rm -vf ${JPEG_SRC}/jmorecfg.h
rm -vf ${JPEG_SRC}/jpegint.h
rm -vf ${JPEG_SRC}/jpeglib.h
rm -vf ${JPEG_SRC}/jquant1.c
rm -vf ${JPEG_SRC}/jquant2.c
rm -vf ${JPEG_SRC}/jutils.c
rm -vf ${JPEG_SRC}/jcapimin.c
rm -vf ${JPEG_SRC}/jcapistd.c
rm -vf ${JPEG_SRC}/jccoefct.c
rm -vf ${JPEG_SRC}/jccolor.c
rm -vf ${JPEG_SRC}/jcdctmgr.c
rm -vf ${JPEG_SRC}/jchuff.c
rm -vf ${JPEG_SRC}/jchuff.h
rm -vf ${JPEG_SRC}/jcinit.c
rm -vf ${JPEG_SRC}/jconfig.h
rm -vf ${JPEG_SRC}/jcmainct.c
rm -vf ${JPEG_SRC}/jcmarker.c
rm -vf ${JPEG_SRC}/jcmaster.c
rm -vf ${JPEG_SRC}/jcparam.c
rm -vf ${JPEG_SRC}/jcphuff.c
rm -vf ${JPEG_SRC}/jcprepct.c
rm -vf ${JPEG_SRC}/jcsample.c
rm -vf ${JPEG_SRC}/jctrans.c
rm -vf ${JPEG_SRC}/jdtrans.c
rm -vf ${JPEG_SRC}/jfdctflt.c
rm -vf ${JPEG_SRC}/jfdctfst.c
rm -vf ${JPEG_SRC}/jfdctint.c
rm -vf ${JPEG_SRC}/jversion.h
rm -vf ${JPEG_SRC}/README
echo "Removing giflib"
if [ ! -d ${GIF_SRC} ]; then
echo "${GIF_SRC} does not exist. Refusing to proceed."
exit 1
fi
rm -rvf ${GIF_SRC}
echo "Removing libpng"
if [ ! -d ${PNG_SRC} ]; then
echo "${PNG_SRC} does not exist. Refusing to proceed."
exit 1
fi
rm -rvf ${PNG_SRC}
echo "Removing lcms"
if [ ! -d ${LCMS_SRC} ]; then
echo "${LCMS_SRC} does not exist. Refusing to proceed."
exit 1
fi
rm -vf ${LCMS_SRC}/cmscam02.c
rm -vf ${LCMS_SRC}/cmscgats.c
rm -vf ${LCMS_SRC}/cmscnvrt.c
rm -vf ${LCMS_SRC}/cmserr.c
rm -vf ${LCMS_SRC}/cmsgamma.c
rm -vf ${LCMS_SRC}/cmsgmt.c
rm -vf ${LCMS_SRC}/cmshalf.c
rm -vf ${LCMS_SRC}/cmsintrp.c
rm -vf ${LCMS_SRC}/cmsio0.c
rm -vf ${LCMS_SRC}/cmsio1.c
rm -vf ${LCMS_SRC}/cmslut.c
rm -vf ${LCMS_SRC}/cmsmd5.c
rm -vf ${LCMS_SRC}/cmsmtrx.c
rm -vf ${LCMS_SRC}/cmsnamed.c
rm -vf ${LCMS_SRC}/cmsopt.c
rm -vf ${LCMS_SRC}/cmspack.c
rm -vf ${LCMS_SRC}/cmspcs.c
rm -vf ${LCMS_SRC}/cmsplugin.c
rm -vf ${LCMS_SRC}/cmsps2.c
rm -vf ${LCMS_SRC}/cmssamp.c
rm -vf ${LCMS_SRC}/cmssm.c
rm -vf ${LCMS_SRC}/cmstypes.c
rm -vf ${LCMS_SRC}/cmsvirt.c
rm -vf ${LCMS_SRC}/cmswtpnt.c
rm -vf ${LCMS_SRC}/cmsxform.c
rm -vf ${LCMS_SRC}/lcms2.h
rm -vf ${LCMS_SRC}/lcms2_internal.h
rm -vf ${LCMS_SRC}/lcms2_plugin.h
@@ -1,61 +0,0 @@
#!/bin/sh
# Copyright (C) 2024 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 "${TREE}" = ""; then
TREE=${PWD}
fi
if [ -e "${TREE}"/nashorn/.hg ] || [ -e "${TREE}"/nashorn/merge.changeset ] ; then
NASHORN="nashorn" ;
fi
if [ -e "${TREE}"/corba/.hg ] || [ -e "${TREE}"/corba/merge.changeset ] ; then
CORBA="corba";
fi
if [ -e "${TREE}"/jaxp/.hg ] || [ -e "${TREE}"/jaxp/merge.changeset ] ; then
JAXP="jaxp";
fi
if [ -e "${TREE}"/jaxws/.hg ] || [ -e "${TREE}"/jaxws/merge.changeset ] ; then
JAXWS="jaxws";
fi
if [ -e "${TREE}"/langtools/.hg ] || [ -e "${TREE}"/langtools/merge.changeset ] ; then
LANGTOOLS="langtools";
fi
if [ -e "${TREE}"/jdk/.hg ] || [ -e "${TREE}"/jdk/merge.changeset ] ; then
JDK="jdk";
fi
if [ -e "${TREE}"/hotspot/.hg ] || [ -e "${TREE}"/hotspot/merge.changeset ] ; then
HOTSPOT="hotspot";
fi
SUBTREES="${CORBA} ${JAXP} ${JAXWS} ${LANGTOOLS} ${NASHORN} ${JDK} ${HOTSPOT}";
echo "${SUBTREES}"
# Local Variables:
# compile-command: "shellcheck discover_trees.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:
@@ -1,294 +0,0 @@
#!/bin/bash
# Copyright (C) 2024 Red Hat, Inc.
# Written by:
# Andrew John Hughes <gnu.andrew@redhat.com>
# Thomas Fitzsimmons <fitzsim@redhat.com>
# Jiri Vanek <jvanek@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/>.
# Generates the source tarball for OpenJDK projects.
#
# There are multiple ways to specify the source code location and version:
#
# 1. Specify the version (VERSION), the location of the Git repository
# (REPO_ROOT) and the root of the output tarball name (FILE_NAME_ROOT)
# 2. Specify the version (VERSION) along with an upstream project name
# (PROJECT_NAME) and repository name (REPO_NAME) that can be used
# to construct the URL of the upstream OpenJDK repository.
# 3. Specify OPENJDK_LATEST=1 and allow the script to obtain the JDK
# feature version from the spec file, which is then used to
# obtain the latest build promotion from the upstream repository.
#
# An appropriate bootstrap JDK is also required for when ./configure
# is run within the checked out repository to generate the .src-rev.
# file. This can be specified by setting BOOT_JDK.
#
# Example 1:
# This will check out the specified version from the specified
# repository and construct a tarball called openjdk-17.0.3+5.tar.xz:
#
# $ VERSION=jdk-17.0.3+5 FILE_NAME_ROOT=open${VERSION} \
# REPO_ROOT=$HOME/projects/openjdk/upstream/17u \
# BOOT_JDK=/usr/lib/jvm/java-17-openjdk ./generate_source_tarball.sh
#
# Example 2:
# This will check out the same version as example 1, but from the
# upstream repository:
#
# $ VERSION=jdk-21.0.11+10 PROJECT_NAME=openjdk REPO_NAME=jdk21u \
# BOOT_JDK=/usr/lib/jvm/java-21-openjdk ./generate_source_tarball.sh
#
# Example 3:
# 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 \
# BOOT_JDK=/usr/lib/jvm/java-17-openjdk ./generate_source_tarball.sh
#
set -e
OPENJDK_URL_DEFAULT=https://github.com
COMPRESSION_DEFAULT=xz
if [ "$1" = "help" ] ; then
echo "Behaviour may be specified by setting the following variables:"
echo
echo "VERSION - the version of the specified OpenJDK project"
echo " (required unless OPENJDK_LATEST is set)"
echo "PROJECT_NAME - the name of the OpenJDK project being archived"
echo " (needed to compute REPO_ROOT and/or"
echo " FILE_NAME_ROOT automatically;"
echo " optional if they are set explicitly)"
echo "REPO_NAME - the name of the OpenJDK repository"
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;
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 [ "$WITH_TEMP" != "" ] ; then
pushd "$(mktemp --directory --tmpdir temp-generated-source-tarball-XXX)"
fi
if [ "$VERSION" = "" ] ; then
echo "No VERSION specified"
exit 2
fi
echo "Version: ${VERSION}"
NUM_VER=${VERSION##jdk-}
RELEASE_VER=${NUM_VER%%+*}
BUILD_VER=${NUM_VER##*+}
MAJOR_VER=${RELEASE_VER%%.*}
echo "Major version is ${MAJOR_VER}, release ${RELEASE_VER}, build ${BUILD_VER}"
if [ "$BOOT_JDK" = "" ] ; then
echo "No boot JDK specified".
BOOT_JDK=/usr/lib/jvm/java-${MAJOR_VER}-openjdk;
echo -n "Checking for ${BOOT_JDK}...";
if [ -d "${BOOT_JDK}" ] && [ -x "${BOOT_JDK}"/bin/java ] ; then
echo "Boot JDK found at ${BOOT_JDK}";
else
echo "Not found";
PREV_VER=$((MAJOR_VER - 1));
BOOT_JDK=/usr/lib/jvm/java-${PREV_VER}-openjdk;
echo -n "Checking for ${BOOT_JDK}...";
if [ -d ${BOOT_JDK} ] && [ -x ${BOOT_JDK}/bin/java ] ; then
echo "Boot JDK found at ${BOOT_JDK}";
else
echo "Not found";
exit 4;
fi
fi
else
echo "Boot JDK: ${BOOT_JDK}";
fi
if [ "$OPENJDK_URL" = "" ] ; then
OPENJDK_URL=${OPENJDK_URL_DEFAULT}
echo "No OpenJDK URL specified; defaulting to ${OPENJDK_URL}"
else
echo "OpenJDK URL: ${OPENJDK_URL}"
fi
if [ "$COMPRESSION" = "" ] ; then
# rhel 5 needs tar.gz
COMPRESSION=${COMPRESSION_DEFAULT}
fi
echo "Creating a tar.${COMPRESSION} archive"
if [ "$FILE_NAME_ROOT" = "" ] ; then
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}"
fi
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"
echo "No repository root specified; default to ${REPO_ROOT}"
fi;
if [ "$TO_COMPRESS" = "" ] ; then
TO_COMPRESS="${VERSION}"
echo "No targets to be compressed 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 "\tBOOT_JDK: ${BOOT_JDK}"
echo -e "\tWITH_TEMP: ${WITH_TEMP}"
echo -e "\tOPENJDK_LATEST: ${OPENJDK_LATEST}"
if [ -d "${FILE_NAME_ROOT}" ] ; then
echo "Reusing existing ${FILE_NAME_ROOT}"
STAT_TIME="$(stat --format=%Y "${FILE_NAME_ROOT}")"
TAR_TIME="$(date --date=@"${STAT_TIME}" --iso-8601=seconds)"
else
mkdir "${FILE_NAME_ROOT}"
pushd "${FILE_NAME_ROOT}"
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
if realpath -q "${REPO_ROOT}"; then
echo "Local path detected; not adding depth argument";
DEPTH="--";
else
DEPTH="--depth=1";
echo "Remote repository detected; adding ${DEPTH}";
fi
git clone -b "${VERSION}" "${DEPTH}" "${REPO_ROOT}" "${VERSION}"
pushd "${VERSION}"
TAR_TIME="$(git log --max-count 1 --format=%cI)"
popd
popd
fi
pushd "${FILE_NAME_ROOT}"
# Generate .src-rev so build has knowledge of the revision the tarball was
# created from
mkdir build
pushd build
sh "${PWD}"/../"${VERSION}"/configure --with-boot-jdk="${BOOT_JDK}"
make store-source-revision
popd
rm -rf build
# Remove commit checks
echo "Removing $(find "${VERSION}" -name '.jcheck' -print)"
find "${VERSION}" -name '.jcheck' -print0 | xargs -0 rm -r
# Remove history and GHA
echo "find ${VERSION} -name '.hgtags'"
find "${VERSION}" -name '.hgtags' -exec rm -v '{}' '+'
echo "find ${VERSION} -name '.hgignore'"
find "${VERSION}" -name '.hgignore' -exec rm -v '{}' '+'
echo "find ${VERSION} -name '.gitattributes'"
find "${VERSION}" -name '.gitattributes' -exec rm -v '{}' '+'
echo "find ${VERSION} -name '.gitignore'"
find "${VERSION}" -name '.gitignore' -exec rm -v '{}' '+'
# Work around some Git objects not having write permissions.
echo "chmod --recursive u+w ${VERSION}/.git"
chmod --recursive u+w "${VERSION}"/.git
echo "find ${VERSION} -name '.git'"
find "${VERSION}" -name '.git' -exec rm -rv '{}' '+'
echo "find ${VERSION} -name '.github'"
find "${VERSION}" -name '.github' -exec rm -rv '{}' '+'
echo "Compressing remaining forest"
if [ "$COMPRESSION" = "xz" ] ; then
SWITCH=cJf
else
SWITCH=czf
fi
EA_PART="$(awk -F= \
'/^DEFAULT_PROMOTED_VERSION_PRE/ { if ($2) print "-"$2 }' \
"${VERSION}"/make/conf/version-numbers.conf)"
TARBALL_NAME=$(echo ${FILE_NAME_ROOT}${EA_PART}.tar.${COMPRESSION} | sed "s/openjdk-jdk-/openjdk-/") #old bug.. not sure why it works in rhel correctly
XZ_OPT=${XZ_OPT-"-T0"} \
tar --mtime="${TAR_TIME}" --owner=root --group=root --sort=name \
--exclude-vcs -$SWITCH "${TARBALL_NAME}" "${TO_COMPRESS}"
mv "${TARBALL_NAME}" ..
popd
if [ "$WITH_TEMP" != "" ] ; then
echo "Tarball is: $(realpath .)/${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:
@@ -1,172 +0,0 @@
#!/usr/bin/env sh
# Copyright (C) 2025 Red Hat, Inc.
# Original written by Antonio Vieiro <avieirov@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/>.
if [ $# -ne 1 ]; then
echo "Usage: $0 openjdk-root-directory"
exit 1
fi
JDKROOT=$1
if [ ! -d "${JDKROOT}" ] ; then
echo "${JDKROOT} is not a directory.";
exit 2
fi
# Work out the OpenJDK version
# OpenJDK >= 10 has its version in the build machinery
# OpenJDK >= 17 stores it in a new location (JDK-8258246)
VERSION_FILE="${JDKROOT}"/make/conf/version-numbers.conf
printf "Checking for %s..." "${VERSION_FILE}";
if [ ! -f "${VERSION_FILE}" ] ; then
VERSION_FILE="${JDKROOT}"/make/autoconf/version-numbers
echo "Not found; using old version file ${VERSION_FILE}";
else
echo "found.";
fi
if [ -e "${VERSION_FILE}" ] ; then
openjdk_version=$(grep '^DEFAULT_VERSION_FEATURE' "${VERSION_FILE}" | cut -d '=' -f 2)
elif [ -e "${JDKROOT}"/jdk/src/java.base/share/classes/java/lang/Object.java ] ; then
openjdk_version=9;
elif [ -e "${JDKROOT}"/common/autoconf ] ; then
openjdk_version=8;
else
openjdk_version=7;
fi
echo "OpenJDK version: ${openjdk_version}";
#
# Freetype
#
if [ "${openjdk_version}" -gt 8 ] ; then
FREETYPE=src/java.desktop/share/native/libfreetype/include/freetype/freetype.h
ABS_FREETYPE="${JDKROOT}"/"${FREETYPE}"
if [ ! -f "${ABS_FREETYPE}" ]; then
echo "Freetype header not found!"
exit 2
fi
FREETYPE_VERSION=$(awk '/#define FREETYPE_MAJOR/ {MAJOR=$3} /#define FREETYPE_MINOR/ {MINOR=$3} /#define FREETYPE_PATCH/ {PATCH=$3} END {printf "%s.%s.%s", MAJOR, MINOR, PATCH}' "${ABS_FREETYPE}")
else
echo "No bundled FreeType on ${openjdk_version}";
fi
# giflib
if [ "${openjdk_version}" -gt 8 ] ; then
GIFLIB=src/java.desktop/share/native/libsplashscreen/giflib/gif_lib.h
else
GIFLIB=jdk/src/share/native/sun/awt/giflib/gif_lib.h
fi
ABS_GIFLIB="${JDKROOT}"/"${GIFLIB}"
if [ ! -f "${ABS_GIFLIB}" ]; then
echo "giflib header not found!"
exit 3
fi
GIFLIB_VERSION=$(awk '/#define GIFLIB_MAJOR/ {MAJOR=$3} /#define GIFLIB_MINOR/ {MINOR=$3} /#define GIFLIB_RELEASE/ {PATCH=$3} END {printf "%s.%s.%s", MAJOR, MINOR, PATCH}' "${ABS_GIFLIB}")
# harfbuzz
if [ "${openjdk_version}" -gt 8 ] ; then
HARFBUZZ=src/java.desktop/share/native/libharfbuzz/hb-version.h
ABS_HARFBUZZ="${JDKROOT}/${HARFBUZZ}"
if [ ! -f "${ABS_HARFBUZZ}" ]; then
echo "HarfBuzz header not found!"
exit 4
fi
HARFBUZZ_VERSION=$(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}' "${ABS_HARFBUZZ}")
else
echo "No HarfBuzz on ${openjdk_version}";
fi
# lcms
if [ "${openjdk_version}" -gt 8 ] ; then
LCMS=src/java.desktop/share/native/liblcms/lcms2.h
else
LCMS=jdk/src/share/native/sun/java2d/cmm/lcms/lcms2.h
fi
ABS_LCMS="${JDKROOT}"/"${LCMS}"
if [ ! -f "${ABS_LCMS}" ]; then
echo "lcms header not found!"
exit 5
fi
LCMS_VERSION=$(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}' "${ABS_LCMS}")
# jpeg
if [ "${openjdk_version}" -gt 8 ] ; then
JPEG=src/java.desktop/share/native/libjavajpeg/jpeglib.h
else
JPEG=jdk/src/share/native/sun/awt/image/jpeg/jpeglib.h
fi
ABS_JPEG="${JDKROOT}"/"${JPEG}"
if [ ! -f "${ABS_JPEG}" ]; then
echo "jpeg header not found!"
exit 6
fi
JPEG_VERSION=$(awk '/#define JPEG_LIB_VERSION/ { VERSION=$3; MAJOR=int(VERSION / 10); MINOR=VERSION%10; } END {printf "%s%c", MAJOR, (MINOR+96)}' "${ABS_JPEG}")
# png
if [ "${openjdk_version}" -gt 8 ] ; then
PNG=src/java.desktop/share/native/libsplashscreen/libpng/png.h
else
PNG=jdk/src/share/native/sun/awt/libpng/png.h
fi
ABS_PNG="${JDKROOT}"/"${PNG}"
if [ ! -f "${ABS_PNG}" ]; then
echo "png header not found!"
exit 7
fi
PNG_VERSION=$(awk '/#define PNG_LIBPNG_VER_STRING/ { VERSION=$3; gsub("\"", "", VERSION) } END {print VERSION}' "${ABS_PNG}")
# zlib
if [ "${openjdk_version}" -gt 8 ] ; then
ZLIB=src/java.base/share/native/libzip/zlib/zlib.h
else
ZLIB=jdk/src/share/native/java/util/zip/zlib/zlib.h
fi
ABS_ZLIB="${JDKROOT}"/"${ZLIB}"
if [ ! -f "${ABS_ZLIB}" ]; then
echo "zlib header not found!"
exit 8
fi
ZLIB_VERSION=$(awk '/#define ZLIB_VERSION/ { VERSION=$3; gsub("\"", "", VERSION) } END {print VERSION}' "${ABS_ZLIB}")
# Print output
printf "\nRPM definitions:\n"
if [ "${openjdk_version}" -gt 8 ] ; then
echo "# Version in ${FREETYPE}"
echo "Provides: bundled(freetype) = ${FREETYPE_VERSION}"
fi
echo "# Version in ${GIFLIB}"
echo "Provides: bundled(giflib) = ${GIFLIB_VERSION}"
if [ "${openjdk_version}" -gt 8 ] ; then
echo "# Version in ${HARFBUZZ}"
echo "Provides: bundled(harfbuzz) = ${HARFBUZZ_VERSION}"
fi
echo "# Version in ${LCMS}"
echo "Provides: bundled(lcms2) = ${LCMS_VERSION}"
echo "# Version in ${JPEG}"
echo "Provides: bundled(libjpeg) = ${JPEG_VERSION}"
echo "# Version in ${PNG}"
echo "Provides: bundled(libpng) = ${PNG_VERSION}"
echo "# Version in ${ZLIB}"
echo "Provides: bundled(zlib) = ${ZLIB_VERSION}"
# Local Variables:
# compile-command: "shellcheck get_bundle_versions.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:
@@ -1 +0,0 @@
# this file is intentionally not here, as portable builds do not have desktop integration
@@ -1,114 +0,0 @@
#!/bin/bash
# Copyright (C) 2024 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
REPO=$3
SUBDIR=$4
SCRIPT_DIR=$(dirname "${0}")
if test "${SUBDIR}" = ""; then
echo "No subdirectory specified; using .";
SUBDIR=".";
fi
if test "$REPO" = ""; then
echo "No repository specified; using ${PWD}"
REPO=${PWD}
fi
if test "${TMPDIR}" = ""; 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 "$OLD_RELEASE" = "" || test "$NEW_RELEASE" = ""; 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 "$TYPE" = "hg"; then
hg log -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R "$REPO/$repos" -G -M "${REPO}/${SUBDIR}" | \
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";
hg log -v -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R "$REPO/$repos" -G -M "${REPO}/${SUBDIR}" | \
grep -E '^[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}" |grep -E '^[0-9]{7}' | \
sed -r 's#^([0-9])# - JDK-\1#' >> "${TMPDIR}/fixes2";
touch "${TMPDIR}/fixes3" ; # unused
fi
done
sort "${TMPDIR}/fixes2" "${TMPDIR}/fixes3" > "${TMPDIR}/fixes4"
uniq "${TMPDIR}/fixes4" > "${TMPDIR}/fixes"
rm -f "${TMPDIR}/fixes2" "${TMPDIR}/fixes3"
if ! [ -s "${TMPDIR}/fixes" ] ; then
echo "Failed to obtain fixes.";
exit 3;
fi
echo "In ${TMPDIR}/fixes:"
cat "${TMPDIR}/fixes"
printf "\nChecking for duplicates...";
if uniq -d "${TMPDIR}/fixes4" | grep 'JDK' > "${TMPDIR}/dupes"; then
printf "found.\nWARNING: Review the following duplicates:\n";
cat "${TMPDIR}/dupes";
else
echo "No apparent duplicates.";
fi
rm -f "${TMPDIR}/fixes4";
printf "\nChecking for backouts...";
if grep -i 'backout' "${TMPDIR}/fixes" > "${TMPDIR}/backouts"; then
printf "found.\nWARNING: Review the following backouts:\n"
cat "${TMPDIR}/backouts";
else
echo "No apparent backouts.";
fi
printf "\nChecking for bundled library updates...";
if grep -iE ':( \(tz\))? (update|upgrade).*(freetype|gif|harfbuzz|lcms|jpeg|png|timezone|zlib)' "${TMPDIR}/fixes" > "${TMPDIR}/bundles"; then
printf "found.\nWARNING: Review the following with respect to bundled provides:\n";
cat "${TMPDIR}/bundles";
echo "Compare the output of $(dirname "${0}")/get_bundle_versions.sh with the RPM using the JDK source tree"
else
echo "No apparent library updates.";
fi
# Local Variables:
# compile-command: "shellcheck openjdk_news.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "bitsandbytes.spec"
}
}
@@ -1,49 +0,0 @@
%global pypi_name bitsandbytes
%global _desc Accessible large language models via k-bit quantization for PyTorch.
Name: python-%{pypi_name}
Version: 0.49.2
Release: 1%{?dist}
Summary: Accessible large language models via k-bit quantization for PyTorch
License: MIT
URL: https://huggingface.co/docs/bitsandbytes/main/en/index
Source0: https://github.com/bitsandbytes-foundation/bitsandbytes/archive/refs/tags/%{version}.tar.gz
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-scikit-build-core
BuildRequires: python3-pip
BuildRequires: python3-hatchling
BuildRequires: python3-wheel
BuildRequires: python3-cmake
BuildRequires: gcc-c++
Packager: Owen Zimmerman <owen@fyralabs.com>
%description
%_desc
%package -n python3-%{pypi_name}
Summary: %{summary}
%{?python_provide:%python_provide python3-%{pypi_name}}
%description -n python3-%{pypi_name}
%_desc
%prep
%autosetup -n %{pypi_name}-%{version}
%build
%pyproject_wheel
%install
%pyproject_install
%pyproject_save_files %{pypi_name}
%files -n python3-%{pypi_name} -f %{pyproject_files}
%doc README.md CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md
%license LICENSE
%changelog
* Tue May 05 2026 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
@@ -1 +0,0 @@
rpm.version(pypi("bitsandbytes"));
@@ -1,21 +1,23 @@
%global pypi_name dataclasses-json
%global _desc Easily serialize Data Classes to and from JSON.
%define _python_dist_allow_version_zero %{nil}
Name: python-%{pypi_name}
Version: 0.6.7
Release: 1%{?dist}
Release: 1%?dist
Summary: Easily serialize Data Classes to and from JSON
License: MIT
URL: https://github.com/lidatong/dataclasses-json
Source0: %{url}/archive/refs/tags/v%{version}.tar.gz
Source0: %url/archive/refs/tags/v%version.tar.gz
BuildArch: noarch
BuildRequires: python3-devel
BuildRequires: python3-build
BuildRequires: python3-pip
BuildRequires: python3-poetry-core
BuildRequires: python3-poetry-dynamic-versioning
BuildRequires: python3-pyproject-metadata
Requires: python3-marshmallow
Requires: python3-typing-inspect
Packager: Owen Zimmerman <owen@fyralabs.com>
@@ -29,8 +31,15 @@ Summary: %{summary}
%description -n python3-%{pypi_name}
%_desc
%package -n python3-%{pypi_name}-doc
Summary: documentation for python3-%{pypi_name}
%description -n python3-%{pypi_name}-doc
documentation for python3-%{pypi_name}.
%prep
%git_clone %{url}.git v%{version}
%autosetup -n dataclasses-json-%{version}
sed -i '/\[tool.poetry-dynamic-versioning\]/,+1d' pyproject.toml
%build
%pyproject_wheel
@@ -44,8 +53,5 @@ Summary: %{summary}
%license LICENSE
%changelog
* Mon May 04 2026 Owen Zimmerman <owen@fyralabs.com>
- Switch to git source, clean up spec
* Wed Jan 07 2026 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
-6
View File
@@ -1,6 +0,0 @@
project pkg {
arches = ["x86_64"]
rpm {
spec = "dirsync.spec"
}
}
-46
View File
@@ -1,46 +0,0 @@
%global pypi_name dirsync
%global _desc Advanced directory tree synchronisation tool.
Name: python-%{pypi_name}
Version: 2.2.6
Release: 1%{?dist}
Summary: Advanced directory tree synchronisation tool
License: MIT
URL: https://github.com/domdfcoding/deprecation-alias
Source0: %{pypi_source}
BuildRequires: python3-devel
BuildRequires: python3-pip
BuildRequires: python3-setuptools
BuildArch: noarch
Packager: Owen Zimmerman <owen@fyralabs.com>
%description
%_desc
%package -n python3-%{pypi_name}
Summary: %{summary}
%{?python_provide:%python_provide python3-%{pypi_name}}
%description -n python3-%{pypi_name}
%_desc
%prep
%autosetup -n %{pypi_name}-%{version}
%build
%pyproject_wheel
%install
%pyproject_install
%pyproject_save_files %{pypi_name}
%files -n python3-%{pypi_name} -f %{pyproject_files}
%doc README.rst
%license LICENSE.txt
%{_bindir}/%{pypi_name}
%changelog
* Mon May 04 2026 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
-1
View File
@@ -1 +0,0 @@
rpm.version(pypi("dirsync"));
@@ -14,7 +14,7 @@ Source0: %url/archive/refs/tags/v%version.tar.gz
BuildRequires: python3-devel
BuildRequires: python3-pip
BuildRequires: python3-setuptools
BuildRequires: java-latest-openjdk-devel
BuildRequires: java-21-openjdk-devel
Packager: Owen Zimmerman <owen@fyralabs.com>
@@ -2,8 +2,8 @@
%global _desc Python API Client for Jellyfin.
Name: python-%{pypi_name}
Version: 1.12.0
Release: 1%{?dist}
Version: 1.11.0
Release: 1%?dist
Summary: Python API Client for Jellyfin
License: GPL-3.0
URL: https://github.com/jellyfin/jellyfin-apiclient-python
@@ -2,7 +2,7 @@
%global _desc get things from one computer to another, safely.
Name: python-%{pypi_name}
Version: 0.24.0
Version: 0.23.0
Release: 1%{?dist}
Summary: get things from one computer to another, safely
License: MIT
+2 -3
View File
@@ -2,13 +2,12 @@
Name: python-%{pypi_name}
Version: 0.65.1
Release: 2%{?dist}
Release: 1%{?dist}
Summary: NumPy aware dynamic Python compiler using LLVM
License: BSD-2-Clause AND MIT AND BSD-3-Clause
URL: https://numba.pydata.org
# PyPi source does not include all files
Source0: https://github.com/numba/numba/archive/refs/tags/%version.tar.gz
Patch0: remove-llvmlite-version-req.patch
# This package is intentionally not noarch
BuildRequires: python3-devel
@@ -37,7 +36,7 @@ Numba is an open source, NumPy-aware optimizing compiler for Python sponsored by
Numba can compile a large subset of numerically-focused Python, including many NumPy functions. Additionally, Numba has support for automatic parallelization of loops, generation of GPU-accelerated code, and creation of ufuncs and C callbacks.
%prep
%autosetup -n numba-%{version} -p1
%autosetup -n numba-%{version}
%build
%pyproject_wheel
@@ -1,13 +0,0 @@
diff --git a/setup.py b/setup.py
index 282b8f42e..24c865f0a 100644
--- a/setup.py
+++ b/setup.py
@@ -24,7 +24,7 @@ max_python_version = "3.15" # exclusive
min_numpy_build_version = "2.0.0rc1"
min_numpy_run_version = "1.22"
max_numpy_run_version = "2.5"
-min_llvmlite_version = "0.47.0dev0"
+min_llvmlite_version = "0.44"
max_llvmlite_version = "0.48"
if sys.platform.startswith('linux'):
@@ -1,6 +0,0 @@
project pkg {
arches = ["x86_64"]
rpm {
spec = "open-unmix-pytorch.spec"
}
}

Some files were not shown because too many files have changed in this diff Show More