diff --git a/anda/apps/anki-bin/anda.hcl b/anda/apps/anki-bin/anda.hcl index 3398b0b813..6df0e27da9 100644 --- a/anda/apps/anki-bin/anda.hcl +++ b/anda/apps/anki-bin/anda.hcl @@ -3,4 +3,7 @@ project pkg { rpm { spec = "anki-bin.spec" } + labels { + subrepo = "extras" + } } diff --git a/anda/apps/anki-qt5/anki-qt5.spec b/anda/apps/anki-qt5/anki-qt5.spec index 4b6992eed3..15d5bb5248 100644 --- a/anda/apps/anki-qt5/anki-qt5.spec +++ b/anda/apps/anki-qt5/anki-qt5.spec @@ -1,5 +1,5 @@ Name: anki-qt5 -Version: 24.06.3 +Version: 25.02 Release: 1%?dist Summary: Flashcard program for using space repetition learning License: AGPL-3.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND BSD-3-Clause AND CC-BY-SA-3.0 AND CC-BY-3.0 AND Apache-2.0 AND CC-BY-2.5 diff --git a/anda/apps/anki/anda.hcl b/anda/apps/anki/anda.hcl index 7da31b7cbe..049c80465a 100644 --- a/anda/apps/anki/anda.hcl +++ b/anda/apps/anki/anda.hcl @@ -3,4 +3,7 @@ project pkg { rpm { spec = "anki.spec" } + labels { + subrepo = "extras" + } } diff --git a/anda/apps/anki/anki.spec b/anda/apps/anki/anki.spec index 2c55d93e9a..64193322c7 100644 --- a/anda/apps/anki/anki.spec +++ b/anda/apps/anki/anki.spec @@ -1,6 +1,6 @@ Name: anki -Version: 24.06.3 -Release: 2%?dist +Version: 25.02 +Release: 1%?dist Summary: Flashcard program for using space repetition learning License: AGPL-3.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND BSD-3-Clause AND CC-BY-SA-3.0 AND CC-BY-3.0 AND Apache-2.0 AND CC-BY-2.5 URL: https://apps.ankiweb.net/ @@ -9,7 +9,7 @@ BuildRequires: python3-distro python3-flask-cors python3-jsonschema python3-sen BuildRequires: python3-installer make mold cargo git rsync ninja-build libxcrypt-compat nodejs python3.9 python-unversioned-command gcc python3-pyqt6-webengine Requires: hicolor-icon-theme python3-sqlalchemy python3-simplejson python3-matplotlib python3-decorator python3-markdown python3-send2trash Requires: python3-requests python3-pygame python3-beautifulsoup4 python3-httplib2 python3-pyaudio python3-jsonschema sox libxcrypt-compat python3-pyqt6-webengine -Recommends: mpv +Recommends: (mpv or mpv-nightly) Obsoletes: anki <= 2.1.15 Conflicts: anki-qt5 Patch0: 0001-No-update.patch diff --git a/anda/apps/armcord-bin/anda.hcl b/anda/apps/armcord-bin/anda.hcl deleted file mode 100644 index 49e068d947..0000000000 --- a/anda/apps/armcord-bin/anda.hcl +++ /dev/null @@ -1,5 +0,0 @@ -project pkg { - rpm { - spec = "armcord-bin.spec" - } -} diff --git a/anda/apps/armcord-bin/armcord-bin.spec b/anda/apps/armcord-bin/armcord-bin.spec deleted file mode 100644 index ea732568ec..0000000000 --- a/anda/apps/armcord-bin/armcord-bin.spec +++ /dev/null @@ -1,78 +0,0 @@ -%define debug_package %nil -%global _build_id_links none - -%ifarch x86_64 -%global src ArmCord-%version-linux-x64 -%elifarch aarch64 -%global src ArmCord-%version-linux-arm64 -%elifarch armv7l -%global src ArmCord-%version-linux-armv7l -%endif - -# Exclude private libraries -%global __requires_exclude libffmpeg.so -%global __provides_exclude_from %{_datadir}/armcord/.*\\.so - -Name: armcord-bin -Version: 3.3.1 -Release: 1%?dist -License: OSL-3.0 -Summary: Custom lightweight Discord client designed to enhance your experience -URL: https://github.com/ArmCord/ArmCord -Group: Applications/Internet -Source0: %url/releases/download/v%version/%src.tar.gz -Source1: armcord.png -Source2: https://raw.githubusercontent.com/ArmCord/ArmCord/v%version/README.md -Requires: electron xdg-utils -ExclusiveArch: x86_64 aarch64 armv7l -Conflicts: armcord -BuildRequires: add-determinism - -%description -ArmCord is a custom client designed to enhance your Discord experience -while keeping everything lightweight. - -%prep -%autosetup -n %src - -cat < .armcord.desktop -[Desktop Entry] -Name=ArmCord -Comment=%summary -GenericName=Internet Messenger -Type=Application -Exec=%_bindir/armcord -Icon=armcord -Categories=Network;InstantMessaging; -StartupWMClass=armcord -Keywords=discord;armcord;vencord;shelter;electron; -EOF - -%build - -%install -mkdir -p %buildroot%_bindir %buildroot%_datadir/applications %buildroot%_datadir/pixmaps %buildroot%_datadir/armcord %buildroot%_docdir/%name -cp -a * %buildroot%_datadir/armcord/ -ln -s %_datadir/armcord/armcord %buildroot%_bindir/armcord -chmod +x -R %buildroot%_datadir/armcord/* -chmod 755 %buildroot%_datadir/armcord/armcord -install -Dm644 .armcord.desktop %buildroot%_datadir/applications/ArmCord.desktop -install -Dm644 %SOURCE1 %buildroot%_datadir/pixmaps/armcord.png -install -Dm644 %SOURCE2 %buildroot%_docdir/%name/ - -%files -%doc README.md -%_datadir/armcord -%_bindir/armcord -%_datadir/applications/ArmCord.desktop -%_datadir/pixmaps/armcord.png - -%changelog -* Sat Jun 17 2023 windowsboy111 - 3.2.0-2 -- Remove libnotify dependency. -- Fix desktop entry. -- Set as noarch package because there are not binary files. -- Use /usr/share/ instead of /opt/ - -* Sat May 6 2023 windowsboy111 - 3.1.7-1 -- Initial package diff --git a/anda/apps/armcord-bin/update.rhai b/anda/apps/armcord-bin/update.rhai deleted file mode 100644 index 8c39d434da..0000000000 --- a/anda/apps/armcord-bin/update.rhai +++ /dev/null @@ -1 +0,0 @@ -rpm.version(gh("ArmCord/ArmCord")); diff --git a/anda/apps/armcord/armcord.spec b/anda/apps/armcord/armcord.spec deleted file mode 100644 index 4284252016..0000000000 --- a/anda/apps/armcord/armcord.spec +++ /dev/null @@ -1,70 +0,0 @@ -%define debug_package %nil - -Name: armcord -Version: 3.3.1 -Release: 1%?dist -License: OSL-3.0 -Summary: Custom lightweight Discord client designed to enhance your experience -URL: https://github.com/ArmCord/ArmCord -Group: Applications/Internet -Source1: launch.sh -Packager: madonuko -Requires: electron xdg-utils -BuildRequires: git-core add-determinism pnpm -Conflicts: armcord-bin -BuildArch: noarch - -%description -ArmCord is a custom client designed to enhance your Discord experience -while keeping everything lightweight. - -%prep -rm -rf * -git clone %url . -git checkout v%version - -cat < armcord.desktop -[Desktop Entry] -Name=ArmCord -Comment=%summary -GenericName=Internet Messenger -Type=Application -Exec=/usr/bin/armcord -Icon=armcord -Categories=Network;InstantMessaging; -StartupWMClass=armcord -Keywords=discord;armcord;vencord;shelter;electron; -EOF - - -%build -pnpm install --no-frozen-lockfile -pnpm run packageQuick - - -%install -install -Dm644 dist/*-unpacked/resources/app.asar %buildroot/usr/share/armcord/app.asar - -install -Dm755 %SOURCE1 %buildroot/usr/bin/armcord -install -Dm644 armcord.desktop %buildroot/usr/share/applications/ArmCord.desktop -install -Dm644 build/icon.png %buildroot/usr/share/pixmaps/armcord.png - -%files -%doc README.md -%license license.txt -/usr/bin/armcord -/usr/share/applications/ArmCord.desktop -/usr/share/pixmaps/armcord.png -/usr/share/armcord/app.asar - -%changelog -* Mon Aug 26 2024 madonuko - 3.3.0-1 -- Update to license.txt - -* Sat Jun 17 2023 windowsboy111 - 3.2.0-2 -- Remove libnotify dependency. -- Fix desktop entry. -- Set as noarch package because there are not binary files. - -* Sat May 6 2023 windowsboy111 - 3.1.7-1 -- Initial package diff --git a/anda/apps/armcord/update.rhai b/anda/apps/armcord/update.rhai deleted file mode 100644 index 8c39d434da..0000000000 --- a/anda/apps/armcord/update.rhai +++ /dev/null @@ -1 +0,0 @@ -rpm.version(gh("ArmCord/ArmCord")); diff --git a/anda/apps/audacity-freeworld/audacity-freeworld.spec b/anda/apps/audacity-freeworld/audacity-freeworld.spec index 154c6863d8..e81def5049 100644 --- a/anda/apps/audacity-freeworld/audacity-freeworld.spec +++ b/anda/apps/audacity-freeworld/audacity-freeworld.spec @@ -2,8 +2,8 @@ %global __provides_exclude ^lib-.*.so Name: audacity-freeworld -Version: 3.7.1 -Release: 1%{?dist} +Version: Audacity.3.7.1 +Release: 1%?dist Summary: Multitrack audio editor License: GPLv2 URL: https://www.audacityteam.org/ diff --git a/anda/apps/coolercontrol/coolercontrol.spec b/anda/apps/coolercontrol/coolercontrol.spec index eab177054a..f2a3731032 100644 --- a/anda/apps/coolercontrol/coolercontrol.spec +++ b/anda/apps/coolercontrol/coolercontrol.spec @@ -8,7 +8,7 @@ for background device management, as well as a GUI to expertly customize your se %global __brp_mangle_shebangs %{nil} Name: coolercontrol -Version: 1.4.0 +Version: 1.4.5 Release: 1%?dist Summary: Cooling device control for Linux License: GPL-3.0-or-later diff --git a/anda/apps/discord-canary-openasar/discord-canary-openasar.spec b/anda/apps/discord-canary-openasar/discord-canary-openasar.spec index f97f3db530..02834d0064 100644 --- a/anda/apps/discord-canary-openasar/discord-canary-openasar.spec +++ b/anda/apps/discord-canary-openasar/discord-canary-openasar.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-canary-openasar -Version: 0.0.483 +Version: 0.0.589 Release: 1%?dist Summary: A snappier Discord rewrite with features like further customization and theming License: MIT AND https://discord.com/terms diff --git a/anda/apps/discord-canary-openasar/update.rhai b/anda/apps/discord-canary-openasar/update.rhai index d96b864947..6e1acb4a20 100644 --- a/anda/apps/discord-canary-openasar/update.rhai +++ b/anda/apps/discord-canary-openasar/update.rhai @@ -1,3 +1 @@ -let html = get("https://discordapp.com/api/download/canary?platform=linux&format=tar.gz"); -let newver = find("https://dl-canary\\.discordapp\\.net/apps/linux/([\\.\\d]+)/", html, 1); -rpm.version(newver); +rpm.version(get("https://discord.com/api/canary/updates?platform=linux").json().name); diff --git a/anda/apps/discord-canary/discord-canary.spec b/anda/apps/discord-canary/discord-canary.spec index 8bd5933727..b57dd0453b 100644 --- a/anda/apps/discord-canary/discord-canary.spec +++ b/anda/apps/discord-canary/discord-canary.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-canary -Version: 0.0.483 +Version: 0.0.589 Release: 1%?dist Summary: Free Voice and Text Chat for Gamers URL: discord.com diff --git a/anda/apps/discord-canary/update.rhai b/anda/apps/discord-canary/update.rhai index d96b864947..6e1acb4a20 100644 --- a/anda/apps/discord-canary/update.rhai +++ b/anda/apps/discord-canary/update.rhai @@ -1,3 +1 @@ -let html = get("https://discordapp.com/api/download/canary?platform=linux&format=tar.gz"); -let newver = find("https://dl-canary\\.discordapp\\.net/apps/linux/([\\.\\d]+)/", html, 1); -rpm.version(newver); +rpm.version(get("https://discord.com/api/canary/updates?platform=linux").json().name); diff --git a/anda/apps/discord-openasar/discord-openasar.spec b/anda/apps/discord-openasar/discord-openasar.spec index 077708c7cd..5d4add390f 100644 --- a/anda/apps/discord-openasar/discord-openasar.spec +++ b/anda/apps/discord-openasar/discord-openasar.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-openasar -Version: 0.0.68 +Version: 0.0.85 Release: 1%?dist Summary: A snappier Discord rewrite with features like further customization and theming License: MIT AND https://discord.com/terms diff --git a/anda/apps/discord-openasar/update.rhai b/anda/apps/discord-openasar/update.rhai index cabf84bbc9..308265df4b 100644 --- a/anda/apps/discord-openasar/update.rhai +++ b/anda/apps/discord-openasar/update.rhai @@ -1,3 +1 @@ -let html = get("https://discordapp.com/api/download?platform=linux&format=tar.gz"); -let newver = find("https://dl\\.discordapp\\.net/apps/linux/([\\.\\d]+)/", html, 1); -rpm.version(newver); +rpm.version(get("https://discord.com/api/stable/updates?platform=linux").json().name); diff --git a/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec b/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec index 8748d7a937..5079f322a2 100644 --- a/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec +++ b/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-ptb-openasar -Version: 0.0.103 +Version: 0.0.130 Release: 1%?dist Summary: A snappier Discord rewrite with features like further customization and theming License: MIT AND https://discord.com/terms diff --git a/anda/apps/discord-ptb-openasar/update.rhai b/anda/apps/discord-ptb-openasar/update.rhai index 32e9b4a735..366238f22b 100644 --- a/anda/apps/discord-ptb-openasar/update.rhai +++ b/anda/apps/discord-ptb-openasar/update.rhai @@ -1,3 +1 @@ -let html = get("https://discordapp.com/api/download/ptb?platform=linux&format=tar.gz"); -let newver = find("https://dl-ptb\\.discordapp\\.net/apps/linux/([\\.\\d]+)/", html, 1); -rpm.version(newver); +rpm.version(get("https://discord.com/api/ptb/updates?platform=linux").json().name); diff --git a/anda/apps/discord-ptb/discord-ptb.spec b/anda/apps/discord-ptb/discord-ptb.spec index 509952f25a..092a9b716e 100644 --- a/anda/apps/discord-ptb/discord-ptb.spec +++ b/anda/apps/discord-ptb/discord-ptb.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-ptb -Version: 0.0.103 +Version: 0.0.130 Release: 1%?dist Summary: Free Voice and Text Chat for Gamers. URL: https://discord.com diff --git a/anda/apps/discord-ptb/update.rhai b/anda/apps/discord-ptb/update.rhai index 32e9b4a735..366238f22b 100644 --- a/anda/apps/discord-ptb/update.rhai +++ b/anda/apps/discord-ptb/update.rhai @@ -1,3 +1 @@ -let html = get("https://discordapp.com/api/download/ptb?platform=linux&format=tar.gz"); -let newver = find("https://dl-ptb\\.discordapp\\.net/apps/linux/([\\.\\d]+)/", html, 1); -rpm.version(newver); +rpm.version(get("https://discord.com/api/ptb/updates?platform=linux").json().name); diff --git a/anda/apps/discord/discord.spec b/anda/apps/discord/discord.spec index c6407900e9..f21d55dfbf 100644 --- a/anda/apps/discord/discord.spec +++ b/anda/apps/discord/discord.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord -Version: 0.0.68 +Version: 0.0.85 Release: 1%?dist Summary: Free Voice and Text Chat for Gamers URL: https://discord.com diff --git a/anda/apps/discord/update.rhai b/anda/apps/discord/update.rhai index cabf84bbc9..308265df4b 100644 --- a/anda/apps/discord/update.rhai +++ b/anda/apps/discord/update.rhai @@ -1,3 +1 @@ -let html = get("https://discordapp.com/api/download?platform=linux&format=tar.gz"); -let newver = find("https://dl\\.discordapp\\.net/apps/linux/([\\.\\d]+)/", html, 1); -rpm.version(newver); +rpm.version(get("https://discord.com/api/stable/updates?platform=linux").json().name); diff --git a/anda/apps/envision/envision.spec b/anda/apps/envision/envision.spec index fae38f1b21..1ff9b5c4f0 100644 --- a/anda/apps/envision/envision.spec +++ b/anda/apps/envision/envision.spec @@ -1,8 +1,8 @@ -%global commit f8a18e96f049f2fd51409aac011e1aa09eaac2db -%global commit_date 20240910 +%global commit 3680e305a9824f851a441bc96fc7654ef849b01a +%global commit_date 20250127 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -Name: envision +Name: envision-nightly Version: %commit_date.%shortcommit Release: 1%?dist Summary: UI for building, configuring and running Monado, the open source OpenXR runtime @@ -23,6 +23,7 @@ BuildRequires: desktop-file-utils BuildRequires: glib2-devel BuildRequires: git-core Recommends: android-tools +Conflicts: envision %description %summary. diff --git a/anda/apps/feishin/feishin.spec b/anda/apps/feishin/feishin.spec index ac23b5782b..69ed74022c 100644 --- a/anda/apps/feishin/feishin.spec +++ b/anda/apps/feishin/feishin.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: feishin -Version: 0.8.1 +Version: 0.12.2 Release: 1%?dist Summary: A modern self-hosted music player License: GPL-3.0 diff --git a/anda/apps/fontviewer/fontviewer.spec b/anda/apps/fontviewer/fontviewer.spec index 5719d7f62b..e54b93a5c1 100644 --- a/anda/apps/fontviewer/fontviewer.spec +++ b/anda/apps/fontviewer/fontviewer.spec @@ -1,23 +1,19 @@ -%global commit f215a218d8145cb86d50fc7a8dd81563fff83955 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20241217 - Name: fontviewer -Version: %{commit_date}.git~%{shortcommit} +Epoch: 1 +Version: 1.1.0 Release: 1%?dist Summary: View and install fonts License: GPL-2.0 URL: https://github.com/chocolateimage/%{name} -Source0: %{url}/archive/%{commit}.tar.gz +Source0: %{url}/archive/v%{version}.tar.gz BuildRequires: gcc-c++ BuildRequires: meson -BuildRequires: pkgconfig(cairomm-1.0) BuildRequires: pkgconfig(fontconfig) -BuildRequires: pkgconfig(freetype2) -BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(gtkmm-3.0) +BuildRequires: pkgconfig(libcurl) +BuildRequires: json-glib-devel Requires: gtk3 fontconfig @@ -27,7 +23,7 @@ Packager: sadlerm A platform-agnostic GTK+ 3 alternative to GNOME's Font Viewer %prep -%autosetup -n %{name}-%{commit} -p1 +%autosetup %build %meson @@ -41,3 +37,4 @@ A platform-agnostic GTK+ 3 alternative to GNOME's Font Viewer %doc README.md %{_bindir}/%{name} %{_datadir}/applications/%{name}.desktop +%{_datadir}/icons/hicolor/scalable/actions/%{name}-google-symbolic.svg diff --git a/anda/apps/fontviewer/update.rhai b/anda/apps/fontviewer/update.rhai index f71e0e4f15..ecea421601 100644 --- a/anda/apps/fontviewer/update.rhai +++ b/anda/apps/fontviewer/update.rhai @@ -1,5 +1,4 @@ -rpm.global("commit", gh_commit("chocolateimage/fontviewer")); +rpm.version(gh("chocolateimage/fontviewer")); if rpm.changed() { - rpm.release(); - rpm.global("commit_date", date()); + rpm.release(); } diff --git a/anda/apps/komikku/komikku.spec b/anda/apps/komikku/komikku.spec index 8faa99da92..dc0ee38d4f 100644 --- a/anda/apps/komikku/komikku.spec +++ b/anda/apps/komikku/komikku.spec @@ -5,7 +5,7 @@ %global pure_protobuf_version 2.0.0 Name: komikku -Version: 1.57.0 +Version: 1.70.0 %forgemeta Release: 1%?dist Summary: A manga reader for GNOME diff --git a/anda/apps/legcord/legcord-bin/anda.hcl b/anda/apps/legcord/legcord-bin/anda.hcl new file mode 100644 index 0000000000..5c31d7cdce --- /dev/null +++ b/anda/apps/legcord/legcord-bin/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "legcord-bin.spec" + } +} diff --git a/anda/apps/legcord/legcord-bin/legcord-bin.spec b/anda/apps/legcord/legcord-bin/legcord-bin.spec new file mode 100644 index 0000000000..9881aa2cb3 --- /dev/null +++ b/anda/apps/legcord/legcord-bin/legcord-bin.spec @@ -0,0 +1,96 @@ +%define debug_package %nil +%global _build_id_links none + +%ifarch x86_64 +%global src LegCord-%version-linux-x64 +%elifarch aarch64 +%global src LegCord-%version-linux-arm64 +%elifarch armv7l +%global src LegCord-%version-linux-armv7l +%endif + +# Exclude private libraries +%global __requires_exclude libffmpeg.so +%global __provides_exclude_from %{_datadir}/(armcord|legcord)/.*\\.so + +Name: legcord-bin +Version: 1.1.0 +Release: 1%?dist +License: OSL-3.0 +Summary: Custom lightweight Discord client designed to enhance your experience +URL: https://github.com/LegCord/LegCord +Group: Applications/Internet +Source0: %url/releases/download/v%version/%src.zip +Source1: legcord.png +Source2: https://raw.githubusercontent.com/LegCord/LegCord/v%version/README.md +Requires: xdg-utils +BuildRequires: unzip +ExclusiveArch: x86_64 aarch64 armv7l +Conflicts: legcord +Conflicts: legcord-nightly +BuildRequires: add-determinism +Obsoletes: armcord < 3.3.2-1 + +%description +LegCord is a custom client designed to enhance your Discord experience +while keeping everything lightweight. + +%prep +mkdir legcord +cd legcord +unzip %SOURCE0 + +cat < .legcord.desktop +[Desktop Entry] +Name=LegCord +Comment=%summary +GenericName=Internet Messenger +Type=Application +Exec=%_bindir/legcord +Icon=legcord +Categories=Network;InstantMessaging; +StartupWMClass=legcord +Keywords=discord;armcord;legcord;vencord;shelter;electron; +EOF + +%build + +%install +cd legcord +mkdir -p %buildroot%_bindir %buildroot%_datadir/applications %buildroot%_datadir/pixmaps %buildroot%_datadir/legcord %buildroot%_docdir/%name +cp -a * %buildroot%_datadir/legcord/ +ln -s %_datadir/legcord/legcord %buildroot%_bindir/legcord +ln -s %_datadir/legcord %buildroot%_datadir/armcord +chmod +x -R %buildroot%_datadir/legcord/* +chmod 755 %buildroot%_datadir/legcord/legcord +install -Dm644 .legcord.desktop %buildroot%_datadir/applications/LegCord.desktop +install -Dm644 %SOURCE1 %buildroot%_datadir/pixmaps/legcord.png +install -Dm644 %SOURCE2 %buildroot%_docdir/%name/ + +# HACK: rpm bug for unability to replace existing files on system. +%pre +if [ -d %_datadir/armcord ] && [ ! -L %_datadir/armcord ]; then + echo "Found old %_datadir/armcord directory, removing…" + rm -rf %_datadir/armcord +fi + +%files +%doc README.md +%_datadir/legcord +%_datadir/armcord +%_bindir/legcord +%_datadir/applications/LegCord.desktop +%_datadir/pixmaps/legcord.png + +%changelog +* Mon Oct 21 2024 madonuko - 1.0.2-2 +- Rename to LegCord. + +* Sat Jun 17 2023 madonuko - 3.2.0-2 +- Remove libnotify dependency. +- Fix desktop entry. +- Set as noarch package because there are not binary files. +- Use /usr/share/ instead of /opt/ + +* Sat May 6 2023 madonuko - 3.1.7-1 +- Initial package diff --git a/anda/apps/armcord-bin/armcord.png b/anda/apps/legcord/legcord-bin/legcord.png similarity index 100% rename from anda/apps/armcord-bin/armcord.png rename to anda/apps/legcord/legcord-bin/legcord.png diff --git a/anda/apps/legcord/legcord-bin/update.rhai b/anda/apps/legcord/legcord-bin/update.rhai new file mode 100644 index 0000000000..15bcc4981d --- /dev/null +++ b/anda/apps/legcord/legcord-bin/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("LegCord/LegCord")); diff --git a/anda/apps/legcord/nightly/anda.hcl b/anda/apps/legcord/nightly/anda.hcl new file mode 100644 index 0000000000..819f094492 --- /dev/null +++ b/anda/apps/legcord/nightly/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "legcord-nightly.spec" + } + labels { + nightly = 1 + } +} \ No newline at end of file diff --git a/anda/apps/armcord/launch.sh b/anda/apps/legcord/nightly/launch.sh similarity index 100% rename from anda/apps/armcord/launch.sh rename to anda/apps/legcord/nightly/launch.sh diff --git a/anda/apps/legcord/nightly/legcord-nightly.spec b/anda/apps/legcord/nightly/legcord-nightly.spec new file mode 100644 index 0000000000..369392ea4f --- /dev/null +++ b/anda/apps/legcord/nightly/legcord-nightly.spec @@ -0,0 +1,91 @@ +%global commit 07451f0d7e110cf6d31d0e32abedcefcff256d78 +%global commit_date 20250213 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%define debug_package %nil + +Name: legcord-nightly +Version: %commit_date.%shortcommit +Release: 1%?dist +License: OSL-3.0 +Summary: Custom lightweight Discord client designed to enhance your experience +URL: https://github.com/LegCord/LegCord +Group: Applications/Internet +Source0: %url/archive/%commit/legcord-%commit.tar.gz +Source1: launch.sh +Packager: Owen +Requires: electron xdg-utils +Provides: armcord-nightly +Obsoletes: armcord < 3.3.2-1 +Conflicts: legcord-bin +Conflicts: legcord +BuildArch: noarch +BuildRequires: anda-srpm-macros pnpm + +%description +legcord is a custom client designed to enhance your Discord experience +while keeping everything lightweight. + +%prep +%autosetup -n Legcord-%commit + +cat < legcord.desktop +[Desktop Entry] +Name=LegCord +Comment=%summary +GenericName=Internet Messenger +Type=Application +Exec=/usr/bin/legcord +Icon=legcord +Categories=Network;InstantMessaging; +StartupWMClass=legcord +Keywords=discord;armcord;legcord;vencord;shelter;electron; +EOF + + +%build +pnpm install --no-frozen-lockfile +pnpm run packageQuick + + +%install +install -Dm644 dist/*-unpacked/resources/app.asar %buildroot/usr/share/legcord/app.asar + +install -Dm755 %SOURCE1 %buildroot/usr/bin/legcord +install -Dm644 legcord.desktop %buildroot/usr/share/applications/LegCord.desktop +install -Dm644 build/icon.png %buildroot/usr/share/pixmaps/legcord.png + +ln -s %_datadir/legcord %buildroot%_datadir/armcord + +# HACK: rpm bug for unability to replace existing files on system. +%pre +if [ -d %_datadir/armcord ] && [ ! -L %_datadir/armcord ]; then + echo "Found old %_datadir/armcord directory, removing…" + rm -rf %_datadir/armcord +fi + +%files +%doc README.md +%license license.txt +/usr/bin/legcord +/usr/share/applications/LegCord.desktop +/usr/share/pixmaps/legcord.png +/usr/share/legcord/app.asar +/usr/share/armcord + +%changelog +* Fri Nov 22 2024 owen - 1.0.2-2 +- Add nightly package. + +* Mon Oct 21 2024 madonuko - 1.0.2-2 +- Rename to LegCord. + +* Mon Aug 26 2024 madonuko - 3.3.0-1 +- Update to license.txt + +* Sat Jun 17 2023 windowsboy111 - 3.2.0-2 +- Remove libnotify dependency. +- Fix desktop entry. +- Set as noarch package because there are not binary files. + +* Sat May 6 2023 windowsboy111 - 3.1.7-1 +- Initial package diff --git a/anda/apps/legcord/nightly/update.rhai b/anda/apps/legcord/nightly/update.rhai new file mode 100644 index 0000000000..45072b3c15 --- /dev/null +++ b/anda/apps/legcord/nightly/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("Legcord/Legcord")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} \ No newline at end of file diff --git a/anda/apps/armcord/anda.hcl b/anda/apps/legcord/stable/anda.hcl similarity index 66% rename from anda/apps/armcord/anda.hcl rename to anda/apps/legcord/stable/anda.hcl index 00e296d1b8..a60a7c45fd 100644 --- a/anda/apps/armcord/anda.hcl +++ b/anda/apps/legcord/stable/anda.hcl @@ -1,6 +1,6 @@ project pkg { arches = ["x86_64"] rpm { - spec = "armcord.spec" + spec = "legcord.spec" } } diff --git a/anda/apps/legcord/stable/launch.sh b/anda/apps/legcord/stable/launch.sh new file mode 100644 index 0000000000..3ce4e0c829 --- /dev/null +++ b/anda/apps/legcord/stable/launch.sh @@ -0,0 +1,13 @@ +#!/bin/sh +electron=/usr/bin/electron + +CONFIG=${XDG_CONFIG_HOME:-~/.config} +FLAGS="$CONFIG/armcord-flags.conf" + +# Allow users to override command-line options +if [ -f "$FLAGS" ]; then + USER_FLAGS="$(cat "$FLAGS")" +fi + +# shellcheck disable=SC2086 # USER_FLAGS has to be unquoted +"$electron" /usr/share/armcord/app.asar $USER_FLAGS "$@" diff --git a/anda/apps/legcord/stable/legcord.spec b/anda/apps/legcord/stable/legcord.spec new file mode 100644 index 0000000000..51d72a7e46 --- /dev/null +++ b/anda/apps/legcord/stable/legcord.spec @@ -0,0 +1,88 @@ +%define debug_package %nil + +# Exclude private libraries +%global __requires_exclude libffmpeg.so +%global __provides_exclude_from %{_datadir}/(armcord|legcord)/.*\\.so + +Name: legcord +Version: 1.1.0 +Release: 1%?dist +License: OSL-3.0 +Summary: Custom lightweight Discord client designed to enhance your experience +URL: https://github.com/LegCord/LegCord +Group: Applications/Internet +Source1: launch.sh +Packager: madonuko +Requires: electron xdg-utils +Provides: armcord +Obsoletes: armcord < 3.3.2-1 +Conflicts: legcord-bin +Conflicts: legcord-nightly +BuildArch: noarch +BuildRequires: anda-srpm-macros pnpm + +%description +legcord is a custom client designed to enhance your Discord experience +while keeping everything lightweight. + +%prep +%git_clone %url v%version + +cat < legcord.desktop +[Desktop Entry] +Name=Legcord +Comment=%summary +GenericName=Internet Messenger +Type=Application +Exec=/usr/bin/legcord +Icon=legcord +Categories=Network;InstantMessaging; +StartupWMClass=legcord +Keywords=discord;armcord;legcord;vencord;shelter;electron; +EOF + + +%build +pnpm install --no-frozen-lockfile +pnpm run packageQuick + + +%install +install -Dm644 dist/*-unpacked/resources/app.asar %buildroot/usr/share/legcord/app.asar + +install -Dm755 %SOURCE1 %buildroot/usr/bin/legcord +install -Dm644 legcord.desktop %buildroot/usr/share/applications/LegCord.desktop +install -Dm644 build/icon.png %buildroot/usr/share/pixmaps/legcord.png + +ln -s %_datadir/legcord %buildroot%_datadir/armcord + +# HACK: rpm bug for unability to replace existing files on system. +%pre +if [ -d %_datadir/armcord ] && [ ! -L %_datadir/armcord ]; then + echo "Found old %_datadir/armcord directory, removing…" + rm -rf %_datadir/armcord +fi + +%files +%doc README.md +%license license.txt +/usr/bin/legcord +/usr/share/applications/LegCord.desktop +/usr/share/pixmaps/legcord.png +/usr/share/legcord/app.asar +/usr/share/armcord + +%changelog +* Mon Oct 21 2024 madonuko - 1.0.2-2 +- Rename to LegCord. + +* Mon Aug 26 2024 madonuko - 3.3.0-1 +- Update to license.txt + +* Sat Jun 17 2023 windowsboy111 - 3.2.0-2 +- Remove libnotify dependency. +- Fix desktop entry. +- Set as noarch package because there are not binary files. + +* Sat May 6 2023 windowsboy111 - 3.1.7-1 +- Initial package diff --git a/anda/apps/legcord/stable/update.rhai b/anda/apps/legcord/stable/update.rhai new file mode 100644 index 0000000000..15bcc4981d --- /dev/null +++ b/anda/apps/legcord/stable/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("LegCord/LegCord")); diff --git a/anda/apps/mpv/mpv-nightly.spec b/anda/apps/mpv/mpv-nightly.spec index f2748f2d5e..ef65a97355 100644 --- a/anda/apps/mpv/mpv-nightly.spec +++ b/anda/apps/mpv/mpv-nightly.spec @@ -1,7 +1,7 @@ -%global commit f6d931301bd226239d95f59e3f18abfeab692ee9 +%global commit f7a681b3624fe95bd9b8bcb390f3259481a18532 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240909 -%global ver 0.38.0 +%global commit_date 20250213 +%global ver 0.39.0 Name: mpv-nightly Version: %ver^%commit_date.%shortcommit diff --git a/anda/apps/ruffle/ruffle-nightly.spec b/anda/apps/ruffle/ruffle-nightly.spec index 303c06de80..63b2406ec0 100644 --- a/anda/apps/ruffle/ruffle-nightly.spec +++ b/anda/apps/ruffle/ruffle-nightly.spec @@ -1,4 +1,4 @@ -%global ver 2024-09-10 +%global ver 2025-02-13 %global goodver %(echo %ver | sed 's/-//g') %global __brp_mangle_shebangs %{nil} %bcond_without mold @@ -16,7 +16,7 @@ URL: https://ruffle.rs/ Source0: https://github.com/ruffle-rs/ruffle/archive/refs/tags/nightly-%ver.tar.gz Provides: ruffle BuildRequires: cargo-rpm-macros >= 24 -BuildRequires: anda-srpm-macros +BuildRequires: anda-srpm-macros mold BuildRequires: gcc-c++ cmake java BuildRequires: java-latest-openjdk-headless BuildRequires: pkgconfig(alsa) @@ -32,37 +32,25 @@ Packager: madonuko %license LICENSE.md %license LICENSE.dependencies %_bindir/ruffle_desktop -%_datadir/applications/ruffle_desktop.desktop -%_iconsdir/hicolor/scalable/apps/ruffle_desktop.svg +%_datadir/applications/rs.ruffle.Ruffle.desktop +%_iconsdir/hicolor/scalable/apps/rs.ruffle.Ruffle.svg +%_metainfodir/rs.ruffle.Ruffle.metainfo.xml %prep -%autosetup -n ruffle-nightly-%ver +%autosetup -n ruffle-nightly-%ver -p1 %cargo_prep_online sed -iE 's@^Exec=ruffle %%u$@Exec=ruffle_desktop %%u@' desktop/packages/linux/rs.ruffle.Ruffle.desktop cat desktop/packages/linux/rs.ruffle.Ruffle.desktop -cat< ruffle_desktop.desktop -[Desktop Entry] -Version=1.0 -Type=Application -Name=Ruffle Desktop -Comment=%summary -Exec=%_bindir/ruffle_desktop -Icon=ruffle_desktop -Terminal=false -StartupNotify=false -Categories=Application; -MimeType=application/x-shockwave-flash; -EOF - %build %{cargo_license_online} > LICENSE.dependencies %install cd desktop %cargo_install -install -Dm644 assets/icon.svg %buildroot%_iconsdir/hicolor/scalable/apps/ruffle_desktop.svg -install -Dm644 ../ruffle_desktop.desktop %buildroot%_datadir/applications/ruffle_desktop.desktop +install -Dm644 packages/linux/rs.ruffle.Ruffle.svg %buildroot%_iconsdir/hicolor/scalable/apps/rs.ruffle.Ruffle.svg +install -Dm644 packages/linux/rs.ruffle.Ruffle.desktop %buildroot%_datadir/applications/rs.ruffle.Ruffle.desktop +install -Dm644 packages/linux/rs.ruffle.Ruffle.metainfo.xml %buildroot%_metainfodir/rs.ruffle.Ruffle.metainfo.xml %changelog * Mon Jul 29 2024 madonuko diff --git a/anda/apps/switcheroo-control/0001-main-update-GPUs-comment-for-dbus-property.patch b/anda/apps/switcheroo-control/0001-main-update-GPUs-comment-for-dbus-property.patch new file mode 100644 index 0000000000..825ca07b19 --- /dev/null +++ b/anda/apps/switcheroo-control/0001-main-update-GPUs-comment-for-dbus-property.patch @@ -0,0 +1,27 @@ +From 44046bfbcb30a19c45416113a2a82a4d17a1a998 Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Mon, 14 Aug 2023 14:06:45 +0200 +Subject: [PATCH 01/10] main: update GPUs comment for dbus property + +Signed-off-by: Jan200101 +--- + src/net.hadess.SwitcherooControl.xml | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/net.hadess.SwitcherooControl.xml b/src/net.hadess.SwitcherooControl.xml +index e52bc1a..59a8896 100644 +--- a/src/net.hadess.SwitcherooControl.xml ++++ b/src/net.hadess.SwitcherooControl.xml +@@ -38,7 +38,8 @@ + will contain a user-facing name for the GPU, the "Environment" (as) key will + contain an array of even number of strings, each being an environment + variable to set to use the GPU, followed by its value, the "Default" (b) key +- will tag the default (usually integrated) GPU. ++ will tag the default GPU, the "Discrete" (b) key tags if the GPU is a ++ dedicated component. + --> + + +-- +2.46.0 + diff --git a/anda/apps/switcheroo-control/0002-main-add-Discrete-key.patch b/anda/apps/switcheroo-control/0002-main-add-Discrete-key.patch new file mode 100644 index 0000000000..b67ca67fae --- /dev/null +++ b/anda/apps/switcheroo-control/0002-main-add-Discrete-key.patch @@ -0,0 +1,379 @@ +From 4f31415cb61a50c2bcba1510a7511518417d0970 Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Mon, 11 Sep 2023 15:21:46 +0200 +Subject: [PATCH 02/10] main: add Discrete key + +Signed-off-by: Jan200101 +--- + .gitlab-ci.yml | 1 + + data/30-discrete-gpu.rules.in | 3 + + data/meson.build | 7 ++ + meson.build | 9 +++ + meson_options.txt | 24 +++++++ + src/discrete-detection/amdgpu.c | 46 +++++++++++++ + src/discrete-detection/meson.build | 18 +++++ + src/discrete-detection/nouveau.c | 105 +++++++++++++++++++++++++++++ + src/meson.build | 4 +- + src/switcheroo-control.c | 16 +++++ + 10 files changed, 232 insertions(+), 1 deletion(-) + create mode 100644 data/30-discrete-gpu.rules.in + create mode 100644 src/discrete-detection/amdgpu.c + create mode 100644 src/discrete-detection/meson.build + create mode 100644 src/discrete-detection/nouveau.c + +diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml +index a6aa3c7..a09fe20 100644 +--- a/.gitlab-ci.yml ++++ b/.gitlab-ci.yml +@@ -3,6 +3,7 @@ image: fedora:rawhide + variables: + DEPENDENCIES: glib2-devel + libgudev-devel ++ libdrm-devel + gtk-doc + gcc + gcc-c++ +diff --git a/data/30-discrete-gpu.rules.in b/data/30-discrete-gpu.rules.in +new file mode 100644 +index 0000000..a803ed4 +--- /dev/null ++++ b/data/30-discrete-gpu.rules.in +@@ -0,0 +1,3 @@ ++DRIVERS=="amdgpu", SUBSYSTEM=="drm", PROGRAM="@libexecdir@/check-discrete-amdgpu $env{DEVNAME}", TAG+="switcheroo-discrete-gpu" ++DRIVERS=="nouveau", SUBSYSTEM=="drm", PROGRAM="@libexecdir@/check-discrete-nouveau $env{DEVNAME}", TAG+="switcheroo-discrete-gpu" ++DRIVERS=="nvidia", TAG+="switcheroo-discrete-gpu" +diff --git a/data/meson.build b/data/meson.build +index 85e5c93..38cf96c 100644 +--- a/data/meson.build ++++ b/data/meson.build +@@ -17,3 +17,10 @@ install_data( + '30-pci-intel-gpu.hwdb', + install_dir: hwdb_dir, + ) ++ ++configure_file( ++ input: '30-discrete-gpu.rules.in', ++ output: '30-discrete-gpu.rules', ++ configuration: data_conf, ++ install_dir: rules_dir, ++) +diff --git a/meson.build b/meson.build +index b8f4bff..b3aaf0c 100644 +--- a/meson.build ++++ b/meson.build +@@ -20,6 +20,9 @@ gnome = import('gnome') + glib = dependency('glib-2.0', version: '>= 2.56.0') + gio = dependency('gio-2.0', version: '>= 2.56.0') + gudev = dependency('gudev-1.0', version: '>= 232') ++libdrm = dependency('libdrm', version: '>= 2.4.97', required: get_option('libdrm')) ++libdrm_nouveau = dependency('libdrm_nouveau', version: '>= 2.4.97', required: get_option('libdrm_nouveau')) ++libdrm_amdgpu = dependency('libdrm_amdgpu', version: '>= 2.4.97', required: get_option('libdrm_amdgpu')) + + systemd_systemunitdir = get_option('systemdsystemunitdir') + if systemd_systemunitdir == '' +@@ -32,6 +35,12 @@ if hwdb_dir == '' + hwdb_dir = udevdir / 'hwdb.d' + endif + ++rules_dir = get_option('rulesdir') ++if rules_dir == '' ++ udevdir = dependency('udev').get_pkgconfig_variable('udevdir') ++ rules_dir = udevdir / 'rules.d' ++endif ++ + # Make like license available in the build root for docs + configure_file( + input: 'COPYING', +diff --git a/meson_options.txt b/meson_options.txt +index c8d9619..b8d671a 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -10,6 +10,12 @@ option('hwdbdir', + description: 'Directory for hwdb files', + ) + ++option('rulesdir', ++ type: 'string', ++ value: '', ++ description: 'Directory for ruke files', ++) ++ + option('gtk_doc', + type: 'boolean', + value: false, +@@ -21,3 +27,21 @@ option('tests', + type: 'boolean', + value: false + ) ++ ++option('libdrm', ++ description: 'Whether libdrm should be used to probe GPUs', ++ type: 'feature', ++ value: 'auto' ++) ++ ++option('libdrm_nouveau', ++ description: 'Whether libdrm_nouveau should be used to probe Nvidia GPUs', ++ type: 'feature', ++ value: 'auto' ++) ++ ++option('libdrm_amdgpu', ++ description: 'Whether libdrm_amdgpu should be used to probe AMD GPUs', ++ type: 'feature', ++ value: 'auto' ++) +diff --git a/src/discrete-detection/amdgpu.c b/src/discrete-detection/amdgpu.c +new file mode 100644 +index 0000000..2d9804f +--- /dev/null ++++ b/src/discrete-detection/amdgpu.c +@@ -0,0 +1,46 @@ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++typedef int handle; ++G_DEFINE_AUTO_CLEANUP_FREE_FUNC(handle, close, -1) ++G_DEFINE_AUTOPTR_CLEANUP_FUNC(amdgpu_device_handle, free); ++ ++int main(int argc, char** argv) ++{ ++ if (argc < 2) ++ { ++ puts ("check-discrete-amdgpu [DEVNAME]"); ++ return EXIT_FAILURE; ++ } ++ ++ const char *devname; ++ g_auto(handle) fd = -1; ++ g_autoptr(GUdevDevice) parent = NULL; ++ struct drm_amdgpu_info_device device_info = {0}; ++ amdgpu_device_handle device = NULL; ++ uint32_t drm_major, drm_minor; ++ ++ devname = argv[1]; ++ fd = open (devname, O_RDWR); ++ if (fd < 0) ++ return EXIT_FAILURE; ++ ++ if (amdgpu_device_initialize (fd, &drm_major, &drm_minor, &device)) ++ return EXIT_FAILURE; ++ ++ if (amdgpu_query_info (device, AMDGPU_INFO_DEV_INFO, sizeof(device_info), &device_info)) ++ return EXIT_FAILURE; ++ ++ /* AMDGPU_IDS_FLAGS_FUSION is set for all APUs */ ++ if (device_info.ids_flags & AMDGPU_IDS_FLAGS_FUSION) ++ return EXIT_FAILURE; ++ ++ return EXIT_SUCCESS; ++} +diff --git a/src/discrete-detection/meson.build b/src/discrete-detection/meson.build +new file mode 100644 +index 0000000..3a6c03f +--- /dev/null ++++ b/src/discrete-detection/meson.build +@@ -0,0 +1,18 @@ ++ ++if libdrm_amdgpu.found() ++ executable('check-discrete-amdgpu', ++ files('amdgpu.c'), ++ dependencies: deps, ++ install: true, ++ install_dir: libexecdir, ++ ) ++endif ++ ++if libdrm.found() and libdrm_nouveau.found() ++ executable('check-discrete-nouveau', ++ files('nouveau.c'), ++ dependencies: deps, ++ install: true, ++ install_dir: libexecdir, ++ ) ++endif +diff --git a/src/discrete-detection/nouveau.c b/src/discrete-detection/nouveau.c +new file mode 100644 +index 0000000..0a1f220 +--- /dev/null ++++ b/src/discrete-detection/nouveau.c +@@ -0,0 +1,105 @@ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++typedef int handle; ++G_DEFINE_AUTO_CLEANUP_FREE_FUNC(handle, close, -1) ++ ++int main(int argc, char** argv) ++{ ++ if (argc < 2) ++ { ++ puts ("check-discrete-nouveau [DEVNAME]"); ++ return EXIT_FAILURE; ++ } ++ ++ const char *devname; ++ g_auto(handle) fd = -1; ++ ++ devname = argv[1]; ++ fd = open (devname, O_RDWR); ++ if (fd < 0) ++ return EXIT_FAILURE; ++ ++ g_autofree void *device = malloc(352); ++ ++ /* Init device */ ++ { ++ struct { ++ struct nvif_ioctl_v0 ioctl; ++ struct nvif_ioctl_new_v0 new; ++ struct nv_device_v0 dev; ++ } init_args = { ++ .ioctl = { ++ .object = 0, ++ .owner = NVIF_IOCTL_V0_OWNER_ANY, ++ .route = 0x00, ++ .type = NVIF_IOCTL_V0_NEW, ++ .version = 0, ++ }, ++ .new = { ++ .handle = 0, ++ .object = (uintptr_t)device, ++ .oclass = NV_DEVICE, ++ .route = NVIF_IOCTL_V0_ROUTE_NVIF, ++ .token = (uintptr_t)device, ++ .version = 0, ++ }, ++ .dev = { ++ .device = ~0ULL, ++ }, ++ }; ++ ++ if (drmCommandWrite (fd, DRM_NOUVEAU_NVIF, &init_args, sizeof(init_args))) ++ return EXIT_FAILURE; ++ } ++ ++ /* Query device info */ ++ struct { ++ struct nvif_ioctl_v0 ioctl; ++ struct nvif_ioctl_mthd_v0 mthd; ++ struct nv_device_info_v0 info; ++ } args = { ++ .ioctl = { ++ .object = (uintptr_t)device, ++ .owner = NVIF_IOCTL_V0_OWNER_ANY, ++ .route = 0x00, ++ .type = NVIF_IOCTL_V0_MTHD, ++ .version = 0, ++ }, ++ .mthd = { ++ .method = NV_DEVICE_V0_INFO, ++ .version = 0, ++ }, ++ .info = { ++ .version = 0, ++ }, ++ }; ++ ++ if (drmCommandWriteRead (fd, DRM_NOUVEAU_NVIF, &args, sizeof(args))) ++ return EXIT_FAILURE; ++ ++ ++ switch (args.info.platform) ++ { ++ case NV_DEVICE_INFO_V0_IGP: ++ case NV_DEVICE_INFO_V0_SOC: ++ return EXIT_FAILURE; ++ ++ case NV_DEVICE_INFO_V0_PCI: ++ case NV_DEVICE_INFO_V0_AGP: ++ case NV_DEVICE_INFO_V0_PCIE: ++ default: ++ return EXIT_SUCCESS; ++ } ++ return EXIT_FAILURE; ++} +diff --git a/src/meson.build b/src/meson.build +index ab3a77d..da4267f 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -1,4 +1,4 @@ +-deps = [glib, gio, gudev] ++deps = [glib, gio, gudev, libdrm, libdrm_nouveau, libdrm_amdgpu] + + sources = [ + 'info-cleanup.c', +@@ -34,3 +34,5 @@ configure_file( + configuration: switcherooctl_conf, + install_dir: get_option('bindir') + ) ++ ++subdir('discrete-detection') +diff --git a/src/switcheroo-control.c b/src/switcheroo-control.c +index abd8154..e407bfb 100644 +--- a/src/switcheroo-control.c ++++ b/src/switcheroo-control.c +@@ -31,6 +31,7 @@ typedef struct { + char *name; + GPtrArray *env; + gboolean is_default; ++ gboolean is_discrete; + } CardData; + + typedef struct { +@@ -94,6 +95,8 @@ build_gpus_variant (ControlData *data) + g_variant_new_strv ((const gchar * const *) card->env->pdata, card->env->len)); + g_variant_builder_add (&asv_builder, "{sv}", "Default", + g_variant_new_boolean (card->is_default)); ++ g_variant_builder_add (&asv_builder, "{sv}", "Discrete", ++ g_variant_new_boolean (card->is_discrete)); + + g_variant_builder_add (&builder, "a{sv}", &asv_builder); + } +@@ -312,6 +315,18 @@ get_card_is_default (GUdevDevice *d) + return g_udev_device_get_sysfs_attr_as_boolean (parent, "boot_vga"); + } + ++static gboolean ++get_card_is_discrete (GUdevDevice *d) ++{ ++ const char * const * tags; ++ g_autoptr (GUdevDevice) platform_device = NULL; ++ ++ tags = g_udev_device_get_tags (d); ++ if (tags && g_strv_contains (tags, "switcheroo-discrete-gpu")) ++ return TRUE; ++ return FALSE; ++} ++ + static CardData * + get_card_data (GUdevClient *client, + GUdevDevice *d) +@@ -328,6 +343,7 @@ get_card_data (GUdevClient *client, + data->name = get_card_name (d); + data->env = env; + data->is_default = get_card_is_default (d); ++ data->is_discrete = get_card_is_discrete (d); + + return data; + } +-- +2.46.0 + diff --git a/anda/apps/switcheroo-control/0003-tests-fix-integration-tests-without-UMockdev.patch b/anda/apps/switcheroo-control/0003-tests-fix-integration-tests-without-UMockdev.patch new file mode 100644 index 0000000000..e8ee844d53 --- /dev/null +++ b/anda/apps/switcheroo-control/0003-tests-fix-integration-tests-without-UMockdev.patch @@ -0,0 +1,27 @@ +From 1b115ed72e03ff1169cbfddd79ef10890baca133 Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Tue, 12 Sep 2023 15:53:40 +0200 +Subject: [PATCH 03/10] tests: fix integration tests without UMockdev + `gi.require_version` throws ValueError if the dependency cannot be found + +Signed-off-by: Jan200101 +--- + tests/integration-test.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/integration-test.py b/tests/integration-test.py +index d8dea16..e3dd996 100755 +--- a/tests/integration-test.py ++++ b/tests/integration-test.py +@@ -37,7 +37,7 @@ except ImportError as e: + try: + gi.require_version('UMockdev', '1.0') + from gi.repository import UMockdev +-except ImportError: ++except (ImportError, ValueError): + sys.stderr.write('Skipping tests, umockdev not available (https://github.com/martinpitt/umockdev)\n') + sys.exit(0) + +-- +2.46.0 + diff --git a/anda/apps/switcheroo-control/0004-tests-add-tests-for-discrete-detection-with-mock-lib.patch b/anda/apps/switcheroo-control/0004-tests-add-tests-for-discrete-detection-with-mock-lib.patch new file mode 100644 index 0000000000..24915eba46 --- /dev/null +++ b/anda/apps/switcheroo-control/0004-tests-add-tests-for-discrete-detection-with-mock-lib.patch @@ -0,0 +1,278 @@ +From d933e96bdb15679ae7653f929461982aa66973ba Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Tue, 12 Sep 2023 15:58:16 +0200 +Subject: [PATCH 04/10] tests: add tests for discrete detection with mock libs + Both tests have 4 different ways of testing: - Invalid Device - Unexpected + Device - Non Discrete GPU (iGPU/APU) - Discrete GPU + +Signed-off-by: Jan200101 +--- + src/discrete-detection/meson.build | 4 +- + tests/discrete-detection/libdrm_amdgpu_mock.c | 57 +++++++++++++ + .../discrete-detection/libdrm_nouveau_mock.c | 68 ++++++++++++++++ + tests/discrete-detection/meson.build | 80 +++++++++++++++++++ + tests/meson.build | 2 + + 5 files changed, 209 insertions(+), 2 deletions(-) + create mode 100644 tests/discrete-detection/libdrm_amdgpu_mock.c + create mode 100644 tests/discrete-detection/libdrm_nouveau_mock.c + create mode 100644 tests/discrete-detection/meson.build + +diff --git a/src/discrete-detection/meson.build b/src/discrete-detection/meson.build +index 3a6c03f..8eb8437 100644 +--- a/src/discrete-detection/meson.build ++++ b/src/discrete-detection/meson.build +@@ -1,6 +1,6 @@ + + if libdrm_amdgpu.found() +- executable('check-discrete-amdgpu', ++ amdgpu_discrete = executable('check-discrete-amdgpu', + files('amdgpu.c'), + dependencies: deps, + install: true, +@@ -9,7 +9,7 @@ if libdrm_amdgpu.found() + endif + + if libdrm.found() and libdrm_nouveau.found() +- executable('check-discrete-nouveau', ++ nouveau_discrete = executable('check-discrete-nouveau', + files('nouveau.c'), + dependencies: deps, + install: true, +diff --git a/tests/discrete-detection/libdrm_amdgpu_mock.c b/tests/discrete-detection/libdrm_amdgpu_mock.c +new file mode 100644 +index 0000000..20fa4aa +--- /dev/null ++++ b/tests/discrete-detection/libdrm_amdgpu_mock.c +@@ -0,0 +1,57 @@ ++#include ++#include ++#include ++ ++#include ++ ++enum { ++ OTHER_GPU, ++ AMD_APU, ++ AMD_GPU, ++}; ++ ++/* Mock open(2) so we can test multiple devices configurations */ ++int open(const char *pathname, int flags) ++{ ++ if (!strcmp(pathname, "OTHER_GPU")) ++ return OTHER_GPU; ++ if (!strcmp (pathname, "AMD_APU")) ++ return AMD_APU; ++ if (!strcmp (pathname, "AMD_GPU")) ++ return AMD_GPU; ++ ++ return -1; ++} ++ ++/* open64 may be used for large file support */ ++int open64(const char *pathname, int flags) ++{ ++ return open (pathname, flags); ++} ++ ++int amdgpu_device_initialize(int fd, uint32_t *major_version, uint32_t *minor_version, int *device_handle) ++{ ++ // Store the fd in the device handle for access in query_info ++ *device_handle = fd; ++ ++ if (fd != AMD_GPU && fd != AMD_APU) ++ return 1; ++ ++ return 0; ++} ++ ++int amdgpu_query_info(int device_handle, unsigned info_id, unsigned size, void *value) ++{ ++ struct drm_amdgpu_info_device* device_info = value; ++ ++ if (device_handle == AMD_GPU) { ++ device_info->ids_flags = 0; ++ return 0; ++ } ++ if (device_handle == AMD_APU) { ++ device_info->ids_flags = AMDGPU_IDS_FLAGS_FUSION; ++ return 0; ++ } ++ ++ return 1; ++} +diff --git a/tests/discrete-detection/libdrm_nouveau_mock.c b/tests/discrete-detection/libdrm_nouveau_mock.c +new file mode 100644 +index 0000000..cdbfda8 +--- /dev/null ++++ b/tests/discrete-detection/libdrm_nouveau_mock.c +@@ -0,0 +1,68 @@ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++enum { ++ OTHER_GPU, ++ NVIDIA_IGPU, ++ NVIDIA_GPU, ++}; ++ ++/* Mock open(2) so we can test multiple devices configurations */ ++int open(const char *pathname, int flags) ++{ ++ if (!strcmp(pathname, "OTHER_GPU")) ++ return OTHER_GPU; ++ if (!strcmp (pathname, "NVIDIA_IGPU")) ++ return NVIDIA_IGPU; ++ if (!strcmp (pathname, "NVIDIA_GPU")) ++ return NVIDIA_GPU; ++ ++ return -1; ++} ++ ++/* open64 may be used for large file support */ ++int open64(const char *pathname, int flags) ++{ ++ return open (pathname, flags); ++} ++ ++int drmCommandWrite(int fd, unsigned long drmCommandIndex, void *data, unsigned long size) ++{ ++ if (drmCommandIndex != DRM_NOUVEAU_NVIF) ++ return 1; ++ ++ if (fd != NVIDIA_GPU && fd != NVIDIA_IGPU) ++ return 1; ++ ++ return 0; ++} ++ ++int drmCommandWriteRead(int fd, unsigned long drmCommandIndex, void *data, unsigned long size) ++{ ++ if (drmCommandIndex != DRM_NOUVEAU_NVIF) ++ return 1; ++ ++ struct { ++ struct nvif_ioctl_v0 ioctl; ++ struct nvif_ioctl_mthd_v0 mthd; ++ struct nv_device_info_v0 info; ++ } *args = data; ++ ++ if (fd == NVIDIA_GPU) { ++ args->info.platform = NV_DEVICE_INFO_V0_PCIE; ++ return 0; ++ } ++ if (fd == NVIDIA_IGPU) { ++ args->info.platform = NV_DEVICE_INFO_V0_IGP; ++ return 0; ++ } ++ ++ return 1; ++} +\ No newline at end of file +diff --git a/tests/discrete-detection/meson.build b/tests/discrete-detection/meson.build +new file mode 100644 +index 0000000..f01a014 +--- /dev/null ++++ b/tests/discrete-detection/meson.build +@@ -0,0 +1,80 @@ ++ ++if libdrm_amdgpu.found() ++ amdgpu_mock_lib = shared_library( ++ 'drm_amdgpu_mock', ++ files('libdrm_amdgpu_mock.c'), ++ dependencies: libdrm_amdgpu ++ ) ++ ++ test( ++ 'test amdgpu detection with invalid device', ++ amdgpu_discrete, ++ args: ['NO_GPU'], ++ env: environment({'LD_PRELOAD': amdgpu_mock_lib.full_path()}), ++ should_fail: true ++ ) ++ ++ test( ++ 'test amdgpu detection with non-AMD GPU', ++ amdgpu_discrete, ++ args: ['OTHER_GPU'], ++ env: environment({'LD_PRELOAD': amdgpu_mock_lib.full_path()}), ++ should_fail: true ++ ) ++ ++ test( ++ 'test amdgpu detection with AMD APU', ++ amdgpu_discrete, ++ args: ['AMD_APU'], ++ env: environment({'LD_PRELOAD': amdgpu_mock_lib.full_path()}), ++ should_fail: true ++ ) ++ ++ test( ++ 'test amdgpu detection with AMD GPU', ++ amdgpu_discrete, ++ args: ['AMD_GPU'], ++ env: environment({'LD_PRELOAD': amdgpu_mock_lib.full_path()}), ++ should_fail: false ++ ) ++endif ++ ++if libdrm.found() and libdrm_nouveau.found() ++ nouveau_mock_lib = shared_library( ++ 'drm_nouveau_mock', ++ files('libdrm_nouveau_mock.c'), ++ dependencies: [libdrm, libdrm_nouveau] ++ ) ++ ++ test( ++ 'test nouveau detection with invalid device', ++ nouveau_discrete, ++ args: ['NO_GPU'], ++ env: environment({'LD_PRELOAD': nouveau_mock_lib.full_path()}), ++ should_fail: true ++ ) ++ ++ test( ++ 'test nouveau detection with non-Nvidia GPU', ++ nouveau_discrete, ++ args: ['OTHER_GPU'], ++ env: environment({'LD_PRELOAD': nouveau_mock_lib.full_path()}), ++ should_fail: true ++ ) ++ ++ test( ++ 'test nouveau detection with Nvidia iGPU', ++ nouveau_discrete, ++ args: ['NVIDIA_IGPU'], ++ env: environment({'LD_PRELOAD': nouveau_mock_lib.full_path()}), ++ should_fail: true ++ ) ++ ++ test( ++ 'test nouveau detection with Nvidia GPU', ++ nouveau_discrete, ++ args: ['NVIDIA_GPU'], ++ env: environment({'LD_PRELOAD': nouveau_mock_lib.full_path()}), ++ should_fail: false ++ ) ++endif +\ No newline at end of file +diff --git a/tests/meson.build b/tests/meson.build +index b0b7476..61ef00c 100644 +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -15,3 +15,5 @@ foreach ut: unit_tests + env: envs, + ) + endforeach ++ ++subdir('discrete-detection') +-- +2.46.0 + diff --git a/anda/apps/switcheroo-control/0005-main-remove-leftover-and-fix-typo.patch b/anda/apps/switcheroo-control/0005-main-remove-leftover-and-fix-typo.patch new file mode 100644 index 0000000000..b10984fc67 --- /dev/null +++ b/anda/apps/switcheroo-control/0005-main-remove-leftover-and-fix-typo.patch @@ -0,0 +1,39 @@ +From c102b643945dc076d881497dd2ca5865938f7053 Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Tue, 12 Sep 2023 15:57:47 +0200 +Subject: [PATCH 05/10] main: remove leftover and fix typo + +Signed-off-by: Jan200101 +--- + meson_options.txt | 2 +- + src/switcheroo-control.c | 1 - + 2 files changed, 1 insertion(+), 2 deletions(-) + +diff --git a/meson_options.txt b/meson_options.txt +index b8d671a..c77fea8 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -13,7 +13,7 @@ option('hwdbdir', + option('rulesdir', + type: 'string', + value: '', +- description: 'Directory for ruke files', ++ description: 'Directory for rule files', + ) + + option('gtk_doc', +diff --git a/src/switcheroo-control.c b/src/switcheroo-control.c +index e407bfb..0f6a548 100644 +--- a/src/switcheroo-control.c ++++ b/src/switcheroo-control.c +@@ -319,7 +319,6 @@ static gboolean + get_card_is_discrete (GUdevDevice *d) + { + const char * const * tags; +- g_autoptr (GUdevDevice) platform_device = NULL; + + tags = g_udev_device_get_tags (d); + if (tags && g_strv_contains (tags, "switcheroo-discrete-gpu")) +-- +2.46.0 + diff --git a/anda/apps/switcheroo-control/0006-main-move-discrete-dependencies-out-of-main-deps.patch b/anda/apps/switcheroo-control/0006-main-move-discrete-dependencies-out-of-main-deps.patch new file mode 100644 index 0000000000..18a0e42158 --- /dev/null +++ b/anda/apps/switcheroo-control/0006-main-move-discrete-dependencies-out-of-main-deps.patch @@ -0,0 +1,48 @@ +From f764db4eb565c19ba14155791fbfced3fb5d34c8 Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Tue, 12 Sep 2023 15:58:27 +0200 +Subject: [PATCH 06/10] main: move discrete dependencies out of main deps + +Signed-off-by: Jan200101 +--- + src/discrete-detection/meson.build | 5 +++-- + src/meson.build | 2 +- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/discrete-detection/meson.build b/src/discrete-detection/meson.build +index 8eb8437..353316f 100644 +--- a/src/discrete-detection/meson.build ++++ b/src/discrete-detection/meson.build +@@ -1,8 +1,9 @@ ++discrete_deps = deps + [libdrm, libdrm_nouveau, libdrm_amdgpu] + + if libdrm_amdgpu.found() + amdgpu_discrete = executable('check-discrete-amdgpu', + files('amdgpu.c'), +- dependencies: deps, ++ dependencies: discrete_deps, + install: true, + install_dir: libexecdir, + ) +@@ -11,7 +12,7 @@ endif + if libdrm.found() and libdrm_nouveau.found() + nouveau_discrete = executable('check-discrete-nouveau', + files('nouveau.c'), +- dependencies: deps, ++ dependencies: discrete_deps, + install: true, + install_dir: libexecdir, + ) +diff --git a/src/meson.build b/src/meson.build +index da4267f..22d69e7 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -1,4 +1,4 @@ +-deps = [glib, gio, gudev, libdrm, libdrm_nouveau, libdrm_amdgpu] ++deps = [glib, gio, gudev] + + sources = [ + 'info-cleanup.c', +-- +2.46.0 + diff --git a/anda/apps/switcheroo-control/0007-main-use-glib-for-discrete-command-line-arguments.patch b/anda/apps/switcheroo-control/0007-main-use-glib-for-discrete-command-line-arguments.patch new file mode 100644 index 0000000000..524930709f --- /dev/null +++ b/anda/apps/switcheroo-control/0007-main-use-glib-for-discrete-command-line-arguments.patch @@ -0,0 +1,137 @@ +From d2ecc29469d5572fd171926c9d1dbb1b851c7b09 Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Tue, 12 Sep 2023 17:12:00 +0200 +Subject: [PATCH 07/10] main: use glib for discrete command-line arguments + +Signed-off-by: Jan200101 +--- + src/discrete-detection/amdgpu.c | 29 ++++++++++++++++++++--------- + src/discrete-detection/nouveau.c | 29 ++++++++++++++++++++--------- + 2 files changed, 40 insertions(+), 18 deletions(-) + +diff --git a/src/discrete-detection/amdgpu.c b/src/discrete-detection/amdgpu.c +index 2d9804f..5a9a4ab 100644 +--- a/src/discrete-detection/amdgpu.c ++++ b/src/discrete-detection/amdgpu.c +@@ -1,9 +1,10 @@ +- + #include + #include + #include ++#include + #include + #include ++#include + + #include + #include +@@ -12,22 +13,32 @@ typedef int handle; + G_DEFINE_AUTO_CLEANUP_FREE_FUNC(handle, close, -1) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(amdgpu_device_handle, free); + +-int main(int argc, char** argv) ++int main (int argc, char** argv) + { +- if (argc < 2) +- { +- puts ("check-discrete-amdgpu [DEVNAME]"); +- return EXIT_FAILURE; +- } +- + const char *devname; + g_auto(handle) fd = -1; +- g_autoptr(GUdevDevice) parent = NULL; + struct drm_amdgpu_info_device device_info = {0}; + amdgpu_device_handle device = NULL; + uint32_t drm_major, drm_minor; ++ g_autoptr(GOptionContext) option_context = NULL; ++ g_autoptr(GError) error = NULL; + ++ setlocale (LC_ALL, ""); ++ option_context = g_option_context_new (""); ++ ++ if (!g_option_context_parse (option_context, &argc, &argv, &error)) { ++ g_print ("Failed to parse arguments: %s\n", error->message); ++ return EXIT_FAILURE; ++ } ++ ++ if (argc < 2) ++ { ++ g_print ("%s\n", g_option_context_get_help (option_context, TRUE, NULL)); ++ return EXIT_FAILURE; ++ } + devname = argv[1]; ++; ++ + fd = open (devname, O_RDWR); + if (fd < 0) + return EXIT_FAILURE; +diff --git a/src/discrete-detection/nouveau.c b/src/discrete-detection/nouveau.c +index 0a1f220..1d61cbb 100644 +--- a/src/discrete-detection/nouveau.c ++++ b/src/discrete-detection/nouveau.c +@@ -1,9 +1,10 @@ +- + #include + #include + #include ++#include + #include + #include ++#include + + #include + #include +@@ -14,23 +15,34 @@ + typedef int handle; + G_DEFINE_AUTO_CLEANUP_FREE_FUNC(handle, close, -1) + +-int main(int argc, char** argv) ++int main (int argc, char** argv) + { ++ const gchar *devname = NULL; ++ g_auto(handle) fd = -1; ++ g_autofree void *device = NULL; ++ g_autoptr(GOptionContext) option_context = NULL; ++ g_autoptr(GError) error = NULL; ++ ++ setlocale (LC_ALL, ""); ++ option_context = g_option_context_new (""); ++ ++ if (!g_option_context_parse (option_context, &argc, &argv, &error)) { ++ g_print ("Failed to parse arguments: %s\n", error->message); ++ return EXIT_FAILURE; ++ } ++ + if (argc < 2) + { +- puts ("check-discrete-nouveau [DEVNAME]"); ++ g_print ("%s\n", g_option_context_get_help (option_context, TRUE, NULL)); + return EXIT_FAILURE; + } +- +- const char *devname; +- g_auto(handle) fd = -1; +- + devname = argv[1]; ++ + fd = open (devname, O_RDWR); + if (fd < 0) + return EXIT_FAILURE; + +- g_autofree void *device = malloc(352); ++ device = malloc(352); + + /* Init device */ + { +@@ -88,7 +100,6 @@ int main(int argc, char** argv) + if (drmCommandWriteRead (fd, DRM_NOUVEAU_NVIF, &args, sizeof(args))) + return EXIT_FAILURE; + +- + switch (args.info.platform) + { + case NV_DEVICE_INFO_V0_IGP: +-- +2.46.0 + diff --git a/anda/apps/switcheroo-control/0008-main-add-udev-rule-for-i915.patch b/anda/apps/switcheroo-control/0008-main-add-udev-rule-for-i915.patch new file mode 100644 index 0000000000..b7a684a1c6 --- /dev/null +++ b/anda/apps/switcheroo-control/0008-main-add-udev-rule-for-i915.patch @@ -0,0 +1,25 @@ +From 462b09f02de37dfd2965d23cc7c4137bcf45a4ae Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Wed, 14 Feb 2024 20:25:42 +0100 +Subject: [PATCH 08/10] main: add udev rule for i915 checking a lot of systems + has shown that the intel iGPU will always be available at `0000:00:02.0`. + Using ID_PATH would have been cleaner, but I couldn't get it to work. + +Signed-off-by: Jan200101 +--- + data/30-discrete-gpu.rules.in | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/data/30-discrete-gpu.rules.in b/data/30-discrete-gpu.rules.in +index a803ed4..f30f315 100644 +--- a/data/30-discrete-gpu.rules.in ++++ b/data/30-discrete-gpu.rules.in +@@ -1,3 +1,4 @@ + DRIVERS=="amdgpu", SUBSYSTEM=="drm", PROGRAM="@libexecdir@/check-discrete-amdgpu $env{DEVNAME}", TAG+="switcheroo-discrete-gpu" + DRIVERS=="nouveau", SUBSYSTEM=="drm", PROGRAM="@libexecdir@/check-discrete-nouveau $env{DEVNAME}", TAG+="switcheroo-discrete-gpu" +-DRIVERS=="nvidia", TAG+="switcheroo-discrete-gpu" ++DRIVERS=="nvidia", SUBSYSTEM=="drm", TAG+="switcheroo-discrete-gpu" ++DRIVERS=="i915", SUBSYSTEM=="drm", DEVPATH!="/devices/pci0000:00/0000:00:02.0/drm/*", TAG+="switcheroo-discrete-gpu" +-- +2.46.0 + diff --git a/anda/apps/switcheroo-control/0009-main-use-Discrete-key-in-switcherooctl.patch b/anda/apps/switcheroo-control/0009-main-use-Discrete-key-in-switcherooctl.patch new file mode 100644 index 0000000000..abb8fdf525 --- /dev/null +++ b/anda/apps/switcheroo-control/0009-main-use-Discrete-key-in-switcherooctl.patch @@ -0,0 +1,34 @@ +From 55db3aeaeb962952881f73e94432f750cfb64fc8 Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Thu, 15 Feb 2024 16:24:00 +0100 +Subject: [PATCH 09/10] main: use Discrete key in switcherooctl + +Signed-off-by: Jan200101 +--- + src/switcherooctl.in | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/switcherooctl.in b/src/switcherooctl.in +index 96c21cc..c0e3f07 100755 +--- a/src/switcherooctl.in ++++ b/src/switcherooctl.in +@@ -77,6 +77,7 @@ def print_gpu(gpu, index): + print('Device:', index) + print(' Name: ', gpu['Name']) + print(' Default: ', "yes" if gpu['Default'] else "no") ++ print(' Discrete: ', "yes" if gpu['Discrete'] else "no") + print(' Environment:', env_to_str(gpu['Environment'])) + + def _list(): +@@ -126,7 +127,7 @@ def get_discrete_gpu(): + return None + + try: +- gpu = next(gpu for gpu in gpus if not gpu['Default']) ++ gpu = next(gpu for gpu in gpus if gpu['Discrete']) + except StopIteration: + return None + else: +-- +2.46.0 + diff --git a/anda/apps/switcheroo-control/0010-main-use-new-GPU-list-on-uevent.patch b/anda/apps/switcheroo-control/0010-main-use-new-GPU-list-on-uevent.patch new file mode 100644 index 0000000000..9f55d398e7 --- /dev/null +++ b/anda/apps/switcheroo-control/0010-main-use-new-GPU-list-on-uevent.patch @@ -0,0 +1,45 @@ +From 4232c75fe41158bb5063d630d36b3ffd6a8a57ec Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Fri, 6 Sep 2024 22:31:56 +0200 +Subject: [PATCH 10/10] main: use new GPU list on uevent the amount of GPUs may + still be the same but underlying attributes may have changed On the ASUS TUF + Dash F15 running Fedora 40 6.10.7-200.fc40.x86_64 the udev tags are not + applied at the time switcheroo-control starts but at a later uevent they are + correct. Memory gets allocated anyways to check if the GPU count has changed, + so this shouldn't affect memory usage. + +Signed-off-by: Jan200101 +--- + src/switcheroo-control.c | 16 ++++++---------- + 1 file changed, 6 insertions(+), 10 deletions(-) + +diff --git a/src/switcheroo-control.c b/src/switcheroo-control.c +index 0f6a548..01954c7 100644 +--- a/src/switcheroo-control.c ++++ b/src/switcheroo-control.c +@@ -438,16 +438,12 @@ uevent_cb (GUdevClient *client, + + cards = get_drm_cards (data); + num_gpus = cards->len; +- if (num_gpus != data->num_gpus) { +- g_debug ("GPUs added or removed (old: %d new: %d)", +- data->num_gpus, num_gpus); +- g_ptr_array_free (data->cards, TRUE); +- data->cards = cards; +- data->num_gpus = cards->len; +- send_dbus_event (data); +- } else { +- g_ptr_array_free (cards, TRUE); +- } ++ g_debug ("GPUs updated (old: %d new: %d)", ++ data->num_gpus, num_gpus); ++ g_ptr_array_free (data->cards, TRUE); ++ data->cards = cards; ++ data->num_gpus = cards->len; ++ send_dbus_event (data); + } + + static void +-- +2.46.0 + diff --git a/anda/apps/switcheroo-control/anda.hcl b/anda/apps/switcheroo-control/anda.hcl new file mode 100644 index 0000000000..4e4b929667 --- /dev/null +++ b/anda/apps/switcheroo-control/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "switcheroo-control.spec" + } + labels { + subrepo = "extras" + } +} diff --git a/anda/apps/switcheroo-control/switcheroo-control.spec b/anda/apps/switcheroo-control/switcheroo-control.spec new file mode 100644 index 0000000000..dde67c0bb2 --- /dev/null +++ b/anda/apps/switcheroo-control/switcheroo-control.spec @@ -0,0 +1,194 @@ +Name: switcheroo-control +Version: 2.6 +Release: 8%{?dist} +Summary: D-Bus service to check the availability of dual-GPU + +License: GPLv3 +URL: https://gitlab.freedesktop.org/hadess/switcheroo-control/ +# URL from https://gitlab.freedesktop.org/hadess/switcheroo-control/-/releases +Source0: https://gitlab.freedesktop.org/hadess/switcheroo-control/uploads/86ea54ac7ddb901b6bf6e915209151f8/switcheroo-control-2.6.tar.xz +Patch: 0001-main-update-GPUs-comment-for-dbus-property.patch +Patch: 0002-main-add-Discrete-key.patch +Patch: 0003-tests-fix-integration-tests-without-UMockdev.patch +Patch: 0004-tests-add-tests-for-discrete-detection-with-mock-lib.patch +Patch: 0005-main-remove-leftover-and-fix-typo.patch +Patch: 0006-main-move-discrete-dependencies-out-of-main-deps.patch +Patch: 0007-main-use-glib-for-discrete-command-line-arguments.patch +Patch: 0008-main-add-udev-rule-for-i915.patch +Patch: 0009-main-use-Discrete-key-in-switcherooctl.patch +Patch: 0010-main-use-new-GPU-list-on-uevent.patch + +BuildRequires: gcc +BuildRequires: pkgconfig(gudev-1.0) +BuildRequires: pkgconfig(gio-2.0) +BuildRequires: gtk-doc +BuildRequires: meson +BuildRequires: systemd +BuildRequires: libdrm-devel +BuildRequires: python3-dbusmock +BuildRequires: umockdev + +%{?systemd_requires} + +%description +D-Bus service to check the availability of dual-GPU. + +%package docs +Summary: Documentation for %{name} +BuildArch: noarch + +%description docs + +This package contains the documentation for %{name}. + +%prep +%autosetup -p1 + + +%build +%meson -Dgtk_doc=true +%meson_build + + +%install +%meson_install + +%post +if [ $1 -eq 2 ] && [ -x /usr/bin/systemctl ] ; then + /usr/bin/systemctl daemon-reload +fi +%systemd_post switcheroo-control.service +%udev_hwdb_update + +%preun +%systemd_preun switcheroo-control.service + +%postun +%systemd_postun_with_restart switcheroo-control.service +%udev_hwdb_update + +%files +%license COPYING +%doc NEWS README.md +%{_bindir}/switcherooctl +%{_datadir}/dbus-1/system.d/net.hadess.SwitcherooControl.conf +%{_unitdir}/switcheroo-control.service +%{_libexecdir}/switcheroo-control +%{_udevhwdbdir}/30-pci-intel-gpu.hwdb +%{_mandir}/man1/switcherooctl.1* +%{_libexecdir}/check-discrete-amdgpu +%{_libexecdir}/check-discrete-nouveau +%{_udevrulesdir}/30-discrete-gpu.rules + +%files docs +%dir %{_datadir}/gtk-doc/ +%dir %{_datadir}/gtk-doc/html/ +%{_datadir}/gtk-doc/html/%{name}/ + +%changelog +* Fri Sep 06 2024 Jan200101 - 2.6-8 +- Update discrete patch + +* Thu Feb 15 2024 Jan Drögehoff - 2.6-7 +- Update discrete patch + +* Wed Feb 14 2024 Jan Drögehoff - 2.6-6 +- Add discrete patch + +* Sat Jan 27 2024 Fedora Release Engineering - 2.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jul 22 2023 Fedora Release Engineering - 2.6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sat Jan 21 2023 Fedora Release Engineering - 2.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Jul 23 2022 Fedora Release Engineering - 2.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jul 01 2022 Bastien Nocera - 2.6-1 ++ switcheroo-control-2.6-1 +- Update to 2.6 + +* Fri Apr 29 2022 Bastien Nocera - 2.5-1 ++ switcheroo-control-2.5-1 +- Update to 2.5 + +* Sat Jan 22 2022 Fedora Release Engineering - 2.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 2.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 2.4-3 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Wed Jan 27 2021 Fedora Release Engineering - 2.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jan 04 2021 Bastien Nocera - 2.4-1 ++ switcheroo-control-2.4-1 +- Update to 2.4 + +* Wed Jul 29 2020 Fedora Release Engineering - 2.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Apr 27 2020 Bastien Nocera - 2.2-1 ++ switcheroo-control-2.2-1 +- Update to 2.2 + +* Fri Jan 31 2020 Fedora Release Engineering - 2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jan 02 2020 Bastien Nocera - 2.1-1 ++ switcheroo-control-2.1-1 +- Update to 2.1 +- Fix crasher on startup (#1786846) + +* Thu Nov 21 2019 Bastien Nocera - 2.0-2 ++ switcheroo-control-2.0-2 +- Fix post scripts not reloading service file + +* Tue Nov 05 2019 Bastien Nocera - 2.0-1 ++ switcheroo-control-2.0-1 +- Update to 2.0 + +* Sat Jul 27 2019 Fedora Release Engineering - 1.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Jun 17 2019 Bastien Nocera - 1.3.1-1 ++ switcheroo-control-1.3.1-1 +- Fix Secure Boot work-around + +* Wed Jun 12 2019 Bastien Nocera - 1.3-1 ++ switcheroo-control-1.3-1 +- Update to 1.3 +- Fix operation with SecureBoot enabled + +* Sun Feb 03 2019 Fedora Release Engineering - 1.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jul 14 2018 Fedora Release Engineering - 1.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Feb 09 2018 Fedora Release Engineering - 1.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 1.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 1.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Nov 04 2016 Bastien Nocera - 1.1-1 ++ switcheroo-control-1.1-1 +- Update to 1.1 +- Don't throw errors when the machine doesn't have dual-GPU (#1391212) + +* Fri Oct 21 2016 Kalev Lember - 1.0-1 +- Initial Fedora packaging diff --git a/anda/apps/vencord-desktop/vencord-desktop.spec b/anda/apps/vencord-desktop/vencord-desktop.spec index c6ebbd97dc..56cc77f1fb 100644 --- a/anda/apps/vencord-desktop/vencord-desktop.spec +++ b/anda/apps/vencord-desktop/vencord-desktop.spec @@ -6,7 +6,7 @@ Name: vencord-desktop Provides: VencordDesktop = %{version}-%{release} -Version: 1.5.3 +Version: 1.5.5 Release: 1%?dist License: GPL-3.0 Summary: Vesktop is a cross platform desktop app aiming to give you a snappier Discord experience with Vencord pre-installed diff --git a/anda/apps/voicevox/voicevox.spec b/anda/apps/voicevox/voicevox.spec index 25aee9f3ef..76d72e6f0b 100644 --- a/anda/apps/voicevox/voicevox.spec +++ b/anda/apps/voicevox/voicevox.spec @@ -13,7 +13,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: voicevox -Version: 0.20.0 +Version: 0.22.4 Release: 1%?dist Summary: Free Japanese text-to-speech editor License: LGPL-3.0 diff --git a/anda/apps/youtube-music/anda.hcl b/anda/apps/youtube-music/anda.hcl index 6d24c891fe..49f657b8b1 100644 --- a/anda/apps/youtube-music/anda.hcl +++ b/anda/apps/youtube-music/anda.hcl @@ -2,4 +2,8 @@ project pkg { rpm { spec = "youtube-music.spec" } + + labels = { + mock = 1 + } } diff --git a/anda/apps/youtube-music/youtube-music.spec b/anda/apps/youtube-music/youtube-music.spec index 7ae86b337a..5e8b007667 100644 --- a/anda/apps/youtube-music/youtube-music.spec +++ b/anda/apps/youtube-music/youtube-music.spec @@ -1,12 +1,19 @@ %define debug_package %nil +# Exclude private libraries since this is bundled with electron +%global __requires_exclude libffmpeg.so +%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so # macro shorthand for calling pnpm %global pnpm npx pnpm@%{pnpm_version} +# Try to vendor PNPM directly from Fedora +# but if this fails, you can try setting this to 1 to vendor PNPM directly from upstream +%global vendor_pnpm 0 + Name: youtube-music -Version: 3.5.2 -Release: 1%?dist +Version: 3.7.2 +Release: 2%?dist Summary: YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader) Source1: youtube-music.desktop License: MIT @@ -21,6 +28,10 @@ BuildRequires: git-core gcc make # Required for usocket native module built with node-gyp BuildRequires: python3 gcc-c++ +%if !0%{?vendor_pnpm} +BuildRequires: pnpm nodejs20 +%endif + %description YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader) @@ -35,9 +46,11 @@ git checkout v%{version} %build # Vendor PNPM directly instead of installing from packages, because we need to somehow force PNPM to use Node.js 20 # We are not using Fedora's PNPM because we need to use `pnpm env`, which PNPM does not support when not vendored directly from upstream +%if 0%{?vendor_pnpm} curl -fsSL https://get.pnpm.io/install.sh | sh - -source /builddir/.bashrc +source $HOME/.bashrc pnpm env use --global 20 +%endif pnpm install pnpm build pnpm electron-builder --linux --dir diff --git a/anda/desktops/budgie/budgie-extras/budgie-extras.spec b/anda/desktops/budgie/budgie-extras/budgie-extras.spec index b967a86d9f..bd25f3f8a9 100644 --- a/anda/desktops/budgie/budgie-extras/budgie-extras.spec +++ b/anda/desktops/budgie/budgie-extras/budgie-extras.spec @@ -1,115 +1,113 @@ -Name: budgie-extras -Version: 1.8.0 -Release: 1%{?dist} +Name: budgie-extras +Version: 1.9.0 +Release: 1%?dist -License: GPL-3.0 -Summary: Additional Budgie Desktop enhancements for user experience -URL: https://ubuntubudgie.org/ +License: GPL-3.0 +Summary: Additional Budgie Desktop enhancements for user experience +URL: https://ubuntubudgie.org/ -Source0: https://github.com/UbuntuBudgie/budgie-extras/releases/download/v%{version}/budgie-extras-%{version}.tar.xz -Patch0: 0001-fix-weathershow-desktop-widget-icon-path.patch +Source0: https://github.com/UbuntuBudgie/budgie-extras/releases/download/v%{version}/budgie-extras-%{version}.tar.xz -BuildRequires: rpm_macro(fdupes) -BuildRequires: cmake -BuildRequires: meson -BuildRequires: vala -BuildRequires: intltool +BuildRequires: rpm_macro(fdupes) +BuildRequires: cmake +BuildRequires: meson +BuildRequires: vala +BuildRequires: intltool -BuildRequires: pkgconfig(budgie-1.0) -BuildRequires: pkgconfig(gee-0.8) -BuildRequires: pkgconfig(gnome-settings-daemon) -BuildRequires: pkgconfig(json-glib-1.0) -BuildRequires: pkgconfig(keybinder-3.0) -BuildRequires: pkgconfig(libgnome-menu-3.0) -BuildRequires: pkgconfig(libnm) -BuildRequires: pkgconfig(libnma) -BuildRequires: pkgconfig(libnotify) -BuildRequires: pkgconfig(libsoup-2.4) -BuildRequires: pkgconfig(libwnck-3.0) +BuildRequires: pkgconfig(budgie-1.0) +BuildRequires: pkgconfig(gee-0.8) +BuildRequires: pkgconfig(gnome-settings-daemon) +BuildRequires: pkgconfig(json-glib-1.0) +BuildRequires: pkgconfig(keybinder-3.0) +BuildRequires: pkgconfig(libgnome-menu-3.0) +BuildRequires: pkgconfig(libnm) +BuildRequires: pkgconfig(libnma) +BuildRequires: pkgconfig(libnotify) +BuildRequires: pkgconfig(libsoup-2.4) +BuildRequires: pkgconfig(libwnck-3.0) -BuildRequires: pkgconfig(appstream) -BuildRequires: pkgconfig(granite) -BuildRequires: pkgconfig(libhandy-1) -BuildRequires: pkgconfig(zeitgeist-2.0) +BuildRequires: pkgconfig(appstream) +BuildRequires: pkgconfig(granite) +BuildRequires: pkgconfig(libhandy-1) +BuildRequires: pkgconfig(zeitgeist-2.0) -Requires: budgie-applet-applications-menu -Requires: budgie-applet-weathershow - -Requires: budgie-applet-app-launcher -Requires: budgie-applet-brightness-controller -Requires: budgie-applet-clockworks -Requires: budgie-applet-countdown -Requires: budgie-applet-dropby -Requires: budgie-applet-fuzzyclock -Requires: budgie-applet-hotcorners -Requires: budgie-applet-kangaroo -Requires: budgie-applet-keyboard-autoswitch -Requires: budgie-applet-network-manager -Requires: budgie-applet-quickchar -Requires: budgie-applet-quicknote -Requires: budgie-applet-recentlyused -Requires: budgie-applet-rotation-lock -Requires: budgie-applet-showtime -Requires: budgie-applet-takeabreak -Requires: budgie-applet-visualspace -Requires: budgie-applet-wallstreet -Requires: budgie-applet-window-shuffler -Requires: budgie-applet-workspace-stopwatch -Requires: budgie-applet-wpreviews -Requires: budgie-applet-wswitcher +Requires: budgie-applet-app-launcher +Requires: budgie-applet-applications-menu +Requires: budgie-applet-brightness-controller +Requires: budgie-applet-clockworks +Requires: budgie-applet-countdown +Requires: budgie-applet-dropby +Requires: budgie-applet-fuzzyclock +Requires: budgie-applet-hotcorners +Requires: budgie-applet-kangaroo +Requires: budgie-applet-keyboard-autoswitch +Requires: budgie-applet-network-manager +Requires: budgie-applet-quickchar +Requires: budgie-applet-quicknote +Requires: budgie-applet-recentlyused +Requires: budgie-applet-rotation-lock +Requires: budgie-applet-showtime +Requires: budgie-applet-takeabreak +Requires: budgie-applet-visualspace +Requires: budgie-applet-wallstreet +Requires: budgie-applet-weathershow +Requires: budgie-applet-window-shuffler +Requires: budgie-applet-workspace-stopwatch +Requires: budgie-applet-wpreviews +Requires: budgie-applet-wswitcher # Fix for https://github.com/UbuntuBudgie/budgie-extras/issues/233, don't know how stenstorp did not notice this -Requires: xinput +Requires: xinput %description This is part of a suite of python3 and Vala based applets for the Budgie Desktop that provide additional user orientated capabilities. The applets can be used individually or as a set. -%package common -Requires: budgie-desktop -Summary: Shared component of budgie-extras applets -BuildArch: noarch -%description common +%package common +Requires: budgie-desktop +Summary: Shared component of budgie-extras applets +BuildArch: noarch +%description common The shared component provides for capabilities that are utilised between budgie-extra applets. -%package daemon -Summary: Manages keyboard shortcuts -Requires: budgie-extras-common -%description daemon +%package daemon +Summary: Manages keyboard shortcuts +Requires: budgie-extras-common +%description daemon This on logon process manages keyboard shortcuts delivered via .bde files for various extras-plugins. %package -n budgie-applet-app-launcher -Requires: budgie-extras-common -Summary: Applet to provide an alternative means to launch applications +Requires: budgie-extras-common +Summary: Applet to provide an alternative means to launch applications %description -n budgie-applet-app-launcher The app-launcher applet allows the ability to add favorite apps to the panel as well as finding and launching applications. The list of applications listed can be easily configured to be visible or hidden. %package -n budgie-applet-applications-menu -Requires: budgie-extras-common -Summary: Lightweight and stylish app launcher +Requires: budgie-extras-common +Summary: Lightweight and stylish app launcher %description -n budgie-applet-applications-menu %{summary} %package -n budgie-applet-brightness-controller -Requires: budgie-extras-common -Summary: A Budgie Desktop applet for productivity +Requires: budgie-extras-common +Summary: A Budgie Desktop applet for productivity %description -n budgie-applet-brightness-controller %{summary} %package -n budgie-applet-clockworks -Requires: budgie-extras-common -Summary: Applet to display clock across multiple time zones +Requires: budgie-extras-common +Summary: Applet to display clock across multiple time zones %description -n budgie-applet-clockworks The Clockworks applet displays the current time across multiple time zones. %package -n budgie-applet-countdown -Requires: budgie-extras-common -Summary: Applet providing a countdown capability on the Budgie Desktop +Requires: budgie-extras-common +Summary: Applet providing a countdown capability on the Budgie Desktop %description -n budgie-applet-countdown The Countdown applet provides the user the ability to start an action when the countdown reaches 0 seconds. Actions include flashing @@ -117,8 +115,8 @@ an icon in the panel, opening a notification window, sounding a bell or running a custom command. %package -n budgie-applet-dropby -Requires: budgie-extras-common -Summary: Applet to popup when a USB device is connected +Requires: budgie-extras-common +Summary: Applet to popup when a USB device is connected %description -n budgie-applet-dropby The DropBy applet pops up in the panel when connecting a usb device. The applet subsequently offers the option(s) to mount, unmount/eject @@ -126,29 +124,29 @@ and in case of a flash drive, to make a local copy of the drive's content. The info shows the free space on the volume. %package -n budgie-applet-fuzzyclock -Requires: budgie-extras-common -Summary: Shows the time in a Fuzzy Way +Requires: budgie-extras-common +Summary: Shows the time in a Fuzzy Way %description -n budgie-applet-fuzzyclock %{summary} %package -n budgie-applet-hotcorners -Requires: budgie-extras-common -Summary: Applet providing hotcorners capabilities for the Budgie Desktop +Requires: budgie-extras-common +Summary: Applet providing hotcorners capabilities for the Budgie Desktop %description -n budgie-applet-hotcorners The hotcorners applet allow user defined commands to be executed when the mouse cursor is pushed into a corner of the main desktop. %package -n budgie-applet-kangaroo -Requires: budgie-extras-common -Summary: Applet to allow quick file-browsing +Requires: budgie-extras-common +Summary: Applet to allow quick file-browsing %description -n budgie-applet-kangaroo The kangaroo applet allows for quick & easy browsing, across (possibly) many directory layers, without having to do a single mouse click. %package -n budgie-applet-keyboard-autoswitch -Requires: budgie-extras-common -Summary: Applet adding the ability to set a different keyboard layout per application +Requires: budgie-extras-common +Summary: Applet adding the ability to set a different keyboard layout per application %description -n budgie-applet-keyboard-autoswitch The Keyboard Auto Switcher applet provides the user the ability to set a different keyboard layout per application. Exceptions to the default @@ -156,50 +154,51 @@ layout can be set by simply choosing a different layout using the Keyboard Layout applet. %package -n budgie-applet-network-manager -Requires: budgie-extras-common -Summary: A fork of Wingpanel Network Indicator, ported to budgie desktop +Requires: budgie-extras-common +Summary: A fork of Wingpanel Network Indicator, ported to budgie desktop %description -n budgie-applet-network-manager %{summary} %package -n budgie-applet-quickchar -Requires: budgie-extras-common -Summary: A mini-app to quickly choose and insert equivalents of ascii characters +Requires: budgie-extras-common +Requires: budgie-extras-daemon +Summary: A mini-app to quickly choose and insert equivalents of ascii characters %description -n budgie-applet-quickchar QuickChar is a mini-app to quickly choose and insert equivalents of ascii characters. QuickChar is activated via the Budgie Menu. %package -n budgie-applet-quicknote -Requires: budgie-extras-common -Summary: Applet providing simple notes capability for the Budgie Desktop +Requires: budgie-extras-common +Summary: Applet providing simple notes capability for the Budgie Desktop %description -n budgie-applet-quicknote The quicknote applet allows a user to record a text based note. The applet supports multiple undo and redo capabilities. %package -n budgie-applet-recentlyused -Requires: budgie-extras-common -Summary: Applet displays files recently accessed for the Budgie Desktop +Requires: budgie-extras-common +Summary: Applet displays files recently accessed for the Budgie Desktop %description -n budgie-applet-recentlyused The recentlyused applet displays the users files that have been opened or created within a configurable period of time. %package -n budgie-applet-rotation-lock -Requires: budgie-extras-common -Summary: Applet to lock or unlock the screen rotation +Requires: budgie-extras-common +Summary: Applet to lock or unlock the screen rotation %description -n budgie-applet-rotation-lock The Rotation Lock applet provides the user an easy way to lock or unlock the screen rotation. %package -n budgie-applet-showtime -Requires: budgie-extras-common -Summary: Applet displaying date and time on the Budgie Desktop +Requires: budgie-extras-common +Summary: Applet displaying date and time on the Budgie Desktop %description -n budgie-applet-showtime The ShowTime applet is a digital desktop clock, showing time and/or date. Text color of both the displayed time and date can be set separately from the applet's menu %package -n budgie-applet-takeabreak -Requires: budgie-extras-common -Summary: A pomodoro-like applet, to make sure to take regular breaks from working +Requires: budgie-extras-common +Summary: A pomodoro-like applet, to make sure to take regular breaks from working %description -n budgie-applet-takeabreak Budgie TakeaBreak is a pomodoro- like applet, to make sure to take regular breaks from working. Options from Budgie Settings include turning the screen @@ -208,35 +207,36 @@ time. The applet can be accessed quickly from the panel to temporarily switch it off. %package -n budgie-applet-visualspace -Requires: budgie-extras-common -Summary: Shows the current workspace(s), as bullet(s) +Requires: budgie-extras-common +Summary: Shows the current workspace(s), as bullet(s) %description -n budgie-applet-visualspace Budgie VisualSpace shows the current workspace(s), as bullet(s). The applet includes a menu to navigate to either one of the windows or their corresponding workspace. %package -n budgie-applet-wallstreet -Requires: budgie-extras-common -Summary: A mini-app to switch wallpapers on regular intervalls +Requires: budgie-extras-common +Summary: A mini-app to switch wallpapers on regular intervalls %description -n budgie-applet-wallstreet Budgie WallStreet is a mini-app to switch wallpapers on regular intervalls. %package -n budgie-applet-weathershow -Requires: budgie-extras-common -Summary: Applet to display the weather and forecast +Requires: budgie-extras-common +Summary: Applet to display the weather and forecast %description -n budgie-applet-weathershow The weathershow applet displays daily and three hourly weather forecasts on both the desktop and a Popover. %package -n budgie-applet-window-shuffler -Requires: budgie-extras-common -Summary: Budgie Window Shuffler +Requires: budgie-extras-common +Requires: budgie-extras-daemon +Summary: Budgie Window Shuffler %description -n budgie-applet-window-shuffler %{summary} %package -n budgie-applet-workspace-stopwatch -Requires: budgie-extras-common -Summary: An applet to keep track of usage per workspace +Requires: budgie-extras-common +Summary: An applet to keep track of usage per workspace %description -n budgie-applet-workspace-stopwatch Workspace Timer Applet is an applet to keep track of usage per workspace, e.g. to find out how much minutes/hours were actually spent on a job. Workspaces can @@ -246,14 +246,16 @@ onworkspace switch/clicking the icon for popup or else every 30 seconds. Time during suspend is automatically retracted from a workspace' time. %package -n budgie-applet-wpreviews -Requires: budgie-extras-common +Requires: budgie-extras-common +Requires: budgie-extras-daemon Summary: Applet providing window previews capabilities for the Budgie Desktop %description -n budgie-applet-wpreviews The Previews applet shows an overview of windows in an expose like way. %package -n budgie-applet-wswitcher -Requires: budgie-extras-common -Summary: An applet to show a different wallpaper on each of the workspaces +Requires: budgie-extras-common +Requires: budgie-extras-daemon +Summary: An applet to show a different wallpaper on each of the workspaces %description -n budgie-applet-wswitcher Budgie Wallpaper Workspace Switcher is an application (applet) to show a different wallpaper on each of the workspaces. Usage is simple: add the applet @@ -274,7 +276,7 @@ workspaces. # Remove absolute symlink and replace with relative symlink rm -f %{buildroot}%{_bindir}/quickchar -%fdupes %_libdir/budgie-desktop/plugins/budgie-weathershow/weather_icons +%fdupes %{buildroot}%{_datadir}/budgie-desktop/budgie-weathershow/weather_icons %post @@ -400,6 +402,8 @@ rm -f %{buildroot}%{_bindir}/quickchar %files -n budgie-applet-weathershow %{_libdir}/budgie-desktop/plugins/budgie-weathershow +%{_datadir}/budgie-desktop/budgie-weathershow/cities +%{_datadir}/budgie-desktop/budgie-weathershow/weather_icons/* %{_datadir}/glib-2.0/schemas/org.ubuntubudgie.plugins.weathershow.gschema.xml %{_datadir}/pixmaps/budgie-wticon-symbolic.svg diff --git a/anda/desktops/gnome/gnome-shell/0001-gdm-Work-around-failing-fingerprint-auth.patch b/anda/desktops/gnome/gnome-shell/0001-gdm-Work-around-failing-fingerprint-auth.patch new file mode 100644 index 0000000000..2baa7b6829 --- /dev/null +++ b/anda/desktops/gnome/gnome-shell/0001-gdm-Work-around-failing-fingerprint-auth.patch @@ -0,0 +1,67 @@ +From ff73f820b1398e5d60b8984b0003db46ad70b8ec Mon Sep 17 00:00:00 2001 +From: Benjamin Berg +Date: Wed, 28 Apr 2021 16:50:03 +0200 +Subject: [PATCH] gdm: Work around failing fingerprint auth + +On Fedora we have the problem that fingerprint auth fails immediately if +the PAM configuration has not been updated and no prints are enrolled. + +So, consider a verification failure within one second to be a service +failure instead. +--- + js/gdm/util.js | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/js/gdm/util.js b/js/gdm/util.js +index 97df6d687e..371953cb25 100644 +--- a/js/gdm/util.js ++++ b/js/gdm/util.js +@@ -109,6 +109,7 @@ export class ShellUserVerifier extends Signals.EventEmitter { + this._defaultService = null; + this._preemptingService = null; + this._fingerprintReaderType = FingerprintReaderType.NONE; ++ this._fprintStartTime = -1; + + this._messageQueue = []; + this._messageQueueTimeoutId = 0; +@@ -669,6 +670,10 @@ export class ShellUserVerifier extends Signals.EventEmitter { + this._hold.acquire(); + try { + this._activeServices.add(serviceName); ++ ++ if (serviceName == FINGERPRINT_SERVICE_NAME) ++ this._fprintStartTime = GLib.get_monotonic_time(); ++ + if (this._userName) { + await this._userVerifier.call_begin_verification_for_user( + serviceName, this._userName, this._cancellable); +@@ -763,6 +768,7 @@ export class ShellUserVerifier extends Signals.EventEmitter { + const cancellable = this._cancellable; + this._fingerprintFailedId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, + FINGERPRINT_ERROR_TIMEOUT_WAIT, () => { ++ log("Generating _verificationFailed!"); + this._fingerprintFailedId = 0; + if (!cancellable.is_cancelled()) + this._verificationFailed(serviceName, false); +@@ -829,6 +835,18 @@ export class ShellUserVerifier extends Signals.EventEmitter { + if (serviceName === FINGERPRINT_SERVICE_NAME) { + if (this._fingerprintFailedId) + GLib.source_remove(this._fingerprintFailedId); ++ ++ // On Fedora we have the problem that fingerprint auth fails ++ // immediately if the PAM configuration has not been updated and no ++ // prints are enrolled. ++ // So, consider a verification failure within one second to be a service ++ // failure instead. ++ if (this._fprintStartTime > GLib.get_monotonic_time() - GLib.USEC_PER_SEC) { ++ log("Fingerprint service failed almost immediately, considering it unavailable."); ++ log("Please fix your configuration by running: authselect select --force sssd with-fingerprint with-silent-lastlog"); ++ this._onServiceUnavailable(this._client, serviceName, null); ++ return; ++ } + } + + // For Not Listed / enterprise logins, immediately reset +-- +2.43.2 + diff --git a/anda/desktops/gnome/gnome-shell/0001-status-keyboard-Add-a-catch-around-reload-call.patch b/anda/desktops/gnome/gnome-shell/0001-status-keyboard-Add-a-catch-around-reload-call.patch new file mode 100644 index 0000000000..20717d1caf --- /dev/null +++ b/anda/desktops/gnome/gnome-shell/0001-status-keyboard-Add-a-catch-around-reload-call.patch @@ -0,0 +1,35 @@ +From 78a733bae62f8af15f0771d7efde55473f295e46 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Wed, 16 Aug 2023 18:46:54 -0400 +Subject: [PATCH 1/3] status/keyboard: Add a catch around reload call + +Now that system input settings can get used in the user session +they're getting seen by the tests and the tests are complaining: + +Unhandled promise rejection. To suppress this warning, add an +error handler to your promise chain with .catch() or a try-catch block +around your await expression. + +This commit adds the catch it's asking for. +--- + js/ui/status/keyboard.js | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js +index cfc0a01f6b..4ef2f355d3 100644 +--- a/js/ui/status/keyboard.js ++++ b/js/ui/status/keyboard.js +@@ -204,7 +204,9 @@ class InputSourceSystemSettings extends InputSourceSettings { + this._options = ''; + this._model = ''; + +- this._reload(); ++ this._reload().catch(error => { ++ logError(error, 'Could not reload system input settings'); ++ }); + + Gio.DBus.system.signal_subscribe(this._BUS_NAME, + this._BUS_PROPS_IFACE, +-- +2.43.1 + diff --git a/anda/desktops/gnome/gnome-shell/0002-status-keyboard-Load-keyboard-from-system-settings-i.patch b/anda/desktops/gnome/gnome-shell/0002-status-keyboard-Load-keyboard-from-system-settings-i.patch new file mode 100644 index 0000000000..7b0ac52eae --- /dev/null +++ b/anda/desktops/gnome/gnome-shell/0002-status-keyboard-Load-keyboard-from-system-settings-i.patch @@ -0,0 +1,136 @@ +From 0c0cc4ce1d3e08eba3e701d565398e01aa479ff7 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Wed, 16 Aug 2023 11:13:39 -0400 +Subject: [PATCH 2/3] status/keyboard: Load keyboard from system settings if + gsettings unconfigured + +Right now if a user hasn't configured their input sources, the code +falls back to +using the current layout on Xorg and the mutter default with wayland. + +This commit changes the code to instead fall back to using the system +default (as configured by localed). +--- + js/ui/status/keyboard.js | 62 +++++++++++++++++++++++++++++++--------- + 1 file changed, 48 insertions(+), 14 deletions(-) + +diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js +index 4ef2f355d3..d91eb41bc6 100644 +--- a/js/ui/status/keyboard.js ++++ b/js/ui/status/keyboard.js +@@ -22,6 +22,9 @@ import * as Util from '../../misc/util.js'; + export const INPUT_SOURCE_TYPE_XKB = 'xkb'; + export const INPUT_SOURCE_TYPE_IBUS = 'ibus'; + ++const DESKTOP_INPUT_SOURCES_SCHEMA = 'org.gnome.desktop.input-sources'; ++const KEY_INPUT_SOURCES = 'sources'; ++ + export const LayoutMenuItem = GObject.registerClass( + class LayoutMenuItem extends PopupMenu.PopupBaseMenuItem { + _init(displayName, shortName) { +@@ -278,18 +281,16 @@ class InputSourceSystemSettings extends InputSourceSettings { + } + + class InputSourceSessionSettings extends InputSourceSettings { +- constructor() { ++ constructor(settings) { + super(); + +- this._DESKTOP_INPUT_SOURCES_SCHEMA = 'org.gnome.desktop.input-sources'; +- this._KEY_INPUT_SOURCES = 'sources'; + this._KEY_MRU_SOURCES = 'mru-sources'; + this._KEY_KEYBOARD_OPTIONS = 'xkb-options'; + this._KEY_KEYBOARD_MODEL = 'xkb-model'; + this._KEY_PER_WINDOW = 'per-window'; + +- this._settings = new Gio.Settings({schema_id: this._DESKTOP_INPUT_SOURCES_SCHEMA}); +- this._settings.connect(`changed::${this._KEY_INPUT_SOURCES}`, this._emitInputSourcesChanged.bind(this)); ++ this._settings = settings; ++ this._settings.connect(`changed::${KEY_INPUT_SOURCES}`, this._emitInputSourcesChanged.bind(this)); + this._settings.connect(`changed::${this._KEY_KEYBOARD_OPTIONS}`, this._emitKeyboardOptionsChanged.bind(this)); + this._settings.connect(`changed::${this._KEY_KEYBOARD_MODEL}`, this._emitKeyboardModelChanged.bind(this)); + this._settings.connect(`changed::${this._KEY_PER_WINDOW}`, this._emitPerWindowChanged.bind(this)); +@@ -308,7 +309,7 @@ class InputSourceSessionSettings extends InputSourceSettings { + } + + get inputSources() { +- return this._getSourcesList(this._KEY_INPUT_SOURCES); ++ return this._getSourcesList(KEY_INPUT_SOURCES); + } + + get mruSources() { +@@ -363,13 +364,6 @@ export class InputSourceManager extends Signals.EventEmitter { + Meta.KeyBindingFlags.IS_REVERSED, + Shell.ActionMode.ALL, + this._switchInputSource.bind(this)); +- if (Main.sessionMode.isGreeter) +- this._settings = new InputSourceSystemSettings(); +- else +- this._settings = new InputSourceSessionSettings(); +- this._settings.connect('input-sources-changed', this._inputSourcesChanged.bind(this)); +- this._settings.connect('keyboard-options-changed', this._keyboardOptionsChanged.bind(this)); +- this._settings.connect('keyboard-model-changed', this._keyboardModelChanged.bind(this)); + + this._xkbInfo = KeyboardManager.getXkbInfo(); + this._keyboardManager = KeyboardManager.getKeyboardManager(); +@@ -381,16 +375,56 @@ export class InputSourceManager extends Signals.EventEmitter { + this._ibusManager.connect('property-updated', this._ibusPropertyUpdated.bind(this)); + this._ibusManager.connect('set-content-type', this._ibusSetContentType.bind(this)); + ++ this._inputSettings = new Gio.Settings({schema_id: DESKTOP_INPUT_SOURCES_SCHEMA}); ++ this._setupInputSettings(); ++ + global.display.connect('modifiers-accelerator-activated', this._modifiersSwitcher.bind(this)); + + this._sourcesPerWindow = false; + this._focusWindowNotifyId = 0; +- this._settings.connect('per-window-changed', this._sourcesPerWindowChanged.bind(this)); + this._sourcesPerWindowChanged(); + this._disableIBus = false; + this._reloading = false; + } + ++ _sessionHasNoInputSettings() { ++ return this._inputSettings.get_user_value(KEY_INPUT_SOURCES) === null; ++ } ++ ++ _reloadInputSettings() { ++ const hadNoSessionInputSettings = this._hasNoSessionInputSettings; ++ ++ if (Main.sessionMode.isGreeter) ++ this._hasNoSessionInputSettings = true; ++ else ++ this._hasNoSessionInputSettings = this._sessionHasNoInputSettings(); ++ ++ if (this._settings && hadNoSessionInputSettings === this._hasNoSessionInputSettings) ++ return; ++ ++ this._settings?.disconnectObject(this); ++ ++ if (this._hasNoSessionInputSettings) ++ this._settings = new InputSourceSystemSettings(); ++ else ++ this._settings = new InputSourceSessionSettings(this._inputSettings); ++ ++ this._settings.connectObject( ++ 'input-sources-changed', this._inputSourcesChanged.bind(this), ++ 'keyboard-options-changed', this._keyboardOptionsChanged.bind(this), ++ 'keyboard-model-changed', this._keyboardModelChanged.bind(this), ++ 'per-window-changed', this._sourcesPerWindowChanged.bind(this), ++ this); ++ this.reload(); ++ } ++ ++ _setupInputSettings() { ++ if (!Main.sessionMode.isGreeter) ++ this._inputSettings.connect(`changed::${KEY_INPUT_SOURCES}`, this._reloadInputSettings.bind(this)); ++ ++ this._reloadInputSettings(); ++ } ++ + reload() { + this._reloading = true; + this._keyboardManager.setKeyboardOptions(this._settings.keyboardOptions); +-- +2.43.1 + diff --git a/anda/desktops/gnome/gnome-shell/0003-status-keyboard-Use-gnome-desktop-API-for-getting-de.patch b/anda/desktops/gnome/gnome-shell/0003-status-keyboard-Use-gnome-desktop-API-for-getting-de.patch new file mode 100644 index 0000000000..3e8af0cabc --- /dev/null +++ b/anda/desktops/gnome/gnome-shell/0003-status-keyboard-Use-gnome-desktop-API-for-getting-de.patch @@ -0,0 +1,128 @@ +From d060baeb69a2a7d80fe403fc8eec90e20aa6cb7f Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Wed, 16 Aug 2023 14:09:50 -0400 +Subject: [PATCH 3/3] status/keyboard: Use gnome-desktop API for getting + default input sources list + +At the moment, gnome-shell tries to figure out the default input sources +from localed. It fails to take into account the system locale and input +methods. + +This commit switches it to use a new function in gnome-desktop, +gnome_get_default_input_sources, which does most of the heavy +lifting itself, instead. +--- + js/ui/status/keyboard.js | 59 ++++++++++++++++++---------------------- + 1 file changed, 27 insertions(+), 32 deletions(-) + +diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js +index d91eb41bc6..19c36031f6 100644 +--- a/js/ui/status/keyboard.js ++++ b/js/ui/status/keyboard.js +@@ -3,6 +3,7 @@ + import Clutter from 'gi://Clutter'; + import Gio from 'gi://Gio'; + import GLib from 'gi://GLib'; ++import GnomeDesktop from 'gi://GnomeDesktop'; + import GObject from 'gi://GObject'; + import IBus from 'gi://IBus'; + import Meta from 'gi://Meta'; +@@ -25,6 +26,8 @@ export const INPUT_SOURCE_TYPE_IBUS = 'ibus'; + const DESKTOP_INPUT_SOURCES_SCHEMA = 'org.gnome.desktop.input-sources'; + const KEY_INPUT_SOURCES = 'sources'; + ++Gio._promisify(GnomeDesktop, 'get_default_input_sources'); ++ + export const LayoutMenuItem = GObject.registerClass( + class LayoutMenuItem extends PopupMenu.PopupBaseMenuItem { + _init(displayName, shortName) { +@@ -202,9 +205,9 @@ class InputSourceSystemSettings extends InputSourceSettings { + this._BUS_IFACE = 'org.freedesktop.locale1'; + this._BUS_PROPS_IFACE = 'org.freedesktop.DBus.Properties'; + +- this._layouts = ''; +- this._variants = ''; +- this._options = ''; ++ this._inputSourceIds = []; ++ this._inputSourceTypes = []; ++ this._options = []; + this._model = ''; + + this._reload().catch(error => { +@@ -221,30 +224,22 @@ class InputSourceSystemSettings extends InputSourceSettings { + } + + async _reload() { +- let props; ++ let inputSourceIds; ++ let inputSourceTypes; ++ let options; ++ let model; + try { +- const result = await Gio.DBus.system.call( +- this._BUS_NAME, +- this._BUS_PATH, +- this._BUS_PROPS_IFACE, +- 'GetAll', +- new GLib.Variant('(s)', [this._BUS_IFACE]), +- null, Gio.DBusCallFlags.NONE, -1, null); +- [props] = result.deepUnpack(); ++ [inputSourceIds, inputSourceTypes, options, model] = ++ await GnomeDesktop.get_default_input_sources(null); + } catch (e) { +- log(`Could not get properties from ${this._BUS_NAME}`); ++ logError(e, 'Could not get default input sources'); + return; + } + +- const layouts = props['X11Layout'].unpack(); +- const variants = props['X11Variant'].unpack(); +- const options = props['X11Options'].unpack(); +- const model = props['X11Model'].unpack(); +- +- if (layouts !== this._layouts || +- variants !== this._variants) { +- this._layouts = layouts; +- this._variants = variants; ++ if (inputSourceIds !== this._inputSourceIds || ++ inputSourceTypes !== this._inputSourceTypes) { ++ this._inputSourceIds = inputSourceIds; ++ this._inputSourceTypes = inputSourceTypes; + this._emitInputSourcesChanged(); + } + if (options !== this._options) { +@@ -258,21 +253,21 @@ class InputSourceSystemSettings extends InputSourceSettings { + } + + get inputSources() { +- let sourcesList = []; +- let layouts = this._layouts.split(','); +- let variants = this._variants.split(','); +- +- for (let i = 0; i < layouts.length && !!layouts[i]; i++) { +- let id = layouts[i]; +- if (variants[i]) +- id += `+${variants[i]}`; +- sourcesList.push({type: INPUT_SOURCE_TYPE_XKB, id}); ++ let sourcesList; ++ ++ if (this._inputSourceIds) { ++ sourcesList = this._inputSourceIds.map((id, index) => { ++ return {type: this._inputSourceTypes[index], id}; ++ }); ++ } else { ++ sourcesList = []; + } ++ + return sourcesList; + } + + get keyboardOptions() { +- return this._options.split(','); ++ return this._options; + } + + get keyboardModel() { +-- +2.43.1 + diff --git a/anda/desktops/gnome/gnome-shell/3193.patch b/anda/desktops/gnome/gnome-shell/3193.patch new file mode 100644 index 0000000000..d4dd536ce2 --- /dev/null +++ b/anda/desktops/gnome/gnome-shell/3193.patch @@ -0,0 +1,98 @@ +From c8c05c4a142f3de9c17a9ca83692dda364abccc8 Mon Sep 17 00:00:00 2001 +From: Jan200101 +Date: Thu, 15 Feb 2024 16:05:40 +0100 +Subject: [PATCH] shell-app: Improve discrete GPU detection + +--- + .../net.hadess.SwitcherooControl.xml | 3 +- + src/shell-app.c | 60 +++++++++++++++++++ + 2 files changed, 62 insertions(+), 1 deletion(-) + +diff --git a/data/dbus-interfaces/net.hadess.SwitcherooControl.xml b/data/dbus-interfaces/net.hadess.SwitcherooControl.xml +index e52bc1a0d25..59a889654f4 100644 +--- a/data/dbus-interfaces/net.hadess.SwitcherooControl.xml ++++ b/data/dbus-interfaces/net.hadess.SwitcherooControl.xml +@@ -38,7 +38,8 @@ + will contain a user-facing name for the GPU, the "Environment" (as) key will + contain an array of even number of strings, each being an environment + variable to set to use the GPU, followed by its value, the "Default" (b) key +- will tag the default (usually integrated) GPU. ++ will tag the default GPU, the "Discrete" (b) key tags if the GPU is a ++ dedicated component. + --> + + +diff --git a/src/shell-app.c b/src/shell-app.c +index 371bc6cf762..39f220ba954 100644 +--- a/src/shell-app.c ++++ b/src/shell-app.c +@@ -1300,6 +1300,66 @@ apply_discrete_gpu_env (GAppLaunchContext *context, + } + + num_children = g_variant_n_children (variant); ++ ++ // Check if the Default GPU is Discrete ++ for (i = 0; i < num_children; i++) ++ { ++ g_autoptr(GVariant) gpu = NULL; ++ g_autoptr(GVariant) env = NULL; ++ g_autoptr(GVariant) default_variant = NULL; ++ g_autoptr(GVariant) discrete_variant = NULL; ++ g_autofree const char **env_s = NULL; ++ ++ gpu = g_variant_get_child_value (variant, i); ++ if (!gpu || ++ !g_variant_is_of_type (gpu, G_VARIANT_TYPE ("a{s*}"))) ++ continue; ++ ++ /* Skip over non-default GPUs */ ++ default_variant = g_variant_lookup_value (gpu, "Default", NULL); ++ if (!default_variant || !g_variant_get_boolean (default_variant)) ++ continue; ++ ++ /* break out if default GPU is not discrete */ ++ discrete_variant = g_variant_lookup_value (gpu, "Discrete", NULL); ++ if (!discrete_variant || !g_variant_get_boolean (discrete_variant)) ++ break; ++ ++ // Default GPU is discrete, no need to do anything ++ return; ++ } ++ ++ // Find the first Discrete GPU ++ for (i = 0; i < num_children; i++) ++ { ++ g_autoptr(GVariant) gpu = NULL; ++ g_autoptr(GVariant) env = NULL; ++ g_autoptr(GVariant) discrete_variant = NULL; ++ g_autofree const char **env_s = NULL; ++ guint j; ++ ++ gpu = g_variant_get_child_value (variant, i); ++ if (!gpu || ++ !g_variant_is_of_type (gpu, G_VARIANT_TYPE ("a{s*}"))) ++ continue; ++ ++ /* Skip over non-discrete GPUs */ ++ discrete_variant = g_variant_lookup_value (gpu, "Discrete", NULL); ++ if (!discrete_variant || !g_variant_get_boolean (discrete_variant)) ++ continue; ++ ++ env = g_variant_lookup_value (gpu, "Environment", NULL); ++ if (!env) ++ continue; ++ ++ env_s = g_variant_get_strv (env, NULL); ++ for (j = 0; env_s[j] != NULL; j = j + 2) ++ g_app_launch_context_setenv (context, env_s[j], env_s[j+1]); ++ return; ++ } ++ ++ // fallback to old behavior ++ // find the first non-Default GPU + for (i = 0; i < num_children; i++) + { + g_autoptr(GVariant) gpu = NULL; +-- +GitLab + diff --git a/anda/desktops/gnome/gnome-shell/anda.hcl b/anda/desktops/gnome/gnome-shell/anda.hcl new file mode 100644 index 0000000000..2b9ead9f9e --- /dev/null +++ b/anda/desktops/gnome/gnome-shell/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + rpm { + spec = "gnome-shell.spec" + } + labels { + subrepo = "extras" + updbranch = 1 + } +} diff --git a/anda/desktops/gnome/gnome-shell/changelog b/anda/desktops/gnome/gnome-shell/changelog new file mode 100644 index 0000000000..260698e2e2 --- /dev/null +++ b/anda/desktops/gnome/gnome-shell/changelog @@ -0,0 +1,1484 @@ +* Sat Mar 25 2023 Adam Williamson - 44.0-4 +- Backport MR #2725 - *another* fix for screenshot notifications + +* Fri Mar 24 2023 Adam Williamson - 44.0-3 +- Backport a fix for screenshot notifications + +* Sun Mar 19 2023 Florian Müllner - 44.0-2 +- Fix timed logout + Resolves: #2177853 + +* Sun Mar 19 2023 Florian Müllner - 44.0-1 +- Update to 44.0 + +* Tue Mar 14 2023 Dominik Mierzejewski - 44~rc-2 +- Recommend gnome-bluetooth instead of requiring it + Resolves rhbz#2172653 + +* Mon Mar 06 2023 Florian Müllner - 44~rc-1 +- Update to 44.rc + +* Sun Mar 05 2023 Ray Strode - 44~beta-3 +- Fix slowdown in at shutdown + Resolves: #2174753 + +* Mon Feb 20 2023 Adam Williamson - 44~beta-2 +- Rebuild without changes for Bodhi reasons + +* Tue Feb 14 2023 Florian Müllner - 44~beta-1 +- Update to 44.beta + +* Thu Jan 19 2023 Fedora Release Engineering - 43.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Nov 21 2022 Adam Williamson - 43.1-4 +- Backport MR #2548 to fix keyboard shortcut inhibiting + +* Thu Nov 17 2022 Jonas Ådahl - 43.1-3 +- Backport missing screencast if gstreamer1-vaapi is installed + +* Wed Nov 16 2022 Adam Williamson - 43.1-2 +- Backport MR #2534 to fix layout switching in password entries + +* Fri Nov 04 2022 Florian Müllner - 43.1-1 +- Update to 43.1 + +* Tue Oct 11 2022 Adam Williamson - 43.0-3 +- Backport MR2508 to fix OSK space entry (#2131837) + +* Thu Sep 22 2022 Kalev Lember - 43.0-2 +- Backport MR2487 and MR2495 to fix input sources sorting (#2121110) + +* Sat Sep 17 2022 Florian Müllner - 43.0-1 +- Update to 43.0 + +* Thu Sep 15 2022 Kalev Lember - 43~rc-3 +- Backport a fix for initial setup session input sources sorting (#2121110) + +* Tue Sep 06 2022 Kalev Lember - 43~rc-2 +- Backport upstream fix to fix boot options (#2124043) + +* Sun Sep 04 2022 Florian Müllner - 43~rc-1 +- Update to 43.rc + +* Fri Sep 02 2022 Kalev Lember - 43~beta-3 +- Add missing dep on gcr + +* Thu Aug 11 2022 Kalev Lember - 43~beta-2 +- Bump minimum required gjs version + +* Wed Aug 10 2022 Florian Müllner - 43~beta-1 +- Update to 43.beta + +* Thu Jul 21 2022 Fedora Release Engineering - 43~alpha-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jul 19 2022 Milan Crha - 43~alpha-2 +- Rebuilt for evolution-data-server soname version bump +- Add patch to port to gcr4 + +* Sun Jul 10 2022 Florian Müllner - 43~alpha-1 +- Update to 43.alpha + +* Sat May 28 2022 Florian Müllner - 42.2-1 +- Update to 42.2 + +* Fri May 06 2022 Florian Müllner - 42.1-1 +- Update to 42.1 + +* Mon Apr 18 2022 Florian Müllner - 42.0-3 +- Fix monitor config switches with p (#2073406) +- Fix stuck cover pane after startup animation (#2063156) + +* Tue Mar 15 2022 Adam Williamson - 42.0-2 +- Backport MR #2242 to fix new user default folder creation (#2064473) + +* Sun Mar 13 2022 Florian Müllner - 42.0-1 +- Update to 42.0 + +* Wed Mar 09 2022 Adam Williamson - 42~rc-2 +- Backport MR #2238 to fix crashes on first login + +* Mon Mar 07 2022 Florian Müllner - 42~rc-1 +- Update to 42.rc + +* Tue Mar 01 2022 Adam Williamson - 42~beta-4 +- Update the MR #2185 backport + +* Tue Mar 01 2022 Adam Williamson - 42~beta-3 +- Backport MR #2185 to fix some styling issues at lower resolutions + +* Wed Feb 16 2022 David King - 42~beta-2 +- Update some dependency versions + +* Tue Feb 15 2022 Florian Müllner - 42~beta-1 +- Update to 42.beta + +* Thu Jan 20 2022 Fedora Release Engineering - 42~alpha-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jan 14 2022 David King - 42~alpha-2 +- Fix gweather4 dependency + +* Fri Jan 14 2022 David King - 42~alpha-1 +- Update to 42.alpha +- Use pkgconfig for BuildRequires + +* Fri Oct 29 2021 Adam Williamson - 41.0-8 +- Backport MR #2011 to further fix unexpected scrolling (#2017192) + +* Wed Oct 27 2021 Ray Strode - 41.0-7 +- Use correct patch for fixing unlock screen confusion + +* Tue Oct 26 2021 Jonas Ådahl - 41.0-6 +- Work around crashy tear down + +* Tue Oct 26 2021 Ray Strode - 41.0-5 +- Fix unlock screen confusion when hitting escape too much + +* Tue Oct 12 2021 Ray Strode - 41.0-4 +- Fix StPasswordEntry crash + Resolves: #2009637 + +* Thu Oct 07 2021 Adam Williamson - 41.0-3 +- Backport MR #1983 to fix wrong OSD icons (#2011872) + +* Tue Oct 05 2021 Kalev Lember - 41.0-2 +- Backport upstream patch to fix scrolling to incorrect positions + +* Sun Sep 19 2021 Florian Müllner - 41.0-1 +- Update to 41.0 + +* Tue Sep 14 2021 Ray Strode - 41~rc.1-2 +- Drop extra capabilities from gnome-shell. They're optional and they break shutdown from the login screen with new glibs. + Resolves: #1996998 + +* Tue Sep 07 2021 Florian Müllner - 41~rc.1-1 +- Update to 41.rc.1 + +* Sun Sep 05 2021 Florian Müllner - 41~rc-1 +- Update to 41.rc + +* Wed Aug 18 2021 Florian Müllner - 41~beta-1 +- Update to 41.beta + +* Thu Jul 22 2021 Fedora Release Engineering - 40.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jul 12 2021 Florian Müllner - 40.3-1 +- Update to 40.3 + +* Thu Jun 10 2021 Florian Müllner - 40.2-1 +- Update to 40.2 + +* Thu May 13 2021 Florian Müllner - 40.1-1 +- Update to 40.1 + +* Fri Apr 30 2021 Kalev Lember - 40.0-6 +- Move gnome-tour dep here from gnome-initial-setup (#1955179) + +* Wed Apr 28 2021 Benjamin Berg - 40.0-5 +- Update fix for password auth after background service failure + Related: #1942443 + +* Fri Apr 23 2021 Benjamin Berg - 40.0-4 +- Fix password auth after secondary service failure + Related: #1942443 + +* Tue Apr 13 2021 Adam Williamson - 40.0-3 +- Fix scrolling between workspaces/app grid pages with PgUp/PgDn + +* Tue Apr 13 2021 Ray Strode - 40.0-2 +- Fix timed login when user list is disabled + Resolves: #1940618 + +* Sat Mar 20 2021 Florian Müllner - 40.0-1 +- Update to 40.0 + +* Mon Mar 15 2021 Florian Müllner - 40.0~rc-1 +- Update to 40.rc + +* Thu Mar 11 2021 Kalev Lember - 40.0~beta-4.20210304git7a57528bd +- Recommend gnome-session-xsession rather than hard-require it + +* Mon Mar 08 2021 Florian Müllner - 40.0~beta-3.20210304git40.7a57528bd +- Fix crash after launching apps via drag-and-drop + +* Thu Mar 04 2021 Florian Müllner - 40.0~beta-2.20210304git40.7a57528bd +- Build snapshot of current upstream + +* Tue Feb 23 2021 Florian Müllner - 40.0~beta-1 +- Update to 40.beta + +* Mon Feb 22 2021 Kalev Lember - 40.0~alpha.1.1-9.20210212git829a096ba +- Add missing requires on gstreamer1-plugins-good and xdg-user-dirs-gtk (#1931342) + +* Sun Feb 14 2021 Florian Müllner - 40.0~alpha.1.1-8.20210212git829a096ba +- Only open app picker on left-click/touch + +* Sun Feb 14 2021 Florian Müllner - 40.0~alpha.1.1-7.20210212git829a096ba +- Don't open app picker when clicking minimap + +* Fri Feb 12 2021 Florian Müllner - 40.0~alpha.1.1-6.20210212git829a096ba +- Update snapshot to current upstream +- Allow opening app picker by clicking overview background + +* Fri Feb 12 2021 Milan Crha - 40.0~alpha.1.1-5.20210202git9ce666ac1 +- Rebuilt for evolution-data-server soname version bump + +* Tue Feb 02 2021 Florian Müllner - 40.0~alpha.1.1-4.20210202git9ce666ac1 +- Build snapshot of current upstream + +* Tue Jan 26 2021 Fedora Release Engineering - 40.0~alpha.1.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jan 19 2021 Kalev Lember - 40.0~alpha.1.1-2 +- Require libgweather >= 40~alpha for new application_id property + +* Mon Jan 18 2021 Florian Müllner - 40.alpha.1.1-1 +- Update to 40.alpha.1.1 + +* Fri Jan 15 2021 Florian Müllner - 40.alpha.1-1 +- Update to 40.alpha.1 + +* Wed Dec 02 2020 Florian Müllner - 40.alpha-1 +- Update to 40.alpha + +* Tue Oct 13 2020 Florian Müllner - 3.38.1-2 +- Fix crash on size change (non-)transitions + +* Mon Oct 05 2020 Florian Müllner - 3.38.1-1 +- Update to 3.38.1 + +* Tue Sep 29 2020 David King - 3.38.0-2 +- Better specify xdg-desktop-portal-gtk dependency (#1882894) + +* Mon Sep 14 2020 Florian Müllner - 3.38.0-1 +- Update to 3.38.0 + +* Thu Sep 10 2020 Kalev Lember - 3.37.92-5 +- Set minimum gnome-settings-daemon version for Screencast proxy changes + +* Wed Sep 09 2020 Kalev Lember - 3.37.92-4 +- Add missing pipewire-gstreamer dependency for screen recorder + +* Sun Sep 06 2020 Florian Müllner - 3.37.92-1 +- Update to 3.37.92 + +* Wed Sep 02 2020 Florian Müllner - 3.37.91-3 +- Add missing pipewire dependency for screen recorder + +* Wed Aug 26 2020 Kalev Lember - 3.37.91-2 +- Add PolicyKit-authentication-agent virtual provides + +* Mon Aug 24 2020 Florian Müllner - 3.37.91-1 +- Update to 3.37.91 + +* Sun Aug 23 2020 Kalev Lember - 3.37.90-2 +- Backport a fix for launching apps under X11 (#1870234) + +* Fri Aug 14 2020 Florian Müllner - 3.37.90-1 +- Update to 3.37.90 + +* Sat Aug 01 2020 Fedora Release Engineering - 3.37.3-4 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 3.37.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 13 2020 Milan Crha - 3.37.3-2 +- Rebuilt for evolution-data-server soname version bump + +* Tue Jul 07 2020 Florian Müllner - 3.37.3-1 +- Update to 3.37.3 + +* Fri Jul 03 2020 Milan Crha - 3.37.2-2 +- Rebuilt for evolution-data-server soname version bump + +* Wed Jun 03 2020 Florian Müllner - 3.37.2-1 +- Update to 3.37.2 + +* Wed May 20 2020 Stephen Gallagher - 3.37.1-3 +- Fix crashes when locking the screen while certain extensions are active +- Resolves: rhbz#1817082 + +* Mon May 04 2020 Adam Williamson - 3.37.1-2 +- Fix panel to show input methods (MR #1235) + +* Thu Apr 30 2020 Florian Müllner - 3.36.1-2 +- Backport fixup for spring animation fix + +* Tue Mar 31 2020 Florian Müllner - 3.36.1-1 +- Update to 3.36.1 +- Remove gnome-extensions-app subpackage (will move to a separate .spec) + +* Wed Mar 25 2020 Ray Strode - 3.36.0-4 +- Clear environment on logout + Fixes log in to Xorg right after log out from wayland + Resolves: #1815487 + +* Wed Mar 11 2020 Adam Williamson - 3.36.0-3 +- Backport fix for input method preedit issue (MR #1084) + +* Tue Mar 10 2020 Adam Williamson - 3.36.0-2 +- Backport fix for ibus failing to start automatically (MR #1080) + +* Sat Mar 07 2020 Florian Müllner - 3.36.0-1 +- Update to 3.36.0 + +* Sun Mar 01 2020 Florian Müllner - 3.35.92-1 +- Update to 3.35.92 + +* Tue Feb 18 2020 Florian Müllner - 3.35.91-1 +- Update to 3.35.91 + +* Fri Feb 07 2020 Kalev Lember - 3.35.90-2 +- Adjust the favorites patch to include the apps we install by default + +* Thu Feb 06 2020 Florian Müllner - 3.35.90-1 +- Update to 3.35.90 + +* Tue Jan 28 2020 Fedora Release Engineering - 3.35.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jan 16 2020 Kalev Lember - 3.35.3-2 +- Rebuilt for libgnome-desktop soname bump + +* Sun Jan 05 2020 Florian Müllner - 3.35.3-2 +- Update to 3.35.3 + +* Wed Dec 11 2019 Florian Müllner - 3.35.2-1 +- Udpate to 3.35.2 + +* Sat Oct 12 2019 Florian Müllner - 3.35.1-1 +- Update to 3.35.1 + +* Sat Oct 12 2019 Adam Williamson - 3.34.1-2 +- Backport MR #754 to fix #1749433 + +* Wed Oct 09 2019 Florian Müllner - 3.34.1-1 +- Update to 3.34.1 + +* Tue Sep 24 2019 Debarshi Ray - 3.34.0-3 +- Stop NOTIFY_SOCKET from leaking into the GNOME environment + +* Fri Sep 20 2019 Florian Müllner - 3.34.0-2 +- Fix disappearing icons in frequent view + +* Mon Sep 09 2019 Florian Müllner - 3.34.0-1 +- Update to 3.34.0 + +* Thu Sep 05 2019 Kalev Lember - 3.33.92-1 +- Update to 3.33.92 + +* Mon Aug 26 2019 Kalev Lember - 3.33.91-1 +- Update to 3.33.91 + +* Fri Aug 23 2019 Adam Williamson - 3.33.90-2 +- Revert commit that causes #1740897 (overview type-to-search bug) + Resolves: #1740897 + +* Sat Aug 10 2019 Florian Müllner - 3.33.90-1 +- Update to 3.33.90 + +* Thu Jul 25 2019 Fedora Release Engineering - 3.33.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Jul 20 2019 Florian Müllner - 3.33.4-1 +- Update to 3.33.4 + +* Mon Jun 24 2019 Florian Mülllner - 3.33.3-1 +- Update to 3.33.3 + +* Wed May 22 2019 Florian Müllner - 3.33.2-1 +- Update to 3.33.2 + +* Wed May 22 2019 Kalev Lember - 3.33.1-2 +- Rebuild for libecal-2.0 + +* Tue May 14 2019 Florian Müllner - 3.33.1-1 +- Update to 3.33.1 + +* Wed Apr 17 2019 Florian Müllner - 3.32.1-1 +- Update to 3.32.1 + +* Wed Apr 17 2019 Adam Williamson - 3.32.0-3 +- Backport MR #463 and MR #494 to fix a couple of bugs + Resolves: #1696270 + Resolves: #1690429 + +* Sat Mar 23 2019 Phil Wyett - 3.32.0-2 +- Update source URL +- Add gcc BuildRequires +- Update versions required for gjs and mutter + +* Tue Mar 12 2019 Florian Müllner - 3.32.0-1 +- Update to 3.32.0 + +* Tue Mar 05 2019 Florian Müllner - 3.31.92-1 +- Update to 3.31.92 + +* Thu Feb 21 2019 Florian Müllner - 3.31.91-1 +- Update to 3.31.91 + +* Mon Feb 11 2019 Adam Williamson - 3.31.90-2 +- Backport MR #402 to fix missing logo on login screen + +* Thu Feb 07 2019 Florian Müllner - 3.31.90-1 +- Update to 3.31.90 + +* Thu Jan 31 2019 Fedora Release Engineering - 3.31.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jan 10 2019 Florian Müllner - 3.31.4-1 +- Update to 3.31.4 + +* Fri Dec 14 2018 Adam Williamson - 3.31.2-3 +- Backport several bugfix commits from current git master + +* Fri Nov 30 2018 Adam Williamson - 3.31.2-2 +- Backport PR #293 to fix 'empty input method indicator' bug + +* Wed Nov 14 2018 Florian Müllner - 3.31.2-1 +- Update to 3.31.2 + +* Mon Nov 12 2018 Mohan Boddu - 3.30.1-3 +- Rebuilt for evolution-data-server soname bump + +* Tue Oct 23 2018 Jonas Ådahl - 3.30.1-2 +- Backport keyboard layout change fixes (rhbz#1637418) + +* Mon Oct 08 2018 Florian Müllner - 3.30.1-1 +- Update to 3.30.1 + +* Thu Sep 27 2018 Hans de Goede - 3.30.0-9 +- Add downstream patches implementing the "Boot Options" menu from: + https://wiki.gnome.org/Design/OS/BootOptions + +* Sat Sep 22 2018 Adam Williamson - 3.30.0-8 +- Backport fix for IBus type issue (GGO MR #228) + +* Wed Sep 19 2018 Adam Williamson - 3.30.0-7 +- Replace dnd fix from -5 with upstream version (GGO MR #209) +- Fix a window destroy crash which can occur with new gjs (GGO #539) +- Fix a window menu issue on multi-monitor systems (GGO MR #227) +- Fix hover and active states for some buttons (GGO #523) + +* Wed Sep 19 2018 Adam Williamson - 3.30.0-6 +- Fix missing key description in ssh key unlock prompt (GGO #574) + +* Wed Sep 19 2018 Ray Strode - 3.30.0-5 +- Fix lock up when dropping icon on dash + Resolves: #1630134 + +* Tue Sep 18 2018 Adam Williamson - 3.30.0-4 +- Fix connecting to wifi from user menu (RHBZ #1628263) + +* Sat Sep 15 2018 Adam Williamson - 3.30.0-3 +- Backport fix for GGO #140 from upstream master + +* Thu Sep 13 2018 Kalev Lember - 3.30.0-2 +- Require xdg-desktop-portal-gtk + +* Tue Sep 04 2018 Florian Müllner - 3.30.0-1 +- Update to 3.30.0 + +* Wed Aug 29 2018 Florian Müllner - 3.29.92-1 +- Update to 3.29.92 + +* Mon Aug 20 2018 Florian Müllner - 3.29.91-1 +- Update to 3.29.91 + +* Thu Aug 09 2018 Debarshi Ray - 3.29.90-2 +- Remove telepathy-logger and telepathy-glib runtime dependencies + +* Wed Aug 01 2018 Florian Müllner - 3.29.90-1 +- Update to 3.29.90 + +* Wed Jul 18 2018 Florian Müllner - 3.29.4-1 +- Update to 3.29.4 + +* Fri Jul 13 2018 Fedora Release Engineering - 3.29.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu May 24 2018 Florian Müllner - 3.29.2-1 +- Update to 3.29.2 + +* Wed May 09 2018 Florian Müllner - 3.29.1-3 +- Fix automatic connection to wireless networks without stored secrets + +* Sun Apr 29 2018 Adam Williamson - 3.29.1-2 +- Backport fix for password entry modifier key issues (#1569211) + +* Wed Apr 25 2018 Florian Müllner - 3.29.1-1 +- Update to 3.29.1 + +* Tue Apr 24 2018 Ray Strode - 3.28.1-2 +- pull polkit cancel lock up from upstream + Resolves: #1568213 + +* Fri Apr 13 2018 Florian Müllner - 3.28.1-1 +- Update to 3.28.1 + +* Mon Mar 12 2018 Florian Müllner - 3.28.0-1 +- Update to 3.28.0 + +* Mon Mar 05 2018 Florian Müllner - 3.27.92-1 +- Update to 3.27.92 + +* Thu Feb 22 2018 Lubomir Rintel - 3.27.91-2 +- Replace libnm-gtk with libnma + +* Wed Feb 21 2018 Florian Müllner - 3.27.91-1 +- Update to 3.27.91 + +* Wed Feb 07 2018 Kalev Lember - 3.27.1-5 +- Rebuilt for evolution-data-server soname bump + +* Mon Jan 22 2018 Adam Williamson - 3.27.1-4 +- Backport fix for crasher bug BGO #788931 (#1469129) + +* Tue Dec 19 2017 Kalev Lember - 3.27.1-3 +- Explicitly require libnm-gtk (#1509496) + +* Wed Nov 08 2017 Milan Crha - 3.27.1-2 +- Rebuild for newer libical + +* Tue Oct 17 2017 Florian Müllner - 3.27.1-1 +- Update to 3.27.1 + +* Wed Oct 04 2017 Florian Müllner - 3.26.1-1 +- Update to 3.26.1 + +* Thu Sep 21 2017 Florian Müllner - 3.26.0-2 +- Fix crash on fast status icon remapping + +* Tue Sep 12 2017 Florian Müllner - 3.26.0-1 +- Update to 3.26.0 + +* Tue Aug 22 2017 Florian Müllner - 3.25.91-1 +- Update to 3.25.91 + +* Fri Aug 11 2017 Kevin Fenzi - 3.25.90-2 +- Rebuild with older working rpm + +* Thu Aug 10 2017 Florian Müllner - 3.25.90-1 +- Update to 3.25.90 + +* Wed Aug 02 2017 Fedora Release Engineering - 3.25.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 3.25.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jul 20 2017 Florian Müllner - 3.25.4-1 +- Update to 3.25.4 + +* Wed Jun 21 2017 Florian Müllner - 3.25.3-1 +- Update to 3.25.3 + +* Thu May 25 2017 Florian Müllner - 3.25.2-1 +- Update to 3.25.2 + +* Thu Apr 27 2017 Florian Müllner - 3.25.1-1 +- Update to 3.25.1 + +* Tue Apr 11 2017 Florian Müllner - 3.24.1-1 +- Update to 3.24.1 + +* Mon Mar 20 2017 Florian Müllner - 3.24.0-1 +- Update to 3.24.0 + +* Thu Mar 16 2017 Igor Gnatenko - 3.23.92-2 +- Fix wrong runtime requirements + +* Tue Mar 14 2017 Florian Müllner - 3.23.92-1 +- Update to 3.23.92 + +* Wed Mar 01 2017 Florian Müllner - 3.23.91-1 +- Update to 3.23.91 + +* Thu Feb 16 2017 Florian Müllner - 3.23.90-1 +- Update to 3.23.90 + +* Tue Feb 14 2017 Richard Hughes - 3.23.3-1 +- Update to 3.23.3 + +* Fri Feb 10 2017 Fedora Release Engineering - 3.23.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Dec 19 2016 Miro Hrončok - 3.23.2-3 +- Rebuild for Python 3.6 + +* Tue Dec 6 2016 Rui Matos - 3.23.2-2 +- Tighten mutter version dependency for plugin API changes + Resolves: #1401886 + +* Wed Nov 23 2016 Florian Müllner - 3.23.2-1 +- Update to 3.23.2 + +* Sun Oct 30 2016 Florian Müllner - 3.23.1-1 +- Update to 3.23.1 + +* Fri Oct 21 2016 Bastien Nocera - 3.22.1-2 +- Add patches to allow launching on discrete GPU when available + +* Tue Oct 11 2016 Florian Müllner - 3.22.1 +- Update to 3.22.1 + +* Mon Sep 19 2016 Florian Müllner - 3.22.0 +- Update to 3.22.0 + +* Tue Sep 13 2016 Florian Müllner - 3.21.92 +- Update to 3.21.92 + +* Fri Sep 09 2016 Kalev Lember - 3.21.91-2 +- Drop libgsystem dependency + +* Tue Aug 30 2016 Florian Müllner - 3.21.91 +- Update to 3.21.91 + +* Sat Aug 20 2016 Florian Müllner - 3.21.90.1-1 +- Update to 3.21.90.1 + (Fixes a corrupt .desktop file that made it from the build directory into + the 3.21.90 tarball) + +* Fri Aug 19 2016 Florian Müllner - 3.21.90-1 +- Update to 3.21.90 + +* Wed Jul 20 2016 Florian Müllner - 3.21.4-1 +- Update to 3.21.4 + +* Mon Jul 18 2016 Milan Crha - 3.21.3-2 +- Rebuild for newer evolution-data-server + +* Tue Jun 21 2016 Florian Müllner - 3.21.3-1 +- Update to 3.21.3 + +* Tue Jun 21 2016 Milan Crha - 3.21.2-2 +- Rebuild for newer evolution-data-server + +* Thu May 26 2016 Florian Müllner - 3.21.2-1 +- Update to 3.21.2 + +* Fri Apr 29 2016 Florian Müllner - 3.21.1-1 +- Update to 3.21.1 + +* Fri Apr 15 2016 David Tardon - 3.20.1-2 +- rebuild for ICU 57.1 + +* Wed Apr 13 2016 Florian Müllner - 3.20.1-1 +- Update to 3.20.1 + +* Tue Mar 22 2016 Florian Müllner - 3.20.0-1 +- Update to 3.20.0 + +* Wed Mar 16 2016 Florian Müllner - 3.19.92-1 +- Update to 3.19.92 + +* Thu Mar 03 2016 Florian Müllner - 3.19.91-1 +- Update to 3.19.91 + +* Fri Feb 19 2016 Florian Müllner - 3.19.90-1 +- Update to 3.19.90 + +* Tue Feb 16 2016 Milan Crha - 3.19.4-3 +- Rebuild for newer evolution-data-server + +* Wed Feb 03 2016 Fedora Release Engineering - 3.19.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Jan 21 2016 Florian Müllner - 3.19.4-1 +- Update to 3.19.4 + +* Mon Jan 18 2016 David Tardon - 3.19.3-2 +- rebuild for libical 2.0.0 + +* Thu Dec 17 2015 Florian Müllner - 3.19.3-1 +- Update to 3.19.3 + +* Tue Dec 01 2015 Kalev Lember - 3.19.2-2 +- Bump gsettings-desktop-schemas dep to 3.19.2 + +* Wed Nov 25 2015 Florian Müllner - 3.19.2-1 +- Update to 3.19.2 + +* Tue Nov 10 2015 Ray Strode 3.19.1-3.20151110 +- Update to git snapshot + +* Sun Nov 01 2015 Kalev Lember - 3.19.1-2 +- Fix gnome-shell crashing in gdm mode (#1276833) + +* Thu Oct 29 2015 Florian Müllner - 3.19.1-1 +- Update to 3.19.1 + +* Thu Oct 15 2015 Florian Müllner - 3.18.1-1 +- Update to 3.18.1 + +* Mon Sep 21 2015 Florian Müllner - 3.18.0-1 +- Update to 3.18.0 + +* Wed Sep 16 2015 Florian Müllner - 3.17.92-1 +- Update to 3.17.92 + +* Thu Sep 03 2015 Florian Müllner - 3.17.91-1 +- Update to 3.17.91 + +* Thu Aug 20 2015 Florian Müllner - 3.17.90-1 +- Update to 3.17.90 + +* Wed Aug 19 2015 Kalev Lember - 3.17.4-2 +- Create empty directories for extensions and search providers +- Move desktop file validation to %%check section +- Use make_install macro + +* Thu Jul 23 2015 Florian Müllner - 3.17.4-1 +- Update to 3.17.4 + +* Wed Jul 22 2015 Milan Crha - 3.17.3-3 +- Rebuild for newer evolution-data-server + +* Sat Jul 04 2015 Kalev Lember - 3.17.3-2 +- Require gobject-introspection 1.45.3 + +* Thu Jul 02 2015 Florian Müllner - 3.17.3-1 +- Update to 3.17.3 + +* Wed Jun 17 2015 Fedora Release Engineering - 3.17.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed May 27 2015 Florian Müllner - 3.17.2-1 +- Update to 3.17.2 + +* Thu Apr 30 2015 Florian Müllner - 3.17.1-1 +- Update to 3.17.1 + +* Tue Apr 28 2015 Milan Crha - 3.16.1-2 +- Rebuild for newer evolution-data-server + +* Tue Apr 14 2015 Florian Müllner - 3.16.1-1 +- Update to 3.16.1 + +* Mon Mar 23 2015 Florian Müllner - 3.16.0-1 +- Update to 3.16.0 + +* Tue Mar 17 2015 Kalev Lember - 3.15.92-2 +- Update minimum dep versions +- Use license macro for the COPYING file + +* Tue Mar 17 2015 Florian Müllner - 3.15.92-1 +- Update to 3.15.92 + +* Tue Mar 17 2015 Ray Strode 3.15.91-2 +- Drop dep on NetworkManager-config-connectivity-fedora + It's already required by fedora-release-workstation + +* Wed Mar 04 2015 Florian Müllner - 3.15.91-1 +- Update to 3.15.91 + +* Fri Feb 20 2015 Florian Müllner - 3.15.90-1 +- Update to 3.15.90 + +* Tue Feb 17 2015 Milan Crha - 3.15.4-2 +- Rebuild against newer evolution-data-server + +* Wed Jan 21 2015 Florian Müllner - 3.15.4-1 +- Update to 3.15.4 + +* Fri Dec 19 2014 Florian Müllner - 3.15.3-1 +- Update to 3.15.3 + +* Thu Nov 27 2014 Florian Müllner - 3.15.2-1 +- Update to 3.15.2 + +* Thu Oct 30 2014 Florian Müllner - 3.15.1-1 +- Update to 3.15.1 + +* Tue Oct 14 2014 Florian Müllner - 3.14.1-1 +- Update to 3.14.1 + +* Tue Sep 23 2014 Kalev Lember - 3.14.0-2 +- Drop unused gnome-menus dependency + +* Mon Sep 22 2014 Florian Müllner - 3.14.0-1 +- Update to 3.14.0 + +* Wed Sep 17 2014 Florian Müllner - 3.13.92-1 +- Update to 3.13.92 + +* Wed Sep 03 2014 Florian Müllner - 3.13.91-1 +- Update to 3.13.91 + +* Wed Aug 20 2014 Florian Müllner - 3.13.90-1 +- Update to 3.13.90 + +* Sat Aug 16 2014 Fedora Release Engineering - 3.13.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Thu Jul 31 2014 Milan Crha - 3.13.4-3 +- Rebuild against newer evolution-data-server + +* Mon Jul 28 2014 Adel Gadllah - 3.13.4-2 +- Require NetworkManager-config-connectivity-fedora + +* Wed Jul 23 2014 Florian Müllner - 3.13.4-1 +- Update to 3.13.4 + +* Tue Jul 22 2014 Kalev Lember - 3.13.3-2 +- Rebuilt for gobject-introspection 1.41.4 + +* Fri Jun 27 2014 Florian Müllner - 3.13.3-1 +- New gobject-introspection has been built, drop the last patch again + +* Wed Jun 25 2014 Florian Müllner - 3.13.3-1 +- Revert annotation updates until we get a new gobject-introspection build + +* Wed Jun 25 2014 Florian Müllner - 3.13.3-1 +- Update to 3.13.3 + +* Sat Jun 07 2014 Fedora Release Engineering - 3.13.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue May 27 2014 Florian Müllner - 3.13.2-1 +- Update to 3.13.2 + +* Thu May 01 2014 Kalev Lember - 3.13.1-2 +- Pull in libgsystem + +* Wed Apr 30 2014 Florian Müllner - 3.13.1-1 +- Update to 3.13.1 + +* Tue Apr 15 2014 Florian Müllner - 3.12.1-1 +- Update to 3.12.1 + +* Sat Apr 05 2014 Kalev Lember - 3.12.0-2 +- Update dep versions + +* Tue Mar 25 2014 Florian Müllner - 3.12.0-1 +- Update to 3.12.0 + +* Wed Mar 19 2014 Florian Müllner - 3.11.92-1 +- Update to 3.11.92 + +* Wed Mar 12 2014 Adam Williamson - 3.11.91-2 +- update to final revision of background bug fix from upstream (BGO #722149) + +* Thu Mar 06 2014 Florian Müllner - 3.11.91-1 +- Update to 3.11.91 + +* Mon Mar 03 2014 Adam Williamson - 3.11.90-5 +- backport fixes to fix drag-and-drop workspace creation (BGO #724686) + +* Wed Feb 26 2014 Adam Williamson - 3.11.90-4 +- backport a couple of bugfixes from BGO for things that annoy me + +* Sat Feb 22 2014 Florian Müllner - 3.11.90-3 +- Add dependency on gnome-control-center - several panels are referenced + by a number of menu items + +* Thu Feb 20 2014 Kalev Lember - 3.11.90-2 +- Rebuilt for cogl soname bump + +* Thu Feb 20 2014 Florian Müllner - 3.11.90-1 +- Update to 3.11.90 + +* Mon Feb 10 2014 Peter Hutterer - 3.11.5-3 +- Rebuild for libevdev soname bump + +* Wed Feb 05 2014 Adam Williamson - 3.11.5-2 +- build against new gjs (and hence mozjs24) + +* Wed Feb 05 2014 Richard Hughes - 3.11.5-1 +- Update to 3.11.5 + +* Mon Feb 03 2014 Milan Crha - 3.11.4-2 +- Rebuild against newer evolution-data-server + +* Thu Jan 16 2014 Florian Müllner - 3.11.4-1 +- Update to 3.11.4 + +* Tue Jan 14 2014 Milan Crha - 3.11.3-2 +- Rebuild against newer evolution-data-server + +* Fri Dec 20 2013 Florian Müllner - 3.11.3-1 +- Update to 3.11.3 + +* Thu Nov 21 2013 Milan Crha - 3.11.2-3 +- Rebuild for new libical (RH bug #1023020) + +* Tue Nov 19 2013 Milan Crha - 3.11.2-2 +- Rebuild against newer evolution-data-server + +* Wed Nov 13 2013 Florian Müllner - 3.11.2-1 +- Update to 3.11.2 + +* Wed Oct 30 2013 Florian Müllner - 3.11.1-1 +- Update to 3.11.1 + +* Fri Oct 25 2013 Florian Müllner - 3.10.1-2 +- Rebuild for new e-d-s + +* Tue Oct 15 2013 Florian Müllner - 3.10.1-1 +- Update to 3.10.1 + +* Wed Sep 25 2013 Kalev Lember - 3.10.0.1-1 +- Update to 3.10.0.1 + +* Tue Sep 24 2013 Florian Müllner - 3.10.0-1 +- Update to 3.10.0 + +* Wed Sep 18 2013 Matthias Clasen - 3.9.92-3 +- Build against mutter-wayland + +* Tue Sep 17 2013 Florian Müllner - 3.9.92-1 +- Update to 3.9.92 + +* Tue Sep 03 2013 Florian Müllner - 3.9.91-1 +- Update to 3.9.91 + +* Thu Aug 22 2013 Florian Müllner - 3.9.90-1 +- Update to 3.9.90 + +* Mon Aug 19 2013 Adam Williamson - 3.9.5-3 +- Rebuild for new e-d-s + +* Sat Aug 10 2013 Kalev Lember - 3.9.5-2 +- Drop the bluez revert patch as we now have new enough gnome-bluetooth + +* Tue Jul 30 2013 Florian Müllner - 3.9.5 +- Update to 3.9.5 + +* Mon Jul 29 2013 Adam Williamson - 3.9.4-2 +- rebuild against updated evolution-data-server + +* Wed Jul 10 2013 Florian Müllner - 3.9.4-1 +- Update to 3.9.4 + +* Wed Jul 10 2013 Milan Crha - 3.9.3-3 +- Rebuild against newer evolution-data-server + +* Wed Jul 10 2013 Kalev Lember - 3.9.3-2 +- Add a downstream patch to revert back to bluez 4 + +* Tue Jun 18 2013 Florian Müllner - 3.9.3-1 +- Update to 3.9.3 + +* Tue May 28 2013 Florian Müllner - 3.9.2-1 +- Update to 3.9.2 + +* Sat May 25 2013 Rex Dieter 3.9.1-3 +- rebuild (libical) + +* Wed May 01 2013 Kalev Lember - 3.9.1-2 +- Add missing telepathy-logger runtime dep +- Depend on gnome-session-xsession so that it gets pulled in for + typical GNOME installs + +* Wed May 01 2013 Florian Müllner - 3.9.1-1 +- Update to 3.9.1 + +* Tue Apr 16 2013 Florian Müllner - 3.8.1-1 +- Update to 3.8.1 + +* Thu Mar 28 2013 Adel Gadllah - 3.8.0.1-2 +- Ship the perf tool + +* Wed Mar 27 2013 Ray Strode - 3.8.0.1-1 +- Update to 3.8.0.1 + +* Tue Mar 26 2013 Florian Müllner - 3.8.0-1 +- Update to 3.8.0 + +* Tue Mar 19 2013 Florian Müllner - 3.7.92-1 +- Update to 3.7.92 + +* Tue Mar 05 2013 Florian Müllner - 3.7.91-1 +- Update to 3.7.91 + +* Wed Feb 20 2013 Florian Müllner - 3.7.90-1 +- Update to 3.7.90 + +* Wed Feb 06 2013 Kalev Lember - 3.7.5-2 +- Rebuilt for libgcr soname bump + +* Wed Feb 06 2013 Florian Müllner - 3.7.5-1 +- Update to 3.7.5 + +* Fri Jan 25 2013 Peter Robinson 3.7.4.1-2 +- Rebuild for new cogl + +* Thu Jan 17 2013 Florian Müllner - 3.7.4.1-1 +- Update to 3.7.4.1 + +* Tue Jan 15 2013 Florian Müllner - 3.7.4-1 +- Update to 3.7.4 + +* Wed Jan 09 2013 Richard Hughes - 3.7.3.1-1 +- Update to 3.7.3.1 + +* Tue Dec 18 2012 Florian Müllner 3.7.3-1 +- Update to 3.7.3 + +* Mon Dec 17 2012 Adam Jackson 3.7.2-3 +- Also don't mangle rpath on power + +* Mon Dec 10 2012 Adam Jackson 3.7.2-2 +- Disable bluetooth on power + +* Mon Nov 19 2012 Florian Müllner - 3.7.2-1 +- Update to 3.7.2 + +* Tue Nov 13 2012 Dan Horák - 3.7.1-2 +- don't Require: gnome-bluetooth on s390(x) + +* Fri Nov 09 2012 Kalev Lember - 3.7.1-1 +- Update to 3.7.1 + +* Wed Oct 31 2012 Brian Pepple - 3.6.1-5 +- Rebuild against latest telepathy-logger + +* Thu Oct 25 2012 Milan Crha - 3.6.1-4 +- Rebuild against newer evolution-data-server + +* Sat Oct 20 2012 Dan Horák - 3.6.1-3 +- explicit BR: control-center as it isn't brought in indirectly on s390(x) + +* Thu Oct 18 2012 Florian Müllner - 3.6.1-2 +- Remove avoid-redhat-menus patch + + The standard way of supporting a desktop-specific menu layout is + to set XDG_MENU_PREFIX (which we made gnome-session do now). + +* Mon Oct 15 2012 Florian Müllner - 3.6.1-1 +- Update to 3.6.1 + +* Tue Sep 25 2012 Florian Müllner - 3.6.0-1 +- Update to 3.6.0 + +* Wed Sep 19 2012 Florian Müllner - 3.5.92-1 +- Update to 3.5.92 + +* Tue Sep 11 2012 Florian Müllner - 3.5.91-1 +- Update dependencies + +* Tue Sep 04 2012 Richard Hughes - 3.5.91-1 +- Update to 3.5.91 + +* Tue Aug 28 2012 Matthias Clasen - 3.5.90-3 +- Rebuild against new cogl/clutter + +* Mon Aug 27 2012 Debarshi Ray - 3.5.90-2 +- Rebuild for new libcamel and synchronize gnome-bluetooth Requires with + BuildRequires. + +* Wed Aug 22 2012 Richard Hughes - 3.5.90-1 +- Update to 3.5.90 + +* Tue Aug 14 2012 Debarshi Ray - 3.5.5-2 +- Add Requires: gnome-bluetooth >= 3.5.5 + +* Mon Aug 13 2012 Debarshi Ray - 3.5.5-1 +- Update to 3.5.5 + +* Fri Jul 27 2012 Fedora Release Engineering - 3.5.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat Jul 21 2012 Kalev Lember - 3.5.4-4 +- Tighten runtime requires + +* Thu Jul 19 2012 Matthias Clasen - 3.5.4-3 +- Add a gdm-libs dependency + +* Wed Jul 18 2012 Colin Walters - 3.5.4-2 +- Bump release + +* Wed Jul 18 2012 Ray Strode 3.5.4-1 +- Update to 3.5.4 + +* Tue Jun 26 2012 Matthias Clasen - 3.5.3-2 +- Rebuild against new e-d-s + +* Tue Jun 26 2012 Matthias Clasen - 3.5.3-1 +- Update to 3.5.3 + +* Thu Jun 07 2012 Richard Hughes - 3.5.2-2 +- Remove upstreamed patch + +* Thu Jun 07 2012 Richard Hughes - 3.5.2-1 +- Update to 3.5.2 + +* Mon May 28 2012 Peter Robinson - 3.4.1-6 +- Cherry pick F17 changes, bump build for new evo soname + +* Wed May 16 2012 Owen Taylor - 3.4.1-5 +- New version of unmount notification + +* Tue May 15 2012 Owen Taylor - 3.4.1-4 +- Add a patch to display a notification until it's safe to remove a drive (#819492) + +* Fri Apr 20 2012 Owen Taylor - 3.4.1-3 +- Add a patch from upstream to avoid a crash when Evolution is not installed (#814401) + +* Wed Apr 18 2012 Kalev Lember - 3.4.1-2 +- Silence glib-compile-schemas scriplets + +* Wed Apr 18 2012 Kalev Lember - 3.4.1-1 +- Update to 3.4.1 + +* Thu Apr 5 2012 Owen Taylor - 3.4.0-2 +- Change gnome-shell-favourite-apps-firefox.patch to also patch the JS code + to handle the transition from mozilla-firefox.desktop to firefox.desktop. + (#808894, reported by Jonathan Kamens) + +* Tue Mar 27 2012 Richard Hughes - 3.4.0-1 +- Update to 3.4.0 + +* Wed Mar 21 2012 Matthias Clasen - 3.3.92-1 +- Update to 3.3.92 + +* Sat Mar 10 2012 Matthias Clasen - 3.3.90-2 +- Rebuild for new cogl + +* Sat Feb 25 2012 Matthias Clasen - 3.3.90-1 +- Update to 3.3.90 + +* Thu Feb 9 2012 Matthias Clasen - 3.3.5-2 +- Depend on accountsservice-libs (#755112) + +* Tue Feb 7 2012 Matthias Clasen - 3.3.5-1 +- Update to 3.3.5 + +* Fri Jan 20 2012 Matthias Clasen - 3.3.4-1 +- Update to 3.3.4 + +* Thu Jan 19 2012 Matthias Clasen - 3.3.3-2 +- Rebuild for new cogl + +* Thu Jan 5 2012 Matthias Clasen - 3.3.3-1 +- Update to 3.3.3 + +* Sun Nov 27 2011 Peter Robinson - 3.3.2-2 +- Rebuild for new clutter and e-d-s + +* Wed Nov 23 2011 Matthias Clasen - 3.3.2-1 +- Update to 3.3.2 + +* Wed Nov 09 2011 Kalev Lember - 3.2.1-6 +- Adapt to firefox desktop file name change in F17 + +* Thu Nov 03 2011 Adam Jackson 3.2.1-5 +- Build with -Wno-error=disabled-declarations for the moment + +* Wed Nov 02 2011 Brian Pepple - 3.2.1-4 +- Rebuld against tp-logger. + +* Sun Oct 30 2011 Bruno Wolff III - 3.2.1-3 +- Rebuild for new evolution-data-server + +* Wed Oct 26 2011 Fedora Release Engineering - 3.2.1-2 +- Rebuilt for glibc bug#747377 + +* Wed Oct 19 2011 Matthias Clasen - 3.2.1-1 +- Update to 3.2.1 + +* Wed Sep 28 2011 Ray Strode 3.2.0-2 +- rebuild + +* Mon Sep 26 2011 Owen Taylor - 3.2.0-1 +- Update to 3.2.0 + +* Tue Sep 20 2011 Matthias Clasen - 3.1.92-1 +- Update to 3.1.92 + +* Fri Sep 16 2011 Kalev Lember - 3.1.91.1-2 +- Tighten dependencies by specifying the required arch (#739130) + +* Wed Sep 14 2011 Owen Taylor - 3.1.91.1-1 +- Update to 3.1.91.1 (adds browser plugin) + Update Requires + +* Thu Sep 08 2011 Dan Horák - 3.1.91-3 +- workaround a chrpath issue on s390(x) + +* Wed Sep 07 2011 Kalev Lember - 3.1.91-2 +- Replace Epiphany with Firefox in the default favourite apps + +* Wed Sep 7 2011 Matthias Clasen - 3.1.91-1 +- Update to 3.1.91 + +* Thu Sep 1 2011 Matthias Clasen - 3.1.90.1-2 +- Require caribou + +* Wed Aug 31 2011 Matthias Clasen - 3.1.90.1-1 +- Update to 3.1.90.1 + +* Wed Aug 31 2011 Adam Williamson - 3.1.4-3.gite7b9933 +- rebuild against e-d-s + +* Fri Aug 19 2011 Matthias Clasen - 3.1.4-2.gite7b9933 +- git snapshot that builds against gnome-menus 3.1.5 + +* Thu Aug 18 2011 Matthew Barnes - 3.1.5-1 +- Rebuild against newer eds libraries. + +* Wed Jul 27 2011 Matthias Clasen - 3.1.4-1 +- Update to 3.1.4 + +* Wed Jul 27 2011 Matthias Clasen - 3.1.3-4 +- Rebuild + +* Tue Jul 26 2011 Matthias Clasen - 3.1.3-3 +- Add necessary requires + +* Mon Jul 25 2011 Matthias Clasen - 3.1.3-2 +- Rebuild + +* Tue Jul 5 2011 Peter Robinson - 3.1.3-1 +- Upstream 3.1.3 dev release + +* Mon Jun 27 2011 Adam Williamson - 3.0.2-4 +- add fixes from f15 branch (gjs dep and rpath) + +* Wed Jun 22 2011 Owen Taylor - 3.0.2-3 +- Add a patch from upstream to avoid g_file_get_contents() + +* Fri Jun 17 2011 Tomas Bzatek - 3.0.2-2 +- Rebuilt for new gtk3 and gnome-desktop3 + +* Wed May 25 2011 Owen Taylor - 3.0.2-1 +- Update to 3.0.2 + +* Tue May 10 2011 Dan Williams - 3.0.1-4 +- Fix initial connections to WPA Enterprise access points (#699014) +- Fix initial connections to mobile broadband networks + +* Thu Apr 28 2011 Dan Horák - 3.0.1-3 +- no bluetooth on s390(x) + +* Wed Apr 27 2011 Owen Taylor - 3.0.1-2 +- Add a patch from upstream to fix duplicate applications in application display + +* Mon Apr 25 2011 Owen Taylor - 3.0.1-1 +- Update to 3.0.1 + +* Mon Apr 11 2011 Colin Walters - 3.0.0.2-2 +- We want to use the GNOME menus which has the designed categories, + not the legacy redhat-menus. + +* Fri Apr 08 2011 Nils Philippsen - 3.0.0.2-1 +- Update to 3.0.0.2 (fixes missing import that was preventing extensions from + loading.) +- Update source URL + +* Tue Apr 5 2011 Owen Taylor - 3.0.0.1-1 +- Update to 3.0.0.1 (fixes bug where network menu could leave + Clutter event handling stuck.) + +* Mon Apr 4 2011 Owen Taylor - 3.0.0-1 +- Update to 3.0.0 + +* Tue Mar 29 2011 Brian Pepple - 2.91.93-3 +- Bump + +* Tue Mar 29 2011 Brian Pepple - 2.91.93-2 +- Rebuild for new tp-logger + +* Mon Mar 28 2011 Owen Taylor - 2.91.93-1 +- Update to 2.91.93. + +* Fri Mar 25 2011 Ray Strode 2.91.92-3 +- Adjustments for More nm-client api changes. +- Fix VPN indicator + +* Thu Mar 24 2011 Christopher Aillon - 2.91.92-2 +- Make activating vpn connections work from the shell indicator + +* Wed Mar 23 2011 Matthias Clasen - 2.91.92-1 +- Update to 2.91.92 + +* Wed Mar 16 2011 Michel Salim - 2.91.91-2 +- Fix alt-tab behavior on when primary display is not leftmost (# 683932) + +* Tue Mar 8 2011 Owen Taylor - 2.91.91-1 +- Update to 2.91.91 + +* Tue Feb 22 2011 Matthias Clasen - 2.91.90-2 +- Require upower and polkit at runtime + +* Tue Feb 22 2011 Matthias Clasen - 2.91.90-1 +- Update to 2.91.90 + +* Thu Feb 10 2011 Matthias Clasen - 2.91.6-6 +- Rebuild against newer gtk + +* Tue Feb 08 2011 Fedora Release Engineering - 2.91.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Thu Feb 3 2011 Bill Nottingham - 2.91.6-4 +- buildrequire gnome-bluetooth to fix bluetooth status icon (#674874) + +* Wed Feb 2 2011 Matthias Clasen - 2.91.6-3 +- Rebuild against newer gtk + +* Tue Feb 1 2011 Owen Taylor - 2.91.6-2 +- Build-requires evolution-data-server-devel + +* Tue Feb 1 2011 Owen Taylor - 2.91.6-1 +- Update to 2.91.6 + +* Thu Jan 13 2011 Mattihas Clasen - 2.91.5-3 +- Drop desktop-effects dependency + +* Wed Jan 12 2011 Colin Walters - 2.91.5-2 +- BR latest g-i, handles flags as arguments better + +* Tue Jan 11 2011 Matthias Clasen - 2.91.5-1 +- Update to 2.91.5 + +* Sat Jan 8 2011 Matthias Clasen - 2.91.4-1 +- Update to 2.91.4 +- Rebuild against new gtk + +* Fri Dec 3 2010 Matthias Clasen - 2.91.3-2 +- Rebuild aginst new gtk + +* Mon Nov 29 2010 Owen Taylor - 2.91.2-1 +- Update to 2.91.3 + +* Thu Nov 18 2010 Owen Taylor - 2.91.2-3 +- Add another memory-management crasher fix from upstream + +* Mon Nov 15 2010 Owen Taylor - 2.91.2-2 +- Add a patch from upstream fixing a memory-management crasher + +* Tue Nov 9 2010 Owen Taylor - 2.91.2-1 +- Update to 2.91.2 + +* Mon Nov 1 2010 Owen Taylor - 2.91.1-1 +- Update to 2.91.1 +- Add libcroco-devel to BuildRequires, apparently it was getting + pulled in indirectly before +- Add libcanberra-devel and pulseaudio-libs-devel BuildRequires + +* Mon Oct 4 2010 Owen Taylor - 2.91.0-1 +- Update to 2.91.0 +- Remove patch to disable VBlank syncing + +* Thu Aug 12 2010 Colin Walters - 2.31.5-7 +- Add patch to disable vblank syncing + +* Tue Jul 13 2010 Colin Walters - 2.31.5-5 +- Run glib-compile-schemas + +* Tue Jul 13 2010 Colin Walters - 2.31.5-4 +- Bless stuff in files section + +* Tue Jul 13 2010 Colin Walters - 2.31.5-3 +- Axe gnome-desktop-devel + +* Tue Jul 13 2010 Adel Gadllah - 2.31.5-2 +- BuildRequire gnome-desktop3-devel, gtk3 + +* Mon Jul 12 2010 Colin Walters - 2.31.5-1 +- New upstream version +- Drop rpath goop, shouldn't be necessary any more + +* Fri Jun 25 2010 Colin Walters - 2.31.2-3 +- Drop gir-repository-devel build dependency + +* Fri May 28 2010 Adam Miller - 2.31.2-2 +- Added new version requirements for dependencies based on upstream releases +- Added new file listings for gnome-shell-clock-preferences binary and .desktop +- Added gnome-shell man page file listing + +* Wed May 26 2010 Adam Miller - 2.31.2-1 +- New upstream release + +* Fri Mar 26 2010 Colin Walters - 2.29.1-3 +- Specify V=1 for build, readd smp_mflags since parallel is fixed upstream + +* Thu Mar 25 2010 Adam Miller - 2.29.1-2 +- Bumped for new version of mutter and clutter +- Added version requirement to gjs-devel because of dependency of build + +* Wed Mar 24 2010 Adam Miller - 2.29.1-1 +- Update to latest version 2.29.1 + +* Sun Feb 21 2010 Bastien Nocera 2.28.1-0.2.20100128git +- Require json-glib +- Rebuild for new clutter with json split out +- Fix deprecation in COGL + +* Thu Jan 28 2010 Adam Miller - 2.28.1-0.1.20100128git +- New git snapshot +- Fixed Version for alphatag use + +* Fri Jan 15 2010 Adam Miller - 2.28.0.20101015git-1 +- Added dependency on a git build of gobject-introspect to solve some breakage +- Also went ahead and made a new git tarball + +* Tue Jan 12 2010 Adam Miller - 2.28.0.20100112git-1 +- New git snapshot + +* Mon Dec 07 2009 Adam Miller - 2.28.0.20091206git-5 +- Added libtool, glib-gettext for the libtoolize dep of git snapshot + +* Mon Dec 07 2009 Adam Miller - 2.28.0.20091206git-4 +- Added gnome-common needed by autogen.sh in git snapshot build + +* Sun Dec 06 2009 Adam Miller - 2.28.0.20091206git-3 +- Added the autotools needed to build the git snapshot to the build requires + +* Sun Dec 06 2009 Adam Miller - 2.28.0.20091206git-2 +- Fixed the setup naming issue with the git snapshot directory naming + +* Sun Dec 06 2009 Adam Miller - 2.28.0.20091206git-1 +- Update to git snapshot on 20091206 + +* Wed Oct 7 2009 Owen Taylor - 2.28.0-2 +- Update to 2.28.0 + +* Tue Sep 15 2009 Owen Taylor - 2.27.3-1 +- Update to 2.27.3 + +* Fri Sep 4 2009 Owen Taylor - 2.27.2-2 +- Test for gobject-introspection version should be >= not > + +* Fri Sep 4 2009 Owen Taylor - 2.27.2-1 +- Update to 2.27.2 +- Add an explicit dep on gobject-introspection 0.6.5 which is required + for the new version + +* Sat Aug 29 2009 Owen Taylor - 2.27.1-4 +- Fix GConf %%preun script to properly be for package removal + +* Fri Aug 28 2009 Owen Taylor - 2.27.1-3 +- Replace libgnomeui with gnome-desktop in BuildRequires + +* Fri Aug 28 2009 Owen Taylor - 2.27.1-2 +- BuildRequire intltool +- Add find_lang + +* Fri Aug 28 2009 Owen Taylor - 2.27.1-1 +- Update to 2.27.1 +- Update Requires, add desktop-effects + +* Wed Aug 12 2009 Owen Taylor - 2.27.0-4 +- Add an explicit dependency on GConf2 for pre/post + +* Tue Aug 11 2009 Owen Taylor - 2.27.0-3 +- Add missing BuildRequires on gir-repository-devel + +* Tue Aug 11 2009 Owen Taylor - 2.27.0-2 +- Temporarily use a non-parallel-build until gnome-shell is fixed + +* Mon Aug 10 2009 Owen Taylor - 2.27.0-1 +- Initial version + diff --git a/anda/desktops/gnome/gnome-shell/gitignore b/anda/desktops/gnome/gnome-shell/gitignore new file mode 100644 index 0000000000..45e71025a0 --- /dev/null +++ b/anda/desktops/gnome/gnome-shell/gitignore @@ -0,0 +1,227 @@ +gnome-shell-2.31.5.tar.bz2 +/gnome-shell-2.91.0.tar.bz2 +/gnome-shell-2.91.1.tar.bz2 +/gnome-shell-2.91.2.tar.bz2 +/gnome-shell-2.91.3.tar.bz2 +/gnome-shell-2.91.4.tar.bz2 +/gnome-shell-2.91.5.tar.bz2 +/gnome-shell-2.91.6.tar.bz2 +/gnome-shell-2.91.90.tar.bz2 +/gnome-shell-2.91.91.tar.bz2 +/gnome-shell-2.91.92.tar.bz2 +/gnome-shell-2.91.93.tar.bz2 +/gnome-shell-3.0.0.tar.bz2 +/gnome-shell-3.0.0.1.tar.bz2 +/gnome-shell-3.0.0.2.tar.bz2 +/gnome-shell-3.0.1.tar.bz2 +/gnome-shell-3.0.2.tar.bz2 +/gnome-shell-3.1.3.tar.bz2 +/gnome-shell-3.1.4.tar.xz +/gnome-shell-3.1.4-gite7b9933.tar.bz2 +/gnome-shell-3.1.90.1.tar.xz +/gnome-shell-3.1.91.tar.xz +/gnome-shell-3.1.91.1.tar.xz +/gnome-shell-3.1.92.tar.xz +/gnome-shell-3.2.0.tar.xz +/gnome-shell-3.2.1.tar.xz +/gnome-shell-3.3.2.tar.xz +/gnome-shell-3.3.3.tar.xz +/gnome-shell-3.3.4.tar.xz +/gnome-shell-3.3.5.tar.xz +/gnome-shell-3.3.90.tar.xz +/gnome-shell-3.3.92.tar.xz +/gnome-shell-3.4.0.tar.xz +/gnome-shell-3.4.1.tar.xz +/gnome-shell-3.5.2.tar.xz +/gnome-shell-3.5.3.tar.xz +/gnome-shell-3.5.4.tar.xz +/gnome-shell-3.5.5.tar.xz +/gnome-shell-3.5.90.tar.xz +/gnome-shell-3.5.91.tar.xz +/gnome-shell-3.5.92.tar.xz +/gnome-shell-3.6.0.tar.xz +/gnome-shell-3.6.1.tar.xz +/gnome-shell-3.7.1.tar.xz +/gnome-shell-3.7.2.tar.xz +/gnome-shell-3.7.3.tar.xz +/gnome-shell-3.7.3.1.tar.xz +/gnome-shell-3.7.4.tar.xz +/gnome-shell-3.7.4.1.tar.xz +/gnome-shell-3.7.5.tar.xz +/gnome-shell-3.7.90.tar.xz +/gnome-shell-3.7.91.tar.xz +/gnome-shell-3.7.92.tar.xz +/gnome-shell-3.8.0.tar.xz +/gnome-shell-3.8.0.1.tar.xz +/gnome-shell-3.8.1.tar.xz +/gnome-shell-3.9.1.tar.xz +/gnome-shell-3.9.2.tar.xz +/gnome-shell-3.9.3.tar.xz +/gnome-shell-3.9.4.tar.xz +/gnome-shell-3.9.5.tar.xz +/gnome-shell-3.9.90.tar.xz +/gnome-shell-3.9.91.tar.xz +/gnome-shell-3.9.92.tar.xz +/gnome-shell-3.10.0.tar.xz +/gnome-shell-3.10.0.1.tar.xz +/gnome-shell-3.10.1.tar.xz +/gnome-shell-3.11.1.tar.xz +/gnome-shell-3.11.2.tar.xz +/gnome-shell-3.11.3.tar.xz +/gnome-shell-3.11.4.tar.xz +/gnome-shell-3.11.5.tar.xz +/gnome-shell-3.11.90.tar.xz +/gnome-shell-3.11.91.tar.xz +/gnome-shell-3.11.92.tar.xz +/gnome-shell-3.12.0.tar.xz +/gnome-shell-3.12.1.tar.xz +/gnome-shell-3.13.1.tar.xz +/gnome-shell-3.13.2.tar.xz +/gnome-shell-3.13.3.tar.xz +/gnome-shell-3.13.4.tar.xz +/gnome-shell-3.13.90.tar.xz +/gnome-shell-3.13.91.tar.xz +/gnome-shell-3.13.92.tar.xz +/gnome-shell-3.14.0.tar.xz +/gnome-shell-3.14.1.tar.xz +/gnome-shell-3.15.1.tar.xz +/gnome-shell-3.15.2.tar.xz +/gnome-shell-3.15.3.tar.xz +/gnome-shell-3.15.4.tar.xz +/gnome-shell-3.15.90.tar.xz +/gnome-shell-3.15.91.tar.xz +/gnome-shell-3.15.92.tar.xz +/gnome-shell-3.16.0.tar.xz +/gnome-shell-3.16.1.tar.xz +/gnome-shell-3.17.1.tar.xz +/gnome-shell-3.17.2.tar.xz +/gnome-shell-3.17.3.tar.xz +/gnome-shell-3.17.4.tar.xz +/gnome-shell-3.17.90.tar.xz +/gnome-shell-3.17.91.tar.xz +/gnome-shell-3.17.92.tar.xz +/gnome-shell-3.18.0.tar.xz +/gnome-shell-3.18.1.tar.xz +/gnome-shell-3.19.1.tar.xz +/gnome-shell-3.19.2.tar.xz +/gnome-shell-3.19.3.tar.xz +/gnome-shell-3.19.4.tar.xz +/gnome-shell-3.19.90.tar.xz +/gnome-shell-3.19.91.tar.xz +/gnome-shell-3.19.92.tar.xz +/gnome-shell-3.20.0.tar.xz +/gnome-shell-3.20.1.tar.xz +/gnome-shell-3.21.1.tar.xz +/gnome-shell-3.21.2.tar.xz +/gnome-shell-3.21.3.tar.xz +/gnome-shell-3.21.4.tar.xz +/gnome-shell-3.21.90.tar.xz +/gnome-shell-3.21.90.1.tar.xz +/gnome-shell-3.21.91.tar.xz +/gnome-shell-3.21.92.tar.xz +/gnome-shell-3.22.0.tar.xz +/gnome-shell-3.22.1.tar.xz +/gnome-shell-3.23.1.tar.xz +/gnome-shell-3.23.2.tar.xz +/gnome-shell-3.23.3.tar.xz +/gnome-shell-3.23.90.tar.xz +/gnome-shell-3.23.91.tar.xz +/gnome-shell-3.23.92.tar.xz +/gnome-shell-3.24.0.tar.xz +/gnome-shell-3.24.1.tar.xz +/gnome-shell-3.25.1.tar.xz +/gnome-shell-3.25.2.tar.xz +/gnome-shell-3.25.3.tar.xz +/gnome-shell-3.25.4.tar.xz +/gnome-shell-3.25.90.tar.xz +/gnome-shell-3.25.91.tar.xz +/gnome-shell-3.26.0.tar.xz +/gnome-shell-3.26.1.tar.xz +/gnome-shell-3.27.1.tar.xz +/gnome-shell-3.27.91.tar.xz +/gnome-shell-3.27.92.tar.xz +/gnome-shell-3.28.0.tar.xz +/gnome-shell-3.28.1.tar.xz +/gnome-shell-3.29.1.tar.xz +/gnome-shell-3.29.2.tar.xz +/gnome-shell-3.29.4.tar.xz +/gnome-shell-3.29.90.tar.xz +/gnome-shell-3.29.91.tar.xz +/gnome-shell-3.29.92.tar.xz +/gnome-shell-3.30.0.tar.xz +/gnome-shell-3.30.1.tar.xz +/gnome-shell-3.31.2.tar.xz +/gnome-shell-3.31.4.tar.xz +/gnome-shell-3.31.90.tar.xz +/gnome-shell-3.31.91.tar.xz +/gnome-shell-3.31.92.tar.xz +/gnome-shell-3.32.0.tar.xz +/gnome-shell-3.32.1.tar.xz +/gnome-shell-3.33.1.tar.xz +/gnome-shell-3.33.2.tar.xz +/gnome-shell-3.33.3.tar.xz +/gnome-shell-3.33.4.tar.xz +/gnome-shell-3.33.90.tar.xz +/gnome-shell-3.33.91.tar.xz +/gnome-shell-3.33.92.tar.xz +/gnome-shell-3.34.0.tar.xz +/gnome-shell-3.34.1.tar.xz +/gnome-shell-3.35.1.tar.xz +/gnome-shell-3.35.2.tar.xz +/gnome-shell-3.35.3.tar.xz +/gnome-shell-3.35.90.tar.xz +/gnome-shell-3.35.91.tar.xz +/gnome-shell-3.35.92.tar.xz +/gnome-shell-3.36.0.tar.xz +/gnome-shell-3.36.1.tar.xz +/gnome-shell-3.37.1.tar.xz +/gnome-shell-3.37.2.tar.xz +/gnome-shell-3.37.3.tar.xz +/gnome-shell-3.37.90.tar.xz +/gnome-shell-3.37.91.tar.xz +/gnome-shell-3.37.92.tar.xz +/gnome-shell-3.38.0.tar.xz +/gnome-shell-3.38.1.tar.xz +/gnome-shell-40.alpha.tar.xz +/gnome-shell-40.alpha.1.tar.xz +/gnome-shell-40.alpha.1.1.tar.xz +/gnome-shell-40.alpha.1.1-94-g9ce666ac1.tar.xz +/gnome-shell-40.alpha.1.1-228-g829a096ba.tar.xz +/gnome-shell-40.beta.tar.xz +/gnome-shell-40.beta-79-g7a57528bd.tar.xz +/gnome-shell-40.rc.tar.xz +/gnome-shell-40.0.tar.xz +/gnome-shell-40.1.tar.xz +/gnome-shell-40.2.tar.xz +/gnome-shell-40.3.tar.xz +/gnome-shell-41.beta.tar.xz +/gnome-shell-41.rc.tar.xz +/gnome-shell-41.rc.1.tar.xz +/gnome-shell-41.0.tar.xz +/gnome-shell-42.alpha.tar.xz +/gnome-shell-42.beta.tar.xz +/gnome-shell-42.rc.tar.xz +/gnome-shell-42.0.tar.xz +/gnome-shell-42.1.tar.xz +/gnome-shell-42.2.tar.xz +/gnome-shell-43.alpha.tar.xz +/gnome-shell-43.beta.tar.xz +/gnome-shell-43.rc.tar.xz +/gnome-shell-43.0.tar.xz +/gnome-shell-43.1.tar.xz +/gnome-shell-44.beta.tar.xz +/gnome-shell-44.rc.tar.xz +/gnome-shell-44.0.tar.xz +/gnome-shell-44.1.tar.xz +/gnome-shell-44.2.tar.xz +/gnome-shell-45.alpha.tar.xz +/gnome-shell-45.beta.tar.xz +/gnome-shell-45.beta.1.tar.xz +/gnome-shell-45.rc.tar.xz +/gnome-shell-45.0.tar.xz +/gnome-shell-45.1.tar.xz +/gnome-shell-45.2.tar.xz +/gnome-shell-46.alpha.tar.xz +/gnome-shell-46.beta.tar.xz +/gnome-shell-46.rc.tar.xz +/gnome-shell-46.0.tar.xz diff --git a/anda/desktops/gnome/gnome-shell/gnome-shell-favourite-apps-firefox.patch b/anda/desktops/gnome/gnome-shell/gnome-shell-favourite-apps-firefox.patch new file mode 100644 index 0000000000..326f82714e --- /dev/null +++ b/anda/desktops/gnome/gnome-shell/gnome-shell-favourite-apps-firefox.patch @@ -0,0 +1,38 @@ +From 551b8979483e127471c726fd1db1d52e063a7d81 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Wed, 17 Sep 2014 07:11:12 +0200 +Subject: [PATCH] Replace Web with Firefox in default favorites + +--- + data/org.gnome.shell.gschema.xml.in | 2 +- + js/ui/appFavorites.js | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in +index f4fa86d013..86b4bf85ee 100644 +--- a/data/org.gnome.shell.gschema.xml.in ++++ b/data/org.gnome.shell.gschema.xml.in +@@ -50,7 +50,7 @@ + + + +- [ 'org.gnome.Epiphany.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.TextEditor.desktop'] ++ [ 'org.mozilla.firefox.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.TextEditor.desktop'] + List of desktop file IDs for favorite applications + + The applications corresponding to these identifiers +diff --git a/js/ui/appFavorites.js b/js/ui/appFavorites.js +index 576df3800d..1f55a3c881 100644 +--- a/js/ui/appFavorites.js ++++ b/js/ui/appFavorites.js +@@ -51,6 +51,7 @@ const RENAMED_DESKTOP_IDS = { + 'gnotski.desktop': 'org.gnome.Klotski.desktop', + 'gtali.desktop': 'org.gnome.Tali.desktop', + 'iagno.desktop': 'org.gnome.Reversi.desktop', ++ 'firefox.desktop': 'org.mozilla.firefox.desktop', + 'nautilus.desktop': 'org.gnome.Nautilus.desktop', + 'org.gnome.gnome-2048.desktop': 'org.gnome.TwentyFortyEight.desktop', + 'org.gnome.taquin.desktop': 'org.gnome.Taquin.desktop', +-- +2.43.0 + diff --git a/anda/desktops/gnome/gnome-shell/gnome-shell.spec b/anda/desktops/gnome/gnome-shell/gnome-shell.spec new file mode 100644 index 0000000000..452fa5094f --- /dev/null +++ b/anda/desktops/gnome/gnome-shell/gnome-shell.spec @@ -0,0 +1,262 @@ +%global tarball_version %%(echo %{version} | tr '~' '.') +%global major_version 47 +%global minor_version 3 + +%if 0%{?rhel} +%global portal_helper 0 +%else +%global portal_helper 1 +%endif + +Name: gnome-shell +Version: %{major_version}.%{minor_version} +Release: 1%{?dist}.switcheroo +Summary: Window management and application launching for GNOME + +License: GPL-2.0-or-later +URL: https://wiki.gnome.org/Projects/GnomeShell +Source0: https://download.gnome.org/sources/gnome-shell/%{major_version}/%{name}-%{tarball_version}.tar.xz + +# Replace Epiphany with Firefox in the default favourite apps list +Patch: gnome-shell-favourite-apps-firefox.patch + +# Some users might have a broken PAM config, so we really need this +# downstream patch to stop trying on configuration errors. +Patch: 0001-gdm-Work-around-failing-fingerprint-auth.patch + +Patch: 0001-status-keyboard-Add-a-catch-around-reload-call.patch +Patch: 0002-status-keyboard-Load-keyboard-from-system-settings-i.patch +Patch: 0003-status-keyboard-Use-gnome-desktop-API-for-getting-de.patch + +# shell-app: improve discrete GPU detection +# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3193 +Patch: 3193.patch + +%define eds_version 3.45.1 +%define gnome_desktop_version 44.0-7 +%define glib2_version 2.79.2 +%define gobject_introspection_version 1.49.1 +%define gjs_version 1.73.1 +%define gtk4_version 4.0.0 +%define adwaita_version 1.5.0 +%define mutter_version 47.0 +%define polkit_version 0.100 +%define gsettings_desktop_schemas_version 47~alpha +%define ibus_version 1.5.2 +%define gnome_bluetooth_version 1:42.3 +%define gstreamer_version 1.4.5 +%define pipewire_version 0.3.0 +%define gnome_settings_daemon_version 3.37.1 + +BuildRequires: pkgconfig(bash-completion) +BuildRequires: gcc +BuildRequires: meson +BuildRequires: git +BuildRequires: pkgconfig(ibus-1.0) >= %{ibus_version} +BuildRequires: desktop-file-utils +BuildRequires: pkgconfig(libedataserver-1.2) >= %{eds_version} +BuildRequires: pkgconfig(gcr-4) +BuildRequires: pkgconfig(gjs-1.0) >= %{gjs_version} +BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} +BuildRequires: pkgconfig(gnome-autoar-0) +BuildRequires: pkgconfig(gnome-desktop-4) >= %{gnome_desktop_version} +BuildRequires: pkgconfig(gobject-introspection-1.0) >= %{gobject_introspection_version} +BuildRequires: mesa-libGL-devel +BuildRequires: mesa-libEGL-devel +BuildRequires: pkgconfig(libnm) +BuildRequires: pkgconfig(polkit-agent-1) >= %{polkit_version} +BuildRequires: pkgconfig(libstartup-notification-1.0) +BuildRequires: pkgconfig(libsystemd) +# for screencast recorder functionality +BuildRequires: pkgconfig(gstreamer-base-1.0) >= %{gstreamer_version} +BuildRequires: pkgconfig(libpipewire-0.3) >= %{pipewire_version} +BuildRequires: pkgconfig(gtk4) >= %{gtk4_version} +BuildRequires: gettext >= 0.19.6 +BuildRequires: python3 + +# for rst2man +BuildRequires: python3-docutils +# for barriers +BuildRequires: libXfixes-devel >= 5.0 +# used in unused BigThemeImage +BuildRequires: librsvg2-devel +BuildRequires: mutter-devel >= %{mutter_version} +BuildRequires: pkgconfig(libpulse) +%ifnarch s390 s390x ppc ppc64 ppc64p7 +BuildRequires: gnome-bluetooth-libs-devel >= %{gnome_bluetooth_version} +%endif +# Bootstrap requirements +BuildRequires: gtk-doc +%ifnarch s390 s390x +Recommends: gnome-bluetooth%{?_isa} >= %{gnome_bluetooth_version} +%endif +Requires: gnome-desktop3%{?_isa} >= %{gnome_desktop_version} +Requires: gcr%{?_isa} +Requires: gobject-introspection%{?_isa} >= %{gobject_introspection_version} +Requires: gjs%{?_isa} >= %{gjs_version} +Requires: gtk4%{?_isa} >= %{gtk4_version} +Requires: libadwaita%{_isa} >= %{adwaita_version} +Requires: libnma-gtk4%{?_isa} +# needed for loading SVG's via gdk-pixbuf +Requires: librsvg2%{?_isa} +Requires: mutter%{?_isa} >= %{mutter_version} +Requires: upower%{?_isa} +Requires: polkit%{?_isa} >= %{polkit_version} +Requires: gnome-desktop4%{?_isa} >= %{gnome_desktop_version} +Requires: glib2%{?_isa} >= %{glib2_version} +Requires: gsettings-desktop-schemas%{?_isa} >= %{gsettings_desktop_schemas_version} +Requires: gnome-settings-daemon%{?_isa} >= %{gnome_settings_daemon_version} +Requires: gstreamer1%{?_isa} >= %{gstreamer_version} +# needed for screen recorder +Requires: gstreamer1-plugins-good%{?_isa} +Requires: pipewire-gstreamer%{?_isa} +Requires: xdg-user-dirs-gtk +# needed for schemas +Requires: at-spi2-atk%{?_isa} +# needed for on-screen keyboard +Requires: ibus%{?_isa} >= %{ibus_version} +# needed for "show keyboard layout" +Requires: tecla +# needed for the user menu +Requires: accountsservice-libs%{?_isa} +Requires: gdm-libs%{?_isa} +# needed for settings items in menus +Requires: gnome-control-center +# needed by some utilities +Requires: python3%{_isa} +# needed for the dual-GPU launch menu +Requires: switcheroo-control +# needed for clocks/weather integration +Requires: geoclue2-libs%{?_isa} +Requires: libgweather4%{?_isa} +# for gnome-extensions CLI tool +Requires: gettext +# needed for thunderbolt support +Recommends: bolt%{?_isa} +# Needed for launching flatpak apps etc +# 1.8.0 is needed for source type support in the screencast portal. +Requires: xdg-desktop-portal-gtk >= 1.8.0 +Requires: xdg-desktop-portal-gnome +# needed by the welcome dialog +Recommends: gnome-tour + +%if %{portal_helper} +# needed for captive portal helper +Requires: webkitgtk6.0%{?_isa} +%endif + +# https://github.com/containers/composefs/pull/229#issuecomment-1838735764 +%if 0%{?rhel} >= 10 +ExcludeArch: %{ix86} +%endif + +Provides: desktop-notification-daemon = %{version}-%{release} +Provides: PolicyKit-authentication-agent = %{version}-%{release} +Provides: bundled(gvc) +Provides: bundled(libcroco) = 0.6.13 + +%if 0%{?rhel} +# In Fedora, fedora-obsolete-packages obsoletes caribou +Obsoletes: caribou < 0.4.21-10 +Obsoletes: caribou-antler < 0.4.21-10 +Obsoletes: caribou-devel < 0.4.21-10 +Obsoletes: caribou-gtk2-module < 0.4.21-10 +Obsoletes: caribou-gtk3-module < 0.4.21-10 +Obsoletes: python-caribou < 0.4.21-10 +Obsoletes: python2-caribou < 0.4.21-10 +Obsoletes: python3-caribou < 0.4.21-10 +%endif + +# https://bugzilla.redhat.com/show_bug.cgi?id=1740897 +Conflicts: gnome-shell-extension-background-logo < 3.34.0 + +%description +GNOME Shell provides core user interface functions for the GNOME 3 desktop, +like switching to windows and launching applications. GNOME Shell takes +advantage of the capabilities of modern graphics hardware and introduces +innovative user interface concepts to provide a visually attractive and +easy to use experience. + +%prep +%autosetup -S git -n %{name}-%{tarball_version} + +%build +%meson \ + -Dextensions_app=false \ +%if %{portal_helper} + -Dportal_helper=true \ +%else + -Dportal_helper=false \ +%endif + %{nil} +%meson_build + +%install +%meson_install + +# Create empty directories where other packages can drop extensions +mkdir -p %{buildroot}%{_datadir}/gnome-shell/extensions +mkdir -p %{buildroot}%{_datadir}/gnome-shell/search-providers + +%find_lang %{name} + +%check +desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.desktop +desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Extensions.desktop + +%if %{portal_helper} +desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.PortalHelper.desktop +%endif + +%files -f %{name}.lang +%license COPYING +%doc NEWS README.md +%{_bindir}/gnome-shell +%{_bindir}/gnome-extensions +%{_bindir}/gnome-shell-extension-tool +%{_bindir}/gnome-shell-test-tool +%{_datadir}/glib-2.0/schemas/*.xml +%{_datadir}/glib-2.0/schemas/00_org.gnome.shell.gschema.override +%{_datadir}/applications/org.gnome.Shell.Extensions.desktop +%{_datadir}/applications/org.gnome.Shell.desktop +%{_datadir}/bash-completion/completions/gnome-extensions +%{_datadir}/gnome-control-center/keybindings/50-gnome-shell-launchers.xml +%{_datadir}/gnome-control-center/keybindings/50-gnome-shell-screenshots.xml +%{_datadir}/gnome-control-center/keybindings/50-gnome-shell-system.xml +%{_datadir}/gnome-shell/ +%{_datadir}/dbus-1/services/org.gnome.ScreenSaver.service +%{_datadir}/dbus-1/services/org.gnome.Shell.CalendarServer.service +%{_datadir}/dbus-1/services/org.gnome.Shell.Extensions.service +%{_datadir}/dbus-1/services/org.gnome.Shell.HotplugSniffer.service +%{_datadir}/dbus-1/services/org.gnome.Shell.Notifications.service +%{_datadir}/dbus-1/services/org.gnome.Shell.Screencast.service +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Extensions.xml +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Introspect.xml +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.PadOsd.xml +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Screencast.xml +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Screenshot.xml +%{_datadir}/dbus-1/interfaces/org.gnome.ShellSearchProvider.xml +%{_datadir}/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml +%{_datadir}/icons/hicolor/scalable/apps/org.gnome.Shell.Extensions.svg +%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Shell.Extensions-symbolic.svg +%{_userunitdir}/org.gnome.Shell-disable-extensions.service +%{_userunitdir}/org.gnome.Shell.target +%{_userunitdir}/org.gnome.Shell@wayland.service +%{_userunitdir}/org.gnome.Shell@x11.service +%{_libdir}/gnome-shell/ +%{_libexecdir}/gnome-shell-calendar-server +%{_libexecdir}/gnome-shell-perf-helper +%{_libexecdir}/gnome-shell-hotplug-sniffer +%{_mandir}/man1/gnome-extensions.1* +%{_mandir}/man1/gnome-shell.1* + +%if %{portal_helper} +%{_datadir}/applications/org.gnome.Shell.PortalHelper.desktop +%{_datadir}/dbus-1/services/org.gnome.Shell.PortalHelper.service +%{_datadir}/icons/hicolor/scalable/apps/org.gnome.Shell.CaptivePortal.svg +%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Shell.CaptivePortal-symbolic.svg +%{_libexecdir}/gnome-shell-portal-helper +%endif + +%changelog +%autochangelog diff --git a/anda/desktops/gnome/gnome-shell/update.rhai b/anda/desktops/gnome/gnome-shell/update.rhai new file mode 100644 index 0000000000..684341be34 --- /dev/null +++ b/anda/desktops/gnome/gnome-shell/update.rhai @@ -0,0 +1,25 @@ +import "andax/bump_extras.rhai" as bump; + +let pkg = "gnome-shell"; +let branch = bump::as_bodhi_ver(labels.branch); + +let url = `https://bodhi.fedoraproject.org/updates/?search=${pkg}&status=stable&releases=${branch}&rows_per_page=10&page=1`; + +let done = false; + +for entry in get(url).json().updates { + for entry in entry.title.split(' ') { + let matches = find_all(`${pkg}-([\d.]+)-(\d+)\.[\w\d]+$`, entry); + if matches.len() == 0 { continue; } + let majminv = matches[0][1].split('.'); + if majminv.len() != 2 { + print(`gnome-shell: ${matches[0][1]} has invalid version?`); + terminate(); + } + rpm.global("major_version", majminv[0]); + rpm.global("minor_version", majminv[1]); + rpm.f = sub(`Release:(\s+)(.+?)\n`, "Release:${1}" + matches[0][2] + "%{?dist}.switcheroo\n", rpm.f); + done = true; + } + if done { break; } +} diff --git a/anda/desktops/kde/kde-liquidshell/kde-liquidshell.spec b/anda/desktops/kde/kde-liquidshell/kde-liquidshell.spec index c483d7cb49..69d01aa7d4 100644 --- a/anda/desktops/kde/kde-liquidshell/kde-liquidshell.spec +++ b/anda/desktops/kde/kde-liquidshell/kde-liquidshell.spec @@ -1,6 +1,6 @@ Name: kde-liquidshell -Version: 1.9.0 -Release: %autorelease +Version: 1.10.0 +Release: 1%?dist Summary: Basic desktop shell using QtWidgets Provides: liquidshell = %version diff --git a/anda/desktops/kde/kf6-kio/0001-Give-the-kuriikwsfiltereng_private-a-VERSION-and-SOV.patch b/anda/desktops/kde/kf6-kio/0001-Give-the-kuriikwsfiltereng_private-a-VERSION-and-SOV.patch new file mode 100644 index 0000000000..6f1529a5ba --- /dev/null +++ b/anda/desktops/kde/kf6-kio/0001-Give-the-kuriikwsfiltereng_private-a-VERSION-and-SOV.patch @@ -0,0 +1,30 @@ +From 0cc287336b32e601e70b26d60d9335abde538a18 Mon Sep 17 00:00:00 2001 +From: Adam Williamson +Date: Mon, 16 Oct 2023 17:57:16 -0700 +Subject: [PATCH] Give the kuriikwsfiltereng_private a VERSION and SOVERSION + (#26) + +Signed-off-by: Adam Williamson +--- + src/urifilters/ikws/CMakeLists.txt | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/urifilters/ikws/CMakeLists.txt b/src/urifilters/ikws/CMakeLists.txt +index 7d42584c3..393588993 100644 +--- a/src/urifilters/ikws/CMakeLists.txt ++++ b/src/urifilters/ikws/CMakeLists.txt +@@ -1,6 +1,11 @@ + add_subdirectory(searchproviders) + + add_library(kuriikwsfiltereng_private kuriikwsfiltereng.cpp searchprovider.cpp searchproviderregistry.cpp) ++set_target_properties(kuriikwsfiltereng_private PROPERTIES ++ VERSION ${KIO_VERSION} ++ SOVERSION ${KIO_SOVERSION} ++ EXPORT_NAME kuriikwsfiltereng_private ++) + generate_export_header(kuriikwsfiltereng_private) # We need this to be a shared lib, because otherwise we have duplicate Q_GLOBAL_STATICs + target_link_libraries(kuriikwsfiltereng_private PUBLIC KF6::KIOGui) + install(TARGETS kuriikwsfiltereng_private ${KF_INSTALL_TARGETS_DEFAULT_ARGS}) +-- +2.41.0 + diff --git a/anda/desktops/kde/kf6-kio/1556.patch b/anda/desktops/kde/kf6-kio/1556.patch new file mode 100644 index 0000000000..60270100ab --- /dev/null +++ b/anda/desktops/kde/kf6-kio/1556.patch @@ -0,0 +1,290 @@ +From 7b1154d235f752b9fd1797f87861f11ef89d5d7a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= +Date: Thu, 15 Feb 2024 14:38:21 +0100 +Subject: [PATCH 1/7] Improve discrete GPU detection using switcheroo-control + +--- + src/gui/gpudetection.cpp | 34 ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp +index ef246d3936..695bf27a1e 100644 +--- a/src/gui/gpudetection.cpp ++++ b/src/gui/gpudetection.cpp +@@ -62,6 +62,40 @@ static bool checkGpuWithSwitcheroo() + QList gpus; + arg >> gpus; + ++ if (gpus.length() < 2) { ++ // Skip checking for Default or Discrete GPUs when 1 or no GPU is available ++ return false; ++ } ++ ++ // Check if the Default GPU is Discrete ++ for (const auto &gpu : gpus) { ++ bool defaultGpu = qvariant_cast(gpu[QStringLiteral("Default")]); ++ if (defaultGpu) { ++ bool discreteGpu = qvariant_cast(gpu.value(QStringLiteral("Discrete"), false)); ++ if (discreteGpu) { ++ // If the default GPU is Discret there is no need to apply the env vars ++ s_gpuCheck = GpuCheck::Present; ++ return true; ++ } ++ break; ++ } ++ } ++ ++ // Find the first Discrete GPU ++ for (const auto &gpu : gpus) { ++ bool discreteGpu = qvariant_cast(gpu.value(QStringLiteral("Discrete"), false)); ++ if (!discreteGpu) { ++ s_gpuCheck = GpuCheck::Present; ++ QStringList envList = qvariant_cast(gpu[QStringLiteral("Environment")]); ++ for (int i = 0; i + 1 < envList.size(); i += 2) { ++ s_gpuEnv.insert(envList[i], envList[i + 1]); ++ } ++ return true; ++ } ++ } ++ ++ // fallback to old behavior ++ // find the first non-Default GPU + for (const auto &gpu : gpus) { + bool defaultGpu = qvariant_cast(gpu[QStringLiteral("Default")]); + if (!defaultGpu) { +-- +GitLab + + +From 29c056a6a71b0de226369c03d02f47ab56a7877a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= +Date: Wed, 21 Feb 2024 15:57:28 +0100 +Subject: [PATCH 2/7] make gpus length comparison easier to reade + +--- + src/gui/gpudetection.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp +index 695bf27a1e..dfe6a9982b 100644 +--- a/src/gui/gpudetection.cpp ++++ b/src/gui/gpudetection.cpp +@@ -62,7 +62,7 @@ static bool checkGpuWithSwitcheroo() + QList gpus; + arg >> gpus; + +- if (gpus.length() < 2) { ++ if (gpus.length() <= 1) { + // Skip checking for Default or Discrete GPUs when 1 or no GPU is available + return false; + } +-- +GitLab + + +From afc22129301ac2e33673ce9415b1e0d329a57c59 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= +Date: Wed, 21 Feb 2024 16:27:05 +0100 +Subject: [PATCH 3/7] lookup needed GPU entries in a single loop + +--- + src/gui/gpudetection.cpp | 56 +++++++++++++++++----------------------- + 1 file changed, 23 insertions(+), 33 deletions(-) + +diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp +index dfe6a9982b..57436e4789 100644 +--- a/src/gui/gpudetection.cpp ++++ b/src/gui/gpudetection.cpp +@@ -67,45 +67,35 @@ static bool checkGpuWithSwitcheroo() + return false; + } + +- // Check if the Default GPU is Discrete +- for (const auto &gpu : gpus) { +- bool defaultGpu = qvariant_cast(gpu[QStringLiteral("Default")]); +- if (defaultGpu) { +- bool discreteGpu = qvariant_cast(gpu.value(QStringLiteral("Discrete"), false)); +- if (discreteGpu) { +- // If the default GPU is Discret there is no need to apply the env vars +- s_gpuCheck = GpuCheck::Present; +- return true; +- } +- break; ++ QVariantMap defaultGpu; ++ QVariantMap firstDiscreteGpu; ++ QVariantMap firstNonDefaultGpu; ++ ++ for (const auto &gpu : std::as_const(gpus)) { ++ if (defaultGpu.isEmpty() && qvariant_cast(gpu[QStringLiteral("Default")])) { ++ defaultGpu = gpu; ++ } else if (firstNonDefaultGpu.isEmpty()) { ++ firstNonDefaultGpu = gpu; ++ } ++ if (firstDiscreteGpu.isEmpty() && qvariant_cast(gpu[QStringLiteral("Discrete")])) { ++ firstDiscreteGpu = gpu; + } + } + +- // Find the first Discrete GPU +- for (const auto &gpu : gpus) { +- bool discreteGpu = qvariant_cast(gpu.value(QStringLiteral("Discrete"), false)); +- if (!discreteGpu) { +- s_gpuCheck = GpuCheck::Present; +- QStringList envList = qvariant_cast(gpu[QStringLiteral("Environment")]); +- for (int i = 0; i + 1 < envList.size(); i += 2) { +- s_gpuEnv.insert(envList[i], envList[i + 1]); +- } +- return true; +- } ++ if (!defaultGpu.isEmpty() && defaultGpu[QStringLiteral("Discrete")].toBool()) { ++ // If the default GPU is discrete we don't need to check for another device or apply special env vars ++ s_gpuCheck = GpuCheck::Present; ++ return true; + } + +- // fallback to old behavior +- // find the first non-Default GPU +- for (const auto &gpu : gpus) { +- bool defaultGpu = qvariant_cast(gpu[QStringLiteral("Default")]); +- if (!defaultGpu) { +- s_gpuCheck = GpuCheck::Present; +- QStringList envList = qvariant_cast(gpu[QStringLiteral("Environment")]); +- for (int i = 0; i + 1 < envList.size(); i += 2) { +- s_gpuEnv.insert(envList[i], envList[i + 1]); +- } +- return true; ++ // Otherwise prefer the discrete GPU over any other random non-default GPU (legacy behavior) ++ for (const auto &gpu : {firstDiscreteGpu, firstNonDefaultGpu}) { ++ s_gpuCheck = GpuCheck::Present; ++ auto envList = qvariant_cast(gpu[QStringLiteral("Environment")]); ++ for (int i = 0; i + 1 < envList.size(); i += 2) { ++ s_gpuEnv.insert(envList[i], envList[i + 1]); + } ++ return true; + } + #endif + +-- +GitLab + + +From d05cabb8e3e4aa60c8453edc0f6231d9bcb6d64e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= +Date: Wed, 21 Feb 2024 16:27:25 +0100 +Subject: [PATCH 4/7] correct absent gpu comment + +--- + src/gui/gpudetection.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp +index 57436e4789..bbef5ba8f2 100644 +--- a/src/gui/gpudetection.cpp ++++ b/src/gui/gpudetection.cpp +@@ -99,7 +99,7 @@ static bool checkGpuWithSwitcheroo() + } + #endif + +- // No non-default GPU found ++ // No discrete or non-default GPU found + s_gpuCheck = GpuCheck::Absent; + return true; + } +-- +GitLab + + +From 7f9f76ce9bb472b54bf7297b8b5c078eb0c194c9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= +Date: Thu, 22 Feb 2024 08:33:19 +0100 +Subject: [PATCH 5/7] check exact GPU count and fallback to solid when none are + found + +--- + src/gui/gpudetection.cpp | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp +index bbef5ba8f2..d3bf895ea5 100644 +--- a/src/gui/gpudetection.cpp ++++ b/src/gui/gpudetection.cpp +@@ -62,9 +62,15 @@ static bool checkGpuWithSwitcheroo() + QList gpus; + arg >> gpus; + +- if (gpus.length() <= 1) { +- // Skip checking for Default or Discrete GPUs when 1 or no GPU is available ++ auto gpu_count = gpus.length(); ++ ++ if (gpu_count == 0) { ++ // No GPUs? Something might have gone wrong on the other end + return false; ++ } else if (gpu_count == 1) { ++ // There is only one GPU, no need to check for others ++ s_gpuCheck = GpuCheck::Absent; ++ return true; + } + + QVariantMap defaultGpu; +-- +GitLab + + +From 87ca7b125be15963c45867705f4b75e40b379437 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= +Date: Wed, 4 Sep 2024 23:58:18 +0000 +Subject: [PATCH 6/7] Simplify GPU count check + +--- + src/gui/gpudetection.cpp | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp +index d3bf895ea5..5e8450f2f9 100644 +--- a/src/gui/gpudetection.cpp ++++ b/src/gui/gpudetection.cpp +@@ -62,12 +62,10 @@ static bool checkGpuWithSwitcheroo() + QList gpus; + arg >> gpus; + +- auto gpu_count = gpus.length(); +- +- if (gpu_count == 0) { ++ if (gpus.isEmpty()) { + // No GPUs? Something might have gone wrong on the other end + return false; +- } else if (gpu_count == 1) { ++ } else if (gpus.size() == 1) { + // There is only one GPU, no need to check for others + s_gpuCheck = GpuCheck::Absent; + return true; +-- +GitLab + + +From 1920a2ea3b67331b419fc19a377b57a36466fb9f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= +Date: Thu, 5 Sep 2024 02:01:41 +0200 +Subject: [PATCH 7/7] Fix non default GPU fallback + +--- + src/gui/gpudetection.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp +index 5e8450f2f9..2f5547ab8f 100644 +--- a/src/gui/gpudetection.cpp ++++ b/src/gui/gpudetection.cpp +@@ -94,6 +94,9 @@ static bool checkGpuWithSwitcheroo() + + // Otherwise prefer the discrete GPU over any other random non-default GPU (legacy behavior) + for (const auto &gpu : {firstDiscreteGpu, firstNonDefaultGpu}) { ++ if (gpu.isEmpty()) { ++ continue; ++ } + s_gpuCheck = GpuCheck::Present; + auto envList = qvariant_cast(gpu[QStringLiteral("Environment")]); + for (int i = 0; i + 1 < envList.size(); i += 2) { +-- +GitLab + diff --git a/anda/desktops/kde/kf6-kio/6e7775d315f389df0a440ed62b842ce83dc9a27e.patch b/anda/desktops/kde/kf6-kio/6e7775d315f389df0a440ed62b842ce83dc9a27e.patch new file mode 100644 index 0000000000..2c9b594b33 --- /dev/null +++ b/anda/desktops/kde/kf6-kio/6e7775d315f389df0a440ed62b842ce83dc9a27e.patch @@ -0,0 +1,34 @@ +From 6e7775d315f389df0a440ed62b842ce83dc9a27e Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Fri, 1 Mar 2024 22:16:07 +0100 +Subject: [PATCH] [kterminallauncherjob] Inherit default process environment + from parent + +Before Qt 6.3, an empty (default constructed) QProcessEnvironment caused +QProcess to incorrectly inherit the environment variables from the parent +process. This was fixed in qtbase 5fc9c02a695. + +CommandLauncherJob was adjusted for this in 916984940f64e07db9b4d152be9f2a87dda0cfb4, +however here we are overriding its default env with our own default-constructed one + +BUG: 482107 +--- + src/gui/kterminallauncherjob.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gui/kterminallauncherjob.cpp b/src/gui/kterminallauncherjob.cpp +index c4e83fb11b..edd99327bd 100644 +--- a/src/gui/kterminallauncherjob.cpp ++++ b/src/gui/kterminallauncherjob.cpp +@@ -22,7 +22,7 @@ public: + QString m_fullCommand; // "xterm -e ls" + QString m_desktopName; + QByteArray m_startupId; +- QProcessEnvironment m_environment; ++ QProcessEnvironment m_environment{QProcessEnvironment::InheritFromParent}; + }; + + KTerminalLauncherJob::KTerminalLauncherJob(const QString &command, QObject *parent) +-- +GitLab + diff --git a/anda/desktops/kde/kf6-kio/anda.hcl b/anda/desktops/kde/kf6-kio/anda.hcl new file mode 100644 index 0000000000..24de21b76f --- /dev/null +++ b/anda/desktops/kde/kf6-kio/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + rpm { + spec = "kf6-kio.spec" + } + labels { + subrepo = "extras" + updbranch = 1 + } +} diff --git a/anda/desktops/kde/kf6-kio/kf6-kio.spec b/anda/desktops/kde/kf6-kio/kf6-kio.spec new file mode 100644 index 0000000000..124637f8b7 --- /dev/null +++ b/anda/desktops/kde/kf6-kio/kf6-kio.spec @@ -0,0 +1,340 @@ +%global framework kio + +%global stable_kf6 stable +%global majmin_ver_kf6 6.11 + +Name: kf6-%{framework} +Version: %{majmin_ver_kf6}.0 +Release: 1%{?dist}.switcheroo +Summary: KDE Frameworks 6 Tier 3 solution for filesystem abstraction + +License: BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only) AND MIT +URL: https://invent.kde.org/frameworks/%{framework} + +Source0: https://download.kde.org/%{stable_kf6}/frameworks/%{majmin_ver_kf6}/%{framework}-%{version}.tar.xz + +# https://invent.kde.org/frameworks/kio/-/issues/26 +# I'm not sending this upstream because I'm not sure it's really +# exactly what upstream will want, but it solves the practical +# issue for us for now +Patch0: 0001-Give-the-kuriikwsfiltereng_private-a-VERSION-and-SOV.patch + +%if 0%{?flatpak} +# Disable the help: and ghelp: protocol for Flatpak builds, to avoid depending +# on the docbook stack. +Patch101: kio-no-help-protocol.patch +%endif + +# https://invent.kde.org/frameworks/kio/-/merge_requests/1556 +Patch201: 1556.patch + +BuildRequires: extra-cmake-modules +BuildRequires: gcc-c++ +BuildRequires: kf6-rpm-macros +BuildRequires: cmake +BuildRequires: cmake(KF6Archive) +BuildRequires: cmake(KF6Crash) +BuildRequires: cmake(KF6Solid) +BuildRequires: switcheroo-control +BuildRequires: cmake(KF6ColorScheme) +BuildRequires: cmake(KF6Config) +BuildRequires: cmake(KF6CoreAddons) +BuildRequires: cmake(KF6DBusAddons) +BuildRequires: cmake(KF6DocTools) +BuildRequires: cmake(KF6GuiAddons) +BuildRequires: cmake(KF6I18n) +BuildRequires: cmake(KF6Service) +BuildRequires: qt6-qtbase-private-devel +BuildRequires: cmake(KF6Bookmarks) +BuildRequires: cmake(KF6Completion) +BuildRequires: cmake(KF6ConfigWidgets) +BuildRequires: cmake(KF6IconThemes) +BuildRequires: cmake(KF6ItemViews) +BuildRequires: cmake(KF6JobWidgets) +BuildRequires: cmake(KF6WindowSystem) +BuildRequires: cmake(KF6Notifications) +BuildRequires: cmake(KF6Wallet) +BuildRequires: cmake(KF6WidgetsAddons) +BuildRequires: cmake(KF6XmlGui) + +BuildRequires: libacl-devel +%if !0%{?flatpak} +BuildRequires: libxml2-devel +BuildRequires: libxslt-devel +%endif +BuildRequires: pkgconfig(blkid) +BuildRequires: pkgconfig(mount) +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: zlib-devel + +BuildRequires: qt6-qtbase-devel +BuildRequires: cmake(Qt6UiPlugin) +BuildRequires: cmake(Qt6Qml) + +BuildRequires: cmake(KF6KDED) +BuildRequires: cmake(Qt6Core5Compat) + +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-widgets%{?_isa} = %{version}-%{release} +Requires: %{name}-file-widgets%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} = %{version}-%{release} + +Requires: kf6-kded + +%description +KDE Frameworks 6 Tier 3 solution for filesystem abstraction + +%package devel +Summary: Development files for %{name} +Requires: %{name} = %{version}-%{release} +Requires: kf6-kbookmarks-devel +Requires: cmake(KF6Completion) +Requires: cmake(KF6Config) +Requires: cmake(KF6CoreAddons) +Requires: cmake(KF6ItemViews) +Requires: cmake(KF6JobWidgets) +Requires: cmake(KF6Service) +Requires: cmake(KF6Solid) +Requires: cmake(KF6XmlGui) +Requires: cmake(KF6WindowSystem) +Requires: qt6-qtbase-devel +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%package doc +Summary: Documentation files for %{name} +Requires: %{name}-core = %{version}-%{release} +BuildArch: noarch +%description doc +Documentation for %{name}. + +%package core +Summary: Core components of the KIO Framework +%{?kf6_kinit_requires} +Requires: %{name}-core-libs%{?_isa} = %{version}-%{release} +Requires: %{name}-doc = %{version}-%{release} +Requires: kf6-filesystem +Recommends: switcheroo-control +%description core +KIOCore library provides core non-GUI components for working with KIO. + +%package core-libs +Summary: Runtime libraries for KIO Core +Requires: %{name}-core%{?_isa} = %{version}-%{release} +%description core-libs +%{summary}. + +%package widgets +Summary: Widgets for KIO Framework +## org.kde.klauncher6 service referenced from : widgets/krun.cpp +## included here for completeness, even those -core already has a dependency. +%{?kf6_kinit_requires} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +%description widgets +KIOWidgets contains classes that provide generic job control, progress +reporting, etc. + +%package widgets-libs +Summary: Runtime libraries for KIO Widgets library +Requires: %{name}-widgets%{?_isa} = %{version}-%{release} +%description widgets-libs +%{summary}. + +%package file-widgets +Summary: Widgets for file-handling for KIO Framework +Requires: %{name}-widgets%{?_isa} = %{version}-%{release} +%description file-widgets +The KIOFileWidgets library provides the file selection dialog and +its components. + +%package gui +Summary: Gui components for the KIO Framework +Requires: %{name}-core%{?_isa} = %{version}-%{release} +%description gui +%{summary}. + +%package qch-doc +Summary: Developer Documentation files for %{name} +BuildArch: noarch +%description qch-doc +Developer Documentation files for %{name} for use with KDevelop or QtCreator. + + +%prep +%autosetup -n %{framework}-%{version} -p1 + + +%build +%cmake_kf6 +%cmake_build + + +%install +%cmake_install +%find_lang %{name} --all-name --with-man --with-html + +%files +%license LICENSES/*.txt +%doc README.md + +%files core +%{_kf6_libexecdir}/kioexec +%{_kf6_libexecdir}/kiod6 +%{_kf6_libexecdir}/kioworker +%{_kf6_bindir}/ktelnetservice6 +%{_kf6_bindir}/ktrash6 +%{_kf6_plugindir}/kio/ +%{_kf6_plugindir}/kded/ +%{_kf6_plugindir}/kiod/ +%{_kf6_datadir}/kf6/searchproviders/*.desktop +%{_kf6_datadir}/applications/*.desktop +%{_datadir}/dbus-1/services/org.kde.*.service +%{_kf6_datadir}/qlogging-categories6/*categories + +%files core-libs +%{_kf6_libdir}/libKF6KIOCore.so.* + +%files doc -f %{name}.lang + +%files gui +%{_kf6_libdir}/libKF6KIOGui.so.* + +%files widgets +%dir %{_kf6_plugindir}/urifilters/ +%{_kf6_plugindir}/urifilters/*.so +%{_kf6_libdir}/libkuriikwsfiltereng_private.so.* + +%files widgets-libs +%{_kf6_libdir}/libKF6KIOWidgets.so.* + +%files file-widgets +%{_kf6_libdir}/libKF6KIOFileWidgets.so.* + +%files devel +%{_kf6_includedir}/* +%{_kf6_libdir}/*.so +%{_kf6_libdir}/cmake/KF6KIO/ +%{_kf6_datadir}/kdevappwizard/templates/kioworker6.tar.bz2 +%{_kf6_qtplugindir}/designer/kio6widgets.so +%{_qt6_docdir}/*.tags + +%files qch-doc +%{_qt6_docdir}/*.qch + +%changelog +* Fri Jan 17 2025 Fedora Release Engineering - 6.10.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Tue Jan 07 2025 Steve Cossette - 6.10.0-2 +- File Picker: Fix 'All supported files' for more than 3 + filters + +* Fri Jan 03 2025 Steve Cossette - 6.10.0-1 +- 6.10.0 + +* Sat Dec 14 2024 Steve Cossette - 6.9.0-1 +- 6.9.0 + +* Sat Nov 02 2024 Marc Deop i Argemí - 6.8.0-1 +- 6.8.0 + +* Mon Oct 14 2024 Jan Grulich - 6.7.0-2 +- Rebuild (qt6) + +* Fri Oct 04 2024 Steve Cossette - 6.7.0-1 +- 6.7.0 + +* Mon Sep 16 2024 Steve Cossette - 6.6.0-1 +- 6.6.0 + +* Sat Aug 10 2024 Steve Cossette - 6.5.0-1 +- 6.5.0 + +* Fri Jul 19 2024 Steve Cossette - 6.4.1-1 +- 6.4.1 + +* Thu Jul 18 2024 Steve Cossette - 6.4.0-3 +- Fix for a regression in Frameworks 6.4.0 + +* Thu Jul 18 2024 Fedora Release Engineering - 6.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Jul 06 2024 Marc Deop i Argemí - 6.4.0-1 +- 6.4.0 + +* Sat Jun 01 2024 Marc Deop i Argemí - 6.3.0-1 +- 6.3.0 + +* Sat May 04 2024 Marc Deop i Argemí - 6.2.0-1 +- 6.2.0 + +* Wed Apr 10 2024 Marc Deop i Argemí - 6.1.0-1 +- 6.1.0 + +* Thu Apr 04 2024 Jan Grulich - 6.0.0-7 +- Re-enable docs + +* Thu Apr 04 2024 Jan Grulich - 6.0.0-6 +- Rebuild (qt6) + +* Fri Mar 15 2024 Marie Loise Nolden - 6.0.0-5 +- add 6e7775d315f389df0a440ed62b842ce83dc9a27e.patch +[kterminallauncherjob] Inherit default process environment from parent + +* Mon Mar 11 2024 Yaakov Selkowitz - 6.0.0-4 +- Soften switcheroo-control dependency + +* Sat Mar 09 2024 Marie Loise Nolden - 6.0.0-3 +- add missing BuildArch: noarch to -doc package + +* Sat Mar 2 2024 Marie Loise Nolden - 6.0.0-2 +- move qt designer plugin to -devel + +* Wed Feb 21 2024 Marc Deop i Argemí - 6.0.0-1 +- 6.0.0 + +* Fri Feb 16 2024 Jan Grulich - 5.249.0-2 +- Rebuild (qt6) + +* Wed Jan 31 2024 Marc Deop i Argemí - 5.249.0-1 +- 5.249.0 + +* Thu Jan 25 2024 Fedora Release Engineering - 5.248.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 5.248.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jan 10 2024 Marc Deop i Argemí - 5.248.0-1 +- 5.248.0 + +* Tue Jan 09 2024 Marie Loise Nolden - 5.247.0-2 +- add doc package for KF6 API + +* Wed Dec 20 2023 Marc Deop i Argemí - 5.247.0-1 +- 5.247.0 + +* Sat Dec 02 2023 Justin Zobel - 5.246.0-1 +- Update to 5.246.0 + +* Wed Nov 29 2023 Jan Grulich - 5.245.0-3 +- Rebuild (qt6) + +* Mon Nov 20 2023 Alessandro Astone - 5.245.0-2 +- Add back kuriikwsfiltereng SOVERSION patch + +* Thu Nov 09 2023 Steve Cossette - 5.245.0-1 +- 5.245.0 + +* Tue Oct 17 2023 Jan Grulich - 5.240.0^20231010.060359.1c34fd4-4 +- Rebuild (qt6) + +* Mon Oct 16 2023 Adam Williamson - 5.240.0^20231010.060359.1c34fd4-3 +- Give kuriikwsfiltereng_private library a proper soname to fix deps + +* Mon Oct 09 2023 Steve Cossette - 5.240.0^20231010.060359.1c34fd4-2 +- Fixed a problem with the -doc subpackage building differently on different arches. + +* Mon Oct 09 2023 Steve Cossette - 5.240.0^20231010.060359.1c34fd4-1 +- Initial Release diff --git a/anda/desktops/kde/kf6-kio/update.rhai b/anda/desktops/kde/kf6-kio/update.rhai new file mode 100644 index 0000000000..5825442cbd --- /dev/null +++ b/anda/desktops/kde/kf6-kio/update.rhai @@ -0,0 +1,16 @@ +import "andax/bump_extras.rhai" as bump; + +let pkg = "kf6-kio"; +let branch = bump::as_bodhi_ver(labels.branch); + +let url = `https://bodhi.fedoraproject.org/updates/?search=${pkg}&status=stable&releases=${branch}&rows_per_page=1&page=1`; + +for entry in get(url).json().updates[0].title.split(' ') { + let matches = find_all(`${pkg}-([\d.]+)-(\d+)\.[\w\d]+$`, entry); + if matches.len() == 0 { continue; } + if matches[0][1].ends_with(".0") { + rpm.global("majmin_ver_kf6", matches[0][1][0..matches[0][1].len()-2]); + rpm.f = sub(`Release: (.+?)\n`, "Release: " + matches[0][2] + "%{?dist}.switcheroo\n", rpm.f); + } + break; +} diff --git a/anda/desktops/kde/latte-dock-nightly/latte-dock-nightly.spec b/anda/desktops/kde/latte-dock-nightly/latte-dock-nightly.spec index f3ca4f3a00..2f8dc88558 100644 --- a/anda/desktops/kde/latte-dock-nightly/latte-dock-nightly.spec +++ b/anda/desktops/kde/latte-dock-nightly/latte-dock-nightly.spec @@ -1,6 +1,6 @@ %global forgeurl https://github.com/KDE/latte-dock/ -%global commit 5c241eed78ddee8e7fe801984007554be4fb1981 +%global commit 60bc8ee65b49e9c28973f89e3c299a95e0de5b96 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global commit_date %(date '+%Y%m%d') %global snapshot_info %{commit_date}.%{shortcommit} diff --git a/anda/desktops/kde/lightdm-kde-greeter/lightdm-kde-greeter.spec b/anda/desktops/kde/lightdm-kde-greeter/lightdm-kde-greeter.spec index d9fe9e2a08..abfe7a2159 100644 --- a/anda/desktops/kde/lightdm-kde-greeter/lightdm-kde-greeter.spec +++ b/anda/desktops/kde/lightdm-kde-greeter/lightdm-kde-greeter.spec @@ -1,7 +1,7 @@ -%global commit 631b6da2bf2482aa2dc7ceaddbfbb9c566bcf2b4 +%global commit c3f01539e3b036ae940e678f5739b37ca0300ce2 Name: lightdm-kde-greeter -Version: 6.0.1 +Version: 6.0.2 Release: 1%?dist Summary: Login screen using the LightDM framework License: GPL-3.0-or-later diff --git a/anda/desktops/lomiri-unity/lomiri-app-launch/lomiri-app-launch.spec b/anda/desktops/lomiri-unity/lomiri-app-launch/lomiri-app-launch.spec index cda5d996e8..6775a051e4 100644 --- a/anda/desktops/lomiri-unity/lomiri-app-launch/lomiri-app-launch.spec +++ b/anda/desktops/lomiri-unity/lomiri-app-launch/lomiri-app-launch.spec @@ -1,9 +1,9 @@ %global forgeurl https://gitlab.com/ubports/development/core/lomiri-app-launch -%global commit 4768cd43b563bebb5c973b84a19d491044d3a188 +%global commit 3a0dacbbf99b45b67c39bb92449235c576cbf05a %forgemeta Name: lomiri-app-launch -Version: 0.1.10 +Version: 0.1.11 Release: 1%?dist Summary: Provides the Lomiri App Launch user space daemon License: GPL-3.0 diff --git a/anda/desktops/lomiri-unity/lomiri-system-settings/lomiri-system-settings.spec b/anda/desktops/lomiri-unity/lomiri-system-settings/lomiri-system-settings.spec index 20c56e53a9..85674fb5d3 100644 --- a/anda/desktops/lomiri-unity/lomiri-system-settings/lomiri-system-settings.spec +++ b/anda/desktops/lomiri-unity/lomiri-system-settings/lomiri-system-settings.spec @@ -1,9 +1,9 @@ %global forgeurl https://gitlab.com/ubports/development/core/lomiri-system-settings -%global commit 70dbdd0a34309b2dd389cd2c04767de011c9a341 +%global commit dc2591518ee93516cf3ce24531fee4c111b144da %forgemeta Name: lomiri-system-settings -Version: 1.2.0 +Version: 1.3.0 Release: 1%?dist Summary: The system settings application for Lomiri License: GPLv3 diff --git a/anda/desktops/lomiri-unity/unity-greeter/unity-greeter.spec b/anda/desktops/lomiri-unity/unity-greeter/unity-greeter.spec index 0b7edc9f7d..bbd6de1364 100644 --- a/anda/desktops/lomiri-unity/unity-greeter/unity-greeter.spec +++ b/anda/desktops/lomiri-unity/unity-greeter/unity-greeter.spec @@ -1,7 +1,7 @@ %global rn 1 Name: unity-greeter -Version: 24.10.1 +Version: 25.04.1 Release: 1%?dist Summary: Unity Greeter for Lightdm diff --git a/anda/desktops/lomiri-unity/unity-session/unity-session.spec b/anda/desktops/lomiri-unity/unity-session/unity-session.spec index b9f20f832c..4571f30150 100644 --- a/anda/desktops/lomiri-unity/unity-session/unity-session.spec +++ b/anda/desktops/lomiri-unity/unity-session/unity-session.spec @@ -1,8 +1,8 @@ -%define _ubuntu_rel 7ubuntu1 +%define _ubuntu_rel 1ubuntu1 Name: unity-session Summary: Lightdm profile for Unity 7 -Version: 46.0 +Version: 47.0.1 Release: 1%?dist License: GPL-2.0 diff --git a/anda/desktops/owl/anda.hcl b/anda/desktops/owl/anda.hcl new file mode 100644 index 0000000000..a1210fb60c --- /dev/null +++ b/anda/desktops/owl/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "owl.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/desktops/owl/owl.spec b/anda/desktops/owl/owl.spec new file mode 100644 index 0000000000..842fba4034 --- /dev/null +++ b/anda/desktops/owl/owl.spec @@ -0,0 +1,63 @@ +%global commit 2456a0ac3e4722eb1087727cc7f7ca8392d60a99 +%global commit_date 20250124 +%global shortcommit %{sub %{commit} 1 7 } + +Name: owl +Version: 0^%{commit_date}.%{shortcommit} +Release: 1%{?dist} +Summary: Tiling Wayland compositor based on wlroots + +License: MIT +URL: https://github.com/dqrk0jeste/owl +Source0: %{url}/archive/%{commit}.tar.gz + +BuildRequires: make gcc +BuildRequires: pkgconfig(libinput) +BuildRequires: pkgconfig(wayland-protocols) +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: wayland-devel +BuildRequires: wlroots-devel + +Requires: libdrm +Requires: libinput +Requires: libxkbcommon +Requires: pixman +Requires: wayland-devel +Requires: wlroots +Requires: xdg-desktop-portal-wlr + +Recommends: waybar kitty rofi-wayland + +Packager: sadlerm + +%description +%{summary}. + +%prep +%autosetup -n %{name}-%{commit} + +%build +%make_build all + +%install +install -Dm755 build/%{name} %{buildroot}%{_bindir}/%{name} +install -Dm755 build/%{name}-ipc %{buildroot}%{_bindir}/%{name}-ipc +install -Dm644 default.conf %{buildroot}%{_datadir}/%{name}/default.conf +install -Dm644 examples/example.conf %{buildroot}%{_datadir}/%{name}/example.conf +install -Dm644 %{name}.desktop %{buildroot}%{_datadir}/wayland-sessions/%{name}.desktop +install -Dm644 %{name}-portals.conf %{buildroot}%{_datadir}/xdg-desktop-portal/%{name}-portals.conf + +%files +%license LICENSE +%doc README.md +%{_bindir}/%{name} +%{_bindir}/%{name}-ipc +%{_datadir}/%{name}/default.conf +%{_datadir}/%{name}/example.conf +%{_datadir}/wayland-sessions/%{name}.desktop +%{_datadir}/xdg-desktop-portal/%{name}-portals.conf + + +%changelog +* Fri Jan 31 2025 sadlerm +- Initial package diff --git a/anda/desktops/owl/update.rhai b/anda/desktops/owl/update.rhai new file mode 100644 index 0000000000..83e6cb9536 --- /dev/null +++ b/anda/desktops/owl/update.rhai @@ -0,0 +1,6 @@ +if filters.contains("nightly") { + rpm.global("commit", gh_commit("dqrk0jeste/owl")); + if rpm.changed() { + rpm.global("commit_date", date()); + } +} diff --git a/anda/desktops/swayfx/sway-portals.conf b/anda/desktops/swayfx/sway-portals.conf new file mode 100644 index 0000000000..fd97083c06 --- /dev/null +++ b/anda/desktops/swayfx/sway-portals.conf @@ -0,0 +1,9 @@ +[preferred] +# Use xdg-desktop-portal-gtk for every portal interface... +default=gtk +# ... except for the ScreenCast, Screenshot and Secret +org.freedesktop.impl.portal.ScreenCast=wlr +org.freedesktop.impl.portal.Screenshot=wlr +org.freedesktop.impl.portal.Secret=gnome-keyring +# https://github.com/flatpak/xdg-desktop-portal-gtk/issues/465 +org.freedesktop.impl.portal.Inhibit=none \ No newline at end of file diff --git a/anda/desktops/swayfx/swayfx.spec b/anda/desktops/swayfx/swayfx.spec index 72740b9fec..933234d262 100644 --- a/anda/desktops/swayfx/swayfx.spec +++ b/anda/desktops/swayfx/swayfx.spec @@ -2,14 +2,14 @@ Name: swayfx Version: 0.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: SwayFX: Sway, but with eye candy! URL: https://github.com/WillPower3309/swayfx License: MIT Source0: %{url}/archive/refs/tags/%{version}.tar.gz -Source101: https://github.com/wlrfx/packages/raw/fe1355c4844078f49761e9d73a376179d3007646/COPR/swayfx/sway-portals.conf +Source101: sway-portals.conf BuildRequires: gcc-c++ diff --git a/anda/desktops/waylands/eww/anda.hcl b/anda/desktops/waylands/eww/anda.hcl new file mode 100644 index 0000000000..070bf0a2cf --- /dev/null +++ b/anda/desktops/waylands/eww/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "eww.spec" + } +} diff --git a/anda/desktops/waylands/eww/eww.spec b/anda/desktops/waylands/eww/eww.spec new file mode 100644 index 0000000000..368ad18727 --- /dev/null +++ b/anda/desktops/waylands/eww/eww.spec @@ -0,0 +1,89 @@ +# Generated by rust2rpm 27 +%global commit 29fa1587c3a4704a2bee0778099aca945d486e77 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20250210 +%global ver v0.6.0 +%bcond check 0 + +Name: eww +Version: %ver^%commit_date.git~%shortcommit +Release: 1%?dist +Summary: Widgets for everyone! + +SourceLicense: MIT +License: MIT + +URL: https://elkowar.github.io/eww +Source0: https://github.com/elkowar/eww/archive/%commit.tar.gz + +BuildRequires: cargo-rpm-macros >= 24 +BuildRequires: anda-srpm-macros +BuildRequires: pkgconfig(dbusmenu-gtk3-0.4) +BuildRequires: pkgconfig(gtk-layer-shell-0) +Requires: (%name-x11 or %name-wayland) + +%global _description %{expand: +Widgets for everyone!.} + +%description %{_description} + +%package x11 +Summary: eww for x11 +Conflicts: eww-wayland +SourceLicense: MIT +License: (0BSD OR MIT OR Apache-2.0) AND Apache-2.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-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND CC0-1.0 AND ISC AND LGPL-3.0-only AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND (Unlicense OR MIT) +RemovePathPostFixes: .x11 + +%description x11 %{_description} + +%package wayland +Summary: eww for wayland +Conflicts: eww-x11 +SourceLicense: MIT +License: (0BSD OR MIT OR Apache-2.0) AND Apache-2.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-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND CC0-1.0 AND ISC AND LGPL-3.0-only AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND (Unlicense OR MIT) +RemovePathPostFixes: .wayland + +%description wayland %{_description} + +%prep +%autosetup -n eww-%{commit} -p1 +%cargo_prep_online + +%build +%{cargo_license_summary_online -n -f x11} +%{cargo_license_online -n -f x11} > LICENSE.dependencies.x11 +%{cargo_license_summary_online -n -f wayland} +%{cargo_license_online -n -f wayland} > LICENSE.dependencies.wayland +%cargo_build -n -f x11 +mv target/rpm/eww target/rpm/eww.x11 +mv target/rpm/eww.d target/rpm/eww.d.x11 +%cargo_build -n -f wayland +mv target/rpm/eww target/rpm/eww.wayland +mv target/rpm/eww.d target/rpm/eww.d.wayland + +%install +install -Dpm755 target/rpm/eww.* -t %buildroot%_bindir + +%if %{with check} +%check +%cargo_test +%endif + +%files +%license LICENSE +%doc CHANGELOG.md +%doc README.md +%doc YUCK_MIGRATION.md + +%files x11 +%license LICENSE.dependencies.x11 +%{_bindir}/eww.x11 +%{_bindir}/eww.d.x11 + +%files wayland +%license LICENSE.dependencies.wayland +%{_bindir}/eww.wayland +%{_bindir}/eww.d.wayland + +%changelog +%autochangelog diff --git a/anda/desktops/waylands/eww/update.rhai b/anda/desktops/waylands/eww/update.rhai new file mode 100644 index 0000000000..4ccc7c3399 --- /dev/null +++ b/anda/desktops/waylands/eww/update.rhai @@ -0,0 +1,6 @@ +rpm.global("commit", gh_commit("elkowar/eww")); +if rpm.changed() { + rpm.global("ver", gh("elkowar/eww")); + rpm.global("commit_date", date()); + rpm.release(); +} diff --git a/anda/desktops/waylands/swaylock-effects/anda.hcl b/anda/desktops/waylands/swaylock-effects/anda.hcl new file mode 100644 index 0000000000..1538ff0ace --- /dev/null +++ b/anda/desktops/waylands/swaylock-effects/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "swaylock-effects.spec" + } +} diff --git a/anda/desktops/waylands/swaylock-effects/swaylock-effects.spec b/anda/desktops/waylands/swaylock-effects/swaylock-effects.spec new file mode 100644 index 0000000000..c816be8f6c --- /dev/null +++ b/anda/desktops/waylands/swaylock-effects/swaylock-effects.spec @@ -0,0 +1,94 @@ +%global commit 496059a8565c2d5eed672c2e5bc5e1edd14b3de8 +%global shortcommit %{sub %{commit} 1 7} + +Name: swaylock-effects +Version: 1.7.0.0^1.%{shortcommit} +Release: 1%{?dist} +Summary: Swaylock, with fancy effects + +License: MIT +URL: https://github.com/jirutka/swaylock-effects +Source0: %{url}/archive/%{commit}.tar.gz + +Packager: sadlerm + +BuildRequires: meson gcc +BuildRequires: pam-devel +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(gdk-pixbuf-2.0) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-protocols) +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: scdoc + +Recommends: %{name}-bash-completion + +Conflicts: swaylock + +%define binary_name swaylock + +%description +swaylock-effects is a fork of swaylock which adds built-in screenshots and image manipulation effects like blurring. + + +%package bash-completion +Summary: Bash completion for %{name} +Requires: %{name} = %{version}-%{release} +Requires: bash-completion +Supplements: (%{name} and bash-completion) + +%description bash-completion +Bash command-line completion support for %{name}. + +%package zsh-completion +Summary: Zsh completion for %{name} +Requires: %{name} = %{version}-%{release} +Requires: zsh +Supplements: (%{name} and zsh) + +%description zsh-completion +Zsh command-line completion support for %{name}. + +%package fish-completion +Summary: Fish completion for %{name} +Requires: %{name} = %{version}-%{release} +Requires: fish +Supplements: (%{name} and fish) + +%description fish-completion +Fish command-line completion support for %{name}. + + +%prep +%autosetup -n %{name}-%{commit} + + +%build +%meson +%meson_build + + +%install +%meson_install + + +%files +%license LICENSE +%doc README.md +%{_bindir}/%{binary_name} +%{_mandir}/man1/%{binary_name}.1.gz +%config(noreplace) %{_sysconfdir}/pam.d/%{binary_name} + +%files bash-completion +%{bash_completions_dir}/%{binary_name} + +%files zsh-completion +%{zsh_completions_dir}/_%{binary_name} + +%files fish-completion +%{fish_completions_dir}/%{binary_name}.fish + + +%changelog +* Tue Feb 04 2025 sadlerm +- Initial package diff --git a/anda/desktops/waylands/walker/golang-github-abenz1267-walker.spec b/anda/desktops/waylands/walker/golang-github-abenz1267-walker.spec index bc81fca374..58d091fc69 100644 --- a/anda/desktops/waylands/walker/golang-github-abenz1267-walker.spec +++ b/anda/desktops/waylands/walker/golang-github-abenz1267-walker.spec @@ -2,8 +2,6 @@ %bcond check 0 %bcond bootstrap 0 -%global debug_package %{nil} - %if %{with bootstrap} %global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^golang\\(.*\\)$ %endif @@ -14,7 +12,7 @@ # https://github.com/abenz1267/walker %global goipath github.com/abenz1267/walker -Version: 0.11.4 +Version: 0.12.15 %gometa -f @@ -25,7 +23,7 @@ Multi-Purpose Launcher with a lot of features. Highly Customizable and fast.} %global godocs README.md cmd/version.txt Name: walker -Release: 2%?dist +Release: 1%?dist Summary: Multi-Purpose Launcher with a lot of features. Highly Customizable and fast License: MIT @@ -47,18 +45,19 @@ BuildRequires: pkgconfig(vips) %prep %goprep -A -%autopatch -p1 %go_prep_online +mv {LICENSE,README.md} cmd +%setup -T -D -n %{name}-%{version}/cmd %build -%go_build_online cmd/walker.go +go build -x -o walker %install #gopkginstall %if %{without bootstrap} -install -m 0755 -vd %{buildroot}%{_bindir} -install -m 0755 -vp build/bin/cmd/walker.go %{buildroot}%{_bindir}/walker +install -m 0755 -vd %{buildroot}%{_bindir} +install -m 0755 -vp walker %{buildroot}%{_bindir}/walker %endif %if %{without bootstrap} diff --git a/anda/devs/asar/asar.spec b/anda/devs/asar/asar.spec index 8e3c238fbc..fdebd68ffd 100644 --- a/anda/devs/asar/asar.spec +++ b/anda/devs/asar/asar.spec @@ -7,7 +7,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: asar -Version: 3.2.11 +Version: 3.3.1 Release: 1%?dist Summary: Simple extensive tar-like archive format with indexing License: MIT diff --git a/anda/devs/bat-extras/anda.hcl b/anda/devs/bat-extras/anda.hcl new file mode 100644 index 0000000000..35b35cb215 --- /dev/null +++ b/anda/devs/bat-extras/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "bat-extras.spec" + } +} diff --git a/anda/devs/bat-extras/bat-extras.spec b/anda/devs/bat-extras/bat-extras.spec new file mode 100644 index 0000000000..6540fa4f62 --- /dev/null +++ b/anda/devs/bat-extras/bat-extras.spec @@ -0,0 +1,43 @@ +%define debug_package %{nil} + +Name: bat-extras +Version: 2024.08.24 +Release: 1%?dist +Summary: Bash scripts that integrate bat with various command line tools + +License: MIT +URL: https://github.com/eth-p/bat-extras +Source0: %{url}/archive/v%{version}.tar.gz + +BuildRequires: bash +Requires: bash +BuildArch: noarch + +%description +%{summary}. + +%prep +%autosetup + + +%build + + +%install +./build.sh --install --prefix=%{buildroot}%{_prefix} --no-verify + +mkdir -p %{buildroot}%{_mandir}/man1/ +cp -v man/* %{buildroot}%{_mandir}/man1/ + +chmod -x %{buildroot}%{_mandir}/man1/* + + +%files +%license LICENSE.md +%{_bindir}/bat* +%{_bindir}/prettybat +%{_mandir}/man1/* + +%changelog +* Mon Oct 03 2022 Cappy Ishihara - 2022.07.27-1 +- Initial release diff --git a/anda/devs/bat-extras/update.rhai b/anda/devs/bat-extras/update.rhai new file mode 100644 index 0000000000..f1b34745a2 --- /dev/null +++ b/anda/devs/bat-extras/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("eth-p/bat-extras")); diff --git a/anda/devs/codium/codium.spec b/anda/devs/codium/codium.spec index bd5e8319df..372aed1d57 100644 --- a/anda/devs/codium/codium.spec +++ b/anda/devs/codium/codium.spec @@ -12,7 +12,7 @@ %endif Name: codium -Version: 1.93.0.24253 +Version: 1.97.1.25044 Release: 1%?dist Summary: Code editing. Redefined. License: MIT diff --git a/anda/devs/flow/anda.hcl b/anda/devs/flow/anda.hcl index 7542fe48ea..705fb5dda6 100644 --- a/anda/devs/flow/anda.hcl +++ b/anda/devs/flow/anda.hcl @@ -1,8 +1,5 @@ project pkg { rpm { - spec = "flow-control-nightly.spec" - } - labels { - nightly = 1 + spec = "flow-control.spec" } } diff --git a/anda/devs/flow/flow-control.spec b/anda/devs/flow/flow-control.spec new file mode 100644 index 0000000000..c1e005b0f2 --- /dev/null +++ b/anda/devs/flow/flow-control.spec @@ -0,0 +1,28 @@ +Name: flow-control +Epoch: 1 +Version: 0.3.3 +Release: 1%?dist +Summary: A programmer's text editor +License: MIT +URL: https://github.com/neurocyte/flow +BuildRequires: zig +BuildRequires: anda-srpm-macros +Provides: flow = %epoch:%version-%release +Obsoletes: flow-control-nightly < 20250212.9999999 + +%description +%summary. + +%prep +%git_clone %url v%version + +%build +zig build -Doptimize=ReleaseFast --release=fast + +%install +install -Dpm755 zig-out/bin/flow %buildroot%_bindir/flow + +%files +%doc README.md help.md +%license LICENSE +%_bindir/flow diff --git a/anda/devs/flow/update.rhai b/anda/devs/flow/update.rhai index 31f698e529..9693a0dbdf 100644 --- a/anda/devs/flow/update.rhai +++ b/anda/devs/flow/update.rhai @@ -1,7 +1 @@ -if filters.contains("nightly") { - rpm.global("commit", gh_commit("neurocyte/flow")); - if rpm.changed() { - rpm.release(); - rpm.global("commit_date", date()); - } -} +rpm.version(gh("neurocyte/flow")); diff --git a/anda/devs/flutter/flutter.spec b/anda/devs/flutter/flutter.spec index c76532511e..dbced8016d 100644 --- a/anda/devs/flutter/flutter.spec +++ b/anda/devs/flutter/flutter.spec @@ -1,5 +1,5 @@ Name: flutter -Version: 3.24.2 +Version: 3.29.0 Release: 1%?dist Summary: SDK for crafting beautiful, fast user experiences from a single codebase License: BSD-3-Clause diff --git a/anda/devs/ghostty/nightly/ghostty-nightly.spec b/anda/devs/ghostty/nightly/ghostty-nightly.spec index 9174493f01..8ac88da8e6 100644 --- a/anda/devs/ghostty/nightly/ghostty-nightly.spec +++ b/anda/devs/ghostty/nightly/ghostty-nightly.spec @@ -1,82 +1,116 @@ -%global commit ff9414d9ea7b16a375d41cde8f6f193de7e5db72 +%global commit 432beac3151d84c78dfe7ab860c1c3f7957f4775 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20250116 - +%global fulldate 2025-02-13 +%global commit_date %(echo %{fulldate} | sed 's/-//g') +%global public_key RWQlAjJC23149WL2sEpT/l0QKy7hMIFhYdQOFy0Z7z7PbneUgvlsnYcV +%global dev_ver 1.1.1 +%if 0%{?fedora} <= 40 +%global cache_dir %{_builddir}/zig-cache +%else %global cache_dir %{builddir}/zig-cache +%endif Name: ghostty-nightly -Version: %{commit_date}.%{shortcommit} -Release: 2%{?dist} +Version: 1.1.0 +Release: 1.tip%{dev_ver}^%{commit_date}.%{shortcommit}%{?dist} Summary: A fast, native terminal emulator written in Zig; this is the Tip (nightly) build. License: MIT AND MPL-2.0 AND OFL-1.1 AND (WTFPL OR CC0-1.0) AND Apache-2.0 URL: https://ghostty.org/ -Source0: https://github.com/ghostty-org/ghostty/archive/%{commit}/ghostty-%{commit}.tar.gz +Source0: https://github.com/ghostty-org/ghostty/releases/download/tip/ghostty-source.tar.gz +Source1: https://github.com/ghostty-org/ghostty/releases/download/tip/ghostty-source.tar.gz.minisig BuildRequires: gtk4-devel BuildRequires: libadwaita-devel +BuildRequires: libX11-devel +BuildRequires: minisign BuildRequires: ncurses BuildRequires: ncurses-devel BuildRequires: pandoc-cli BuildRequires: zig -Requires: %{name}-terminfo = %{version}-%{release} -Requires: %{name}-shell-integration = %{version}-%{release} BuildRequires: pkgconfig(bzip2) BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(fontconfig) -BuildRequires: pkgconfig(harfbuzz) -BuildRequires: pkgconfig(libpng) -BuildRequires: pkgconfig(zlib) -BuildRequires: pkgconfig(oniguruma) -BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(gtk4) +BuildRequires: pkgconfig(harfbuzz) BuildRequires: pkgconfig(libadwaita-1) -BuildRequires: libX11-devel +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(oniguruma) +BuildRequires: pkgconfig(zlib) +Requires: %{name}-terminfo = %{version}-%{release} +Requires: %{name}-shell-integration = %{version}-%{release} +Requires: gtk4 +Requires: libadwaita Conflicts: ghostty Provides: ghostty-tip = %{version}-%{release} -Packager: ShinyGil +Obsoletes: %{name} <= 20250130.04d3636-1%{?dist} +Packager: ShinyGil %description 👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration. %package bash-completion Summary: Ghostty Bash completion +Requires: %{name} = %{version}-%{release} Requires: bash-completion Supplements: (%{name} and bash-completion) +Obsoletes: %{name}-bash-completion <= 20250130.04d3636-1%{?dist} +BuildArch: noarch %description bash-completion -%summary. +Bash shell completion for Ghostty. %package fish-completion Summary: Ghostty Fish completion +Requires: %{name} = %{version}-%{release} Requires: fish Supplements: (%{name} and fish) +Obsoletes: %{name}-fish-completion <= 20250130.04d3636-1%{?dist} +BuildArch: noarch %description fish-completion -%summary. +Fish shell completion for Ghostty. %package zsh-completion Summary: Ghostty Zsh completion +Requires: %{name} = %{version}-%{release} Requires: zsh Supplements: (%{name} and zsh) +Obsoletes: %{name}-zsh-completion <= 20250130.04d3636-1%{?dist} +BuildArch: noarch %description zsh-completion -%summary. +Zsh shell completion for Ghostty. %package shell-integration Summary: Ghostty shell integration Supplements: %{name} +Obsoletes: %{name}-shell-integration <= 20250130.04d3636-1%{?dist} +BuildArch: noarch %description shell-integration -%summary. +This package contains files allowing Ghostty to integrate with various shells. %package terminfo Summary: Ghostty terminfo Supplements: %{name} +Obsoletes: %{name}-terminfo <= 20250130.04d3636-1%{?dist} +BuildArch: noarch %description terminfo -%summary. +Ghostty's terminfo. Needed for basic terminal function. + +%package terminfo-source +Summary: Source files for Ghostty's terminfo +Requires: %{name} +Requires: %{name}-terminfo +BuildArch: noarch + +%description terminfo-source +This package contains files for Ghostty's terminfo. Available for debugging use. %prep -%autosetup -n ghostty-%{commit} -p1 +/usr/bin/minisign -V -m %{SOURCE0} -x %{SOURCE1} -P %{public_key} +%autosetup -n ghostty-source # Download everything ahead of time so we can enable system integration mode ZIG_GLOBAL_CACHE_DIR="%{cache_dir}" ./nix/build-support/fetch-zig-cache.sh @@ -95,7 +129,9 @@ zig build \ -Dcpu=baseline \ -Dstrip=false \ -Dpie=true \ - -Demit-docs + -Demit-docs \ + -Demit-termcap \ + -Demit-terminfo %files %doc README.md @@ -105,7 +141,7 @@ zig build \ %_datadir/bat/syntaxes/ghostty.sublime-syntax %_datadir/ghostty/ %_datadir/kio/servicemenus/com.mitchellh.ghostty.desktop -%_datadir/nautilus-python/extensions/com.mitchellh.ghostty.py +%_datadir/nautilus-python/extensions/ghostty.py %_datadir/nvim/site/compiler/ghostty.vim %_datadir/nvim/site/ftdetect/ghostty.vim %_datadir/nvim/site/ftplugin/ghostty.vim @@ -145,16 +181,24 @@ zig build \ %_datadir/ghostty/shell-integration/zsh/ghostty-integration %files terminfo -%_datadir/terminfo/ghostty.termcap -%_datadir/terminfo/ghostty.terminfo %_datadir/terminfo/g/ghostty %_datadir/terminfo/x/xterm-ghostty +%files terminfo-source +%_datadir/terminfo/ghostty.termcap +%_datadir/terminfo/ghostty.terminfo + %changelog -* Tue Dec 31 2024 ShinyGil +* Fri Jan 31 2025 ShinyGil +- Update to 1.1.1-1%{?dist}.20250131tipc5508e7 + * Low GHSA-98wc-794w-gjx3: Ghostty leaked file descriptors allowing the shell and any of its child processes to impact other Ghostty terminal instances + * Better Git versioning scheme + * Ghostty terminfo source files are now a subpackage + * Shell integration and completion and terminfo subpackages are now properly noarch +* Tue Dec 31 2024 ShinyGil - Update to 20241231.3f7c3af * High CVE-2003-0063: Allows execution of arbitrary commands * Medium CVE-2003-0070: Allows execution of arbitrary commands -* Thu Dec 26 2024 ShinyGil +* Thu Dec 26 2024 ShinyGil - Initial package diff --git a/anda/devs/ghostty/nightly/update.rhai b/anda/devs/ghostty/nightly/update.rhai index d41accfda2..3261f0ef2d 100644 --- a/anda/devs/ghostty/nightly/update.rhai +++ b/anda/devs/ghostty/nightly/update.rhai @@ -1,5 +1,13 @@ -rpm.global("commit", gh_commit("ghostty-org/ghostty")); +let url = `https://api.github.com/repos/ghostty-org/ghostty/releases/83450291`; +let json = get(url).json(); +let commit = json.target_commitish; +rpm.global("commit", commit); if rpm.changed() { - rpm.release(); - rpm.global("commit_date", date()); + let date = json.created_at; + date.truncate(10); + let html = get(`https://raw.githubusercontent.com/ghostty-org/ghostty/refs/heads/main/build.zig.zon`); + let ver = find(".version = \"([\\d.]+)\"", html, 1); + rpm.version(gh_tag("ghostty-org/ghostty")); + rpm.global("fulldate", date); + rpm.global("dev_ver", ver) } diff --git a/anda/devs/ghostty/stable/ghostty.spec b/anda/devs/ghostty/stable/ghostty.spec index aefc0957a1..67fa1d05bd 100644 --- a/anda/devs/ghostty/stable/ghostty.spec +++ b/anda/devs/ghostty/stable/ghostty.spec @@ -1,80 +1,101 @@ # Signing key from https://github.com/ghostty-org/ghostty/blob/main/PACKAGING.md %global public_key RWQlAjJC23149WL2sEpT/l0QKy7hMIFhYdQOFy0Z7z7PbneUgvlsnYcV - +%if 0%{?fedora} <= 40 +%global cache_dir %{_builddir}/zig-cache +%else %global cache_dir %{builddir}/zig-cache +%endif Name: ghostty -Version: 1.0.1 -Release: 5%{?dist} +Version: 1.1.0 +Release: 2%?dist Summary: A fast, native terminal emulator written in Zig. License: MIT AND MPL-2.0 AND OFL-1.1 AND (WTFPL OR CC0-1.0) AND Apache-2.0 URL: https://ghostty.org/ Source0: https://release.files.ghostty.org/%{version}/ghostty-%{version}.tar.gz Source1: https://release.files.ghostty.org/%{version}/ghostty-%{version}.tar.gz.minisig -Patch0: no-strip.diff BuildRequires: gtk4-devel BuildRequires: libadwaita-devel +BuildRequires: libX11-devel +BuildRequires: minisign BuildRequires: ncurses BuildRequires: ncurses-devel BuildRequires: pandoc-cli BuildRequires: zig -BuildRequires: minisign -Requires: %{name}-terminfo = %{version}-%{release} -Requires: %{name}-shell-integration = %{version}-%{release} BuildRequires: pkgconfig(bzip2) BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(fontconfig) -BuildRequires: pkgconfig(harfbuzz) -BuildRequires: pkgconfig(libpng) -BuildRequires: pkgconfig(zlib) -BuildRequires: pkgconfig(oniguruma) -BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(gtk4) +BuildRequires: pkgconfig(harfbuzz) BuildRequires: pkgconfig(libadwaita-1) -BuildRequires: libX11-devel +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(oniguruma) +BuildRequires: pkgconfig(zlib) +Requires: %{name}-terminfo = %{version}-%{release} +Requires: %{name}-shell-integration = %{version}-%{release} +Requires: gtk4 +Requires: libadwaita Conflicts: ghostty-nightly -Packager: ShinyGil +Packager: ShinyGil %description 👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration. %package bash-completion Summary: Ghostty Bash completion +Requires: %{name} = %{version}-%{release} Requires: bash-completion Supplements: (%{name} and bash-completion) +BuildArch: noarch %description bash-completion -%summary. +Bash shell completion for Ghostty. %package fish-completion Summary: Ghostty Fish completion +Requires: %{name} = %{version}-%{release} Requires: fish Supplements: (%{name} and fish) +BuildArch: noarch %description fish-completion -%summary. +Fish shell completion for Ghostty. %package zsh-completion Summary: Ghostty Zsh completion +Requires: %{name} = %{version}-%{release} Requires: zsh Supplements: (%{name} and zsh) +BuildArch: noarch %description zsh-completion -%summary. +Zsh shell completion for Ghostty. %package shell-integration Summary: Ghostty shell integration Supplements: %{name} +BuildArch: noarch %description shell-integration -%summary. +This package contains files allowing Ghostty to integrate with various shells. %package terminfo Summary: Ghostty terminfo Supplements: %{name} +BuildArch: noarch %description terminfo -%summary. +Ghostty's terminfo. Needed for basic terminal function. + +%package terminfo-source +Summary: Source files for Ghostty's terminfo +Requires: %{name} +Requires: %{name}-terminfo +BuildArch: noarch + +%description terminfo-source +Source files for Ghostty's terminfo. Available for debugging use. %prep /usr/bin/minisign -V -m %{SOURCE0} -x %{SOURCE1} -P %{public_key} @@ -96,8 +117,11 @@ zig build \ --verbose \ -Dversion-string=%{version} \ -Dcpu=baseline \ + -Dstrip=false \ -Dpie=true \ - -Demit-docs + -Demit-docs \ + -Demit-termcap \ + -Demit-terminfo %files %doc README.md @@ -107,9 +131,12 @@ zig build \ %_datadir/bat/syntaxes/ghostty.sublime-syntax %_datadir/ghostty/ %_datadir/kio/servicemenus/com.mitchellh.ghostty.desktop +%_datadir/nautilus-python/extensions/com.mitchellh.ghostty.py +%_datadir/nvim/site/compiler/ghostty.vim %_datadir/nvim/site/ftdetect/ghostty.vim %_datadir/nvim/site/ftplugin/ghostty.vim %_datadir/nvim/site/syntax/ghostty.vim +%_datadir/vim/vimfiles/compiler/ghostty.vim %_datadir/vim/vimfiles/ftdetect/ghostty.vim %_datadir/vim/vimfiles/ftplugin/ghostty.vim %_datadir/vim/vimfiles/syntax/ghostty.vim @@ -144,16 +171,23 @@ zig build \ %_datadir/ghostty/shell-integration/zsh/ghostty-integration %files terminfo -%_datadir/terminfo/ghostty.termcap -%_datadir/terminfo/ghostty.terminfo %_datadir/terminfo/g/ghostty %_datadir/terminfo/x/xterm-ghostty +%files terminfo-source +%_datadir/terminfo/ghostty.termcap +%_datadir/terminfo/ghostty.terminfo + %changelog -* Tue Dec 31 2024 ShinyGil +* Fri Jan 31 2025 ShinyGil +- Update to 1.1.0-1%{?dist} + * Low GHSA-98wc-794w-gjx3: Ghostty leaked file descriptors allowing the shell and any of its child processes to impact other Ghostty terminal instances + * Ghostty terminfo source files are now a subpackage + * Shell integration and completion and terminfo subpackages are now properly noarch +* Tue Dec 31 2024 ShinyGil - Update to 1.0.1 * High CVE-2003-0063: Allows execution of arbitrary commands * Medium CVE-2003-0070: Allows execution of arbitrary commands -* Thu Dec 26 2024 ShinyGil +* Thu Dec 26 2024 ShinyGil - Initial package diff --git a/anda/devs/kvrocks/kvrocks.spec b/anda/devs/kvrocks/kvrocks.spec index 171bd55648..76936334c5 100644 --- a/anda/devs/kvrocks/kvrocks.spec +++ b/anda/devs/kvrocks/kvrocks.spec @@ -1,6 +1,6 @@ Name: kvrocks -Version: 2.9.0 -Release: 2%?dist +Version: 2.11.1 +Release: 1%?dist Summary: Distributed key value NoSQL database that uses RocksDB License: Apache-2.0 URL: https://kvrocks.apache.org/ diff --git a/anda/devs/tmon/anda.hcl b/anda/devs/tmon/anda.hcl new file mode 100644 index 0000000000..e72e5561c8 --- /dev/null +++ b/anda/devs/tmon/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "tmon.spec" + } +} diff --git a/anda/devs/tmon/tmon.spec b/anda/devs/tmon/tmon.spec new file mode 100644 index 0000000000..525ef254cd --- /dev/null +++ b/anda/devs/tmon/tmon.spec @@ -0,0 +1,48 @@ +%global commit e8cae0d88dc8d51cb0e34e3fd3553bcbdaf04ca5 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20241215 +%global debug_package %{nil} + +Name: tmon +Version: %{commit_date}.git~%{shortcommit} +Release: 1%{?dist} +Summary: A tiny system monitor for Linux + +License: GPL-3.0-only +URL: https://github.com/pondda/%{name} +Source0: %{url}/archive/%{commit}.tar.gz + +Requires: lm_sensors +Conflicts: kernel-tools + +Recommends: google-noto-color-emoji-fonts + +BuildRequires: make gcc-c++ ncurses-devel + +Packager: sadlerm + +%description +%{summary}. + +%prep +%autosetup -n %{name}-%{commit} + +%build +%make_build + +%install +install -m 0755 -vd %{buildroot}%{_bindir} +install -m 0755 -vp %{name} %{buildroot}%{_bindir}/%{name} +install -m 0755 -vd %{buildroot}%{_sysconfdir}/%{name} +install -m 0644 -vp default.conf %{buildroot}%{_sysconfdir}/%{name}/ + +%files +%license LICENSE +%doc README.md +%{_bindir}/%{name} +%{_sysconfdir}/%{name}/default.conf + +%changelog +* Tue Dec 17 2024 sadlerm +- Initial package + diff --git a/anda/devs/tmon/update.rhai b/anda/devs/tmon/update.rhai new file mode 100644 index 0000000000..9e475ef20f --- /dev/null +++ b/anda/devs/tmon/update.rhai @@ -0,0 +1,6 @@ +rpm.global("commit", gh_commit("pondda/tmon")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} + diff --git a/anda/devs/zed/nightly/zed-nightly.spec b/anda/devs/zed/nightly/zed-nightly.spec index 8b7a665b61..1d603c63d8 100644 --- a/anda/devs/zed/nightly/zed-nightly.spec +++ b/anda/devs/zed/nightly/zed-nightly.spec @@ -1,7 +1,7 @@ -%global commit f71cb14d7a3c876b1a5a69949a5a198ed3bfbd5a +%global commit f0cd71e43c0254bac25c05b3c8ac56a7d1ab05d3 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240910 -%global ver 0.153.0 +%global commit_date 20250213 +%global ver 0.174.0 %bcond_with check @@ -31,6 +31,7 @@ BuildRequires: gcc BuildRequires: g++ BuildRequires: clang BuildRequires: mold +BuildRequires: cmake BuildRequires: alsa-lib-devel BuildRequires: fontconfig-devel BuildRequires: wayland-devel diff --git a/anda/devs/zed/preview/zed-preview.spec b/anda/devs/zed/preview/zed-preview.spec index 6f32e53988..fb05e09927 100644 --- a/anda/devs/zed/preview/zed-preview.spec +++ b/anda/devs/zed/preview/zed-preview.spec @@ -1,6 +1,6 @@ %bcond_with check -%global ver 0.152.1-pre +%global ver 0.173.8-pre # Exclude input files from mangling %global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ # Use Mold as the linker diff --git a/anda/devs/zed/stable/zed.spec b/anda/devs/zed/stable/zed.spec index e156f41d18..be573cb5d1 100644 --- a/anda/devs/zed/stable/zed.spec +++ b/anda/devs/zed/stable/zed.spec @@ -9,7 +9,7 @@ %global app_id dev.zed.Zed Name: zed -Version: 0.151.2 +Version: 0.172.11 Release: 1%?dist Summary: Zed is a high-performance, multiplayer code editor diff --git a/anda/docker/containerd/.gitignore b/anda/docker/containerd/.gitignore deleted file mode 100644 index cd976ef07f..0000000000 --- a/anda/docker/containerd/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -containerd-*.tar.gz -clog diff --git a/anda/docker/containerd/0001-Add-reaper-StartLocked.patch b/anda/docker/containerd/0001-Add-reaper-StartLocked.patch deleted file mode 100644 index 610ec0005d..0000000000 --- a/anda/docker/containerd/0001-Add-reaper-StartLocked.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 788f2f928c1d0099d3861553bf82e83169811a29 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= -Date: Tue, 1 Nov 2022 22:09:38 +0100 -Subject: [PATCH] Add reaper StartLocked - ---- - sys/reaper/reaper_unix.go | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/sys/reaper/reaper_unix.go b/sys/reaper/reaper_unix.go -index 6c4f13b90..a6d6a1e77 100644 ---- a/sys/reaper/reaper_unix.go -+++ b/sys/reaper/reaper_unix.go -@@ -101,6 +101,16 @@ func (m *Monitor) Start(c *exec.Cmd) (chan runc.Exit, error) { - return ec, nil - } - -+// StartLocked starts the command a registers the process with the reaper -+func (m *Monitor) StartLocked(c *exec.Cmd) (chan runc.Exit, error) { -+ ec := m.Subscribe() -+ if err := c.Start(); err != nil { -+ m.Unsubscribe(ec) -+ return nil, err -+ } -+ return ec, nil -+} -+ - // Wait blocks until a process is signal as dead. - // User should rely on the value of the exit status to determine if the - // command was successful or not. --- -2.38.1 - diff --git a/anda/docker/containerd/0001-Revert-commit-for-Windows-metrics.patch b/anda/docker/containerd/0001-Revert-commit-for-Windows-metrics.patch deleted file mode 100644 index 568f98ff13..0000000000 --- a/anda/docker/containerd/0001-Revert-commit-for-Windows-metrics.patch +++ /dev/null @@ -1,157 +0,0 @@ -From beb23ffb0624b40b2ee1bc56730e54943bd3020f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= -Date: Thu, 1 Oct 2020 07:19:45 +0200 -Subject: [PATCH] Revert commit for Windows metrics -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Robert-André Mauchin ---- - cmd/ctr/commands/tasks/metrics.go | 113 ------------------------------ - 1 file changed, 113 deletions(-) - -diff --git a/cmd/ctr/commands/tasks/metrics.go b/cmd/ctr/commands/tasks/metrics.go -index a83e45ef..f8371401 100644 ---- a/cmd/ctr/commands/tasks/metrics.go -+++ b/cmd/ctr/commands/tasks/metrics.go -@@ -23,9 +23,6 @@ import ( - "os" - "text/tabwriter" - -- wstats "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/stats" -- v1 "github.com/containerd/cgroups/stats/v1" -- v2 "github.com/containerd/cgroups/v2/stats" - "github.com/containerd/containerd/cmd/ctr/commands" - "github.com/containerd/typeurl" - "github.com/urfave/cli" -@@ -77,42 +74,12 @@ var metricsCommand = cli.Command{ - if err != nil { - return err - } -- var ( -- data *v1.Metrics -- data2 *v2.Metrics -- windowsStats *wstats.Statistics -- ) -- switch v := anydata.(type) { -- case *v1.Metrics: -- data = v -- case *v2.Metrics: -- data2 = v -- case *wstats.Statistics: -- windowsStats = v -- default: -- return errors.New("cannot convert metric data to cgroups.Metrics or windows.Statistics") -- } - - switch context.String(formatFlag) { - case formatTable: - w := tabwriter.NewWriter(os.Stdout, 1, 8, 4, ' ', 0) - fmt.Fprintf(w, "ID\tTIMESTAMP\t\n") - fmt.Fprintf(w, "%s\t%s\t\n\n", metric.ID, metric.Timestamp) -- if data != nil { -- printCgroupMetricsTable(w, data) -- } else if data2 != nil { -- printCgroup2MetricsTable(w, data2) -- } else { -- if windowsStats.GetLinux() != nil { -- printCgroupMetricsTable(w, windowsStats.GetLinux()) -- } else if windowsStats.GetWindows() != nil { -- printWindowsContainerStatistics(w, windowsStats.GetWindows()) -- } -- // Print VM stats if its isolated -- if windowsStats.VM != nil { -- printWindowsVMStatistics(w, windowsStats.VM) -- } -- } - return w.Flush() - case formatJSON: - marshaledJSON, err := json.MarshalIndent(anydata, "", " ") -@@ -126,83 +93,3 @@ var metricsCommand = cli.Command{ - } - }, - } -- --func printCgroupMetricsTable(w *tabwriter.Writer, data *v1.Metrics) { -- fmt.Fprintf(w, "METRIC\tVALUE\t\n") -- if data.Memory != nil { -- fmt.Fprintf(w, "memory.usage_in_bytes\t%d\t\n", data.Memory.Usage.Usage) -- fmt.Fprintf(w, "memory.limit_in_bytes\t%d\t\n", data.Memory.Usage.Limit) -- fmt.Fprintf(w, "memory.stat.cache\t%d\t\n", data.Memory.TotalCache) -- } -- if data.CPU != nil { -- fmt.Fprintf(w, "cpuacct.usage\t%d\t\n", data.CPU.Usage.Total) -- fmt.Fprintf(w, "cpuacct.usage_percpu\t%v\t\n", data.CPU.Usage.PerCPU) -- } -- if data.Pids != nil { -- fmt.Fprintf(w, "pids.current\t%v\t\n", data.Pids.Current) -- fmt.Fprintf(w, "pids.limit\t%v\t\n", data.Pids.Limit) -- } --} -- --func printCgroup2MetricsTable(w *tabwriter.Writer, data *v2.Metrics) { -- fmt.Fprintf(w, "METRIC\tVALUE\t\n") -- if data.Pids != nil { -- fmt.Fprintf(w, "pids.current\t%v\t\n", data.Pids.Current) -- fmt.Fprintf(w, "pids.limit\t%v\t\n", data.Pids.Limit) -- } -- if data.CPU != nil { -- fmt.Fprintf(w, "cpu.usage_usec\t%v\t\n", data.CPU.UsageUsec) -- fmt.Fprintf(w, "cpu.user_usec\t%v\t\n", data.CPU.UserUsec) -- fmt.Fprintf(w, "cpu.system_usec\t%v\t\n", data.CPU.SystemUsec) -- fmt.Fprintf(w, "cpu.nr_periods\t%v\t\n", data.CPU.NrPeriods) -- fmt.Fprintf(w, "cpu.nr_throttled\t%v\t\n", data.CPU.NrThrottled) -- fmt.Fprintf(w, "cpu.throttled_usec\t%v\t\n", data.CPU.ThrottledUsec) -- } -- if data.Memory != nil { -- fmt.Fprintf(w, "memory.usage\t%v\t\n", data.Memory.Usage) -- fmt.Fprintf(w, "memory.usage_limit\t%v\t\n", data.Memory.UsageLimit) -- fmt.Fprintf(w, "memory.swap_usage\t%v\t\n", data.Memory.SwapUsage) -- fmt.Fprintf(w, "memory.swap_limit\t%v\t\n", data.Memory.SwapLimit) -- } --} -- --func printWindowsContainerStatistics(w *tabwriter.Writer, stats *wstats.WindowsContainerStatistics) { -- fmt.Fprintf(w, "METRIC\tVALUE\t\n") -- fmt.Fprintf(w, "timestamp\t%s\t\n", stats.Timestamp) -- fmt.Fprintf(w, "start_time\t%s\t\n", stats.ContainerStartTime) -- fmt.Fprintf(w, "uptime_ns\t%d\t\n", stats.UptimeNS) -- if stats.Processor != nil { -- fmt.Fprintf(w, "cpu.total_runtime_ns\t%d\t\n", stats.Processor.TotalRuntimeNS) -- fmt.Fprintf(w, "cpu.runtime_user_ns\t%d\t\n", stats.Processor.RuntimeUserNS) -- fmt.Fprintf(w, "cpu.runtime_kernel_ns\t%d\t\n", stats.Processor.RuntimeKernelNS) -- } -- if stats.Memory != nil { -- fmt.Fprintf(w, "memory.commit_bytes\t%d\t\n", stats.Memory.MemoryUsageCommitBytes) -- fmt.Fprintf(w, "memory.commit_peak_bytes\t%d\t\n", stats.Memory.MemoryUsageCommitPeakBytes) -- fmt.Fprintf(w, "memory.private_working_set_bytes\t%d\t\n", stats.Memory.MemoryUsagePrivateWorkingSetBytes) -- } -- if stats.Storage != nil { -- fmt.Fprintf(w, "storage.read_count_normalized\t%d\t\n", stats.Storage.ReadCountNormalized) -- fmt.Fprintf(w, "storage.read_size_bytes\t%d\t\n", stats.Storage.ReadSizeBytes) -- fmt.Fprintf(w, "storage.write_count_normalized\t%d\t\n", stats.Storage.WriteCountNormalized) -- fmt.Fprintf(w, "storage.write_size_bytes\t%d\t\n", stats.Storage.WriteSizeBytes) -- } --} -- --func printWindowsVMStatistics(w *tabwriter.Writer, stats *wstats.VirtualMachineStatistics) { -- fmt.Fprintf(w, "METRIC\tVALUE\t\n") -- if stats.Processor != nil { -- fmt.Fprintf(w, "vm.cpu.total_runtime_ns\t%d\t\n", stats.Processor.TotalRuntimeNS) -- } -- if stats.Memory != nil { -- fmt.Fprintf(w, "vm.memory.working_set_bytes\t%d\t\n", stats.Memory.WorkingSetBytes) -- fmt.Fprintf(w, "vm.memory.virtual_node_count\t%d\t\n", stats.Memory.VirtualNodeCount) -- fmt.Fprintf(w, "vm.memory.available\t%d\t\n", stats.Memory.VmMemory.AvailableMemory) -- fmt.Fprintf(w, "vm.memory.available_buffer\t%d\t\n", stats.Memory.VmMemory.AvailableMemoryBuffer) -- fmt.Fprintf(w, "vm.memory.reserved\t%d\t\n", stats.Memory.VmMemory.ReservedMemory) -- fmt.Fprintf(w, "vm.memory.assigned\t%d\t\n", stats.Memory.VmMemory.AssignedMemory) -- fmt.Fprintf(w, "vm.memory.slp_active\t%t\t\n", stats.Memory.VmMemory.SlpActive) -- fmt.Fprintf(w, "vm.memory.balancing_enabled\t%t\t\n", stats.Memory.VmMemory.BalancingEnabled) -- fmt.Fprintf(w, "vm.memory.dm_operation_in_progress\t%t\t\n", stats.Memory.VmMemory.DmOperationInProgress) -- } --} --- -2.28.0 - diff --git a/anda/docker/containerd/0001-Use-typeurl.Any-instead-of-github.com-gogo-protobuf-.patch b/anda/docker/containerd/0001-Use-typeurl.Any-instead-of-github.com-gogo-protobuf-.patch deleted file mode 100644 index 5577569579..0000000000 --- a/anda/docker/containerd/0001-Use-typeurl.Any-instead-of-github.com-gogo-protobuf-.patch +++ /dev/null @@ -1,1467 +0,0 @@ -From 92d2d9b8ed28b3918ad902219245b6c737e9dee4 Mon Sep 17 00:00:00 2001 -From: Davanum Srinivas -Date: Fri, 25 Aug 2023 11:11:35 -0400 -Subject: [PATCH] [PATCH] Use typeurl.Any instead of - github.com/gogo/protobuf/types.Any - -This commit upgrades github.com/containerd/typeurl to use typeurl.Any. -The interface hides gogo/protobuf/types.Any from containerd's Go client. - -Signed-off-by: Kazuyoshi Kato -Signed-off-by: Davanum Srinivas ---- - cmd/containerd-shim/main_unix.go | 4 +- - cmd/ctr/commands/containers/containers.go | 2 +- - container.go | 10 +-- - container_checkpoint_opts.go | 8 +-- - container_opts.go | 10 +-- - containers/containers.go | 8 +-- - containerstore.go | 19 ++++-- - events.go | 5 +- - events/events.go | 3 +- - events/exchange/exchange.go | 8 +-- - go.mod | 2 +- - go.sum | 3 +- - integration/client/container_test.go | 8 +-- - integration/client/go.mod | 2 +- - integration/client/go.sum | 3 +- - metadata/boltutil/helpers.go | 21 +++--- - metadata/containers.go | 3 +- - metadata/containers_test.go | 83 ++++++++++++++--------- - metrics/cgroups/metrics_test.go | 6 +- - pkg/cri/server/events.go | 3 +- - pkg/cri/server/helpers.go | 5 +- - pkg/cri/server/helpers_test.go | 13 ++++ - pkg/cri/server/restart.go | 4 +- - protobuf/any.go | 47 +++++++++++++ - protobuf/any_test.go | 26 +++++++ - runtime/runtime.go | 8 +-- - runtime/v1/linux/runtime.go | 9 +-- - runtime/v1/linux/task.go | 4 +- - runtime/v1/shim/service.go | 3 +- - runtime/v2/manager.go | 7 +- - runtime/v2/runc/container.go | 6 +- - runtime/v2/runc/task/service.go | 5 +- - runtime/v2/runc/v1/service.go | 5 +- - runtime/v2/shim.go | 5 +- - runtime/v2/shim/publisher.go | 4 +- - services/containers/helpers.go | 20 ++++-- - services/events/service.go | 3 +- - services/tasks/local.go | 5 +- - task.go | 7 +- - 39 files changed, 270 insertions(+), 127 deletions(-) - create mode 100644 protobuf/any.go - create mode 100644 protobuf/any_test.go - -diff --git a/cmd/containerd-shim/main_unix.go b/cmd/containerd-shim/main_unix.go -index 024611bf3bdf..ef32ae38bb51 100644 ---- a/cmd/containerd-shim/main_unix.go -+++ b/cmd/containerd-shim/main_unix.go -@@ -38,12 +38,12 @@ import ( - "github.com/containerd/containerd/events" - "github.com/containerd/containerd/namespaces" - "github.com/containerd/containerd/pkg/process" -+ "github.com/containerd/containerd/protobuf" - shimlog "github.com/containerd/containerd/runtime/v1" - "github.com/containerd/containerd/runtime/v1/shim" - shimapi "github.com/containerd/containerd/runtime/v1/shim/v1" - "github.com/containerd/containerd/sys/reaper" - "github.com/containerd/ttrpc" -- "github.com/containerd/typeurl" - ptypes "github.com/gogo/protobuf/types" - "github.com/sirupsen/logrus" - exec "golang.org/x/sys/execabs" -@@ -286,7 +286,7 @@ type remoteEventsPublisher struct { - - func (l *remoteEventsPublisher) Publish(ctx context.Context, topic string, event events.Event) error { - ns, _ := namespaces.Namespace(ctx) -- encoded, err := typeurl.MarshalAny(event) -+ encoded, err := protobuf.MarshalAnyToProto(event) - if err != nil { - return err - } -diff --git a/cmd/ctr/commands/containers/containers.go b/cmd/ctr/commands/containers/containers.go -index d1025344e0a0..3f2d55d6c10c 100644 ---- a/cmd/ctr/commands/containers/containers.go -+++ b/cmd/ctr/commands/containers/containers.go -@@ -280,7 +280,7 @@ var infoCommand = cli.Command{ - return nil - } - -- if info.Spec != nil && info.Spec.Value != nil { -+ if info.Spec != nil && info.Spec.GetValue() != nil { - v, err := typeurl.UnmarshalAny(info.Spec) - if err != nil { - return err -diff --git a/container.go b/container.go -index 2cf15666f132..8511d863dc1c 100644 ---- a/container.go -+++ b/container.go -@@ -32,10 +32,10 @@ import ( - "github.com/containerd/containerd/errdefs" - "github.com/containerd/containerd/images" - "github.com/containerd/containerd/oci" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/containerd/runtime/v2/runc/options" - "github.com/containerd/fifo" - "github.com/containerd/typeurl" -- prototypes "github.com/gogo/protobuf/types" - ver "github.com/opencontainers/image-spec/specs-go" - ocispec "github.com/opencontainers/image-spec/specs-go/v1" - "github.com/opencontainers/selinux/go-selinux/label" -@@ -74,7 +74,7 @@ type Container interface { - // SetLabels sets the provided labels for the container and returns the final label set - SetLabels(context.Context, map[string]string) (map[string]string, error) - // Extensions returns the extensions set on the container -- Extensions(context.Context) (map[string]prototypes.Any, error) -+ Extensions(context.Context) (map[string]typeurl.Any, error) - // Update a container - Update(context.Context, ...UpdateContainerOpts) error - // Checkpoint creates a checkpoint image of the current container -@@ -120,7 +120,7 @@ func (c *container) Info(ctx context.Context, opts ...InfoOpts) (containers.Cont - return c.metadata, nil - } - --func (c *container) Extensions(ctx context.Context) (map[string]prototypes.Any, error) { -+func (c *container) Extensions(ctx context.Context) (map[string]typeurl.Any, error) { - r, err := c.get(ctx) - if err != nil { - return nil, err -@@ -163,7 +163,7 @@ func (c *container) Spec(ctx context.Context) (*oci.Spec, error) { - return nil, err - } - var s oci.Spec -- if err := json.Unmarshal(r.Spec.Value, &s); err != nil { -+ if err := json.Unmarshal(r.Spec.GetValue(), &s); err != nil { - return nil, err - } - return &s, nil -@@ -285,7 +285,7 @@ func (c *container) NewTask(ctx context.Context, ioCreate cio.Creator, opts ...N - if err != nil { - return nil, err - } -- request.Options = any -+ request.Options = protobuf.FromAny(any) - } - t := &task{ - client: c.client, -diff --git a/container_checkpoint_opts.go b/container_checkpoint_opts.go -index a64ef618ba62..ee2fa1b977eb 100644 ---- a/container_checkpoint_opts.go -+++ b/container_checkpoint_opts.go -@@ -28,9 +28,9 @@ import ( - "github.com/containerd/containerd/diff" - "github.com/containerd/containerd/images" - "github.com/containerd/containerd/platforms" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/containerd/rootfs" - "github.com/containerd/containerd/runtime/v2/runc/options" -- "github.com/containerd/typeurl" - imagespec "github.com/opencontainers/image-spec/specs-go/v1" - ) - -@@ -56,7 +56,7 @@ func WithCheckpointImage(ctx context.Context, client *Client, c *containers.Cont - - // WithCheckpointTask includes the running task - func WithCheckpointTask(ctx context.Context, client *Client, c *containers.Container, index *imagespec.Index, copts *options.CheckpointOptions) error { -- any, err := typeurl.MarshalAny(copts) -+ any, err := protobuf.MarshalAnyToProto(copts) - if err != nil { - return nil - } -@@ -97,8 +97,8 @@ func WithCheckpointTask(ctx context.Context, client *Client, c *containers.Conta - - // WithCheckpointRuntime includes the container runtime info - func WithCheckpointRuntime(ctx context.Context, client *Client, c *containers.Container, index *imagespec.Index, copts *options.CheckpointOptions) error { -- if c.Runtime.Options != nil { -- data, err := c.Runtime.Options.Marshal() -+ if c.Runtime.Options != nil && c.Runtime.Options.GetValue() != nil { -+ data, err := protobuf.FromAny(c.Runtime.Options).Marshal() - if err != nil { - return err - } -diff --git a/container_opts.go b/container_opts.go -index 4d630ea6c9d2..f005fe1c7730 100644 ---- a/container_opts.go -+++ b/container_opts.go -@@ -27,9 +27,9 @@ import ( - "github.com/containerd/containerd/errdefs" - "github.com/containerd/containerd/images" - "github.com/containerd/containerd/oci" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/containerd/snapshots" - "github.com/containerd/typeurl" -- "github.com/gogo/protobuf/types" - "github.com/opencontainers/image-spec/identity" - v1 "github.com/opencontainers/image-spec/specs-go/v1" - ) -@@ -57,7 +57,7 @@ type InfoConfig struct { - func WithRuntime(name string, options interface{}) NewContainerOpts { - return func(ctx context.Context, client *Client, c *containers.Container) error { - var ( -- any *types.Any -+ any typeurl.Any - err error - ) - if options != nil { -@@ -288,9 +288,9 @@ func WithContainerExtension(name string, extension interface{}) NewContainerOpts - } - - if c.Extensions == nil { -- c.Extensions = make(map[string]types.Any) -+ c.Extensions = make(map[string]typeurl.Any) - } -- c.Extensions[name] = *any -+ c.Extensions[name] = any - return nil - } - } -@@ -315,7 +315,7 @@ func WithSpec(s *oci.Spec, opts ...oci.SpecOpts) NewContainerOpts { - } - - var err error -- c.Spec, err = typeurl.MarshalAny(s) -+ c.Spec, err = protobuf.MarshalAnyToProto(s) - return err - } - } -diff --git a/containers/containers.go b/containers/containers.go -index 7174bbd6aa6f..275f8069ea12 100644 ---- a/containers/containers.go -+++ b/containers/containers.go -@@ -20,7 +20,7 @@ import ( - "context" - "time" - -- "github.com/gogo/protobuf/types" -+ "github.com/containerd/typeurl" - ) - - // Container represents the set of data pinned by a container. Unless otherwise -@@ -53,7 +53,7 @@ type Container struct { - // container. - // - // This field is required but mutable. -- Spec *types.Any -+ Spec typeurl.Any - - // SnapshotKey specifies the snapshot key to use for the container's root - // filesystem. When starting a task from this container, a caller should -@@ -75,13 +75,13 @@ type Container struct { - UpdatedAt time.Time - - // Extensions stores client-specified metadata -- Extensions map[string]types.Any -+ Extensions map[string]typeurl.Any - } - - // RuntimeInfo holds runtime specific information - type RuntimeInfo struct { - Name string -- Options *types.Any -+ Options typeurl.Any - } - - // Store interacts with the underlying container storage -diff --git a/containerstore.go b/containerstore.go -index bdd1c6066a79..2a154e26590d 100644 ---- a/containerstore.go -+++ b/containerstore.go -@@ -24,6 +24,8 @@ import ( - containersapi "github.com/containerd/containerd/api/services/containers/v1" - "github.com/containerd/containerd/containers" - "github.com/containerd/containerd/errdefs" -+ "github.com/containerd/containerd/protobuf" -+ "github.com/containerd/typeurl" - ptypes "github.com/gogo/protobuf/types" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" -@@ -148,18 +150,22 @@ func (r *remoteContainers) Delete(ctx context.Context, id string) error { - } - - func containerToProto(container *containers.Container) containersapi.Container { -+ extensions := make(map[string]ptypes.Any) -+ for k, v := range container.Extensions { -+ extensions[k] = *protobuf.FromAny(v) -+ } - return containersapi.Container{ - ID: container.ID, - Labels: container.Labels, - Image: container.Image, - Runtime: &containersapi.Container_Runtime{ - Name: container.Runtime.Name, -- Options: container.Runtime.Options, -+ Options: protobuf.FromAny(container.Runtime.Options), - }, -- Spec: container.Spec, -+ Spec: protobuf.FromAny(container.Spec), - Snapshotter: container.Snapshotter, - SnapshotKey: container.SnapshotKey, -- Extensions: container.Extensions, -+ Extensions: extensions, - } - } - -@@ -171,6 +177,11 @@ func containerFromProto(containerpb *containersapi.Container) containers.Contain - Options: containerpb.Runtime.Options, - } - } -+ extensions := make(map[string]typeurl.Any) -+ for k, v := range containerpb.Extensions { -+ v := v -+ extensions[k] = &v -+ } - return containers.Container{ - ID: containerpb.ID, - Labels: containerpb.Labels, -@@ -181,7 +192,7 @@ func containerFromProto(containerpb *containersapi.Container) containers.Contain - SnapshotKey: containerpb.SnapshotKey, - CreatedAt: containerpb.CreatedAt, - UpdatedAt: containerpb.UpdatedAt, -- Extensions: containerpb.Extensions, -+ Extensions: extensions, - } - } - -diff --git a/events.go b/events.go -index 3577b7c3a9fc..d6499ad3b3a8 100644 ---- a/events.go -+++ b/events.go -@@ -22,6 +22,7 @@ import ( - eventsapi "github.com/containerd/containerd/api/services/events/v1" - "github.com/containerd/containerd/errdefs" - "github.com/containerd/containerd/events" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/typeurl" - ) - -@@ -51,7 +52,7 @@ func (e *eventRemote) Publish(ctx context.Context, topic string, event events.Ev - } - req := &eventsapi.PublishRequest{ - Topic: topic, -- Event: any, -+ Event: protobuf.FromAny(any), - } - if _, err := e.client.Publish(ctx, req); err != nil { - return errdefs.FromGRPC(err) -@@ -65,7 +66,7 @@ func (e *eventRemote) Forward(ctx context.Context, envelope *events.Envelope) er - Timestamp: envelope.Timestamp, - Namespace: envelope.Namespace, - Topic: envelope.Topic, -- Event: envelope.Event, -+ Event: protobuf.FromAny(envelope.Event), - }, - } - if _, err := e.client.Forward(ctx, req); err != nil { -diff --git a/events/events.go b/events/events.go -index b7eb86f1eb65..8af0ec03a483 100644 ---- a/events/events.go -+++ b/events/events.go -@@ -21,7 +21,6 @@ import ( - "time" - - "github.com/containerd/typeurl" -- "github.com/gogo/protobuf/types" - ) - - // Envelope provides the packaging for an event. -@@ -29,7 +28,7 @@ type Envelope struct { - Timestamp time.Time - Namespace string - Topic string -- Event *types.Any -+ Event typeurl.Any - } - - // Field returns the value for the given fieldpath as a string, if defined. -diff --git a/events/exchange/exchange.go b/events/exchange/exchange.go -index a1f385d7abd3..7f085dc91774 100644 ---- a/events/exchange/exchange.go -+++ b/events/exchange/exchange.go -@@ -30,7 +30,6 @@ import ( - "github.com/containerd/containerd/namespaces" - "github.com/containerd/typeurl" - goevents "github.com/docker/go-events" -- "github.com/gogo/protobuf/types" - "github.com/sirupsen/logrus" - ) - -@@ -63,7 +62,7 @@ func (e *Exchange) Forward(ctx context.Context, envelope *events.Envelope) (err - logger := log.G(ctx).WithFields(logrus.Fields{ - "topic": envelope.Topic, - "ns": envelope.Namespace, -- "type": envelope.Event.TypeUrl, -+ "type": envelope.Event.GetTypeUrl(), - }) - - if err != nil { -@@ -82,7 +81,6 @@ func (e *Exchange) Forward(ctx context.Context, envelope *events.Envelope) (err - func (e *Exchange) Publish(ctx context.Context, topic string, event events.Event) (err error) { - var ( - namespace string -- encoded *types.Any - envelope events.Envelope - ) - -@@ -94,7 +92,7 @@ func (e *Exchange) Publish(ctx context.Context, topic string, event events.Event - return fmt.Errorf("envelope topic %q: %w", topic, err) - } - -- encoded, err = typeurl.MarshalAny(event) -+ encoded, err := typeurl.MarshalAny(event) - if err != nil { - return err - } -@@ -108,7 +106,7 @@ func (e *Exchange) Publish(ctx context.Context, topic string, event events.Event - logger := log.G(ctx).WithFields(logrus.Fields{ - "topic": envelope.Topic, - "ns": envelope.Namespace, -- "type": envelope.Event.TypeUrl, -+ "type": envelope.Event.GetTypeUrl(), - }) - - if err != nil { -diff --git a/go.mod b/go.mod -index 26b0ae08bcc9..fc5ebe10e783 100644 ---- a/go.mod -+++ b/go.mod -@@ -17,7 +17,7 @@ require ( - github.com/containerd/imgcrypt v1.1.4 - github.com/containerd/nri v0.1.0 - github.com/containerd/ttrpc v1.1.2 -- github.com/containerd/typeurl v1.0.2 -+ github.com/containerd/typeurl v1.0.3-0.20220324183432-6193a0e03259 - github.com/containerd/zfs v1.1.0 - github.com/containernetworking/cni v1.1.1 - github.com/containernetworking/plugins v1.1.1 -diff --git a/go.sum b/go.sum -index 7f42e83a3b68..0bf0cb6c63e1 100644 ---- a/go.sum -+++ b/go.sum -@@ -260,8 +260,9 @@ github.com/containerd/ttrpc v1.1.2/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Ev - github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= - github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk= - github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= --github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= - github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= -+github.com/containerd/typeurl v1.0.3-0.20220324183432-6193a0e03259 h1:bJv9qgjarrsdd4XIIczeRdYXON88Fgn3GdXVfnQjcSo= -+github.com/containerd/typeurl v1.0.3-0.20220324183432-6193a0e03259/go.mod h1:HDkcKOXRnX6yKnXv3P0QrogFi0DoiauK/LpQi961f0A= - github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw= - github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y= - github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= -diff --git a/integration/client/container_test.go b/integration/client/container_test.go -index 53cffb6874d1..cdf3c1fd0296 100644 ---- a/integration/client/container_test.go -+++ b/integration/client/container_test.go -@@ -1570,11 +1570,11 @@ func TestContainerExtensions(t *testing.T) { - if len(cExts) != 1 { - t.Errorf("expected 1 container extension") - } -- if cExts["hello"].TypeUrl != ext.TypeUrl { -- t.Errorf("got unexpected type url for extension: %s", cExts["hello"].TypeUrl) -+ if actual := cExts["hello"].GetTypeUrl(); actual != ext.TypeUrl { -+ t.Errorf("got unexpected type url for extension: %s", actual) - } -- if !bytes.Equal(cExts["hello"].Value, ext.Value) { -- t.Errorf("expected extension value %q, got: %q", ext.Value, cExts["hello"].Value) -+ if actual := cExts["hello"].GetValue(); !bytes.Equal(actual, ext.Value) { -+ t.Errorf("expected extension value %q, got: %q", ext.Value, actual) - } - } - -diff --git a/integration/client/go.mod b/integration/client/go.mod -index f5defa51018c..fcbbdee846ee 100644 ---- a/integration/client/go.mod -+++ b/integration/client/go.mod -@@ -11,7 +11,7 @@ require ( - github.com/containerd/continuity v0.3.0 - github.com/containerd/go-runc v1.0.0 - github.com/containerd/ttrpc v1.1.2 -- github.com/containerd/typeurl v1.0.2 -+ github.com/containerd/typeurl v1.0.3-0.20220324183432-6193a0e03259 - github.com/gogo/protobuf v1.3.2 - github.com/opencontainers/go-digest v1.0.0 - github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b -diff --git a/integration/client/go.sum b/integration/client/go.sum -index 5e37298cff45..8c3099b3f5f6 100644 ---- a/integration/client/go.sum -+++ b/integration/client/go.sum -@@ -148,8 +148,9 @@ github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Ev - github.com/containerd/ttrpc v1.1.2 h1:4jH6OQDQqjfVD2b5TJS5TxmGuLGmp5WW7KtW2TWOP7c= - github.com/containerd/ttrpc v1.1.2/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ= - github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= --github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= - github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= -+github.com/containerd/typeurl v1.0.3-0.20220324183432-6193a0e03259 h1:bJv9qgjarrsdd4XIIczeRdYXON88Fgn3GdXVfnQjcSo= -+github.com/containerd/typeurl v1.0.3-0.20220324183432-6193a0e03259/go.mod h1:HDkcKOXRnX6yKnXv3P0QrogFi0DoiauK/LpQi961f0A= - github.com/containerd/zfs v1.1.0/go.mod h1:oZF9wBnrnQjpWLaPKEinrx3TQ9a+W/RJO7Zb41d8YLE= - github.com/containernetworking/cni v1.0.1/go.mod h1:AKuhXbN5EzmD4yTNtfSsX3tPcmtrBI6QcRV0NiNt15Y= - github.com/containernetworking/cni v1.1.1/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= -diff --git a/metadata/boltutil/helpers.go b/metadata/boltutil/helpers.go -index 4201d7ba9ee1..2b2b0ad1e523 100644 ---- a/metadata/boltutil/helpers.go -+++ b/metadata/boltutil/helpers.go -@@ -20,6 +20,8 @@ import ( - "fmt" - "time" - -+ "github.com/containerd/containerd/protobuf" -+ "github.com/containerd/typeurl" - "github.com/gogo/protobuf/proto" - "github.com/gogo/protobuf/types" - bolt "go.etcd.io/bbolt" -@@ -151,7 +153,7 @@ func WriteTimestamps(bkt *bolt.Bucket, created, updated time.Time) error { - - // WriteExtensions will write a KV map to the given bucket, - // where `K` is a string key and `V` is a protobuf's Any type that represents a generic extension. --func WriteExtensions(bkt *bolt.Bucket, extensions map[string]types.Any) error { -+func WriteExtensions(bkt *bolt.Bucket, extensions map[string]typeurl.Any) error { - if len(extensions) == 0 { - return nil - } -@@ -162,8 +164,8 @@ func WriteExtensions(bkt *bolt.Bucket, extensions map[string]types.Any) error { - } - - for name, ext := range extensions { -- ext := ext -- p, err := proto.Marshal(&ext) -+ ext := protobuf.FromAny(ext) -+ p, err := proto.Marshal(ext) - if err != nil { - return err - } -@@ -177,9 +179,9 @@ func WriteExtensions(bkt *bolt.Bucket, extensions map[string]types.Any) error { - } - - // ReadExtensions will read back a map of extensions from the given bucket, previously written by WriteExtensions --func ReadExtensions(bkt *bolt.Bucket) (map[string]types.Any, error) { -+func ReadExtensions(bkt *bolt.Bucket) (map[string]typeurl.Any, error) { - var ( -- extensions = make(map[string]types.Any) -+ extensions = make(map[string]typeurl.Any) - ebkt = bkt.Bucket(bucketKeyExtensions) - ) - -@@ -193,7 +195,7 @@ func ReadExtensions(bkt *bolt.Bucket) (map[string]types.Any, error) { - return err - } - -- extensions[string(k)] = t -+ extensions[string(k)] = &t - return nil - }); err != nil { - return nil, err -@@ -203,12 +205,13 @@ func ReadExtensions(bkt *bolt.Bucket) (map[string]types.Any, error) { - } - - // WriteAny write a protobuf's Any type to the bucket --func WriteAny(bkt *bolt.Bucket, name []byte, any *types.Any) error { -- if any == nil { -+func WriteAny(bkt *bolt.Bucket, name []byte, any typeurl.Any) error { -+ pbany := protobuf.FromAny(any) -+ if pbany == nil { - return nil - } - -- data, err := proto.Marshal(any) -+ data, err := proto.Marshal(pbany) - if err != nil { - return err - } -diff --git a/metadata/containers.go b/metadata/containers.go -index 97002e5886e1..b27dc0f87208 100644 ---- a/metadata/containers.go -+++ b/metadata/containers.go -@@ -30,6 +30,7 @@ import ( - "github.com/containerd/containerd/labels" - "github.com/containerd/containerd/metadata/boltutil" - "github.com/containerd/containerd/namespaces" -+ "github.com/containerd/typeurl" - "github.com/gogo/protobuf/proto" - "github.com/gogo/protobuf/types" - bolt "go.etcd.io/bbolt" -@@ -211,7 +212,7 @@ func (s *containerStore) Update(ctx context.Context, container containers.Contai - - if strings.HasPrefix(path, "extensions.") { - if updated.Extensions == nil { -- updated.Extensions = map[string]types.Any{} -+ updated.Extensions = map[string]typeurl.Any{} - } - key := strings.TrimPrefix(path, "extensions.") - updated.Extensions[key] = container.Extensions[key] -diff --git a/metadata/containers_test.go b/metadata/containers_test.go -index b45d54cf5234..409bd8478763 100644 ---- a/metadata/containers_test.go -+++ b/metadata/containers_test.go -@@ -31,10 +31,13 @@ import ( - "github.com/containerd/containerd/filters" - "github.com/containerd/containerd/log/logtest" - "github.com/containerd/containerd/namespaces" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/typeurl" - "github.com/gogo/protobuf/types" -+ "github.com/google/go-cmp/cmp" - specs "github.com/opencontainers/runtime-spec/specs-go" - bolt "go.etcd.io/bbolt" -+ "gotest.tools/v3/assert" - ) - - func init() { -@@ -48,7 +51,7 @@ func TestContainersList(t *testing.T) { - store := NewContainerStore(NewDB(db, nil, nil)) - - spec := &specs.Spec{} -- encoded, err := typeurl.MarshalAny(spec) -+ encoded, err := protobuf.MarshalAnyToProto(spec) - if err != nil { - t.Fatal(err) - } -@@ -180,13 +183,13 @@ func TestContainersCreateUpdateDelete(t *testing.T) { - store := NewContainerStore(NewDB(db, nil, nil)) - - spec := &specs.Spec{} -- encoded, err := typeurl.MarshalAny(spec) -+ encoded, err := protobuf.MarshalAnyToProto(spec) - if err != nil { - t.Fatal(err) - } - - spec.Annotations = map[string]string{"updated": "true"} -- encodedUpdated, err := typeurl.MarshalAny(spec) -+ encodedUpdated, err := protobuf.MarshalAnyToProto(spec) - if err != nil { - t.Fatal(err) - } -@@ -468,8 +471,8 @@ func TestContainersCreateUpdateDelete(t *testing.T) { - Runtime: containers.RuntimeInfo{ - Name: "testruntime", - }, -- Extensions: map[string]types.Any{ -- "hello": { -+ Extensions: map[string]typeurl.Any{ -+ "hello": &types.Any{ - TypeUrl: "test.update.extensions", - Value: []byte("hello"), - }, -@@ -480,8 +483,8 @@ func TestContainersCreateUpdateDelete(t *testing.T) { - Runtime: containers.RuntimeInfo{ - Name: "testruntime", - }, -- Extensions: map[string]types.Any{ -- "hello": { -+ Extensions: map[string]typeurl.Any{ -+ "hello": &types.Any{ - TypeUrl: "test.update.extensions", - Value: []byte("world"), - }, -@@ -492,8 +495,8 @@ func TestContainersCreateUpdateDelete(t *testing.T) { - Runtime: containers.RuntimeInfo{ - Name: "testruntime", - }, -- Extensions: map[string]types.Any{ -- "hello": { -+ Extensions: map[string]typeurl.Any{ -+ "hello": &types.Any{ - TypeUrl: "test.update.extensions", - Value: []byte("world"), - }, -@@ -507,8 +510,8 @@ func TestContainersCreateUpdateDelete(t *testing.T) { - Runtime: containers.RuntimeInfo{ - Name: "testruntime", - }, -- Extensions: map[string]types.Any{ -- "hello": { -+ Extensions: map[string]typeurl.Any{ -+ "hello": &types.Any{ - TypeUrl: "test.update.extensions", - Value: []byte("hello"), - }, -@@ -519,8 +522,8 @@ func TestContainersCreateUpdateDelete(t *testing.T) { - Runtime: containers.RuntimeInfo{ - Name: "testruntime", - }, -- Extensions: map[string]types.Any{ -- "hello": { -+ Extensions: map[string]typeurl.Any{ -+ "hello": &types.Any{ - TypeUrl: "test.update.extensions", - Value: []byte("world"), - }, -@@ -532,8 +535,8 @@ func TestContainersCreateUpdateDelete(t *testing.T) { - Runtime: containers.RuntimeInfo{ - Name: "testruntime", - }, -- Extensions: map[string]types.Any{ -- "hello": { -+ Extensions: map[string]typeurl.Any{ -+ "hello": &types.Any{ - TypeUrl: "test.update.extensions", - Value: []byte("hello"), - }, -@@ -547,8 +550,8 @@ func TestContainersCreateUpdateDelete(t *testing.T) { - Runtime: containers.RuntimeInfo{ - Name: "testruntime", - }, -- Extensions: map[string]types.Any{ -- "hello": { -+ Extensions: map[string]typeurl.Any{ -+ "hello": &types.Any{ - TypeUrl: "test.update.extensions", - Value: []byte("hello"), - }, -@@ -558,8 +561,8 @@ func TestContainersCreateUpdateDelete(t *testing.T) { - Labels: map[string]string{ - "foo": "one", - }, -- Extensions: map[string]types.Any{ -- "hello": { -+ Extensions: map[string]typeurl.Any{ -+ "hello": &types.Any{ - TypeUrl: "test.update.extensions", - Value: []byte("world"), - }, -@@ -571,8 +574,8 @@ func TestContainersCreateUpdateDelete(t *testing.T) { - Runtime: containers.RuntimeInfo{ - Name: "testruntime", - }, -- Extensions: map[string]types.Any{ -- "hello": { -+ Extensions: map[string]typeurl.Any{ -+ "hello": &types.Any{ - TypeUrl: "test.update.extensions", - Value: []byte("world"), - }, -@@ -586,21 +589,21 @@ func TestContainersCreateUpdateDelete(t *testing.T) { - Runtime: containers.RuntimeInfo{ - Name: "testruntime", - }, -- Extensions: map[string]types.Any{ -+ Extensions: map[string]typeurl.Any{ - // leaves hello in place. -- "hello": { -+ "hello": &types.Any{ - TypeUrl: "test.update.extensions", - Value: []byte("hello"), - }, - }, - }, - input: containers.Container{ -- Extensions: map[string]types.Any{ -- "hello": { -+ Extensions: map[string]typeurl.Any{ -+ "hello": &types.Any{ - TypeUrl: "test.update.extensions", - Value: []byte("universe"), // this will be ignored - }, -- "bar": { -+ "bar": &types.Any{ - TypeUrl: "test.update.extensions", - Value: []byte("foo"), // this will be added - }, -@@ -612,12 +615,12 @@ func TestContainersCreateUpdateDelete(t *testing.T) { - Runtime: containers.RuntimeInfo{ - Name: "testruntime", - }, -- Extensions: map[string]types.Any{ -- "hello": { -+ Extensions: map[string]typeurl.Any{ -+ "hello": &types.Any{ - TypeUrl: "test.update.extensions", - Value: []byte("hello"), // remains as world - }, -- "bar": { -+ "bar": &types.Any{ - TypeUrl: "test.update.extensions", - Value: []byte("foo"), // this will be added - }, -@@ -708,10 +711,26 @@ func checkContainerTimestamps(t *testing.T, c *containers.Container, now time.Ti - } - } - --func checkContainersEqual(t *testing.T, a, b *containers.Container, format string, args ...interface{}) { -- if !reflect.DeepEqual(a, b) { -- t.Fatalf("containers not equal \n\t%v != \n\t%v: "+format, append([]interface{}{a, b}, args...)...) -+// isNil returns true if the given parameter is nil or typed nil. -+func isNil(x interface{}) bool { -+ if x == nil { -+ return true - } -+ v := reflect.ValueOf(x) -+ return v.Kind() == reflect.Ptr && v.IsNil() -+} -+ -+func checkContainersEqual(t *testing.T, a, b *containers.Container, format string, args ...interface{}) { -+ // Ignore the difference of nil and typed nil. -+ opt := cmp.FilterValues( -+ func(x, y interface{}) bool { -+ return isNil(x) && isNil(y) -+ }, -+ cmp.Comparer(func(_, _ interface{}) bool { -+ return true -+ }), -+ ) -+ assert.DeepEqual(t, a, b, opt) - } - - func testEnv(t *testing.T) (context.Context, *bolt.DB, func()) { -diff --git a/metrics/cgroups/metrics_test.go b/metrics/cgroups/metrics_test.go -index c71ea60a523a..c362ea3b9d65 100644 ---- a/metrics/cgroups/metrics_test.go -+++ b/metrics/cgroups/metrics_test.go -@@ -32,7 +32,7 @@ import ( - v2 "github.com/containerd/containerd/metrics/cgroups/v2" - v1types "github.com/containerd/containerd/metrics/types/v1" - v2types "github.com/containerd/containerd/metrics/types/v2" -- "github.com/containerd/typeurl" -+ "github.com/containerd/containerd/protobuf" - "github.com/prometheus/client_golang/prometheus" - - metrics "github.com/docker/go-metrics" -@@ -152,7 +152,7 @@ func (t *mockStatT) Namespace() string { - - func (t *mockStatT) Stats(context.Context) (*types.Any, error) { - if t.isV1 { -- return typeurl.MarshalAny(&v1types.Metrics{}) -+ return protobuf.MarshalAnyToProto(&v1types.Metrics{}) - } -- return typeurl.MarshalAny(&v2types.Metrics{}) -+ return protobuf.MarshalAnyToProto(&v2types.Metrics{}) - } -diff --git a/pkg/cri/server/events.go b/pkg/cri/server/events.go -index c8ffdadbfd21..fbecb29a049a 100644 ---- a/pkg/cri/server/events.go -+++ b/pkg/cri/server/events.go -@@ -32,7 +32,6 @@ import ( - sandboxstore "github.com/containerd/containerd/pkg/cri/store/sandbox" - ctrdutil "github.com/containerd/containerd/pkg/cri/util" - "github.com/containerd/typeurl" -- gogotypes "github.com/gogo/protobuf/types" - "github.com/sirupsen/logrus" - "golang.org/x/net/context" - "k8s.io/utils/clock" -@@ -207,7 +206,7 @@ func (em *eventMonitor) startContainerExitMonitor(ctx context.Context, id string - return stopCh - } - --func convertEvent(e *gogotypes.Any) (string, interface{}, error) { -+func convertEvent(e typeurl.Any) (string, interface{}, error) { - id := "" - evt, err := typeurl.UnmarshalAny(e) - if err != nil { -diff --git a/pkg/cri/server/helpers.go b/pkg/cri/server/helpers.go -index 4ee0ae8ffc12..8937739540a5 100644 ---- a/pkg/cri/server/helpers.go -+++ b/pkg/cri/server/helpers.go -@@ -371,10 +371,11 @@ func getRuntimeOptionsType(t string) interface{} { - - // getRuntimeOptions get runtime options from container metadata. - func getRuntimeOptions(c containers.Container) (interface{}, error) { -- if c.Runtime.Options == nil { -+ from := c.Runtime.Options -+ if from == nil || from.GetValue() == nil { - return nil, nil - } -- opts, err := typeurl.UnmarshalAny(c.Runtime.Options) -+ opts, err := typeurl.UnmarshalAny(from) - if err != nil { - return nil, err - } -diff --git a/pkg/cri/server/helpers_test.go b/pkg/cri/server/helpers_test.go -index f73e174dcc47..8fa9af8c1767 100644 ---- a/pkg/cri/server/helpers_test.go -+++ b/pkg/cri/server/helpers_test.go -@@ -23,6 +23,7 @@ import ( - "testing" - "time" - -+ "github.com/containerd/containerd/containers" - "github.com/containerd/containerd/errdefs" - "github.com/containerd/containerd/oci" - criconfig "github.com/containerd/containerd/pkg/cri/config" -@@ -32,6 +33,8 @@ import ( - "github.com/containerd/containerd/reference/docker" - "github.com/containerd/containerd/runtime/linux/runctypes" - runcoptions "github.com/containerd/containerd/runtime/v2/runc/options" -+ "github.com/containerd/typeurl" -+ "github.com/gogo/protobuf/types" - - imagedigest "github.com/opencontainers/go-digest" - runtimespec "github.com/opencontainers/runtime-spec/specs-go" -@@ -599,3 +602,13 @@ func TestValidateTargetContainer(t *testing.T) { - } - - } -+ -+func TestGetRuntimeOptions(t *testing.T) { -+ _, err := getRuntimeOptions(containers.Container{}) -+ require.NoError(t, err) -+ -+ var pbany *types.Any // This is nil. -+ var typeurlAny typeurl.Any = pbany // This is typed nil. -+ _, err = getRuntimeOptions(containers.Container{Runtime: containers.RuntimeInfo{Options: typeurlAny}}) -+ require.NoError(t, err) -+} -diff --git a/pkg/cri/server/restart.go b/pkg/cri/server/restart.go -index f5f3e5083e2c..f7db3f7b3064 100644 ---- a/pkg/cri/server/restart.go -+++ b/pkg/cri/server/restart.go -@@ -166,7 +166,7 @@ func (c *criService) loadContainer(ctx context.Context, cntr containerd.Containe - if !ok { - return container, fmt.Errorf("metadata extension %q not found", containerMetadataExtension) - } -- data, err := typeurl.UnmarshalAny(&ext) -+ data, err := typeurl.UnmarshalAny(ext) - if err != nil { - return container, fmt.Errorf("failed to unmarshal metadata extension %q: %w", ext, err) - } -@@ -335,7 +335,7 @@ func (c *criService) loadSandbox(ctx context.Context, cntr containerd.Container) - if !ok { - return sandbox, fmt.Errorf("metadata extension %q not found", sandboxMetadataExtension) - } -- data, err := typeurl.UnmarshalAny(&ext) -+ data, err := typeurl.UnmarshalAny(ext) - if err != nil { - return sandbox, fmt.Errorf("failed to unmarshal metadata extension %q: %w", ext, err) - } -diff --git a/protobuf/any.go b/protobuf/any.go -new file mode 100644 -index 000000000000..0f667176502e ---- /dev/null -+++ b/protobuf/any.go -@@ -0,0 +1,47 @@ -+/* -+ Copyright The containerd Authors. -+ -+ Licensed under the Apache License, Version 2.0 (the "License"); -+ you may not use this file except in compliance with the License. -+ You may obtain a copy of the License at -+ -+ http://www.apache.org/licenses/LICENSE-2.0 -+ -+ Unless required by applicable law or agreed to in writing, software -+ distributed under the License is distributed on an "AS IS" BASIS, -+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ See the License for the specific language governing permissions and -+ limitations under the License. -+*/ -+ -+package protobuf -+ -+import ( -+ "github.com/containerd/typeurl" -+ "github.com/gogo/protobuf/types" -+) -+ -+// FromAny converts typeurl.Any to github.com/gogo/protobuf/types.Any. -+func FromAny(from typeurl.Any) *types.Any { -+ if from == nil { -+ return nil -+ } -+ -+ if pbany, ok := from.(*types.Any); ok { -+ return pbany -+ } -+ -+ return &types.Any{ -+ TypeUrl: from.GetTypeUrl(), -+ Value: from.GetValue(), -+ } -+} -+ -+// FromAny converts an arbitrary interface to github.com/gogo/protobuf/types.Any. -+func MarshalAnyToProto(from interface{}) (*types.Any, error) { -+ any, err := typeurl.MarshalAny(from) -+ if err != nil { -+ return nil, err -+ } -+ return FromAny(any), nil -+} -diff --git a/protobuf/any_test.go b/protobuf/any_test.go -new file mode 100644 -index 000000000000..7a74ec16c28b ---- /dev/null -+++ b/protobuf/any_test.go -@@ -0,0 +1,26 @@ -+/* -+ Copyright The containerd Authors. -+ -+ Licensed under the Apache License, Version 2.0 (the "License"); -+ you may not use this file except in compliance with the License. -+ You may obtain a copy of the License at -+ -+ http://www.apache.org/licenses/LICENSE-2.0 -+ -+ Unless required by applicable law or agreed to in writing, software -+ distributed under the License is distributed on an "AS IS" BASIS, -+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ See the License for the specific language governing permissions and -+ limitations under the License. -+*/ -+ -+package protobuf -+ -+import "testing" -+ -+func TestFromAny(t *testing.T) { -+ actual := FromAny(nil) -+ if actual != nil { -+ t.Fatalf("expected nil, got %v", actual) -+ } -+} -diff --git a/runtime/runtime.go b/runtime/runtime.go -index 84aaa8ac67f5..1ca22ee2bccc 100644 ---- a/runtime/runtime.go -+++ b/runtime/runtime.go -@@ -21,7 +21,7 @@ import ( - "time" - - "github.com/containerd/containerd/mount" -- "github.com/gogo/protobuf/types" -+ "github.com/containerd/typeurl" - ) - - // IO holds process IO information -@@ -35,7 +35,7 @@ type IO struct { - // CreateOpts contains task creation data - type CreateOpts struct { - // Spec is the OCI runtime spec -- Spec *types.Any -+ Spec typeurl.Any - // Rootfs mounts to perform to gain access to the container's filesystem - Rootfs []mount.Mount - // IO for the container's main process -@@ -43,9 +43,9 @@ type CreateOpts struct { - // Checkpoint digest to restore container state - Checkpoint string - // RuntimeOptions for the runtime -- RuntimeOptions *types.Any -+ RuntimeOptions typeurl.Any - // TaskOptions received for the task -- TaskOptions *types.Any -+ TaskOptions typeurl.Any - // Runtime name to use (e.g. `io.containerd.NAME.VERSION`). - // As an alternative full abs path to binary may be specified instead. - Runtime string -diff --git a/runtime/v1/linux/runtime.go b/runtime/v1/linux/runtime.go -index b6d53820a859..ad7a0b67ec0b 100644 ---- a/runtime/v1/linux/runtime.go -+++ b/runtime/v1/linux/runtime.go -@@ -41,6 +41,7 @@ import ( - "github.com/containerd/containerd/pkg/process" - "github.com/containerd/containerd/platforms" - "github.com/containerd/containerd/plugin" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/containerd/runtime" - "github.com/containerd/containerd/runtime/linux/runctypes" - v1 "github.com/containerd/containerd/runtime/v1" -@@ -178,7 +179,7 @@ func (r *Runtime) Create(ctx context.Context, id string, opts runtime.CreateOpts - bundle, err := newBundle(id, - filepath.Join(r.state, namespace), - filepath.Join(r.root, namespace), -- opts.Spec.Value) -+ opts.Spec.GetValue()) - if err != nil { - return nil, err - } -@@ -191,7 +192,7 @@ func (r *Runtime) Create(ctx context.Context, id string, opts runtime.CreateOpts - shimopt := ShimLocal(r.config, r.events) - if !r.config.NoShim { - var cgroup string -- if opts.TaskOptions != nil { -+ if opts.TaskOptions != nil && opts.TaskOptions.GetValue() != nil { - v, err := typeurl.UnmarshalAny(opts.TaskOptions) - if err != nil { - return nil, err -@@ -244,7 +245,7 @@ func (r *Runtime) Create(ctx context.Context, id string, opts runtime.CreateOpts - Stderr: opts.IO.Stderr, - Terminal: opts.IO.Terminal, - Checkpoint: opts.Checkpoint, -- Options: opts.TaskOptions, -+ Options: protobuf.FromAny(opts.TaskOptions), - } - for _, m := range opts.Rootfs { - sopts.Rootfs = append(sopts.Rootfs, &types.Mount{ -@@ -537,7 +538,7 @@ func (r *Runtime) getRuncOptions(ctx context.Context, id string) (*runctypes.Run - return nil, err - } - -- if container.Runtime.Options != nil { -+ if container.Runtime.Options != nil && container.Runtime.Options.GetValue() != nil { - v, err := typeurl.UnmarshalAny(container.Runtime.Options) - if err != nil { - return nil, err -diff --git a/runtime/v1/linux/task.go b/runtime/v1/linux/task.go -index 3ac7839ff02b..44c89e5c27c2 100644 ---- a/runtime/v1/linux/task.go -+++ b/runtime/v1/linux/task.go -@@ -32,11 +32,11 @@ import ( - "github.com/containerd/containerd/events/exchange" - "github.com/containerd/containerd/identifiers" - "github.com/containerd/containerd/log" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/containerd/runtime" - "github.com/containerd/containerd/runtime/v1/shim/client" - "github.com/containerd/containerd/runtime/v1/shim/v1" - "github.com/containerd/ttrpc" -- "github.com/containerd/typeurl" - "github.com/gogo/protobuf/types" - ) - -@@ -340,7 +340,7 @@ func (t *Task) Stats(ctx context.Context) (*types.Any, error) { - if err != nil { - return nil, err - } -- return typeurl.MarshalAny(stats) -+ return protobuf.MarshalAnyToProto(stats) - } - - // Cgroup returns the underlying cgroup for a linux task -diff --git a/runtime/v1/shim/service.go b/runtime/v1/shim/service.go -index a08757d0a7b9..926134821d38 100644 ---- a/runtime/v1/shim/service.go -+++ b/runtime/v1/shim/service.go -@@ -37,6 +37,7 @@ import ( - "github.com/containerd/containerd/namespaces" - "github.com/containerd/containerd/pkg/process" - "github.com/containerd/containerd/pkg/stdio" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/containerd/runtime" - "github.com/containerd/containerd/runtime/linux/runctypes" - shimapi "github.com/containerd/containerd/runtime/v1/shim/v1" -@@ -412,7 +413,7 @@ func (s *Service) ListPids(ctx context.Context, r *shimapi.ListPidsRequest) (*sh - if err != nil { - return nil, fmt.Errorf("failed to marshal process %d info: %w", pid, err) - } -- pInfo.Info = a -+ pInfo.Info = protobuf.FromAny(a) - break - } - } -diff --git a/runtime/v2/manager.go b/runtime/v2/manager.go -index 1927cbb3f0c3..505d5d896995 100644 ---- a/runtime/v2/manager.go -+++ b/runtime/v2/manager.go -@@ -33,6 +33,7 @@ import ( - "github.com/containerd/containerd/pkg/timeout" - "github.com/containerd/containerd/platforms" - "github.com/containerd/containerd/plugin" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/containerd/runtime" - shimbinary "github.com/containerd/containerd/runtime/v2/shim" - "github.com/containerd/containerd/runtime/v2/task" -@@ -156,7 +157,7 @@ func (m *ShimManager) ID() string { - - // Start launches a new shim instance - func (m *ShimManager) Start(ctx context.Context, id string, opts runtime.CreateOpts) (_ ShimProcess, retErr error) { -- bundle, err := NewBundle(ctx, m.root, m.state, id, opts.Spec.Value) -+ bundle, err := NewBundle(ctx, m.root, m.state, id, opts.Spec.GetValue()) - if err != nil { - return nil, err - } -@@ -197,7 +198,7 @@ func (m *ShimManager) startShim(ctx context.Context, bundle *Bundle, id string, - } - - topts := opts.TaskOptions -- if topts == nil { -+ if topts == nil || topts.GetValue() == nil { - topts = opts.RuntimeOptions - } - -@@ -212,7 +213,7 @@ func (m *ShimManager) startShim(ctx context.Context, bundle *Bundle, id string, - ttrpcAddress: m.containerdTTRPCAddress, - schedCore: m.schedCore, - }) -- shim, err := b.Start(ctx, topts, func() { -+ shim, err := b.Start(ctx, protobuf.FromAny(topts), func() { - log.G(ctx).WithField("id", id).Info("shim disconnected") - - cleanupAfterDeadShim(context.Background(), id, ns, m.shims, m.events, b) -diff --git a/runtime/v2/runc/container.go b/runtime/v2/runc/container.go -index aac9dad7e916..c7e82b610695 100644 ---- a/runtime/v2/runc/container.go -+++ b/runtime/v2/runc/container.go -@@ -49,12 +49,14 @@ func NewContainer(ctx context.Context, platform stdio.Platform, r *task.CreateTa - } - - var opts options.Options -- if r.Options != nil && r.Options.GetTypeUrl() != "" { -+ if r.Options.GetValue() != nil { - v, err := typeurl.UnmarshalAny(r.Options) - if err != nil { - return nil, err - } -- opts = *v.(*options.Options) -+ if v != nil { -+ opts = *v.(*options.Options) -+ } - } - - var mounts []process.Mount -diff --git a/runtime/v2/runc/task/service.go b/runtime/v2/runc/task/service.go -index d6af20fb03f0..25ec6d1f9df5 100644 ---- a/runtime/v2/runc/task/service.go -+++ b/runtime/v2/runc/task/service.go -@@ -38,6 +38,7 @@ import ( - "github.com/containerd/containerd/pkg/shutdown" - "github.com/containerd/containerd/pkg/stdio" - "github.com/containerd/containerd/pkg/userns" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/containerd/runtime/v2/runc" - "github.com/containerd/containerd/runtime/v2/runc/options" - "github.com/containerd/containerd/runtime/v2/shim" -@@ -475,7 +476,7 @@ func (s *service) Pids(ctx context.Context, r *taskAPI.PidsRequest) (*taskAPI.Pi - d := &options.ProcessDetails{ - ExecID: p.ID(), - } -- a, err := typeurl.MarshalAny(d) -+ a, err := protobuf.MarshalAnyToProto(d) - if err != nil { - return nil, fmt.Errorf("failed to marshal process %d info: %w", pid, err) - } -@@ -603,7 +604,7 @@ func (s *service) Stats(ctx context.Context, r *taskAPI.StatsRequest) (*taskAPI. - return nil, err - } - return &taskAPI.StatsResponse{ -- Stats: data, -+ Stats: protobuf.FromAny(data), - }, nil - } - -diff --git a/runtime/v2/runc/v1/service.go b/runtime/v2/runc/v1/service.go -index 8c473430e218..8fdac3f8a2fd 100644 ---- a/runtime/v2/runc/v1/service.go -+++ b/runtime/v2/runc/v1/service.go -@@ -41,6 +41,7 @@ import ( - "github.com/containerd/containerd/pkg/process" - "github.com/containerd/containerd/pkg/schedcore" - "github.com/containerd/containerd/pkg/stdio" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/containerd/runtime/v2/runc" - "github.com/containerd/containerd/runtime/v2/runc/options" - "github.com/containerd/containerd/runtime/v2/shim" -@@ -507,7 +508,7 @@ func (s *service) Pids(ctx context.Context, r *taskAPI.PidsRequest) (*taskAPI.Pi - d := &options.ProcessDetails{ - ExecID: p.ID(), - } -- a, err := typeurl.MarshalAny(d) -+ a, err := protobuf.MarshalAnyToProto(d) - if err != nil { - return nil, fmt.Errorf("failed to marshal process %d info: %w", pid, err) - } -@@ -621,7 +622,7 @@ func (s *service) Stats(ctx context.Context, r *taskAPI.StatsRequest) (*taskAPI. - return nil, err - } - return &taskAPI.StatsResponse{ -- Stats: data, -+ Stats: protobuf.FromAny(data), - }, nil - } - -diff --git a/runtime/v2/shim.go b/runtime/v2/shim.go -index 456ffb4409bd..18cc9a0ed6cc 100644 ---- a/runtime/v2/shim.go -+++ b/runtime/v2/shim.go -@@ -34,6 +34,7 @@ import ( - "github.com/containerd/containerd/log" - "github.com/containerd/containerd/namespaces" - "github.com/containerd/containerd/pkg/timeout" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/containerd/runtime" - client "github.com/containerd/containerd/runtime/v2/shim" - "github.com/containerd/containerd/runtime/v2/task" -@@ -324,7 +325,7 @@ func (s *shimTask) delete(ctx context.Context, removeTask func(ctx context.Conte - - func (s *shimTask) Create(ctx context.Context, opts runtime.CreateOpts) (runtime.Task, error) { - topts := opts.TaskOptions -- if topts == nil { -+ if topts == nil || topts.GetValue() == nil { - topts = opts.RuntimeOptions - } - request := &task.CreateTaskRequest{ -@@ -335,7 +336,7 @@ func (s *shimTask) Create(ctx context.Context, opts runtime.CreateOpts) (runtime - Stderr: opts.IO.Stderr, - Terminal: opts.IO.Terminal, - Checkpoint: opts.Checkpoint, -- Options: topts, -+ Options: protobuf.FromAny(topts), - } - for _, m := range opts.Rootfs { - request.Rootfs = append(request.Rootfs, &types.Mount{ -diff --git a/runtime/v2/shim/publisher.go b/runtime/v2/shim/publisher.go -index ed1ebdd58b9c..20856f115bd6 100644 ---- a/runtime/v2/shim/publisher.go -+++ b/runtime/v2/shim/publisher.go -@@ -25,8 +25,8 @@ import ( - "github.com/containerd/containerd/events" - "github.com/containerd/containerd/namespaces" - "github.com/containerd/containerd/pkg/ttrpcutil" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/ttrpc" -- "github.com/containerd/typeurl" - "github.com/sirupsen/logrus" - ) - -@@ -110,7 +110,7 @@ func (l *RemoteEventsPublisher) Publish(ctx context.Context, topic string, event - if err != nil { - return err - } -- any, err := typeurl.MarshalAny(event) -+ any, err := protobuf.MarshalAnyToProto(event) - if err != nil { - return err - } -diff --git a/services/containers/helpers.go b/services/containers/helpers.go -index aece9ca41471..a75d5d62bbc0 100644 ---- a/services/containers/helpers.go -+++ b/services/containers/helpers.go -@@ -19,6 +19,9 @@ package containers - import ( - api "github.com/containerd/containerd/api/services/containers/v1" - "github.com/containerd/containerd/containers" -+ "github.com/containerd/containerd/protobuf" -+ "github.com/containerd/typeurl" -+ "github.com/gogo/protobuf/types" - ) - - func containersToProto(containers []containers.Container) []api.Container { -@@ -33,20 +36,24 @@ func containersToProto(containers []containers.Container) []api.Container { - } - - func containerToProto(container *containers.Container) api.Container { -+ extensions := make(map[string]types.Any) -+ for k, v := range container.Extensions { -+ extensions[k] = *protobuf.FromAny(v) -+ } - return api.Container{ - ID: container.ID, - Labels: container.Labels, - Image: container.Image, - Runtime: &api.Container_Runtime{ - Name: container.Runtime.Name, -- Options: container.Runtime.Options, -+ Options: protobuf.FromAny(container.Runtime.Options), - }, -- Spec: container.Spec, -+ Spec: protobuf.FromAny(container.Spec), - Snapshotter: container.Snapshotter, - SnapshotKey: container.SnapshotKey, - CreatedAt: container.CreatedAt, - UpdatedAt: container.UpdatedAt, -- Extensions: container.Extensions, -+ Extensions: extensions, - } - } - -@@ -58,6 +65,11 @@ func containerFromProto(containerpb *api.Container) containers.Container { - Options: containerpb.Runtime.Options, - } - } -+ extensions := make(map[string]typeurl.Any) -+ for k, v := range containerpb.Extensions { -+ v := v -+ extensions[k] = &v -+ } - return containers.Container{ - ID: containerpb.ID, - Labels: containerpb.Labels, -@@ -66,6 +78,6 @@ func containerFromProto(containerpb *api.Container) containers.Container { - Spec: containerpb.Spec, - Snapshotter: containerpb.Snapshotter, - SnapshotKey: containerpb.SnapshotKey, -- Extensions: containerpb.Extensions, -+ Extensions: extensions, - } - } -diff --git a/services/events/service.go b/services/events/service.go -index 3b5f811382b7..b1992a1ab716 100644 ---- a/services/events/service.go -+++ b/services/events/service.go -@@ -26,6 +26,7 @@ import ( - "github.com/containerd/containerd/events" - "github.com/containerd/containerd/events/exchange" - "github.com/containerd/containerd/plugin" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/ttrpc" - ptypes "github.com/gogo/protobuf/types" - "google.golang.org/grpc" -@@ -115,7 +116,7 @@ func toProto(env *events.Envelope) *api.Envelope { - Timestamp: env.Timestamp, - Namespace: env.Namespace, - Topic: env.Topic, -- Event: env.Event, -+ Event: protobuf.FromAny(env.Event), - } - } - -diff --git a/services/tasks/local.go b/services/tasks/local.go -index 96ed36ca4a34..34cb23d1672c 100644 ---- a/services/tasks/local.go -+++ b/services/tasks/local.go -@@ -41,6 +41,7 @@ import ( - "github.com/containerd/containerd/mount" - "github.com/containerd/containerd/pkg/timeout" - "github.com/containerd/containerd/plugin" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/containerd/runtime" - "github.com/containerd/containerd/runtime/linux/runctypes" - "github.com/containerd/containerd/runtime/v2/runc/options" -@@ -461,7 +462,7 @@ func (l *local) ListPids(ctx context.Context, r *api.ListPidsRequest, _ ...grpc. - Pid: p.Pid, - } - if p.Info != nil { -- a, err := typeurl.MarshalAny(p.Info) -+ a, err := protobuf.MarshalAnyToProto(p.Info) - if err != nil { - return nil, fmt.Errorf("failed to marshal process %d info: %w", p.Pid, err) - } -@@ -576,7 +577,7 @@ func (l *local) Checkpoint(ctx context.Context, r *api.CheckpointTaskRequest, _ - return nil, err - } - // write the config to the content store -- data, err := container.Spec.Marshal() -+ data, err := protobuf.FromAny(container.Spec).Marshal() - if err != nil { - return nil, err - } -diff --git a/task.go b/task.go -index ef8cd44942cf..bcb522c52e30 100644 ---- a/task.go -+++ b/task.go -@@ -38,6 +38,7 @@ import ( - "github.com/containerd/containerd/mount" - "github.com/containerd/containerd/oci" - "github.com/containerd/containerd/plugin" -+ "github.com/containerd/containerd/protobuf" - "github.com/containerd/containerd/rootfs" - "github.com/containerd/containerd/runtime/linux/runctypes" - "github.com/containerd/containerd/runtime/v2/runc/options" -@@ -365,7 +366,7 @@ func (t *task) Exec(ctx context.Context, id string, spec *specs.Process, ioCreat - i.Close() - } - }() -- any, err := typeurl.MarshalAny(spec) -+ any, err := protobuf.MarshalAnyToProto(spec) - if err != nil { - return nil, err - } -@@ -465,7 +466,7 @@ func (t *task) Checkpoint(ctx context.Context, opts ...CheckpointTaskOpts) (Imag - } - request.ParentCheckpoint = i.ParentCheckpoint - if i.Options != nil { -- any, err := typeurl.MarshalAny(i.Options) -+ any, err := protobuf.MarshalAnyToProto(i.Options) - if err != nil { - return nil, err - } -@@ -554,7 +555,7 @@ func (t *task) Update(ctx context.Context, opts ...UpdateTaskOpts) error { - if err != nil { - return err - } -- request.Resources = any -+ request.Resources = protobuf.FromAny(any) - } - if i.Annotations != nil { - request.Annotations = i.Annotations --- -2.41.0 - diff --git a/anda/docker/containerd/0001-opencontainers-image-spec-v1.1.0-rc3.patch b/anda/docker/containerd/0001-opencontainers-image-spec-v1.1.0-rc3.patch deleted file mode 100644 index dafb32e536..0000000000 --- a/anda/docker/containerd/0001-opencontainers-image-spec-v1.1.0-rc3.patch +++ /dev/null @@ -1,162 +0,0 @@ -From 4347fc8bc2ac225117a3280c0445e855ca7a69f3 Mon Sep 17 00:00:00 2001 -From: Akihiro Suda -Date: Tue, 9 May 2023 22:24:47 +0900 -Subject: [PATCH] go.mod: github.com/opencontainers/image-spec v1.1.0-rc3 - -Signed-off-by: Akihiro Suda ---- - go.mod | 2 +- - go.sum | 4 +-- - images/converter/default.go | 4 +-- - images/converter/uncompress/uncompress.go | 6 ++-- - images/diffid.go | 2 +- - images/mediatypes.go | 2 +- - integration/client/go.mod | 2 +- - integration/client/go.sum | 4 +-- - integration/client/import_test.go | 8 +++-- - oci/spec_opts.go | 1 + - pkg/cri/opts/spec_windows.go | 4 +-- - remotes/handlers_test.go | 1 + - .../image-spec/specs-go/v1/annotations.go | 3 -- - .../image-spec/specs-go/v1/artifact.go | 34 ------------------- - .../image-spec/specs-go/v1/config.go | 34 ++++++------------- - .../image-spec/specs-go/v1/manifest.go | 11 ++++++ - .../image-spec/specs-go/v1/mediatype.go | 19 +++++++++-- - .../image-spec/specs-go/version.go | 2 +- - vendor/modules.txt | 4 +-- - 19 files changed, 64 insertions(+), 83 deletions(-) - delete mode 100644 vendor/github.com/opencontainers/image-spec/specs-go/v1/artifact.go - -diff --git a/images/converter/default.go b/images/converter/default.go -index c67617e4ccfc..4a887242ce40 100644 ---- a/images/converter/default.go -+++ b/images/converter/default.go -@@ -431,11 +431,11 @@ func ConvertDockerMediaTypeToOCI(mt stri - case images.MediaTypeDockerSchema2LayerGzip: - return ocispec.MediaTypeImageLayerGzip - case images.MediaTypeDockerSchema2LayerForeignGzip: -- return ocispec.MediaTypeImageLayerNonDistributableGzip -+ return ocispec.MediaTypeImageLayerNonDistributableGzip //nolint:staticcheck // deprecated - case images.MediaTypeDockerSchema2Layer: - return ocispec.MediaTypeImageLayer - case images.MediaTypeDockerSchema2LayerForeign: -- return ocispec.MediaTypeImageLayerNonDistributable -+ return ocispec.MediaTypeImageLayerNonDistributable //nolint:staticcheck // deprecated - case images.MediaTypeDockerSchema2Config: - return ocispec.MediaTypeImageConfig - default: -diff --git a/images/converter/uncompress/uncompress.go b/images/converter/uncompress/uncompress.go -index 30ae02cf5ef9..ceb998fb8ff6 100644 ---- a/images/converter/uncompress/uncompress.go -+++ b/images/converter/uncompress/uncompress.go -@@ -99,7 +99,7 @@ func IsUncompressedType(mt string) bool - images.MediaTypeDockerSchema2Layer, - images.MediaTypeDockerSchema2LayerForeign, - ocispec.MediaTypeImageLayer, -- ocispec.MediaTypeImageLayerNonDistributable: -+ ocispec.MediaTypeImageLayerNonDistributable: //nolint:staticcheck // deprecated - return true - default: - return false -@@ -114,8 +114,8 @@ func convertMediaType(mt string) string - return images.MediaTypeDockerSchema2LayerForeign - case ocispec.MediaTypeImageLayerGzip, ocispec.MediaTypeImageLayerZstd: - return ocispec.MediaTypeImageLayer -- case ocispec.MediaTypeImageLayerNonDistributableGzip, ocispec.MediaTypeImageLayerNonDistributableZstd: -- return ocispec.MediaTypeImageLayerNonDistributable -+ case ocispec.MediaTypeImageLayerNonDistributableGzip, ocispec.MediaTypeImageLayerNonDistributableZstd: //nolint:staticcheck // deprecated -+ return ocispec.MediaTypeImageLayerNonDistributable //nolint:staticcheck // deprecated - default: - return mt - } -diff --git a/images/diffid.go b/images/diffid.go -index 1bd5256e2b37..c031f8e36377 100644 ---- a/images/diffid.go -+++ b/images/diffid.go -@@ -36,7 +36,7 @@ func GetDiffID(ctx context.Context, cs c - MediaTypeDockerSchema2Layer, - ocispec.MediaTypeImageLayer, - MediaTypeDockerSchema2LayerForeign, -- ocispec.MediaTypeImageLayerNonDistributable: -+ ocispec.MediaTypeImageLayerNonDistributable: //nolint:staticcheck // deprecated - return desc.Digest, nil - } - info, err := cs.Info(ctx, desc.Digest) -diff --git a/images/mediatypes.go b/images/mediatypes.go -index 067963babba1..d3b28d42dc61 100644 ---- a/images/mediatypes.go -+++ b/images/mediatypes.go -@@ -76,7 +76,7 @@ func DiffCompression(ctx context.Context - return "", nil - } - return "gzip", nil -- case ocispec.MediaTypeImageLayer, ocispec.MediaTypeImageLayerNonDistributable: -+ case ocispec.MediaTypeImageLayer, ocispec.MediaTypeImageLayerNonDistributable: //nolint:staticcheck // Non-distributable layers are deprecated - if len(ext) > 0 { - switch ext[len(ext)-1] { - case "gzip": -diff --git a/integration/client/import_test.go b/integration/client/import_test.go -index f2ba3db35f89..9f2cc46e624e 100644 ---- a/integration/client/import_test.go -+++ b/integration/client/import_test.go -@@ -370,9 +370,11 @@ func createContent(size int64, seed int6 - - func createConfig(osName, archName string) ([]byte, digest.Digest) { - image := ocispec.Image{ -- OS: osName, -- Architecture: archName, -- Author: "test", -+ Platform: ocispec.Platform{ -+ OS: osName, -+ Architecture: archName, -+ }, -+ Author: author, - } - b, _ := json.Marshal(image) - -diff --git a/oci/spec_opts.go b/oci/spec_opts.go -index f38828988577..8c4abd0bd876 100644 ---- a/oci/spec_opts.go -+++ b/oci/spec_opts.go -@@ -446,6 +446,7 @@ func WithImageConfigArgs(image Image, ar - return errors.New("no arguments specified") - } - -+ //nolint:staticcheck // ArgsEscaped is deprecated - if config.ArgsEscaped && (len(config.Entrypoint) > 0 || cmdFromImage) { - s.Process.Args = nil - s.Process.CommandLine = cmd[0] -diff --git a/pkg/cri/opts/spec_windows.go b/pkg/cri/opts/spec_windows.go -index 0964084ca107..0f7307bd0a6f 100644 ---- a/pkg/cri/opts/spec_windows.go -+++ b/pkg/cri/opts/spec_windows.go -@@ -260,7 +260,7 @@ func escapeAndCombineArgsWindows(args [] - // If image.ArgsEscaped field is set, this function sets the process command line and if not, it sets the - // process args field - func WithProcessCommandLineOrArgsForWindows(config *runtime.ContainerConfig, image *imagespec.ImageConfig) oci.SpecOpts { -- if image.ArgsEscaped { -+ if image.ArgsEscaped { //nolint:staticcheck // ArgsEscaped is deprecated - return func(ctx context.Context, client oci.Client, c *containers.Container, s *runtimespec.Spec) (err error) { - // firstArgFromImg is a flag that is returned to indicate that the first arg in the slice comes from either the - // image Entrypoint or Cmd. If the first arg instead comes from the container config (e.g. overriding the image values), -@@ -273,7 +273,7 @@ func WithProcessCommandLineOrArgsForWind - } - - var cmdLine string -- if image.ArgsEscaped && firstArgFromImg { -+ if image.ArgsEscaped && firstArgFromImg { //nolint:staticcheck // ArgsEscaped is deprecated - cmdLine = args[0] - if len(args) > 1 { - cmdLine += " " + escapeAndCombineArgsWindows(args[1:]) -diff --git a/remotes/handlers_test.go b/remotes/handlers_test.go -index c0446e1a52e6..9acf54680bf3 100644 ---- a/remotes/handlers_test.go -+++ b/remotes/handlers_test.go -@@ -78,6 +78,7 @@ func TestContextCustomKeyPrefix(t *testi - }) - } - -+//nolint:staticcheck // Non-distributable layers are deprecated - func TestSkipNonDistributableBlobs(t *testing.T) { - ctx := context.Background() - diff --git a/anda/docker/containerd/0002-Remove-windows-only-dep.patch b/anda/docker/containerd/0002-Remove-windows-only-dep.patch deleted file mode 100644 index 92a2856cfb..0000000000 --- a/anda/docker/containerd/0002-Remove-windows-only-dep.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/pkg/cri/server/helpers.go b/pkg/cri/server/helpers.go -index a8498116d..3682be668 100644 ---- a/pkg/cri/server/helpers.go -+++ b/pkg/cri/server/helpers.go -@@ -40,7 +40,7 @@ import ( - runtimespec "github.com/opencontainers/runtime-spec/specs-go" - "github.com/sirupsen/logrus" - -- runhcsoptions "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options" -+ // runhcsoptions "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options" - imagedigest "github.com/opencontainers/go-digest" - "github.com/pelletier/go-toml" - "golang.org/x/net/context" -@@ -366,8 +366,8 @@ func getRuntimeOptionsType(t string) interface{} { - return &runcoptions.Options{} - case plugin.RuntimeLinuxV1: - return &runctypes.RuncOptions{} -- case runtimeRunhcsV1: -- return &runhcsoptions.Options{} -+ // case runtimeRunhcsV1: -+ // return &runhcsoptions.Options{} - default: - return &runtimeoptions.Options{} - } diff --git a/anda/docker/containerd/anda.hcl b/anda/docker/containerd/anda.hcl deleted file mode 100644 index 595cb36095..0000000000 --- a/anda/docker/containerd/anda.hcl +++ /dev/null @@ -1,5 +0,0 @@ -project "pkg" { - rpm { - spec = "containerd.spec" - } -} \ No newline at end of file diff --git a/anda/docker/containerd/changelog b/anda/docker/containerd/changelog deleted file mode 100644 index eef50d4496..0000000000 --- a/anda/docker/containerd/changelog +++ /dev/null @@ -1,167 +0,0 @@ -* Mon Jun 06 2022 Maxwell G 1.6.6-1 -- Update to 1.6.6. -- Mitigates GHSA-5ffw-gxpp-mxpf / CVE-2022-31030. - -* Sun Jun 05 2022 Maxwell G 1.6.5-2 -- Bump release - -* Sat Jun 04 2022 Maxwell G 1.6.5-1 -- Update to 1.6.5. Fixes rhbz#2093608. - -* Wed May 11 2022 Maxwell G 1.6.4-1 -- Update to 1.6.4. Fixes rhbz#079050 and rhbz#2079779. - -* Sat Apr 16 2022 Fabio Alessandro Locati 1.6.2-2 -- Rebuilt for CVE-2022-27191 - -* Sun Apr 03 2022 Maxwell G 1.6.2-1 -- Update to 1.6.2 (rhbz#2068277). Mitigates CVE-2022-24769 / - GHSA-c9cp-9c75-9v8c. - -* Sat Mar 12 2022 Maxwell G 1.6.1-1 -- Update to 1.6.1 (rhbz#2060228). Mitigates CVE-2022-23648. - -* Thu Feb 17 2022 Maxwell G 1.6.0-1 -- Update to 1.6.0 (rhbz#2054935). Use unbundled deps. - -* Sun Feb 06 2022 Robert-André Mauchin 1.6.0~rc.2-2 -- Disable platform tests - -* Sat Feb 05 2022 Robert-André Mauchin 1.6.0~rc.2-1 -- Update to 1.6.0~rc.2 Close: rhbz#1731597 Close: rhbz#1798419 - -* Mon Jan 31 2022 Maxwell G - 1.5.9-1 -- Update to 1.5.9. Fixes FTBFS. Closes rhbz#2045277. -- Mitigates CVE-2021-43816. Closes rhbz#2044434. Closes rhbz#2044436. -- Temporarily build using vendored dependencies. - -* Wed Jan 19 2022 Fedora Release Engineering - 1.5.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Mon Nov 22 2021 Olivier Lemasle - 1.5.8-1 -- Update to upstream 1.5.8 (fixes rhbz#2013807) -- Mitigate CVE-2021-41190 (fixes GHSA-5j5w-g665-5m35, fixes rhbz#2024941) - -* Sun Oct 10 2021 Olivier Lemasle - 1.5.7-1 -- Update to upstream 1.5.7 (fixes rhbz#2009149) -- Fixes CVE-2021-41103 (fixes rhbz#2011014, rhbz#2011007) - -* Sun Aug 15 2021 Olivier Lemasle - 1.5.5-1 -- Update to upstream 1.5.5 (fixes rhbz#1983820) -- Fixes CVE-2021-32760 (rhbz#1983932) - -* Wed Jul 21 2021 Fedora Release Engineering - 1.5.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Wed Jul 14 11:28:54 CEST 2021 Olivier Lemasle - 1.5.3-1 -- Update to upstream 1.5.3 (fixes rhbz#1956638) - -* Tue May 04 2021 Olivier Lemasle - 1.5.0-1 -- Update to upstream 1.5.0 (#1956638) - -* Mon Apr 19 2021 Olivier Lemasle - 1.5.0~rc.1-1 -- Update to 1.5.0~rc.1 (#1948041) - -* Wed Mar 17 2021 Olivier Lemasle - 1.5.0~beta.4-1 -- Update to upstream 1.5.0-beta.4 - -* Sat Mar 06 2021 Olivier Lemasle - 1.5.0~beta.3-1 -- Update to upstream 1.5.0-beta.3 - -* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 1.5.0~beta.0-2 -- Rebuilt for updated systemd-rpm-macros - See https://pagure.io/fesco/issue/2583. - -* Thu Jan 28 2021 Olivier Lemasle 1.5.0~beta.0-1 -- Update to 1.5.0~beta.0 (#1918993) - -* Tue Jan 26 2021 Fedora Release Engineering - 1.4.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Tue Dec 01 2020 Olivier Lemasle - 1.4.3-1 -- Fix CVE-2020-15257 (#1903050) -- Update to latest upstream - 1.4.3 (#1901908) - -* Mon Nov 2 23:23:57 CET 2020 Olivier Lemasle - 1.4.1-2 -- Fix man pages - -* Wed Sep 30 2020 Robert-André Mauchin - 1.4.1-1 -- Update to 1.4.1 - -* Sat Aug 01 2020 Fedora Release Engineering - 1.3.3-3 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 27 2020 Fedora Release Engineering - 1.3.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Apr 01 2020 Olivier Lemasle - 1.3.3-1 -- Update to 1.3.3 - -* Sun Mar 22 2020 Olivier Lemasle - 1.2.13-2 -- Remove version requirement on golang-github-containerd-cri - -* Sun Mar 22 2020 Olivier Lemasle - 1.2.13-1 -- Exclude failing integration tests -- Update to containerd 1.2.13 - -* Tue Jan 28 2020 Fedora Release Engineering - 1.2.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Jul 24 2019 Fedora Release Engineering - 1.2.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Wed May 01 15:33:19 CEST 2019 Robert-André Mauchin - 1.2.6-1.20190501gitd68b593 -- Release 1.2.6, commit d68b593de4ab10bb8b4fd64560e10d43c7156db2 - -* Tue Feb 26 2019 Carl George - 1.2.4-1 -- Latest upstream - -* Thu Jan 31 2019 Fedora Release Engineering - 1.2.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Thu Jan 03 2019 Carl George - 1.2.1-1 -- Latest upstream -- Run test suite (except on el7 or %%arm) - -* Thu Oct 25 2018 Carl George - 1.2.0-1 -- Latest upstream - -* Mon Aug 13 2018 Carl George - 1.1.2-1 -- Latest upstream - -* Thu Jul 12 2018 Fedora Release Engineering - 1.1.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Thu Apr 26 2018 Carl George - 1.1.0-1 -- Latest upstream -- Build and include man pages - -* Wed Apr 04 2018 Carl George - 1.0.3-1 -- Latest upstream - -* Wed Feb 07 2018 Fedora Release Engineering - 1.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Mon Jan 22 2018 Carl George - 1.0.1-1 -- Latest upstream - -* Wed Dec 06 2017 Carl George - 1.0.0-1 -- Latest upstream - -* Fri Nov 10 2017 Carl George - 1.0.0-0.5.beta.3 -- Latest upstream - -* Thu Oct 19 2017 Carl George - 1.0.0-0.4.beta.2 -- Own /etc/containerd - -* Thu Oct 12 2017 Carl George - 1.0.0-0.3.beta.2 -- Latest upstream -- Require runc 1.0.0 https://github.com/containerd/containerd/issues/1508#issuecomment-335566293 - -* Mon Oct 09 2017 Carl George - 1.0.0-0.2.beta.1 -- Add provides for vendored dependencies -- Add ctr command - -* Wed Oct 04 2017 Carl George - 1.0.0-0.1.beta.1 -- Initial package diff --git a/anda/docker/containerd/containerd.spec b/anda/docker/containerd/containerd.spec deleted file mode 100644 index 9435e0a154..0000000000 --- a/anda/docker/containerd/containerd.spec +++ /dev/null @@ -1,127 +0,0 @@ -# This is a simplified version of the containerd.spec file from Fedora -# designed to build from upstream containerd, not Fedora - -# Created due to https://bugzilla.redhat.com/show_bug.cgi?id=2237396 - -%global debug_package %{nil} - -# https://github.com/containerd/containerd -%global goipath github.com/containerd/containerd -Version: 1.7.22 - -%gometa - -%global goname containerd -%global godevelname containerd-devel - -%global common_description %{expand: -Containerd is an industry-standard container runtime with an emphasis on -simplicity, robustness and portability. It is available as a daemon for Linux -and Windows, which can manage the complete container lifecycle of its host -system: image transfer and storage, container execution and supervision, -low-level storage and network attachments, etc.} - -%global golicenses LICENSE NOTICE -%global godocs docs ROADMAP.md SCOPE.md code-of-conduct.md\\\ - BUILDING.md README.md RELEASES.md - -Name: %{goname} -Release: 1%?dist -Summary: Open and reliable container runtime - -License: Apache-2.0 -URL: https://github.com/containerd/containerd -Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/containerd-%{version}.tar.gz -Source2: containerd.toml -# Carve out code requiring github.com/Microsoft/hcsshim -#Patch0: 0001-Revert-commit-for-Windows-metrics.patch -#Patch1: 0002-Remove-windows-only-dep.patch -# Backport for github.com/containerd/typeurl update -#Patch2: 0001-Use-typeurl.Any-instead-of-github.com-gogo-protobuf-.patch -# To use with latest go-runc -#Patch3: 0001-Add-reaper-StartLocked.patch -# To use with latest opencontainers/image-spec -#Patch4: 0001-opencontainers-image-spec-v1.1.0-rc3.patch - -BuildRequires: btrfs-progs-devel -BuildRequires: go-md2man -BuildRequires: systemd-rpm-macros -BuildRequires: git-core - -Requires: runc - -%description -%{common_description} - -%package devel -Summary: Development files for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} - - -%description devel -%{common_description} - -This package contains library source intended for -building other packages which use import path with -%{goname} prefix. - -%prep -%autosetup -p1 -n %{goname}-%{version} -# Used only for generation: -#rm -rf cmd/protoc-gen-gogoctrd -# Replace default bin directory -sed -i "s|/usr/local/bin/containerd|/usr/bin/containerd|" containerd.service - -%build -#pushd containerd -export GOFLAGS="-buildmode=pie -v -x" -%make_build -mkdir _man -go-md2man -in docs/man/containerd-config.8.md -out _man/containerd-config.8 -go-md2man -in docs/man/containerd-config.toml.5.md -out _man/containerd-config.toml.5 -go run cmd/gen-manpages/main.go containerd.8 _man -go run cmd/gen-manpages/main.go ctr.8 _man - -%install -export GOFLAGS="-buildmode=pie -v -x" -%make_install PREFIX=%{_prefix} DESTDIR=%{buildroot} - - - -install -D -p -m 0644 _man/containerd.8 %{buildroot}%{_mandir}/man8/containerd.8 -install -D -p -m 0644 _man/containerd-config.8 %{buildroot}%{_mandir}/man8/containerd-config.8 -install -D -p -m 0644 _man/ctr.8 %{buildroot}%{_mandir}/man8/ctr.8 -install -D -p -m 0644 _man/containerd-config.toml.5 %{buildroot}%{_mandir}/man5/containerd-config.toml.5 -install -D -p -m 0644 containerd.service %{buildroot}%{_unitdir}/containerd.service -install -D -p -m 0644 %{S:2} %{buildroot}%{_sysconfdir}/containerd/config.toml -mkdir -p %{buildroot}%{_sharedstatedir}/containerd/opt - -%post -%systemd_post containerd.service - -%preun -%systemd_preun containerd.service - -%postun -%systemd_postun_with_restart containerd.service - - - -%files -%license LICENSE NOTICE -%doc docs ROADMAP.md SCOPE.md code-of-conduct.md BUILDING.md -%doc README.md RELEASES.md -%{_bindir}/* -%{_mandir}/man8/containerd.8* -%{_mandir}/man8/containerd-config.8* -%{_mandir}/man8/ctr.8* -%{_mandir}/man5/containerd-config.toml.5* -%{_unitdir}/containerd.service -%dir %{_sysconfdir}/containerd -%config(noreplace) %{_sysconfdir}/containerd/config.toml -%dir %{_sharedstatedir}/containerd -%dir %{_sharedstatedir}/containerd/opt - - -%changelog -%autochangelog diff --git a/anda/docker/containerd/containerd.toml b/anda/docker/containerd/containerd.toml deleted file mode 100644 index 4a76ac46c2..0000000000 --- a/anda/docker/containerd/containerd.toml +++ /dev/null @@ -1,9 +0,0 @@ -version = 2 - -[plugins] - [plugins."io.containerd.grpc.v1.cri"] - [plugins."io.containerd.grpc.v1.cri".cni] - bin_dir = "/usr/libexec/cni/" - conf_dir = "/etc/cni/net.d" - [plugins."io.containerd.internal.v1.opt"] - path = "/var/lib/containerd/opt" diff --git a/anda/docker/containerd/update.rhai b/anda/docker/containerd/update.rhai deleted file mode 100644 index 2ff7c6b2db..0000000000 --- a/anda/docker/containerd/update.rhai +++ /dev/null @@ -1 +0,0 @@ -rpm.version(gh("containerd/containerd")); diff --git a/anda/docker/moby-buildx/anda.hcl b/anda/docker/moby-buildx/anda.hcl deleted file mode 100644 index c1ac693b64..0000000000 --- a/anda/docker/moby-buildx/anda.hcl +++ /dev/null @@ -1,5 +0,0 @@ -project pkg { - rpm { - spec = "moby-buildx.spec" - } -} diff --git a/anda/docker/moby-buildx/moby-buildx.spec b/anda/docker/moby-buildx/moby-buildx.spec deleted file mode 100644 index 807315a3c6..0000000000 --- a/anda/docker/moby-buildx/moby-buildx.spec +++ /dev/null @@ -1,46 +0,0 @@ -%define debug_package %nil - -Name: moby-buildx -Version: 0.16.2 -Release: 1%?dist -Summary: Docker CLI plugin for extended build capabilities with BuildKit - -License: Apache-2.0 -URL: https://github.com/docker/buildx -Source0: %{url}/archive/refs/tags/v%{version}.tar.gz - -BuildRequires: go-rpm-macros -BuildRequires: git-core -BuildRequires: gcc -BuildRequires: anda-srpm-macros - -Provides: docker-buildx = %{version}-%{release} -Provides: docker-buildx-cli = %{version}-%{release} - - -%description -buildx is a Docker CLI plugin for extended build capabilities with BuildKit. - - -%prep -%autosetup -n buildx-%{version} - - -%build -export CGO_ENABLED=1 -%go_build_online ./cmd/buildx - - -%install -install -D -m 0755 build/bin/cmd/buildx %{buildroot}%{_libexecdir}/docker/cli-plugins/docker-buildx - - -%files -%license LICENSE -%doc docs -%{_libexecdir}/docker/cli-plugins/docker-buildx - - -%changelog -* Wed Oct 05 2022 Cappy Ishihara - 0.9.1-1 -- Initial Release diff --git a/anda/docker/moby-buildx/update.rhai b/anda/docker/moby-buildx/update.rhai deleted file mode 100644 index 46556d11b8..0000000000 --- a/anda/docker/moby-buildx/update.rhai +++ /dev/null @@ -1 +0,0 @@ -rpm.version(gh("docker/buildx")); diff --git a/anda/docker/moby-compose/anda.hcl b/anda/docker/moby-compose/anda.hcl deleted file mode 100644 index f2e1747dc3..0000000000 --- a/anda/docker/moby-compose/anda.hcl +++ /dev/null @@ -1,5 +0,0 @@ -project pkg { - rpm { - spec = "moby-compose.spec" - } -} diff --git a/anda/docker/moby-compose/moby-compose.spec b/anda/docker/moby-compose/moby-compose.spec deleted file mode 100644 index 83d994e5da..0000000000 --- a/anda/docker/moby-compose/moby-compose.spec +++ /dev/null @@ -1,46 +0,0 @@ -%define debug_package %{nil} - -Name: moby-compose -Version: 2.29.2 -Release: 2%?dist -Summary: Define and run multi-container applications with Docker - -License: Apache-2.0 -URL: https://github.com/docker/compose/ -Source0: %{url}archive/refs/tags/v%{version}.tar.gz -# Source1: https://github.com/docker/buildx/releases/download/v0.9.1/buildx-v0.9.1.linux-amd64 - -BuildRequires: go-rpm-macros -BuildRequires: git-core -BuildRequires: docker -Provides: docker-compose = %{version}-%{release} -Provides: docker-compose-cli = %{version}-%{release} - -%description -A tool for running multi-container applications using the Compose file format. - - -%prep -%autosetup -n compose-%{version} - - -%build -%make_build - - -%install -mkdir -p %{buildroot}%{_libexecdir}/docker/cli-plugins -install -m 0755 bin/build/docker-compose %{buildroot}%{_libexecdir}/docker/cli-plugins/docker-compose - -%files -%license LICENSE -%doc docs - -%{_libexecdir}/docker/cli-plugins/docker-compose - -%changelog -* Tue Dec 06 2022 root - 2.14.0-1 -- new version - -* Tue Oct 04 2022 Cappy Ishihara -- Initial Release diff --git a/anda/docker/moby-compose/update.rhai b/anda/docker/moby-compose/update.rhai deleted file mode 100644 index b9641daa12..0000000000 --- a/anda/docker/moby-compose/update.rhai +++ /dev/null @@ -1 +0,0 @@ -rpm.version(gh("docker/compose")); diff --git a/anda/docker/moby-engine/.gitignore b/anda/docker/moby-engine/.gitignore deleted file mode 100644 index d310b090e3..0000000000 --- a/anda/docker/moby-engine/.gitignore +++ /dev/null @@ -1,59 +0,0 @@ -/2d0083d657f82c47044c8d3948ba434b622fe2fd.tar.gz -/425e105d5a03fabd737a126ad93d62a9eeede87f.tar.gz -/894b81a4b802e4eb2a91d1ce216b8817763c29fb.tar.gz -/e7933d41e7b206756115aa9df5e0599fc5169742.tar.gz -/fec3683b971d9c3ef73f284f176672c44b448662.tar.gz -/0dd43dd87fd530113bf44c9bba9ad8b20ce4637f.tar.gz -/7141c199a2edb2a90b778175f836f9dd2a22c95a.tar.gz -/264bffcb88c1b6b7471c04e3c6b3f301233a544b.tar.gz -/afacb8b7f0d8d4f9d2a8e8736e9c993e672b41f3.tar.gz -/bf2bd42abc0a3734f12b5ec724e571434e42c669.tar.gz -/2e24aed516bd5c836e11378bb457dd612aa868ed.tar.gz -/42e35e61f352e527082521280d5ea3761f0dee50.tar.gz -/4484c46d9d1a2d10b8fc662923ad586daeedb04f.tar.gz -/026aabaa659832804b01754aaadd2c0f420c68b6.tar.gz -/de40ad007797e0dcd8b7126f27bb87401d224240.tar.gz -/moby-v20.10.5.tar.gz -/cli-v20.10.5.tar.gz -/moby-v20.10.6.tar.gz -/cli-v20.10.6.tar.gz -/moby-v20.10.7.tar.gz -/cli-v20.10.7.tar.gz -/cli-v20.10.8.tar.gz -/moby-v20.10.8.tar.gz -/cli-v20.10.9.tar.gz -/moby-v20.10.9.tar.gz -/cli-v20.10.10.tar.gz -moby-v20.10.10.tar.gz -/cli-v20.10.11.tar.gz -/moby-v20.10.11.tar.gz -/cli-v20.10.12.tar.gz -/moby-v20.10.12.tar.gz -/cli-20.10.12.tar.gz -/moby-20.10.12.tar.gz -/tini-de40ad0.tar.gz -/cli-20.10.14.tar.gz -/moby-20.10.14.tar.gz -/cli-20.10.15.tar.gz -/moby-20.10.15.tar.gz -/cli-20.10.16.tar.gz -/moby-20.10.16.tar.gz -/cli-20.10.17.tar.gz -/moby-20.10.17.tar.gz -/cli-20.10.18.tar.gz -/moby-20.10.18.tar.gz -/cli-20.10.19.tar.gz -/moby-20.10.19.tar.gz -/cli-20.10.20.tar.gz -/moby-20.10.20.tar.gz -/cli-20.10.21.tar.gz -/moby-20.10.21.tar.gz -/cli-20.10.22.tar.gz -/moby-20.10.22.tar.gz -/moby-20.10.23.tar.gz -/cli-20.10.23.tar.gz -/moby-23.0.4.tar.gz -/cli-23.0.4.tar.gz -/tini-0b44d36.tar.gz -/cli-24.0.5.tar.gz -/moby-24.0.5.tar.gz diff --git a/anda/docker/moby-engine/README.md b/anda/docker/moby-engine/README.md deleted file mode 100644 index 57607ed02e..0000000000 --- a/anda/docker/moby-engine/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# moby-engine - -The moby-engine package \ No newline at end of file diff --git a/anda/docker/moby-engine/anda.hcl b/anda/docker/moby-engine/anda.hcl deleted file mode 100644 index be47166b46..0000000000 --- a/anda/docker/moby-engine/anda.hcl +++ /dev/null @@ -1,5 +0,0 @@ -project "pkg" { - rpm { - spec = "moby-engine.spec" - } -} \ No newline at end of file diff --git a/anda/docker/moby-engine/docker.service b/anda/docker/moby-engine/docker.service deleted file mode 100644 index 41cb0e397e..0000000000 --- a/anda/docker/moby-engine/docker.service +++ /dev/null @@ -1,38 +0,0 @@ -[Unit] -Description=Docker Application Container Engine -Documentation=https://docs.docker.com -After=docker.socket network-online.target firewalld.service -Requires=docker.socket -Wants=network-online.target - -[Service] -Type=notify -EnvironmentFile=-/etc/sysconfig/docker -# the default is not to use systemd for cgroups because the delegate issues still -# exists and systemd currently does not support the cgroup feature set required -# for containers run by docker -ExecStart=/usr/bin/dockerd \ - --host=fd:// \ - --exec-opt native.cgroupdriver=systemd \ - $OPTIONS -ExecReload=/bin/kill -s HUP $MAINPID -# Having non-zero Limit*s causes performance problems due to accounting overhead -# in the kernel. We recommend using cgroups to do container-local accounting. -LimitNOFILE=infinity -LimitNPROC=infinity -LimitCORE=infinity -# Uncomment TasksMax if your systemd version supports it. -# Only systemd 226 and above support this version. -#TasksMax=infinity -TimeoutStartSec=0 -# set delegate yes so that systemd does not reset the cgroups of docker containers -#Delegate=yes -# kill only the docker process, not all processes in the cgroup -KillMode=process -# restart the docker process if it exits prematurely -Restart=on-failure -StartLimitBurst=3 -StartLimitInterval=60s - -[Install] -WantedBy=multi-user.target diff --git a/anda/docker/moby-engine/docker.sysconfig b/anda/docker/moby-engine/docker.sysconfig deleted file mode 100644 index 6ba9fd7e8c..0000000000 --- a/anda/docker/moby-engine/docker.sysconfig +++ /dev/null @@ -1,10 +0,0 @@ -# /etc/sysconfig/docker - -# Modify these options if you want to change the way the docker daemon runs -OPTIONS="--selinux-enabled \ - --log-driver=journald \ - --live-restore \ - --default-ulimit nofile=1024:1024 \ - --init-path /usr/libexec/docker/docker-init \ - --userland-proxy-path /usr/libexec/docker/docker-proxy \ -" diff --git a/anda/docker/moby-engine/generate-docs.sh b/anda/docker/moby-engine/generate-docs.sh deleted file mode 100644 index 09fb5cb7bd..0000000000 --- a/anda/docker/moby-engine/generate-docs.sh +++ /dev/null @@ -1,12 +0,0 @@ -cd man -for FILE in *.md; do - base="$(basename "$FILE")" - name="${base%.md}" - num="${name##*.}" - if [ -z "$num" ] || [ "$name" = "$num" ]; then - # skip files that aren't of the format xxxx.N.md (like README.md) - continue - fi - mkdir -p "./man${num}" - (set -x ;go-md2man -in "$FILE" -out "./man${num}/${name}") -done diff --git a/anda/docker/moby-engine/moby-engine-systemd-sysusers.conf b/anda/docker/moby-engine/moby-engine-systemd-sysusers.conf deleted file mode 100644 index fafc51244a..0000000000 --- a/anda/docker/moby-engine/moby-engine-systemd-sysusers.conf +++ /dev/null @@ -1,2 +0,0 @@ -#Type Name ID -g docker - diff --git a/anda/docker/moby-engine/moby-engine.spec b/anda/docker/moby-engine/moby-engine.spec deleted file mode 100644 index 3dfaa45ece..0000000000 --- a/anda/docker/moby-engine/moby-engine.spec +++ /dev/null @@ -1,559 +0,0 @@ -# This specfile is licensed under: -# SPDX-License-Identifier: MIT -# SPDX-FileCopyrightText: Fedora Project Authors -# SPDX-FileCopyrightText: 2022 Maxwell G -# See %%{name}.spec.license for the full license text. - -# disable debuginfo for now -%global debug_package %{nil} - -# moby -%global goipath_moby github.com/docker/docker -%global git_moby https://%%{goipath_moby} -#%%global commit_moby 9fdeb9c3de2f2d9f5799be373f27b2f9df44609d -#%%global shortcommit_moby %%(c=%%{commit_moby}; echo ${c:0:7}) - -# cli -%global goipath_cli github.com/docker/cli -%global git_cli https://%%{goipath_cli} -#%%global commit_cli baeda1f82a10204ec5708d5fbba130ad76cfee49 -#%%global shortcommit_cli %%(c=%%{commit_cli}; echo ${c:0:7}) - -# tini -%global git_tini https://github.com/krallin/tini -%global commit_tini 0b44d3665869e46ccbac7414241b8256d6234dc4 -%global shortcommit_tini %(c=%{commit_tini}; echo ${c:0:7}) - -%global anda_go_build go build -buildmode=pie -v -x - -Name: moby-engine -Version: 24.0.5 -Release: 1%{?dist} -Summary: The open-source application container engine -License: Apache-2.0 -Source0: %{git_moby}/archive/v%{version}/moby-%{version}.tar.gz -Source1: %{git_cli}/archive/v%{version}/cli-%{version}.tar.gz -Source2: %{git_tini}/archive/%{commit_tini}/tini-%{shortcommit_tini}.tar.gz -Source3: docker.service -Source4: docker.sysconfig -Source5: moby-engine-systemd-sysusers.conf -Source6: generate-docs.sh - -# Seperate file containing virtual provides for bundled deps that's %%include'd in the specfile. -#Source100: provides.spec.inc -# Specfile license -Source200: moby-engine.spec.license - -URL: https://www.docker.com - -ExclusiveArch: %{golang_arches} - -BuildRequires: pkgconfig(libbtrfsutil) -BuildRequires: pkgconfig(devmapper) -BuildRequires: golang -BuildRequires: go-rpm-macros -BuildRequires: go-md2man -BuildRequires: pkgconfig(libseccomp) >= 2.3.0 -BuildRequires: make -BuildRequires: pkgconfig(audit) -BuildRequires: pkgconfig(systemd) -BuildRequires: systemd-rpm-macros -BuildRequires: firewalld-filesystem - -# Build dependencies for tini -BuildRequires: cmake -BuildRequires: glibc-static - -# required packages on install -Requires: container-selinux -Requires: containerd -Requires: iptables -Requires: pigz -Requires: runc -Requires: systemd -Requires: tar -Requires: xz - -# Resolves: rhbz#1165615 -Requires: device-mapper-libs >= 1.02.90-1 - -# Replace the old Docker packages -Provides: docker = %{version}-%{release} -Provides: docker-latest = %{version}-%{release} - -# conflicting packages -Conflicts: docker-ce -Conflicts: docker-ce-cli -Conflicts: docker-common -Conflicts: docker-ee -Conflicts: docker-engine-cs -Conflicts: docker-io -Conflicts: podman-docker - -%description -Docker is an open source project to build, ship and run any application as a -lightweight container. - -Docker containers are both hardware-agnostic and platform-agnostic. This means -they can run anywhere, from your laptop to the largest EC2 compute instance and -everything in between - and they don't require you to use a particular -language, framework or packaging system. That makes them great building blocks -for deploying and scaling web apps, databases, and backend services without -depending on a particular stack or provider. - -%package fish-completion -Summary: Fish completion files for %{name} -BuildArch: noarch -Requires: %{name} = %{version}-%{release} -Requires: fish -Provides: docker-fish-completion = %{version}-%{release} - -%description fish-completion -This package installs %{summary}. - -%package zsh-completion -Summary: Zsh completion files for %{name} -BuildArch: noarch -Requires: %{name} = %{version}-%{release} -Requires: zsh -Provides: docker-zsh-completion = %{version}-%{release} - -%description zsh-completion -This package installs %{summary}. - -%package nano -Summary: GNU nano syntax highlighting files for Moby -BuildArch: noarch -Requires: %{name} = %{version}-%{release} -Requires: nano - -%description nano -This package installs %{summary}. - -%prep -%setup -q -a 1 -a 2 -n moby-%{version} -ln -s vendor.mod go.mod -#export GOPATH="$PWD" -#go get -x -#go mod vendor -# correct rpmlint errors for bash completion -sed -i '/env bash/d' cli-%{version}/contrib/completion/bash/docker -cp %{SOURCE6} cli-%{version}/scripts/docs/generate-man.sh -%build -mkdir -p _build/bin -export CGO_ENABLED=1 - -export DISABLE_WARN_OUTSIDE_CONTAINER=1 - -#go mod download - - -# build docker-proxy / libnetwork -( - - # Link source and vendored deps into local GOPATH. - #ln -fns ../../.. src/%{goipath_moby} - #export GOPATH="${PWD}" - %anda_go_build -o _build/bin/docker-proxy github.com/docker/docker/cmd/docker-proxy -) - -# build tini (installed as docker-init) -( - cd tini-%{commit_tini} - %cmake - make tini-static -C "%{__cmake_builddir}" -) - -%global buildtime %(date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +"%Y-%m-%dT%H:%M:%SZ") -# build engine -( - mkdir -p src/github.com/docker - # Link source and vendored deps into local GOPATH. - ln -fns ../../.. src/%{goipath_moby} - # Build using source and vendored deps in local GOPATH. - export GOPATH="${PWD}" - export GO111MODULE=off - export LDFLAGS="-w" - export LDFLAGS+=" -X github.com/docker/docker/dockerversion.Version=%{version}" - export LDFLAGS+=" -X github.com/docker/docker/dockerversion.GitCommit=%{shortcommit_moby}" - export LDFLAGS+=" -X github.com/docker/docker/dockerversion.IAmStatic=false" - export LDFLAGS+=" -X 'github.com/docker/docker/dockerversion.BuildTime=%{buildtime}'" - export DOCKER_BUILDTAGS="seccomp selinux journald" - export BUILDTAGS="${DOCKER_BUILDTAGS}" - export GOBUILDTAGS="${BUILDTAGS}" - %anda_go_build -o _build/bin/dockerd %{goipath_moby}/cmd/dockerd - # VERSION=%%{version} DOCKER_GITCOMMIT=%%{shortcommit_moby} bash sh dynbinary - # mv bundles/dynbinary-daemon/dockerd-%%{version} _build/bin/dockerd -) - -# build cli -( - cd cli-%{version} - mkdir -p src/github.com/docker - # Link source and vendored deps into local GOPATH. - ln -fns ../../.. src/%{goipath_cli} - # export DISABLE_WARN_OUTSIDE_CONTAINER=1 - # Build using source and vendored deps in local GOPATH. - export GOPATH="${PWD}" - export GO111MODULE=off - export LDFLAGS="\ - -w \ - -X \"github.com/docker/cli/cli/version.GitCommit=%{shortcommit_cli}\" \ - -X \"github.com/docker/cli/cli/version.BuildTime=%{buildtime}\" \ - -X \"github.com/docker/cli/cli/version.Version=%{version}\" \ - " - export BUILDTAGS="pkcs11" - export GOBUILDTAGS="${BUILDTAGS}" - %anda_go_build -o ../_build/bin/docker %{goipath_cli}/cmd/docker - # make VERSION=%%{version} GITCOMMIT=%%{shortcommit_cli} dynbinary - - scripts/docs/generate-man.sh -) - -%install -# install binary -install -Dpm 755 _build/bin/docker _build/bin/dockerd -t %{buildroot}%{_bindir}/ - -# install proxy -install -Dpm 755 _build/bin/docker-proxy -t %{buildroot}%{_libexecdir}/docker/ - -# install tini -install -Dpm 755 tini-%{commit_tini}/%{__cmake_builddir}/tini-static %{buildroot}%{_libexecdir}/docker/docker-init - -# install udev rules -install -Dpm 644 contrib/udev/80-docker.rules -t %{buildroot}%{_usr}/lib/udev/rules.d/ - -# add init scripts -install -Dpm 644 %{SOURCE3} contrib/init/systemd/docker.socket -t %{buildroot}%{_unitdir}/ - -# for additional args -install -Dpm 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/docker - -# Install sysusers configuration -install -Dpm 0644 %{SOURCE5} %{buildroot}%{_sysusersdir}/moby-engine.conf - -# add bash, zsh, and fish completions -install -Dpm 644 cli-%{version}/contrib/completion/bash/docker -t %{buildroot}%{_datadir}/bash-completion/completions/ -install -Dpm 644 cli-%{version}/contrib/completion/zsh/_docker -t %{buildroot}%{_datadir}/zsh/site-functions/ -install -Dpm 644 cli-%{version}/contrib/completion/fish/docker.fish -t %{buildroot}%{_datadir}/fish/vendor_completions.d/ - -# install manpages -install -Dpm 644 cli-%{version}/man/man1/*.1 -t %{buildroot}%{_mandir}/man1/ -install -Dpm 644 cli-%{version}/man/man5/*.5 -t %{buildroot}%{_mandir}/man5/ -install -Dpm 644 cli-%{version}/man/man8/*.8 -t %{buildroot}%{_mandir}/man8/ - -# add nano files -install -Dpm 644 contrib/syntax/nano/Dockerfile.nanorc -t %{buildroot}%{_datadir}/nano/ - -for cli_file in LICENSE MAINTAINERS NOTICE README.md; do - cp "cli-%{version}/$cli_file" "cli-$cli_file" -done - -%pre -%sysusers_create_compat %{SOURCE5} - -%post -%systemd_post docker.service docker.socket -%firewalld_reload - -%preun -%systemd_preun docker.service docker.socket - -%postun -%systemd_postun_with_restart docker.service - -%files -%license LICENSE cli-LICENSE -%doc AUTHORS CONTRIBUTING.md MAINTAINERS NOTICE README.md -%doc cli-MAINTAINERS cli-NOTICE cli-README.md -%config(noreplace) %{_sysconfdir}/sysconfig/docker -%{_bindir}/docker -%{_bindir}/dockerd -%dir %{_libexecdir}/docker/ -%{_libexecdir}/docker/docker-proxy -%{_libexecdir}/docker/docker-init -%{_usr}/lib/udev/rules.d/80-docker.rules -%{_unitdir}/docker.service -%{_unitdir}/docker.socket -%{_sysusersdir}/moby-engine.conf -%{_datadir}/bash-completion/completions/docker -%{_mandir}/man1/docker*.1* -%{_mandir}/man5/{Dockerfile,docker-config-json}.5* -%{_mandir}/man8/dockerd.8* - -%files zsh-completion -%{_datadir}/zsh/site-functions/_docker - -%files fish-completion -%{_datadir}/fish/vendor_completions.d/docker.fish - -%files nano -%dir %{_datadir}/nano -%{_datadir}/nano/Dockerfile.nanorc - -%changelog -* Wed Aug 23 2023 LuK1337 - 24.0.5-1 -- Update moby-engine to 24.0.5 - -* Thu Jul 20 2023 Fedora Release Engineering -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Sun Jan 29 2023 John Ghatas -- Update moby-engine to 23.0.4 - -* Sun Jan 29 2023 Sérgio Basto -- Update moby-engine to 20.10.23 - -* Thu Jan 19 2023 Fedora Release Engineering -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Sun Jan 01 2023 Sérgio Basto -- Update moby-engine to 20.10.22 - -* Wed Dec 14 2022 Dan Čermák - 20.10.21-1 -- Update to 20.10.21 -- Fix build, use libnetwork from golang-github-docker-0:22.06.0~beta - -* Thu Oct 20 2022 Jan Kuparinen - 20.10.20-1 -- Update to 20.10.20. -- Mitigates CVE-2022-39253 - -* Tue Oct 18 2022 Jan Kuparinen - 20.10.19-1 -- Update to 20.10.19. - -* Sat Sep 10 2022 Maxwell G - 20.10.18-1 -- Update to 20.10.18. -- Mitigates CVE-2022-36109 / GHSA-rc4r-wh2q-q6c4 - -* Tue Aug 30 2022 Luca BRUNO - 20.10.17-8 -- Move 'docker' group creation logic to a sysusers.d fragment - Resolves: rhbz#1745936 - -* Fri Aug 05 2022 Maxwell G - 20.10.17-7 -- Migrate to SPDX license identifiers -- Generate debuginfo -- Specfile improvements - -* Thu Jul 21 2022 Fedora Release Engineering -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Tue Jul 19 2022 Maxwell G - 20.10.17-5 -- Rebuild for CVE-2022-{1705,32148,30631,30633,28131,30635,30632,30630,1962} in - golang - -* Mon Jul 04 2022 Maxwell G - 20.10.17-4 -- Only build on %%golang_arches (i.e. where golang is available). - -* Sun Jun 19 2022 Maxwell G - 20.10.17-3 -- Rebuilt for CVE-2022-1996, CVE-2022-24675, CVE-2022-28327, CVE-2022-27191, - CVE-2022-29526, CVE-2022-30629. - -* Sat Jun 11 2022 Maxwell G - 20.10.17-2 -- Rebuild for new golang-github-docker-libnetwork - -* Fri Jun 10 2022 Maxwell G - 20.10.17-1 -- Update to 20.10.17. Fixes rhbz#2095714. - -* Fri May 13 2022 Maxwell G - 20.10.16-1 -- Update to 20.10.16. - -* Sat May 07 2022 Maxwell G - 20.10.15-1 -- Update to 20.10.15 (rhbz#2082501). -- Fix BUILDTAGS (rhbz#2082924). -- Make non-binary subpackages noarch. - -* Mon Apr 11 2022 Maxwell G - 20.10.14-1 -- Update to 20.10.14. Fixes rhbz#2063052. -- Mitigate CVE-2022-24769. - -* Mon Jan 31 2022 Maxwell G - 20.10.12-3 -- Fixes FTBFS. Closes rhbz#2046748. -- Use %%anda_go_build instead of Makefile to build binaries -- Add explanatory comments. -- Normalize install commands -- Make compliant with SourceURL Guidelines -- Remove no longer necessary `ExcludeArch: ppc64`. - -* Thu Jan 20 2022 Fedora Release Engineering - 20.10.12-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Tue Jan 11 2022 Maxwell G - 20.10.12-1 -- Update to 20.10.12. Fixes rhbz#2032534. -- Install zsh completions to the correct directory. Fixes rhbz#2038888. - -* Mon Nov 22 2021 Olivier Lemasle - 20.10-11-1 -- Update to upstream 20.10.11 (fixes rhbz#2024384) -- Mitigates CVE-2021-41190 (fixes rhbz#2024940) - -* Fri Oct 29 2021 Maxwell G - 20.10.10-1 -- Update to 20.10.10 (fixes rhbz#2015385) -- Update virtual provides - -* Fri Oct 08 2021 Maxwell G - 20.10.9-1 -- Update to 20.10.9 (fixes rhbz#2010508) -- Patch seccomp policy to fix clone3() issue (fixes rhbz#2011523 and rhbz#1988199) - -* Sun Aug 15 2021 Olivier Lemasle - 20.10.8-1 -- Update to upstream 20.10.8 (fixes rhbz#1990148) -- Fix seccomp support (fixes rhbz#1986092) - -* Sun Aug 15 2021 Dusty Mabe - 20.10.7-3 -- Remove `Requires(post)` on firewalld-filesystem. - -* Thu Jul 22 2021 Fedora Release Engineering - 20.10.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri Jul 16 2021 Olivier Lemasle - 20.10.7-1 -- Update to upstream 20.10.7 (fixes rhbz#1967390) - -* Tue May 04 2021 Olivier Lemasle - 20.10.6-2 -- Add conflict with podman-docker - -* Tue Apr 20 2021 Olivier Lemasle - 20.10.6-1 -- Update to upstream 20.10.6 (#1948605) -- Re-bundle moby dependencies to fix gRPC issues with Swarm - (https://github.com/coreos/fedora-coreos-tracker/issues/793) - -* Sun Mar 14 2021 Olivier Lemasle - 20.10.5-1 -- Update to latest upstream 20.10.5 - fixes #1903426 -- Upstream brings compatibility with cgroups v2 - fixes #1746355 -- Remove package moby-engine-vim (dockerfile.vim has been merged in upstream vim) -- Remove firewalld docker zone, since dockerd can now communicate with firewalld - fixes #1852680 -- Build dockerd and docker-proxy from unbundled source packages -- Remove fixed storage-driver (cf. https://src.fedoraproject.org/rpms/moby-engine/pull-request/6) - -* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 19.03.13-3.ce.git4484c46 -- Rebuilt for updated systemd-rpm-macros - See https://pagure.io/fesco/issue/2583. - -* Tue Jan 26 2021 Fedora Release Engineering - 19.03.13-2.ce.git4484c46 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Fri Oct 02 2020 Olivier Lemasle - 19.03.13-1.ce.git4484c46 -- Update to upstream 19.03.13 (#1837641) - -* Fri Oct 02 2020 Olivier Lemasle - 19.03.11-4.ce.git42e35e6 -- Fix FTBFS: adapt to change to CMake builds (#1864160) - -* Sat Aug 01 2020 Fedora Release Engineering - 19.03.11-3.ce.git42e35e6 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jul 28 2020 Fedora Release Engineering - 19.03.11-2.ce.git42e35e6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Sun Jun 07 2020 Olivier Lemasle - 19.03.11-1.ce.git42e35e6 -- Update to upstream 19.03.11 to prevent CVE-2020-13401 - -* Thu May 07 2020 Olivier Lemasle - 19.03.8-2.ce.gitafacb8b -- Configure storage-driver explicitely (fixes #1832301) -- Add firewalld zone: trust interface docker0, as firewalld now uses nftables - by default and docker communicates with iptables (fixes #1817022) - -* Mon Mar 16 2020 Olivier Lemasle - 19.03.8-1.ce.gitafacb8b -- Update to latest upstream release - Docker CE 19.03.8 -- Prune unused BuildRequires - -* Sun Mar 8 2020 Olivier Lemasle - 19.03.7-2.ce.git7141c19 -- Add Conflicts with docker-ce-cli and Obsoletes docker-common - -* Sat Mar 7 2020 Olivier Lemasle - 19.03.7-1.ce.git7141c19 -- Update to latest upstream release - Docker CE 19.03.7 -- Add Epoch: 2 to Obsoletes for docker and docker-latest - -* Wed Jan 29 2020 Fedora Release Engineering - 18.09.8-3.ce.git0dd43dd -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Thu Jul 25 2019 Fedora Release Engineering - 18.09.8-2.ce.git0dd43dd -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Thu Jul 18 2019 Olivier Lemasle - 18.09.8-1.ce.git0dd43dd -- Update to latest upstream release - Docker CE 18.09.8 - -* Sat Jul 13 2019 Olivier Lemasle - 18.09.7-5.ce.git2d0083d -- Move docker-init and docker-proxy to /usr/libexec/docker -- Update moby-engine-nano summary to follow guidelines - -* Sat Jul 13 2019 Olivier Lemasle - 18.09.7-4.ce.git2d0083d -- Add nofile ulimit to default docker daemon options (#1715254, #1708115) - -* Fri Jul 12 2019 Olivier Lemasle - 18.09.7-3.ce.git2d0083d -- rebuilt - -* Fri Jul 12 2019 Olivier Lemasle - 18.09.7-2.ce.git2d0083d -- Depend on packaged versions "runc" and "containerd" instead of building them. - -* Thu Jun 27 2019 David Michael - 18.09.7-1.ce.git2d0083d -- Update docker-ce to commit 2d0083d (version 18.09.7). -- Update runc to commit 425e105. -- Update containerd to commit 894b81a (1.2.6). -- Update docker-proxy to commit e7933d4. - -* Tue May 14 2019 David Michael - 18.09.6-1.ce.git481bc77 -- Update docker-ce to commit 481bc77 (version 18.09.6). -- Update docker-proxy to commit 872f0a8. -- Obsolete and provide the docker and docker-latest packages. (#1700006) - -* Thu Apr 11 2019 David Michael - 18.09.5-1.ce.gite8ff056 -- Update docker-ce to commit e8ff056 (version 18.09.5). -- Update docker-runc to commit 2b18fe1. -- Update docker-containerd to commit bb71b10 (version 1.2.5). -- Update docker-proxy to commit 4725f21. -- Report the correct engine version. -- Install symlinks to unprefixed runc/containerd program names. - -* Thu Mar 28 2019 David Michael - 18.06.3-2.ce.gitd7080c1 -- Conflict with docker-common. (#1693397) - -* Thu Feb 21 2019 David Michael - 18.06.3-1.ce.gitd7080c1 -- Update docker-ce to commit d7080c1 (version 18.06.3). - -* Tue Feb 12 2019 David Michael - 18.06.2-1.ce.git6d37f41 -- Update docker-ce to commit 6d37f41 (version 18.06.2). -- Update docker-runc to commit a592beb. - -* Mon Feb 11 2019 David Michael - 18.06.1-3.ce.gite68fc7a -- Apply a runc patch for CVE-2019-5736. - -* Fri Feb 01 2019 Fedora Release Engineering - 18.06.1-2.ce.gite68fc7a -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Thu Nov 29 2018 David Michael - 18.06.1-1.ce.gite68fc7a -- Update docker-ce to commit e68fc7a (version 18.06.1). -- Update docker-runc to commit 69663f0. -- Update docker-containerd to commit 468a545 (version 1.1.2). -- Update docker-proxy to commit 3ac297b. -- Backport a fix for mounting named volumes. -- Create a "docker" group for non-root Docker access. -- Support systemd socket-activation. -- Make runc and containerd commit IDs match their expected values. -- Preserve containerd debuginfo. - -* Mon Nov 12 2018 Marcin Skarbek - 18.06.0-2.ce.git0ffa825 -- add configuration file -- update service file - -* Sat Aug 18 2018 Lokesh Mandvekar - 18.06.0-1.ce.git0ffa825 -- Resolves: #1539161 - first upload to Fedora -- built docker-ce commit 0ffa825 -- built docker-runc commit ad0f5255 -- built docker-containerd commit a88b631 -- built docker-proxy commit a79d368 -- built docker-init commit fec3683 - -* Tue Mar 20 2018 Lokesh Mandvekar - 17.03.2-4.ce.gitf5ec1e2 -- correct some rpmlint errors - -* Wed Feb 21 2018 Lokesh Mandvekar - 17.03.2-3.ce -- docker-* symlinks to moby-* (RE: gh PR 34226) - -* Wed Feb 21 2018 Lokesh Mandvekar - 17.03.2-2.ce -- rename binaries as per upstream gh PR 34226 - -* Fri Jan 26 2018 Lokesh Mandvekar - 17.03.2-1 -- initial build -- built moby commit f5ec1e2 -- built cli commit 4b61f56 -- built docker-runc commit 2d41c047 -- built docker-containerd commit 3addd84 -- built docker-proxy commit 7b2b1fe diff --git a/anda/docker/moby-engine/moby-engine.spec.license b/anda/docker/moby-engine/moby-engine.spec.license deleted file mode 100644 index 2071b23b0e..0000000000 --- a/anda/docker/moby-engine/moby-engine.spec.license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/anda/docker/moby-engine/provides.spec.inc b/anda/docker/moby-engine/provides.spec.inc deleted file mode 100644 index 847f007ed0..0000000000 --- a/anda/docker/moby-engine/provides.spec.inc +++ /dev/null @@ -1,108 +0,0 @@ -# Bundled dependencies -Provides: bundled(tini-static) -Provides: bundled(golang(github.com/docker/docker)) -Provides: bundled(golang(github.com/docker/cli)) -# grep -v -e '^$' -e '^#' cli-24.0.5/vendor/github.com/docker/distribution/vendor.conf | sort | awk '{print "Provides: bundled(golang("$1")) = "$2}' -Provides: bundled(golang(github.com/aws/aws-sdk-go)) = f831d5a0822a1ad72420ab18c6269bca1ddaf490 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go)) = 4650843026a7fdec254a8d9cf893693a254edd0b -Provides: bundled(golang(github.com/Azure/go-autorest)) = eaa7994b2278094c904d31993d26f56324db3052 -Provides: bundled(golang(github.com/beorn7/perks)) = 4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9 -Provides: bundled(golang(github.com/bshuster-repo/logrus-logstash-hook)) = d2c0ecc1836d91814e15e23bb5dc309c3ef51f4a -Provides: bundled(golang(github.com/bugsnag/bugsnag-go)) = b1d153021fcd90ca3f080db36bec96dc690fb274 -Provides: bundled(golang(github.com/bugsnag/osext)) = 0dd3f918b21bec95ace9dc86c7e70266cfc5c702 -Provides: bundled(golang(github.com/bugsnag/panicwrap)) = e2c28503fcd0675329da73bf48b33404db873782 -Provides: bundled(golang(github.com/denverdino/aliyungo)) = afedced274aa9a7fcdd47ac97018f0f8db4e5de2 -Provides: bundled(golang(github.com/dgrijalva/jwt-go)) = 4bbdd8ac624fc7a9ef7aec841c43d99b5fe65a29 -Provides: bundled(golang(github.com/docker/go-metrics)) = 399ea8c73916000c64c2c76e8da00ca82f8387ab -Provides: bundled(golang(github.com/docker/libtrust)) = fa567046d9b14f6aa788882a950d69651d230b21 -Provides: bundled(golang(github.com/garyburd/redigo)) = 535138d7bcd717d6531c701ef5933d98b1866257 -Provides: bundled(golang(github.com/go-ini/ini)) = 2ba15ac2dc9cdf88c110ec2dc0ced7fa45f5678c -Provides: bundled(golang(github.com/golang/protobuf)) = 8d92cf5fc15a4382f8964b08e1f42a75c0591aa3 -Provides: bundled(golang(github.com/gorilla/handlers)) = 60c7bfde3e33c201519a200a4507a158cc03a17b -Provides: bundled(golang(github.com/gorilla/mux)) = 599cba5e7b6137d46ddf58fb1765f5d928e69604 -Provides: bundled(golang(github.com/inconshreveable/mousetrap)) = 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75 -Provides: bundled(golang(github.com/jmespath/go-jmespath)) = bd40a432e4c76585ef6b72d3fd96fb9b6dc7b68d -Provides: bundled(golang(github.com/marstr/guid)) = 8bd9a64bf37eb297b492a4101fb28e80ac0b290f -Provides: bundled(golang(github.com/matttproud/golang_protobuf_extensions)) = c12348ce28de40eed0136aa2b644d0ee0650e56c -Provides: bundled(golang(github.com/miekg/dns)) = 271c58e0c14f552178ea321a545ff9af38930f39 -Provides: bundled(golang(github.com/mitchellh/mapstructure)) = 482a9fd5fa83e8c4e7817413b80f3eb8feec03ef -Provides: bundled(golang(github.com/ncw/swift)) = a0320860b16212c2b59b4912bb6508cda1d7cee6 -Provides: bundled(golang(github.com/opencontainers/go-digest)) = a6d0ee40d4207ea02364bd3b9e8e77b9159ba1eb -Provides: bundled(golang(github.com/opencontainers/image-spec)) = 67d2d5658fe0476ab9bf414cec164077ebff3920 -Provides: bundled(golang(github.com/prometheus/client_golang)) = c332b6f63c0658a65eca15c0e5247ded801cf564 -Provides: bundled(golang(github.com/prometheus/client_model)) = 99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c -Provides: bundled(golang(github.com/prometheus/common)) = 89604d197083d4781071d3c65855d24ecfb0a563 -Provides: bundled(golang(github.com/prometheus/procfs)) = cb4147076ac75738c9a7d279075a253c0cc5acbd -Provides: bundled(golang(github.com/satori/go.uuid)) = f58768cc1a7a7e77a3bd49e98cdd21419399b6a3 -Provides: bundled(golang(github.com/Shopify/logrus-bugsnag)) = 577dee27f20dd8f1a529f82210094af593be12bd -Provides: bundled(golang(github.com/sirupsen/logrus)) = 3d4380f53a34dcdc95f0c1db702615992b38d9a4 -Provides: bundled(golang(github.com/spf13/cobra)) = 312092086bed4968099259622145a0c9ae280064 -Provides: bundled(golang(github.com/spf13/pflag)) = 5644820622454e71517561946e3d94b9f9db6842 -Provides: bundled(golang(github.com/xenolf/lego)) = a9d8cec0e6563575e5868a005359ac97911b5985 -Provides: bundled(golang(github.com/yvasiyarov/go-metrics)) = 57bccd1ccd43f94bb17fdd8bf3007059b802f85e -Provides: bundled(golang(github.com/yvasiyarov/gorelic)) = a9bba5b9ab508a086f9a12b8c51fab68478e2128 -Provides: bundled(golang(github.com/yvasiyarov/newrelic_platform_go)) = b21fdbd4370f3717f3bbd2bf41c223bc273068e6 -Provides: bundled(golang(golang.org/x/crypto)) = c10c31b5e94b6f7a0283272dc2bb27163dcea24b -Provides: bundled(golang(golang.org/x/net)) = 4876518f9e71663000c348837735820161a42df7 -Provides: bundled(golang(golang.org/x/oauth2)) = 045497edb6234273d67dbc25da3f2ddbc4c4cacf -Provides: bundled(golang(golang.org/x/time)) = a4bde12657593d5e90d0533a3e4fd95e635124cb -Provides: bundled(golang(google.golang.org/api)) = 9bf6e6e569ff057f75d9604a46c52928f17d2b54 -Provides: bundled(golang(google.golang.org/appengine)) = 12d5545dc1cfa6047a286d5e853841b6471f4c19 -Provides: bundled(golang(google.golang.org/cloud)) = 975617b05ea8a58727e6c1a06b6161ff4185a9f2 -Provides: bundled(golang(google.golang.org/grpc)) = d3ddb4469d5a1b949fc7a7da7c1d6a0d1b6de994 -Provides: bundled(golang(gopkg.in/check.v1)) = 64131543e7896d5bcc6bd5a76287eb75ea96c673 -Provides: bundled(golang(gopkg.in/square/go-jose.v1)) = 40d457b439244b546f023d056628e5184136899b -Provides: bundled(golang(gopkg.in/yaml.v2)) = v2.2.1 -Provides: bundled(golang(rsc.io/letsencrypt)) = e770c10b0f1a64775ae91d240407ce00d1a5bdeb -# grep -v -e '^$' -e '^#' moby-24.0.5/vendor/github.com/docker/distribution/vendor.conf | sort | awk '{print "Provides: bundled(golang("$1")) = "$2}' -Provides: bundled(golang(github.com/aws/aws-sdk-go)) = f831d5a0822a1ad72420ab18c6269bca1ddaf490 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go)) = 4650843026a7fdec254a8d9cf893693a254edd0b -Provides: bundled(golang(github.com/Azure/go-autorest)) = eaa7994b2278094c904d31993d26f56324db3052 -Provides: bundled(golang(github.com/beorn7/perks)) = 4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9 -Provides: bundled(golang(github.com/bshuster-repo/logrus-logstash-hook)) = d2c0ecc1836d91814e15e23bb5dc309c3ef51f4a -Provides: bundled(golang(github.com/bugsnag/bugsnag-go)) = b1d153021fcd90ca3f080db36bec96dc690fb274 -Provides: bundled(golang(github.com/bugsnag/osext)) = 0dd3f918b21bec95ace9dc86c7e70266cfc5c702 -Provides: bundled(golang(github.com/bugsnag/panicwrap)) = e2c28503fcd0675329da73bf48b33404db873782 -Provides: bundled(golang(github.com/denverdino/aliyungo)) = afedced274aa9a7fcdd47ac97018f0f8db4e5de2 -Provides: bundled(golang(github.com/dgrijalva/jwt-go)) = 4bbdd8ac624fc7a9ef7aec841c43d99b5fe65a29 -Provides: bundled(golang(github.com/docker/go-metrics)) = 399ea8c73916000c64c2c76e8da00ca82f8387ab -Provides: bundled(golang(github.com/docker/libtrust)) = fa567046d9b14f6aa788882a950d69651d230b21 -Provides: bundled(golang(github.com/garyburd/redigo)) = 535138d7bcd717d6531c701ef5933d98b1866257 -Provides: bundled(golang(github.com/go-ini/ini)) = 2ba15ac2dc9cdf88c110ec2dc0ced7fa45f5678c -Provides: bundled(golang(github.com/golang/protobuf)) = 8d92cf5fc15a4382f8964b08e1f42a75c0591aa3 -Provides: bundled(golang(github.com/gorilla/handlers)) = 60c7bfde3e33c201519a200a4507a158cc03a17b -Provides: bundled(golang(github.com/gorilla/mux)) = 599cba5e7b6137d46ddf58fb1765f5d928e69604 -Provides: bundled(golang(github.com/inconshreveable/mousetrap)) = 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75 -Provides: bundled(golang(github.com/jmespath/go-jmespath)) = bd40a432e4c76585ef6b72d3fd96fb9b6dc7b68d -Provides: bundled(golang(github.com/marstr/guid)) = 8bd9a64bf37eb297b492a4101fb28e80ac0b290f -Provides: bundled(golang(github.com/matttproud/golang_protobuf_extensions)) = c12348ce28de40eed0136aa2b644d0ee0650e56c -Provides: bundled(golang(github.com/miekg/dns)) = 271c58e0c14f552178ea321a545ff9af38930f39 -Provides: bundled(golang(github.com/mitchellh/mapstructure)) = 482a9fd5fa83e8c4e7817413b80f3eb8feec03ef -Provides: bundled(golang(github.com/ncw/swift)) = a0320860b16212c2b59b4912bb6508cda1d7cee6 -Provides: bundled(golang(github.com/opencontainers/go-digest)) = a6d0ee40d4207ea02364bd3b9e8e77b9159ba1eb -Provides: bundled(golang(github.com/opencontainers/image-spec)) = 67d2d5658fe0476ab9bf414cec164077ebff3920 -Provides: bundled(golang(github.com/prometheus/client_golang)) = c332b6f63c0658a65eca15c0e5247ded801cf564 -Provides: bundled(golang(github.com/prometheus/client_model)) = 99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c -Provides: bundled(golang(github.com/prometheus/common)) = 89604d197083d4781071d3c65855d24ecfb0a563 -Provides: bundled(golang(github.com/prometheus/procfs)) = cb4147076ac75738c9a7d279075a253c0cc5acbd -Provides: bundled(golang(github.com/satori/go.uuid)) = f58768cc1a7a7e77a3bd49e98cdd21419399b6a3 -Provides: bundled(golang(github.com/Shopify/logrus-bugsnag)) = 577dee27f20dd8f1a529f82210094af593be12bd -Provides: bundled(golang(github.com/sirupsen/logrus)) = 3d4380f53a34dcdc95f0c1db702615992b38d9a4 -Provides: bundled(golang(github.com/spf13/cobra)) = 312092086bed4968099259622145a0c9ae280064 -Provides: bundled(golang(github.com/spf13/pflag)) = 5644820622454e71517561946e3d94b9f9db6842 -Provides: bundled(golang(github.com/xenolf/lego)) = a9d8cec0e6563575e5868a005359ac97911b5985 -Provides: bundled(golang(github.com/yvasiyarov/go-metrics)) = 57bccd1ccd43f94bb17fdd8bf3007059b802f85e -Provides: bundled(golang(github.com/yvasiyarov/gorelic)) = a9bba5b9ab508a086f9a12b8c51fab68478e2128 -Provides: bundled(golang(github.com/yvasiyarov/newrelic_platform_go)) = b21fdbd4370f3717f3bbd2bf41c223bc273068e6 -Provides: bundled(golang(golang.org/x/crypto)) = c10c31b5e94b6f7a0283272dc2bb27163dcea24b -Provides: bundled(golang(golang.org/x/net)) = 4876518f9e71663000c348837735820161a42df7 -Provides: bundled(golang(golang.org/x/oauth2)) = 045497edb6234273d67dbc25da3f2ddbc4c4cacf -Provides: bundled(golang(golang.org/x/time)) = a4bde12657593d5e90d0533a3e4fd95e635124cb -Provides: bundled(golang(google.golang.org/api)) = 9bf6e6e569ff057f75d9604a46c52928f17d2b54 -Provides: bundled(golang(google.golang.org/appengine)) = 12d5545dc1cfa6047a286d5e853841b6471f4c19 -Provides: bundled(golang(google.golang.org/cloud)) = 975617b05ea8a58727e6c1a06b6161ff4185a9f2 -Provides: bundled(golang(google.golang.org/grpc)) = d3ddb4469d5a1b949fc7a7da7c1d6a0d1b6de994 -Provides: bundled(golang(gopkg.in/check.v1)) = 64131543e7896d5bcc6bd5a76287eb75ea96c673 -Provides: bundled(golang(gopkg.in/square/go-jose.v1)) = 40d457b439244b546f023d056628e5184136899b -Provides: bundled(golang(gopkg.in/yaml.v2)) = v2.2.1 -Provides: bundled(golang(rsc.io/letsencrypt)) = e770c10b0f1a64775ae91d240407ce00d1a5bdeb diff --git a/anda/docker/moby-engine/sources b/anda/docker/moby-engine/sources deleted file mode 100644 index 185f3bb5a2..0000000000 --- a/anda/docker/moby-engine/sources +++ /dev/null @@ -1,3 +0,0 @@ -SHA512 (cli-24.0.5.tar.gz) = 765c67634d91d248b156d3e407398b98b7a0a89507bbac0310d4a68b95aa1a05e3af43c8b90bc10166748749d8cc36670619fc9efca110beefbdcd4385dc96be -SHA512 (moby-24.0.5.tar.gz) = cde2e47e7658b153399ee29154ec21eebf54b292185e07d43b968895dcfdfead95e4507fefb713859a4540f21d8007116d3ebeaa1fb7ba305fb2a0449ba1bee6 -SHA512 (tini-0b44d36.tar.gz) = 5294e877c369177b09c2a34f759e911f612f6977e960a63d46b6e5ebea790455dad972e91ca10c478693da637a5479d4e0b904efcfb5ae291e87e7e66674c752 diff --git a/anda/docker/moby-engine/update.sh b/anda/docker/moby-engine/update.sh deleted file mode 100755 index 3089ca4027..0000000000 --- a/anda/docker/moby-engine/update.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash -# SPDX-FileCopyrightText: 2022 Maxwell G (@gotmax23) -# SPDX-License-Identifier: MIT - -# USAGE: After bumping the version in moby-engine.spec and downloading the new -# sources, run this script in moby-engine's distgit repository to update the -# package's virtual Provides. - -set -euo pipefail - -# Note(gotmax23): I have a separate update.sh script in my $PATH. -# When that exists, this script will run that first. -# You can ignore this. -if command -v update.sh && [ "$#" -gt 0 ]; then - update.sh "$@" -fi - -spectool -g moby-engine.spec --define "_sourcedir ." -fedpkg prep - -version="$(rpmspec -D '_sourcedir %(pwd)' -q --srpm --qf '%{version}\n' *.spec)" - -cat << EOF > provides.spec.inc -# Bundled dependencies -Provides: bundled(tini-static) -Provides: bundled(golang(github.com/docker/docker)) -Provides: bundled(golang(github.com/docker/cli)) -# grep -v -e '^$' -e '^#' cli-${version}/vendor/github.com/docker/distribution/vendor.conf | sort | awk '{print "Provides: bundled(golang("\$1")) = "\$2}' -EOF - -grep -v -e '^$' -e '^#' "moby-${version}/cli-${version}/vendor/github.com/docker/distribution/vendor.conf" | sort | awk '{print "Provides: bundled(golang("$1")) = "$2}' >> provides.spec.inc - -cat << EOF >> provides.spec.inc -# grep -v -e '^$' -e '^#' moby-${version}/vendor/github.com/docker/distribution/vendor.conf | sort | awk '{print "Provides: bundled(golang("\$1")) = "\$2}' -EOF - -grep -v -e '^$' -e '^#' "moby-${version}/vendor/github.com/docker/distribution/vendor.conf" | sort | awk '{print "Provides: bundled(golang("$1")) = "$2}' >> provides.spec.inc - -# Note(gotmax23): Ignore this also. My script commits the specfile, -# and then this ammends that commit to add the updated provides.spec.inc. -if command -v update.sh && [ "$#" -gt 0 ]; then - git add provides.spec.inc - git commit --gpg-sign --amend --no-edit -fi diff --git a/anda/fonts/maple/maple-fonts.spec b/anda/fonts/maple/maple-fonts.spec index 0632db5722..cd988ed0e1 100644 --- a/anda/fonts/maple/maple-fonts.spec +++ b/anda/fonts/maple/maple-fonts.spec @@ -1,40 +1,43 @@ %define debug_package %nil %define _ttfontsdir %{_datadir}/fonts/maple +%global upstream_ver v7.0-beta36 +%define sanitized_ver %(echo "$( sed 's/^.//;s/-/~/' <<< "%{upstream_ver}" )") Name: maple-fonts -Version: 7.0.beta36 +Version: %{sanitized_ver} Release: 1%?dist -Summary: Open source monospace & nerd font with round corner and ligatures. +Summary: Open source monospace & nerd font with round corner and ligatures License: OFL-1.1 URL: https://github.com/subframe7536/Maple-font -Source0: %{url}/releases/download/v%{version}/MapleMono-SC-NF.zip -Source1: %{url}/releases/download/v%{version}/MapleMono-ttf.zip -Source2: %{url}/releases/download/v%{version}/MapleMono-NF.zip -Source3: https://raw.githubusercontent.com/subframe7536/maple-font/main/OFL.txt +Source0: %{url}/releases/download/%{upstream_ver}/MapleMono-NF-CN.zip +Source1: %{url}/releases/download/%{upstream_ver}/MapleMono-TTF.zip +Source2: %{url}/releases/download/%{upstream_ver}/MapleMono-NF.zip +Source3: https://raw.githubusercontent.com/subframe7536/maple-font/refs/heads/variable/README.md BuildArch: noarch -BuildRequires: unzip - + %description -%summary +%{summary}. The CN version contains the glyphs of simplified and traditional Chinese, and Japanese, which are not as normal as most CN fonts. The CJK glyphs' spacing is much looser for better metric alignment. %prep -%setup -q -c -n %{name}-%{version} -unzip %{S:1} -unzip %{S:2} -cp %{S:3} . - +%setup -q -c +unzip -u -qq %{SOURCE1} +unzip -u -qq %{SOURCE2} + %build - + %install install -d %{buildroot}%{_ttfontsdir} +install -d %{buildroot}%{_docdir}/%{name} # by default install command uses 755 umask install -m 644 *.ttf %{buildroot}%{_ttfontsdir} +install -m 644 %{SOURCE3} %{buildroot}%{_docdir}/%{name} %files -%license OFL.txt +%license LICENSE.txt +%{_docdir}/%{name}/README.md %dir %{_ttfontsdir} -%{_ttfontsdir}/*.ttf - +%{_ttfontsdir}/MapleMono*.ttf + %changelog * Tue Dec 26 2023 madoka773 - 6.4 - Initial package diff --git a/anda/fonts/maple/update.rhai b/anda/fonts/maple/update.rhai index 4e3626dc03..fdd6e2db9c 100644 --- a/anda/fonts/maple/update.rhai +++ b/anda/fonts/maple/update.rhai @@ -1 +1 @@ -rpm.version(gh("subframe7536/Maple-font")); \ No newline at end of file +rpm.global("upstream_ver", gh("subframe7536/Maple-font")); diff --git a/anda/fonts/nerd-fonts/nerd-fonts.spec b/anda/fonts/nerd-fonts/nerd-fonts.spec index b24589be1b..ab7211591f 100644 --- a/anda/fonts/nerd-fonts/nerd-fonts.spec +++ b/anda/fonts/nerd-fonts/nerd-fonts.spec @@ -4,7 +4,7 @@ Nerd Fonts is a project that patches developer targeted fonts with a high number of glyphs (icons).} Name: nerd-fonts -Version: 3.2.1 +Version: 3.3.0 Release: 1%?dist URL: https://nerdfonts.com/ Source0: https://raw.githubusercontent.com/ryanoasis/nerd-fonts/v%version/readme.md diff --git a/anda/fonts/open-huninn/open-huninn-fonts.spec b/anda/fonts/open-huninn/open-huninn-fonts.spec index bca26a38f1..515b2e7951 100644 --- a/anda/fonts/open-huninn/open-huninn-fonts.spec +++ b/anda/fonts/open-huninn/open-huninn-fonts.spec @@ -1,6 +1,6 @@ Name: open-huninn-fonts -Version: 2.0 -Release: 2%?dist +Version: 2.1 +Release: 1%?dist URL: https://github.com/justfont/open-huninn-font Source0: %url/archive/refs/tags/v%version.tar.gz License: OFL-1.1 diff --git a/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec b/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec index e8c4fc3f54..1be867c441 100644 --- a/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec +++ b/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec @@ -1,5 +1,5 @@ Name: sarasa-gothic-fonts -Version: 1.0.20 +Version: 1.0.28 Release: 1%?dist URL: https://github.com/be5invis/Sarasa-Gothic Source0: %url/releases/download/v%version/Sarasa-TTC-%version.7z diff --git a/anda/fonts/sipa/15-supercede-sarabun.conf b/anda/fonts/sipa/15-supercede-sarabun.conf new file mode 100644 index 0000000000..c8aadda9d6 --- /dev/null +++ b/anda/fonts/sipa/15-supercede-sarabun.conf @@ -0,0 +1,22 @@ + + + + Set Thai font preferences + + + + Sarabun + + + TH Sarabun New + + + + + TH Sarabun + + + TH Sarabun New + + + diff --git a/anda/fonts/sipa/sipa-fonts.spec b/anda/fonts/sipa/sipa-fonts.spec index b4cb6932ac..49fffb2dd2 100644 --- a/anda/fonts/sipa/sipa-fonts.spec +++ b/anda/fonts/sipa/sipa-fonts.spec @@ -2,20 +2,29 @@ Name: sipa-fonts Version: 20200217 -Release: 2%?dist +Release: 3%?dist Summary: Thai National Fonts collection -URL: https://www.f0nt.com/release/13-free-fonts-from-sipa/ -License: OFL-1.1 +URL: https://www.nstda.or.th/home/news_post/thai-font/ +License: LicenseRef-DIP-SIPA AND OFL-1.1-RFN Source0: https://waa.inter.nstda.or.th/stks/pub/%(x=%version;echo ${x:0:4})/%version-13Fonts.zip +Source1: 15-supercede-sarabun.conf BuildRequires: unzip +Supplements: (default-fonts-th) BuildArch: noarch +# Sarabun has very tiny latin alphanumeric glyphs, so it's not suitable for general use. +# And this causes legibility issues in many applications that defer to it. +# So let's have Laksaman synthesize it instead. +# TH Sarabun has also been superceded by Google Fonts' Sarabun/TH Sarabun New by the same foundry. (#2482) + Recommends: %{lua: local x = "" local ver = rpm.expand("%version-%release") for variant in (rpm.expand("%variants")):gmatch("[^ ]+") do local v = string.gsub(variant, "_", " ") local name = "th-"..string.gsub(v:lower(), " ", "-").."-fonts" - x = x .. name .. " = "..ver.." " + if name ~= "th-sarabun-fonts" then + x = x .. name .. " = "..ver.." " + end end print(x) } @@ -42,11 +51,70 @@ end # copied from https://www.f0nt.com/about/license/ cat < LICENSE -1. คุณสามารถดาวน์โหลดฟอนต์ไปใช้งานได้ฟรี ไม่ต้องเสียค่าใช้จ่ายแต่อย่างใด -2. แต่ถ้ามีการระบุข้อตกลงอื่นใดจากเจ้าของฟอนต์ ดังที่แสดงไว้ในหน้าดาวน์โหลดฟอนต์ หรือเป็นไฟล์เอกสารแสดงข้อตกลงที่แนบไปกับฟอนต์นั้นๆ ให้ยึดข้อตกลงดังกล่าวเป็นสำคัญ -3. คุณสามารถคัดลอกรายละเอียดอธิบายข้อมูล, ภาพตัวอย่างฟอนต์ ไปเผยแพร่ แจกจ่ายในเว็บไซต์หรือสื่ออื่นๆ ได้ โดยต้องระบุที่มา และทำลิงก์กลับมายังหน้าแสดงรายละเอียดฟอนต์ -4. ไม่อนุญาตให้นำ “ไฟล์ฟอนต์” ไปขาย เว้นแต่จะเป็นการแนบไฟล์ติดไปกับสื่อ โปรแกรม เพื่อความสะดวกในการใช้งาน แต่ไม่ใช่เพื่อการขายฟอนต์เป็นหลัก -5. หากคุณต้องการดัดแปลงฟอนต์เพื่อใช้งานเป็นการส่วนตัว สามารถทำได้ แต่ถ้าทำเพื่อขายหรือรับจ้างผลิต คุณจะต้องได้รับอนุญาตจากเจ้าของฟอนต์ก่อนเท่านั้น +สัญญาอนุญาตให้ใช้โปรแกรมคอมพิวเตอร์ฟอนต์ + +ชื่อที่สงวนไว้สำหรับโปรแกรมคอมพิวเตอร์ฟอนต์นี้ +TH Krub, TH Krub Italic, TH Krub Bold, TH Krub Bold Italic, +TH Niramit AS, TH Niramit AS Italic, TH Niramit AS Bold, TH Niramit AS Bold Italic, +TH Kodchasal, TH Kodchasal Italic, TH Kodchasal Bold, TH Kodchasal Bold Italic, +TH Sarabun PSK, TH Sarabun PSK Italic, TH Sarabun PSK Bold, TH Sarabun PSK Bold Italic, +TH K2D July8, TH K2D July8 Italic, TH K2D July8 Bold, TH K2D July8 Bold Italic, +TH Mali Grade 6, TH Mali Grade 6 Italic, TH Mali Grade 6 Bold, TH Mali Grade 6 Bold Italic, +TH Chakra Petch, TH Chakra Petch Italic, TH Chakra Petch Bold, TH Chakra Petch Bold Italic, +TH Baijam, TH Baijam Italic, TH Baijam Bold, TH Baijam Bold Italic, +TH KoHo, TH KoHo Italic, TH KoHo Bold, TH KoHo Bold Italic, +TH Fah Kwang, TH Fah Kwang Italic, TH Fah Kwang Bold, TH Fah Kwang Bold Italic. + +โปรแกรมคอมพิวเตอร์ฟอนต์นี้ เป็นลิขสิทธิ์ร่วมกันของกรมทรัพย์สินทางปัญญา กระทรวงพาณิชย์ และสำนักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์แห่งชาติ (องค์การมหาชน) + +สัญญาอนุญาตให้ใช้โปรแกรมคอมพิวเตอร์ฟอนต์นี้ มีวัตถุประสงค์เพื่อก่อให้เกิดความร่วมมือในการสร้างสรรค์ฟอนต์ในวงกว้าง รวมทั้งเพื่อประโยชน์ทางด้านการศึกษาและการแบ่งปันความรู้และพัฒนาโปรแกรมคอมพิวเตอร์ฟอนต์นี้ + +ข้อกำหนดและเงื่อนไขของสัญญาอนุญาตให้ใช้โปรแกรมคอมพิวเตอร์ฟอนต์นี้ + +(1) อนุญาตให้ใช้ได้โดยไม่คิดค่าใช้จ่ายและอนุญาตให้ทำซ้ำโปรแกรมคอมพิวเตอร์ฟอนต์นี้ได้ รวมทั้งอนุญาตให้ได้ศึกษา ดัดแปลง และแจกจ่ายให้แก่ผู้อื่นได้ ทั้งนี้จะต้องไม่นำโปรแกรมคอมพิวเตอร์ฟอนต์นี้และโปรแกรมคอมพิวเตอร์ฟอนต์ที่ดัดแปลงออกจำหน่าย เว้นแต่เป็นการจำหน่ายรวมติดไปกับโปรแกรมคอมพิวเตอร์อื่น + +(2) ก่อนดำเนินการดัดแปลงโปรแกรมคอมพิวเตอร์ฟอนต์ จะต้องแจ้งให้เจ้าของลิขสิทธิ์ทราบเป็นลายลักษณ์อักษร + +(3) เมื่อดัดแปลงโปรแกรมคอมพิวเตอร์ฟอนต์นี้แล้ว ห้ามผู้ดัดแปลงใช้ชื่อฟอนต์เดิม รวมทั้งห้ามใช้ชื่อเจ้าของลิขสิทธิ์และผู้สร้างสรรค์โปรแกรมคอมพิวเตอร์ฟอนต์นี้ ในการโฆษณาโปรแกรมคอมพิวเตอร์ฟอนต์ที่ได้ดัดแปลง เว้นแต่ได้รับอนุญาตเป็นลายลักษณ์อักษรจากเจ้าของลิขสิทธิ์ + +(4) ผู้ดัดแปลงโปรแกรมคอมพิวเตอร์นี้จะต้องยินยอมให้โปรแกรมคอมพิวเตอร์ฟอนต์ ที่ดัดแปลงขึ้นใหม่มีข้อกำหนดและเงื่อนไขสัญญาอนุญาตให้ใช้โปรแกรมเช่นเดียวกันกับข้อกำหนด และเงื่อนไขของสัญญาอนุญาตนี้เช่นกัน + +ข้อถือสิทธิ +เจ้าของลิขสิทธิ์ไม่รับประกันการใช้งานโปรแกรมคอมพิวเตอร์ฟอนต์และไฟล์ที่เกี่ยวข้องนี้แต่อย่างใด ไม่มีการรับรองว่าโปรแกรมคอมพิวเตอร์ฟอนต์นี้จะทำงานได้อย่างที่ควรจะเป็น และไม่มีการรับรองว่าจะมีการพัฒนาต่อยอดในอนาคต ไม่มีและไม่รับรองว่าจะมีการให้คำแนะนำทางเทคนิคสำหรับโปรแกรมคอมพิวเตอร์ฟอนต์นี้ + + +Font Computer Program License Agreement + +Reserved Font Names for this Font Computer Program: +TH Krub, TH Krub Italic, TH Krub Bold, TH Krub Bold Italic, +TH Niramit AS, TH Niramit AS Italic, TH Niramit AS Bold, TH Niramit AS Bold Italic, +TH Kodchasal, TH Kodchasal Italic, TH Kodchasal Bold, TH Kodchasal Bold Italic, +TH Sarabun PSK, TH Sarabun PSK Italic, TH Sarabun PSK Bold, TH Sarabun PSK Bold Italic, +TH K2D July8, TH K2D July8 Italic, TH K2D July8 Bold, TH K2D July8 Bold Italic, +TH Mali Grade 6, TH Mali Grade 6 Italic, TH Mali Grade 6 Bold, TH Mali Grade 6 Bold Italic, +TH Chakra Petch, TH Chakra Petch Italic, TH Chakra Petch Bold, TH Chakra Petch Bold Italic, +TH Baijam, TH Baijam Italic, TH Baijam Bold, TH Baijam Bold Italic, +TH KoHo, TH KoHo Italic, TH KoHo Bold, TH KoHo Bold Italic, +TH Fah Kwang, TH Fah Kwang Italic, TH Fah Kwang Bold, TH Fah Kwang Bold Italic. + +This Font Computer Program is the copyright of the Department of Intellectual Property (DIP), Ministry of Commerce and the Software Industry Promotion Agency (Public Organization) (SIPA) + +The purposes of this Font Computer Program License are to stimulate worldwide development of cooperative font creation, to benefit for academic, to share and to develop in partnership with others. + +Terms and Conditions of the Font Computer Program + +(1) Allow to use without any charges and allow to reproduce, study, adapt and distribute this Font Computer Program. Neither the original version nor adapted version of Font Computer Program may be sold by itself, except bundled and/or sold with any computer program. + +(2) If you wish to adapt this Font Computer Program, you must notify copyright owners (DIP & SIPA) in writing. + +(3) No adapted version of Font Computer Program may use the Reserved Font Name(s), the name(s) of the copyright owners and the author(s) of the Font Computer Program must not be used to promote or advertise any adapted version, except obtaining written permission from copyright owners and the author(s). + +(4) The adapted version of Font Computer Program must be released under the term and condition of this license. + +DISCLAIMER +THE FONT COMPUTER PROGRAM AND RELATED FILES ARE PROVIDED “AS IS” AND WITHOUT WARRANTY OF ANY KIND. NO GUARANTEES ARE MADE THAT THIS FONT COMPUTER PROGRAM WILL WORK AS EXPECTED OR WILL BE DEVELOPED FURTHUR IN ANY SPECIFIC WAY. THERE IS NO OFFER OR GUARANTEE OF TECHNICAL SUPPORT. + + EOF %build @@ -65,9 +133,13 @@ mv "THSarabunNew BoldItalic.ttf" "TH SarabunNew BoldItalic.ttf" mv "THSarabunNew Italic.ttf" "TH SarabunNew Italic.ttf" mv "THSarabunNew.ttf" "TH SarabunNew.ttf" +install -Dm644 %{SOURCE1} %buildroot/%{_sysconfdir}/fonts/conf.d/15-supercede-sarabun.conf + %files %license LICENSE +%dir %{_datadir}/fonts/sipa/ + %{lua: for variant in (rpm.expand("%variants")):gmatch("[^ ]+") do @@ -76,9 +148,13 @@ for variant in (rpm.expand("%variants")):gmatch("[^ ]+") do print("%files -n "..name.."\n") print("%license LICENSE\n") print("/usr/share/fonts/sipa/TH?"..v:gsub(" ", "?").."*\n") + if name == "th-sarabunnew-fonts" then + print("/etc/fonts/conf.d/15-supercede-sarabun.conf\n") + end end } + %changelog * Sun Jun 11 2023 windowsboy111 - 20200217-1 - Initial package diff --git a/anda/fusion/v4l2-relayd/0000-set-new-offset.patch b/anda/fusion/v4l2-relayd/0000-set-new-offset.patch deleted file mode 100644 index effcaeb267..0000000000 --- a/anda/fusion/v4l2-relayd/0000-set-new-offset.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 1be2bafe7a9aabf0389da9e685051859c56e64ce Mon Sep 17 00:00:00 2001 -From: Kate Hsuan -Date: Thu, 9 Feb 2023 15:26:37 +0800 -Subject: [PATCH] Set a new ID offset for the private event - -According to the v4l2loopback, the private event ID should be -start from V4L2_EVENT_PRIVATE_START+0x08E00000. Therefore, the -V4L2_EVENT_PRI_CLIENT_USAGE is V4L2_EVENT_PRIVATE_START+ -0x08E00000+1 - -Signed-off-by: Kate Hsuan ---- - src/v4l2-relayd.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/src/v4l2-relayd.c b/src/v4l2-relayd.c -index 21bb0d5..d731af0 100644 ---- a/src/v4l2-relayd.c -+++ b/src/v4l2-relayd.c -@@ -27,7 +27,10 @@ - #include - #include - --#define V4L2_EVENT_PRI_CLIENT_USAGE V4L2_EVENT_PRIVATE_START -+#define V4L2LOOPBACK_EVENT_OFFSET 0x08E00000 -+#define V4L2_EVENT_PRI_CLIENT_USAGE (V4L2_EVENT_PRIVATE_START+\ -+ V4L2LOOPBACK_EVENT_OFFSET+\ -+ 1) - - struct v4l2_event_client_usage { - __u32 count; --- -2.39.2 - diff --git a/anda/fusion/v4l2-relayd/update.rhai b/anda/fusion/v4l2-relayd/update.rhai deleted file mode 100644 index 97d355cb4e..0000000000 --- a/anda/fusion/v4l2-relayd/update.rhai +++ /dev/null @@ -1 +0,0 @@ -rpm.version(gitlab("24306684")); diff --git a/anda/games/gamescope-legacy/anda.hcl b/anda/games/gamescope-legacy/anda.hcl deleted file mode 100644 index 272907ad53..0000000000 --- a/anda/games/gamescope-legacy/anda.hcl +++ /dev/null @@ -1,8 +0,0 @@ -project pkg { - rpm { - spec = "gamescope-legacy.spec" - } - labels { - multilib = 1 - } -} diff --git a/anda/games/gamescope-legacy/gamescope-legacy.spec b/anda/games/gamescope-legacy/gamescope-legacy.spec deleted file mode 100644 index 75ead5d764..0000000000 --- a/anda/games/gamescope-legacy/gamescope-legacy.spec +++ /dev/null @@ -1,129 +0,0 @@ -%global libliftoff_minver 0.4.1 -%global reshade_commit 4245743a8c41abbe3dc73980c1810fe449359bf1 -%global reshade_shortcommit %(c=%{reshade_commit}; echo ${c:0:7}) -%global _default_patch_fuzz 2 - - -# ============================================================================= -# IMPORTANT: This package should *not* have an update script, at least not one that -# tracks upstream Gamescope from Valve. This package is intended to be a legacy -# build for Polaris and older GPUs from AMD, and should not be updated to the -# latest version. -# -# This package however, should be obsoleted once https://github.com/ValveSoftware/gamescope/issues/1218 -# is finally resolved, and Gamescope's Wayland backend has a fallback for GPUs without Vulkan DRM modifiers. -# ============================================================================= - - -Name: gamescope-legacy -Version: 3.14.2 -Release: 1%{?dist} -Summary: Legacy builds of gamescope, a micro-compositor for video games on Wayland -Packager: Cappy Ishihara -License: BSD -URL: https://github.com/ValveSoftware/gamescope -Source0: %{url}/archive/%{version}/gamescope-%{version}.tar.gz -# Create stb.pc to satisfy dependency('stb') -Source1: stb.pc -Source2: https://github.com/Joshua-Ashton/reshade/archive/%{reshade_commit}/reshade-%{reshade_shortcommit}.tar.gz - -Patch0: 0001-cstdint.patch - -# https://hhd.dev/ -Patch1: v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch - -# ChimeraOS -Patch2: legacy-720p.patch - -BuildRequires: meson >= 0.54.0 -BuildRequires: ninja-build -BuildRequires: cmake -BuildRequires: gcc -BuildRequires: gcc-c++ -BuildRequires: glm-devel -BuildRequires: google-benchmark-devel -BuildRequires: libXmu-devel -BuildRequires: libXcursor-devel -BuildRequires: pkgconfig(libdisplay-info) -BuildRequires: pkgconfig(x11) -BuildRequires: pkgconfig(xdamage) -BuildRequires: pkgconfig(xcomposite) -BuildRequires: pkgconfig(xrender) -BuildRequires: pkgconfig(xext) -BuildRequires: pkgconfig(xfixes) -BuildRequires: pkgconfig(xxf86vm) -BuildRequires: pkgconfig(xtst) -BuildRequires: pkgconfig(xres) -BuildRequires: pkgconfig(libdrm) -BuildRequires: pkgconfig(vulkan) -BuildRequires: pkgconfig(wayland-scanner) -BuildRequires: pkgconfig(wayland-server) -BuildRequires: pkgconfig(wayland-protocols) >= 1.17 -BuildRequires: pkgconfig(xkbcommon) -BuildRequires: pkgconfig(sdl2) -BuildRequires: pkgconfig(libpipewire-0.3) -BuildRequires: pkgconfig(libavif) -BuildRequires: (pkgconfig(wlroots) >= 0.17.0 with pkgconfig(wlroots) < 0.18) -BuildRequires: (pkgconfig(libliftoff) >= 0.4.1 with pkgconfig(libliftoff) < 0.5) -BuildRequires: pkgconfig(libcap) -BuildRequires: pkgconfig(hwdata) -BuildRequires: spirv-headers-devel -# Enforce the the minimum EVR to contain fixes for all of: -# CVE-2021-28021 CVE-2021-42715 CVE-2021-42716 CVE-2022-28041 CVE-2023-43898 -# CVE-2023-45661 CVE-2023-45662 CVE-2023-45663 CVE-2023-45664 CVE-2023-45666 -# CVE-2023-45667 -BuildRequires: stb_image-devel >= 2.28^20231011gitbeebb24-12 -# Header-only library: -static is for tracking per guidelines -BuildRequires: stb_image-static -BuildRequires: stb_image_resize-devel -BuildRequires: stb_image_resize-static -BuildRequires: stb_image_write-devel -BuildRequires: stb_image_write-static -BuildRequires: vkroots-devel -BuildRequires: /usr/bin/glslangValidator - -# libliftoff hasn't bumped soname, but API/ABI has changed for 0.2.0 release -Requires: libliftoff%{?_isa} >= %{libliftoff_minver} -Requires: xorg-x11-server-Xwayland - -Requires: terra-gamescope-libs -Requires: terra-gamescope-libs(x86-32) - -Recommends: mesa-dri-drivers -Recommends: mesa-vulkan-drivers - -%description -%{name} is the micro-compositor optimized for running video games on Wayland. This is a legacy build primarily intended for use by Polaris GPUs. - -%prep -%autosetup -p1 -a2 -N -n gamescope-%{version} -# Install stub pkgconfig file -mkdir -p pkgconfig -cp %{SOURCE1} pkgconfig/stb.pc - -# Replace spirv-headers include with the system directory -sed -i 's^../thirdparty/SPIRV-Headers/include/spirv/^/usr/include/spirv/^' src/meson.build - -# Push in reshade from sources instead of submodule -rm -rf src/reshade && mv reshade-%{reshade_commit} src/reshade - -%autopatch -p1 - -%build -export PKG_CONFIG_PATH=pkgconfig -%meson -Dpipewire=enabled -Denable_gamescope_wsi_layer=false -Denable_openvr_support=false -Dforce_fallback_for=[] -%meson_build - -%install -%meson_install -# Rename to not conflict with the base package -mv %{buildroot}%{_bindir}/gamescope %{buildroot}%{_bindir}/gamescope-legacy - -%files -%license LICENSE -%doc README.md -%{_bindir}/gamescope-legacy - -%changelog -%autochangelog - diff --git a/anda/games/gamescope-legacy/legacy-720p.patch b/anda/games/gamescope-legacy/legacy-720p.patch deleted file mode 100644 index 75e367afbb..0000000000 --- a/anda/games/gamescope-legacy/legacy-720p.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 072ebb67cd4a88fd0f5db22a92a46f8316f28a46 Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Tue, 25 Jul 2023 18:05:05 -0500 -Subject: [PATCH] Set default to native resolution of display if Steam tries to - force 720p/800p - -You can select 720p/800p still in game or via Steam's resolution setting -Steam > Settings > Display > Resolution - -This effectively reverts the changes Valve made a year ago forcing us to -720p. ---- - src/steamcompmgr.cpp | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp -index 52dd8d1cf..5b0fa6e52 100644 ---- a/src/steamcompmgr.cpp -+++ b/src/steamcompmgr.cpp -@@ -5202,6 +5202,13 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) - size_t server_idx = size_t{ xwayland_mode_ctl[ 0 ] }; - int width = xwayland_mode_ctl[ 1 ]; - int height = xwayland_mode_ctl[ 2 ]; -+ -+ if ( g_nOutputWidth != 1280 && width == 1280 ) -+ { -+ width = g_nOutputWidth; -+ height = g_nOutputHeight; -+ } -+ - bool allowSuperRes = !!xwayland_mode_ctl[ 3 ]; - - if ( !allowSuperRes ) \ No newline at end of file diff --git a/anda/games/gamescope-legacy/v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch b/anda/games/gamescope-legacy/v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch deleted file mode 100644 index ad97a5fcc0..0000000000 --- a/anda/games/gamescope-legacy/v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 35e001dc59a44227d670c667a85a6ef5472eee58 Mon Sep 17 00:00:00 2001 -From: antheas -Date: Sat, 20 Jul 2024 01:23:19 +0300 -Subject: [PATCH v2] always send ctrl+1/2 to steam's wayland session - ---- - src/wlserver.cpp | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 1852be9..7de737d 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -369,7 +369,12 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data) - keysym == XKB_KEY_XF86AudioLowerVolume || - keysym == XKB_KEY_XF86AudioRaiseVolume || - keysym == XKB_KEY_XF86PowerOff; -- if ( ( event->state == WL_KEYBOARD_KEY_STATE_PRESSED || event->state == WL_KEYBOARD_KEY_STATE_RELEASED ) && forbidden_key ) -+ -+ // Check for steam keys (ctrl + 1/2) -+ bool is_steamshortcut = (keyboard->wlr->modifiers.depressed & WLR_MODIFIER_CTRL) && (keysym == XKB_KEY_1 || -+ keysym == XKB_KEY_2); -+ -+ if ( ( event->state == WL_KEYBOARD_KEY_STATE_PRESSED || event->state == WL_KEYBOARD_KEY_STATE_RELEASED ) && (forbidden_key || is_steamshortcut) ) - { - // Always send volume+/- to root server only, to avoid it reaching the game. - struct wlr_surface *old_kb_surf = wlserver.kb_focus_surface; -@@ -378,6 +383,9 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data) - { - wlserver_keyboardfocus( new_kb_surf, false ); - wlr_seat_set_keyboard( wlserver.wlr.seat, keyboard->wlr ); -+ // Send modifiers to steam for it to work -+ if (is_steamshortcut) -+ wlr_seat_keyboard_notify_modifiers(wlserver.wlr.seat, &keyboard->wlr->modifiers); - wlr_seat_keyboard_notify_key( wlserver.wlr.seat, event->time_msec, event->keycode, event->state ); - wlserver_keyboardfocus( old_kb_surf, false ); - return; --- -2.45.2 diff --git a/anda/games/gamescope-session-steam/gamescope-session-steam.spec b/anda/games/gamescope-session-steam/gamescope-session-steam.spec index 8cf4b0533c..fa0143f930 100644 --- a/anda/games/gamescope-session-steam/gamescope-session-steam.spec +++ b/anda/games/gamescope-session-steam/gamescope-session-steam.spec @@ -1,8 +1,8 @@ %define debug_package %nil -%global commit 015e09825d4f9a2dfdbc20fc2711e2dcee2af68a +%global commit 1a3fdb7fa15a4bba7204bef69702b7a10a297828 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240719 +%global commit_date 20241206 Name: gamescope-session-steam Version: %commit_date.%shortcommit diff --git a/anda/games/gamescope-session/gamescope-session.spec b/anda/games/gamescope-session/gamescope-session.spec index 2157e8487b..22f091ae92 100644 --- a/anda/games/gamescope-session/gamescope-session.spec +++ b/anda/games/gamescope-session/gamescope-session.spec @@ -1,8 +1,8 @@ %define debug_package %nil -%global commit b5dae06669866377951ef676aa3e100682e03e47 +%global commit 533e51f2f50aebc4457d04372ab9b05a9c56ac10 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20250119 +%global commit_date 20250126 Name: gamescope-session Version: %commit_date.%shortcommit diff --git a/anda/games/gamescope/0001-cstdint.patch b/anda/games/gamescope/0001-cstdint.patch deleted file mode 100644 index 36a9ad59f2..0000000000 --- a/anda/games/gamescope/0001-cstdint.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 5529e8ac8f3232ec6233e33286834548e1d8018d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= -Date: Sun, 8 Oct 2023 22:10:33 +0200 -Subject: [PATCH] - ---- - src/reshade/source/effect_parser_stmt.cpp | 1 + - src/reshade/source/effect_token.hpp | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/src/reshade/source/effect_parser_stmt.cpp b/src/reshade/source/effect_parser_stmt.cpp -index 7829729..f126be2 100644 ---- a/src/reshade/source/effect_parser_stmt.cpp -+++ b/src/reshade/source/effect_parser_stmt.cpp -@@ -9,6 +9,7 @@ - #include // std::toupper - #include - #include -+#include - #include - - struct on_scope_exit -diff --git a/src/reshade/source/effect_token.hpp b/src/reshade/source/effect_token.hpp -index 072d439..e4bb633 100644 ---- a/src/reshade/source/effect_token.hpp -+++ b/src/reshade/source/effect_token.hpp -@@ -5,6 +5,7 @@ - - #pragma once - -+#include - #include - #include - --- -2.41.0 diff --git a/anda/games/gamescope/0001-limits.patch b/anda/games/gamescope/0001-limits.patch deleted file mode 100644 index 0b78aafea4..0000000000 --- a/anda/games/gamescope/0001-limits.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 88ce1e5de62886aa14c74421cde6130e16e70d7d Mon Sep 17 00:00:00 2001 -From: psykose -Date: Sat, 6 Jul 2024 20:52:50 +0200 -Subject: [PATCH] utils: include limits.h for PATH_MAX - ---- - src/Utils/Process.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/Utils/Process.cpp b/src/Utils/Process.cpp -index e71786f75..3e748e0d3 100644 ---- a/src/Utils/Process.cpp -+++ b/src/Utils/Process.cpp -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - #include - #include - #include \ No newline at end of file diff --git a/anda/games/gamescope/1483.patch b/anda/games/gamescope/1483.patch deleted file mode 100644 index 3bde8361d6..0000000000 --- a/anda/games/gamescope/1483.patch +++ /dev/null @@ -1,34 +0,0 @@ -From ca58cb2453e6d9ef44d799e394ee9950b7a35b30 Mon Sep 17 00:00:00 2001 -From: Cappy Ishihara -Date: Wed, 21 Aug 2024 03:56:53 +0700 -Subject: [PATCH] Check if current GPU supports Vulkan DRM modifiers when - `--backend=auto` is used. - -This works around #1218 by making use of the new backend option added in #1321, -but adds a check to automatically fall back to the SDL backend if the current -GPU does not support Vulkan DRM modifiers. ---- - src/main.cpp | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git a/src/main.cpp b/src/main.cpp -index ca4001249..bc6b16904 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -817,9 +817,13 @@ int main(int argc, char **argv) - if ( eCurrentBackend == gamescope::GamescopeBackend::Auto ) - { - if ( g_pOriginalWaylandDisplay != NULL ) -- eCurrentBackend = gamescope::GamescopeBackend::Wayland; -- else if ( g_pOriginalDisplay != NULL ) -- eCurrentBackend = gamescope::GamescopeBackend::SDL; -+ // Additional check if the current GPU supports Vulkan DRM modifiers -+ // Fallback to SDL if not supported (e.g Older AMD GPUs like Polaris 10/20) -+ if ( vulkan_supports_modifiers() ) -+ eCurrentBackend = gamescope::GamescopeBackend::Wayland; -+ else -+ eCurrentBackend = gamescope::GamescopeBackend::SDL; -+ - else - eCurrentBackend = gamescope::GamescopeBackend::DRM; - } diff --git a/anda/games/gamescope/anda.hcl b/anda/games/gamescope/anda.hcl deleted file mode 100644 index cd18050ddc..0000000000 --- a/anda/games/gamescope/anda.hcl +++ /dev/null @@ -1,8 +0,0 @@ -project pkg { - rpm { - spec = "terra-gamescope.spec" - } - labels { - multilib = 1 - } -} diff --git a/anda/games/gamescope/chimeraos.patch b/anda/games/gamescope/chimeraos.patch deleted file mode 100644 index f8bd2f877c..0000000000 --- a/anda/games/gamescope/chimeraos.patch +++ /dev/null @@ -1,2009 +0,0 @@ -From 646446c157d55d8508c734cddfc3025834f7cf50 Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Fri, 17 May 2024 19:43:49 -0500 -Subject: [PATCH 01/21] Add touch-gestures to open up Steam menus - ---- - src/main.cpp | 5 +++++ - src/wlserver.cpp | 28 ++++++++++++++++++++++++++++ - src/wlserver.hpp | 1 + - 3 files changed, 34 insertions(+) - -diff --git a/src/main.cpp b/src/main.cpp -index ca40012..3a1b1ae 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -108,6 +108,8 @@ const struct option *gamescope_options = (struct option[]){ - - // wlserver options - { "xwayland-count", required_argument, nullptr, 0 }, -+ { "touch-gestures", no_argument, nullptr, 0 }, -+ - - // steamcompmgr options - { "cursor", required_argument, nullptr, 0 }, -@@ -185,6 +187,7 @@ const char usage[] = - " -T, --stats-path write statistics to path\n" - " -C, --hide-cursor-delay hide cursor image after delay\n" - " -e, --steam enable Steam integration\n" -+ " --touch-gestures enable touch gestures for Steam menus\n" - " --xwayland-count create N xwayland servers\n" - " --prefer-vk-device prefer Vulkan device for compositing (ex: 1002:7300)\n" - " --force-orientation rotate the internal display (left, right, normal, upsidedown)\n" -@@ -734,6 +737,8 @@ int main(int argc, char **argv) - g_bDebugLayers = true; - } else if (strcmp(opt_name, "disable-color-management") == 0) { - g_bForceDisableColorMgmt = true; -+ } else if (strcmp(opt_name, "touch-gestures") == 0) { -+ cv_touch_gestures = true; - } else if (strcmp(opt_name, "xwayland-count") == 0) { - g_nXWaylandCount = atoi( optarg ); - } else if (strcmp(opt_name, "composite-debug") == 0) { -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index ccbd512..26b953a 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -81,6 +81,7 @@ using namespace std::literals; - extern gamescope::ConVar cv_drm_debug_disable_explicit_sync; - - //#define GAMESCOPE_SWAPCHAIN_DEBUG -+gamescope::ConVar cv_touch_gestures( "enable_touch_gestures", false, "Enable/Disable the usage of touch gestures" ); - - struct wlserver_t wlserver = { - .touch_down_ids = {} -@@ -2526,6 +2527,33 @@ void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool - - if ( bAlwaysWarpCursor ) - wlserver_mousewarp( tx, ty, time, false ); -+ -+ if (cv_touch_gestures) { -+ bool start_gesture = false; -+ -+ // Round the x-coordinate to the nearest whole number -+ uint32_t roundedCursorX = static_cast(std::round(tx)); -+ // Grab 2% of the display to be used for the edge range -+ uint32_t edge_range = static_cast(g_nOutputWidth * 0.02); -+ -+ // Determine if the gesture should start -+ if (roundedCursorX <= edge_range || roundedCursorX >= g_nOutputWidth - edge_range) { -+ start_gesture = true; -+ } -+ -+ // Handle Home gesture -+ if (start_gesture && roundedCursorX >= edge_range) { -+ wlserver_open_steam_menu(0); -+ start_gesture = false; -+ } -+ -+ // Handle QAM gesture -+ if (start_gesture && roundedCursorX >= g_nOutputWidth - edge_range && roundedCursorX <= g_nOutputWidth) { -+ wlserver_open_steam_menu(1); -+ start_gesture = false; -+ } -+ } -+ - } - else if ( eMode == gamescope::TouchClickModes::Disabled ) - { -diff --git a/src/wlserver.hpp b/src/wlserver.hpp -index 0569472..3304c18 100644 ---- a/src/wlserver.hpp -+++ b/src/wlserver.hpp -@@ -272,6 +272,7 @@ void wlserver_x11_surface_info_finish( struct wlserver_x11_surface_info *surf ); - void wlserver_set_xwayland_server_mode( size_t idx, int w, int h, int refresh ); - - extern std::atomic g_bPendingTouchMovement; -+extern gamescope::ConVar cv_touch_gestures; - - void wlserver_open_steam_menu( bool qam ); - --- -2.46.0 - - -From 97c2ed0ea6a5cd43b450e0952db20c08d82bbe60 Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Fri, 17 May 2024 20:16:20 -0500 -Subject: [PATCH 02/21] Add bypass_steam_resolution to workaround the 720p/800p - restrictions Steam has for games - ---- - src/main.cpp | 3 +++ - src/steamcompmgr.cpp | 11 +++++++++++ - 2 files changed, 14 insertions(+) - -diff --git a/src/main.cpp b/src/main.cpp -index 3a1b1ae..534779d 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -129,6 +129,8 @@ const struct option *gamescope_options = (struct option[]){ - { "fade-out-duration", required_argument, nullptr, 0 }, - { "force-orientation", required_argument, nullptr, 0 }, - { "force-windows-fullscreen", no_argument, nullptr, 0 }, -+ { "bypass-steam-resolution", no_argument, nullptr, 0 }, -+ - - { "disable-color-management", no_argument, nullptr, 0 }, - { "sdr-gamut-wideness", required_argument, nullptr, 0 }, -@@ -187,6 +189,7 @@ const char usage[] = - " -T, --stats-path write statistics to path\n" - " -C, --hide-cursor-delay hide cursor image after delay\n" - " -e, --steam enable Steam integration\n" -+ " --bypass-steam-resolution bypass Steam's default 720p/800p default resolution\n" - " --touch-gestures enable touch gestures for Steam menus\n" - " --xwayland-count create N xwayland servers\n" - " --prefer-vk-device prefer Vulkan device for compositing (ex: 1002:7300)\n" -diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp -index e997c85..952a5f8 100644 ---- a/src/steamcompmgr.cpp -+++ b/src/steamcompmgr.cpp -@@ -356,6 +356,8 @@ bool g_bForceHDR10OutputDebug = false; - gamescope::ConVar cv_hdr_enabled{ "hdr_enabled", false, "Whether or not HDR is enabled if it is available." }; - bool g_bHDRItmEnable = false; - int g_nCurrentRefreshRate_CachedValue = 0; -+gamescope::ConVar cv_bypass_steam_resolution{ "bypass_steam_resolution", false, "Workaround the 720p/800p limits Steam uses for games" }; -+ - - static void - update_color_mgmt() -@@ -5387,6 +5389,13 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) - size_t server_idx = size_t{ xwayland_mode_ctl[ 0 ] }; - int width = xwayland_mode_ctl[ 1 ]; - int height = xwayland_mode_ctl[ 2 ]; -+ -+ if ( g_nOutputWidth != 1280 && width == 1280 && cv_bypass_steam_resolution ) -+ { -+ width = g_nOutputWidth; -+ height = g_nOutputHeight; -+ } -+ - bool allowSuperRes = !!xwayland_mode_ctl[ 3 ]; - - if ( !allowSuperRes ) -@@ -7370,6 +7379,8 @@ steamcompmgr_main(int argc, char **argv) - bForceWindowsFullscreen = true; - } else if (strcmp(opt_name, "hdr-enabled") == 0) { - cv_hdr_enabled = true; -+ } else if (strcmp(opt_name, "bypass_steam_resolution") == 0) { -+ cv_bypass_steam_resolution = true; - } else if (strcmp(opt_name, "hdr-debug-force-support") == 0) { - g_bForceHDRSupportDebug = true; - } else if (strcmp(opt_name, "hdr-debug-force-output") == 0) { --- -2.46.0 - - -From 234e3bb0369b7ed45a8e2f3c41f3c1e900be9d34 Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Wed, 26 Jul 2023 20:46:29 -0500 -Subject: [PATCH 03/21] Add force external orientation. - -Co-authored-by: Bouke Sybren Haarsma ---- - src/Backends/DRMBackend.cpp | 5 +++++ - src/main.cpp | 25 ++++++++++++++++++++++++- - src/main.hpp | 1 + - src/wlserver.cpp | 23 +++++++++++++++++++++++ - 4 files changed, 53 insertions(+), 1 deletion(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 799fd39..3815b98 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -537,6 +537,7 @@ bool g_bSupportsSyncObjs = false; - - extern gamescope::GamescopeModeGeneration g_eGamescopeModeGeneration; - extern GamescopePanelOrientation g_DesiredInternalOrientation; -+extern GamescopePanelOrientation g_DesiredExternalOrientation; - - extern bool g_bForceDisableColorMgmt; - -@@ -2031,6 +2032,10 @@ namespace gamescope - { - m_ChosenOrientation = g_DesiredInternalOrientation; - } -+ else if ( this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredExternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO ) -+ { -+ m_ChosenOrientation = g_DesiredExternalOrientation; -+ } - else - { - if ( this->GetProperties().panel_orientation ) -diff --git a/src/main.cpp b/src/main.cpp -index 534779d..f9be05e 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -128,6 +128,7 @@ const struct option *gamescope_options = (struct option[]){ - { "disable-xres", no_argument, nullptr, 'x' }, - { "fade-out-duration", required_argument, nullptr, 0 }, - { "force-orientation", required_argument, nullptr, 0 }, -+ { "force-external-orientation", required_argument, nullptr, 0 }, - { "force-windows-fullscreen", no_argument, nullptr, 0 }, - { "bypass-steam-resolution", no_argument, nullptr, 0 }, - -@@ -194,6 +195,7 @@ const char usage[] = - " --xwayland-count create N xwayland servers\n" - " --prefer-vk-device prefer Vulkan device for compositing (ex: 1002:7300)\n" - " --force-orientation rotate the internal display (left, right, normal, upsidedown)\n" -+ " --force-external-orientation rotate the external display (left, right, normal, upsidedown)\n" - " --force-windows-fullscreen force windows inside of gamescope to be the size of the nested display (fullscreen)\n" - " --cursor-scale-height if specified, sets a base output height to linearly scale the cursor against.\n" - " --hdr-enabled enable HDR output (needs Gamescope WSI layer enabled for support from clients)\n" -@@ -289,6 +291,8 @@ bool g_bOutputHDREnabled = false; - bool g_bFullscreen = false; - bool g_bForceRelativeMouse = false; - -+bool g_bExternalForced = false; -+ - bool g_bGrabbed = false; - - float g_mouseSensitivity = 1.0; -@@ -362,7 +366,24 @@ static GamescopePanelOrientation force_orientation(const char *str) - } else if (strcmp(str, "upsidedown") == 0) { - return GAMESCOPE_PANEL_ORIENTATION_180; - } else { -- fprintf( stderr, "gamescope: invalid value for --force-orientation\n" ); -+ fprintf( stderr, "gamescope: invalid value for given for --force-orientation\n" ); -+ exit(1); -+ } -+} -+ -+GamescopePanelOrientation g_DesiredExternalOrientation = GAMESCOPE_PANEL_ORIENTATION_AUTO; -+static GamescopePanelOrientation force_external_orientation(const char *str) -+{ -+ if (strcmp(str, "normal") == 0) { -+ return GAMESCOPE_PANEL_ORIENTATION_0; -+ } else if (strcmp(str, "right") == 0) { -+ return GAMESCOPE_PANEL_ORIENTATION_270; -+ } else if (strcmp(str, "left") == 0) { -+ return GAMESCOPE_PANEL_ORIENTATION_90; -+ } else if (strcmp(str, "upsidedown") == 0) { -+ return GAMESCOPE_PANEL_ORIENTATION_180; -+ } else { -+ fprintf( stderr, "gamescope: invalid value for --force-external-orientation\n" ); - exit(1); - } - } -@@ -755,6 +776,8 @@ int main(int argc, char **argv) - g_eGamescopeModeGeneration = parse_gamescope_mode_generation( optarg ); - } else if (strcmp(opt_name, "force-orientation") == 0) { - g_DesiredInternalOrientation = force_orientation( optarg ); -+ } else if (strcmp(opt_name, "force-external-orientation") == 0) { -+ g_DesiredExternalOrientation = force_external_orientation( optarg ); - } else if (strcmp(opt_name, "sharpness") == 0 || - strcmp(opt_name, "fsr-sharpness") == 0) { - g_upscaleFilterSharpness = atoi( optarg ); -diff --git a/src/main.hpp b/src/main.hpp -index 2e6fb83..ebd018a 100644 ---- a/src/main.hpp -+++ b/src/main.hpp -@@ -28,6 +28,7 @@ extern bool g_bGrabbed; - - extern float g_mouseSensitivity; - extern const char *g_sOutputName; -+extern bool g_bExternalForced; - - enum class GamescopeUpscaleFilter : uint32_t - { -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 26b953a..837079a 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -2488,6 +2488,29 @@ static void apply_touchscreen_orientation(double *x, double *y ) - break; - } - -+ // Rotate screen if it's forced with --force-external-orientation -+ switch ( GetBackend()->GetConnector( gamescope::GAMESCOPE_SCREEN_TYPE_EXTERNAL )->GetCurrentOrientation() ) -+ { -+ default: -+ case GAMESCOPE_PANEL_ORIENTATION_AUTO: -+ case GAMESCOPE_PANEL_ORIENTATION_0: -+ tx = *x; -+ ty = *y; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_90: -+ tx = 1.0 - *y; -+ ty = *x; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_180: -+ tx = 1.0 - *x; -+ ty = 1.0 - *y; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_270: -+ tx = *y; -+ ty = 1.0 - *x; -+ break; -+ } -+ - *x = tx; - *y = ty; - } --- -2.46.0 - - -From bc0ddd46fd9db62fbc3fe14e0b1493e35ceb2be8 Mon Sep 17 00:00:00 2001 -From: Bouke Sybren Haarsma -Date: Tue, 12 Mar 2024 00:07:57 +0100 -Subject: [PATCH 04/21] implement force-panel-type - ---- - src/backend.h | 3 +++ - src/gamescope_shared.h | 1 + - src/main.cpp | 16 ++++++++++++++++ - 3 files changed, 20 insertions(+) - -diff --git a/src/backend.h b/src/backend.h -index 7d9fb46..08e8268 100644 ---- a/src/backend.h -+++ b/src/backend.h -@@ -18,6 +18,7 @@ struct wlr_buffer; - struct wlr_dmabuf_attributes; - - struct FrameInfo_t; -+extern gamescope::GamescopeScreenType g_ForcedScreenType; - - namespace gamescope - { -@@ -221,6 +222,8 @@ namespace gamescope - // Dumb helper we should remove to support multi display someday. - gamescope::GamescopeScreenType GetScreenType() - { -+ if (g_ForcedScreenType != GAMESCOPE_SCREEN_TYPE_AUTO) -+ return g_ForcedScreenType; - if ( GetCurrentConnector() ) - return GetCurrentConnector()->GetScreenType(); - -diff --git a/src/gamescope_shared.h b/src/gamescope_shared.h -index 5ce8591..d1b7a6e 100644 ---- a/src/gamescope_shared.h -+++ b/src/gamescope_shared.h -@@ -25,6 +25,7 @@ namespace gamescope - { - GAMESCOPE_SCREEN_TYPE_INTERNAL, - GAMESCOPE_SCREEN_TYPE_EXTERNAL, -+ GAMESCOPE_SCREEN_TYPE_AUTO, - - GAMESCOPE_SCREEN_TYPE_COUNT - }; -diff --git a/src/main.cpp b/src/main.cpp -index f9be05e..dc3e9c8 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -129,6 +129,7 @@ const struct option *gamescope_options = (struct option[]){ - { "fade-out-duration", required_argument, nullptr, 0 }, - { "force-orientation", required_argument, nullptr, 0 }, - { "force-external-orientation", required_argument, nullptr, 0 }, -+ { "force-panel-type", required_argument, nullptr, 0 }, - { "force-windows-fullscreen", no_argument, nullptr, 0 }, - { "bypass-steam-resolution", no_argument, nullptr, 0 }, - -@@ -196,6 +197,7 @@ const char usage[] = - " --prefer-vk-device prefer Vulkan device for compositing (ex: 1002:7300)\n" - " --force-orientation rotate the internal display (left, right, normal, upsidedown)\n" - " --force-external-orientation rotate the external display (left, right, normal, upsidedown)\n" -+ " --force-panel-type force gamescope to treat the display as either internal or external\n" - " --force-windows-fullscreen force windows inside of gamescope to be the size of the nested display (fullscreen)\n" - " --cursor-scale-height if specified, sets a base output height to linearly scale the cursor against.\n" - " --hdr-enabled enable HDR output (needs Gamescope WSI layer enabled for support from clients)\n" -@@ -387,6 +389,18 @@ static GamescopePanelOrientation force_external_orientation(const char *str) - exit(1); - } - } -+gamescope::GamescopeScreenType g_ForcedScreenType = gamescope::GAMESCOPE_SCREEN_TYPE_AUTO; -+static gamescope::GamescopeScreenType force_panel_type(const char *str) -+{ -+ if (strcmp(str, "internal") == 0) { -+ return gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL; -+ } else if (strcmp(str, "external") == 0) { -+ return gamescope::GAMESCOPE_SCREEN_TYPE_EXTERNAL; -+ } else { -+ fprintf( stderr, "gamescope: invalid value for --force-panel-type\n" ); -+ exit(1); -+ } -+} - - static enum GamescopeUpscaleScaler parse_upscaler_scaler(const char *str) - { -@@ -778,6 +792,8 @@ int main(int argc, char **argv) - g_DesiredInternalOrientation = force_orientation( optarg ); - } else if (strcmp(opt_name, "force-external-orientation") == 0) { - g_DesiredExternalOrientation = force_external_orientation( optarg ); -+ } else if (strcmp(opt_name, "force-panel-type") == 0) { -+ g_ForcedScreenType = force_panel_type( optarg ); - } else if (strcmp(opt_name, "sharpness") == 0 || - strcmp(opt_name, "fsr-sharpness") == 0) { - g_upscaleFilterSharpness = atoi( optarg ); --- -2.46.0 - - -From 2a0c92febded984bc0d610eaedc9e8cc4d4ce51a Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Fri, 17 May 2024 21:11:34 -0500 -Subject: [PATCH 05/21] wlserver: Fix an issue that would cause gamescope to - crash when the touchscreen was used - ---- - src/wlserver.cpp | 23 ----------------------- - 1 file changed, 23 deletions(-) - -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 837079a..26b953a 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -2488,29 +2488,6 @@ static void apply_touchscreen_orientation(double *x, double *y ) - break; - } - -- // Rotate screen if it's forced with --force-external-orientation -- switch ( GetBackend()->GetConnector( gamescope::GAMESCOPE_SCREEN_TYPE_EXTERNAL )->GetCurrentOrientation() ) -- { -- default: -- case GAMESCOPE_PANEL_ORIENTATION_AUTO: -- case GAMESCOPE_PANEL_ORIENTATION_0: -- tx = *x; -- ty = *y; -- break; -- case GAMESCOPE_PANEL_ORIENTATION_90: -- tx = 1.0 - *y; -- ty = *x; -- break; -- case GAMESCOPE_PANEL_ORIENTATION_180: -- tx = 1.0 - *x; -- ty = 1.0 - *y; -- break; -- case GAMESCOPE_PANEL_ORIENTATION_270: -- tx = *y; -- ty = 1.0 - *x; -- break; -- } -- - *x = tx; - *y = ty; - } --- -2.46.0 - - -From 69bae3bffa954251d6a857b1b6928fc4755e40bf Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Fri, 17 May 2024 21:56:55 -0500 -Subject: [PATCH 06/21] Add --custom-refresh-rates - ---- - src/Backends/DRMBackend.cpp | 4 ++++ - src/main.cpp | 30 ++++++++++++++++++++++++++++++ - src/main.hpp | 2 ++ - 3 files changed, 36 insertions(+) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 3815b98..e3512a1 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -2135,6 +2135,10 @@ namespace gamescope - ( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Jupiter"sv ) || - ( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Galileo"sv ); - -+ if ( g_customRefreshRates.size() > 0 ) { -+ m_Mutable.ValidDynamicRefreshRates = std::span(g_customRefreshRates); -+ return; -+ } - if ( bSteamDeckDisplay ) - { - static constexpr uint32_t kPIDGalileoSDC = 0x3003; -diff --git a/src/main.cpp b/src/main.cpp -index dc3e9c8..18eb399 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -132,6 +132,7 @@ const struct option *gamescope_options = (struct option[]){ - { "force-panel-type", required_argument, nullptr, 0 }, - { "force-windows-fullscreen", no_argument, nullptr, 0 }, - { "bypass-steam-resolution", no_argument, nullptr, 0 }, -+ { "custom-refresh-rates", required_argument, nullptr, 0 }, - - - { "disable-color-management", no_argument, nullptr, 0 }, -@@ -210,6 +211,7 @@ const char usage[] = - " --hdr-itm-target-nits set the target luminace of the inverse tone mapping process.\n" - " Default: 1000 nits, Max: 10000 nits\n" - " --framerate-limit Set a simple framerate limit. Used as a divisor of the refresh rate, rounds down eg 60 / 59 -> 60fps, 60 / 25 -> 30fps. Default: 0, disabled.\n" -+ " --custom-refresh-rates Set custom refresh rates for the output. eg: 60,90,110-120\n" - " --mangoapp Launch with the mangoapp (mangohud) performance overlay enabled. You should use this instead of using mangohud on the game or gamescope.\n" - "\n" - "Nested mode options:\n" -@@ -462,6 +464,32 @@ static enum gamescope::GamescopeBackend parse_backend_name(const char *str) - fprintf( stderr, "gamescope: invalid value for --backend\n" ); - exit(1); - } -+ -+std::vector g_customRefreshRates; -+// eg: 60,60,90,110-120 -+static std::vector parse_custom_refresh_rates( const char *str ) -+{ -+ std::vector rates; -+ char *token = strtok( strdup(str), ","); -+ while (token) -+ { -+ char *dash = strchr(token, '-'); -+ if (dash) -+ { -+ uint32_t start = atoi(token); -+ uint32_t end = atoi(dash + 1); -+ for (uint32_t i = start; i <= end; i++) -+ { -+ rates.push_back(i); -+ } -+ } -+ else -+ { -+ rates.push_back(atoi(token)); -+ } -+ token = strtok(nullptr, ","); -+ } -+ return rates; - } - - struct sigaction handle_signal_action = {}; -@@ -794,6 +822,8 @@ int main(int argc, char **argv) - g_DesiredExternalOrientation = force_external_orientation( optarg ); - } else if (strcmp(opt_name, "force-panel-type") == 0) { - g_ForcedScreenType = force_panel_type( optarg ); -+ } else if (strcmp(opt_name, "custom-refresh-rates") == 0) { -+ g_customRefreshRates = parse_custom_refresh_rates( optarg ); - } else if (strcmp(opt_name, "sharpness") == 0 || - strcmp(opt_name, "fsr-sharpness") == 0) { - g_upscaleFilterSharpness = atoi( optarg ); -diff --git a/src/main.hpp b/src/main.hpp -index ebd018a..4e09e3b 100644 ---- a/src/main.hpp -+++ b/src/main.hpp -@@ -3,6 +3,7 @@ - #include - - #include -+#include - - extern const char *gamescope_optstring; - extern const struct option *gamescope_options; -@@ -29,6 +30,7 @@ extern bool g_bGrabbed; - extern float g_mouseSensitivity; - extern const char *g_sOutputName; - extern bool g_bExternalForced; -+extern std::vector g_customRefreshRates; - - enum class GamescopeUpscaleFilter : uint32_t - { --- -2.46.0 - - -From 5125582bc6fdfc651ca5ccb58cb71d956e2c3676 Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Sat, 18 May 2024 08:44:38 -0500 -Subject: [PATCH 07/21] Add rotation gamescope_control command - ---- - protocol/gamescope-control.xml | 18 ++++++++++++ - src/Backends/DRMBackend.cpp | 24 ++++++++++++++-- - src/gamescope_shared.h | 18 ++++++++++++ - src/main.cpp | 1 + - src/wlserver.cpp | 50 ++++++++++++++++++++++++++++++++++ - 5 files changed, 109 insertions(+), 2 deletions(-) - -diff --git a/protocol/gamescope-control.xml b/protocol/gamescope-control.xml -index 012c48c..eab8a84 100644 ---- a/protocol/gamescope-control.xml -+++ b/protocol/gamescope-control.xml -@@ -99,5 +99,23 @@ - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index e3512a1..f05c2e8 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -2028,7 +2028,9 @@ namespace gamescope - - void CDRMConnector::UpdateEffectiveOrientation( const drmModeModeInfo *pMode ) - { -- if ( this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO ) -+ if ( this->GetScreenType() == ( GAMESCOPE_SCREEN_TYPE_INTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO ) -+ || ( GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredExternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO -+ && g_bExternalForced ) ) - { - m_ChosenOrientation = g_DesiredInternalOrientation; - } -@@ -2960,8 +2962,26 @@ bool drm_update_color_mgmt(struct drm_t *drm) - return true; - } - --int g_nDynamicRefreshHz = 0; -+void drm_set_orientation( struct drm_t *drm, bool isRotated) -+{ -+ int width = g_nOutputWidth; -+ int height = g_nOutputHeight; -+ g_bRotated = isRotated; -+ if ( g_bRotated ) { -+ int tmp = width; -+ width = height; -+ height = tmp; -+ } - -+ if (!drm->pConnector || !drm->pConnector->GetModeConnector()) -+ return; -+ -+ drmModeConnector *connector = drm->pConnector->GetModeConnector(); -+ const drmModeModeInfo *mode = find_mode(connector, width, height, 0); -+ update_drm_effective_orientations(drm, mode); -+} -+ -+int g_nDynamicRefreshHz = 0; - static void drm_unset_mode( struct drm_t *drm ) - { - drm->pending.mode_id = 0; -diff --git a/src/gamescope_shared.h b/src/gamescope_shared.h -index d1b7a6e..cffa576 100644 ---- a/src/gamescope_shared.h -+++ b/src/gamescope_shared.h -@@ -65,6 +65,24 @@ enum GamescopePanelOrientation - GAMESCOPE_PANEL_ORIENTATION_AUTO, - }; - -+struct GamescopeTimelinePoint -+{ -+ struct wlr_drm_syncobj_timeline *pTimeline = nullptr; -+ uint64_t ulPoint = 0; -+ -+ void Release(); -+}; -+ -+enum GamescopePanelExternalOrientation -+{ -+ GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_0, // normal -+ GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_270, // right -+ GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_90, // left -+ GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_180, // upside down -+ -+ GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_AUTO, -+}; -+ - // Disable partial composition for now until we get - // composite priorities working in libliftoff + also - // use the proper libliftoff composite plane system. -diff --git a/src/main.cpp b/src/main.cpp -index 18eb399..675020f 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -397,6 +397,7 @@ static gamescope::GamescopeScreenType force_panel_type(const char *str) - if (strcmp(str, "internal") == 0) { - return gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL; - } else if (strcmp(str, "external") == 0) { -+ g_bExternalForced = true; - return gamescope::GAMESCOPE_SCREEN_TYPE_EXTERNAL; - } else { - fprintf( stderr, "gamescope: invalid value for --force-panel-type\n" ); -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 26b953a..c37dbc1 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -1042,6 +1042,55 @@ static void gamescope_control_take_screenshot( struct wl_client *client, struct - } ); - } - -+static void gamescope_control_rotate_display( struct wl_client *client, struct wl_resource *resource, uint32_t orientation, uint32_t target_type ) -+{ -+ bool isRotated = false; -+ if (target_type == GAMESCOPE_CONTROL_DISPLAY_TARGET_TYPE_INTERNAL ) -+ { -+ switch (orientation) { -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_NORMAL: -+ //m_ChosenOrientation = GAMESCOPE_PANEL_ORIENTATION_0; -+ break; -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_LEFT: -+ //m_ChosenOrientation = GAMESCOPE_PANEL_ORIENTATION_90; -+ isRotated = true; -+ break; -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_RIGHT: -+ //m_ChosenOrientation = GAMESCOPE_PANEL_ORIENTATION_270; -+ isRotated = true; -+ break; -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_UPSIDEDOWN: -+ //m_ChosenOrientation = GAMESCOPE_PANEL_ORIENTATION_180; -+ break; -+ default: -+ wl_log.errorf("Invalid target orientation selected"); -+ } -+ } -+ else if (target_type == GAMESCOPE_CONTROL_DISPLAY_TARGET_TYPE_EXTERNAL ) -+ { -+ switch (orientation) { -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_NORMAL: -+ //m_ChosenOrientation = GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_0; -+ break; -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_LEFT: -+ //m_ChosenOrientation = GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_90; -+ isRotated = true; -+ break; -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_RIGHT: -+ //m_ChosenOrientation = GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_270; -+ isRotated = true; -+ break; -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_UPSIDEDOWN: -+ //m_ChosenOrientation = GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_180; -+ break; -+ default: -+ wl_log.errorf("Invalid target orientation selected"); -+ } -+ } -+ //drm_set_orientation(&g_DRM, isRotated); -+ //g_DRM.out_of_date = 2; -+} -+ - static void gamescope_control_handle_destroy( struct wl_client *client, struct wl_resource *resource ) - { - wl_resource_destroy( resource ); -@@ -1051,6 +1100,7 @@ static const struct gamescope_control_interface gamescope_control_impl = { - .destroy = gamescope_control_handle_destroy, - .set_app_target_refresh_cycle = gamescope_control_set_app_target_refresh_cycle, - .take_screenshot = gamescope_control_take_screenshot, -+ .rotate_display = gamescope_control_rotate_display, - }; - - static uint32_t get_conn_display_info_flags() --- -2.46.0 - - -From 304c747d5eab4b62fe38225d04529ff53142e832 Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Sat, 18 May 2024 11:54:50 -0500 -Subject: [PATCH 08/21] Fix an issue that caused force-panel to not work - ---- - protocol/gamescope-control.xml | 1 - - src/Backends/DRMBackend.cpp | 3 + - src/gamescope_shared.h | 10 --- - src/wlserver.cpp | 145 ++++++++++++++++++++------------- - 4 files changed, 90 insertions(+), 69 deletions(-) - -diff --git a/protocol/gamescope-control.xml b/protocol/gamescope-control.xml -index eab8a84..7f5578b 100644 ---- a/protocol/gamescope-control.xml -+++ b/protocol/gamescope-control.xml -@@ -99,7 +99,6 @@ - - - -- - - - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index f05c2e8..663b1e2 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -318,6 +318,9 @@ namespace gamescope - - GamescopeScreenType GetScreenType() const override - { -+ if ( g_ForcedScreenType != GAMESCOPE_SCREEN_TYPE_AUTO ) -+ return g_ForcedScreenType; -+ - if ( m_pConnector->connector_type == DRM_MODE_CONNECTOR_eDP || - m_pConnector->connector_type == DRM_MODE_CONNECTOR_LVDS || - m_pConnector->connector_type == DRM_MODE_CONNECTOR_DSI ) -diff --git a/src/gamescope_shared.h b/src/gamescope_shared.h -index cffa576..a11f598 100644 ---- a/src/gamescope_shared.h -+++ b/src/gamescope_shared.h -@@ -73,16 +73,6 @@ struct GamescopeTimelinePoint - void Release(); - }; - --enum GamescopePanelExternalOrientation --{ -- GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_0, // normal -- GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_270, // right -- GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_90, // left -- GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_180, // upside down -- -- GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_AUTO, --}; -- - // Disable partial composition for now until we get - // composite priorities working in libliftoff + also - // use the proper libliftoff composite plane system. -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index c37dbc1..ff534ad 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -82,6 +82,8 @@ extern gamescope::ConVar cv_drm_debug_disable_explicit_sync; - - //#define GAMESCOPE_SWAPCHAIN_DEBUG - gamescope::ConVar cv_touch_gestures( "enable_touch_gestures", false, "Enable/Disable the usage of touch gestures" ); -+extern GamescopePanelOrientation g_DesiredInternalOrientation; -+extern GamescopePanelOrientation g_DesiredExternalOrientation; - - struct wlserver_t wlserver = { - .touch_down_ids = {} -@@ -1048,43 +1050,43 @@ static void gamescope_control_rotate_display( struct wl_client *client, struct w - if (target_type == GAMESCOPE_CONTROL_DISPLAY_TARGET_TYPE_INTERNAL ) - { - switch (orientation) { -- case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_NORMAL: -- //m_ChosenOrientation = GAMESCOPE_PANEL_ORIENTATION_0; -- break; -- case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_LEFT: -- //m_ChosenOrientation = GAMESCOPE_PANEL_ORIENTATION_90; -- isRotated = true; -- break; -- case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_RIGHT: -- //m_ChosenOrientation = GAMESCOPE_PANEL_ORIENTATION_270; -- isRotated = true; -- break; -- case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_UPSIDEDOWN: -- //m_ChosenOrientation = GAMESCOPE_PANEL_ORIENTATION_180; -- break; -- default: -- wl_log.errorf("Invalid target orientation selected"); -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_NORMAL: -+ g_DesiredInternalOrientation = GAMESCOPE_PANEL_ORIENTATION_0; -+ break; -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_LEFT: -+ g_DesiredInternalOrientation = GAMESCOPE_PANEL_ORIENTATION_90; -+ isRotated = true; -+ break; -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_RIGHT: -+ g_DesiredInternalOrientation = GAMESCOPE_PANEL_ORIENTATION_270; -+ isRotated = true; -+ break; -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_UPSIDEDOWN: -+ g_DesiredInternalOrientation = GAMESCOPE_PANEL_ORIENTATION_180; -+ break; -+ default: -+ wl_log.errorf("Invalid target orientation selected"); - } - } - else if (target_type == GAMESCOPE_CONTROL_DISPLAY_TARGET_TYPE_EXTERNAL ) - { - switch (orientation) { -- case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_NORMAL: -- //m_ChosenOrientation = GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_0; -- break; -- case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_LEFT: -- //m_ChosenOrientation = GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_90; -- isRotated = true; -- break; -- case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_RIGHT: -- //m_ChosenOrientation = GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_270; -- isRotated = true; -- break; -- case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_UPSIDEDOWN: -- //m_ChosenOrientation = GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_180; -- break; -- default: -- wl_log.errorf("Invalid target orientation selected"); -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_NORMAL: -+ g_DesiredExternalOrientation = GAMESCOPE_PANEL_ORIENTATION_0; -+ break; -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_LEFT: -+ g_DesiredExternalOrientation = GAMESCOPE_PANEL_ORIENTATION_90; -+ isRotated = true; -+ break; -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_RIGHT: -+ g_DesiredExternalOrientation = GAMESCOPE_PANEL_ORIENTATION_270; -+ isRotated = true; -+ break; -+ case GAMESCOPE_CONTROL_DISPLAY_ROTATION_FLAG_UPSIDEDOWN: -+ g_DesiredExternalOrientation = GAMESCOPE_PANEL_ORIENTATION_180; -+ break; -+ default: -+ wl_log.errorf("Invalid target orientation selected"); - } - } - //drm_set_orientation(&g_DRM, isRotated); -@@ -2512,34 +2514,61 @@ const std::shared_ptr& wlserver_surface_swapchai - /* Handle the orientation of the touch inputs */ - static void apply_touchscreen_orientation(double *x, double *y ) - { -- double tx = 0; -- double ty = 0; -+ double tx = 0; -+ double ty = 0; - -- // Use internal screen always for orientation purposes. -- switch ( GetBackend()->GetConnector( gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL )->GetCurrentOrientation() ) -- { -- default: -- case GAMESCOPE_PANEL_ORIENTATION_AUTO: -- case GAMESCOPE_PANEL_ORIENTATION_0: -- tx = *x; -- ty = *y; -- break; -- case GAMESCOPE_PANEL_ORIENTATION_90: -- tx = 1.0 - *y; -- ty = *x; -- break; -- case GAMESCOPE_PANEL_ORIENTATION_180: -- tx = 1.0 - *x; -- ty = 1.0 - *y; -- break; -- case GAMESCOPE_PANEL_ORIENTATION_270: -- tx = *y; -- ty = 1.0 - *x; -- break; -- } -+ // Use internal screen always for orientation purposes. -+ if ( g_ForcedScreenType == gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL || g_ForcedScreenType == gamescope::GAMESCOPE_SCREEN_TYPE_EXTERNAL ) -+ { -+ switch ( g_DesiredInternalOrientation ) -+ { -+ default: -+ case GAMESCOPE_PANEL_ORIENTATION_AUTO: -+ case GAMESCOPE_PANEL_ORIENTATION_0: -+ tx = *x; -+ ty = *y; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_90: -+ tx = 1.0 - *y; -+ ty = *x; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_180: -+ tx = 1.0 - *x; -+ ty = 1.0 - *y; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_270: -+ tx = *y; -+ ty = 1.0 - *x; -+ break; -+ } -+ } -+ else if (g_ForcedScreenType == gamescope::GAMESCOPE_SCREEN_TYPE_AUTO) -+ { -+ switch (GetBackend()->GetConnector(gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL)->GetCurrentOrientation()) -+ { -+ default: -+ case GAMESCOPE_PANEL_ORIENTATION_AUTO: -+ case GAMESCOPE_PANEL_ORIENTATION_0: -+ tx = *x; -+ ty = *y; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_90: -+ tx = 1.0 - *y; -+ ty = *x; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_180: -+ tx = 1.0 - *x; -+ ty = 1.0 - *y; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_270: -+ tx = *y; -+ ty = 1.0 - *x; -+ break; -+ } -+ } - -- *x = tx; -- *y = ty; -+ *x = tx; -+ *y = ty; - } - - void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool bAlwaysWarpCursor ) --- -2.46.0 - - -From 3efb4df00c1e88219a3ff7c47af99b7217d1fe95 Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Sat, 18 May 2024 13:50:57 -0500 -Subject: [PATCH 09/21] Fix an arithmetic error - ---- - src/Backends/DRMBackend.cpp | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 663b1e2..eafb2f9 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -2031,9 +2031,9 @@ namespace gamescope - - void CDRMConnector::UpdateEffectiveOrientation( const drmModeModeInfo *pMode ) - { -- if ( this->GetScreenType() == ( GAMESCOPE_SCREEN_TYPE_INTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO ) -- || ( GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredExternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO -- && g_bExternalForced ) ) -+ if ( this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO -+ || GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredExternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO -+ && g_bExternalForced ) - { - m_ChosenOrientation = g_DesiredInternalOrientation; - } --- -2.46.0 - - -From dd53e4d18b122cae5383d77fc3f6e79084d8993f Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Sat, 18 May 2024 19:04:48 -0500 -Subject: [PATCH 10/21] Rework the touch gestures to be more smooth - ---- - src/wlserver.cpp | 89 +++++++++++++++++++++++++++++++++++++----------- - 1 file changed, 69 insertions(+), 20 deletions(-) - -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index ff534ad..593a074 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -80,6 +80,8 @@ using namespace std::literals; - - extern gamescope::ConVar cv_drm_debug_disable_explicit_sync; - -+bool pending_gesture = false; -+bool pending_osk = false; - //#define GAMESCOPE_SWAPCHAIN_DEBUG - gamescope::ConVar cv_touch_gestures( "enable_touch_gestures", false, "Enable/Disable the usage of touch gestures" ); - extern GamescopePanelOrientation g_DesiredInternalOrientation; -@@ -362,6 +364,39 @@ void wlserver_open_steam_menu( bool qam ) - XTestFakeKeyEvent(server->get_xdisplay(), XKeysymToKeycode( server->get_xdisplay(), XK_Control_L ), False, CurrentTime); - } - -+void wlserver_open_steam_osk(bool osk) -+{ -+ gamescope_xwayland_server_t *server = wlserver_get_xwayland_server( 0 ); -+ if (!server) -+ return; -+ -+ uint32_t osk_open = osk; -+ -+ if (osk_open) -+ { -+ const char *command = "xdg-open steam://open/keyboard?"; -+ int result = system(command); -+ if (result == 0) { -+ printf("Command executed successfully.\n"); -+ } else { -+ printf("Error executing command.\n"); -+ } -+ pending_osk = false; -+ } -+ else -+ { -+ const char *command = "xdg-open steam://close/keyboard?"; -+ int result = system(command); -+ if (result == 0) { -+ printf("Command executed successfully.\n"); -+ } else { -+ printf("Error executing command.\n"); -+ } -+ pending_osk = false; -+ } -+ -+} -+ - static void wlserver_handle_pointer_button(struct wl_listener *listener, void *data) - { - struct wlserver_pointer *pointer = wl_container_of( listener, pointer, button ); -@@ -2607,32 +2642,46 @@ void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool - if ( bAlwaysWarpCursor ) - wlserver_mousewarp( tx, ty, time, false ); - -- if (cv_touch_gestures) { -- bool start_gesture = false; -- -- // Round the x-coordinate to the nearest whole number -+ if ( cv_touch_gestures ) -+ { - uint32_t roundedCursorX = static_cast(std::round(tx)); -- // Grab 2% of the display to be used for the edge range -- uint32_t edge_range = static_cast(g_nOutputWidth * 0.02); -- -- // Determine if the gesture should start -- if (roundedCursorX <= edge_range || roundedCursorX >= g_nOutputWidth - edge_range) { -- start_gesture = true; -- } -- -- // Handle Home gesture -- if (start_gesture && roundedCursorX >= edge_range) { -+ uint32_t roundedCursorY = static_cast(std::round(ty)); -+ uint32_t edge_range_x = static_cast(g_nOutputWidth * 0.02); -+ uint32_t edge_range_y = static_cast(g_nOutputWidth * 0.02); -+ uint32_t gesture_limits_x = edge_range_x * 2; -+ uint32_t gesture_limits_y = edge_range_y * 2; -+ -+ // Left to Right and Right to Left -+ if (!pending_gesture && roundedCursorX >= 1 && roundedCursorX < edge_range_x || -+ !pending_gesture && roundedCursorX >= g_nOutputWidth - edge_range_x ) -+ pending_gesture = true; -+ -+ //left -+ if (pending_gesture && roundedCursorX >= edge_range_x && roundedCursorX < gesture_limits_x) { - wlserver_open_steam_menu(0); -- start_gesture = false; -+ pending_gesture = false; - } -- -- // Handle QAM gesture -- if (start_gesture && roundedCursorX >= g_nOutputWidth - edge_range && roundedCursorX <= g_nOutputWidth) { -+ //right -+ if (pending_gesture && roundedCursorX <= g_nOutputWidth - edge_range_x && roundedCursorX > g_nOutputWidth - gesture_limits_x) { - wlserver_open_steam_menu(1); -- start_gesture = false; -+ pending_gesture = false; -+ } -+ // Top to Bottom and Bottom to Top -+ if (!pending_gesture && roundedCursorY >= 1 && roundedCursorY < edge_range_y || -+ !pending_gesture && roundedCursorY >= g_nOutputHeight - edge_range_y ) -+ pending_gesture = true; -+ // Top -+ if (pending_gesture && roundedCursorY >= edge_range_y && roundedCursorY < gesture_limits_y) { -+ pending_gesture = false; -+ // Top to Bottom function to add -+ } -+ // Bottom -+ if (pending_gesture && !pending_osk && roundedCursorY <= g_nOutputWidth - edge_range_y && roundedCursorY > g_nOutputHeight - gesture_limits_y) { -+ pending_gesture = false; -+ pending_osk = true; -+ //wlserver_open_steam_osk(1); - } - } -- - } - else if ( eMode == gamescope::TouchClickModes::Disabled ) - { --- -2.46.0 - - -From 70d4ea8937e43752e1adb32ebbcdd3d1a0bcf23c Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Sun, 19 May 2024 08:55:28 -0500 -Subject: [PATCH 11/21] Fix a typo for --bypass-steam-resolution - ---- - src/steamcompmgr.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp -index 952a5f8..6fceb1d 100644 ---- a/src/steamcompmgr.cpp -+++ b/src/steamcompmgr.cpp -@@ -7379,7 +7379,7 @@ steamcompmgr_main(int argc, char **argv) - bForceWindowsFullscreen = true; - } else if (strcmp(opt_name, "hdr-enabled") == 0) { - cv_hdr_enabled = true; -- } else if (strcmp(opt_name, "bypass_steam_resolution") == 0) { -+ } else if (strcmp(opt_name, "bypass-steam-resolution") == 0) { - cv_bypass_steam_resolution = true; - } else if (strcmp(opt_name, "hdr-debug-force-support") == 0) { - g_bForceHDRSupportDebug = true; --- -2.46.0 - - -From be8e56d7f3bf251f75da24aa8a99d2e91aa60812 Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Sun, 19 May 2024 11:48:52 -0500 -Subject: [PATCH 12/21] Handle gesture cases better to prevent unexpected - behavior - ---- - src/wlserver.cpp | 63 +++++++++++++++++++++++++++++++++--------------- - 1 file changed, 43 insertions(+), 20 deletions(-) - -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 593a074..833140a 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -80,7 +80,8 @@ using namespace std::literals; - - extern gamescope::ConVar cv_drm_debug_disable_explicit_sync; - --bool pending_gesture = false; -+bool pending_gesture_x = false; -+bool pending_gesture_y = false; - bool pending_osk = false; - //#define GAMESCOPE_SWAPCHAIN_DEBUG - gamescope::ConVar cv_touch_gestures( "enable_touch_gestures", false, "Enable/Disable the usage of touch gestures" ); -@@ -2606,6 +2607,16 @@ static void apply_touchscreen_orientation(double *x, double *y ) - *y = ty; - } - -+void wlserver_gesture_flush() -+{ -+ pending_gesture_x = false; -+ pending_gesture_y = false; -+} -+ -+// Variables to track the direction of the touch motion -+uint32_t previous_tx = 0; -+uint32_t previous_ty = 0; -+ - void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool bAlwaysWarpCursor ) - { - assert( wlserver_is_lock_held() ); -@@ -2644,43 +2655,55 @@ void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool - - if ( cv_touch_gestures ) - { -- uint32_t roundedCursorX = static_cast(std::round(tx)); -- uint32_t roundedCursorY = static_cast(std::round(ty)); -- uint32_t edge_range_x = static_cast(g_nOutputWidth * 0.02); -- uint32_t edge_range_y = static_cast(g_nOutputWidth * 0.02); -+ uint32_t rounded_tx = static_cast(std::round(tx)); -+ uint32_t rounded_ty = static_cast(std::round(ty)); -+ uint32_t edge_range_x = static_cast(g_nOutputWidth * 0.05); -+ uint32_t edge_range_y = static_cast(g_nOutputWidth * 0.05); - uint32_t gesture_limits_x = edge_range_x * 2; - uint32_t gesture_limits_y = edge_range_y * 2; -+ uint32_t threshold_distance_x = gesture_limits_x; -+ uint32_t threshold_distance_y = gesture_limits_y; - - // Left to Right and Right to Left -- if (!pending_gesture && roundedCursorX >= 1 && roundedCursorX < edge_range_x || -- !pending_gesture && roundedCursorX >= g_nOutputWidth - edge_range_x ) -- pending_gesture = true; -+ if (!pending_gesture_x && ((rounded_tx >= 1 && rounded_tx < edge_range_x) || (rounded_tx >= g_nOutputWidth - edge_range_x))) { -+ // Check if the distance moved is greater than the threshold -+ if (rounded_tx - previous_tx > threshold_distance_x) { -+ pending_gesture_x = true; -+ } -+ } -+ -+ // Top to Bottom and Bottom to Top -+ if (!pending_gesture_y && ((rounded_ty >= 1 && rounded_ty < edge_range_y) || (rounded_ty >= g_nOutputHeight - edge_range_y))) { -+ // Check if the distance moved is greater than the threshold -+ if (rounded_ty - previous_ty > threshold_distance_y) { -+ pending_gesture_y = true; -+ } -+ } - - //left -- if (pending_gesture && roundedCursorX >= edge_range_x && roundedCursorX < gesture_limits_x) { -+ if (pending_gesture_x && previous_tx < rounded_tx && rounded_tx >= edge_range_x && rounded_tx < gesture_limits_x) { - wlserver_open_steam_menu(0); -- pending_gesture = false; -+ wlserver_gesture_flush(); - } - //right -- if (pending_gesture && roundedCursorX <= g_nOutputWidth - edge_range_x && roundedCursorX > g_nOutputWidth - gesture_limits_x) { -+ if (pending_gesture_x && previous_tx > rounded_tx && rounded_tx <= g_nOutputWidth - edge_range_x && rounded_tx > g_nOutputWidth - gesture_limits_x) { - wlserver_open_steam_menu(1); -- pending_gesture = false; -+ wlserver_gesture_flush(); - } -- // Top to Bottom and Bottom to Top -- if (!pending_gesture && roundedCursorY >= 1 && roundedCursorY < edge_range_y || -- !pending_gesture && roundedCursorY >= g_nOutputHeight - edge_range_y ) -- pending_gesture = true; -+ - // Top -- if (pending_gesture && roundedCursorY >= edge_range_y && roundedCursorY < gesture_limits_y) { -- pending_gesture = false; -+ if (pending_gesture_y && previous_ty < rounded_ty && rounded_ty >= edge_range_y && rounded_ty < gesture_limits_y) { -+ wlserver_gesture_flush(); - // Top to Bottom function to add - } - // Bottom -- if (pending_gesture && !pending_osk && roundedCursorY <= g_nOutputWidth - edge_range_y && roundedCursorY > g_nOutputHeight - gesture_limits_y) { -- pending_gesture = false; -+ if (pending_gesture_y && previous_ty > rounded_ty && !pending_osk && rounded_ty <= g_nOutputWidth - edge_range_y && rounded_ty > g_nOutputHeight - gesture_limits_y) { -+ wlserver_gesture_flush(); - pending_osk = true; - //wlserver_open_steam_osk(1); - } -+ previous_tx = rounded_tx; -+ previous_ty = rounded_ty; - } - } - else if ( eMode == gamescope::TouchClickModes::Disabled ) --- -2.46.0 - - -From b31ab55d57f0a8b746d4d0fa7939f6473bcad9a4 Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Sun, 19 May 2024 18:14:23 -0500 -Subject: [PATCH 13/21] Add references to drm_set_orientation() and g_drm in - wlserver for rotation gamescope-control - ---- - src/wlserver.cpp | 5 +++-- - src/wlserver.hpp | 3 ++- - 2 files changed, 5 insertions(+), 3 deletions(-) - -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 833140a..eb3936a 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -1125,8 +1125,9 @@ static void gamescope_control_rotate_display( struct wl_client *client, struct w - wl_log.errorf("Invalid target orientation selected"); - } - } -- //drm_set_orientation(&g_DRM, isRotated); -- //g_DRM.out_of_date = 2; -+ drm_set_orientation(&g_DRM, isRotated); -+ GetBackend()->DirtyState( true, true ); -+ - } - - static void gamescope_control_handle_destroy( struct wl_client *client, struct wl_resource *resource ) -diff --git a/src/wlserver.hpp b/src/wlserver.hpp -index 3304c18..0754ee5 100644 ---- a/src/wlserver.hpp -+++ b/src/wlserver.hpp -@@ -275,7 +275,8 @@ extern std::atomic g_bPendingTouchMovement; - extern gamescope::ConVar cv_touch_gestures; - - void wlserver_open_steam_menu( bool qam ); -- -+extern void drm_set_orientation( struct drm_t *drm, bool isRotated); -+extern drm_t g_DRM; - uint32_t wlserver_make_new_xwayland_server(); - void wlserver_destroy_xwayland_server(gamescope_xwayland_server_t *server); - --- -2.46.0 - - -From 8df476a6f7d41157e847ee7c3346c796e674d9fe Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Mon, 20 May 2024 07:02:52 -0500 -Subject: [PATCH 14/21] Fix an issue where forced panel type orientations - weren't being applied - ---- - src/Backends/DRMBackend.cpp | 15 ++++++++------- - 1 file changed, 8 insertions(+), 7 deletions(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index eafb2f9..1ea1221 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -2031,20 +2031,19 @@ namespace gamescope - - void CDRMConnector::UpdateEffectiveOrientation( const drmModeModeInfo *pMode ) - { -- if ( this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO -- || GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredExternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO -- && g_bExternalForced ) -- { -+ if ((this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO) || -+ (this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO && g_bExternalForced)) { -+ drm_log.infof("We are rotating the orientation of the internal or faked external display") - m_ChosenOrientation = g_DesiredInternalOrientation; -- } -- else if ( this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredExternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO ) -- { -+ } else if (this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredExternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO) { -+ drm_log.infof("We are rotating the orientation of an external display"); - m_ChosenOrientation = g_DesiredExternalOrientation; - } - else - { - if ( this->GetProperties().panel_orientation ) - { -+ drm_log.infof("We are using a kernel orientation quirk to rotate the display"); - switch ( this->GetProperties().panel_orientation->GetCurrentValue() ) - { - case DRM_MODE_PANEL_ORIENTATION_NORMAL: -@@ -2066,6 +2065,7 @@ namespace gamescope - - if ( this->GetScreenType() == gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL && pMode ) - { -+ drm_log.infof("We are using legacy code to rotate the display"); - // Auto-detect portait mode for internal displays - m_ChosenOrientation = pMode->hdisplay < pMode->vdisplay - ? GAMESCOPE_PANEL_ORIENTATION_270 -@@ -2073,6 +2073,7 @@ namespace gamescope - } - else - { -+ drm_log.infof("No orientation quirks have been applied"); - m_ChosenOrientation = GAMESCOPE_PANEL_ORIENTATION_0; - } - } --- -2.46.0 - - -From 5d7781dd8ca41f4d865aa336b4e925beeec9349e Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Mon, 20 May 2024 07:25:29 -0500 -Subject: [PATCH 15/21] add missing curly bracket... - ---- - src/Backends/DRMBackend.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 1ea1221..8d86df0 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -2033,7 +2033,7 @@ namespace gamescope - { - if ((this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO) || - (this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO && g_bExternalForced)) { -- drm_log.infof("We are rotating the orientation of the internal or faked external display") -+ drm_log.infof("We are rotating the orientation of the internal or faked external display"); - m_ChosenOrientation = g_DesiredInternalOrientation; - } else if (this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredExternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO) { - drm_log.infof("We are rotating the orientation of an external display"); --- -2.46.0 - - -From 0282352468bb6b99e75eb1c24cb3ed555886fff5 Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Mon, 20 May 2024 10:17:55 -0500 -Subject: [PATCH 16/21] Fix case where real externals were rotated with faked - external panels - ---- - src/Backends/DRMBackend.cpp | 21 +++++++---- - src/wlserver.cpp | 72 +++++++++++++++++++++++++------------ - 2 files changed, 64 insertions(+), 29 deletions(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 8d86df0..0008505 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -318,13 +318,20 @@ namespace gamescope - - GamescopeScreenType GetScreenType() const override - { -- if ( g_ForcedScreenType != GAMESCOPE_SCREEN_TYPE_AUTO ) -- return g_ForcedScreenType; -- - if ( m_pConnector->connector_type == DRM_MODE_CONNECTOR_eDP || - m_pConnector->connector_type == DRM_MODE_CONNECTOR_LVDS || - m_pConnector->connector_type == DRM_MODE_CONNECTOR_DSI ) -- return GAMESCOPE_SCREEN_TYPE_INTERNAL; -+ { -+ if ( g_bExternalForced ) -+ { -+ return g_ForcedScreenType; -+ } -+ else -+ { -+ return GAMESCOPE_SCREEN_TYPE_INTERNAL; -+ } -+ } -+ - - return GAMESCOPE_SCREEN_TYPE_EXTERNAL; - } -@@ -2031,11 +2038,11 @@ namespace gamescope - - void CDRMConnector::UpdateEffectiveOrientation( const drmModeModeInfo *pMode ) - { -- if ((this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO) || -- (this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO && g_bExternalForced)) { -+ if ( this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO ) { - drm_log.infof("We are rotating the orientation of the internal or faked external display"); - m_ChosenOrientation = g_DesiredInternalOrientation; -- } else if (this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredExternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO) { -+ } -+ else if (this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredExternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO) { - drm_log.infof("We are rotating the orientation of an external display"); - m_ChosenOrientation = g_DesiredExternalOrientation; - } -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index eb3936a..896ec04 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -2555,29 +2555,57 @@ static void apply_touchscreen_orientation(double *x, double *y ) - double ty = 0; - - // Use internal screen always for orientation purposes. -- if ( g_ForcedScreenType == gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL || g_ForcedScreenType == gamescope::GAMESCOPE_SCREEN_TYPE_EXTERNAL ) -+ if ( g_ForcedScreenType != gamescope::GAMESCOPE_SCREEN_TYPE_AUTO ) - { -- switch ( g_DesiredInternalOrientation ) -- { -- default: -- case GAMESCOPE_PANEL_ORIENTATION_AUTO: -- case GAMESCOPE_PANEL_ORIENTATION_0: -- tx = *x; -- ty = *y; -- break; -- case GAMESCOPE_PANEL_ORIENTATION_90: -- tx = 1.0 - *y; -- ty = *x; -- break; -- case GAMESCOPE_PANEL_ORIENTATION_180: -- tx = 1.0 - *x; -- ty = 1.0 - *y; -- break; -- case GAMESCOPE_PANEL_ORIENTATION_270: -- tx = *y; -- ty = 1.0 - *x; -- break; -- } -+ if ( g_ForcedScreenType == gamescope::GAMESCOPE_SCREEN_TYPE_EXTERNAL ) -+ { -+ switch (GetBackend()->GetConnector(gamescope::GAMESCOPE_SCREEN_TYPE_EXTERNAL)->GetCurrentOrientation()) -+ { -+ default: -+ case GAMESCOPE_PANEL_ORIENTATION_AUTO: -+ case GAMESCOPE_PANEL_ORIENTATION_0: -+ tx = *x; -+ ty = *y; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_90: -+ tx = 1.0 - *y; -+ ty = *x; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_180: -+ tx = 1.0 - *x; -+ ty = 1.0 - *y; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_270: -+ tx = *y; -+ ty = 1.0 - *x; -+ break; -+ } -+ } -+ else -+ { -+ switch (GetBackend()->GetConnector(gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL)->GetCurrentOrientation()) -+ { -+ default: -+ case GAMESCOPE_PANEL_ORIENTATION_AUTO: -+ case GAMESCOPE_PANEL_ORIENTATION_0: -+ tx = *x; -+ ty = *y; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_90: -+ tx = 1.0 - *y; -+ ty = *x; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_180: -+ tx = 1.0 - *x; -+ ty = 1.0 - *y; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_270: -+ tx = *y; -+ ty = 1.0 - *x; -+ break; -+ } -+ } -+ - } - else if (g_ForcedScreenType == gamescope::GAMESCOPE_SCREEN_TYPE_AUTO) - { --- -2.46.0 - - -From 276c1220de3542467b6d8e2218dfa1f2ccfc5b79 Mon Sep 17 00:00:00 2001 -From: Matthew Anderson -Date: Mon, 20 May 2024 16:30:47 -0500 -Subject: [PATCH 17/21] Add verbose panel logs and attempt to address all - orientation issues - ---- - src/Backends/DRMBackend.cpp | 18 ++++++++++++++-- - src/wlserver.cpp | 41 ++++++++++++++++++++----------------- - src/wlserver.hpp | 1 + - 3 files changed, 39 insertions(+), 21 deletions(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 0008505..bd5ffec 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -56,6 +56,7 @@ static constexpr bool k_bUseCursorPlane = false; - - extern int g_nPreferredOutputWidth; - extern int g_nPreferredOutputHeight; -+bool panelTypeChanged = false; - - gamescope::ConVar cv_drm_single_plane_optimizations( "drm_single_plane_optimizations", true, "Whether or not to enable optimizations for single plane usage." ); - -@@ -324,6 +325,7 @@ namespace gamescope - { - if ( g_bExternalForced ) - { -+ panelTypeChanged = true; - return g_ForcedScreenType; - } - else -@@ -332,7 +334,7 @@ namespace gamescope - } - } - -- -+ panelTypeChanged = false; - return GAMESCOPE_SCREEN_TYPE_EXTERNAL; - } - -@@ -2038,7 +2040,19 @@ namespace gamescope - - void CDRMConnector::UpdateEffectiveOrientation( const drmModeModeInfo *pMode ) - { -- if ( this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO ) { -+ -+ if ( this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_EXTERNAL && panelTypeChanged ) -+ drm_log.infof("Display is internal faked as external"); -+ if ( this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL && !panelTypeChanged ) -+ drm_log.infof("Display is real internal"); -+ if (panelTypeChanged){ -+ drm_log.infof("Panel type was changed"); -+ } -+ -+ if (( this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO ) || -+ ( this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO -+ && panelTypeChanged)) { -+ - drm_log.infof("We are rotating the orientation of the internal or faked external display"); - m_ChosenOrientation = g_DesiredInternalOrientation; - } -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 896ec04..e5bb2e2 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -2559,26 +2559,29 @@ static void apply_touchscreen_orientation(double *x, double *y ) - { - if ( g_ForcedScreenType == gamescope::GAMESCOPE_SCREEN_TYPE_EXTERNAL ) - { -- switch (GetBackend()->GetConnector(gamescope::GAMESCOPE_SCREEN_TYPE_EXTERNAL)->GetCurrentOrientation()) -+ if(panelTypeChanged) - { -- default: -- case GAMESCOPE_PANEL_ORIENTATION_AUTO: -- case GAMESCOPE_PANEL_ORIENTATION_0: -- tx = *x; -- ty = *y; -- break; -- case GAMESCOPE_PANEL_ORIENTATION_90: -- tx = 1.0 - *y; -- ty = *x; -- break; -- case GAMESCOPE_PANEL_ORIENTATION_180: -- tx = 1.0 - *x; -- ty = 1.0 - *y; -- break; -- case GAMESCOPE_PANEL_ORIENTATION_270: -- tx = *y; -- ty = 1.0 - *x; -- break; -+ switch (GetBackend()->GetConnector(gamescope::GAMESCOPE_SCREEN_TYPE_EXTERNAL)->GetCurrentOrientation()) -+ { -+ default: -+ case GAMESCOPE_PANEL_ORIENTATION_AUTO: -+ case GAMESCOPE_PANEL_ORIENTATION_0: -+ tx = *x; -+ ty = *y; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_90: -+ tx = 1.0 - *y; -+ ty = *x; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_180: -+ tx = 1.0 - *x; -+ ty = 1.0 - *y; -+ break; -+ case GAMESCOPE_PANEL_ORIENTATION_270: -+ tx = *y; -+ ty = 1.0 - *x; -+ break; -+ } - } - } - else -diff --git a/src/wlserver.hpp b/src/wlserver.hpp -index 0754ee5..bdf3b0b 100644 ---- a/src/wlserver.hpp -+++ b/src/wlserver.hpp -@@ -277,6 +277,7 @@ extern gamescope::ConVar cv_touch_gestures; - void wlserver_open_steam_menu( bool qam ); - extern void drm_set_orientation( struct drm_t *drm, bool isRotated); - extern drm_t g_DRM; -+extern bool panelTypeChanged; - uint32_t wlserver_make_new_xwayland_server(); - void wlserver_destroy_xwayland_server(gamescope_xwayland_server_t *server); - --- -2.46.0 - - -From 11664b820a9065b597d8655e53ade8dd9a29c4bc Mon Sep 17 00:00:00 2001 -From: Bouke Sybren Haarsma -Date: Tue, 28 May 2024 21:56:47 +0200 -Subject: [PATCH 18/21] add closing bracket - ---- - src/main.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/main.cpp b/src/main.cpp -index 675020f..315b718 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -465,6 +465,7 @@ static enum gamescope::GamescopeBackend parse_backend_name(const char *str) - fprintf( stderr, "gamescope: invalid value for --backend\n" ); - exit(1); - } -+} - - std::vector g_customRefreshRates; - // eg: 60,60,90,110-120 --- -2.46.0 - - -From 1e5c439eb0b1e809a3ec6414e8d0536db22c9601 Mon Sep 17 00:00:00 2001 -From: Bouke Sybren Haarsma -Date: Wed, 3 Jan 2024 17:03:04 +0100 -Subject: [PATCH 19/21] remove hacky texture - -This will use more hardware planes, causing some devices to composite yeilding lower framerates ---- - src/steamcompmgr.cpp | 62 ++++++++++++-------------------------------- - 1 file changed, 17 insertions(+), 45 deletions(-) - -diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp -index 6fceb1d..4dbbdaf 100644 ---- a/src/steamcompmgr.cpp -+++ b/src/steamcompmgr.cpp -@@ -1620,7 +1620,7 @@ bool MouseCursor::getTexture() - { - pixels[i * image->width + j] = image->pixels[i * image->width + j]; - } -- } -+ } - std::vector resizeBuffer( nDesiredWidth * nDesiredHeight ); - stbir_resize_uint8_srgb( (unsigned char *)pixels.data(), image->width, image->height, 0, - (unsigned char *)resizeBuffer.data(), nDesiredWidth, nDesiredHeight, 0, -@@ -2306,7 +2306,7 @@ paint_all(bool async) - } - } - } -- -+ - int nOldLayerCount = frameInfo.layerCount; - - uint32_t flags = 0; -@@ -2314,7 +2314,7 @@ paint_all(bool async) - flags |= PaintWindowFlag::BasePlane; - paint_window(w, w, &frameInfo, global_focus.cursor, flags); - update_touch_scaling( &frameInfo ); -- -+ - // paint UI unless it's fully hidden, which it communicates to us through opacity=0 - // we paint it to extract scaling coefficients above, then remove the layer if one was added - if ( w->opacity == TRANSLUCENT && bHasVideoUnderlay && nOldLayerCount < frameInfo.layerCount ) -@@ -2327,7 +2327,7 @@ paint_all(bool async) - float opacityScale = g_bPendingFade - ? 0.0f - : ((currentTime - fadeOutStartTime) / (float)g_FadeOutDuration); -- -+ - paint_cached_base_layer(g_HeldCommits[HELD_COMMIT_FADE], g_CachedPlanes[HELD_COMMIT_FADE], &frameInfo, 1.0f - opacityScale, false); - paint_window(w, w, &frameInfo, global_focus.cursor, PaintWindowFlag::BasePlane | PaintWindowFlag::FadeTarget | PaintWindowFlag::DrawBorders, opacityScale, override); - } -@@ -2401,34 +2401,6 @@ paint_all(bool async) - if ( overlay == global_focus.inputFocusWindow ) - update_touch_scaling( &frameInfo ); - } -- else if ( !GetBackend()->UsesVulkanSwapchain() && GetBackend()->IsSessionBased() ) -- { -- auto tex = vulkan_get_hacky_blank_texture(); -- if ( tex != nullptr ) -- { -- // HACK! HACK HACK HACK -- // To avoid stutter when toggling the overlay on -- int curLayer = frameInfo.layerCount++; -- -- FrameInfo_t::Layer_t *layer = &frameInfo.layers[ curLayer ]; -- -- -- layer->scale.x = g_nOutputWidth == tex->width() ? 1.0f : tex->width() / (float)g_nOutputWidth; -- layer->scale.y = g_nOutputHeight == tex->height() ? 1.0f : tex->height() / (float)g_nOutputHeight; -- layer->offset.x = 0.0f; -- layer->offset.y = 0.0f; -- layer->opacity = 1.0f; // BLAH -- layer->zpos = g_zposOverlay; -- layer->applyColorMgmt = g_ColorMgmt.pending.enabled; -- -- layer->colorspace = GAMESCOPE_APP_TEXTURE_COLORSPACE_LINEAR; -- layer->ctm = nullptr; -- layer->tex = tex; -- -- layer->filter = GamescopeUpscaleFilter::NEAREST; -- layer->blackBorder = true; -- } -- } - - if (notification) - { -@@ -3014,7 +2986,7 @@ win_maybe_a_dropdown( steamcompmgr_win_t *w ) - // - // TODO: Come back to me for original Age of Empires HD launcher. - // Does that use it? It wants blending! -- // -+ // - // Only do this if we have CONTROLPARENT right now. Some other apps, such as the - // Street Fighter V (310950) Splash Screen also use LAYERED and TOOLWINDOW, and we don't - // want that to be overlayed. -@@ -3029,12 +3001,12 @@ win_maybe_a_dropdown( steamcompmgr_win_t *w ) - - // Josh: - // The logic here is as follows. The window will be treated as a dropdown if: -- // -+ // - // If this window has a fixed position on the screen + static gravity: - // - If the window has either skipPage or skipTaskbar - // - If the window isn't a dialog, always treat it as a dropdown, as it's - // probably meant to be some form of popup. -- // - If the window is a dialog -+ // - If the window is a dialog - // - If the window has transient for, disregard it, as it is trying to redirecting us elsewhere - // ie. a settings menu dialog popup or something. - // - If the window has both skip taskbar and pager, treat it as a dialog. -@@ -3126,7 +3098,7 @@ static bool is_good_override_candidate( steamcompmgr_win_t *override, steamcompm - return false; - - return override != focus && override->GetGeometry().nX >= 0 && override->GetGeometry().nY >= 0; --} -+} - - static bool - pick_primary_focus_and_override(focus_t *out, Window focusControlWindow, const std::vector& vecPossibleFocusWindows, bool globalFocus, const std::vector& ctxFocusControlAppIDs) -@@ -3267,7 +3239,7 @@ found:; - - if ( focus ) - { -- if ( window_has_commits( focus ) ) -+ if ( window_has_commits( focus ) ) - out->focusWindow = focus; - else - focus->outdatedInteractiveFocus = true; -@@ -3310,9 +3282,9 @@ found:; - override_focus = fake_override; - goto found2; - } -- } -+ } - } -- -+ - found2:; - resolveTransientOverrides( true ); - } -@@ -4574,7 +4546,7 @@ finish_destroy_win(xwayland_ctx_t *ctx, Window id, bool gone) - { - if (gone) - finish_unmap_win (ctx, w); -- -+ - { - std::unique_lock lock( ctx->list_mutex ); - *prev = w->xwayland().next; -@@ -4631,7 +4603,7 @@ destroy_win(xwayland_ctx_t *ctx, Window id, bool gone, bool fade) - global_focus.overrideWindow = nullptr; - if (x11_win(global_focus.fadeWindow) == id && gone) - global_focus.fadeWindow = nullptr; -- -+ - MakeFocusDirty(); - - finish_destroy_win(ctx, id, gone); -@@ -5243,7 +5215,7 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) - { - get_win_type(ctx, w); - MakeFocusDirty(); -- } -+ } - } - if (ev->atom == ctx->atoms.sizeHintsAtom) - { -@@ -6153,7 +6125,7 @@ void handle_done_commits_xdg( bool vblank, uint64_t vblank_idx ) - commits_before_their_time.push_back( entry ); - continue; - } -- -+ - if (!entry.earliestPresentTime) - { - entry.earliestPresentTime = next_refresh_time; -@@ -7143,7 +7115,7 @@ void update_mode_atoms(xwayland_ctx_t *root_ctx, bool* needs_flush = nullptr) - } - XChangeProperty(root_ctx->dpy, root_ctx->root, root_ctx->atoms.gamescopeDisplayModeListExternal, XA_STRING, 8, PropModeReplace, - (unsigned char *)modes, strlen(modes) + 1 ); -- -+ - uint32_t one = 1; - XChangeProperty(root_ctx->dpy, root_ctx->root, root_ctx->atoms.gamescopeDisplayIsExternal, XA_CARDINAL, 32, PropModeReplace, - (unsigned char *)&one, 1 ); -@@ -7975,7 +7947,7 @@ void steamcompmgr_send_frame_done_to_focus_window() - { - wlserver_lock(); - wlserver_send_frame_done( global_focus.focusWindow->xwayland().surface.main_surface , &now ); -- wlserver_unlock(); -+ wlserver_unlock(); - } - } - --- -2.46.0 - - -From 672fd75c5ac7bb1226c418270fa134ad6fe07b30 Mon Sep 17 00:00:00 2001 -From: Kyle Gospodnetich -Date: Tue, 2 Jul 2024 14:12:47 -0700 -Subject: [PATCH 20/21] Only change refresh rates on internal displays - ---- - src/Backends/DRMBackend.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index bd5ffec..03b9b4c 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -2162,7 +2162,7 @@ namespace gamescope - ( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Jupiter"sv ) || - ( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Galileo"sv ); - -- if ( g_customRefreshRates.size() > 0 ) { -+ if ( g_customRefreshRates.size() > 0 && GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL ) { - m_Mutable.ValidDynamicRefreshRates = std::span(g_customRefreshRates); - return; - } --- -2.46.0 - - -From 0cada655064b2bb2c0b5540f4c249a3c6a1254ed Mon Sep 17 00:00:00 2001 -From: Kyle Gospodnetich -Date: Tue, 2 Jul 2024 15:14:23 -0700 -Subject: [PATCH 21/21] Also check g_bExternalForced - ---- - src/Backends/DRMBackend.cpp | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 03b9b4c..24e81b1 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -2162,9 +2162,9 @@ namespace gamescope - ( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Jupiter"sv ) || - ( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Galileo"sv ); - -- if ( g_customRefreshRates.size() > 0 && GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL ) { -- m_Mutable.ValidDynamicRefreshRates = std::span(g_customRefreshRates); -- return; -+ if ( g_customRefreshRates.size() > 0 && ( GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL || g_bExternalForced ) ) { -+ m_Mutable.ValidDynamicRefreshRates = std::span(g_customRefreshRates); -+ return; - } - if ( bSteamDeckDisplay ) - { --- -2.46.0 diff --git a/anda/games/gamescope/disable-steam-touch-click-atom.patch b/anda/games/gamescope/disable-steam-touch-click-atom.patch deleted file mode 100644 index cb10172b28..0000000000 --- a/anda/games/gamescope/disable-steam-touch-click-atom.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff --git a/src/main.cpp b/src/main.cpp -index 119e043..6c46d97 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -148,6 +148,8 @@ const struct option *gamescope_options = (struct option[]){ - { "reshade-effect", required_argument, nullptr, 0 }, - { "reshade-technique-idx", required_argument, nullptr, 0 }, - -+ { "disable-touch-click", no_argument, nullptr, 0 }, -+ - // Steam Deck options - { "mura-map", required_argument, nullptr, 0 }, - -@@ -193,6 +195,7 @@ const char usage[] = - " -e, --steam enable Steam integration\n" - " --bypass-steam-resolution bypass Steam's default 720p/800p default resolution\n" - " --touch-gestures enable touch gestures for Steam menus\n" -+ " --disable-touch-click disable touchscreen tap acting as a click\n" - " --xwayland-count create N xwayland servers\n" - " --prefer-vk-device prefer Vulkan device for compositing (ex: 1002:7300)\n" - " --force-orientation rotate the internal display (left, right, normal, upsidedown)\n" -diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp -index 92bf617..d7498e5 100644 ---- a/src/steamcompmgr.cpp -+++ b/src/steamcompmgr.cpp -@@ -347,6 +347,7 @@ bool g_bHDRItmEnable = false; - int g_nCurrentRefreshRate_CachedValue = 0; - gamescope::ConVar cv_bypass_steam_resolution{ "bypass_steam_resolution", false, "Workaround the 720p/800p limits Steam uses for games" }; - -+gamescope::ConVar cv_disable_touch_click{ "disable_touch_click", false, "Prevents touchscreen taps acting as clicks" }; - - static void - update_color_mgmt() -@@ -5128,7 +5129,7 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) - MakeFocusDirty(); - } - } -- if (ev->atom == ctx->atoms.steamTouchClickModeAtom ) -+ if (ev->atom == ctx->atoms.steamTouchClickModeAtom && !cv_disable_touch_click) - { - gamescope::cv_touch_click_mode = (gamescope::TouchClickMode) get_prop(ctx, ctx->root, ctx->atoms.steamTouchClickModeAtom, 0u ); - } -@@ -7301,6 +7302,8 @@ steamcompmgr_main(int argc, char **argv) - g_reshade_technique_idx = atoi(optarg); - } else if (strcmp(opt_name, "mura-map") == 0) { - set_mura_overlay(optarg); -+ } else if (strcmp(opt_name, "disable-touch-click") == 0) { -+ cv_disable_touch_click = true; - } - break; - case '?': \ No newline at end of file diff --git a/anda/games/gamescope/gamescope-legacy.sh b/anda/games/gamescope/gamescope-legacy.sh deleted file mode 100644 index 34f2e1573e..0000000000 --- a/anda/games/gamescope/gamescope-legacy.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# Wrapper script to run Gamescope with legacy options for older GPUs - -gamescope_path="/usr/bin/gamescope" - - -# check if $BACKEND is already defined -# todo: Probably want to patch gamescope-session-plus for this instead meow - -# For compatibility, let's add the argument for nested backends too - -LEGACY_BACKEND_ARGS="" -NESTED_BACKEND_ARGS="" -if [ -z "$BACKEND" ]; then - LEGACY_BACKEND_ARGS="--backend=sdl" - NESTED_BACKEND_ARGS="--backend=sdl" -else - # Only added for nested sessions, as $BACKEND should be defined only for legacy - NESTED_BACKEND_ARGS="--backend=$BACKEND" -fi - - -if [ -z "$DISPLAY" ]; then - $gamescope_path $LEGACY_BACKEND_ARGS $@ -else - $gamescope_path $NESTED_BACKEND_ARGS $@ -fi - diff --git a/anda/games/gamescope/revert-299bc34.patch b/anda/games/gamescope/revert-299bc34.patch deleted file mode 100644 index 550870fe82..0000000000 --- a/anda/games/gamescope/revert-299bc34.patch +++ /dev/null @@ -1,65 +0,0 @@ -diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp -index d7498e5..d1800a8 100644 ---- a/src/steamcompmgr.cpp -+++ b/src/steamcompmgr.cpp -@@ -3271,7 +3271,7 @@ found:; - if ( window_has_commits( focus ) ) - out->focusWindow = focus; - else -- focus->outdatedInteractiveFocus = true; -+ out->outdatedInteractiveFocus = true; - - // Always update X's idea of focus, but still dirty - // the it being outdated so we can resolve that globally later. -@@ -5995,28 +5995,37 @@ bool handle_done_commit( steamcompmgr_win_t *w, xwayland_ctx_t *ctx, uint64_t co - // Window just got a new available commit, determine if that's worth a repaint - - // If this is an overlay that we're presenting, repaint -- if ( w == global_focus.overlayWindow && w->opacity != TRANSLUCENT ) -+ if ( gameFocused ) - { -- hasRepaintNonBasePlane = true; -- } -+ if ( w == global_focus.overlayWindow && w->opacity != TRANSLUCENT ) -+ { -+ hasRepaintNonBasePlane = true; -+ } - -- if ( w == global_focus.notificationWindow && w->opacity != TRANSLUCENT ) -- { -- hasRepaintNonBasePlane = true; -+ if ( w == global_focus.notificationWindow && w->opacity != TRANSLUCENT ) -+ { -+ hasRepaintNonBasePlane = true; -+ } - } -- -- // If this is an external overlay, repaint -- if ( w == global_focus.externalOverlayWindow && w->opacity != TRANSLUCENT ) -+ if ( ctx ) - { -- hasRepaintNonBasePlane = true; -+ if ( ctx->focus.outdatedInteractiveFocus ) -+ { -+ MakeFocusDirty(); -+ ctx->focus.outdatedInteractiveFocus = false; -+ } - } -- -- if ( w->outdatedInteractiveFocus ) -+ if ( global_focus.outdatedInteractiveFocus ) - { - MakeFocusDirty(); -- w->outdatedInteractiveFocus = false; -- } -+ global_focus.outdatedInteractiveFocus = false; - -+ // If this is an external overlay, repaint -+ if ( w == global_focus.externalOverlayWindow && w->opacity != TRANSLUCENT ) -+ { -+ hasRepaintNonBasePlane = true; -+ } -+ } - // If this is the main plane, repaint - if ( w == global_focus.focusWindow && !w->isSteamStreamingClient ) - { diff --git a/anda/games/gamescope/stb.pc b/anda/games/gamescope/stb.pc deleted file mode 100644 index 71d2f8a703..0000000000 --- a/anda/games/gamescope/stb.pc +++ /dev/null @@ -1,7 +0,0 @@ -prefix=/usr -includedir=${prefix}/include/stb - -Name: stb -Description: Single-file public domain libraries for C/C++ -Version: 0.1.0 -Cflags: -I${includedir} \ No newline at end of file diff --git a/anda/games/gamescope/update-patch.sh b/anda/games/gamescope/update-patch.sh deleted file mode 100755 index 9238e8c5ce..0000000000 --- a/anda/games/gamescope/update-patch.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -curl -o ./1483.patch https://patch-diff.githubusercontent.com/raw/ValveSoftware/gamescope/pull/1483.patch \ No newline at end of file diff --git a/anda/games/gamescope/update.rhai b/anda/games/gamescope/update.rhai deleted file mode 100644 index 74a18ee692..0000000000 --- a/anda/games/gamescope/update.rhai +++ /dev/null @@ -1 +0,0 @@ -rpm.global("gamescope_tag", gh_tag("ValveSoftware/gamescope")); diff --git a/anda/games/gamescope/v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch b/anda/games/gamescope/v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch deleted file mode 100644 index ad97a5fcc0..0000000000 --- a/anda/games/gamescope/v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 35e001dc59a44227d670c667a85a6ef5472eee58 Mon Sep 17 00:00:00 2001 -From: antheas -Date: Sat, 20 Jul 2024 01:23:19 +0300 -Subject: [PATCH v2] always send ctrl+1/2 to steam's wayland session - ---- - src/wlserver.cpp | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 1852be9..7de737d 100644 ---- a/src/wlserver.cpp -+++ b/src/wlserver.cpp -@@ -369,7 +369,12 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data) - keysym == XKB_KEY_XF86AudioLowerVolume || - keysym == XKB_KEY_XF86AudioRaiseVolume || - keysym == XKB_KEY_XF86PowerOff; -- if ( ( event->state == WL_KEYBOARD_KEY_STATE_PRESSED || event->state == WL_KEYBOARD_KEY_STATE_RELEASED ) && forbidden_key ) -+ -+ // Check for steam keys (ctrl + 1/2) -+ bool is_steamshortcut = (keyboard->wlr->modifiers.depressed & WLR_MODIFIER_CTRL) && (keysym == XKB_KEY_1 || -+ keysym == XKB_KEY_2); -+ -+ if ( ( event->state == WL_KEYBOARD_KEY_STATE_PRESSED || event->state == WL_KEYBOARD_KEY_STATE_RELEASED ) && (forbidden_key || is_steamshortcut) ) - { - // Always send volume+/- to root server only, to avoid it reaching the game. - struct wlr_surface *old_kb_surf = wlserver.kb_focus_surface; -@@ -378,6 +383,9 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data) - { - wlserver_keyboardfocus( new_kb_surf, false ); - wlr_seat_set_keyboard( wlserver.wlr.seat, keyboard->wlr ); -+ // Send modifiers to steam for it to work -+ if (is_steamshortcut) -+ wlr_seat_keyboard_notify_modifiers(wlserver.wlr.seat, &keyboard->wlr->modifiers); - wlr_seat_keyboard_notify_key( wlserver.wlr.seat, event->time_msec, event->keycode, event->state ); - wlserver_keyboardfocus( old_kb_surf, false ); - return; --- -2.45.2 diff --git a/anda/games/heroic-games-launcher/afterPack.diff b/anda/games/heroic-games-launcher/afterPack.diff new file mode 100644 index 0000000000..31ec723967 --- /dev/null +++ b/anda/games/heroic-games-launcher/afterPack.diff @@ -0,0 +1,7 @@ +--- a/electron-builder.yml ++++ b/electron-builder.yml +@@ -3,3 +3,3 @@ appId: com.heroicgameslauncher.hgl + productName: Heroic +-afterSign: sign/afterSign.js ++afterPack: sign/afterSign.js + files: diff --git a/anda/games/heroic-games-launcher/anda.hcl b/anda/games/heroic-games-launcher/anda.hcl new file mode 100644 index 0000000000..100fed8677 --- /dev/null +++ b/anda/games/heroic-games-launcher/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "heroic-games-launcher.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/games/heroic-games-launcher/heroic-games-launcher.spec b/anda/games/heroic-games-launcher/heroic-games-launcher.spec new file mode 100644 index 0000000000..10f86af09f --- /dev/null +++ b/anda/games/heroic-games-launcher/heroic-games-launcher.spec @@ -0,0 +1,92 @@ +%global debug_package %{nil} +%global __requires_exclude libffmpeg.so +%global __provides_exclude_from %{_datadir}/heroic/.*\\.so +%global __provides_exclude_from %{_datadir}/heroic/.*\\.so.1 +%define _build_id_links none +%global git_name HeroicGamesLauncher + +Name: heroic-games-launcher +Version: 2.15.2 +Release: 1%{?dist} +Summary: A games launcher for GOG, Amazon, and Epic Games +License: GPL-3.0-only AND MIT AND BSD-3-Clause +URL: https://heroicgameslauncher.com +Source0: https://github.com/Heroic-Games-Launcher/%{git_name}/archive/refs/tags/v%{version}.tar.gz +Source1: https://raw.githubusercontent.com/Heroic-Games-Launcher/%{git_name}/refs/heads/main/flatpak/com.heroicgameslauncher.hgl.desktop +### Makes it actually sign the package, though will say it was skipped first. +Patch0: afterPack.diff +BuildRequires: bsdtar +BuildRequires: desktop-file-utils +### Electron builder builds some things with GCC(++) and Make +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: libxcrypt-compat +BuildRequires: make +BuildRequires: nodejs +BuildRequires: pnpm +BuildRequires: python3 +Requires: alsa-lib +Requires: gtk3 +Requires: hicolor-icon-theme +Requires: nss +Requires: python3 +Requires: which +Recommends: gamemode +Recommends: mangohud +Recommends: umu-launcher +Packager: ShinyGil + +%description +Heroic is a Free and Open Source Epic, GOG, and Amazon Prime Games launcher for Linux, Windows, and macOS. + +%prep +%autosetup -n %{git_name}-%{version} -p1 +sed -i 's/Exec=.*%u/Exec=\/usr\/share\/heroic\/heroic %u/g' %{SOURCE1} +sed -i 's/Icon=.*/Icon=heroic/g' %{SOURCE1} + +%build +pnpm install +pnpm run download-helper-binaries +### RPM doesn't work and it needs a package format to generate icons, AppImage isn't a good option for packaging because it will try to self update +pnpm dist:linux pacman + +%install +mkdir -p %{buildroot}%{_datadir}/heroic +mv dist/linux-unpacked/* %{buildroot}%{_datadir}/heroic +mkdir -p %{buildroot}%{_bindir} +ln -sr %{_datadir}/heroic/heroic %{buildroot}%{_bindir}/%{name} +install -Dm644 public/icon.png %{buildroot}%{_datadir}/pixmaps/heroic.png +install -Dm644 dist/.icon-set/icon_16x16.png %{buildroot}%{_iconsdir}/hicolor/16x16/heroic.png +install -Dm644 dist/.icon-set/icon_32x32.png %{buildroot}%{_iconsdir}/hicolor/32x32/heroic.png +install -Dm644 dist/.icon-set/icon_48x48.png %{buildroot}%{_iconsdir}/hicolor/48x48/heroic.png +install -Dm644 dist/.icon-set/icon_64x64.png %{buildroot}%{_iconsdir}/hicolor/64x64/heroic.png +install -Dm644 dist/.icon-set/icon_128x128.png %{buildroot}%{_iconsdir}/hicolor/128x128/heroic.png +install -Dm644 dist/.icon-set/icon_256x256.png %{buildroot}%{_iconsdir}/hicolor/256x256/heroic.png +install -Dm644 dist/.icon-set/icon_512x512.png %{buildroot}%{_iconsdir}/hicolor/512x512/heroic.png +install -Dm644 dist/.icon-set/icon_1024.png %{buildroot}%{_iconsdir}/hicolor/1024x1024/heroic.png +install -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/applications/heroic.desktop + +%check +desktop-file-validate %{buildroot}%{_datadir}/applications/heroic.desktop + +%files +%doc README.md +%doc CODE_OF_CONDUCT.md +%license COPYING +%_datadir/heroic +%_datadir/pixmaps/heroic.png +%_bindir/heroic-games-launcher +%_datadir/applications/heroic.desktop +%_iconsdir/hicolor/16x16/heroic.png +%_iconsdir/hicolor/32x32/heroic.png +%_iconsdir/hicolor/48x48/heroic.png +%_iconsdir/hicolor/64x64/heroic.png +%_iconsdir/hicolor/128x128/heroic.png +%_iconsdir/hicolor/256x256/heroic.png +%_iconsdir/hicolor/512x512/heroic.png +%_iconsdir/hicolor/1024x1024/heroic.png + +%changelog +* Thu Jan 30 2025 ShinyGil +- Initial package + diff --git a/anda/games/heroic-games-launcher/update.rhai b/anda/games/heroic-games-launcher/update.rhai new file mode 100644 index 0000000000..9e0e58fde7 --- /dev/null +++ b/anda/games/heroic-games-launcher/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("Heroic-Games-Launcher/HeroicGamesLauncher")); diff --git a/anda/games/inputplumber/inputplumber.spec b/anda/games/inputplumber/inputplumber.spec index 5a8540be57..1c22988d36 100644 --- a/anda/games/inputplumber/inputplumber.spec +++ b/anda/games/inputplumber/inputplumber.spec @@ -1,5 +1,5 @@ Name: inputplumber -Version: 0.36.5 +Version: 0.46.1 Release: 1%?dist Summary: Open source input router and remapper daemon for Linux License: GPL-3.0-or-later @@ -42,6 +42,7 @@ keyboards) and translate their input to a variety of virtual device formats. %license LICENSE %_bindir/inputplumber %_unitdir/inputplumber.service +%_unitdir/inputplumber-suspend.service %_udevhwdbdir/59-inputplumber.hwdb %_datadir/dbus-1/system.d/org.shadowblip.InputPlumber.conf %_datadir/inputplumber/ diff --git a/anda/games/joycond/joycond.spec b/anda/games/joycond/joycond.spec index 55ee73d98c..41bce51cca 100644 --- a/anda/games/joycond/joycond.spec +++ b/anda/games/joycond/joycond.spec @@ -1,11 +1,15 @@ +%global commit 9d1f5098b716681d087cca695ad714218a18d4e8 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date %(date '+%Y%m%d') Name: joycond -Version: 0.1.0 +Version: %{commit_date}.git~%{shortcommit} Release: 1%?dist Summary: Userspace daemon to combine joy-cons from the hid-nintendo kernel driver License: GPL-3.0-or-later URL: https://github.com/DanielOgorchock/joycond -Source0: %url/archive/refs/tags/v%version.tar.gz -Packager: madonuko +Source0: %url/archive/%{commit}/%{commit}.tar.gz#/%{name}-%{commit_date}.git~%{shortcommit}.tar.gz +Patch0: https://github.com/terrapkg/pkg-joycond/raw/refs/heads/main/0001-Revert-virt_ctrlr_passthrough-send-uevent-change-eve.patch +Packager: Cappy Ishihara BuildRequires: libevdev-devel libudev-devel BuildRequires: cmake make systemd-rpm-macros gcc-c++ @@ -14,16 +18,14 @@ joycond is a linux daemon which uses the evdev devices provided by hid-nintendo (formerly known as hid-joycon) to implement joycon pairing. %prep -%autosetup +%autosetup -n %{name}-%{commit} -p1 %build %cmake . %cmake_build %install -cd redhat-linux-build/ -cp joycond .. -%make_install +%cmake_install mkdir -p %buildroot%_unitdir %buildroot%_prefix mv %buildroot%_sysconfdir/systemd/system/joycond.service %buildroot%_unitdir/joycond.service diff --git a/anda/games/minecraft-java/minecraft-java.spec b/anda/games/minecraft-java/minecraft-java.spec index d87c14304b..f558081007 100644 --- a/anda/games/minecraft-java/minecraft-java.spec +++ b/anda/games/minecraft-java/minecraft-java.spec @@ -1,21 +1,23 @@ %global debug_package %{nil} Name: minecraft-launcher -Version: 1121 -Release: 3%{?dist} +Version: 2.1.3 +Release: 1%{?dist} Summary: Official launcher for Minecraft -License: Proprietary +License: https://www.minecraft.net/en-us/eula URL: https://minecraft.net -Source0: https://launcher.mojang.com/download/linux/x86_64/minecraft-launcher_%{version}.tar.gz +Source0: https://launcher.mojang.com/download/Minecraft.tar.gz Source1: minecraft-launcher.desktop Source2: https://launcher.mojang.com/download/minecraft-launcher.svg +Packager: Cappy Ishihara ExclusiveArch: x86_64 Requires: java >= 1.8.0 - -Recommends: terra-fractureiser-detector +Requires: gtk3 +Requires: libgpg-error +Requires: (gnome-keyring or kwallet) %description The official Linux release of the launcher for Minecraft, a game about placing blocks and going on adventures. @@ -26,15 +28,15 @@ The official Linux release of the launcher for Minecraft, a game about placing b %build %install -mkdir -p %{buildroot}/%{_bindir} -mkdir -p %{buildroot}/%{_datadir}/icons/hicolor/symbolic/apps/ -mkdir -p %{buildroot}/%{_datadir}/applications/ +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/ +mkdir -p %{buildroot}%{_datadir}/applications/ -mv %{_builddir}/minecraft-launcher/minecraft-launcher %{buildroot}/%{_bindir}/minecraft-launcher -chmod 755 %{buildroot}/%{_bindir}/minecraft-launcher +mv %{_builddir}/minecraft-launcher/minecraft-launcher %{buildroot}%{_bindir}/minecraft-launcher +chmod 755 %{buildroot}%{_bindir}/minecraft-launcher -install -Dm644 %{SOURCE1} %{buildroot}/%{_datadir}/applications/minecraft-launcher.desktop -install -Dm644 %{SOURCE2} %{buildroot}/%{_datadir}/icons/hicolor/symbolic/apps/minecraft-launcher.svg +install -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/applications/minecraft-launcher.desktop +install -Dm644 %{SOURCE2} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/minecraft-launcher.svg %files %{_bindir}/minecraft-launcher diff --git a/anda/games/opengamepadui/anda.hcl b/anda/games/opengamepadui/anda.hcl new file mode 100644 index 0000000000..8f844f71d6 --- /dev/null +++ b/anda/games/opengamepadui/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + // arches = ["x86_64"] + rpm { + spec = "opengamepadui.spec" + } +} diff --git a/anda/games/opengamepadui/opengamepadui.spec b/anda/games/opengamepadui/opengamepadui.spec new file mode 100644 index 0000000000..e29d8635f3 --- /dev/null +++ b/anda/games/opengamepadui/opengamepadui.spec @@ -0,0 +1,80 @@ +Name: opengamepadui +Version: 0.35.8 +Release: 1%?dist +Summary: Open source gamepad-native game launcher and overlay + +License: GPLv3 +URL: https://github.com/ShadowBlip/OpenGamepadUI +Packager: Cappy Ishihara + +BuildRequires: godot +BuildRequires: scons +BuildRequires: make +BuildRequires: cargo +BuildRequires: gcc-c++ +BuildRequires: pkgconfig +BuildRequires: gcc +BuildRequires: libXinerama-devel +BuildRequires: libXi-devel +BuildRequires: mesa-libGL-devel +BuildRequires: alsa-lib-devel +BuildRequires: pulseaudio-libs-devel +BuildRequires: libevdev-devel +BuildRequires: git +BuildRequires: wget +BuildRequires: unzip +BuildRequires: dbus-devel +BuildRequires: pkgconfig(xres) +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xrandr) +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xau) +BuildRequires: pkgconfig(xtst) +BuildRequires: pkgconfig(xdmcp) +BuildRequires: systemd-rpm-macros + +Requires: godot-runner +Recommends: inputplumber +Recommends: powerstation + +%global build_dir %{name}-%{version} + +%description +Open Gamepad UI is a free and open source game launcher and overlay written using the Godot Game Engine 4 designed with a gamepad native experience in mind. Its goal is to provide an open and extendable foundation to launch and play games. It also implements a gamepad input system that can allow you to +remap gamepad input to mouse and keyboard inputs. + +%prep + +# We clone the repo from Git here because the build script requires +# submodules to be present in the source directory. +rm -rf %{build_dir} +git clone %{url} %{build_dir} -b v%{version} +cd %{build_dir} +git checkout tags/v%{version} + +%build +cd %{build_dir} +make import +%make_build + + +%install +cd %{build_dir} +%make_install PREFIX=%{buildroot}%{_prefix} INSTALL_PREFIX=%{_prefix} + + +%files +%license %{build_dir}/LICENSE +%doc %{build_dir}/docs/ +%{_bindir}/opengamepadui +%{_datadir}/opengamepadui/ +%{_datadir}/applications/opengamepadui.desktop +%{_datadir}/icons/hicolor/scalable/apps/opengamepadui.svg +%{_datadir}/polkit-1/actions/* +%{_userunitdir}/* + + +%changelog +* Sun Oct 20 2024 Cappy Ishihara +- Initial Package diff --git a/anda/games/opengamepadui/update.rhai b/anda/games/opengamepadui/update.rhai new file mode 100644 index 0000000000..71a7b34202 --- /dev/null +++ b/anda/games/opengamepadui/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("ShadowBlip/OpenGamepadUI")); diff --git a/anda/games/osu-lazer/osu-lazer.spec b/anda/games/osu-lazer/osu-lazer.spec index ea27036008..084294976a 100644 --- a/anda/games/osu-lazer/osu-lazer.spec +++ b/anda/games/osu-lazer/osu-lazer.spec @@ -1,9 +1,9 @@ -%define osuresver 2024.904.0 +%define osuresver 2025.129.0 %global debug_package %{nil} %define __strip /bin/true Name: osu-lazer -Version: 2024.906.2 +Version: 2025.118.3 Release: 1%?dist Summary: The future of osu! and the beginning of an open era! Commonly known by the codename osu!lazer. Pew pew. ExclusiveArch: x86_64 diff --git a/anda/games/prismlauncher-nightly/ci_setup.rhai b/anda/games/prismlauncher-nightly/ci_setup.rhai new file mode 100644 index 0000000000..92de03460a --- /dev/null +++ b/anda/games/prismlauncher-nightly/ci_setup.rhai @@ -0,0 +1,2 @@ +import "andax/ci/extra_repos.rhai" as extra_repos; +extra_repos::install(labels); diff --git a/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec b/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec index 3705bbd4ce..2a8f9a178a 100644 --- a/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec +++ b/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec @@ -1,11 +1,11 @@ %global real_name prismlauncher %global nice_name PrismLauncher -%global commit 01015a7345cf6c23aed417068dec43a341d87d0e +%global commit e41a60e57e4d66b3394f285bf832b01e4ef8f12c %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global libnbtplusplus_commit 23b955121b8217c1c348a9ed2483167a6f3ff4ad -%global commit_date 20240909 +%global commit_date 20250213 %global snapshot_info %{commit_date}.%{shortcommit} %bcond_without qt6 @@ -30,7 +30,7 @@ Name: prismlauncher-nightly %else Name: prismlauncher-qt5-nightly %endif -Version: 9.0^%{snapshot_info} +Version: 10.0^%{snapshot_info} Release: 1%?dist Summary: Minecraft launcher with ability to manage multiple instances License: GPL-3.0-only AND Apache-2.0 AND LGPL-3.0-only AND GPL-3.0-or-later AND GPL-2.0-or-later AND ISC AND OFL-1.1 AND LGPL-2.1-only AND MIT AND BSD-2-Clause-FreeBSD AND BSD-3-Clause AND LGPL-3.0-or-later diff --git a/anda/games/prismlauncher-qt5-nightly/0001-find-cmark-with-pkgconfig.patch b/anda/games/prismlauncher-qt5-nightly/0001-find-cmark-with-pkgconfig.patch deleted file mode 100644 index d41ef66bec..0000000000 --- a/anda/games/prismlauncher-qt5-nightly/0001-find-cmark-with-pkgconfig.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 5a38fc2c9a329e88c8337af541dfeccaeff1fefb Mon Sep 17 00:00:00 2001 -From: seth -Date: Sun, 15 Jan 2023 14:47:49 -0500 -Subject: [PATCH] find cmark with pkgconfig - -Signed-off-by: seth ---- - cmake/Findcmark.cmake | 59 +++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 59 insertions(+) - create mode 100755 cmake/Findcmark.cmake - -diff --git a/cmake/Findcmark.cmake b/cmake/Findcmark.cmake -new file mode 100755 -index 00000000..9858e5df ---- /dev/null -+++ b/cmake/Findcmark.cmake -@@ -0,0 +1,59 @@ -+# SPDX-FileCopyrightText: 2019 Black Hat -+# SPDX-License-Identifier: GPL-3.0-only -+ -+# -+# CMake module to search for the cmark library -+# -+ -+# first try to find cmark-config.cmake -+# path to a file not in the search path can be set with 'cmake -Dcmark_DIR=some/path/' -+find_package(cmark CONFIG QUIET) -+if(cmark_FOUND AND TARGET cmark::cmark) -+ # found it! -+ return() -+endif() -+ -+find_package(PkgConfig QUIET) -+if(PKG_CONFIG_FOUND) -+ pkg_check_modules(PC_CMARK QUIET cmark) -+endif() -+ -+if(NOT CMARK_INCLUDE_DIR) -+ find_path(CMARK_INCLUDE_DIR -+ NAMES cmark.h -+ PATHS -+ ${PC_CMARK_INCLUDEDIR} -+ ${PC_CMARK_INCLUDE_DIRS} -+ /usr/include -+ /usr/local/include) -+endif() -+ -+if(NOT CMARK_LIBRARY) -+ find_library(CMARK_LIBRARY -+ NAMES cmark -+ HINTS -+ ${PC_CMARK_LIBDIR} -+ ${PC_CMARK_LIBRARY_DIRS} -+ /usr/lib -+ /usr/local/lib) -+endif() -+ -+if(NOT TARGET cmark::cmark) -+ add_library(cmark::cmark UNKNOWN IMPORTED) -+ set_target_properties(cmark::cmark -+ PROPERTIES INTERFACE_INCLUDE_DIRECTORIES -+ ${CMARK_INCLUDE_DIR}) -+ set_property(TARGET cmark::cmark APPEND -+ PROPERTY IMPORTED_LOCATION ${CMARK_LIBRARY}) -+endif() -+ -+include(FindPackageHandleStandardArgs) -+find_package_handle_standard_args(cmark -+ DEFAULT_MSG -+ CMARK_INCLUDE_DIR -+ CMARK_LIBRARY) -+ -+mark_as_advanced(CMARK_LIBRARY CMARK_INCLUDE_DIR) -+ -+set(CMARK_LIBRARIES ${CMARK_LIBRARY}) -+set(CMARK_INCLUDE_DIRS ${CMARK_INCLUDE_DIR}) --- -2.39.0 - diff --git a/anda/games/prismlauncher-qt5-nightly/anda.hcl b/anda/games/prismlauncher-qt5-nightly/anda.hcl deleted file mode 100644 index 3f85a804ff..0000000000 --- a/anda/games/prismlauncher-qt5-nightly/anda.hcl +++ /dev/null @@ -1,8 +0,0 @@ -project pkg { - rpm { - spec = "prismlauncher-qt5-nightly.spec" - } - labels { - nightly = "1" - } -} diff --git a/anda/games/prismlauncher-qt5-nightly/prismlauncher-qt5-nightly.spec b/anda/games/prismlauncher-qt5-nightly/prismlauncher-qt5-nightly.spec deleted file mode 100644 index 6f18b42240..0000000000 --- a/anda/games/prismlauncher-qt5-nightly/prismlauncher-qt5-nightly.spec +++ /dev/null @@ -1,198 +0,0 @@ -%global real_name prismlauncher -%global nice_name PrismLauncher - -%global commit 2012b2c243dcfad8860847c0d85f184b6dd24504 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global libnbtplusplus_commit a5e8fd52b8bf4ab5d5bcc042b2a247867589985f -%global quazip_commit 6117161af08e366c37499895b00ef62f93adc345 -%global tomlplusplus_commit 7eb2ffcc09f8e9890dc0b77ff8ab00fc53b1f2b8 - -%global commit_date 20240329 -%global snapshot_info %{commit_date}.%{shortcommit} - -%bcond_with qt6 - -# Change this variables if you want to use custom keys -# Leave blank if you want to build Prism Launcher without MSA id or curseforge api key -%define msa_id default -%define curseforge_key default - -%if %{with qt6} -%global qt_version 6 -%global min_qt_version 6 -%else -%global qt_version 5 -%global min_qt_version 5.12 -%endif - -%global build_platform terra - -%if %{with qt6} -Name: prismlauncher-nightly -%else -Name: prismlauncher-qt5-nightly -%endif -Version: 9.0^%{snapshot_info} -Release: 1%?dist -Summary: Minecraft launcher with ability to manage multiple instances -License: GPL-3.0-only AND Apache-2.0 AND LGPL-3.0-only AND GPL-3.0-or-later AND GPL-2.0-or-later AND ISC AND OFL-1.1 AND LGPL-2.1-only AND MIT AND BSD-2-Clause-FreeBSD AND BSD-3-Clause AND LGPL-3.0-or-later -Group: Amusements/Games -URL: https://prismlauncher.org/ -Source0: https://github.com/PrismLauncher/PrismLauncher/archive/%{commit}/%{real_name}-%{shortcommit}.tar.gz -Source1: https://github.com/PrismLauncher/libnbtplusplus/archive/%{libnbtplusplus_commit}/libnbtplusplus-%{libnbtplusplus_commit}.tar.gz -Source2: https://github.com/stachenov/quazip/archive/%{quazip_commit}/quazip-%{quazip_commit}.tar.gz -Source3: https://github.com/marzer/tomlplusplus/archive/%{tomlplusplus_commit}/tomlplusplus-%{tomlplusplus_commit}.tar.gz -Patch0: 0001-find-cmark-with-pkgconfig.patch - -BuildRequires: cmake >= 3.15 -BuildRequires: extra-cmake-modules -BuildRequires: gcc-c++ -BuildRequires: java-17-openjdk-devel -BuildRequires: desktop-file-utils -BuildRequires: libappstream-glib -BuildRequires: cmake(ghc_filesystem) -BuildRequires: cmake(Qt%{qt_version}Concurrent) >= %{min_qt_version} -BuildRequires: cmake(Qt%{qt_version}Core) >= %{min_qt_version} -BuildRequires: cmake(Qt%{qt_version}Gui) >= %{min_qt_version} -BuildRequires: cmake(Qt%{qt_version}Network) >= %{min_qt_version} -BuildRequires: cmake(Qt%{qt_version}Test) >= %{min_qt_version} -BuildRequires: cmake(Qt%{qt_version}Widgets) >= %{min_qt_version} -BuildRequires: cmake(Qt%{qt_version}Xml) >= %{min_qt_version} - -%if %{with qt6} -BuildRequires: cmake(Qt6Core5Compat) -%endif - -BuildRequires: pkgconfig(libcmark) -%if 0%{fedora} < 38 -BuildRequires: cmark -%endif -BuildRequires: pkgconfig(scdoc) -BuildRequires: pkgconfig(zlib) - -Requires(post): desktop-file-utils -Requires(postun): desktop-file-utils - -Requires: qt%{qt_version}-qtimageformats -Requires: qt%{qt_version}-qtsvg -Requires: javapackages-filesystem -Recommends: java-21-openjdk -Recommends: java-17-openjdk -Suggests: java-1.8.0-openjdk - -# xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128 -Recommends: xrandr -# libflite needed for using narrator in minecraft -Recommends: flite -# Prism supports enabling gamemode -Suggests: gamemode - -Conflicts: %{real_name} -Conflicts: %{real_name}-qt5 -%if %{without qt6} -Conflicts: %{real_name}-nightly -%endif - - -%description -A custom launcher for Minecraft that allows you to easily manage -multiple installations of Minecraft at once (Fork of MultiMC) - - -%prep -%autosetup -p1 -n PrismLauncher-%{commit} - -tar -xzf %{SOURCE1} -C libraries -tar -xvf %{SOURCE2} -C libraries -tar -xvf %{SOURCE3} -C libraries - -rmdir libraries/{extra-cmake-modules,filesystem,libnbtplusplus,quazip,tomlplusplus,zlib}/ -mv -f libraries/libnbtplusplus-%{libnbtplusplus_commit} libraries/libnbtplusplus -mv -f libraries/quazip-%{quazip_commit} libraries/quazip -mv -f libraries/tomlplusplus-%{tomlplusplus_commit} libraries/tomlplusplus - -# Do not set RPATH -sed -i "s|\$ORIGIN/||" CMakeLists.txt - - -%build -%cmake \ - -DLauncher_QT_VERSION_MAJOR="%{qt_version}" \ - -DLauncher_BUILD_PLATFORM="%{build_platform}" \ - %if "%{msa_id}" != "default" - -DLauncher_MSA_CLIENT_ID="%{msa_id}" \ - %endif - %if "%{curseforge_key}" != "default" - -DLauncher_CURSEFORGE_API_KEY="%{curseforge_key}" \ - %endif - -DBUILD_TESTING=OFF - -%cmake_build - - -%install -%cmake_install - - -%check -%ctest - - -%files -%doc README.md -%license LICENSE COPYING.md -%dir %{_datadir}/%{nice_name} -%{_bindir}/%{real_name} -%{_datadir}/%{nice_name}/NewLaunch.jar -%{_datadir}/%{nice_name}/JavaCheck.jar -%{_datadir}/%{nice_name}/qtlogging.ini -%{_datadir}/%{nice_name}/NewLaunchLegacy.jar -%{_datadir}/applications/org.prismlauncher.PrismLauncher.desktop -%{_metainfodir}/org.prismlauncher.PrismLauncher.metainfo.xml -%{_datadir}/icons/hicolor/scalable/apps/org.prismlauncher.PrismLauncher.svg -%{_datadir}/mime/packages/modrinth-mrpack-mime.xml -%{_datadir}/qlogging-categories%{qt_version}/prismlauncher.categories -%{_mandir}/man?/prismlauncher.* - - -%changelog -* Wed Jul 26 2023 seth - 8.0^20230726.4f00012-1 -- remove terra-fractureiser-detector from recommends, use proper build platform, - and add patches for epel/older fedora versions - -* Sun Jul 23 2023 seth - 8.0^20230722.273d75f-1 -- update submodules, version, & use autorelease - -* Wed Jun 07 2023 seth - 7.0^20230603.954d4d7-1 -- specify jdk 17 + cleanup outdated patches/scriptlets - -* Sun May 14 2023 seth - 7.0^20230513.c5aff7c-1 -- add qtlogging.ini to files list - -* Mon Mar 20 2023 seth - 7.0^20230319.6dcf34a-1 -- recommend flite to support narrator in minecraft - -* Fri Feb 03 2023 seth - 7.0^20230203.58d9ced-1 -- disable tests and explicitly require cmark - -* Sun Jan 15 2023 seth - 7.0^20230115.f1247d2-1 -- add 0001-find-cmark-with-pkgconfig.patch - -* Fri Jan 13 2023 seth - 7.0^20230113.3de681d-1 -- add cmark as a build dep - -* Tue Jan 03 2023 seth - 7.0^20230102.4b12c85-1 -- add qlogging categories - -* Mon Dec 05 2022 seth - 6.0^20221204.79d5bef-1 -- revise file to better follow fedora packaging guidelines and add java 8 as a - dependency - -* Thu Nov 10 2022 seth - 5.1-0.1.20221110.e6d057f -- add package to Amusements/Games - -* Sun Nov 06 2022 seth - 5.0-0.1.20221105.9fb80a2 -- update installed files - -* Thu Oct 27 2022 seth - 5.0-0.1.20221027.610b971 -- initial commit diff --git a/anda/games/prismlauncher-qt5-nightly/update.rhai b/anda/games/prismlauncher-qt5-nightly/update.rhai deleted file mode 100644 index a7437e7cae..0000000000 --- a/anda/games/prismlauncher-qt5-nightly/update.rhai +++ /dev/null @@ -1,11 +0,0 @@ -if filters.contains("nightly") { - rpm.global("commit", gh_commit("PrismLauncher/PrismLauncher")); - if rpm.changed() { - rpm.release(); - let cmake = get("https://raw.githubusercontent.com/PrismLauncher/PrismLauncher/develop/CMakeLists.txt"); - let maj = find("set\\(Launcher_VERSION_MAJOR\\s+(\\d+)\\)", cmake, 1); - let min = find("set\\(Launcher_VERSION_MINOR\\s+(\\d+)\\)", cmake, 1); - rpm.global("commit_date", date()); - rpm.version(`${maj}.${min}^%{snapshot_info}`); - } -} diff --git a/anda/games/prismlauncher-qt5/anda.hcl b/anda/games/prismlauncher-qt5/anda.hcl deleted file mode 100644 index 11769d102b..0000000000 --- a/anda/games/prismlauncher-qt5/anda.hcl +++ /dev/null @@ -1,5 +0,0 @@ -project pkg { - rpm { - spec = "prismlauncher-qt5.spec" - } -} diff --git a/anda/games/prismlauncher-qt5/prismlauncher-qt5.spec b/anda/games/prismlauncher-qt5/prismlauncher-qt5.spec deleted file mode 100644 index f0ba578349..0000000000 --- a/anda/games/prismlauncher-qt5/prismlauncher-qt5.spec +++ /dev/null @@ -1,188 +0,0 @@ -%global real_name prismlauncher -%global nice_name PrismLauncher -%bcond_with qt6 - -# Change this variables if you want to use custom keys -# Leave blank if you want to build Prism Launcher without MSA id or curseforge api key -%define msa_id default -%define curseforge_key default - -%if %{with qt6} -%global qt_version 6 -%global min_qt_version 6 -%else -%global qt_version 5 -%global min_qt_version 5.12 -%endif - -%global build_platform terra - -%if %{with qt6} -Name: prismlauncher -%else -Name: prismlauncher-qt5 -%endif -Version: 8.4 -Release: 1%?dist -Summary: Minecraft launcher with ability to manage multiple instances -# see COPYING.md for more information -# each file in the source also contains a SPDX-License-Identifier header that declares its license -License: GPL-3.0-only AND Apache-2.0 AND LGPL-3.0-only AND GPL-3.0-or-later AND GPL-2.0-or-later AND ISC AND OFL-1.1 AND LGPL-2.1-only AND MIT AND BSD-2-Clause-FreeBSD AND BSD-3-Clause AND LGPL-3.0-or-later -Group: Amusements/Games -URL: https://prismlauncher.org/ -Source0: https://github.com/PrismLauncher/PrismLauncher/releases/download/%{version}/%{real_name}-%{version}.tar.gz - -BuildRequires: cmake >= 3.15 -BuildRequires: extra-cmake-modules -BuildRequires: gcc-c++ -BuildRequires: java-17-openjdk-devel -BuildRequires: desktop-file-utils -BuildRequires: libappstream-glib -BuildRequires: cmake(ghc_filesystem) -BuildRequires: cmake(Qt%{qt_version}Concurrent) >= %{min_qt_version} -BuildRequires: cmake(Qt%{qt_version}Core) >= %{min_qt_version} -BuildRequires: cmake(Qt%{qt_version}Gui) >= %{min_qt_version} -BuildRequires: cmake(Qt%{qt_version}Network) >= %{min_qt_version} -BuildRequires: cmake(Qt%{qt_version}Test) >= %{min_qt_version} -BuildRequires: cmake(Qt%{qt_version}Widgets) >= %{min_qt_version} -BuildRequires: cmake(Qt%{qt_version}Xml) >= %{min_qt_version} - -%if %{with qt6} -BuildRequires: cmake(Qt6Core5Compat) -%endif - -BuildRequires: pkgconfig(libcmark) -BuildRequires: pkgconfig(scdoc) -BuildRequires: pkgconfig(zlib) - -Requires(post): desktop-file-utils -Requires(postun): desktop-file-utils - -Requires: qt%{qt_version}-qtimageformats -Requires: qt%{qt_version}-qtsvg -Requires: javapackages-filesystem -Recommends: java-21-openjdk -Recommends: java-17-openjdk -Suggests: java-1.8.0-openjdk - -# xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128 -Recommends: xrandr -# libflite needed for using narrator in minecraft -Recommends: flite - -# Prism supports enabling gamemode -Suggests: gamemode - -%if %{without qt6} -Conflicts: %{real_name} -%endif - -%description -A custom launcher for Minecraft that allows you to easily manage -multiple installations of Minecraft at once (Fork of MultiMC) - - -%prep -%autosetup -n PrismLauncher-%{version} - -rm -rf libraries/{extra-cmake-modules,filesystem,zlib} - -# Do not set RPATH -sed -i "s|\$ORIGIN/||" CMakeLists.txt - - -%build -%cmake \ - -DLauncher_QT_VERSION_MAJOR="%{qt_version}" \ - -DLauncher_BUILD_PLATFORM="%{build_platform}" \ - %if "%{msa_id}" != "default" - -DLauncher_MSA_CLIENT_ID="%{msa_id}" \ - %endif - %if "%{curseforge_key}" != "default" - -DLauncher_CURSEFORGE_API_KEY="%{curseforge_key}" \ - %endif - -DBUILD_TESTING=OFF - -%cmake_build - - -%install -%cmake_install - - -%check -%ctest - - -%files -%doc README.md -%license LICENSE COPYING.md -%dir %{_datadir}/%{nice_name} -%{_bindir}/prismlauncher -%{_datadir}/%{nice_name}/NewLaunch.jar -%{_datadir}/%{nice_name}/JavaCheck.jar -%{_datadir}/%{nice_name}/qtlogging.ini -%{_datadir}/%{nice_name}/NewLaunchLegacy.jar -%{_datadir}/applications/org.prismlauncher.PrismLauncher.desktop -%{_datadir}/icons/hicolor/scalable/apps/org.prismlauncher.PrismLauncher.svg -%{_datadir}/mime/packages/modrinth-mrpack-mime.xml -%{_datadir}/qlogging-categories%{qt_version}/prismlauncher.categories -%{_mandir}/man?/prismlauncher.* -%{_metainfodir}/org.prismlauncher.PrismLauncher.metainfo.xml - - -%changelog -* Wed Apr 03 2024 seth - 8.2-2 -- move JREs to weak deps, add java 21 for snapshots - -* Wed Jul 26 2023 seth - 7.2-2 -- remove terra-fractureiser-detector from recommends, use proper build platform - -* Thu Jun 08 2023 seth - 6.3-3 -- specify jdk 17 + cleanup outdated patches/scriptlets - -* Mon Mar 20 2023 seth - 6.3-2 -- recommend flite to support narrator in minecraft - -* Sat Feb 04 2023 seth - 6.3-1 -- update to 6.3 - -* Mon Dec 19 2022 seth - 6.1-2 -- start using non-headless java deps - -* Mon Dec 12 2022 seth - 6.0-1 -- update to 6.0 - -* Mon Dec 05 2022 seth - 5.2-3 -- revise file to better follow fedora packaging guidelines and add java 8 as a - dependency - -* Tue Nov 15 2022 seth - 5.2-2 -- use newer version of toml++ to fix issues on aarch64 - -* Tue Nov 15 2022 seth - 5.2-1 -- update to 5.2 - -* Thu Nov 10 2022 seth - 5.1-2 -- add package to Amusements/Games - -* Tue Nov 01 2022 seth - 5.1-1 -- update to 5.1 - -* Wed Oct 19 2022 seth - 5.0-3 -- add missing deps and build with qt6 by default - -* Wed Oct 19 2022 seth - 5.0-2 -- add change-jars-path.patch to allow for package-specific jar path - -* Wed Oct 19 2022 seth - 5.0-1 -- update to version 5.0 - -* Tue Oct 18 2022 Cappy Ishihara - 1.4.2.git981e9cf-0.2.20221018.981e9cf -- Update provides and obsoletes - -* Tue Oct 18 2022 seth - 1.4.2.git981e9cf-0.1.20221018.981e9cf -- start using qt6 - -* Tue Oct 18 2022 Cappy Ishihara - 1.4.2-1 -- Repackaged as Prism Launcher diff --git a/anda/games/prismlauncher-qt5/update.rhai b/anda/games/prismlauncher-qt5/update.rhai deleted file mode 100644 index 67913ff0b4..0000000000 --- a/anda/games/prismlauncher-qt5/update.rhai +++ /dev/null @@ -1 +0,0 @@ -rpm.version(gh("PrismLauncher/PrismLauncher")); diff --git a/anda/games/prismlauncher/ci_setup.rhai b/anda/games/prismlauncher/ci_setup.rhai new file mode 100644 index 0000000000..92de03460a --- /dev/null +++ b/anda/games/prismlauncher/ci_setup.rhai @@ -0,0 +1,2 @@ +import "andax/ci/extra_repos.rhai" as extra_repos; +extra_repos::install(labels); diff --git a/anda/games/prismlauncher/prismlauncher.spec b/anda/games/prismlauncher/prismlauncher.spec index 2edae205a2..5c8f30aa28 100644 --- a/anda/games/prismlauncher/prismlauncher.spec +++ b/anda/games/prismlauncher/prismlauncher.spec @@ -22,8 +22,8 @@ Name: prismlauncher %else Name: prismlauncher-qt5 %endif -Version: 8.4 -Release: 2%?dist +Version: 9.2 +Release: 1%?dist Summary: Minecraft launcher with ability to manage multiple instances # see COPYING.md for more information # each file in the source also contains a SPDX-License-Identifier header that declares its license diff --git a/anda/games/steam/.gitignore b/anda/games/steam/.gitignore new file mode 100644 index 0000000000..400d7da77c --- /dev/null +++ b/anda/games/steam/.gitignore @@ -0,0 +1,8 @@ +# We're gonna do a whitelist approach here because +# inline sources are not allowed + +* +!.gitignore +!anda.hcl +!steam.spec +!update.rhai \ No newline at end of file diff --git a/anda/games/steam/anda.hcl b/anda/games/steam/anda.hcl new file mode 100644 index 0000000000..266d6b3074 --- /dev/null +++ b/anda/games/steam/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["i386"] + rpm { + spec = "steam.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/games/steam/steam.spec b/anda/games/steam/steam.spec new file mode 100644 index 0000000000..bd3290444d --- /dev/null +++ b/anda/games/steam/steam.spec @@ -0,0 +1,323 @@ +# Binary package, no debuginfo should be generated +%global debug_package %{nil} + +%global appstream_id com.valvesoftware.Steam + +Name: steam +Version: 1.0.0.82 +Release: 4%?dist +Summary: Installer for the Steam software distribution service +# Redistribution and repackaging for Linux is allowed, see license file. udev rules are MIT. +License: Steam License Agreement and MIT +URL: http://www.steampowered.com/ +ExclusiveArch: i686 +Packager: Cappy Ishihara + +Source0: https://repo.steampowered.com/%{name}/archive/beta/%{name}_%{version}.tar.gz +Source1: https://github.com/terrapkg/pkg-steam/raw/refs/heads/main/steam.sh +Source2: https://github.com/terrapkg/pkg-steam/raw/refs/heads/main/steam.csh +Source5: https://github.com/terrapkg/pkg-steam/raw/refs/heads/main/README.Fedora + +# Ghost touches in Big Picture mode: +# https://github.com/ValveSoftware/steam-for-linux/issues/3384 +# https://bugzilla.kernel.org/show_bug.cgi?id=28912 +# https://github.com/denilsonsa/udev-joystick-blacklist +# https://github.com/systemd/systemd/issues/32773 + +# Input devices seen as joysticks: +Source6: https://raw.githubusercontent.com/denilsonsa/udev-joystick-blacklist/master/after_kernel_4_9/51-these-are-not-joysticks-rm.rules + +# Configure limits in systemd +Source7: https://github.com/terrapkg/pkg-steam/raw/refs/heads/main/01-steam.conf + +# Newer udev rules than what is bundled in the tarball +Source8: https://raw.githubusercontent.com/ValveSoftware/steam-devices/master/60-steam-input.rules +Source9: https://raw.githubusercontent.com/ValveSoftware/steam-devices/master/60-steam-vr.rules + +# Steam restart script +Source11: steamrestart.sh + +# Do not install desktop file in lib/steam, do not install apt sources +Patch0: https://github.com/terrapkg/pkg-steam/raw/refs/heads/main/steam-makefile.patch +# Do not try to copy steam.desktop to the user's desktop from lib/steam +Patch1: https://github.com/terrapkg/pkg-steam/raw/refs/heads/main/steam-no-icon-on-desktop.patch + +BuildRequires: desktop-file-utils +BuildRequires: libappstream-glib +BuildRequires: make +BuildRequires: systemd + +# Required to run the initial setup +Requires: tar +Requires: zenity + +# Most games use OpenGL, some games already use Vulkan. Vulkan is also required +# for Steam Play to run Windows games through emulation. i686 version of these +# packages are necessary even on x86_64 systems for running 32bit games. Pull in +# native arch drivers as well, by not specifying _isa macro, native arch +# packages are preferred. This will make sure people have all necessary drivers +# for both i686 and x86_64 games. +Requires: mesa-dri-drivers%{?_isa} +Requires: mesa-dri-drivers +Requires: mesa-vulkan-drivers%{?_isa} +Requires: mesa-vulkan-drivers +Requires: vulkan-loader%{?_isa} +Requires: vulkan-loader + +# Minimum requirements for starting the steam client using system libraries +Requires: alsa-lib%{?_isa} +Requires: fontconfig%{?_isa} +Requires: gtk2%{?_isa} +Requires: libICE%{?_isa} +Requires: libnsl%{?_isa} +Requires: libpng%{?_isa} +Requires: libXext%{?_isa} +Requires: libXinerama%{?_isa} +Requires: libXtst%{?_isa} +Requires: libXScrnSaver%{?_isa} +Requires: mesa-libGL%{?_isa} +Requires: mesa-libEGL%{?_isa} +Requires: NetworkManager-libnm%{?_isa} +Requires: nss%{?_isa} +Requires: pulseaudio-libs%{?_isa} + +# Required for sending out crash reports to Valve +Requires: libcurl%{?_isa} + +# Workaround for mesa-libGL dependency bug: +# https://bugzilla.redhat.com/show_bug.cgi?id=1168475 +Requires: systemd-libs%{?_isa} + +# Required for the firewall rules +# http://fedoraproject.org/wiki/PackagingDrafts/ScriptletSnippets/Firewalld +Requires: firewalld-filesystem +Requires(post): firewalld-filesystem + +# Required for hardware encoding/decoding during Remote Play (intel/radeon/amdgpu/nouveau) +Requires: libva%{?_isa} +Requires: libvdpau%{?_isa} + +# Required for having a functioning menu on the tray icon +Requires: libdbusmenu-gtk3%{?_isa} >= 16.04.0 + +# Required by Feral interactive games +Requires: libatomic%{?_isa} + +# Required by Shank +Requires: (alsa-plugins-pulseaudio%{?_isa} if pulseaudio) +Requires: (pipewire-alsa%{?_isa} if pipewire) + +# Patched for Wayland +# https://github.com/ValveSoftware/steam-for-linux/issues/8853 +# https://github.com/negativo17/steam/issues/9 +%if 0%{?fedora} >= 40 +Requires: SDL2%{?_isa} +%endif + +# Game performance is increased with gamemode (for games that support it) +Recommends: gamemode +Recommends: gamemode%{?_isa} +Recommends: (gnome-shell-extension-appindicator if gnome-shell) + +Recommends: (gnome-shell-extension-appindicator if gnome-shell) + +# Proton uses xdg-desktop-portal to open URLs from inside a container +Requires: xdg-desktop-portal +Recommends: (xdg-desktop-portal-gtk if gnome-shell) +Recommends: (xdg-desktop-portal-kde if kwin) + +# Prevent log spam when thse are not pulled in as dependencies of full desktops +Recommends: dbus-x11 +Recommends: xdg-user-dirs + +# Allow using Steam Runtime Launch Options +Recommends: gobject-introspection + +Requires: steam-devices = %{?epoch:%{epoch}:}%{version}-%{release} + +# Fix upgrading from old versions +Provides: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}.x86_64 +Obsoletes: %{name} < %{?epoch:%{epoch}:}%{version}-%{release}.x86_64 + +%description +Steam is a software distribution service with an online store, automated +installation, automatic updates, achievements, SteamCloud synchronized savegame +and screenshot functionality, and many social features. + +This package contains the installer for the Steam software distribution service. + +%package devices +Summary: Permissions required by Steam for gaming devices +BuildArch: noarch +Provides: steam-devices = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: steam-devices < %{?epoch:%{epoch}:}%{version}-%{release} +# Fix upgrading from old versions +Provides: steam-devices = %{?epoch:%{epoch}:}%{version}-%{release}.x86_64 +Obsoletes: steam-devices < %{?epoch:%{epoch}:}%{version}-%{release}.x86_64 + +%description devices +Steam is a software distribution service with an online store, automated +installation, automatic updates, achievements, SteamCloud synchronized savegame +and screenshot functionality, and many social features. + +This package contains the necessary permissions for gaming devices. + +%prep +%autosetup -p1 -n %{name}-launcher + +cp %{SOURCE5} . + +%build +# Nothing to build + +%install +%make_install + +rm -fr %{buildroot}%{_docdir}/%{name}/ \ + %{buildroot}%{_bindir}/%{name}deps + +mkdir -p %{buildroot}%{_udevrulesdir}/ +install -m 644 -p %{SOURCE6} %{SOURCE8} %{SOURCE9} \ + %{buildroot}%{_udevrulesdir}/ + +# Environment files +mkdir -p %{buildroot}%{_sysconfdir}/profile.d +install -pm 644 %{SOURCE1} %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d + +# Raise file descriptor limit +mkdir -p %{buildroot}%{_prefix}/lib/systemd/system.conf.d/ +mkdir -p %{buildroot}%{_prefix}/lib/systemd/user.conf.d/ +install -m 644 -p %{SOURCE7} %{buildroot}%{_prefix}/lib/systemd/system.conf.d/ +install -m 644 -p %{SOURCE7} %{buildroot}%{_prefix}/lib/systemd/user.conf.d/ +install -m 775 -p %{SOURCE11} %{buildroot}%{_bindir}/steamrestart + +%check +desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop +appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{appstream_id}.metainfo.xml + +%files +%license COPYING steam_subscriber_agreement.txt +%doc debian/changelog README.Fedora +%{_bindir}/%{name} +%{_bindir}/steamrestart +%{_datadir}/applications/%{name}.desktop +%{_datadir}/icons/hicolor/*/apps/%{name}.png +%{_datadir}/pixmaps/%{name}.png +%{_datadir}/pixmaps/%{name}_tray_mono.png +%{_prefix}/lib/%{name}/ +%{_libdir}/%{name}/ +%{_mandir}/man6/%{name}.* +%{_metainfodir}/%{appstream_id}.metainfo.xml +%config(noreplace) %{_sysconfdir}/profile.d/%{name}.*sh +%dir %{_prefix}/lib/systemd/system.conf.d/ +%{_prefix}/lib/systemd/system.conf.d/01-steam.conf +%dir %{_prefix}/lib/systemd/user.conf.d/ +%{_prefix}/lib/systemd/user.conf.d/01-steam.conf + +%files devices +%{_udevrulesdir}/* + +%changelog +* Sun Sep 01 2024 Simone Caronni - 1.0.0.81-1 +- Update to 1.0.0.81. + +* Mon Aug 05 2024 Simone Caronni - 1.0.0.79-7 +- Fix for Wayland on Fedora 40. + +* Sat Aug 03 2024 RPM Fusion Release Engineering - 1.0.0.79-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jun 24 2024 Simone Caronni - 1.0.0.79-5 +- Update udev rules. +- Convert udev rule for blocking wrong joystick devices to a systemd hwdb file: + https://github.com/denilsonsa/udev-joystick-blacklist/issues/58 + +* Tue May 28 2024 Simone Caronni - 1.0.0.79-4 +- Add dependencies when full desktop is not installed. +- Add dependencies for using steam-runtime-launch-options. + +* Tue Mar 19 2024 Simone Caronni - 1.0.0.79-3 +- Adjust dependencies. + +* Sun Feb 18 2024 Simone Caronni - 1.0.0.79-2 +- Re-add gnome-shell-extension-appindicator recommendation. + +* Sun Feb 18 2024 Simone Caronni - 1.0.0.79-1 +- Update to 1.0.0.79. +- Drop gnome-shell-extension-gamemode recommendation (#6853). +- Update udev rules. + +* Sun Feb 04 2024 RPM Fusion Release Engineering - 1.0.0.78-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Aug 03 2023 RPM Fusion Release Engineering - 1.0.0.78-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri May 12 2023 Simone Caronni - 1.0.0.78-1 +- Update to 1.0.0.78. + +* Tue Mar 07 2023 Simone Caronni - 1.0.0.76-1 +- Update to 1.0.0.76. +- Separate SPEC file per distribution. +- Trim changelog. + +* Mon Aug 08 2022 RPM Fusion Release Engineering - 1.0.0.75-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg + 5.1 + +* Fri Jul 22 2022 Simone Caronni - 1.0.0.75-1 +- Update to 1.0.0.75. + +* Fri Feb 04 2022 Simone Caronni - 1.0.0.74-2 +- Add gnome-shell-extension-appindicator if running on Gnome (#6194). +- Require libICE to avoid spamming the console. It's installed by default on a + Gnome installation but not explicitly required (#6195). + +* Fri Dec 10 2021 Simone Caronni - 1.0.0.74-1 +- Update to 1.0.0.74. + +* Sat Nov 20 2021 Simone Caronni - 1.0.0.73-1 +- Update to 1.0.0.73. + +* Sat Oct 09 2021 Simone Caronni - 1.0.0.72-1 +- Update to 1.0.0.72. + +* Fri Aug 27 2021 Simone Caronni - 1.0.0.71-4 +- Remove old noruntime provide/obsolete. +- Remove VA-API driver dependencies for RHEL/CentOS 7 and update relevant + information. +- Remove not really relevant information about controllers from the readme. +- Update steam-devices. + +* Wed Aug 25 2021 Nicolas Chauvet - 1.0.0.71-3 +- Keep the stream-devices sub-package arched + +* Sun Aug 15 2021 Simone Caronni - 1.0.0.71-2 +- Steam UDEV subpackage should be noarch. + +* Sun Aug 15 2021 Simone Caronni - 1.0.0.71-1 +- Update to 1.0.0.71. +- Update README.Fedora with supported controllers. +- Use bundled AppData. + +* Wed Aug 04 2021 RPM Fusion Release Engineering - 1.0.0.70-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jun 30 2021 Simone Caronni - 1.0.0.70-4 +- Separate udev rules in separate subpackage to be used also by Valve's Flatpak + Steam client. +- Use upstream's udev rules as those are newer than what is bundled in the + installer tarball. + +* Tue May 04 2021 Leigh Scott - 1.0.0.70-3 +- Fix appdata screenshots (rfbz#5984) + +* Mon Apr 12 2021 Simone Caronni - 1.0.0.70-2 +- Remove new desktop entry specification for Fedora 32 and RHEL/CentOS 7/8. + +* Mon Apr 12 2021 Simone Caronni - 1.0.0.70-1 +- Update to 1.0.0.70. +- Switch to tarball provided steam-devices udev rules. + +* Thu Feb 04 2021 RPM Fusion Release Engineering - 1.0.0.68-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild diff --git a/anda/games/steam/steamrestart.sh b/anda/games/steam/steamrestart.sh new file mode 100644 index 0000000000..825c0bc9f6 --- /dev/null +++ b/anda/games/steam/steamrestart.sh @@ -0,0 +1,8 @@ +#!/usr/bin/bash +if [[ ! -z $(ps aux | grep "steam.sh" | grep -v color | grep -v grep) ]]; then + touch /tmp/steamrestart + steam -shutdown > /dev/null 2>&1 & + while [[ ! -z $(ps aux | grep "steam.sh" | grep -v color | grep -v grep) ]]; do + sleep 1 + done +fi diff --git a/anda/games/steam/update.rhai b/anda/games/steam/update.rhai new file mode 100644 index 0000000000..3114c49fcd --- /dev/null +++ b/anda/games/steam/update.rhai @@ -0,0 +1 @@ +rpm.version(find(`\nVersion:\s+1:(.+?)\s`, get("https://repo.steampowered.com/steam/archive/stable/steam_latest.dsc"), 1)); diff --git a/anda/games/gamescope-legacy/0001-cstdint.patch b/anda/games/terra-gamescope/0001-cstdint.patch old mode 100644 new mode 100755 similarity index 99% rename from anda/games/gamescope-legacy/0001-cstdint.patch rename to anda/games/terra-gamescope/0001-cstdint.patch index 36a9ad59f2..5b4351521b --- a/anda/games/gamescope-legacy/0001-cstdint.patch +++ b/anda/games/terra-gamescope/0001-cstdint.patch @@ -34,3 +34,4 @@ index 072d439..e4bb633 100644 -- 2.41.0 + diff --git a/anda/games/terra-gamescope/anda.hcl b/anda/games/terra-gamescope/anda.hcl new file mode 100755 index 0000000000..e66956b621 --- /dev/null +++ b/anda/games/terra-gamescope/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "terra-gamescope.spec" + } + labels { + mock = 1 + subrepo = "extras" + } +} diff --git a/anda/games/terra-gamescope/handheld.patch b/anda/games/terra-gamescope/handheld.patch new file mode 100755 index 0000000000..8db7c5ae35 --- /dev/null +++ b/anda/games/terra-gamescope/handheld.patch @@ -0,0 +1,2439 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Antheas Kapenekakis +Date: Fri, 22 Nov 2024 01:37:48 +0100 +Subject: [NA] add dev script + +--- + sync.sh | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + create mode 100755 sync.sh + +diff --git a/sync.sh b/sync.sh +new file mode 100755 +index 0000000..878bf6c +--- /dev/null ++++ b/sync.sh +@@ -0,0 +1,21 @@ ++if [ -z "$1" ]; then ++ echo "Usage: $0 " ++ exit 1 ++fi ++ ++HOST=$1 ++RSYNC="rsync -rv --exclude .git --exclude venv --exclude __pycache__'" ++USER=${USER:-bazzite} ++ ++set -e ++ ++meson build/ -Dforce_fallback_for=stb,libdisplay-info,libliftoff,wlroots,vkroots ++ninja -C build/ ++scp build/src/gamescope ${HOST}:gamescope ++ ++ssh $HOST /bin/bash << EOF ++ sudo rpm-ostree usroverlay --hotfix ++ sudo mv ~/gamescope /usr/bin/gamescope ++ bazzite-session-select gamescope ++ # sudo reboot ++EOF +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Matthew Anderson +Date: Fri, 17 May 2024 21:56:55 -0500 +Subject: feat: add --custom-refresh-rates option (+ fixes) + +Commit originally by Matthew, external fixes by Kyle, and new system check +move by Antheas. + +Co-authored-by: Kyle Gospodnetich +Co-authored-by: Antheas Kapenekakis +--- + src/Backends/DRMBackend.cpp | 5 +++++ + src/main.cpp | 31 +++++++++++++++++++++++++++++++ + src/main.hpp | 2 ++ + 3 files changed, 38 insertions(+) + +diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp +index 0b121e8..75c3258 100644 +--- a/src/Backends/DRMBackend.cpp ++++ b/src/Backends/DRMBackend.cpp +@@ -2243,6 +2243,11 @@ namespace gamescope + bHasKnownHDRInfo = true; + } + } ++ else if ( g_customRefreshRates.size() > 0 && GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL ) { ++ // Only apply custom refresh rates as a fallback, allowing a graceful transition to the new system. ++ m_Mutable.ValidDynamicRefreshRates = g_customRefreshRates; ++ return; ++ } + } + + if ( !bHasKnownColorimetry ) +diff --git a/src/main.cpp b/src/main.cpp +index 9dff5c4..8381889 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -129,6 +129,7 @@ const struct option *gamescope_options = (struct option[]){ + { "fade-out-duration", required_argument, nullptr, 0 }, + { "force-orientation", required_argument, nullptr, 0 }, + { "force-windows-fullscreen", no_argument, nullptr, 0 }, ++ { "custom-refresh-rates", required_argument, nullptr, 0 }, + + { "disable-color-management", no_argument, nullptr, 0 }, + { "sdr-gamut-wideness", required_argument, nullptr, 0 }, +@@ -202,6 +203,7 @@ const char usage[] = + " --hdr-itm-target-nits set the target luminace of the inverse tone mapping process.\n" + " Default: 1000 nits, Max: 10000 nits\n" + " --framerate-limit Set a simple framerate limit. Used as a divisor of the refresh rate, rounds down eg 60 / 59 -> 60fps, 60 / 25 -> 30fps. Default: 0, disabled.\n" ++ " --custom-refresh-rates Set custom refresh rates for the output. eg: 60,90,110-120\n" + " --mangoapp Launch with the mangoapp (mangohud) performance overlay enabled. You should use this instead of using mangohud on the game or gamescope.\n" + "\n" + "Nested mode options:\n" +@@ -425,6 +427,33 @@ static enum gamescope::GamescopeBackend parse_backend_name(const char *str) + } + } + ++std::vector g_customRefreshRates; ++// eg: 60,60,90,110-120 ++static std::vector parse_custom_refresh_rates( const char *str ) ++{ ++ std::vector rates; ++ char *token = strtok( strdup(str), ","); ++ while (token) ++ { ++ char *dash = strchr(token, '-'); ++ if (dash) ++ { ++ uint32_t start = atoi(token); ++ uint32_t end = atoi(dash + 1); ++ for (uint32_t i = start; i <= end; i++) ++ { ++ rates.push_back(i); ++ } ++ } ++ else ++ { ++ rates.push_back(atoi(token)); ++ } ++ token = strtok(nullptr, ","); ++ } ++ return rates; ++} ++ + struct sigaction handle_signal_action = {}; + + void ShutdownGamescope() +@@ -746,6 +775,8 @@ int main(int argc, char **argv) + g_eGamescopeModeGeneration = parse_gamescope_mode_generation( optarg ); + } else if (strcmp(opt_name, "force-orientation") == 0) { + g_DesiredInternalOrientation = force_orientation( optarg ); ++ } else if (strcmp(opt_name, "custom-refresh-rates") == 0) { ++ g_customRefreshRates = parse_custom_refresh_rates( optarg ); + } else if (strcmp(opt_name, "sharpness") == 0 || + strcmp(opt_name, "fsr-sharpness") == 0) { + g_upscaleFilterSharpness = atoi( optarg ); +diff --git a/src/main.hpp b/src/main.hpp +index 2e6fb83..390c04a 100644 +--- a/src/main.hpp ++++ b/src/main.hpp +@@ -3,6 +3,7 @@ + #include + + #include ++#include + + extern const char *gamescope_optstring; + extern const struct option *gamescope_options; +@@ -28,6 +29,7 @@ extern bool g_bGrabbed; + + extern float g_mouseSensitivity; + extern const char *g_sOutputName; ++extern std::vector g_customRefreshRates; + + enum class GamescopeUpscaleFilter : uint32_t + { +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Alesh Slovak +Date: Thu, 26 Sep 2024 07:13:24 -0400 +Subject: fix(vrr): Revert "steamcompmgr: Move outdatedInteractiveFocus to + window" + +This reverts commit 299bc3410dcfd46da5e3c988354b60ed3a356900. +--- + src/steamcompmgr.cpp | 39 +++++++++++++++++++++++-------------- + src/steamcompmgr_shared.hpp | 1 - + 2 files changed, 24 insertions(+), 16 deletions(-) + +diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp +index 11a7cad..df7616d 100644 +--- a/src/steamcompmgr.cpp ++++ b/src/steamcompmgr.cpp +@@ -3299,7 +3299,7 @@ found:; + if ( window_has_commits( focus ) ) + out->focusWindow = focus; + else +- focus->outdatedInteractiveFocus = true; ++ out->outdatedInteractiveFocus = true; + + // Always update X's idea of focus, but still dirty + // the it being outdated so we can resolve that globally later. +@@ -6044,28 +6044,37 @@ bool handle_done_commit( steamcompmgr_win_t *w, xwayland_ctx_t *ctx, uint64_t co + // Window just got a new available commit, determine if that's worth a repaint + + // If this is an overlay that we're presenting, repaint +- if ( w == global_focus.overlayWindow && w->opacity != TRANSLUCENT ) ++ if ( gameFocused ) + { +- hasRepaintNonBasePlane = true; +- } ++ if ( w == global_focus.overlayWindow && w->opacity != TRANSLUCENT ) ++ { ++ hasRepaintNonBasePlane = true; ++ } + +- if ( w == global_focus.notificationWindow && w->opacity != TRANSLUCENT ) +- { +- hasRepaintNonBasePlane = true; ++ if ( w == global_focus.notificationWindow && w->opacity != TRANSLUCENT ) ++ { ++ hasRepaintNonBasePlane = true; ++ } + } +- +- // If this is an external overlay, repaint +- if ( w == global_focus.externalOverlayWindow && w->opacity != TRANSLUCENT ) ++ if ( ctx ) + { +- hasRepaintNonBasePlane = true; ++ if ( ctx->focus.outdatedInteractiveFocus ) ++ { ++ MakeFocusDirty(); ++ ctx->focus.outdatedInteractiveFocus = false; ++ } + } +- +- if ( w->outdatedInteractiveFocus ) ++ if ( global_focus.outdatedInteractiveFocus ) + { + MakeFocusDirty(); +- w->outdatedInteractiveFocus = false; +- } ++ global_focus.outdatedInteractiveFocus = false; + ++ // If this is an external overlay, repaint ++ if ( w == global_focus.externalOverlayWindow && w->opacity != TRANSLUCENT ) ++ { ++ hasRepaintNonBasePlane = true; ++ } ++ } + // If this is the main plane, repaint + if ( w == global_focus.focusWindow && !w->isSteamStreamingClient ) + { +diff --git a/src/steamcompmgr_shared.hpp b/src/steamcompmgr_shared.hpp +index 095694e..e41fad9 100644 +--- a/src/steamcompmgr_shared.hpp ++++ b/src/steamcompmgr_shared.hpp +@@ -125,7 +125,6 @@ struct steamcompmgr_win_t { + unsigned int requestedHeight = 0; + bool is_dialog = false; + bool maybe_a_dropdown = false; +- bool outdatedInteractiveFocus = false; + + bool hasHwndStyle = false; + uint32_t hwndStyle = 0; +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Renn <8340896+AkazaRenn@users.noreply.github.com> +Date: Fri, 11 Oct 2024 17:48:26 +0200 +Subject: fix(deck): Use super + 1/2 for Overlay/QAM + +Replaces the patch for CTRL + 1/2 for Overlay/QAM with Super + 1/2 and +allows for CTRL for a smooth transition. + +Suggested-by: Antheas Kapenekakis +--- + src/wlserver.cpp | 19 ++++++++++++++++++- + 1 file changed, 18 insertions(+), 1 deletion(-) + +diff --git a/src/wlserver.cpp b/src/wlserver.cpp +index 78a86ee..99df8aa 100644 +--- a/src/wlserver.cpp ++++ b/src/wlserver.cpp +@@ -290,6 +290,9 @@ static void wlserver_handle_modifiers(struct wl_listener *listener, void *data) + bump_input_counter(); + } + ++// false if GS_ENABLE_CTRL_12 exists and is 0, true otherwise ++bool env_gs_enable_ctrl_12 = getenv("GS_ENABLE_CTRL_12") ? (getenv("GS_ENABLE_CTRL_12")[0] != '0') : true; ++ + static void wlserver_handle_key(struct wl_listener *listener, void *data) + { + struct wlserver_keyboard *keyboard = wl_container_of( listener, keyboard, key ); +@@ -310,7 +313,14 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data) + keysym == XKB_KEY_XF86AudioLowerVolume || + keysym == XKB_KEY_XF86AudioRaiseVolume || + keysym == XKB_KEY_XF86PowerOff; +- if ( ( event->state == WL_KEYBOARD_KEY_STATE_PRESSED || event->state == WL_KEYBOARD_KEY_STATE_RELEASED ) && forbidden_key ) ++ ++ // Check for steam overlay key (ctrl/super + 1/2) ++ bool is_steamshortcut = ++ ((env_gs_enable_ctrl_12 && (keyboard->wlr->modifiers.depressed & WLR_MODIFIER_CTRL)) || ++ (keyboard->wlr->modifiers.depressed & WLR_MODIFIER_LOGO)) && ++ (keysym == XKB_KEY_1 || keysym == XKB_KEY_2); ++ ++ if ( ( event->state == WL_KEYBOARD_KEY_STATE_PRESSED || event->state == WL_KEYBOARD_KEY_STATE_RELEASED ) && (forbidden_key || is_steamshortcut) ) + { + // Always send volume+/- to root server only, to avoid it reaching the game. + struct wlr_surface *old_kb_surf = wlserver.kb_focus_surface; +@@ -319,6 +329,13 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data) + { + wlserver_keyboardfocus( new_kb_surf, false ); + wlr_seat_set_keyboard( wlserver.wlr.seat, keyboard->wlr ); ++ if (is_steamshortcut) ++ { ++ // send ctrl down modifier to trigger the overlay ++ wlr_keyboard_modifiers ctrl_down_modifier; ++ ctrl_down_modifier.depressed = WLR_MODIFIER_CTRL; ++ wlr_seat_keyboard_notify_modifiers(wlserver.wlr.seat, &ctrl_down_modifier); ++ } + wlr_seat_keyboard_notify_key( wlserver.wlr.seat, event->time_msec, event->keycode, event->state ); + wlserver_keyboardfocus( old_kb_surf, false ); + return; +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Antheas Kapenekakis +Date: Fri, 11 Oct 2024 17:52:48 +0200 +Subject: fix: allow for disabling touch atom click + +Causes issues in certain devices (or not anymore?). + +Parameter option by Kyle. + +Co-authored-by: Kyle Gospodnetich +--- + src/main.cpp | 2 ++ + src/steamcompmgr.cpp | 5 ++++- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/main.cpp b/src/main.cpp +index 8381889..a76b51b 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -128,6 +128,7 @@ const struct option *gamescope_options = (struct option[]){ + { "disable-xres", no_argument, nullptr, 'x' }, + { "fade-out-duration", required_argument, nullptr, 0 }, + { "force-orientation", required_argument, nullptr, 0 }, ++ { "disable-touch-click", no_argument, nullptr, 0 }, + { "force-windows-fullscreen", no_argument, nullptr, 0 }, + { "custom-refresh-rates", required_argument, nullptr, 0 }, + +@@ -188,6 +189,7 @@ const char usage[] = + " -T, --stats-path write statistics to path\n" + " -C, --hide-cursor-delay hide cursor image after delay\n" + " -e, --steam enable Steam integration\n" ++ " --disable-touch-click disable touchscreen tap acting as a click\n" + " --xwayland-count create N xwayland servers\n" + " --prefer-vk-device prefer Vulkan device for compositing (ex: 1002:7300)\n" + " --force-orientation rotate the internal display (left, right, normal, upsidedown)\n" +diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp +index df7616d..4a17499 100644 +--- a/src/steamcompmgr.cpp ++++ b/src/steamcompmgr.cpp +@@ -197,6 +197,7 @@ update_runtime_info(); + gamescope::ConVar cv_adaptive_sync( "adaptive_sync", false, "Whether or not adaptive sync is enabled if available." ); + gamescope::ConVar cv_adaptive_sync_ignore_overlay( "adaptive_sync_ignore_overlay", false, "Whether or not to ignore overlay planes for pushing commits with adaptive sync." ); + gamescope::ConVar cv_adaptive_sync_overlay_cycles( "adaptive_sync_overlay_cycles", 1, "Number of vblank cycles to ignore overlay repaints before forcing a commit with adaptive sync." ); ++gamescope::ConVar cv_disable_touch_click{ "disable_touch_click", false, "Prevents touchscreen taps acting as clicks" }; + + uint64_t g_SteamCompMgrLimitedAppRefreshCycle = 16'666'666; + uint64_t g_SteamCompMgrAppRefreshCycle = 16'666'666; +@@ -5185,7 +5186,7 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) + MakeFocusDirty(); + } + } +- if (ev->atom == ctx->atoms.steamTouchClickModeAtom ) ++ if (ev->atom == ctx->atoms.steamTouchClickModeAtom && !cv_disable_touch_click ) + { + gamescope::cv_touch_click_mode = (gamescope::TouchClickMode) get_prop(ctx, ctx->root, ctx->atoms.steamTouchClickModeAtom, 0u ); + } +@@ -7476,6 +7477,8 @@ steamcompmgr_main(int argc, char **argv) + g_reshade_technique_idx = atoi(optarg); + } else if (strcmp(opt_name, "mura-map") == 0) { + set_mura_overlay(optarg); ++ } else if (strcmp(opt_name, "disable-touch-click") == 0) { ++ cv_disable_touch_click = true; + } + break; + case '?': +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Antheas Kapenekakis +Date: Fri, 11 Oct 2024 21:56:54 +0200 +Subject: fix(intel-gpu): allow for (enabling) hacky texture + +Disabling hacky texture will use more hardware planes, causing some devices to composite yielding lower fps. Required for intel to work +--- + src/main.cpp | 2 ++ + src/steamcompmgr.cpp | 5 ++++- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/main.cpp b/src/main.cpp +index a76b51b..84e05a9 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -128,6 +128,7 @@ const struct option *gamescope_options = (struct option[]){ + { "disable-xres", no_argument, nullptr, 'x' }, + { "fade-out-duration", required_argument, nullptr, 0 }, + { "force-orientation", required_argument, nullptr, 0 }, ++ { "enable-hacky-texture", no_argument, nullptr, 0 }, + { "disable-touch-click", no_argument, nullptr, 0 }, + { "force-windows-fullscreen", no_argument, nullptr, 0 }, + { "custom-refresh-rates", required_argument, nullptr, 0 }, +@@ -189,6 +190,7 @@ const char usage[] = + " -T, --stats-path write statistics to path\n" + " -C, --hide-cursor-delay hide cursor image after delay\n" + " -e, --steam enable Steam integration\n" ++ " --enable-hacky-texture enable hacky texture on hw that support it\n" + " --disable-touch-click disable touchscreen tap acting as a click\n" + " --xwayland-count create N xwayland servers\n" + " --prefer-vk-device prefer Vulkan device for compositing (ex: 1002:7300)\n" +diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp +index 4a17499..da3115f 100644 +--- a/src/steamcompmgr.cpp ++++ b/src/steamcompmgr.cpp +@@ -147,6 +147,7 @@ static lut3d_t g_tmpLut3d; + extern int g_nDynamicRefreshHz; + + bool g_bForceHDRSupportDebug = false; ++bool g_bHackyEnabled = false; + extern float g_flInternalDisplayBrightnessNits; + extern float g_flHDRItmSdrNits; + extern float g_flHDRItmTargetNits; +@@ -2412,7 +2413,7 @@ paint_all(bool async) + if ( overlay == global_focus.inputFocusWindow ) + update_touch_scaling( &frameInfo ); + } +- else if ( !GetBackend()->UsesVulkanSwapchain() && GetBackend()->IsSessionBased() ) ++ else if ( g_bHackyEnabled && !GetBackend()->UsesVulkanSwapchain() && GetBackend()->IsSessionBased() ) + { + auto tex = vulkan_get_hacky_blank_texture(); + if ( tex != nullptr ) +@@ -7479,6 +7480,8 @@ steamcompmgr_main(int argc, char **argv) + set_mura_overlay(optarg); + } else if (strcmp(opt_name, "disable-touch-click") == 0) { + cv_disable_touch_click = true; ++ } else if (strcmp(opt_name, "enable-hacky-texture") == 0) { ++ g_bHackyEnabled = true; + } + break; + case '?': +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Antheas Kapenekakis +Date: Fri, 11 Oct 2024 23:01:13 +0200 +Subject: fix: re-add external orientation options to not break current + sessions (incl. applying ext. orientation) + +--- + src/main.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/main.cpp b/src/main.cpp +index 84e05a9..2398535 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -129,6 +129,8 @@ const struct option *gamescope_options = (struct option[]){ + { "fade-out-duration", required_argument, nullptr, 0 }, + { "force-orientation", required_argument, nullptr, 0 }, + { "enable-hacky-texture", no_argument, nullptr, 0 }, ++ { "force-panel-type", required_argument, nullptr, 0 }, ++ { "force-external-orientation", required_argument, nullptr, 0 }, + { "disable-touch-click", no_argument, nullptr, 0 }, + { "force-windows-fullscreen", no_argument, nullptr, 0 }, + { "custom-refresh-rates", required_argument, nullptr, 0 }, +@@ -777,7 +779,7 @@ int main(int argc, char **argv) + gamescope::cv_touch_click_mode = (gamescope::TouchClickMode) atoi( optarg ); + } else if (strcmp(opt_name, "generate-drm-mode") == 0) { + g_eGamescopeModeGeneration = parse_gamescope_mode_generation( optarg ); +- } else if (strcmp(opt_name, "force-orientation") == 0) { ++ } else if (strcmp(opt_name, "force-orientation") == 0 || strcmp(opt_name, "force-external-orientation") == 0) { + g_DesiredInternalOrientation = force_orientation( optarg ); + } else if (strcmp(opt_name, "custom-refresh-rates") == 0) { + g_customRefreshRates = parse_custom_refresh_rates( optarg ); +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: honjow +Date: Wed, 16 Oct 2024 00:23:58 +0800 +Subject: fix(external): fix crash when using external touchscreens + +--- + src/wlserver.cpp | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/wlserver.cpp b/src/wlserver.cpp +index 99df8aa..5e8f516 100644 +--- a/src/wlserver.cpp ++++ b/src/wlserver.cpp +@@ -2492,8 +2492,12 @@ static void apply_touchscreen_orientation(double *x, double *y ) + double tx = 0; + double ty = 0; + +- // Use internal screen always for orientation purposes. +- switch ( GetBackend()->GetConnector( gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL )->GetCurrentOrientation() ) ++ auto orientation = GAMESCOPE_PANEL_ORIENTATION_AUTO; ++ if ( GetBackend() && GetBackend()->GetCurrentConnector( ) ) ++ { ++ orientation = GetBackend()->GetCurrentConnector()->GetCurrentOrientation(); ++ } ++ switch ( orientation ) + { + default: + case GAMESCOPE_PANEL_ORIENTATION_AUTO: +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Antheas Kapenekakis +Date: Fri, 11 Oct 2024 23:47:59 +0200 +Subject: feat(vrr): allow for setting refresh rate if the internal display + allows + +For the Ally, we have a set of VFP that work to set the refresh rate. +They can also be used for VRR but gamescope does not currently allow for +it. Therefore, bypass some checks to allow it to work just for this usecase. +--- + src/main.cpp | 2 ++ + src/steamcompmgr.cpp | 7 +++++-- + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/src/main.cpp b/src/main.cpp +index 2398535..0621c65 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -132,6 +132,7 @@ const struct option *gamescope_options = (struct option[]){ + { "force-panel-type", required_argument, nullptr, 0 }, + { "force-external-orientation", required_argument, nullptr, 0 }, + { "disable-touch-click", no_argument, nullptr, 0 }, ++ { "enable-vrr-modesetting", no_argument, nullptr, 0 }, + { "force-windows-fullscreen", no_argument, nullptr, 0 }, + { "custom-refresh-rates", required_argument, nullptr, 0 }, + +@@ -194,6 +195,7 @@ const char usage[] = + " -e, --steam enable Steam integration\n" + " --enable-hacky-texture enable hacky texture on hw that support it\n" + " --disable-touch-click disable touchscreen tap acting as a click\n" ++ " --enable-vrr-modesetting enable setting framerate while VRR is on in the internal display\n" + " --xwayland-count create N xwayland servers\n" + " --prefer-vk-device prefer Vulkan device for compositing (ex: 1002:7300)\n" + " --force-orientation rotate the internal display (left, right, normal, upsidedown)\n" +diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp +index da3115f..69fd348 100644 +--- a/src/steamcompmgr.cpp ++++ b/src/steamcompmgr.cpp +@@ -148,6 +148,7 @@ extern int g_nDynamicRefreshHz; + + bool g_bForceHDRSupportDebug = false; + bool g_bHackyEnabled = false; ++bool g_bVRRModesetting = false; + extern float g_flInternalDisplayBrightnessNits; + extern float g_flHDRItmSdrNits; + extern float g_flHDRItmTargetNits; +@@ -899,7 +900,7 @@ bool g_bChangeDynamicRefreshBasedOnGameOpenRatherThanActive = false; + bool steamcompmgr_window_should_limit_fps( steamcompmgr_win_t *w ) + { + // VRR + FPS Limit needs another approach. +- if ( GetBackend()->IsVRRActive() ) ++ if ( GetBackend()->IsVRRActive() && !(g_bVRRModesetting && GetBackend()->GetScreenType() == gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL) ) + return false; + + return w && !window_is_steam( w ) && !w->isOverlay && !w->isExternalOverlay; +@@ -923,7 +924,7 @@ steamcompmgr_user_has_any_game_open() + + bool steamcompmgr_window_should_refresh_switch( steamcompmgr_win_t *w ) + { +- if ( GetBackend()->IsVRRActive() ) ++ if ( GetBackend()->IsVRRActive() && !(g_bVRRModesetting && GetBackend()->GetScreenType() == gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL)) + return false; + + if ( g_bChangeDynamicRefreshBasedOnGameOpenRatherThanActive ) +@@ -7480,6 +7481,8 @@ steamcompmgr_main(int argc, char **argv) + set_mura_overlay(optarg); + } else if (strcmp(opt_name, "disable-touch-click") == 0) { + cv_disable_touch_click = true; ++ } else if (strcmp(opt_name, "enable-vrr-modesetting") == 0) { ++ g_bVRRModesetting = true; + } else if (strcmp(opt_name, "enable-hacky-texture") == 0) { + g_bHackyEnabled = true; + } +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Antheas Kapenekakis +Date: Fri, 11 Oct 2024 19:09:05 +0200 +Subject: feat: add external option that now only lies to steam + +Previously, there was a force-panel option that allowed for VRR. +However, this is no longer the case and VRR works fine. +This option still allows for scaling the display though. So, create a +variant of the patch that only does that. +--- + src/main.cpp | 16 ++++++++++++++++ + src/steamcompmgr.cpp | 2 +- + src/steamcompmgr.hpp | 1 + + src/wlserver.cpp | 2 +- + src/wlserver.hpp | 1 + + 5 files changed, 20 insertions(+), 2 deletions(-) + +diff --git a/src/main.cpp b/src/main.cpp +index 0621c65..056e1c1 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -199,6 +199,7 @@ const char usage[] = + " --xwayland-count create N xwayland servers\n" + " --prefer-vk-device prefer Vulkan device for compositing (ex: 1002:7300)\n" + " --force-orientation rotate the internal display (left, right, normal, upsidedown)\n" ++ " --force-panel-type lie to steam that the screen is external\n" + " --force-windows-fullscreen force windows inside of gamescope to be the size of the nested display (fullscreen)\n" + " --cursor-scale-height if specified, sets a base output height to linearly scale the cursor against.\n" + " --hdr-enabled enable HDR output (needs Gamescope WSI layer enabled for support from clients)\n" +@@ -373,6 +374,19 @@ static GamescopePanelOrientation force_orientation(const char *str) + } + } + ++bool g_FakeExternal = false; ++static bool force_panel_type_external(const char *str) ++{ ++ if (strcmp(str, "internal") == 0) { ++ return false; ++ } else if (strcmp(str, "external") == 0) { ++ return true; ++ } else { ++ fprintf( stderr, "gamescope: invalid value for --force-panel-type\n" ); ++ exit(1); ++ } ++} ++ + static enum GamescopeUpscaleScaler parse_upscaler_scaler(const char *str) + { + if (strcmp(str, "auto") == 0) { +@@ -783,6 +797,8 @@ int main(int argc, char **argv) + g_eGamescopeModeGeneration = parse_gamescope_mode_generation( optarg ); + } else if (strcmp(opt_name, "force-orientation") == 0 || strcmp(opt_name, "force-external-orientation") == 0) { + g_DesiredInternalOrientation = force_orientation( optarg ); ++ } else if (strcmp(opt_name, "force-panel-type") == 0) { ++ g_FakeExternal = force_panel_type_external( optarg ); + } else if (strcmp(opt_name, "custom-refresh-rates") == 0) { + g_customRefreshRates = parse_custom_refresh_rates( optarg ); + } else if (strcmp(opt_name, "sharpness") == 0 || +diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp +index 69fd348..3dd64f8 100644 +--- a/src/steamcompmgr.cpp ++++ b/src/steamcompmgr.cpp +@@ -7192,7 +7192,7 @@ void update_mode_atoms(xwayland_ctx_t *root_ctx, bool* needs_flush = nullptr) + if (needs_flush) + *needs_flush = true; + +- if ( GetBackend()->GetCurrentConnector() && GetBackend()->GetCurrentConnector()->GetScreenType() == gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL ) ++ if ( !g_FakeExternal && GetBackend()->GetCurrentConnector() && GetBackend()->GetCurrentConnector()->GetScreenType() == gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL ) + { + XDeleteProperty(root_ctx->dpy, root_ctx->root, root_ctx->atoms.gamescopeDisplayModeListExternal); + +diff --git a/src/steamcompmgr.hpp b/src/steamcompmgr.hpp +index 9f384c4..30e48e8 100644 +--- a/src/steamcompmgr.hpp ++++ b/src/steamcompmgr.hpp +@@ -127,6 +127,7 @@ extern float focusedWindowScaleY; + extern float focusedWindowOffsetX; + extern float focusedWindowOffsetY; + ++extern bool g_FakeExternal; + extern bool g_bFSRActive; + + extern uint32_t inputCounter; +diff --git a/src/wlserver.cpp b/src/wlserver.cpp +index 5e8f516..1eeaa25 100644 +--- a/src/wlserver.cpp ++++ b/src/wlserver.cpp +@@ -1078,7 +1078,7 @@ static uint32_t get_conn_display_info_flags() + return 0; + + uint32_t flags = 0; +- if ( pConn->GetScreenType() == gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL ) ++ if ( pConn->GetScreenType() == gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL && !g_FakeExternal ) + flags |= GAMESCOPE_CONTROL_DISPLAY_FLAG_INTERNAL_DISPLAY; + if ( pConn->SupportsVRR() ) + flags |= GAMESCOPE_CONTROL_DISPLAY_FLAG_SUPPORTS_VRR; +diff --git a/src/wlserver.hpp b/src/wlserver.hpp +index 0569472..104f7a2 100644 +--- a/src/wlserver.hpp ++++ b/src/wlserver.hpp +@@ -190,6 +190,7 @@ struct wlserver_t { + }; + + extern struct wlserver_t wlserver; ++extern bool g_FakeExternal; + + std::vector wlserver_xdg_commit_queue(); + +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Antheas Kapenekakis +Date: Mon, 14 Oct 2024 22:42:20 +0200 +Subject: fix(display-config): always fill in mutable refresh rates + +Assume the user is not lying to us when they fill in dynamic_refresh_rates +and that gamescope will work with e.g., CVT, so accept it even if no +custom modeline generation has been provided. +--- + src/Backends/DRMBackend.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp +index 75c3258..f014be9 100644 +--- a/src/Backends/DRMBackend.cpp ++++ b/src/Backends/DRMBackend.cpp +@@ -2161,7 +2161,9 @@ namespace gamescope + sol::optional otDynamicRefreshRates = tTable["dynamic_refresh_rates"]; + sol::optional ofnDynamicModegen = tTable["dynamic_modegen"]; + +- if ( otDynamicRefreshRates && ofnDynamicModegen ) ++ if ( otDynamicRefreshRates && !ofnDynamicModegen ) ++ m_Mutable.ValidDynamicRefreshRates = TableToVector( *otDynamicRefreshRates ); ++ else if ( otDynamicRefreshRates && ofnDynamicModegen ) + { + m_Mutable.ValidDynamicRefreshRates = TableToVector( *otDynamicRefreshRates ); + +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Antheas Kapenekakis +Date: Fri, 25 Oct 2024 21:22:10 +0200 +Subject: fix(vrr): allow frame limiter to work with VRR enabled + +Down to 48hz, modeset the correct framerate. Below 48hz, +disable VRR and use the classic frame limiter. +--- + src/steamcompmgr.cpp | 30 ++++++++++++++++++++++++++++-- + 1 file changed, 28 insertions(+), 2 deletions(-) + +diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp +index 3dd64f8..7dacfe7 100644 +--- a/src/steamcompmgr.cpp ++++ b/src/steamcompmgr.cpp +@@ -165,6 +165,7 @@ uint32_t g_reshade_technique_idx = 0; + + bool g_bSteamIsActiveWindow = false; + bool g_bForceInternal = false; ++bool g_bVRRRequested = false; + + static std::vector< steamcompmgr_win_t* > GetGlobalPossibleFocusWindows(); + static bool +@@ -827,6 +828,28 @@ static void _update_app_target_refresh_cycle() + { + auto rates = GetBackend()->GetCurrentConnector()->GetValidDynamicRefreshRates(); + ++ if (g_bVRRModesetting) { ++ if (g_bVRRRequested) { ++ // If modeset VRR, go upwards to match the refresh rate 1-1. Refresh ++ // doubling would hurt us here by breaking the frame limiter. ++ for ( auto rate = rates.begin(); rate != rates.end(); rate++ ) ++ { ++ if ((int)*rate == target_fps) ++ { ++ g_nDynamicRefreshRate[ type ] = *rate; ++ // Enable VRR as we have the correct refresh rate ++ cv_adaptive_sync = true; ++ return; ++ } ++ } ++ // Otherwise, disable VRR as we can't match the refresh rate 1-1 ++ // (e.g., below 48hz). ++ cv_adaptive_sync = false; ++ } else { ++ cv_adaptive_sync = false; ++ } ++ } ++ + // Find highest mode to do refresh doubling with. + for ( auto rate = rates.rbegin(); rate != rates.rend(); rate++ ) + { +@@ -5522,8 +5545,11 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) + } + if ( ev->atom == ctx->atoms.gamescopeVRREnabled ) + { +- bool enabled = !!get_prop( ctx, ctx->root, ctx->atoms.gamescopeVRREnabled, 0 ); +- cv_adaptive_sync = enabled; ++ g_bVRRRequested = !!get_prop( ctx, ctx->root, ctx->atoms.gamescopeVRREnabled, 0 ); ++ // Try to match refresh rate and have that set the cv_adaptive_sync only if it can ++ if (g_bVRRModesetting) update_app_target_refresh_cycle(); ++ // otherwise, fall back to original behavior ++ else cv_adaptive_sync = g_bVRRRequested; + } + if ( ev->atom == ctx->atoms.gamescopeDisplayForceInternal ) + { +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Antheas Kapenekakis +Date: Wed, 30 Oct 2024 00:39:03 +0100 +Subject: fix(battery): run at half hz while at steamUI and disable VRR V2 + + param + +--- + src/steamcompmgr.cpp | 43 ++++++++++++++++++++++++++++++++----------- + 1 file changed, 32 insertions(+), 11 deletions(-) + +diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp +index 7dacfe7..4098c44 100644 +--- a/src/steamcompmgr.cpp ++++ b/src/steamcompmgr.cpp +@@ -166,6 +166,9 @@ uint32_t g_reshade_technique_idx = 0; + bool g_bSteamIsActiveWindow = false; + bool g_bForceInternal = false; + bool g_bVRRRequested = false; ++bool g_bVRRCanEnable = false; ++bool b_bForceFrameLimit = false; ++bool g_bRefreshHalveEnable = false; + + static std::vector< steamcompmgr_win_t* > GetGlobalPossibleFocusWindows(); + static bool +@@ -793,6 +796,7 @@ uint64_t g_uCurrentBasePlaneCommitID = 0; + bool g_bCurrentBasePlaneIsFifo = false; + + static int g_nSteamCompMgrTargetFPS = 0; ++static int g_nSteamCompMgrTargetFPSreq = 0; + static uint64_t g_uDynamicRefreshEqualityTime = 0; + static int g_nDynamicRefreshRate[gamescope::GAMESCOPE_SCREEN_TYPE_COUNT] = { 0, 0 }; + // Delay to stop modes flickering back and forth. +@@ -812,7 +816,7 @@ static void _update_app_target_refresh_cycle() + int target_fps = g_nCombinedAppRefreshCycleOverride[type]; + + g_nDynamicRefreshRate[ type ] = 0; +- g_nSteamCompMgrTargetFPS = 0; ++ g_nSteamCompMgrTargetFPSreq = 0; + + if ( !target_fps ) + { +@@ -821,7 +825,7 @@ static void _update_app_target_refresh_cycle() + + if ( g_nCombinedAppRefreshCycleChangeFPS[ type ] ) + { +- g_nSteamCompMgrTargetFPS = target_fps; ++ g_nSteamCompMgrTargetFPSreq = target_fps; + } + + if ( g_nCombinedAppRefreshCycleChangeRefresh[ type ] ) +@@ -838,15 +842,15 @@ static void _update_app_target_refresh_cycle() + { + g_nDynamicRefreshRate[ type ] = *rate; + // Enable VRR as we have the correct refresh rate +- cv_adaptive_sync = true; ++ g_bVRRCanEnable = true; + return; + } + } + // Otherwise, disable VRR as we can't match the refresh rate 1-1 + // (e.g., below 48hz). +- cv_adaptive_sync = false; ++ g_bVRRCanEnable = false; + } else { +- cv_adaptive_sync = false; ++ g_bVRRCanEnable = false; + } + } + +@@ -864,9 +868,9 @@ static void _update_app_target_refresh_cycle() + + static void update_app_target_refresh_cycle() + { +- int nPrevFPSLimit = g_nSteamCompMgrTargetFPS; ++ int nPrevFPSLimit = g_nSteamCompMgrTargetFPSreq; + _update_app_target_refresh_cycle(); +- if ( !!g_nSteamCompMgrTargetFPS != !!nPrevFPSLimit ) ++ if ( !!g_nSteamCompMgrTargetFPSreq != !!nPrevFPSLimit ) + update_runtime_info(); + } + +@@ -5052,7 +5056,7 @@ update_runtime_info() + if ( g_nRuntimeInfoFd < 0 ) + return; + +- uint32_t limiter_enabled = g_nSteamCompMgrTargetFPS != 0 ? 1 : 0; ++ uint32_t limiter_enabled = g_nSteamCompMgrTargetFPSreq != 0 ? 1 : 0; + pwrite( g_nRuntimeInfoFd, &limiter_enabled, sizeof( limiter_enabled ), 0 ); + } + +@@ -5109,7 +5113,7 @@ static bool steamcompmgr_should_vblank_window( bool bShouldLimitFPS, uint64_t vb + + int nRefreshHz = gamescope::ConvertmHzToHz( g_nNestedRefresh ? g_nNestedRefresh : g_nOutputRefresh ); + int nTargetFPS = g_nSteamCompMgrTargetFPS; +- if ( g_nSteamCompMgrTargetFPS && bShouldLimitFPS && nRefreshHz > nTargetFPS ) ++ if ( g_nSteamCompMgrTargetFPS && (bShouldLimitFPS || b_bForceFrameLimit) && nRefreshHz > nTargetFPS ) + { + int nVblankDivisor = nRefreshHz / nTargetFPS; + +@@ -5485,7 +5489,7 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) + } + if ( ev->atom == ctx->atoms.gamescopeFPSLimit ) + { +- g_nSteamCompMgrTargetFPS = get_prop( ctx, ctx->root, ctx->atoms.gamescopeFPSLimit, 0 ); ++ g_nSteamCompMgrTargetFPSreq = get_prop( ctx, ctx->root, ctx->atoms.gamescopeFPSLimit, 0 ); + update_runtime_info(); + } + for (int i = 0; i < gamescope::GAMESCOPE_SCREEN_TYPE_COUNT; i++) +@@ -5549,7 +5553,7 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) + // Try to match refresh rate and have that set the cv_adaptive_sync only if it can + if (g_bVRRModesetting) update_app_target_refresh_cycle(); + // otherwise, fall back to original behavior +- else cv_adaptive_sync = g_bVRRRequested; ++ else g_bVRRCanEnable = g_bVRRRequested; + } + if ( ev->atom == ctx->atoms.gamescopeDisplayForceInternal ) + { +@@ -7628,6 +7632,23 @@ steamcompmgr_main(int argc, char **argv) + // as a question. + const bool bIsVBlankFromTimer = vblank; + ++ if ( g_bRefreshHalveEnable && window_is_steam( global_focus.focusWindow ) ) { ++ // Halve refresh rate and disable vrr on SteamUI ++ cv_adaptive_sync = false; ++ int nRealRefreshHz = gamescope::ConvertmHzToHz( g_nNestedRefresh ? g_nNestedRefresh : g_nOutputRefresh ); ++ if (nRealRefreshHz > 100 && g_nSteamCompMgrTargetFPSreq > 34) { ++ g_nSteamCompMgrTargetFPS = nRealRefreshHz / 2; ++ b_bForceFrameLimit = true; ++ } else { ++ g_nSteamCompMgrTargetFPS = g_nSteamCompMgrTargetFPSreq; ++ b_bForceFrameLimit = false; ++ } ++ } else { ++ cv_adaptive_sync = g_bVRRCanEnable; ++ g_nSteamCompMgrTargetFPS = g_nSteamCompMgrTargetFPSreq; ++ b_bForceFrameLimit = false; ++ } ++ + // We can always vblank if VRR. + const bool bVRR = GetBackend()->IsVRRActive(); + if ( bVRR ) +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Antheas Kapenekakis +Date: Fri, 1 Nov 2024 17:27:54 +0100 +Subject: feat(battery): add atom for controlling frame halving + +--- + src/steamcompmgr.cpp | 6 ++++++ + src/xwayland_ctx.hpp | 2 ++ + 2 files changed, 8 insertions(+) + +diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp +index 4098c44..6c8ce74 100644 +--- a/src/steamcompmgr.cpp ++++ b/src/steamcompmgr.cpp +@@ -5919,6 +5919,10 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) + MakeFocusDirty(); + } + } ++ if ( ev->atom == ctx->atoms.gamescopeFrameHalveAtom ) ++ { ++ g_bRefreshHalveEnable = !!get_prop( ctx, ctx->root, ctx->atoms.gamescopeFrameHalveAtom, 0 ); ++ } + } + + static int +@@ -7089,6 +7093,8 @@ void init_xwayland_ctx(uint32_t serverId, gamescope_xwayland_server_t *xwayland_ + ctx->atoms.primarySelection = XInternAtom(ctx->dpy, "PRIMARY", false); + ctx->atoms.targets = XInternAtom(ctx->dpy, "TARGETS", false); + ++ ctx->atoms.gamescopeFrameHalveAtom = XInternAtom( ctx->dpy, "GAMESCOPE_STEAMUI_HALFHZ", false );; ++ + ctx->root_width = DisplayWidth(ctx->dpy, ctx->scr); + ctx->root_height = DisplayHeight(ctx->dpy, ctx->scr); + +diff --git a/src/xwayland_ctx.hpp b/src/xwayland_ctx.hpp +index df2af70..e4eec9f 100644 +--- a/src/xwayland_ctx.hpp ++++ b/src/xwayland_ctx.hpp +@@ -246,6 +246,8 @@ struct xwayland_ctx_t final : public gamescope::IWaitable + Atom clipboard; + Atom primarySelection; + Atom targets; ++ ++ Atom gamescopeFrameHalveAtom; + } atoms; + + bool HasQueuedEvents(); +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Antheas Kapenekakis +Date: Wed, 13 Nov 2024 17:22:05 +0100 +Subject: feat: add DPMS support through an Atom + +--- + src/Backends/DRMBackend.cpp | 16 +++++++++++++--- + src/rendervulkan.hpp | 2 ++ + src/steamcompmgr.cpp | 15 ++++++++++++--- + src/xwayland_ctx.hpp | 1 + + 4 files changed, 28 insertions(+), 6 deletions(-) + +diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp +index f014be9..6bb0b88 100644 +--- a/src/Backends/DRMBackend.cpp ++++ b/src/Backends/DRMBackend.cpp +@@ -2669,6 +2669,9 @@ int drm_prepare( struct drm_t *drm, bool async, const struct FrameInfo_t *frameI + drm->needs_modeset = true; + } + ++ if (drm->pCRTC && drm->pCRTC->GetProperties().ACTIVE->GetCurrentValue() != !frameInfo->dpms) ++ drm->needs_modeset = true; ++ + drm_colorspace uColorimetry = DRM_MODE_COLORIMETRY_DEFAULT; + + const bool bWantsHDR10 = g_bOutputHDREnabled && frameInfo->outputEncodingEOTF == EOTF_PQ; +@@ -2724,7 +2727,7 @@ int drm_prepare( struct drm_t *drm, bool async, const struct FrameInfo_t *frameI + uint32_t flags = DRM_MODE_ATOMIC_NONBLOCK; + + // We do internal refcounting with these events +- if ( drm->pCRTC != nullptr ) ++ if ( !frameInfo->dpms && drm->pCRTC != nullptr) + flags |= DRM_MODE_PAGE_FLIP_EVENT; + + if ( async || g_bForceAsyncFlips ) +@@ -2797,7 +2800,13 @@ int drm_prepare( struct drm_t *drm, bool async, const struct FrameInfo_t *frameI + + if ( drm->pCRTC ) + { +- drm->pCRTC->GetProperties().ACTIVE->SetPendingValue( drm->req, 1u, true ); ++ if ( frameInfo->dpms ) { ++ // We can't disable a CRTC if it's already disabled ++ if (drm->pCRTC->GetProperties().ACTIVE->GetCurrentValue() != 0) ++ drm->pCRTC->GetProperties().ACTIVE->SetPendingValue(drm->req, 0, true); ++ } ++ else ++ drm->pCRTC->GetProperties().ACTIVE->SetPendingValue( drm->req, 1u, true ); + drm->pCRTC->GetProperties().MODE_ID->SetPendingValue( drm->req, drm->pending.mode_id ? drm->pending.mode_id->GetBlobValue() : 0lu, true ); + + if ( drm->pCRTC->GetProperties().VRR_ENABLED ) +@@ -2828,7 +2837,7 @@ int drm_prepare( struct drm_t *drm, bool async, const struct FrameInfo_t *frameI + drm->flags = flags; + + int ret; +- if ( drm->pCRTC == nullptr ) { ++ if (frameInfo->dpms || drm->pCRTC == nullptr ) { + ret = 0; + } else if ( drm->bUseLiftoff ) { + ret = drm_prepare_liftoff( drm, frameInfo, needs_modeset ); +@@ -3391,6 +3400,7 @@ namespace gamescope + + FrameInfo_t presentCompFrameInfo = {}; + presentCompFrameInfo.allowVRR = pFrameInfo->allowVRR; ++ presentCompFrameInfo.dpms = pFrameInfo->dpms; + presentCompFrameInfo.outputEncodingEOTF = pFrameInfo->outputEncodingEOTF; + + if ( bNeedsFullComposite ) +diff --git a/src/rendervulkan.hpp b/src/rendervulkan.hpp +index b537170..ccabd88 100644 +--- a/src/rendervulkan.hpp ++++ b/src/rendervulkan.hpp +@@ -281,6 +281,8 @@ struct FrameInfo_t + bool applyOutputColorMgmt; // drm only + EOTF outputEncodingEOTF; + ++ bool dpms; ++ + int layerCount; + struct Layer_t + { +diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp +index 6c8ce74..dfee904 100644 +--- a/src/steamcompmgr.cpp ++++ b/src/steamcompmgr.cpp +@@ -169,6 +169,8 @@ bool g_bVRRRequested = false; + bool g_bVRRCanEnable = false; + bool b_bForceFrameLimit = false; + bool g_bRefreshHalveEnable = false; ++bool g_bDPMS = false; ++bool g_bDPMS_set = false; + + static std::vector< steamcompmgr_win_t* > GetGlobalPossibleFocusWindows(); + static bool +@@ -2271,7 +2273,7 @@ bool ShouldDrawCursor() + } + + static void +-paint_all(bool async) ++paint_all(bool async, bool dpms) + { + gamescope_xwayland_server_t *root_server = wlserver_get_xwayland_server(0); + xwayland_ctx_t *root_ctx = root_server->ctx.get(); +@@ -2322,6 +2324,7 @@ paint_all(bool async) + frameInfo.outputEncodingEOTF = g_ColorMgmt.pending.outputEncodingEOTF; + frameInfo.allowVRR = cv_adaptive_sync; + frameInfo.bFadingOut = fadingOut; ++ frameInfo.dpms = dpms; + + // If the window we'd paint as the base layer is the streaming client, + // find the video underlay and put it up first in the scenegraph +@@ -5923,6 +5926,10 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) + { + g_bRefreshHalveEnable = !!get_prop( ctx, ctx->root, ctx->atoms.gamescopeFrameHalveAtom, 0 ); + } ++ if (ev->atom == ctx->atoms.gamescopeDPMS) ++ { ++ g_bDPMS = !!get_prop(ctx, ctx->root, ctx->atoms.gamescopeDPMS, 0); ++ } + } + + static int +@@ -7094,6 +7101,7 @@ void init_xwayland_ctx(uint32_t serverId, gamescope_xwayland_server_t *xwayland_ + ctx->atoms.targets = XInternAtom(ctx->dpy, "TARGETS", false); + + ctx->atoms.gamescopeFrameHalveAtom = XInternAtom( ctx->dpy, "GAMESCOPE_STEAMUI_HALFHZ", false );; ++ ctx->atoms.gamescopeDPMS = XInternAtom(ctx->dpy, "GAMESCOPE_DPMS", false); + + ctx->root_width = DisplayWidth(ctx->dpy, ctx->scr); + ctx->root_height = DisplayHeight(ctx->dpy, ctx->scr); +@@ -8061,9 +8069,10 @@ steamcompmgr_main(int argc, char **argv) + bShouldPaint = false; + } + +- if ( bShouldPaint ) ++ if (bShouldPaint || (g_bDPMS != g_bDPMS_set && vblank)) + { +- paint_all( eFlipType == FlipType::Async ); ++ g_bDPMS_set = g_bDPMS; ++ paint_all( eFlipType == FlipType::Async, g_bDPMS ); + + hasRepaint = false; + hasRepaintNonBasePlane = false; +diff --git a/src/xwayland_ctx.hpp b/src/xwayland_ctx.hpp +index e4eec9f..2347cbb 100644 +--- a/src/xwayland_ctx.hpp ++++ b/src/xwayland_ctx.hpp +@@ -248,6 +248,7 @@ struct xwayland_ctx_t final : public gamescope::IWaitable + Atom targets; + + Atom gamescopeFrameHalveAtom; ++ Atom gamescopeDPMS; + } atoms; + + bool HasQueuedEvents(); +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Joshua Tam <297250+joshuatam@users.noreply.github.com> +Date: Fri, 6 Dec 2024 16:51:02 +0800 +Subject: feat: add rotation shader for rotating output + +--- + src/Backends/DRMBackend.cpp | 29 +++++++- + src/main.cpp | 6 ++ + src/main.hpp | 1 + + src/meson.build | 1 + + src/rendervulkan.cpp | 126 ++++++++++++++++++++++++++++++----- + src/rendervulkan.hpp | 6 +- + src/shaders/cs_rotation.comp | 53 +++++++++++++++ + src/wlserver.cpp | 5 ++ + 8 files changed, 208 insertions(+), 19 deletions(-) + create mode 100644 src/shaders/cs_rotation.comp + +diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp +index 6bb0b88..506963d 100644 +--- a/src/Backends/DRMBackend.cpp ++++ b/src/Backends/DRMBackend.cpp +@@ -1752,7 +1752,7 @@ LiftoffStateCacheEntry FrameInfoToLiftoffStateCacheEntry( struct drm_t *drm, con + uint64_t crtcW = srcWidth / frameInfo->layers[ i ].scale.x; + uint64_t crtcH = srcHeight / frameInfo->layers[ i ].scale.y; + +- if (g_bRotated) ++ if (g_bRotated && !g_bUseRotationShader) + { + int64_t imageH = frameInfo->layers[ i ].tex->contentHeight() / frameInfo->layers[ i ].scale.y; + +@@ -2045,6 +2045,17 @@ namespace gamescope + + void CDRMConnector::UpdateEffectiveOrientation( const drmModeModeInfo *pMode ) + { ++ if (g_bUseRotationShader) ++ { ++ drm_log.infof("Using rotation shader"); ++ if (g_DesiredInternalOrientation == GAMESCOPE_PANEL_ORIENTATION_270) { ++ m_ChosenOrientation = GAMESCOPE_PANEL_ORIENTATION_180; ++ } else { ++ m_ChosenOrientation = GAMESCOPE_PANEL_ORIENTATION_0; ++ } ++ return; ++ } ++ + if ( this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO ) + { + m_ChosenOrientation = g_DesiredInternalOrientation; +@@ -3035,6 +3046,15 @@ bool drm_set_mode( struct drm_t *drm, const drmModeModeInfo *mode ) + g_bRotated = false; + g_nOutputWidth = mode->hdisplay; + g_nOutputHeight = mode->vdisplay; ++ ++ if (g_bUseRotationShader && drm->pConnector->GetScreenType() == gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL) { ++ g_bRotated = true; ++ g_nOutputWidth = mode->vdisplay; ++ g_nOutputHeight = mode->hdisplay; ++ } else { ++ g_bUseRotationShader = false; ++ } ++ + break; + case GAMESCOPE_PANEL_ORIENTATION_90: + case GAMESCOPE_PANEL_ORIENTATION_270: +@@ -3294,6 +3314,11 @@ namespace gamescope + + bNeedsFullComposite |= !!(g_uCompositeDebug & CompositeDebugFlag::Heatmap); + ++ if (g_bUseRotationShader) ++ { ++ bNeedsFullComposite = true; ++ } ++ + bool bDoComposite = true; + if ( !bNeedsFullComposite && !bWantsPartialComposite ) + { +@@ -3384,7 +3409,7 @@ namespace gamescope + if ( bDefer && !!( g_uCompositeDebug & CompositeDebugFlag::Markers ) ) + g_uCompositeDebug |= CompositeDebugFlag::Markers_Partial; + +- std::optional oCompositeResult = vulkan_composite( &compositeFrameInfo, nullptr, !bNeedsFullComposite ); ++ std::optional oCompositeResult = vulkan_composite( &compositeFrameInfo, nullptr, !bNeedsFullComposite, nullptr, true, nullptr, g_bUseRotationShader ); + + m_bWasCompositing = true; + +diff --git a/src/main.cpp b/src/main.cpp +index 056e1c1..f61c88f 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -127,6 +127,7 @@ const struct option *gamescope_options = (struct option[]){ + { "composite-debug", no_argument, nullptr, 0 }, + { "disable-xres", no_argument, nullptr, 'x' }, + { "fade-out-duration", required_argument, nullptr, 0 }, ++ { "use-rotation-shader", required_argument, nullptr, 0 }, + { "force-orientation", required_argument, nullptr, 0 }, + { "enable-hacky-texture", no_argument, nullptr, 0 }, + { "force-panel-type", required_argument, nullptr, 0 }, +@@ -198,6 +199,7 @@ const char usage[] = + " --enable-vrr-modesetting enable setting framerate while VRR is on in the internal display\n" + " --xwayland-count create N xwayland servers\n" + " --prefer-vk-device prefer Vulkan device for compositing (ex: 1002:7300)\n" ++ " --use-rotation-shader use rotation shader for rotating the screen\n" + " --force-orientation rotate the internal display (left, right, normal, upsidedown)\n" + " --force-panel-type lie to steam that the screen is external\n" + " --force-windows-fullscreen force windows inside of gamescope to be the size of the nested display (fullscreen)\n" +@@ -357,6 +359,8 @@ static gamescope::GamescopeModeGeneration parse_gamescope_mode_generation( const + } + } + ++bool g_bUseRotationShader = false; ++ + GamescopePanelOrientation g_DesiredInternalOrientation = GAMESCOPE_PANEL_ORIENTATION_AUTO; + static GamescopePanelOrientation force_orientation(const char *str) + { +@@ -797,6 +801,8 @@ int main(int argc, char **argv) + g_eGamescopeModeGeneration = parse_gamescope_mode_generation( optarg ); + } else if (strcmp(opt_name, "force-orientation") == 0 || strcmp(opt_name, "force-external-orientation") == 0) { + g_DesiredInternalOrientation = force_orientation( optarg ); ++ } else if (strcmp(opt_name, "use-rotation-shader") == 0) { ++ g_bUseRotationShader = true; + } else if (strcmp(opt_name, "force-panel-type") == 0) { + g_FakeExternal = force_panel_type_external( optarg ); + } else if (strcmp(opt_name, "custom-refresh-rates") == 0) { +diff --git a/src/main.hpp b/src/main.hpp +index 390c04a..2464afa 100644 +--- a/src/main.hpp ++++ b/src/main.hpp +@@ -22,6 +22,7 @@ extern bool g_bForceRelativeMouse; + extern int g_nOutputRefresh; // mHz + extern bool g_bOutputHDREnabled; + extern bool g_bForceInternal; ++extern bool g_bUseRotationShader; + + extern bool g_bFullscreen; + +diff --git a/src/meson.build b/src/meson.build +index 74fc033..d4ff3ea 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -70,6 +70,7 @@ shader_src = [ + 'shaders/cs_nis.comp', + 'shaders/cs_nis_fp16.comp', + 'shaders/cs_rgb_to_nv12.comp', ++ 'shaders/cs_rotation.comp', + ] + + spirv_shaders = glsl_generator.process(shader_src) +diff --git a/src/rendervulkan.cpp b/src/rendervulkan.cpp +index 54d7608..10d6c78 100644 +--- a/src/rendervulkan.cpp ++++ b/src/rendervulkan.cpp +@@ -48,6 +48,7 @@ + #include "cs_nis.h" + #include "cs_nis_fp16.h" + #include "cs_rgb_to_nv12.h" ++#include "cs_rotation.h" + + #define A_CPU + #include "shaders/ffx_a.h" +@@ -898,6 +899,7 @@ bool CVulkanDevice::createShaders() + SHADER(NIS, cs_nis); + } + SHADER(RGB_TO_NV12, cs_rgb_to_nv12); ++ SHADER(ROTATION, cs_rotation); + #undef SHADER + + for (uint32_t i = 0; i < shaderInfos.size(); i++) +@@ -1128,6 +1130,7 @@ void CVulkanDevice::compileAllPipelines() + SHADER(EASU, 1, 1, 1); + SHADER(NIS, 1, 1, 1); + SHADER(RGB_TO_NV12, 1, 1, 1); ++ SHADER(ROTATION, k_nMaxLayers, k_nMaxYcbcrMask_ToPreCompile, k_nMaxBlurLayers); + #undef SHADER + + for (auto& info : pipelineInfos) { +@@ -3214,8 +3217,16 @@ static bool vulkan_make_output_images( VulkanOutput_t *pOutput ) + + uint32_t uDRMFormat = pOutput->uOutputFormat; + ++ uint32_t l_nOutputWidth = g_nOutputWidth; ++ uint32_t l_nOutputHeight = g_nOutputHeight; ++ ++ if (g_bUseRotationShader) { ++ l_nOutputWidth = g_nOutputHeight; ++ l_nOutputHeight = g_nOutputWidth; ++ } ++ + pOutput->outputImages[0] = new CVulkanTexture(); +- bool bSuccess = pOutput->outputImages[0]->BInit( g_nOutputWidth, g_nOutputHeight, 1u, uDRMFormat, outputImageflags ); ++ bool bSuccess = pOutput->outputImages[0]->BInit( l_nOutputWidth, l_nOutputHeight, 1u, uDRMFormat, outputImageflags ); + if ( bSuccess != true ) + { + vk_log.errorf( "failed to allocate buffer for KMS" ); +@@ -3223,7 +3234,7 @@ static bool vulkan_make_output_images( VulkanOutput_t *pOutput ) + } + + pOutput->outputImages[1] = new CVulkanTexture(); +- bSuccess = pOutput->outputImages[1]->BInit( g_nOutputWidth, g_nOutputHeight, 1u, uDRMFormat, outputImageflags ); ++ bSuccess = pOutput->outputImages[1]->BInit( l_nOutputWidth, l_nOutputHeight, 1u, uDRMFormat, outputImageflags ); + if ( bSuccess != true ) + { + vk_log.errorf( "failed to allocate buffer for KMS" ); +@@ -3231,7 +3242,7 @@ static bool vulkan_make_output_images( VulkanOutput_t *pOutput ) + } + + pOutput->outputImages[2] = new CVulkanTexture(); +- bSuccess = pOutput->outputImages[2]->BInit( g_nOutputWidth, g_nOutputHeight, 1u, uDRMFormat, outputImageflags ); ++ bSuccess = pOutput->outputImages[2]->BInit( l_nOutputWidth, l_nOutputHeight, 1u, uDRMFormat, outputImageflags ); + if ( bSuccess != true ) + { + vk_log.errorf( "failed to allocate buffer for KMS" ); +@@ -3246,7 +3257,7 @@ static bool vulkan_make_output_images( VulkanOutput_t *pOutput ) + uint32_t uPartialDRMFormat = pOutput->uOutputFormatOverlay; + + pOutput->outputImagesPartialOverlay[0] = new CVulkanTexture(); +- bool bSuccess = pOutput->outputImagesPartialOverlay[0]->BInit( g_nOutputWidth, g_nOutputHeight, 1u, uPartialDRMFormat, outputImageflags, nullptr, 0, 0, pOutput->outputImages[0].get() ); ++ bool bSuccess = pOutput->outputImagesPartialOverlay[0]->BInit( l_nOutputWidth, l_nOutputHeight, 1u, uPartialDRMFormat, outputImageflags, nullptr, 0, 0, pOutput->outputImages[0].get() ); + if ( bSuccess != true ) + { + vk_log.errorf( "failed to allocate buffer for KMS" ); +@@ -3254,7 +3265,7 @@ static bool vulkan_make_output_images( VulkanOutput_t *pOutput ) + } + + pOutput->outputImagesPartialOverlay[1] = new CVulkanTexture(); +- bSuccess = pOutput->outputImagesPartialOverlay[1]->BInit( g_nOutputWidth, g_nOutputHeight, 1u, uPartialDRMFormat, outputImageflags, nullptr, 0, 0, pOutput->outputImages[1].get() ); ++ bSuccess = pOutput->outputImagesPartialOverlay[1]->BInit( l_nOutputWidth, l_nOutputHeight, 1u, uPartialDRMFormat, outputImageflags, nullptr, 0, 0, pOutput->outputImages[1].get() ); + if ( bSuccess != true ) + { + vk_log.errorf( "failed to allocate buffer for KMS" ); +@@ -3262,7 +3273,7 @@ static bool vulkan_make_output_images( VulkanOutput_t *pOutput ) + } + + pOutput->outputImagesPartialOverlay[2] = new CVulkanTexture(); +- bSuccess = pOutput->outputImagesPartialOverlay[2]->BInit( g_nOutputWidth, g_nOutputHeight, 1u, uPartialDRMFormat, outputImageflags, nullptr, 0, 0, pOutput->outputImages[2].get() ); ++ bSuccess = pOutput->outputImagesPartialOverlay[2]->BInit( l_nOutputWidth, l_nOutputHeight, 1u, uPartialDRMFormat, outputImageflags, nullptr, 0, 0, pOutput->outputImages[2].get() ); + if ( bSuccess != true ) + { + vk_log.errorf( "failed to allocate buffer for KMS" ); +@@ -3392,6 +3403,28 @@ static void update_tmp_images( uint32_t width, uint32_t height ) + } + } + ++static void update_rotated_images( uint32_t width, uint32_t height ) ++{ ++ if ( g_output.rotatedOutput != nullptr ++ && width == g_output.rotatedOutput->width() ++ && height == g_output.rotatedOutput->height() ) ++ { ++ return; ++ } ++ ++ CVulkanTexture::createFlags createFlags; ++ createFlags.bSampled = true; ++ createFlags.bStorage = true; ++ ++ g_output.rotatedOutput = new CVulkanTexture(); ++ bool bSuccess = g_output.rotatedOutput->BInit( width, height, 1u, DRM_FORMAT_ARGB8888, createFlags, nullptr ); ++ ++ if ( !bSuccess ) ++ { ++ vk_log.errorf( "failed to create rotated output" ); ++ return; ++ } ++} + + static bool init_nis_data() + { +@@ -3856,7 +3889,7 @@ std::optional vulkan_screenshot( const struct FrameInfo_t *frameInfo, + extern std::string g_reshade_effect; + extern uint32_t g_reshade_technique_idx; + +-std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamescope::Rc pPipewireTexture, bool partial, gamescope::Rc pOutputOverride, bool increment, std::unique_ptr pInCommandBuffer ) ++std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamescope::Rc pPipewireTexture, bool partial, gamescope::Rc pOutputOverride, bool increment, std::unique_ptr pInCommandBuffer, bool applyRotation ) + { + EOTF outputTF = frameInfo->outputEncodingEOTF; + if (!frameInfo->applyOutputColorMgmt) +@@ -3928,7 +3961,15 @@ std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamesco + cmdBuffer->setTextureSrgb(0, true); + cmdBuffer->setSamplerUnnormalized(0, false); + cmdBuffer->setSamplerNearest(0, false); +- cmdBuffer->bindTarget(compositeImage); ++ ++ if (applyRotation) { ++ // Make a rotatedOutput with normal dimensions ++ update_rotated_images(currentOutputWidth, currentOutputHeight); // 2560x1600 ++ cmdBuffer->bindTarget(g_output.rotatedOutput); ++ } else { ++ cmdBuffer->bindTarget(compositeImage); ++ } ++ + cmdBuffer->uploadConstants(frameInfo, g_upscaleFilterSharpness / 10.0f); + + cmdBuffer->dispatch(div_roundup(currentOutputWidth, pixelsPerGroup), div_roundup(currentOutputHeight, pixelsPerGroup)); +@@ -3971,7 +4012,15 @@ std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamesco + + cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_BLIT, nisFrameInfo.layerCount, nisFrameInfo.ycbcrMask(), 0u, nisFrameInfo.colorspaceMask(), outputTF )); + bind_all_layers(cmdBuffer.get(), &nisFrameInfo); +- cmdBuffer->bindTarget(compositeImage); ++ ++ if (applyRotation) { ++ // Make a rotatedOutput with normal dimensions ++ update_rotated_images(currentOutputWidth, currentOutputHeight); // 2560x1600 ++ cmdBuffer->bindTarget(g_output.rotatedOutput); ++ } else { ++ cmdBuffer->bindTarget(compositeImage); ++ } ++ + cmdBuffer->uploadConstants(&nisFrameInfo); + + int pixelsPerGroup = 8; +@@ -4009,7 +4058,15 @@ std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamesco + type = frameInfo->blurLayer0 == BLUR_MODE_COND ? SHADER_TYPE_BLUR_COND : SHADER_TYPE_BLUR; + cmdBuffer->bindPipeline(g_device.pipeline(type, frameInfo->layerCount, frameInfo->ycbcrMask(), blur_layer_count, frameInfo->colorspaceMask(), outputTF )); + bind_all_layers(cmdBuffer.get(), frameInfo); +- cmdBuffer->bindTarget(compositeImage); ++ ++ if (applyRotation) { ++ // Make a rotatedOutput with normal dimensions ++ update_rotated_images(currentOutputWidth, currentOutputHeight); // 2560x1600 ++ cmdBuffer->bindTarget(g_output.rotatedOutput); ++ } else { ++ cmdBuffer->bindTarget(compositeImage); ++ } ++ + cmdBuffer->bindTexture(VKR_BLUR_EXTRA_SLOT, g_output.tmpOutput); + cmdBuffer->setTextureSrgb(VKR_BLUR_EXTRA_SLOT, !useSrgbView); // Inverted because it chooses whether to view as linear (sRGB view) or sRGB (raw view). It's horrible. I need to change it. + cmdBuffer->setSamplerUnnormalized(VKR_BLUR_EXTRA_SLOT, true); +@@ -4019,14 +4076,51 @@ std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamesco + } + else + { +- cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_BLIT, frameInfo->layerCount, frameInfo->ycbcrMask(), 0u, frameInfo->colorspaceMask(), outputTF )); +- bind_all_layers(cmdBuffer.get(), frameInfo); +- cmdBuffer->bindTarget(compositeImage); +- cmdBuffer->uploadConstants(frameInfo); ++ if (applyRotation) { ++ cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_ROTATION, frameInfo->layerCount, frameInfo->ycbcrMask(), 0u, frameInfo->colorspaceMask(), outputTF )); ++ bind_all_layers(cmdBuffer.get(), frameInfo); ++ cmdBuffer->bindTarget(compositeImage); ++ cmdBuffer->uploadConstants(frameInfo); + +- const int pixelsPerGroup = 8; ++ const int pixelsPerGroup = 8; + +- cmdBuffer->dispatch(div_roundup(currentOutputWidth, pixelsPerGroup), div_roundup(currentOutputHeight, pixelsPerGroup)); ++ cmdBuffer->dispatch(div_roundup(currentOutputWidth, pixelsPerGroup), div_roundup(currentOutputHeight, pixelsPerGroup)); ++ } else { ++ cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_BLIT, frameInfo->layerCount, frameInfo->ycbcrMask(), 0u, frameInfo->colorspaceMask(), outputTF )); ++ bind_all_layers(cmdBuffer.get(), frameInfo); ++ cmdBuffer->bindTarget(compositeImage); ++ cmdBuffer->uploadConstants(frameInfo); ++ ++ const int pixelsPerGroup = 8; ++ ++ cmdBuffer->dispatch(div_roundup(currentOutputWidth, pixelsPerGroup), div_roundup(currentOutputHeight, pixelsPerGroup)); ++ } ++ } ++ ++ if (applyRotation) ++ { ++ if (g_output.rotatedOutput != nullptr) { ++ // Rotate the final output ++ // TODO: may need rework with another rotation shader for blur, fsr and nis ++ cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_ROTATION, frameInfo->layerCount, frameInfo->ycbcrMask(), 0u, frameInfo->colorspaceMask(), outputTF)); ++ bind_all_layers(cmdBuffer.get(), frameInfo); ++ ++ // if (frameInfo->blurLayer0) { ++ // bool useSrgbView = frameInfo->layers[0].colorspace == GAMESCOPE_APP_TEXTURE_COLORSPACE_LINEAR; ++ // ++ // cmdBuffer->bindTexture(VKR_BLUR_EXTRA_SLOT, g_output.rotatedOutput); ++ // cmdBuffer->setTextureSrgb(VKR_BLUR_EXTRA_SLOT, !useSrgbView); ++ // cmdBuffer->setSamplerUnnormalized(VKR_BLUR_EXTRA_SLOT, true); ++ // cmdBuffer->setSamplerNearest(VKR_BLUR_EXTRA_SLOT, false); ++ // } ++ ++ cmdBuffer->bindTarget(compositeImage); ++ cmdBuffer->uploadConstants(frameInfo); ++ ++ const int pixelsPerGroup = 8; ++ ++ cmdBuffer->dispatch(div_roundup(currentOutputWidth, pixelsPerGroup), div_roundup(currentOutputHeight, pixelsPerGroup)); ++ } + } + + if ( pPipewireTexture != nullptr ) +diff --git a/src/rendervulkan.hpp b/src/rendervulkan.hpp +index ccabd88..51a62bc 100644 +--- a/src/rendervulkan.hpp ++++ b/src/rendervulkan.hpp +@@ -393,7 +393,7 @@ gamescope::OwningRc vulkan_create_texture_from_dmabuf( struct wl + gamescope::OwningRc vulkan_create_texture_from_bits( uint32_t width, uint32_t height, uint32_t contentWidth, uint32_t contentHeight, uint32_t drmFormat, CVulkanTexture::createFlags texCreateFlags, void *bits ); + gamescope::OwningRc vulkan_create_texture_from_wlr_buffer( struct wlr_buffer *buf, gamescope::OwningRc pBackendFb ); + +-std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamescope::Rc pScreenshotTexture, bool partial, gamescope::Rc pOutputOverride = nullptr, bool increment = true, std::unique_ptr pInCommandBuffer = nullptr ); ++std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamescope::Rc pScreenshotTexture, bool partial, gamescope::Rc pOutputOverride = nullptr, bool increment = true, std::unique_ptr pInCommandBuffer = nullptr, bool applyRotation = false ); + void vulkan_wait( uint64_t ulSeqNo, bool bReset ); + gamescope::Rc vulkan_get_last_output_image( bool partial, bool defer ); + gamescope::Rc vulkan_acquire_screenshot_texture(uint32_t width, uint32_t height, bool exportable, uint32_t drmFormat, EStreamColorspace colorspace = k_EStreamColorspace_Unknown); +@@ -522,6 +522,9 @@ struct VulkanOutput_t + // NIS + gamescope::OwningRc nisScalerImage; + gamescope::OwningRc nisUsmImage; ++ ++ // Rotated ++ gamescope::OwningRc rotatedOutput; + }; + + +@@ -534,6 +537,7 @@ enum ShaderType { + SHADER_TYPE_RCAS, + SHADER_TYPE_NIS, + SHADER_TYPE_RGB_TO_NV12, ++ SHADER_TYPE_ROTATION, + + SHADER_TYPE_COUNT + }; +diff --git a/src/shaders/cs_rotation.comp b/src/shaders/cs_rotation.comp +new file mode 100644 +index 0000000..1a47fd5 +--- /dev/null ++++ b/src/shaders/cs_rotation.comp +@@ -0,0 +1,53 @@ ++#version 450 ++ ++#extension GL_GOOGLE_include_directive : require ++#extension GL_EXT_scalar_block_layout : require ++ ++#include "descriptor_set.h" ++ ++layout( ++ local_size_x = 8, ++ local_size_y = 8, ++ local_size_z = 1) in; ++ ++#include "blit_push_data.h" ++#include "composite.h" ++ ++vec4 sampleLayer(uint layerIdx, vec2 uv) { ++ if ((c_ycbcrMask & (1 << layerIdx)) != 0) ++ return sampleLayer(s_ycbcr_samplers[layerIdx], layerIdx, uv, false); ++ return sampleLayer(s_samplers[layerIdx], layerIdx, uv, true); ++} ++ ++void main() { ++ uvec2 coord = uvec2(gl_GlobalInvocationID.x, gl_GlobalInvocationID.y); ++ uvec2 outSize = imageSize(dst); ++ float outWidth = outSize.y; ++ float outHeight = outSize.x; ++ ++ vec2 uv = vec2(coord); ++ vec4 outputValue = vec4(255.0f); ++ ++ if (c_layerCount > 0) { ++ outputValue = sampleLayer(0, uv) * u_opacity[0]; ++ } ++ ++ for (int i = 1; i < c_layerCount; i++) { ++ vec4 layerColor = sampleLayer(i, uv); ++ // wl_surfaces come with premultiplied alpha, so that's them being ++ // premultiplied by layerColor.a. ++ // We need to then multiply that by the layer's opacity to get to our ++ // final premultiplied state. ++ // For the other side of things, we need to multiply by (1.0f - (layerColor.a * opacity)) ++ float opacity = u_opacity[i]; ++ float layerAlpha = opacity * layerColor.a; ++ outputValue = layerColor * opacity + outputValue * (1.0f - layerAlpha); ++ } ++ ++ outputValue.rgb = encodeOutputColor(outputValue.rgb); ++ ++ // Rotate the pixel coordinates counter-clockwise by 90 degrees ++ ivec2 rotatedCoord = ivec2(coord.y, outWidth - coord.x - 1); ++ ++ imageStore(dst, rotatedCoord, outputValue); ++} +diff --git a/src/wlserver.cpp b/src/wlserver.cpp +index 1eeaa25..5aa986a 100644 +--- a/src/wlserver.cpp ++++ b/src/wlserver.cpp +@@ -2519,6 +2519,11 @@ static void apply_touchscreen_orientation(double *x, double *y ) + break; + } + ++ if (g_bUseRotationShader) { ++ tx = 1.0 - *y; ++ ty = *x; ++ } ++ + *x = tx; + *y = ty; + } +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Ruan E. Formigoni" +Date: Thu, 2 Jan 2025 17:07:36 +0100 +Subject: feat: implement bicubic downscaling + +From https://github.com/ValveSoftware/gamescope/pull/740 +--- + README.md | 1 + + src/Backends/DRMBackend.cpp | 1 + + src/Backends/OpenVRBackend.cpp | 1 + + src/Backends/SDLBackend.cpp | 4 + + src/Backends/WaylandBackend.cpp | 1 + + src/main.cpp | 54 +++++++++- + src/main.hpp | 15 +++ + src/meson.build | 1 + + src/rendervulkan.cpp | 61 ++++++++++- + src/rendervulkan.hpp | 2 + + src/shaders/bicubic.h | 44 ++++++++ + src/shaders/cs_bicubic.comp | 177 ++++++++++++++++++++++++++++++++ + src/shaders/descriptor_set.h | 1 + + src/steamcompmgr.cpp | 23 +++++ + src/steamcompmgr.hpp | 1 + + src/xwayland_ctx.hpp | 1 + + 16 files changed, 386 insertions(+), 2 deletions(-) + create mode 100644 src/shaders/bicubic.h + create mode 100644 src/shaders/cs_bicubic.comp + +diff --git a/README.md b/README.md +index 97dea45..fefb2a0 100644 +--- a/README.md ++++ b/README.md +@@ -66,6 +66,7 @@ See `gamescope --help` for a full list of options. + * `-o`: set a frame-rate limit for the game when unfocused. Specified in frames per second. Defaults to unlimited. + * `-F fsr`: use AMD FidelityFX™ Super Resolution 1.0 for upscaling + * `-F nis`: use NVIDIA Image Scaling v1.0.3 for upscaling ++* `-F bicubic`: use a bicubic filter for downscaling + * `-S integer`: use integer scaling. + * `-S stretch`: use stretch scaling, the game will fill the window. (e.g. 4:3 to 16:9) + * `-b`: create a border-less window. +diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp +index 506963d..98bdb71 100644 +--- a/src/Backends/DRMBackend.cpp ++++ b/src/Backends/DRMBackend.cpp +@@ -3293,6 +3293,7 @@ namespace gamescope + bNeedsFullComposite |= bWasFirstFrame; + bNeedsFullComposite |= pFrameInfo->useFSRLayer0; + bNeedsFullComposite |= pFrameInfo->useNISLayer0; ++ bNeedsFullComposite |= pFrameInfo->useBICUBICLayer0; + bNeedsFullComposite |= pFrameInfo->blurLayer0; + bNeedsFullComposite |= bNeedsCompositeFromFilter; + bNeedsFullComposite |= !k_bUseCursorPlane && bDrewCursor; +diff --git a/src/Backends/OpenVRBackend.cpp b/src/Backends/OpenVRBackend.cpp +index c39caa5..96a3d01 100644 +--- a/src/Backends/OpenVRBackend.cpp ++++ b/src/Backends/OpenVRBackend.cpp +@@ -554,6 +554,7 @@ namespace gamescope + bNeedsFullComposite |= cv_composite_force; + bNeedsFullComposite |= pFrameInfo->useFSRLayer0; + bNeedsFullComposite |= pFrameInfo->useNISLayer0; ++ bNeedsFullComposite |= pFrameInfo->useBICUBICLayer0; + bNeedsFullComposite |= pFrameInfo->blurLayer0; + bNeedsFullComposite |= bNeedsCompositeFromFilter; + bNeedsFullComposite |= g_bColorSliderInUse; +diff --git a/src/Backends/SDLBackend.cpp b/src/Backends/SDLBackend.cpp +index 6d50f8d..c24b864 100644 +--- a/src/Backends/SDLBackend.cpp ++++ b/src/Backends/SDLBackend.cpp +@@ -719,6 +719,10 @@ namespace gamescope + case KEY_B: + g_wantedUpscaleFilter = GamescopeUpscaleFilter::LINEAR; + break; ++ case KEY_K: ++ g_wantedDownscaleFilter = (g_wantedDownscaleFilter == GamescopeDownscaleFilter::BICUBIC) ? ++ GamescopeDownscaleFilter::LINEAR : GamescopeDownscaleFilter::BICUBIC; ++ break; + case KEY_U: + g_wantedUpscaleFilter = (g_wantedUpscaleFilter == GamescopeUpscaleFilter::FSR) ? + GamescopeUpscaleFilter::LINEAR : GamescopeUpscaleFilter::FSR; +diff --git a/src/Backends/WaylandBackend.cpp b/src/Backends/WaylandBackend.cpp +index 3226400..7ae273f 100644 +--- a/src/Backends/WaylandBackend.cpp ++++ b/src/Backends/WaylandBackend.cpp +@@ -1614,6 +1614,7 @@ namespace gamescope + bNeedsFullComposite |= cv_composite_force; + bNeedsFullComposite |= pFrameInfo->useFSRLayer0; + bNeedsFullComposite |= pFrameInfo->useNISLayer0; ++ bNeedsFullComposite |= pFrameInfo->useBICUBICLayer0; + bNeedsFullComposite |= pFrameInfo->blurLayer0; + bNeedsFullComposite |= bNeedsCompositeFromFilter; + bNeedsFullComposite |= g_bColorSliderInUse; +diff --git a/src/main.cpp b/src/main.cpp +index f61c88f..06a3bca 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + #include + #if defined(__linux__) + #include +@@ -303,11 +304,14 @@ bool g_bGrabbed = false; + float g_mouseSensitivity = 1.0; + + GamescopeUpscaleFilter g_upscaleFilter = GamescopeUpscaleFilter::LINEAR; ++GamescopeDownscaleFilter g_downscaleFilter = GamescopeDownscaleFilter::LINEAR; + GamescopeUpscaleScaler g_upscaleScaler = GamescopeUpscaleScaler::AUTO; + + GamescopeUpscaleFilter g_wantedUpscaleFilter = GamescopeUpscaleFilter::LINEAR; ++GamescopeDownscaleFilter g_wantedDownscaleFilter = GamescopeDownscaleFilter::LINEAR; + GamescopeUpscaleScaler g_wantedUpscaleScaler = GamescopeUpscaleScaler::AUTO; + int g_upscaleFilterSharpness = 2; ++GamescopeBicubicParams g_bicubicParams; + + gamescope::GamescopeModeGeneration g_eGamescopeModeGeneration = gamescope::GAMESCOPE_MODE_GENERATE_CVT; + +@@ -427,6 +431,54 @@ static enum GamescopeUpscaleFilter parse_upscaler_filter(const char *str) + } + } + ++static enum GamescopeDownscaleFilter parse_downscaler_filter(const char *str) ++{ ++ std::string_view arg{str}; ++ ++ // If the string is just 'bicubic' use default values ++ if ( arg == "bicubic" ) { ++ return GamescopeDownscaleFilter::BICUBIC; ++ } ++ ++ // Arguments start after ':' ++ if ( auto search = arg.find(':'); search == std::string::npos ) { ++ fprintf( stderr, "gamescope: invalid argument for --filter=bicubic:float,float\n" ); ++ exit(1); ++ } else { ++ arg = std::string_view(arg.data() + search + 1); ++ } ++ ++ // Push arguments to stream ++ std::stringstream ss; ++ ss << arg; ++ ++ // Validate arguments from stream ++ double b, c; ++ char comma; ++ if ((ss >> b >> comma >> c) && (comma == ',')) { ++ // clamp values ++ b = std::clamp(b, 0.0, 1.0); ++ c = std::clamp(c, 0.0, 1.0); ++ // Ovewrite default global parameters ++ g_bicubicParams.b = b; ++ g_bicubicParams.c = c; ++ // Set downscaler filters ++ return GamescopeDownscaleFilter::BICUBIC; ++ } ++ ++ fprintf( stderr, "gamescope: invalid value for --filter\n" ); ++ exit(1); ++} ++ ++static void parse_filter(const char *str) ++{ ++ if (std::string_view{str}.starts_with("bicubic")) { ++ g_wantedDownscaleFilter = parse_downscaler_filter(str); ++ } else { ++ g_wantedUpscaleFilter = parse_upscaler_filter(str); ++ } ++} ++ + static enum gamescope::GamescopeBackend parse_backend_name(const char *str) + { + if (strcmp(str, "auto") == 0) { +@@ -756,7 +808,7 @@ int main(int argc, char **argv) + g_wantedUpscaleScaler = parse_upscaler_scaler(optarg); + break; + case 'F': +- g_wantedUpscaleFilter = parse_upscaler_filter(optarg); ++ parse_filter(optarg); + break; + case 'b': + g_bBorderlessOutputWindow = true; +diff --git a/src/main.hpp b/src/main.hpp +index 2464afa..040d04c 100644 +--- a/src/main.hpp ++++ b/src/main.hpp +@@ -43,6 +43,18 @@ enum class GamescopeUpscaleFilter : uint32_t + FROM_VIEW = 0xF, // internal + }; + ++enum class GamescopeDownscaleFilter : uint32_t ++{ ++ LINEAR = 0, ++ BICUBIC, ++}; ++ ++struct GamescopeBicubicParams ++{ ++ float b = 0.3f; ++ float c = 0.3f; ++}; ++ + static constexpr bool DoesHardwareSupportUpscaleFilter( GamescopeUpscaleFilter eFilter ) + { + // Could do nearest someday... AMDGPU DC supports custom tap placement to an extent. +@@ -60,10 +72,13 @@ enum class GamescopeUpscaleScaler : uint32_t + }; + + extern GamescopeUpscaleFilter g_upscaleFilter; ++extern GamescopeDownscaleFilter g_downscaleFilter; + extern GamescopeUpscaleScaler g_upscaleScaler; + extern GamescopeUpscaleFilter g_wantedUpscaleFilter; ++extern GamescopeDownscaleFilter g_wantedDownscaleFilter; + extern GamescopeUpscaleScaler g_wantedUpscaleScaler; + extern int g_upscaleFilterSharpness; ++extern GamescopeBicubicParams g_bicubicParams; + + extern bool g_bBorderlessOutputWindow; + +diff --git a/src/meson.build b/src/meson.build +index d4ff3ea..341bace 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -66,6 +66,7 @@ shader_src = [ + 'shaders/cs_composite_rcas.comp', + 'shaders/cs_easu.comp', + 'shaders/cs_easu_fp16.comp', ++ 'shaders/cs_bicubic.comp', + 'shaders/cs_gaussian_blur_horizontal.comp', + 'shaders/cs_nis.comp', + 'shaders/cs_nis_fp16.comp', +diff --git a/src/rendervulkan.cpp b/src/rendervulkan.cpp +index 10d6c78..8b31c1e 100644 +--- a/src/rendervulkan.cpp ++++ b/src/rendervulkan.cpp +@@ -44,6 +44,7 @@ + #include "cs_composite_rcas.h" + #include "cs_easu.h" + #include "cs_easu_fp16.h" ++#include "cs_bicubic.h" + #include "cs_gaussian_blur_horizontal.h" + #include "cs_nis.h" + #include "cs_nis_fp16.h" +@@ -53,6 +54,7 @@ + #define A_CPU + #include "shaders/ffx_a.h" + #include "shaders/ffx_fsr1.h" ++#include "shaders/bicubic.h" + + #include "reshade_effect_manager.hpp" + +@@ -888,6 +890,7 @@ bool CVulkanDevice::createShaders() + SHADER(BLUR_COND, cs_composite_blur_cond); + SHADER(BLUR_FIRST_PASS, cs_gaussian_blur_horizontal); + SHADER(RCAS, cs_composite_rcas); ++ SHADER(BICUBIC, cs_bicubic); + if (m_bSupportsFp16) + { + SHADER(EASU, cs_easu_fp16); +@@ -1128,6 +1131,7 @@ void CVulkanDevice::compileAllPipelines() + SHADER(BLUR_FIRST_PASS, 1, 2, 1); + SHADER(RCAS, k_nMaxLayers, k_nMaxYcbcrMask_ToPreCompile, 1); + SHADER(EASU, 1, 1, 1); ++ SHADER(BICUBIC, 1, 1, 1); + SHADER(NIS, 1, 1, 1); + SHADER(RGB_TO_NV12, 1, 1, 1); + SHADER(ROTATION, k_nMaxLayers, k_nMaxYcbcrMask_ToPreCompile, k_nMaxBlurLayers); +@@ -3724,6 +3728,17 @@ struct EasuPushData_t + } + }; + ++struct BicubicPushData_t ++{ ++ uvec4_t Const0; ++ uvec4_t Const1; ++ ++ BicubicPushData_t(float B, float C, uint32_t inputX, uint32_t inputY, uint32_t tempX, uint32_t tempY, uint32_t winX, uint32_t winY) ++ { ++ BicubicCon(&Const0.x, &Const1.x, B*10, C*10, inputX, inputY, tempX, tempY, winX, winY); ++ } ++}; ++ + struct RcasPushData_t + { + uvec2_t u_layer0Offset; +@@ -3933,7 +3948,51 @@ std::optional vulkan_composite( struct FrameInfo_t *frameInfo, gamesco + for (uint32_t i = 0; i < EOTF_Count; i++) + cmdBuffer->bindColorMgmtLuts(i, frameInfo->shaperLut[i], frameInfo->lut3D[i]); + +- if ( frameInfo->useFSRLayer0 ) ++ if ( frameInfo->useBICUBICLayer0 ) ++ { ++ uint32_t inputX = frameInfo->layers[0].tex->width(); ++ uint32_t inputY = frameInfo->layers[0].tex->height(); ++ ++ uint32_t tempX = frameInfo->layers[0].integerWidth(); ++ uint32_t tempY = frameInfo->layers[0].integerHeight(); ++ ++ update_tmp_images(tempX, tempY); ++ ++ cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_BICUBIC, frameInfo->layerCount, frameInfo->ycbcrMask())); ++ cmdBuffer->bindTarget(g_output.tmpOutput); ++ cmdBuffer->bindTexture(0, frameInfo->layers[0].tex); ++ cmdBuffer->setTextureSrgb(0, true); ++ cmdBuffer->setSamplerUnnormalized(0, false); ++ cmdBuffer->setSamplerNearest(0, false); ++ cmdBuffer->uploadConstants(g_bicubicParams.b ++ , g_bicubicParams.c ++ , inputX ++ , inputY ++ , tempX ++ , tempY ++ , currentOutputWidth ++ , currentOutputHeight ++ ); ++ ++ int pixelsPerGroup = 16; ++ ++ cmdBuffer->dispatch(div_roundup(tempX, pixelsPerGroup), div_roundup(tempY, pixelsPerGroup)); ++ ++ struct FrameInfo_t bicFrameInfo = *frameInfo; ++ bicFrameInfo.layers[0].tex = g_output.tmpOutput; ++ bicFrameInfo.layers[0].scale.x = 1.0f; ++ bicFrameInfo.layers[0].scale.y = 1.0f; ++ ++ cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_BLIT, bicFrameInfo.layerCount, bicFrameInfo.ycbcrMask())); ++ bind_all_layers(cmdBuffer.get(), &bicFrameInfo); ++ cmdBuffer->bindTarget(compositeImage); ++ cmdBuffer->uploadConstants(&bicFrameInfo); ++ ++ pixelsPerGroup = 8; ++ ++ cmdBuffer->dispatch(div_roundup(currentOutputWidth, pixelsPerGroup), div_roundup(currentOutputHeight, pixelsPerGroup)); ++ } ++ else if ( frameInfo->useFSRLayer0 ) + { + uint32_t inputX = frameInfo->layers[0].tex->width(); + uint32_t inputY = frameInfo->layers[0].tex->height(); +diff --git a/src/rendervulkan.hpp b/src/rendervulkan.hpp +index 51a62bc..eeb304c 100644 +--- a/src/rendervulkan.hpp ++++ b/src/rendervulkan.hpp +@@ -270,6 +270,7 @@ struct FrameInfo_t + { + bool useFSRLayer0; + bool useNISLayer0; ++ bool useBICUBICLayer0; + bool bFadingOut; + BlurMode blurLayer0; + int blurRadius; +@@ -536,6 +537,7 @@ enum ShaderType { + SHADER_TYPE_EASU, + SHADER_TYPE_RCAS, + SHADER_TYPE_NIS, ++ SHADER_TYPE_BICUBIC, + SHADER_TYPE_RGB_TO_NV12, + SHADER_TYPE_ROTATION, + +diff --git a/src/shaders/bicubic.h b/src/shaders/bicubic.h +new file mode 100644 +index 0000000..8117e87 +--- /dev/null ++++ b/src/shaders/bicubic.h +@@ -0,0 +1,44 @@ ++//_____________________________________________________________/\_______________________________________________________________ ++//============================================================================================================================== ++// ++// ++// BICUBIC IMAGE SCALING ++// ++// ++//------------------------------------------------------------------------------------------------------------------------------ ++//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ++//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ++//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ++//_____________________________________________________________/\_______________________________________________________________ ++//============================================================================================================================== ++// CONSTANT SETUP ++//============================================================================================================================== ++// Call to setup required constant values (works on CPU or GPU). ++A_STATIC void BicubicCon( ++outAU4 con0, ++outAU4 con1, ++// Configurable parameters ++AU1 B, ++AU1 C, ++// This the rendered image resolution ++AF1 inputRenderedSizeX, ++AF1 inputRenderedSizeY, ++// This is the resolution of the resource containing the input image (useful for dynamic resolution) ++AF1 inputCurrentSizeX, ++AF1 inputCurrentSizeY, ++// This is the window width / height ++AF1 outputTargetSizeX, ++AF1 outputTargetSizeY) ++{ ++ // Input/Output size information ++ con0[0]=AU1_AF1(inputRenderedSizeX); ++ con0[1]=AU1_AF1(inputRenderedSizeY); ++ con0[2]=AU1_AF1(inputCurrentSizeX); ++ con0[3]=AU1_AF1(inputCurrentSizeY); ++ ++ // Viewport pixel position to normalized image space. ++ con1[0]=AU1_AF1(outputTargetSizeX); ++ con1[1]=AU1_AF1(outputTargetSizeY); ++ con1[2]=B; ++ con1[3]=C; ++} +diff --git a/src/shaders/cs_bicubic.comp b/src/shaders/cs_bicubic.comp +new file mode 100644 +index 0000000..2b6dfb8 +--- /dev/null ++++ b/src/shaders/cs_bicubic.comp +@@ -0,0 +1,177 @@ ++// References ++// https://www.codeproject.com/Articles/236394/Bi-Cubic-and-Bi-Linear-Interpolation-with-GLSL ++// https://stackoverflow.com/questions/13501081/efficient-bicubic-filtering-code-in-glsl ++// https://web.archive.org/web/20180927181721/http://www.java-gaming.org/index.php?topic=35123.0 ++// https://gist.github.com/TheRealMJP/c83b8c0f46b63f3a88a5986f4fa982b1 ++ ++#version 460 ++ ++#extension GL_GOOGLE_include_directive : require ++#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require ++#extension GL_EXT_scalar_block_layout : require ++ ++#include "descriptor_set.h" ++ ++layout( ++ local_size_x = 64, ++ local_size_y = 1, ++ local_size_z = 1) in; ++ ++// Push constant is a mechanism in modern OpenGL that allows passing small amounts of frequently ++// updated data to the shader without needing to bind a buffer ++layout(binding = 0, scalar) ++uniform layers_t { ++ uvec4 c0, c1; ++}; ++ ++#define A_GPU 1 ++#define A_GLSL 1 ++#define A_HALF 1 ++#include "ffx_a.h" ++#include "bicubic.h" ++ ++// The Mitchell–Netravali filters or BC-splines ++// https://en.wikipedia.org/wiki/Mitchell%E2%80%93Netravali_filters ++// Conditionals are slow in GPU code, so to represent 0 <= f < 1 and 1 <= f < 2 ++// the P(d) form shown in the wikipedia page is used ++vec4 mitchellNetravaliWeights(float f, float B, float C) ++{ ++ float w0 = ((12.0 - 9.0 * B - 6.0 * C) * pow(f, 3.0)) + ++ ((-18.0 + 12.0 * B + 6.0 * C) * pow(f, 2.0)) + ++ (6.0 - 2.0 * B); ++ ++ float w1 = ((-B - 6.0 * C) * pow(f - 1.0, 3.0)) + ++ ((6.0 * B + 30.0 * C) * pow(f - 1.0, 2.0)) + ++ ((-12.0 * B - 48.0 * C) * (f - 1.0)) + ++ (8.0 * B + 24.0 * C); ++ ++ float w2 = ((12.0 - 9.0 * B - 6.0 * C) * pow(1.0 - f, 3.0)) + ++ ((-18.0 + 12.0 * B + 6.0 * C) * pow(1.0 - f, 2.0)) + ++ (6.0 - 2.0 * B); ++ ++ float w3 = ((-B - 6.0 * C) * pow(2.0 - f, 3.0)) + ++ ((6.0 * B + 30.0 * C) * pow(2.0 - f, 2.0)) + ++ ((-12.0 * B - 48.0 * C) * (2.0 - f)) + ++ (8.0 * B + 24.0 * C); ++ ++ return vec4(w0, w1, w2, w3); ++} ++ ++// https://stackoverflow.com/questions/13501081/efficient-bicubic-filtering-code-in-glsl ++// https://web.archive.org/web/20180927181721/http://www.java-gaming.org/index.php?topic=35123.0 ++// This is an efficient method to implement bicubic filtering, it takes ++// advantage of the fact that the bilinear approach gives the weighted average ++// of a 2x2 area. ++vec4 textureBicubic(sampler2D splr, vec2 texCoords) ++{ ++ vec2 texSize = textureSize(splr, 0); ++ vec2 invTexSize = 1.0 / texSize; ++ ++ // Converts normalized coordinates into pixel-space coordinate ++ // Example: If texCoords is (0.5, 0.5), and the texture size is (1920, 1080), the result will be ++ // (960, 540)—the center of the texture in pixel space. ++ // Subtracting 0.5 ensures that you're sampling from the center of the texel rather than its corner ++ // Example: Assume we have a 3x3 texture and texCoords = (0.5, 0.5): ++ // [0,0][1,0][2,0] ++ // [0,1][1,1][2,1] ++ // [0,2][1,2][2,2] ++ // texCoords * texSize - 0.5 maps to (1.5, 1.5), which is between (1,1) and (2,2), then ++ // subtracts 0.5 to move it to (1.0, 1.0)—the center of the texel ++ texCoords = texCoords * texSize - 0.5; ++ ++ // Get B and C that were pushed from the user input (or default values) ++ float B = c1[2] / 10.0f; ++ float C = c1[3] / 10.0f; ++ ++ // Get the fractional part of the coordinates ++ // They are used in Mitchell Netravali's strategy to calculate the interpolation weights, ++ // i.e., how much influence the neighboring vertices have on the final pixel value ++ vec2 fxy = fract(texCoords); ++ texCoords -= fxy; ++ ++ // Calculate bicubic weights ++ // These weights represent how much influence each neighboring texel in the 4x4 grid will have ++ // on the final interpolated pixel value ++ vec4 xweights = mitchellNetravaliWeights(fxy.x, B, C); ++ vec4 yweights = mitchellNetravaliWeights(fxy.y, B, C); ++ ++ // Modify the current texture coordinates to have an offset in texels for each coordinate ++ // E.g. texCoords + vec(-1.0, 0.0) is a texel to the left ++ // texCoords + vec(1.0, 0.0) is a texel to the right ++ // texCoords + vec(0.0, 1.0) is a texel downwards ++ // texCoords + vec(0.0, -1.0) is a texel upwards ++ vec4 offsetTexels = texCoords.xxyy; ++ offsetTexels += vec2 (-1.0, +1.0).xyxy; ++ // Normalize weights to range between (0,1) ++ // vec4 sumWeights = vec4(xweights.xz + xweights.yw, yweights.xz + yweights.yw); ++ // vec4 normalizedWeights = vec4 (xweights.yw, yweights.yw) / sumWeights; ++ vec4 sumWeights = vec4(xweights.x + xweights.y, xweights.z + xweights.w, yweights.x + yweights.y, yweights.z + yweights.w); ++ vec4 normalizedWeights = vec4 (xweights.y, xweights.w, yweights.y, yweights.w) / sumWeights; ++ // Use the weights to influence the sampling position inside each texel ++ // Each texel has a size from (0,1) ++ vec4 offsetSampler = offsetTexels + normalizedWeights; ++ // Go back to normalized space ++ offsetSampler *= invTexSize.xxyy; ++ // Perform the sampling ++ vec4 sample0 = texture(splr, offsetSampler.xz); ++ vec4 sample1 = texture(splr, offsetSampler.yz); ++ vec4 sample2 = texture(splr, offsetSampler.xw); ++ vec4 sample3 = texture(splr, offsetSampler.yw); ++ ++ // Now we perform linear interpolation in the selected points ++ // The mix(a, b, t) function in GLSL performs linear interpolation between a and b based on the ++ // parameter t, t is between 0 and 1 ++ // https://registry.khronos.org/OpenGL-Refpages/gl4/html/mix.xhtml ++ ++ // Here we want to normalize sx and sy to between 0 and 1 (t value) ++ float sx = sumWeights.x / (sumWeights.x + sumWeights.y); ++ float sy = sumWeights.z / (sumWeights.z + sumWeights.w); ++ ++ return mix( ++ mix(sample3, sample2, sx), mix(sample1, sample0, sx) ++ , sy); ++} ++ ++void bicPass(uvec2 pos) ++{ ++ // Retrieve pushed values ++ AF2 inputRenderedSize = AF2_AU2(c0.xy); ++ AF2 inputCurrentSize = AF2_AU2(c0.zw); ++ AF2 outputTargetSize = AF2_AU2(c1.xy); ++ ++ // ARcpF1(x) == 1.0 / x ++ // scaleFactor is the division between the rendered image and the size it should have at the end ++ // E.g.: Rendered 1920x1080, window size is 960x540, then scaleFactor is 2x2 ++ AF2 scaleFactor = inputRenderedSize * vec2(ARcpF1(inputCurrentSize.x), ARcpF1(inputCurrentSize.y)); ++ ++ // The parameter pos of this function is used to iterate over the output image (e.g. 960x540) ++ // The position of the processed pixel should be taken from the rendered image (e.g. 1920x1080) ++ // 10x10 in the output, corresponds to 20x20 in the original image ++ AF2 positionPixel=AF2(pos)*scaleFactor; ++ ++ // Normalize the image space to be between [0,1] ++ positionPixel=positionPixel*vec2(ARcpF1(inputRenderedSize.x),ARcpF1(inputRenderedSize.y)); ++ ++ // Apply the bicubic algorithm in the normalized pixel position ++ vec4 bicPass = textureBicubic(s_samplers[0], positionPixel); ++ ++ imageStore(dst, ivec2(pos), bicPass); ++} ++ ++ ++void main() ++{ ++ // AMD recommends to use this swizzle and to process 4 pixel per invocation ++ // for better cache utilisation ++ uvec2 pos = ARmp8x8(gl_LocalInvocationID.x) + uvec2(gl_WorkGroupID.x << 4u, gl_WorkGroupID.y << 4u); ++ ++ bicPass(pos); ++ pos.x += 8u; ++ bicPass(pos); ++ pos.y += 8u; ++ bicPass(pos); ++ pos.x -= 8u; ++ bicPass(pos); ++} ++ ++/* vim: set expandtab ft=cpp fdm=marker ts=4 sw=4 tw=100 et :*/ +diff --git a/src/shaders/descriptor_set.h b/src/shaders/descriptor_set.h +index f2b8527..64cc1c9 100644 +--- a/src/shaders/descriptor_set.h ++++ b/src/shaders/descriptor_set.h +@@ -21,6 +21,7 @@ const int filter_nearest = 1; + const int filter_fsr = 2; + const int filter_nis = 3; + const int filter_pixel = 4; ++const int filter_bicubic = 5; + const int filter_from_view = 255; + + const int EOTF_Gamma22 = 0; +diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp +index dfee904..c2111d2 100644 +--- a/src/steamcompmgr.cpp ++++ b/src/steamcompmgr.cpp +@@ -906,6 +906,7 @@ gamescope::ConCommand cc_debug_set_fps_limit( "debug_set_fps_limit", "Set refres + static int g_nRuntimeInfoFd = -1; + + bool g_bFSRActive = false; ++bool g_bBicubicActive = false; + + BlurMode g_BlurMode = BLUR_MODE_OFF; + BlurMode g_BlurModeOld = BLUR_MODE_OFF; +@@ -2389,6 +2390,10 @@ paint_all(bool async, bool dpms) + paint_window(w, w, &frameInfo, global_focus.cursor, PaintWindowFlag::BasePlane | PaintWindowFlag::DrawBorders, 1.0f, override); + + bool needsScaling = frameInfo.layers[0].scale.x < 0.999f && frameInfo.layers[0].scale.y < 0.999f; ++ // Temporarily allow upscaling as well ++ // bool needsDownScaling = frameInfo.layers[0].scale.x > 1.001f && frameInfo.layers[0].scale.y > 1.001f; ++ bool needsDownScaling = true; ++ frameInfo.useBICUBICLayer0 = g_downscaleFilter == GamescopeDownscaleFilter::BICUBIC && needsDownScaling; + frameInfo.useFSRLayer0 = g_upscaleFilter == GamescopeUpscaleFilter::FSR && needsScaling; + frameInfo.useNISLayer0 = g_upscaleFilter == GamescopeUpscaleFilter::NIS && needsScaling; + } +@@ -2521,10 +2526,12 @@ paint_all(bool async, bool dpms) + } + + frameInfo.useFSRLayer0 = false; ++ frameInfo.useBICUBICLayer0 = false; + frameInfo.useNISLayer0 = false; + } + + g_bFSRActive = frameInfo.useFSRLayer0; ++ g_bBicubicActive = frameInfo.useBICUBICLayer0; + + g_bFirstFrame = false; + +@@ -5445,6 +5452,9 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) + g_wantedUpscaleScaler = GamescopeUpscaleScaler::AUTO; + g_wantedUpscaleFilter = GamescopeUpscaleFilter::NIS; + break; ++ case 5: ++ g_wantedDownscaleFilter = GamescopeDownscaleFilter::BICUBIC; ++ break; + } + hasRepaint = true; + } +@@ -7017,6 +7027,7 @@ void init_xwayland_ctx(uint32_t serverId, gamescope_xwayland_server_t *xwayland_ + ctx->atoms.gamescopeLowLatency = XInternAtom( ctx->dpy, "GAMESCOPE_LOW_LATENCY", false ); + + ctx->atoms.gamescopeFSRFeedback = XInternAtom( ctx->dpy, "GAMESCOPE_FSR_FEEDBACK", false ); ++ ctx->atoms.gamescopeBicubicFeedback = XInternAtom( ctx->dpy, "GAMESCOPE_BICUBIC_FEEDBACK", false ); + + ctx->atoms.gamescopeBlurMode = XInternAtom( ctx->dpy, "GAMESCOPE_BLUR_MODE", false ); + ctx->atoms.gamescopeBlurRadius = XInternAtom( ctx->dpy, "GAMESCOPE_BLUR_RADIUS", false ); +@@ -7275,6 +7286,7 @@ extern int g_nPreferredOutputWidth; + extern int g_nPreferredOutputHeight; + + static bool g_bWasFSRActive = false; ++static bool g_bWasBicubicActive = false; + + bool g_bAppWantsHDRCached = false; + +@@ -7689,6 +7701,16 @@ steamcompmgr_main(int argc, char **argv) + flush_root = true; + } + ++ if ( g_bBicubicActive != g_bWasBicubicActive ) ++ { ++ uint32_t active = g_bBicubicActive ? 1 : 0; ++ XChangeProperty( root_ctx->dpy, root_ctx->root, root_ctx->atoms.gamescopeBicubicFeedback, XA_CARDINAL, 32, PropModeReplace, ++ (unsigned char *)&active, 1 ); ++ ++ g_bWasBicubicActive = g_bBicubicActive; ++ flush_root = true; ++ } ++ + if (global_focus.IsDirty()) + determine_and_apply_focus(); + +@@ -7925,6 +7947,7 @@ steamcompmgr_main(int argc, char **argv) + g_bSteamIsActiveWindow = false; + g_upscaleScaler = g_wantedUpscaleScaler; + g_upscaleFilter = g_wantedUpscaleFilter; ++ g_downscaleFilter = g_wantedDownscaleFilter; + } + + // If we're in the middle of a fade, then keep us +diff --git a/src/steamcompmgr.hpp b/src/steamcompmgr.hpp +index 30e48e8..5679a0c 100644 +--- a/src/steamcompmgr.hpp ++++ b/src/steamcompmgr.hpp +@@ -129,6 +129,7 @@ extern float focusedWindowOffsetY; + + extern bool g_FakeExternal; + extern bool g_bFSRActive; ++extern bool g_bBicubicActive; + + extern uint32_t inputCounter; + extern uint64_t g_lastWinSeq; +diff --git a/src/xwayland_ctx.hpp b/src/xwayland_ctx.hpp +index 2347cbb..bc38c98 100644 +--- a/src/xwayland_ctx.hpp ++++ b/src/xwayland_ctx.hpp +@@ -164,6 +164,7 @@ struct xwayland_ctx_t final : public gamescope::IWaitable + Atom gamescopeLowLatency; + + Atom gamescopeFSRFeedback; ++ Atom gamescopeBicubicFeedback; + + Atom gamescopeBlurMode; + Atom gamescopeBlurRadius; +-- +2.47.1 + + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: brainantifreeze +Date: Thu, 19 Dec 2024 09:16:15 +0000 +Subject: fix(nvidia): allow disabling Vulkan extension for nvidia to work + +This adds a workaround for #1592 which removes the +VkPhysicalDevicePresentWaitFeaturesKHR extension in +the layer if the environment variable +GAMESCOPE_WSI_HIDE_PRESENT_WAIT_EXT is set. + +This resolves the current freezing issue on nVidia +in dx12 (without having to set +VKD3D_DISABLE_EXTENSIONS), dx11 (without having +to patch DXVK not to use the extension) and in +native vulkan games. +--- + layer/VkLayer_FROG_gamescope_wsi.cpp | 20 +++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +diff --git a/layer/VkLayer_FROG_gamescope_wsi.cpp b/layer/VkLayer_FROG_gamescope_wsi.cpp +index c817880..407dae8 100644 +--- a/layer/VkLayer_FROG_gamescope_wsi.cpp ++++ b/layer/VkLayer_FROG_gamescope_wsi.cpp +@@ -496,7 +496,11 @@ namespace GamescopeWSILayer { + createInfo.ppEnabledExtensionNames = enabledExts.data(); + + setenv("vk_xwayland_wait_ready", "false", 0); +- setenv("vk_khr_present_wait", "true", 0); ++ if (getHidePresentWait()) { ++ setenv("vk_khr_present_wait", "false", 0); ++ } else { ++ setenv("vk_khr_present_wait", "true", 0); ++ } + + VkResult result = pfnCreateInstanceProc(&createInfo, pAllocator, pInstance); + if (result != VK_SUCCESS) +@@ -801,6 +805,10 @@ namespace GamescopeWSILayer { + const vkroots::VkInstanceDispatch* pDispatch, + VkPhysicalDevice physicalDevice, + VkPhysicalDeviceFeatures2* pFeatures) { ++ if (getHidePresentWait()) { ++ fprintf(stderr, "[Gamescope WSI] Removing VkPhysicalDevicePresentWaitFeaturesKHR because GAMESCOPE_WSI_HIDE_PRESENT_WAIT_EXT is set\n"); ++ vkroots::RemoveFromChain(pFeatures); ++ } + pDispatch->GetPhysicalDeviceFeatures2(physicalDevice, pFeatures); + } + +@@ -1015,6 +1023,16 @@ namespace GamescopeWSILayer { + return value; + } + ++ static bool getHidePresentWait() { ++ static bool s_hidePresentWait = []() -> bool { ++ if (auto hide = parseEnv("GAMESCOPE_WSI_HIDE_PRESENT_WAIT_EXT")) { ++ return *hide == 1; ++ } ++ return false; ++ }(); ++ return s_hidePresentWait; ++ } ++ + static uint32_t getMinImageCount() { + static uint32_t s_minImageCount = []() -> uint32_t { + if (auto minCount = parseEnv("GAMESCOPE_WSI_MIN_IMAGE_COUNT")) { +-- +2.47.1 + diff --git a/anda/games/gamescope-legacy/stb.pc b/anda/games/terra-gamescope/stb.pc old mode 100644 new mode 100755 similarity index 100% rename from anda/games/gamescope-legacy/stb.pc rename to anda/games/terra-gamescope/stb.pc diff --git a/anda/games/gamescope/terra-gamescope.spec b/anda/games/terra-gamescope/terra-gamescope.spec old mode 100644 new mode 100755 similarity index 67% rename from anda/games/gamescope/terra-gamescope.spec rename to anda/games/terra-gamescope/terra-gamescope.spec index b9e84f348d..6bdb023131 --- a/anda/games/gamescope/terra-gamescope.spec +++ b/anda/games/terra-gamescope/terra-gamescope.spec @@ -1,43 +1,37 @@ -%if 0%{?fedora} >= 41 -%global libliftoff_minver 0.5.0 -%else %global libliftoff_minver 0.4.1 -%endif -%global toolchain clang %global _default_patch_fuzz 2 -%global gamescope_tag 3.15.6 +%global build_timestamp %(date +"%Y%m%d") +#global gamescope_tag 3.15.11 +%global gamescope_commit d3174928d47f7e353e7daca63cf882d65660cc7c +%define short_commit %(echo %{gamescope_commit} | cut -c1-8) Name: terra-gamescope -Version: 100.%{gamescope_tag} +#Version: 100.%{gamescope_tag} +Version: 104.%{short_commit} Release: 1%?dist -Summary: Micro-compositor for video games on Wayland - Terra patch, please read the full description +Summary: Micro-compositor for video games on Wayland License: BSD URL: https://github.com/ValveSoftware/gamescope +Provides: gamescope = %{version}-%{release} +Conflicts: gamescope + # Create stb.pc to satisfy dependency('stb') Source0: stb.pc -Source1: gamescope-legacy.sh Patch0: 0001-cstdint.patch -# https://github.com/ChimeraOS/gamescope -Patch1: chimeraos.patch # https://hhd.dev/ -Patch2: disable-steam-touch-click-atom.patch -Patch3: v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch - -# Set default backend to SDL instead of Wayland, to avoid issues with GPUs that do not support -# Vulkan DRM modifiers. -# See also: gamescope-legacy package -# https://github.com/ValveSoftware/gamescope/issues/1218#issuecomment-2123801764 -Patch6: 1483.patch +# https://github.com/ChimeraOS/gamescope +Patch1: handheld.patch BuildRequires: meson >= 0.54.0 BuildRequires: ninja-build BuildRequires: cmake -BuildRequires: clang +BuildRequires: gcc +BuildRequires: gcc-c++ BuildRequires: glm-devel BuildRequires: google-benchmark-devel BuildRequires: libXmu-devel @@ -65,10 +59,11 @@ BuildRequires: pkgconfig(sdl2) BuildRequires: pkgconfig(libpipewire-0.3) BuildRequires: pkgconfig(libavif) BuildRequires: pkgconfig(wlroots) -BuildRequires: pkgconfig(libliftoff) >= 0.4.1 +BuildRequires: pkgconfig(libliftoff) BuildRequires: pkgconfig(libcap) BuildRequires: pkgconfig(hwdata) BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(luajit) BuildRequires: spirv-headers-devel # Enforce the the minimum EVR to contain fixes for all of: # CVE-2021-28021 CVE-2021-42715 CVE-2021-42716 CVE-2022-28041 CVE-2023-43898 @@ -95,24 +90,19 @@ Requires: terra-gamescope-libs(x86-32) = %{version}-%{release} Recommends: mesa-dri-drivers Recommends: mesa-vulkan-drivers -Provides: gamescope-legacy -Obsoletes: gamescope-legacy < 3.14.2 - %description -Gamescope is the micro-compositor optimized for running video games on Wayland. - -This specific build of Gamescope is patched to use SDL as the default backend instead of Wayland, and -includes a legacy wrapper script for older GPUs and extra configuration options. Please see -https://developer.fyralabs.com/terra/gamescope for more information. +%{name} is the micro-compositor optimized for running video games on Wayland. %package libs -Summary: libs for Gamescope +Summary: libs for %{name} %description libs %summary %prep -git clone --depth 1 --branch %{gamescope_tag} %{url}.git +# git clone --depth 1 --branch %%{gamescope_tag} %%{url}.git +git clone %{url}.git cd gamescope +git checkout %{gamescope_commit} git submodule update --init --recursive mkdir -p pkgconfig cp %{SOURCE0} pkgconfig/stb.pc @@ -125,35 +115,28 @@ sed -i 's^../thirdparty/SPIRV-Headers/include/spirv/^/usr/include/spirv/^' src/m %build cd gamescope export PKG_CONFIG_PATH=pkgconfig -%if %{__isa_bits} == 64 -%meson --auto-features=enabled -Dforce_fallback_for=vkroots,wlroots,libliftoff -%else -%meson -Denable_gamescope=false -Denable_gamescope_wsi_layer=true -%endif +%meson \ + --auto-features=enabled \ + -Dforce_fallback_for=vkroots,wlroots,libliftoff %meson_build %install cd gamescope %meson_install --skip-subprojects -%if %{__isa_bits} == 64 -install -Dm755 %{SOURCE1} %{buildroot}%{_bindir}/gamescope-legacy -%endif - %files %license gamescope/LICENSE %doc gamescope/README.md -%if %{__isa_bits} == 64 %caps(cap_sys_nice=eip) %{_bindir}/gamescope %{_bindir}/gamescopectl %{_bindir}/gamescopestream %{_bindir}/gamescopereaper -%{_bindir}/gamescope-legacy -%endif +%{_datadir}/gamescope/* %files libs %{_libdir}/libVkLayer_FROG_gamescope_wsi_*.so %{_datadir}/vulkan/implicit_layer.d/VkLayer_FROG_gamescope_wsi.*.json %changelog -%autochangelog +* Thu Jan 2 2025 Owen-sz +- Package gamescope, port from Bazzite diff --git a/anda/games/typeracer/rust-typeracer.spec b/anda/games/typeracer/rust-typeracer.spec index efe5a97155..5f3ccd3753 100644 --- a/anda/games/typeracer/rust-typeracer.spec +++ b/anda/games/typeracer/rust-typeracer.spec @@ -6,8 +6,8 @@ %global crate typeracer Name: rust-typeracer -Version: 2.1.4 -Release: 1%{?dist} +Version: 2.1.5 +Release: 1%?dist Summary: Terminal typing game License: GPL-3.0 diff --git a/anda/games/umu-wrapper/anda.hcl b/anda/games/umu-wrapper/anda.hcl new file mode 100644 index 0000000000..9738c38d31 --- /dev/null +++ b/anda/games/umu-wrapper/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "rust-umu-wrapper.spec" + } +} diff --git a/anda/games/umu-wrapper/rust-umu-wrapper.spec b/anda/games/umu-wrapper/rust-umu-wrapper.spec new file mode 100644 index 0000000000..ca5d5455a0 --- /dev/null +++ b/anda/games/umu-wrapper/rust-umu-wrapper.spec @@ -0,0 +1,48 @@ +# Generated by rust2rpm 23 +%bcond_without check + +%global crate umu-wrapper + +Name: rust-umu-wrapper +Version: 0.2.0 +Release: %autorelease +Summary: Simplified wrapper for UMU-Launcher + +License: MIT +URL: https://crates.io/crates/umu-wrapper +Source: %{crates_source} + +BuildRequires: mold anda-srpm-macros rust-packaging >= 21 + +%global _description %{expand: +Simplified wrapper for UMU-Launcher.} + +%description %{_description} + +%package -n umu-wrapper +Summary: %{summary} + +%description -n umu-wrapper %{_description} + +%files -n umu-wrapper +%doc README.md +%{_bindir}/umu-wrapper + +%prep +%autosetup -n %{crate}-%{version_no_tilde} -p1 +%cargo_prep_online + +%build +%cargo_build + +%install +%cargo_install + + +%if %{with check} +%check +%cargo_test +%endif + +%changelog +%autochangelog diff --git a/anda/games/umu-wrapper/update.rhai b/anda/games/umu-wrapper/update.rhai new file mode 100644 index 0000000000..5c1a567d12 --- /dev/null +++ b/anda/games/umu-wrapper/update.rhai @@ -0,0 +1 @@ +rpm.version(crates("umu-wrapper")); diff --git a/anda/games/umu/umu-launcher.spec b/anda/games/umu/umu-launcher.spec index d85b2818ff..4850613d91 100644 --- a/anda/games/umu/umu-launcher.spec +++ b/anda/games/umu/umu-launcher.spec @@ -1,5 +1,5 @@ Name: umu-launcher -Version: 1.1.3 +Version: 1.1.4 Release: 1%?dist Summary: A tool for launching non-steam games with proton diff --git a/anda/langs/crystal/crystal/crystal.spec b/anda/langs/crystal/crystal/crystal.spec index 00c584f2e7..e073326742 100644 --- a/anda/langs/crystal/crystal/crystal.spec +++ b/anda/langs/crystal/crystal/crystal.spec @@ -1,7 +1,7 @@ %define debug_package %nil Name: crystal -Version: 1.13.2 +Version: 1.15.1 Release: 1%?dist Summary: The Crystal Programming Language License: Apache-2.0 diff --git a/anda/langs/dart/dart.spec b/anda/langs/dart/dart.spec index e935276f50..2db7819fa1 100644 --- a/anda/langs/dart/dart.spec +++ b/anda/langs/dart/dart.spec @@ -1,7 +1,7 @@ %define debug_package %{nil} Name: dart -Version: 3.5.2 +Version: 3.7.0 Release: 1%?dist Summary: The Dart Language License: BSD-3-Clause diff --git a/anda/langs/go/albius/albius.spec b/anda/langs/go/albius/albius.spec index 037b5e8d56..35f0f7c4e0 100644 --- a/anda/langs/go/albius/albius.spec +++ b/anda/langs/go/albius/albius.spec @@ -1,6 +1,6 @@ %define debug_package %nil -%global commit f7a1c8106dbc70020aa9e9df27efef81ed394139 -%global commit_date 20240811 +%global commit e5c90d2e7406cc7c9652a49bd8eb67771a76eedf +%global commit_date 20241128 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: albius diff --git a/anda/langs/go/zrepl/anda.hcl b/anda/langs/go/zrepl/anda.hcl new file mode 100644 index 0000000000..2e08ece2df --- /dev/null +++ b/anda/langs/go/zrepl/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "golang-github-zrepl.spec" + } +} diff --git a/anda/langs/go/zrepl/golang-github-zrepl.spec b/anda/langs/go/zrepl/golang-github-zrepl.spec new file mode 100644 index 0000000000..f3e8ecb708 --- /dev/null +++ b/anda/langs/go/zrepl/golang-github-zrepl.spec @@ -0,0 +1,88 @@ +# Generated by go2rpm 1.14.0 +%bcond_without check +%define debug_package %nil + +# https://github.com/zrepl/zrepl +%global goipath github.com/zrepl/zrepl +Version: 0.6.1 + +%gometa -f + +%global common_description %{expand: +One-stop ZFS backup & replication solution.} + +%global golicenses LICENSE +%global godocs README.md + +Name: zrepl +Release: 1%?dist +Summary: One-stop ZFS backup & replication solution +Packager: Ben Woods + +License: MIT +URL: https://zrepl.github.io/ +Source: %{gosource} + +BuildRequires: anda-srpm-macros +BuildRequires: git-core +BuildRequires: systemd-rpm-macros +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd + +%description %{common_description} + +%gopkg + +%prep +%goprep +go mod download + +%build +go build -ldflags "-B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -s -w" -buildmode=pie -o %{gobuilddir}/bin/zrepl %{goipath} + +# Correct the path in the systemd unit file +sed 's:/usr/local/bin/:%{_bindir}/:g' dist/systemd/zrepl.service > %{gobuilddir}/zrepl.service + +# Generate the default configuration file +sed 's#USR_SHARE_ZREPL#%{_datadir}/doc/zrepl#' packaging/systemd-default-zrepl.yml > %{gobuilddir}/zrepl.yml + +# Generate shell auto-completion files +%{gobuilddir}/bin/zrepl gencompletion bash %{gobuilddir}/bash_completion +%{gobuilddir}/bin/zrepl gencompletion zsh %{gobuilddir}/zsh_completion + +%install +%gopkginstall +install -m 0755 -vd %{buildroot}%{_bindir} +install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/ +install -Dm 0644 %{gobuilddir}/zrepl.service %{buildroot}%{_unitdir}/zrepl.service +install -Dm 0644 %{gobuilddir}/zrepl.yml %{buildroot}%{_sysconfdir}/zrepl/zrepl.yml +install -Dm 0644 %{gobuilddir}/bash_completion %{buildroot}%{_datadir}/bash-completion/completions/zrepl +install -Dm 0644 %{gobuilddir}/zsh_completion %{buildroot}%{_datadir}/zsh/site-functions/_zrepl +install -d %{buildroot}%{_datadir}/doc/zrepl +cp -a config/samples %{buildroot}%{_datadir}/doc/zrepl/examples + +%post +%systemd_post zrepl.service + +%preun +%systemd_preun zrepl.service + +%postun +%systemd_postun_with_restart zrepl.service + +%files +%license LICENSE +%doc README.md +%{_bindir}/* +%config %{_unitdir}/zrepl.service +%dir %{_sysconfdir}/zrepl +%config(noreplace) %{_sysconfdir}/zrepl/zrepl.yml +%{_datadir}/bash-completion/completions/zrepl +%{_datadir}/zsh/site-functions/_zrepl +%{_datadir}/doc/zrepl + +%gopkgfiles + +%changelog +%autochangelog diff --git a/anda/langs/go/zrepl/update.rhai b/anda/langs/go/zrepl/update.rhai new file mode 100644 index 0000000000..b316576ed2 --- /dev/null +++ b/anda/langs/go/zrepl/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("zrepl/zrepl")); diff --git a/anda/langs/groovy/groovy-docs/groovy-docs.spec b/anda/langs/groovy/groovy-docs/groovy-docs.spec index e0ba914930..602f5b1fc6 100644 --- a/anda/langs/groovy/groovy-docs/groovy-docs.spec +++ b/anda/langs/groovy/groovy-docs/groovy-docs.spec @@ -1,5 +1,5 @@ Name: groovy-docs -Version: 4.0.22 +Version: 4.0.25 Release: 1%?dist Summary: Documentation for the Groovy programming language URL: https://groovy-lang.org/ diff --git a/anda/langs/groovy/groovy.spec b/anda/langs/groovy/groovy.spec index 7009e3e8a5..06d0b3da0f 100644 --- a/anda/langs/groovy/groovy.spec +++ b/anda/langs/groovy/groovy.spec @@ -1,5 +1,5 @@ Name: groovy -Version: 4.0.22 +Version: 4.0.25 Release: 1%?dist Summary: A multi-faceted language for the Java platform BuildArch: noarch diff --git a/anda/langs/kotlin/kotlin-native/kotlin-native.spec b/anda/langs/kotlin/kotlin-native/kotlin-native.spec index 39c55b1a59..699527370a 100644 --- a/anda/langs/kotlin/kotlin-native/kotlin-native.spec +++ b/anda/langs/kotlin/kotlin-native/kotlin-native.spec @@ -2,7 +2,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build Name: kotlin-native -Version: 2.0.20 +Version: 2.1.10 Release: 1%?dist Summary: LLVM backend for the Kotlin compiler ExclusiveArch: x86_64 diff --git a/anda/langs/kotlin/kotlin/kotlin.spec b/anda/langs/kotlin/kotlin/kotlin.spec index 0e5384b8fa..d5671714d1 100644 --- a/anda/langs/kotlin/kotlin/kotlin.spec +++ b/anda/langs/kotlin/kotlin/kotlin.spec @@ -1,7 +1,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch Name: kotlin -Version: 2.0.20 +Version: 2.1.10 Release: 1%?dist Summary: Statically typed programming language diff --git a/anda/langs/nim/choosenim/choosenim.spec b/anda/langs/nim/choosenim/choosenim.spec index 19d31c5bae..b5316aae49 100644 --- a/anda/langs/nim/choosenim/choosenim.spec +++ b/anda/langs/nim/choosenim/choosenim.spec @@ -1,6 +1,6 @@ Name: choosenim -Version: 0.8.9 +Version: 0.8.12 Release: 1%?dist Summary: Easily install and manage multiple versions of the Nim programming language License: BSD-3-Clause diff --git a/anda/langs/nim/nim-nightly/nim-nightly.spec b/anda/langs/nim/nim-nightly/nim-nightly.spec index 9ec0b860f2..edcfa12a83 100644 --- a/anda/langs/nim/nim-nightly/nim-nightly.spec +++ b/anda/langs/nim/nim-nightly/nim-nightly.spec @@ -1,13 +1,13 @@ %global csrc_commit 561b417c65791cd8356b5f73620914ceff845d10 -%global commit 7dfadb8b4e95d09981fbeb01d85b12f23946c3e7 +%global commit 1a7bc6d878ff04709ebb1002010fd53b4ba02179 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global ver 2.2.1 -%global commit_date 20241004 +%global ver 2.3.1 +%global commit_date 20250211 %global debug_package %nil Name: nim-nightly Version: %ver^%commit_date.%shortcommit -Release: 4%?dist +Release: 1%?dist Summary: Imperative, multi-paradigm, compiled programming language License: MIT and BSD URL: https://nim-lang.org diff --git a/anda/langs/python/pillow-heif/python3-pillow-heif.spec b/anda/langs/python/pillow-heif/python3-pillow-heif.spec index 956ad85b65..803ee65023 100644 --- a/anda/langs/python/pillow-heif/python3-pillow-heif.spec +++ b/anda/langs/python/pillow-heif/python3-pillow-heif.spec @@ -6,7 +6,7 @@ %bcond_with doc Name: python-%{srcname} -Version: 0.18.0 +Version: 0.21.0 Release: 1%?dist Summary: Python library for working with HEIF images and plugin for Pillow diff --git a/anda/langs/python/protobuf/python3-protobuf.spec b/anda/langs/python/protobuf/python3-protobuf.spec index 22b31559fa..614edc8e52 100644 --- a/anda/langs/python/protobuf/python3-protobuf.spec +++ b/anda/langs/python/protobuf/python3-protobuf.spec @@ -2,7 +2,7 @@ %global pypi_name protobuf Name: python-%{pypi_name} -Version: 5.28.0 +Version: 5.29.3 Release: 1%?dist Summary: Protocol Buffers diff --git a/anda/langs/rust/bandwhich/rust-bandwhich.spec b/anda/langs/rust/bandwhich/rust-bandwhich.spec index 1e9ebbbaff..4a0bb0b811 100644 --- a/anda/langs/rust/bandwhich/rust-bandwhich.spec +++ b/anda/langs/rust/bandwhich/rust-bandwhich.spec @@ -5,7 +5,7 @@ %global crate bandwhich Name: rust-bandwhich -Version: 0.23.0 +Version: 0.23.1 Release: 1%?dist Summary: Display current network utilization by process, connection and remote IP/hostname diff --git a/anda/langs/rust/felix/rust-felix.spec b/anda/langs/rust/felix/rust-felix.spec index 4bec1e06cd..dfd2e8a10a 100644 --- a/anda/langs/rust/felix/rust-felix.spec +++ b/anda/langs/rust/felix/rust-felix.spec @@ -3,7 +3,7 @@ %global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ Name: rust-felix -Version: 2.13.0 +Version: 2.16.0 Release: 1%?dist Summary: Tui file manager with vim-like key mapping diff --git a/anda/langs/rust/gitoxide/rust-gitoxide.spec b/anda/langs/rust/gitoxide/rust-gitoxide.spec index 9818dd70c7..0a09638e14 100644 --- a/anda/langs/rust/gitoxide/rust-gitoxide.spec +++ b/anda/langs/rust/gitoxide/rust-gitoxide.spec @@ -5,7 +5,7 @@ %global crate gitoxide Name: rust-gitoxide -Version: 0.37.0 +Version: 0.41.0 Release: 1%?dist Summary: Command-line application for interacting with git repositories diff --git a/anda/langs/rust/gping/rust-gping.spec b/anda/langs/rust/gping/rust-gping.spec index 0c256c622f..af09112d5e 100644 --- a/anda/langs/rust/gping/rust-gping.spec +++ b/anda/langs/rust/gping/rust-gping.spec @@ -8,7 +8,7 @@ %global crate gping Name: rust-gping -Version: 1.17.3 +Version: 1.19.0 Release: 1%?dist Summary: Ping, but with a graph diff --git a/anda/langs/rust/jellyfin-rpc/anda.hcl b/anda/langs/rust/jellyfin-rpc/anda.hcl new file mode 100644 index 0000000000..9a335cfcef --- /dev/null +++ b/anda/langs/rust/jellyfin-rpc/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "rust-jellyfin-rpc-cli.spec" + } +} diff --git a/anda/langs/rust/jellyfin-rpc/rust-jellyfin-rpc-cli.spec b/anda/langs/rust/jellyfin-rpc/rust-jellyfin-rpc-cli.spec new file mode 100644 index 0000000000..d7c72a1b9f --- /dev/null +++ b/anda/langs/rust/jellyfin-rpc/rust-jellyfin-rpc-cli.spec @@ -0,0 +1,58 @@ +# Generated by rust2rpm 26 +%bcond_without check +%bcond_without mold + +%global crate jellyfin-rpc-cli + +Name: rust-jellyfin-rpc-cli +Version: 1.3.1 +Release: 1%?dist +Summary: Displays the content you're currently watching on Discord! + +License: GPL-3.0-or-later +URL: https://crates.io/crates/jellyfin-rpc-cli +Source0: %{crates_source} +Source1: https://raw.githubusercontent.com/Radiicall/jellyfin-rpc/%version/LICENSE +Packager: madonuko + +BuildRequires: mold anda-srpm-macros cargo-rpm-macros >= 24 + +%global _description %{expand: +Displays the content you're currently watching on Discord!.} + +%description %{_description} + +%package -n %{crate} +Summary: %{summary} +License: GPL-3.0-or-later +Provides: jellyfin-rpc + +%description -n %{crate} %{_description} + +%files -n %{crate} +%license %_datadir/licenses/%name/LICENSE +%license LICENSE.dependencies +%doc README.md +%{_bindir}/jellyfin-rpc + +%prep +%autosetup -n %{crate}-%{version} -p1 +%cargo_prep_online + +%build +#{cargo_license_summary_online} +%{cargo_license_online} > LICENSE.dependencies + +%install +%cargo_install + +install -Dpm644 %SOURCE1 %buildroot%_datadir/licenses/%name/LICENSE + +%if %{with check} +%check +%cargo_test +%endif + +%changelog +* Thu Aug 15 2024 madonuko - 1.2.2-1 +- Initial package diff --git a/anda/langs/rust/jellyfin-rpc/update.rhai b/anda/langs/rust/jellyfin-rpc/update.rhai new file mode 100644 index 0000000000..1f28f314e5 --- /dev/null +++ b/anda/langs/rust/jellyfin-rpc/update.rhai @@ -0,0 +1 @@ +rpm.version(crates("jellyfin-rpc-cli")); diff --git a/anda/langs/rust/onefetch/rust-onefetch.spec b/anda/langs/rust/onefetch/rust-onefetch.spec index 7d9b62bae8..b96a5fd539 100644 --- a/anda/langs/rust/onefetch/rust-onefetch.spec +++ b/anda/langs/rust/onefetch/rust-onefetch.spec @@ -4,8 +4,8 @@ %global crate onefetch Name: rust-onefetch -Version: 2.21.0 -Release: %autorelease +Version: 2.23.1 +Release: 1%?dist Summary: Command-line Git information tool License: MIT diff --git a/anda/langs/rust/starship/rust-starship.spec b/anda/langs/rust/starship/rust-starship.spec index 75072778c7..6062fdc859 100644 --- a/anda/langs/rust/starship/rust-starship.spec +++ b/anda/langs/rust/starship/rust-starship.spec @@ -1,12 +1,11 @@ -%global build_rustflags %build_rustflags -C link-arg=-fuse-ld=mold -# Generated by rust2rpm 26 -#cond_without check +# Generated by rust2rpm 27 +%bcond check 0 %global crate starship Name: rust-starship -Version: 1.20.1 -Release: %autorelease +Version: 1.22.1 +Release: 1%?dist Summary: Minimal, blazing-fast, and infinitely customizable prompt for any shell! ☄🌌️ License: ISC @@ -29,7 +28,7 @@ shell! ☄🌌️.} %package -n %{crate} Summary: %{summary} -License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.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-2-Clause OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND ISC AND MIT AND (MIT AND Apache-2.0) AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unlicense AND (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT) +License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR BSL-1.0 OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR MIT OR Apache-2.0) AND BSD-3-Clause AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND ISC AND MIT AND (MIT AND Apache-2.0) AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND Unlicense AND (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT) %description -n %{crate} %{_description} @@ -125,6 +124,18 @@ use the "gix-max-perf" feature of the "%{crate}" crate. %files -n %{name}+gix-max-perf-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+libz-ng-sys-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+libz-ng-sys-devel %{_description} + +This package contains library source intended for building other packages which +use the "libz-ng-sys" feature of the "%{crate}" crate. + +%files -n %{name}+libz-ng-sys-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+notify-devel Summary: %{summary} BuildArch: noarch @@ -175,6 +186,7 @@ use the "starship-battery" feature of the "%{crate}" crate. %prep %autosetup -n %{crate}-%{version} -p1 +cargo add log@=0.4.22 %cargo_prep_online %build diff --git a/anda/langs/rust/starship/starship-fix-metadata-auto.diff b/anda/langs/rust/starship/starship-fix-metadata-auto.diff index 1a120eb1f3..18e975f69b 100644 --- a/anda/langs/rust/starship/starship-fix-metadata-auto.diff +++ b/anda/langs/rust/starship/starship-fix-metadata-auto.diff @@ -1,6 +1,6 @@ ---- starship-1.20.1/Cargo.toml 1970-01-01T00:00:01+00:00 -+++ starship-1.20.1/Cargo.toml 2024-07-28T16:46:48.656009+00:00 -@@ -271,18 +271,3 @@ +--- starship-1.22.1/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ starship-1.22.1/Cargo.toml 2025-01-12T14:01:45.200436+00:00 +@@ -273,18 +273,3 @@ ] default-features = false @@ -8,7 +8,7 @@ -version = "0.2.0" - -[target."cfg(windows)".dependencies.windows] --version = "0.58.0" +-version = "0.59.0" -features = [ - "Win32_Foundation", - "Win32_UI_Shell", diff --git a/anda/langs/rust/xwayland-satellite/xwayland-satellite.spec b/anda/langs/rust/xwayland-satellite/xwayland-satellite.spec index 08897397a9..0886763050 100644 --- a/anda/langs/rust/xwayland-satellite/xwayland-satellite.spec +++ b/anda/langs/rust/xwayland-satellite/xwayland-satellite.spec @@ -1,5 +1,5 @@ Name: xwayland-satellite -Version: 0.4 +Version: 0.5.1 Release: 1%?dist Summary: Xwayland outside your Wayland. License: MPL-2.0 diff --git a/anda/langs/rust/youki/youki.spec b/anda/langs/rust/youki/youki.spec index cf270ec071..36825db322 100644 --- a/anda/langs/rust/youki/youki.spec +++ b/anda/langs/rust/youki/youki.spec @@ -17,6 +17,7 @@ BuildRequires: libseccomp-devel BuildRequires: elfutils-libelf-devel BuildRequires: binutils BuildRequires: fdupes +BuildRequires: mold %description youki is an implementation of the OCI runtime-spec in Rust, similar to runc. diff --git a/anda/langs/rust/zellij/rust-zellij.spec b/anda/langs/rust/zellij/rust-zellij.spec index c42171f904..67f05ad290 100644 --- a/anda/langs/rust/zellij/rust-zellij.spec +++ b/anda/langs/rust/zellij/rust-zellij.spec @@ -5,7 +5,7 @@ %global crate zellij Name: rust-zellij -Version: 0.40.1 +Version: 0.41.2 Release: 1%?dist Summary: Terminal workspace with batteries included diff --git a/anda/langs/vala/vala-nightly/vala-nightly.spec b/anda/langs/vala/vala-nightly/vala-nightly.spec index 9dcb1ff3d7..70bd20e3df 100644 --- a/anda/langs/vala/vala-nightly/vala-nightly.spec +++ b/anda/langs/vala/vala-nightly/vala-nightly.spec @@ -3,11 +3,11 @@ %global priority 90 %global real_name vala -%global commit ee52e5a530bc4ad93a605add9a1ce184de3f0d9c +%global commit d7d33aa7ea5cee2e0bc30c833a396b489c0eb4ac %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global repo https://gitlab.gnome.org/GNOME/%{real_name}.git -%global commit_date 20240702 +%global commit_date 20250117 %global snapshot_info %{commit_date}.%{shortcommit} Name: vala-nightly diff --git a/anda/lib/backtrace/libbacktrace-nightly.spec b/anda/lib/backtrace/libbacktrace-nightly.spec index acb83704a6..41a7db26f4 100644 --- a/anda/lib/backtrace/libbacktrace-nightly.spec +++ b/anda/lib/backtrace/libbacktrace-nightly.spec @@ -1,8 +1,8 @@ %global debug_package %nil -%global commit 86885d14049fab06ef8a33aac51664230ca09200 +%global commit 0034e33946824057b48c5e686a3aefc761b37384 %global shortcommit %(c=%commit; echo ${c:0:7}) -%global commit_date 20240806 +%global commit_date 20250211 %global _desc %{expand: A C library that may be linked into a C/C++ program to produce symbolic backtraces. diff --git a/anda/lib/davs2/anda.hcl b/anda/lib/davs2/anda.hcl new file mode 100644 index 0000000000..6f70ad753d --- /dev/null +++ b/anda/lib/davs2/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "davs2.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/lib/davs2/davs2.spec b/anda/lib/davs2/davs2.spec new file mode 100644 index 0000000000..381a723a2f --- /dev/null +++ b/anda/lib/davs2/davs2.spec @@ -0,0 +1,93 @@ +%global commit0 b41cf117452e2d73d827f02d3e30aa20f1c721ac +%global date 20220903 +%global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) + +Name: davs2 +Version: 1.6 +Release: 5%{?shortcommit0:.%{date}git%{shortcommit0}}%{?dist} +Summary: An open-source decoder of AVS2-P2/IEEE1857.4 video coding standard +URL: https://github.com/pkuvcl/%{name} +License: GPLv2 + +%if "%{?shortcommit0}" +Source0: https://github.com/pkuvcl/%{name}/archive/%{commit0}/%{name}-%{commit0}.tar.gz#/%{name}-%{shortcommit0}.tar.gz +%else +Source0: https://github.com/pkuvcl/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz +%endif + +BuildRequires: gcc-c++ +%ifarch x86_64 +BuildRequires: nasm >= 2.13 +%endif + +%description +davs2 is an open-source decoder of AVS2-P2/IEEE1857.4 video coding standard. + +This package contains the command line decoder. + +%package libs +Summary: AVS2-P2/IEEE1857.4 decoder library + +%description libs +davs2 is an open-source decoder of AVS2-P2/IEEE1857.4 video coding standard. + +This package contains the shared library. + +%package devel +Summary: AVS2-P2/IEEE1857.4 decoder library development files +Requires: %{name}-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description devel +davs2 is an open-source decoder of AVS2-P2/IEEE1857.4 video coding standard. + +This package contains the shared library development files. + +%prep +# Use flat condition or it fails on EPEL 7 +%if "%{?shortcommit0}" +%autosetup -n %{name}-%{commit0} +%else +%autosetup +%endif + +%build +cd build/linux +%configure \ + --bit-depth='8' \ + --chroma-format='all' \ +%ifarch aarch64 %ix86 + --disable-asm \ +%endif + --disable-static \ + --enable-pic \ + --enable-shared + +# Remove hardcoded CFLAGS on generated file containing variables +sed -i \ + -e 's|CFLAGS=.*%{optflags}|CFLAGS=%{optflags}|g' \ + config.mak + +%make_build + +%install +cd build/linux +%make_install + +%ldconfig_scriptlets libs + +%files +%{_bindir}/%{name} + +%files libs +%license COPYING +%{_libdir}/lib%{name}.so.16 + +%files devel +%doc README.md +%{_includedir}/%{name}.h +%{_includedir}/%{name}_config.h +%{_libdir}/lib%{name}.so +%{_libdir}/pkgconfig/%{name}.pc + +%changelog +%autochangelog diff --git a/anda/lib/davs2/update.rhai b/anda/lib/davs2/update.rhai new file mode 100644 index 0000000000..65d19575fc --- /dev/null +++ b/anda/lib/davs2/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("pkuvcl/davs2")); diff --git a/anda/lib/fdk-aac/anda.hcl b/anda/lib/fdk-aac/anda.hcl new file mode 100644 index 0000000000..06dac1bc18 --- /dev/null +++ b/anda/lib/fdk-aac/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + rpm { + spec = "fdk-aac.spec" + } + labels { + subrepo = "extras" + weekly = 1 + } +} diff --git a/anda/lib/fdk-aac/fdk-aac.spec b/anda/lib/fdk-aac/fdk-aac.spec new file mode 100644 index 0000000000..071a69aee1 --- /dev/null +++ b/anda/lib/fdk-aac/fdk-aac.spec @@ -0,0 +1,59 @@ +Name: fdk-aac +Version: 2.0.3 +Release: 1%{?dist} +Summary: Fraunhofer FDK Advanced Audio Coding Codec Library +License: Software License for The Fraunhofer FDK AAC Codec Library for Android +URL: http://sourceforge.net/projects/opencore-amr/ +Source0: https://github.com/mstorsjo/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz +Provides: fdk-aac = %{version}-%{release} +Provides: fdk-aac%{?_isa} = %{version}-%{release} +Obsoletes: fdk-aac < %{version}-%{release} +Provides: fdk-aac-free = %{version}-%{release} +Provides: fdk-aac-free%{?_isa} = %{version}-%{release} +Obsoletes: fdk-aac-free < %{version}-%{release} +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gcc-c++ +BuildRequires: libtool + +%description +Fraunhofer FDK Advanced Audio Coding Codec Library for Android. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Provides: fdk-aac-devel = %{version}-%{release} +Provides: fdk-aac-devel%{?_isa} = %{version}-%{release} +Obsoletes: fdk-aac-devel < %{version}-%{release} +Provides: fdk-aac-free-devel = %{version}-%{release} +Provides: fdk-aac-free-devel%{?_isa} = %{version}-%{release} +Obsoletes: fdk-aac-free-devel < %{version}-%{release} + +%description devel +This package contains libraries and header files for developing applications that use %{name}. + +%prep +%autosetup -n %{name}-%{version} + +%build +autoreconf -vif +%configure --disable-static +%make_build + +%install +%make_install +find %{buildroot} -name "*.la" -delete + +%files +%license NOTICE +%doc ChangeLog +%{_libdir}/lib%{name}*.so.* + +%files devel +%doc documentation/* +%{_includedir}/* +%{_libdir}/lib%{name}.so +%{_libdir}/pkgconfig/fdk-aac.pc + +%changelog +%autochangelog diff --git a/anda/lib/fdk-aac/update.rhai b/anda/lib/fdk-aac/update.rhai new file mode 100644 index 0000000000..9b3efb2d09 --- /dev/null +++ b/anda/lib/fdk-aac/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("mstorsjo/fdk-aac")); diff --git a/anda/lib/ipu6-camera-bins/anda.hcl b/anda/lib/ipu6-camera-bins/anda.hcl index 0bd389fe89..94e4030f11 100644 --- a/anda/lib/ipu6-camera-bins/anda.hcl +++ b/anda/lib/ipu6-camera-bins/anda.hcl @@ -1,4 +1,5 @@ project pkg { + arches = ["x86_64"] rpm { spec = "ipu6-camera-bins.spec" } diff --git a/anda/lib/ipu6-camera-bins/ipu6-camera-bins.spec b/anda/lib/ipu6-camera-bins/ipu6-camera-bins.spec index 3cf9bc1f59..3322f90c00 100644 --- a/anda/lib/ipu6-camera-bins/ipu6-camera-bins.spec +++ b/anda/lib/ipu6-camera-bins/ipu6-camera-bins.spec @@ -1,19 +1,17 @@ %global debug_package %{nil} -%global commit 987b09ad7e6124ab8623a986f92ecb47061b8fa0 +%global commit 3c1cdd3e634bb4668a900d75efd4d6292b8c7d1d %global commitdate 20240507 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: ipu6-camera-bins Summary: Binary libraries for Intel IPU6 Version: %{commitdate}.%{shortcommit} -Release: 1%{?dist} +Release: 1%?dist License: Proprietary URL: https://github.com/intel/ipu6-camera-bins Source0: https://github.com/intel/%{name}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz BuildRequires: systemd-rpm-macros BuildRequires: chrpath -BuildRequires: patchelf -ExclusiveArch: x86_64 #Requires: gstreamer1-plugin-icamerasrc Requires: v4l2-relayd Requires: intel-ipu6-kmod @@ -21,6 +19,7 @@ Requires: intel-vsc-firmware >= 20240513 Obsoletes: ipu6-camera-bins-firmware < 0.0-11 ### For Akmods package Provides: intel-ipu6-kmod-common = %{version} +ExclusiveArch: x86_64 %description Provides binaries for Intel IPU6, including libraries and firmware. @@ -35,50 +34,31 @@ This provides the header files for IPU6 development. %prep %setup -q -n %{name}-%{commit} -for i in ipu_tgl ipu_adl ipu_mtl; do - chrpath --delete lib/$i/*.so -done +chrpath --delete lib/*.so.* +sed -i \ + -e "s|libdir=\${exec_prefix}/lib|libdir=\${prefix}/%{_lib}|g" \ + lib/pkgconfig/*.pc %build %install -mkdir -p %{buildroot}%{_includedir} -for i in ipu_tgl ipu_adl ipu_mtl; do - mkdir -p %{buildroot}%{_libdir}/$i - cp -pr include/$i %{buildroot}%{_includedir} - cp -pr lib/$i/lib* lib/$i/pkgconfig %{buildroot}%{_libdir}/$i - patchelf --set-rpath %{_libdir}/$i %{buildroot}%{_libdir}/$i/*.so - sed -i \ - -e "s|libdir=\${prefix}/lib/$i|libdir=%{_libdir}/$i|g" \ - %{buildroot}%{_libdir}/$i/pkgconfig/*.pc -done +mkdir -p %{buildroot}%{_includedir}/ +mkdir -p %{buildroot}%{_libdir}/ +cp -pr include/* %{buildroot}%{_includedir}/ +cp -pr lib/lib* lib/pkgconfig %{buildroot}%{_libdir}/ +chmod 755 %{buildroot}%{_libdir}/$target/*.so* %files %license LICENSE -%dir %{_libdir}/ipu_tgl -%dir %{_libdir}/ipu_adl -%dir %{_libdir}/ipu_mtl -%{_libdir}/ipu_tgl/*.so* -%{_libdir}/ipu_adl/*.so* -%{_libdir}/ipu_mtl/*.so* +%doc README.md SECURITY.md +%{_libdir}/*.so* %files devel -%dir %{_includedir}/ipu_tgl -%dir %{_includedir}/ipu_adl -%dir %{_includedir}/ipu_mtl -%dir %{_libdir}/ipu_tgl/pkgconfig -%dir %{_libdir}/ipu_adl/pkgconfig -%dir %{_libdir}/ipu_mtl/pkgconfig -%{_includedir}/ipu_tgl/* -%{_includedir}/ipu_adl/* -%{_includedir}/ipu_mtl/* -%{_libdir}/ipu_tgl/pkgconfig/* -%{_libdir}/ipu_adl/pkgconfig/* -%{_libdir}/ipu_mtl/pkgconfig/* -%{_libdir}/ipu_tgl/*.a -%{_libdir}/ipu_adl/*.a -%{_libdir}/ipu_mtl/*.a +%{_includedir}/* +%{_libdir}/pkgconfig/* +%{_libdir}/*.a +%{_libdir}/*.so* %changelog diff --git a/anda/lib/libde265/anda.hcl b/anda/lib/libde265/anda.hcl new file mode 100644 index 0000000000..cc0f1db0fd --- /dev/null +++ b/anda/lib/libde265/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "libde265.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/lib/libde265/libde265.spec b/anda/lib/libde265/libde265.spec new file mode 100644 index 0000000000..08fe3fc697 --- /dev/null +++ b/anda/lib/libde265/libde265.spec @@ -0,0 +1,81 @@ +Name: libde265 +Summary: Open H.265 video codec implementation +Version: 1.0.15 +Release: 1%{?dist} +License: LGPLv3+ +URL: https://www.libde265.org/ +Source0: https://github.com/strukturag/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gcc +BuildRequires: libtool +BuildRequires: pkgconfig(libswscale) +BuildRequires: pkgconfig(Qt5Core) +BuildRequires: pkgconfig(Qt5Gui) +BuildRequires: pkgconfig(sdl) + +%description +%{name} is an open source implementation of the H.265 video codec. + +%package devel +Summary: Open H.265 video codec implementation - development files +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +%{name} is an open source implementation of the H.265 video codec. + +The development headers for compiling programs that use %{name} are provided +by this package. + +%package tools +License: GPLv3+ +Summary: Open H.265 video codec implementation - examples +Obsoletes: %{name}-samples < %{version}-%{release} +Provides: %{name}-samples%{?_isa} = %{version}-%{release} + +%description tools +%{name} is an open source implementation of the H.265 video codec. + +Various sample and test applications using %{name} are provided by this package. + +%prep +%autosetup + +%build +autoreconf -vif +%configure --disable-silent-rules --disable-static --enable-encoder +%make_build + +%install +%make_install +find %{buildroot} -name '*.la' -delete + +%{?ldconfig_scriptlets} + +%files +%license COPYING +%doc AUTHORS +%{_libdir}/%{name}.so.0 +%{_libdir}/%{name}.so.0.1.8 + +%files devel +%doc README.md +%{_includedir}/%{name}/ +%{_libdir}/%{name}.so +%{_libdir}/pkgconfig/%{name}.pc + +%files tools +%doc README.md +%{_bindir}/acceleration_speed +%{_bindir}/bjoentegaard +%{_bindir}/block-rate-estim +%{_bindir}/dec265 +%{_bindir}/enc265 +%{_bindir}/gen-enc-table +%{_bindir}/rd-curves +%{_bindir}/sherlock265 +%{_bindir}/tests +%{_bindir}/yuv-distortion + +%changelog +%autochangelog diff --git a/anda/lib/libde265/update.rhai b/anda/lib/libde265/update.rhai new file mode 100644 index 0000000000..30ad8dcc4f --- /dev/null +++ b/anda/lib/libde265/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("strukturag/libde265")); diff --git a/anda/lib/libfreeaptx/anda.hcl b/anda/lib/libfreeaptx/anda.hcl new file mode 100644 index 0000000000..bac6cc9f1b --- /dev/null +++ b/anda/lib/libfreeaptx/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "libfreeaptx.spec" + } + labels { + weekly = 1 + mock = 1 + } +} diff --git a/anda/lib/libfreeaptx/libfreeaptx.spec b/anda/lib/libfreeaptx/libfreeaptx.spec new file mode 100644 index 0000000000..def9829ec8 --- /dev/null +++ b/anda/lib/libfreeaptx/libfreeaptx.spec @@ -0,0 +1,59 @@ +%global commit c176b7de9c2017d0fc1877659cea3bb6c330aafa +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20210809 + +Name: libfreeaptx +Version: 0.1.1.%{commit_date}git%{shortcommit} +Release: 1%{?dist} +Summary: Free implementation of Audio Processing Technology codec (aptX) +License: LGPLv2+ +URL: https://github.com/iamthehorker/libfreeaptx +Source0: %{url}/archive/%{commit}/libfreeaptx-%{commit}.tar.gz +BuildRequires: gcc +BuildRequires: make + +%description +This is an Open Source implementation of Audio Processing Technology codec +(aptX). This codec is mainly used in Bluetooth A2DP profile. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for developing +applications that use %{name}. + +%package tools +Summary: %{name} encoder and decoder utilities +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description tools +The %{name}-tools package contains command line encoder and decoder utilities. + +%prep +%autosetup -n libfreeaptx-%{commit} -p1 + +%build +%make_build LDFLAGS="%{build_ldflags}" "CFLAGS=%{build_cflags}" + +%install +%make_install PREFIX=%{_prefix} LIBDIR=%{_lib} + +%files +%license COPYING +%{_libdir}/%{name}.so.0 +%{_libdir}/%{name}.so.0.1.1 + +%files devel +%{_includedir}/freeaptx.h +%{_libdir}/%{name}.so +%{_libdir}/pkgconfig/%{name}.pc + +%files tools +%doc README +%{_bindir}/freeaptxenc +%{_bindir}/freeaptxdec + +%changelog +%autochangelog diff --git a/anda/lib/libfreeaptx/update.rhai b/anda/lib/libfreeaptx/update.rhai new file mode 100644 index 0000000000..c99fd2cdca --- /dev/null +++ b/anda/lib/libfreeaptx/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("iamthehorker/libfreeaptx")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/lib/libhelium/libhelium.spec b/anda/lib/libhelium/libhelium.spec index 58a3c6fc3c..c70a6be32e 100644 --- a/anda/lib/libhelium/libhelium.spec +++ b/anda/lib/libhelium/libhelium.spec @@ -3,7 +3,7 @@ Summary: The Application Framework for tauOS apps Name: libhelium Version: %{sanitized_ver} -Release: 1%?dist +Release: 3%?dist License: GPL-3.0 URL: https://github.com/tau-OS/libhelium Source0: https://github.com/tau-OS/libhelium/archive/refs/tags/%{ver}.tar.gz @@ -22,8 +22,8 @@ BuildRequires: pkgconfig(gtk4) >= 4.4 Requires: gtk4 >= 4.4 Requires: glib2 >= 2.66.0 Requires: libgee >= 0.20 -Requires: tau-helium >= 1.1.25 -Requires: tau-hydrogen +Requires: helium-gtk-theme +Requires: hydrogen-icon-theme %description The Application Framework for tauOS apps diff --git a/anda/lib/lsp-dsp/liblsp-dsp.spec b/anda/lib/lsp-dsp/liblsp-dsp.spec index dba228b83a..650779765c 100644 --- a/anda/lib/lsp-dsp/liblsp-dsp.spec +++ b/anda/lib/lsp-dsp/liblsp-dsp.spec @@ -3,8 +3,8 @@ #define _empty_manifest_terminate_build 0 Name: liblsp-dsp -Version: 1.0.25 -Release: 1%dist +Version: 1.0.28 +Release: 1%?dist Summary: DSP library for signal processing License: LGPL-3.0 #Group: System/Libraries diff --git a/anda/lib/mesa/Mesa-MLAA-License-Clarification-Email.txt b/anda/lib/mesa/Mesa-MLAA-License-Clarification-Email.txt new file mode 100644 index 0000000000..30bdf2e9dd --- /dev/null +++ b/anda/lib/mesa/Mesa-MLAA-License-Clarification-Email.txt @@ -0,0 +1,117 @@ + +Subject: RE: Question about Mesa MLAA license +From: Jorge Jimenez +Date: 01/08/2013 12:50 PM +To: Tom Callaway +CC: "jorge@iryoku.com" + +Yes to both questions. + +Thanks, +Jorge + +From: Tom Callaway +Sent: January 8, 2013 6:49 PM +To: Jorge Jimenez +CC: jorge@iryoku.com +Subject: Re: Question about Mesa MLAA license + +On 01/08/2013 12:39 PM, Jorge Jimenez wrote: +> Hi Tom, +> +> What we meant with that is that we made an exception for clause 2. +> Instead of clause 2, in the case of the Mesa project, you have to name +> the technique Jimenez's MLAA in the config options of Mesa. We did that +> just to allow them to solve license issues. This exception should be for +> the Mesa project, and any project using Mesa, like Fedora. +> +> We want to widespread usage of our MLAA, so we want to avoid any kind of +> license complications. Hope current one is good for Fedora, if not +> please tell, and we'll see what we can do! + +Okay, a few more questions: + +* If Fedora decides to simply reproduce the quoted statement: +"Uses Jimenez's MLAA. Copyright (C) 2010 by Jorge Jimenez, Belen Masia, +Jose I. Echevarria, Fernando Navarro and Diego Gutierrez." + +Specifically, if this is done as part of documentation included with +Mesa, is that sufficient to meet clause 2 even if the Mesa config option +is not set as described in your exception? + +* Currently, the Mesa config option for MLAA says: "Morphological +anti-aliasing based on Jimenez\' MLAA. 0 to disable, 8 for default +quality". Is this in compliance with your exception? + +Thanks again, + +~tom + +== +Fedora Project + +Subject: RE: Question about Mesa MLAA license +From: Jorge Jimenez +Date: 01/08/2013 12:39 PM +To: "jorge@iryoku.com" , Tom Callaway + +Hi Tom, + +What we meant with that is that we made an exception for clause 2. +Instead of clause 2, in the case of the Mesa project, you have to name +the technique Jimenez's MLAA in the config options of Mesa. We did that +just to allow them to solve license issues. This exception should be for +the Mesa project, and any project using Mesa, like Fedora. + +We want to widespread usage of our MLAA, so we want to avoid any kind of +license complications. Hope current one is good for Fedora, if not +please tell, and we'll see what we can do! + +Cheers, +Jorge + +From: Tom Callaway +Sent: January 8, 2013 6:30 PM +To: jorge@iryoku.com +Subject: Question about Mesa MLAA license + +Jorge, + +Thanks for all of your fantastic graphics work! I have been auditing +Fedora (a popular distribution of Linux) for license compliance and I +came across your MLAA code in Mesa. + +The license says: + + * 2. Redistributions in binary form must reproduce the following +statement: + * + * "Uses Jimenez's MLAA. Copyright (C) 2010 by Jorge Jimenez, Belen Masia, + * Jose I. Echevarria, Fernando Navarro and Diego Gutierrez." + * + * Only for use in the Mesa project, this point 2 is filled by naming the + * technique Jimenez's MLAA in the Mesa config options. + +That wording is unclear. When you say "Only for use in the Mesa +project...", it seems like you could either be saying: + +- This code may only be used as part of Mesa. + +OR + +- In Mesa, you can comply with clause 2 by simply selecting "Jimenez's +MLAA" in the Mesa config options. + +***** + +If the first item is true, then we may have to remove the MLAA code from +Fedora's copy of Mesa. However, looking at the license on your SMAA +code, I do not believe it to be the case. Please let me know either way! + +Thanks in advance, + +Tom Callaway +Fedora Legal + +== +Fedora Project diff --git a/anda/lib/mesa/anda.hcl b/anda/lib/mesa/anda.hcl new file mode 100644 index 0000000000..5da277684e --- /dev/null +++ b/anda/lib/mesa/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "mesa.spec" + } + labels { + mock = 1 + subrepo = "mesa" + } +} diff --git a/anda/lib/mesa/mesa.spec b/anda/lib/mesa/mesa.spec new file mode 100644 index 0000000000..726a8b6c4d --- /dev/null +++ b/anda/lib/mesa/mesa.spec @@ -0,0 +1,745 @@ +%global _default_patch_fuzz 2 + +%global srcname mesa + +%ifnarch s390x +%global with_hardware 1 +%global with_radeonsi 1 +%global with_vmware 1 +%global with_vulkan_hw 1 +%global with_vdpau 1 +%global with_va 1 +%if !0%{?rhel} +%global with_r300 1 +%global with_r600 1 +%global with_nine 1 +%if 0%{?with_vulkan_hw} +%global with_nvk %{with_vulkan_hw} +%endif +%global with_opencl 1 +%endif +%global base_vulkan %{?with_vulkan_hw:,amd}%{!?with_vulkan_hw:%{nil}} +%endif + +%ifnarch %{ix86} +%if !0%{?rhel} +%global with_teflon 1 +%endif +%endif + +%ifarch %{ix86} x86_64 +%global with_crocus 1 +%global with_i915 1 +%global with_iris 1 +%global with_xa 1 +%global with_intel_clc 1 +%global intel_platform_vulkan %{?with_vulkan_hw:,intel,intel_hasvk}%{!?with_vulkan_hw:%{nil}} +%endif +%ifarch x86_64 +%if !0%{?with_vulkan_hw} +%global with_intel_vk_rt 1 +%endif +%endif + +%ifarch aarch64 x86_64 %{ix86} +%global with_kmsro 1 +%if !0%{?rhel} +%global with_lima 1 +%global with_vc4 1 +%global with_etnaviv 1 +%global with_tegra 1 +%endif +%global with_freedreno 1 +%global with_panfrost 1 +%global with_v3d 1 +%global with_xa 1 +%global extra_platform_vulkan %{?with_vulkan_hw:,broadcom,freedreno,panfrost,imagination-experimental}%{!?with_vulkan_hw:%{nil}} +%endif + +%if !0%{?rhel} +%global with_libunwind 1 +%global with_lmsensors 1 +%endif + +%ifarch %{valgrind_arches} +%bcond_without valgrind +%else +%bcond_with valgrind +%endif + +%global vulkan_drivers swrast,virtio%{?base_vulkan}%{?intel_platform_vulkan}%{?extra_platform_vulkan}%{?with_nvk:,nouveau} +%global vulkan_drivers swrast%{?base_vulkan}%{?intel_platform_vulkan}%{?extra_platform_vulkan}%{?with_nvk:,nouveau} +Name: %{srcname} +Summary: Mesa graphics libraries +# Make the dep solver always prefer our Mesa over the distro's +# This should not break anything by default as the Mesa stream is ***EXPLICITLY*** +# disabled by default, and has to be enabled manually. See `terra/release/terra-mesa.repo` for details. +Epoch: 1 +%global ver 25.0.0-rc3 +Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)} +Release: 3%?dist +License: MIT AND BSD-3-Clause AND SGI-B-2.0 +URL: http://www.mesa3d.org + + + +Source0: https://archive.mesa3d.org/%{srcname}-%{ver}.tar.xz +# src/gallium/auxiliary/postprocess/pp_mlaa* have an ... interestingly worded license. +# Source1 contains email correspondence clarifying the license terms. +# Fedora opts to ignore the optional part of clause 2 and treat that code as 2 clause BSD. +Source1: Mesa-MLAA-License-Clarification-Email.txt + +#Patch10: https://src.fedoraproject.org/rpms/mesa/raw/e89544b7a4d811a64ca23b402add29524cc6f704/f/gnome-shell-glthread-disable.patch +#Patch11: https://src.fedoraproject.org/rpms/mesa/raw/e89544b7a4d811a64ca23b402add29524cc6f704/f/0001-llvmpipe-Init-eglQueryDmaBufModifiersEXT-num_modifie.patch +#Patch12: https://src.fedoraproject.org/rpms/mesa/raw/e89544b7a4d811a64ca23b402add29524cc6f704/f/0001-Revert-ac-radeonsi-remove-has_syncobj-has_fence_to_h.patch + +# https://gitlab.com/evlaV/mesa/ +Patch20: valve.patch + +# s390x: fix build +#Patch100: https://src.fedoraproject.org/rpms/mesa/raw/e89544b7a4d811a64ca23b402add29524cc6f704/f/fix-egl-on-s390x.patch + +BuildRequires: meson >= 1.3.0 +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: gettext +%if 0%{?with_hardware} +BuildRequires: kernel-headers +%endif +# We only check for the minimum version of pkgconfig(libdrm) needed so that the +# SRPMs for each arch still have the same build dependencies. See: +# https://bugzilla.redhat.com/show_bug.cgi?id=1859515 +BuildRequires: pkgconfig(libdrm) >= 2.4.122 +%if 0%{?with_libunwind} +BuildRequires: pkgconfig(libunwind) +%endif +BuildRequires: pkgconfig(expat) +BuildRequires: pkgconfig(zlib) >= 1.2.3 +BuildRequires: pkgconfig(libzstd) +BuildRequires: pkgconfig(libselinux) +BuildRequires: pkgconfig(wayland-scanner) +BuildRequires: pkgconfig(wayland-protocols) >= 1.34 +BuildRequires: pkgconfig(wayland-client) >= 1.11 +BuildRequires: pkgconfig(wayland-server) >= 1.11 +BuildRequires: pkgconfig(wayland-egl-backend) >= 3 +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xdamage) >= 1.1 +BuildRequires: pkgconfig(xfixes) +BuildRequires: pkgconfig(xcb-glx) >= 1.8.1 +BuildRequires: pkgconfig(xxf86vm) +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(x11-xcb) +BuildRequires: pkgconfig(xcb-dri2) >= 1.8 +BuildRequires: pkgconfig(xcb-dri3) +BuildRequires: pkgconfig(xcb-present) +BuildRequires: pkgconfig(xcb-sync) +BuildRequires: pkgconfig(xshmfence) >= 1.1 +BuildRequires: pkgconfig(dri2proto) >= 2.8 +BuildRequires: pkgconfig(glproto) >= 1.4.14 +BuildRequires: pkgconfig(xcb-xfixes) +BuildRequires: pkgconfig(xcb-randr) +BuildRequires: pkgconfig(xrandr) >= 1.3 +BuildRequires: bison +BuildRequires: flex +%if 0%{?with_lmsensors} +BuildRequires: lm_sensors-devel +%endif +%if 0%{?with_vdpau} +BuildRequires: pkgconfig(vdpau) >= 1.1 +%endif +%if 0%{?with_va} +BuildRequires: pkgconfig(libva) >= 0.38.0 +%endif +BuildRequires: pkgconfig(libelf) +BuildRequires: pkgconfig(libglvnd) >= 1.3.2 +BuildRequires: llvm-devel >= 7.0.0 +%if 0%{?with_teflon} +BuildRequires: flatbuffers-devel +BuildRequires: flatbuffers-compiler +BuildRequires: xtensor-devel +%endif +%if 0%{?with_opencl} || 0%{?with_nvk} || 0%{?with_intel_clc} +BuildRequires: clang-devel +BuildRequires: pkgconfig(libclc) +BuildRequires: pkgconfig(SPIRV-Tools) +BuildRequires: pkgconfig(LLVMSPIRVLib) +%endif +%if 0%{?with_opencl} || 0%{?with_nvk} +BuildRequires: bindgen +BuildRequires: rust-packaging +%endif +%if 0%{?with_nvk} +BuildRequires: cbindgen +BuildRequires: (crate(paste) >= 1.0.14 with crate(paste) < 2) +BuildRequires: (crate(proc-macro2) >= 1.0.56 with crate(proc-macro2) < 2) +BuildRequires: (crate(quote) >= 1.0.25 with crate(quote) < 2) +BuildRequires: (crate(syn/clone-impls) >= 2.0.15 with crate(syn/clone-impls) < 3) +BuildRequires: (crate(unicode-ident) >= 1.0.6 with crate(unicode-ident) < 2) +%endif +%if %{with valgrind} +BuildRequires: pkgconfig(valgrind) +%endif +BuildRequires: python3-devel +BuildRequires: python3-mako +%if 0%{?with_intel_clc} +BuildRequires: python3-ply +%endif +BuildRequires: python3-pycparser +BuildRequires: python3-pyyaml +BuildRequires: vulkan-headers +BuildRequires: glslang +%if 0%{?with_vulkan_hw} +BuildRequires: pkgconfig(vulkan) +%endif + +%description +%{summary}. + +%package filesystem +Summary: Mesa driver filesystem +Provides: mesa-dri-filesystem = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: mesa-omx-drivers < %{?epoch:%{epoch}:}%{version}-%{release} + +%description filesystem +%{summary}. + +%package libGL +Summary: Mesa libGL runtime libraries +Requires: %{name}-libglapi%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: libglvnd-glx%{?_isa} >= 1:1.3.2 +Recommends: %{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description libGL +%{summary}. + +%package libGL-devel +Summary: Mesa libGL development package +Requires: %{name}-libGL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: libglvnd-devel%{?_isa} >= 1:1.3.2 +Provides: libGL-devel +Provides: libGL-devel%{?_isa} +Recommends: gl-manpages + +%description libGL-devel +%{summary}. + +%package libEGL +Summary: Mesa libEGL runtime libraries +Requires: libglvnd-egl%{?_isa} >= 1:1.3.2 +Requires: %{name}-libgbm%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-libglapi%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Recommends: %{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description libEGL +%{summary}. + +%package libEGL-devel +Summary: Mesa libEGL development package +Requires: %{name}-libEGL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: libglvnd-devel%{?_isa} >= 1:1.3.2 +Requires: %{name}-khr-devel%{?_isa} +Provides: libEGL-devel +Provides: libEGL-devel%{?_isa} + +%description libEGL-devel +%{summary}. + +%package dri-drivers +Summary: Mesa-based DRI drivers +Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-libglapi%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +%if 0%{?with_va} +Recommends: %{name}-va-drivers%{?_isa} +%endif + +%description dri-drivers +%{summary}. + +%if 0%{?with_va} +%package va-drivers +Summary: Mesa-based VA-API video acceleration drivers +Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: %{name}-vaapi-drivers < 22.2.0-5 + +%description va-drivers +%{summary}. +%endif + +%if 0%{?with_vdpau} +%package vdpau-drivers +Summary: Mesa-based VDPAU drivers +Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description vdpau-drivers +%{summary}. +%endif + +%package libOSMesa +Summary: Mesa offscreen rendering libraries +Requires: %{name}-libglapi%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: libOSMesa +Provides: libOSMesa%{?_isa} + +%description libOSMesa +%{summary}. + +%package libOSMesa-devel +Summary: Mesa offscreen rendering development package +Requires: %{name}-libOSMesa%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description libOSMesa-devel +%{summary}. + +%package libgbm +Summary: Mesa gbm runtime library +Provides: libgbm +Provides: libgbm%{?_isa} +Recommends: %{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +# If mesa-dri-drivers are installed, they must match in version. This is here to prevent using +# older mesa-dri-drivers together with a newer mesa-libgbm and its dependants. +# See https://bugzilla.redhat.com/show_bug.cgi?id=2193135 . +Requires: (%{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} if %{name}-dri-drivers%{?_isa}) + +%description libgbm +%{summary}. + +%package libgbm-devel +Summary: Mesa libgbm development package +Requires: %{name}-libgbm%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: libgbm-devel +Provides: libgbm-devel%{?_isa} + +%description libgbm-devel +%{summary}. + +%if 0%{?with_xa} +%package libxatracker +Summary: Mesa XA state tracker +Provides: libxatracker +Provides: libxatracker%{?_isa} + +%description libxatracker +%{summary}. + +%package libxatracker-devel +Summary: Mesa XA state tracker development package +Requires: %{name}-libxatracker%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: libxatracker-devel +Provides: libxatracker-devel%{?_isa} + +%description libxatracker-devel +%{summary}. +%endif + +%package libglapi +Summary: Mesa shared glapi +Provides: libglapi +Provides: libglapi%{?_isa} +# If mesa-dri-drivers are installed, they must match in version. This is here to prevent using +# older mesa-dri-drivers together with a newer mesa-libglapi or its dependants. +# See https://bugzilla.redhat.com/show_bug.cgi?id=2193135 . +Requires: (%{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} if %{name}-dri-drivers%{?_isa}) + +%description libglapi +%{summary}. + +%if 0%{?with_opencl} +%package libOpenCL +Summary: Mesa OpenCL runtime library +Requires: ocl-icd%{?_isa} +Requires: libclc%{?_isa} +Requires: %{name}-libgbm%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: opencl-filesystem + +%description libOpenCL +%{summary}. + +%package libOpenCL-devel +Summary: Mesa OpenCL development package +Requires: %{name}-libOpenCL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description libOpenCL-devel +%{summary}. +%endif + +%if 0%{?with_teflon} +%package libTeflon +Summary: Mesa TensorFlow Lite delegate + +%description libTeflon +%{summary}. +%endif + +%if 0%{?with_nine} +%package libd3d +Summary: Mesa Direct3D9 state tracker + +%description libd3d +%{summary}. + +%package libd3d-devel +Summary: Mesa Direct3D9 state tracker development package +Requires: %{name}-libd3d%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description libd3d-devel +%{summary}. +%endif + +%package vulkan-drivers +Summary: Mesa Vulkan drivers +Requires: vulkan%{_isa} +Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: mesa-vulkan-devel < %{?epoch:%{epoch}:}%{version}-%{release} + +%description vulkan-drivers +The drivers with support for the Vulkan API. + +%prep +%autosetup -n %{srcname}-%{ver} -p1 +cp %{SOURCE1} docs/ + +%build +# ensure standard Rust compiler flags are set +export RUSTFLAGS="%build_rustflags" + +%if 0%{?with_nvk} +export MESON_PACKAGE_CACHE_DIR="%{cargo_registry}/" +# So... Meson can't actually find them without tweaks +%define inst_crate_nameversion() %(basename %{cargo_registry}/%{1}-*) +%define rewrite_wrap_file() sed -e "/source.*/d" -e "s/%{1}-.*/%{inst_crate_nameversion %{1}}/" -i subprojects/%{1}.wrap + +%rewrite_wrap_file proc-macro2 +%rewrite_wrap_file quote +%rewrite_wrap_file syn +%rewrite_wrap_file unicode-ident +%rewrite_wrap_file paste +%endif + +# We've gotten a report that enabling LTO for mesa breaks some games. See +# https://bugzilla.redhat.com/show_bug.cgi?id=1862771 for details. +# Disable LTO for now +%define _lto_cflags %{nil} + +%meson \ + -Dplatforms=x11,wayland \ + -Dosmesa=true \ +%if 0%{?with_hardware} + -Dgallium-drivers=swrast,virgl,nouveau%{?with_r300:,r300}%{?with_crocus:,crocus}%{?with_i915:,i915}%{?with_iris:,iris}%{?with_vmware:,svga}%{?with_radeonsi:,radeonsi}%{?with_r600:,r600}%{?with_freedreno:,freedreno}%{?with_etnaviv:,etnaviv}%{?with_tegra:,tegra}%{?with_vc4:,vc4}%{?with_v3d:,v3d}%{?with_lima:,lima}%{?with_panfrost:,panfrost}%{?with_vulkan_hw:,zink} \ +%else + -Dgallium-drivers=swrast,virgl \ +%endif + -Dgallium-vdpau=%{?with_vdpau:enabled}%{!?with_vdpau:disabled} \ + -Dgallium-va=%{?with_va:enabled}%{!?with_va:disabled} \ + -Dgallium-xa=%{?with_xa:enabled}%{!?with_xa:disabled} \ + -Dgallium-nine=%{?with_nine:true}%{!?with_nine:false} \ + -Dteflon=%{?with_teflon:true}%{!?with_teflon:false} \ + -Dgallium-opencl=%{?with_opencl:icd}%{!?with_opencl:disabled} \ +%if 0%{?with_opencl} + -Dgallium-rusticl=true \ +%endif + -Dvulkan-drivers=%{?vulkan_drivers} \ + -Dvulkan-layers=device-select \ + -Dshared-glapi=enabled \ + -Dgles1=enabled \ + -Dgles2=enabled \ + -Dopengl=true \ + -Dgbm=enabled \ + -Dglx=dri \ + -Degl=enabled \ + -Dglvnd=enabled \ +%if 0%{?with_intel_clc} + -Dintel-clc=enabled \ +%endif + -Dvideo-codecs=all \ + -Dintel-rt=%{?with_intel_vk_rt:enabled}%{!?with_intel_vk_rt:disabled} \ + -Dmicrosoft-clc=disabled \ + -Dllvm=enabled \ + -Dshared-llvm=enabled \ + -Dvalgrind=%{?with_valgrind:enabled}%{!?with_valgrind:disabled} \ + -Dbuild-tests=false \ + -Dselinux=true \ +%if !0%{?with_libunwind} + -Dlibunwind=disabled \ +%endif +%if !0%{?with_lmsensors} + -Dlmsensors=disabled \ +%endif + -Dandroid-libbacktrace=disabled \ +%ifarch %{ix86} + -Dglx-read-only-text=true \ +%endif + %{nil} +%meson_build + +%install +%meson_install + +# libvdpau opens the versioned name, don't bother including the unversioned +rm -vf %{buildroot}%{_libdir}/vdpau/*.so +# likewise glvnd +rm -vf %{buildroot}%{_libdir}/libGLX_mesa.so +rm -vf %{buildroot}%{_libdir}/libEGL_mesa.so +# XXX can we just not build this +rm -vf %{buildroot}%{_libdir}/libGLES* + +# glvnd needs a default provider for indirect rendering where it cannot +# determine the vendor +ln -s %{_libdir}/libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_system.so.0 + +# this keeps breaking, check it early. note that the exit from eu-ftr is odd. +pushd %{buildroot}%{_libdir} +for i in libOSMesa*.so libGL.so ; do + eu-findtextrel $i && exit 1 +done +popd + +%files filesystem +%doc docs/Mesa-MLAA-License-Clarification-Email.txt +%dir %{_libdir}/dri +%dir %{_datadir}/drirc.d + +%files libGL +%{_libdir}/libGLX_mesa.so.0* +%{_libdir}/libGLX_system.so.0* +%files libGL-devel +%dir %{_includedir}/GL +%dir %{_includedir}/GL/internal +%{_includedir}/GL/internal/dri_interface.h +%{_libdir}/pkgconfig/dri.pc +%{_libdir}/libglapi.so + +%files libEGL +%{_datadir}/glvnd/egl_vendor.d/50_mesa.json +%{_libdir}/libEGL_mesa.so.0* +%files libEGL-devel +%dir %{_includedir}/EGL +%{_includedir}/EGL/eglext_angle.h +%{_includedir}/EGL/eglmesaext.h + +%files libglapi +%{_libdir}/libglapi.so.0 +%{_libdir}/libglapi.so.0.* + +%files libOSMesa +%{_libdir}/libOSMesa.so.8* +%files libOSMesa-devel +%dir %{_includedir}/GL +%{_includedir}/GL/osmesa.h +%{_libdir}/libOSMesa.so +%{_libdir}/pkgconfig/osmesa.pc + +%files libgbm +%{_libdir}/gbm/dri_gbm.so +%{_libdir}/libgbm.so.1 +%{_libdir}/libgbm.so.1.* +%files libgbm-devel +%{_libdir}/libgbm.so +%{_includedir}/gbm.h +%{_libdir}/pkgconfig/gbm.pc + +%if 0%{?with_xa} +%files libxatracker +%if 0%{?with_hardware} +%{_libdir}/libxatracker.so.2 +%{_libdir}/libxatracker.so.2.* +%endif + +%files libxatracker-devel +%if 0%{?with_hardware} +%{_libdir}/libxatracker.so +%{_includedir}/xa_tracker.h +%{_includedir}/xa_composite.h +%{_includedir}/xa_context.h +%{_libdir}/pkgconfig/xatracker.pc +%endif +%endif + +%if 0%{?with_teflon} +%files libTeflon +%{_libdir}/libteflon.so +%endif + +%if 0%{?with_opencl} +%files libOpenCL +%{_libdir}/libMesaOpenCL.so.* +%{_libdir}/libRusticlOpenCL.so.* +%{_sysconfdir}/OpenCL/vendors/mesa.icd +%{_sysconfdir}/OpenCL/vendors/rusticl.icd + +%files libOpenCL-devel +%{_libdir}/libMesaOpenCL.so +%{_libdir}/libRusticlOpenCL.so +%endif + +%if 0%{?with_nine} +%files libd3d +%dir %{_libdir}/d3d/ +%{_libdir}/d3d/*.so.* + +%files libd3d-devel +%{_libdir}/pkgconfig/d3d.pc +%{_includedir}/d3dadapter/ +%{_libdir}/d3d/*.so +%endif + +%files dri-drivers +%{_datadir}/drirc.d/00-mesa-defaults.conf +%{_libdir}/libgallium-*.so +%{_libdir}/dri/kms_swrast_dri.so +%{_libdir}/dri/libdril_dri.so +%{_libdir}/dri/swrast_dri.so +%{_libdir}/dri/virtio_gpu_dri.so + +%if 0%{?with_hardware} +%if 0%{?with_r300} +%{_libdir}/dri/r300_dri.so +%endif +%if 0%{?with_radeonsi} +%if 0%{?with_r600} +%{_libdir}/dri/r600_dri.so +%endif +%{_libdir}/dri/radeonsi_dri.so +%endif +%ifarch %{ix86} x86_64 +%{_libdir}/dri/crocus_dri.so +%{_libdir}/dri/i915_dri.so +%{_libdir}/dri/iris_dri.so +%endif +%ifarch aarch64 x86_64 %{ix86} +%{_libdir}/dri/ingenic-drm_dri.so +%{_libdir}/dri/imx-drm_dri.so +%{_libdir}/dri/imx-lcdif_dri.so +%{_libdir}/dri/kirin_dri.so +%{_libdir}/dri/komeda_dri.so +%{_libdir}/dri/mali-dp_dri.so +%{_libdir}/dri/mcde_dri.so +%{_libdir}/dri/mxsfb-drm_dri.so +%{_libdir}/dri/rcar-du_dri.so +%{_libdir}/dri/stm_dri.so +%endif +%if 0%{?with_vc4} +%{_libdir}/dri/vc4_dri.so +%endif +%if 0%{?with_v3d} +%{_libdir}/dri/v3d_dri.so +%endif +%if 0%{?with_freedreno} +%{_libdir}/dri/kgsl_dri.so +%{_libdir}/dri/msm_dri.so +%endif +%if 0%{?with_etnaviv} +%{_libdir}/dri/etnaviv_dri.so +%endif +%if 0%{?with_tegra} +%{_libdir}/dri/tegra_dri.so +%endif +%if 0%{?with_lima} +%{_libdir}/dri/lima_dri.so +%endif +%if 0%{?with_panfrost} +%{_libdir}/dri/panfrost_dri.so +%{_libdir}/dri/panthor_dri.so +%endif +%{_libdir}/dri/nouveau_dri.so +%if 0%{?with_vmware} +%{_libdir}/dri/vmwgfx_dri.so +%endif +%endif +%if 0%{?with_opencl} +%dir %{_libdir}/gallium-pipe +%{_libdir}/gallium-pipe/*.so +%endif +%if 0%{?with_kmsro} +%{_libdir}/dri/armada-drm_dri.so +%{_libdir}/dri/exynos_dri.so +%{_libdir}/dri/gm12u320_dri.so +%{_libdir}/dri/hdlcd_dri.so +%{_libdir}/dri/hx8357d_dri.so +%{_libdir}/dri/ili9163_dri.so +%{_libdir}/dri/ili9225_dri.so +%{_libdir}/dri/ili9341_dri.so +%{_libdir}/dri/ili9486_dri.so +%{_libdir}/dri/imx-dcss_dri.so +%{_libdir}/dri/mediatek_dri.so +%{_libdir}/dri/meson_dri.so +%{_libdir}/dri/mi0283qt_dri.so +%{_libdir}/dri/panel-mipi-dbi_dri.so +%{_libdir}/dri/pl111_dri.so +%{_libdir}/dri/repaper_dri.so +%{_libdir}/dri/rockchip_dri.so +%{_libdir}/dri/rzg2l-du_dri.so +%{_libdir}/dri/ssd130x_dri.so +%{_libdir}/dri/st7586_dri.so +%{_libdir}/dri/st7735r_dri.so +%{_libdir}/dri/sti_dri.so +%{_libdir}/dri/sun4i-drm_dri.so +%{_libdir}/dri/udl_dri.so +%{_libdir}/dri/vkms_dri.so +%{_libdir}/dri/zynqmp-dpsub_dri.so +%endif +%if 0%{?with_vulkan_hw} +%{_libdir}/dri/zink_dri.so +%endif + +%if 0%{?with_va} +%files va-drivers +%{_libdir}/dri/nouveau_drv_video.so +%if 0%{?with_r600} +%{_libdir}/dri/r600_drv_video.so +%endif +%if 0%{?with_radeonsi} +%{_libdir}/dri/radeonsi_drv_video.so +%endif +%{_libdir}/dri/virtio_gpu_drv_video.so +%endif + +%if 0%{?with_vdpau} +%files vdpau-drivers +%dir %{_libdir}/vdpau +%{_libdir}/vdpau/libvdpau_nouveau.so.1* +%if 0%{?with_r600} +%{_libdir}/vdpau/libvdpau_r600.so.1* +%endif +%if 0%{?with_radeonsi} +%{_libdir}/vdpau/libvdpau_radeonsi.so.1* +%endif +%{_libdir}/vdpau/libvdpau_virtio_gpu.so.1* +%endif + +%files vulkan-drivers +%{_libdir}/libvulkan_lvp.so +%{_datadir}/vulkan/icd.d/lvp_icd.*.json +%dnl %{_libdir}/libvulkan_virtio.so +%dnl %{_datadir}/vulkan/icd.d/virtio_icd.*.json +%{_libdir}/libVkLayer_MESA_device_select.so +%{_datadir}/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json +%if 0%{?with_vulkan_hw} +%{_libdir}/libvulkan_radeon.so +%{_datadir}/drirc.d/00-radv-defaults.conf +%{_datadir}/vulkan/icd.d/radeon_icd.*.json +%if 0%{?with_nvk} +%{_libdir}/libvulkan_nouveau.so +%{_datadir}/vulkan/icd.d/nouveau_icd.*.json +%endif +%ifarch %{ix86} x86_64 +%{_libdir}/libvulkan_intel.so +%{_datadir}/vulkan/icd.d/intel_icd.*.json +%{_libdir}/libvulkan_intel_hasvk.so +%{_datadir}/vulkan/icd.d/intel_hasvk_icd.*.json +%endif +%ifarch aarch64 x86_64 %{ix86} +%{_libdir}/libvulkan_broadcom.so +%{_datadir}/vulkan/icd.d/broadcom_icd.*.json +%{_libdir}/libvulkan_freedreno.so +%{_datadir}/vulkan/icd.d/freedreno_icd.*.json +%{_libdir}/libvulkan_panfrost.so +%{_datadir}/vulkan/icd.d/panfrost_icd.*.json +%{_libdir}/libpowervr_rogue.so +%{_libdir}/libvulkan_powervr_mesa.so +%{_datadir}/vulkan/icd.d/powervr_mesa_icd.*.json +%endif +%endif + +%changelog +%autochangelog diff --git a/anda/lib/mesa/update.rhai b/anda/lib/mesa/update.rhai new file mode 100644 index 0000000000..5bfae0c21c --- /dev/null +++ b/anda/lib/mesa/update.rhai @@ -0,0 +1,3 @@ +let v = gitlab_tag("gitlab.freedesktop.org", "176"); +v.crop(5); +rpm.global("ver", v); diff --git a/anda/lib/mesa/valve.patch b/anda/lib/mesa/valve.patch new file mode 100644 index 0000000000..d4eb3da790 --- /dev/null +++ b/anda/lib/mesa/valve.patch @@ -0,0 +1,143 @@ +From 04afaf13b208f5c58c0b057f3dfc2dfa5c19a334 Mon Sep 17 00:00:00 2001 +From: Bas Nieuwenhuizen +Date: Fri, 14 Jan 2022 15:58:45 +0100 +Subject: [PATCH 5/8] STEAMOS: radv: min image count override for FH5 + +Otherwise in combination with the vblank time reservation in +gamescope the game could get stuck in low power states. +--- + src/util/00-radv-defaults.conf | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/util/00-radv-defaults.conf b/src/util/00-radv-defaults.conf +index 1cbb2e087c9..43488ada6bc 100644 +--- a/src/util/00-radv-defaults.conf ++++ b/src/util/00-radv-defaults.conf +@@ -207,6 +207,11 @@ Application bugs worked around in this file: + + ++ ++ ++ ++ + + + +2.42.0 + + +From b1c0d3de07bf958317f386585ce541b1c336e929 Mon Sep 17 00:00:00 2001 +From: Bas Nieuwenhuizen +Date: Mon, 21 Feb 2022 18:43:54 +0100 +Subject: [PATCH 6/8] STEAMOS: Dynamic swapchain override for gamescope limiter + +--- + src/gallium/frontends/dri/loader_dri3_helper.c | 42 +++++++++++++++++++++++++++++++-- + src/gallium/frontends/dri/loader_dri3_helper.h | 1 + + src/loader/meson.build | 2 +- + 4 files changed, 80 insertions(+), 3 deletions(-) + +diff --git a/src/gallium/frontends/dri/loader_dri3_helper.c b/src/gallium/frontends/dri/loader_dri3_helper.c +index 2631a9e2fd5..dbf6db349c6 100644 +--- a/src/gallium/frontends/dri/loader_dri3_helper.c ++++ b/src/gallium/frontends/dri/loader_dri3_helper.c +@@ -276,6 +276,30 @@ dri3_update_max_num_back(struct loader_dri3_drawable *draw) + } + } + ++static unsigned ++gamescope_swapchain_override() ++{ ++ const char *path = getenv("GAMESCOPE_LIMITER_FILE"); ++ if (!path) ++ return 0; ++ ++ static simple_mtx_t mtx = SIMPLE_MTX_INITIALIZER; ++ static int fd = -1; ++ ++ simple_mtx_lock(&mtx); ++ if (fd < 0) { ++ fd = open(path, O_RDONLY); ++ } ++ simple_mtx_unlock(&mtx); ++ ++ if (fd < 0) ++ return 0; ++ ++ uint32_t override_value = 0; ++ pread(fd, &override_value, sizeof(override_value), 0); ++ return override_value; ++} ++ + void + loader_dri3_set_swap_interval(struct loader_dri3_drawable *draw, int interval) + { +@@ -290,10 +314,12 @@ loader_dri3_set_swap_interval(struct loader_dri3_drawable *draw, int interval) + * PS. changing from value A to B and A < B won't cause swap out of order but + * may still gets wrong target_msc value at the beginning. + */ +- if (draw->swap_interval != interval) ++ if (draw->orig_swap_interval != interval) + loader_dri3_swapbuffer_barrier(draw); + +- draw->swap_interval = interval; ++ draw->orig_swap_interval = interval; ++ if (gamescope_swapchain_override() != 1) ++ draw->swap_interval = interval; + } + + static void +@@ -422,6 +448,12 @@ loader_dri3_drawable_init(xcb_connection_t *conn, + + draw->swap_interval = dri_get_initial_swap_interval(draw->dri_screen_render_gpu); + ++ draw->orig_swap_interval = draw->swap_interval; ++ ++ unsigned gamescope_override = gamescope_swapchain_override(); ++ if (gamescope_override == 1) ++ draw->swap_interval = 1; ++ + dri3_update_max_num_back(draw); + + /* Create a new drawable */ +@@ -1066,6 +1098,12 @@ loader_dri3_swap_buffers_msc(struct loader_dri3_drawable *draw, + if (draw->type == LOADER_DRI3_DRAWABLE_WINDOW) { + dri3_fence_reset(draw->conn, back); + ++ unsigned gamescope_override = gamescope_swapchain_override(); ++ if (gamescope_override == 1) ++ draw->swap_interval = 1; ++ else ++ draw->swap_interval = draw->orig_swap_interval; ++ + /* Compute when we want the frame shown by taking the last known + * successful MSC and adding in a swap interval for each outstanding swap + * request. target_msc=divisor=remainder=0 means "Use glXSwapBuffers() +diff --git a/src/gallium/frontends/dri/loader_dri3_helper.h b/src/gallium/frontends/dri/loader_dri3_helper.h +index cc2362dd599..fe73b3f329c 100644 +--- a/src/gallium/frontends/dri/loader_dri3_helper.h ++++ b/src/gallium/frontends/dri/loader_dri3_helper.h +@@ -170,6 +170,7 @@ struct loader_dri3_drawable { + bool block_on_depleted_buffers; + bool queries_buffer_age; + int swap_interval; ++ int orig_swap_interval; + + const struct loader_dri3_vtable *vtable; + +diff --git a/src/gallium/frontends/dri/meson.build b/src/gallium/frontends/dri/meson.build +index a98c8c0..0d4f816 100644 +--- a/src/gallium/frontends/dri/meson.build ++++ b/src/gallium/frontends/dri/meson.build +@@ -23,7 +23,7 @@ if with_platform_x11 + deps_for_libdri += dep_xcb + if with_dri_platform == 'drm' + deps_for_libdri += [dep_xcb_dri3, dep_xcb_present, dep_xcb_sync, +- dep_xshmfence, dep_xcb_xfixes] ++ dep_xshmfence, dep_xcb_xfixes, dep_xcb_xrandr, idep_mesautil] + files_libdri += files('loader_dri3_helper.c') + endif + endif diff --git a/anda/lib/nvidia/compat-nvidia-repo/anda.hcl b/anda/lib/nvidia/compat-nvidia-repo/anda.hcl new file mode 100644 index 0000000000..0cfec17863 --- /dev/null +++ b/anda/lib/nvidia/compat-nvidia-repo/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "compat-nvidia-repo.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/compat-nvidia-repo/compat-nvidia-repo.spec b/anda/lib/nvidia/compat-nvidia-repo/compat-nvidia-repo.spec new file mode 100644 index 0000000000..b68ef885b8 --- /dev/null +++ b/anda/lib/nvidia/compat-nvidia-repo/compat-nvidia-repo.spec @@ -0,0 +1,34 @@ +Name: compat-nvidia-repo +Version: 570.86.16 +Epoch: 3 +Release: 1%?dist +Summary: Compatibility package required by official CUDA packages +License: NVIDIA License +URL: https://developer.nvidia.com/cuda-toolkit + +BuildArch: noarch + +Requires: nvidia-driver >= %{?epoch:%{epoch}:}%{version} +Requires: nvidia-driver-cuda >= %{?epoch:%{epoch}:}%{version} +Requires: nvidia-driver-cuda-libs >= %{?epoch:%{epoch}:}%{version} +Requires: nvidia-driver-libs >= %{?epoch:%{epoch}:}%{version} +Requires: nvidia-kmod >= %{?epoch:%{epoch}:}%{version} +Requires: nvidia-settings >= %{?epoch:%{epoch}:}%{version} + +Provides: cuda-drivers >= %{?epoch:%{epoch}:}%{version} +Provides: nvidia-open >= %{?epoch:%{epoch}:}%{version} +# Add any versioned provides: +Provides: cuda-drivers-560 >= %{?epoch:%{epoch}:}%{version} +Provides: cuda-drivers-565 >= %{?epoch:%{epoch}:}%{version} +Provides: nvidia-open-560 >= %{?epoch:%{epoch}:}%{version} +Provides: nvidia-open-565 >= %{?epoch:%{epoch}:}%{version} + +%description +Nvidia drivers metapackage required by official CUDA packages. It pulls in all +Nvidia driver components. + +%files +# Without an empty files section the package is not created. + +%changelog +%autochangelog diff --git a/anda/lib/nvidia/compat-nvidia-repo/update.rhai b/anda/lib/nvidia/compat-nvidia-repo/update.rhai new file mode 100644 index 0000000000..e5eff132c0 --- /dev/null +++ b/anda/lib/nvidia/compat-nvidia-repo/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_driver_version()); diff --git a/anda/lib/nvidia/cuda-cccl/anda.hcl b/anda/lib/nvidia/cuda-cccl/anda.hcl new file mode 100644 index 0000000000..105fd9c168 --- /dev/null +++ b/anda/lib/nvidia/cuda-cccl/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "cuda-cccl.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/cuda-cccl/cuda-cccl.spec b/anda/lib/nvidia/cuda-cccl/cuda-cccl.spec new file mode 100644 index 0000000000..3a02187274 --- /dev/null +++ b/anda/lib/nvidia/cuda-cccl/cuda-cccl.spec @@ -0,0 +1,58 @@ +%global real_name cuda_cccl + +%global debug_package %{nil} +%global major_package_version 12-6 + +Name: %(echo %real_name | tr '_' '-') +Epoch: 1 +Version: 12.6.77 +Release: 1%{?dist} +Summary: CXX Core Compute Libraries +License: CUDA Toolkit +URL: https://developer.nvidia.com/cuda-toolkit +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cuda/redist/%{real_name}/linux-x86_64/%{real_name}-linux-x86_64-%{version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cuda/redist/%{real_name}/linux-sbsa/%{real_name}-linux-sbsa-%{version}-archive.tar.xz + +Requires: cmake-filesystem +Conflicts: %{name}-%{major_package_version} < %{?epoch:%{epoch}:}%{version} + +%description +CXX Core Compute Libraries. + +%package devel +Summary: CXX Core Compute Libraries development files + +%description devel +CXX Core Compute Libraries development files. + +%prep +%ifarch x86_64 +%setup -q -n %{real_name}-linux-x86_64-%{version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n %{real_name}-linux-sbsa-%{version}-archive +%endif + +%install +mkdir -p %{buildroot}%{_includedir} +mkdir -p %{buildroot}%{_libdir}/cmake + +cp -fr include/* %{buildroot}%{_includedir}/ +# Conflict with rocthrust-devel in main repositories: +mv %{buildroot}%{_includedir}/thrust %{buildroot}%{_includedir}/cuda/ + +cp -fr lib/cmake/* %{buildroot}%{_libdir}/cmake +rm -f %{buildroot}%{_libdir}/cmake/thrust/README.md + +%files devel +%license LICENSE +%doc lib/cmake/thrust/README.md +%{_includedir}/* +%{_libdir}/cmake/* + +%changelog +%autochangelog + diff --git a/anda/lib/nvidia/cuda-cccl/update.rhai b/anda/lib/nvidia/cuda-cccl/update.rhai new file mode 100644 index 0000000000..0ccb93d4c5 --- /dev/null +++ b/anda/lib/nvidia/cuda-cccl/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("cuda_cccl")); diff --git a/anda/lib/nvidia/cuda-cudart/anda.hcl b/anda/lib/nvidia/cuda-cudart/anda.hcl new file mode 100644 index 0000000000..221343b01c --- /dev/null +++ b/anda/lib/nvidia/cuda-cudart/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "cuda-cudart.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/cuda-cudart/cuda-cudart.spec b/anda/lib/nvidia/cuda-cudart/cuda-cudart.spec new file mode 100644 index 0000000000..400d6e9d7f --- /dev/null +++ b/anda/lib/nvidia/cuda-cudart/cuda-cudart.spec @@ -0,0 +1,87 @@ +%global real_name cuda_cudart + +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global major_package_version 12-6 + +Name: %(echo %real_name | tr '_' '-') +Epoch: 1 +Version: 12.6.77 +Release: 1%{?dist} +Summary: CUDA Runtime API library +License: CUDA Toolkit +URL: https://developer.nvidia.com/cuda-toolkit +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cuda/redist/%{real_name}/linux-x86_64/%{real_name}-linux-x86_64-%{version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cuda/redist/%{real_name}/linux-sbsa/%{real_name}-linux-sbsa-%{version}-archive.tar.xz +Source3: cudart.pc + +Requires(post): ldconfig +Conflicts: %{name}-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} + +%description +CUDA Runtime (cudart). + +%package devel +Summary: Development files for NVIDIA CUDA Runtime API library +Requires: opencl-headers +Requires: %{name}%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Conflicts: %{name}-devel-%{major_package_version} < %{?epoch:%{epoch}:}%{version} + +%description devel +This package provides development files for the NVIDIA CUDA Runtime API library. + +%package static +Summary: Static libraries for NVIDIA CUDA Runtime API +Requires: %{name}-devel%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description static +This package contains static libraries for NVIDIA CUDA Runtime API. + +%prep +%ifarch x86_64 +%setup -q -n %{real_name}-linux-x86_64-%{version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n %{real_name}-linux-sbsa-%{version}-archive +%endif + +%install +mkdir -p %{buildroot}%{_includedir} +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_libdir}/pkgconfig/ + +cp -fr include/* %{buildroot}%{_includedir}/ +rm -fr %{buildroot}%{_includedir}/CL +cp -fr lib/libcu* %{buildroot}%{_libdir}/ +cp -fr %{SOURCE3} %{buildroot}/%{_libdir}/pkgconfig/ + +# Set proper variables +sed -i \ + -e 's|CUDA_VERSION|%{version}|g' \ + -e 's|LIBDIR|%{_libdir}|g' \ + -e 's|INCLUDE_DIR|%{_includedir}|g' \ + %{buildroot}/%{_libdir}/pkgconfig/*.pc + +%{?ldconfig_scriptlets} + +%files +%license LICENSE +%{_libdir}/libcudart.so.* + +%files devel +%{_includedir}/* +%{_libdir}/libcudadevrt.a +%{_libdir}/libcudart.so +%{_libdir}/libculibos.a +%{_libdir}/pkgconfig/cudart.pc + +%files static +%{_libdir}/libcudart_static.a + +%changelog +%autochangelog diff --git a/anda/lib/nvidia/cuda-cudart/cudart.pc b/anda/lib/nvidia/cuda-cudart/cudart.pc new file mode 100644 index 0000000000..eea148314f --- /dev/null +++ b/anda/lib/nvidia/cuda-cudart/cudart.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: cudart +Description: CUDA Runtime Library +Version: CUDA_VERSION +Libs: -L${libdir} -lcudart +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/cuda-cudart/update.rhai b/anda/lib/nvidia/cuda-cudart/update.rhai new file mode 100644 index 0000000000..58575801f8 --- /dev/null +++ b/anda/lib/nvidia/cuda-cudart/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("cuda_cudart")); diff --git a/anda/lib/nvidia/cuda-cudnn/anda.hcl b/anda/lib/nvidia/cuda-cudnn/anda.hcl new file mode 100644 index 0000000000..476e1144e0 --- /dev/null +++ b/anda/lib/nvidia/cuda-cudnn/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "cuda-cudnn.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/cuda-cudnn/cuda-cudnn.spec b/anda/lib/nvidia/cuda-cudnn/cuda-cudnn.spec new file mode 100644 index 0000000000..d712263ea5 --- /dev/null +++ b/anda/lib/nvidia/cuda-cudnn/cuda-cudnn.spec @@ -0,0 +1,76 @@ +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global cuda_version 12 + +Name: cuda-cudnn +Version: 9.6.0.74 +Release: 1%{?dist} +Epoch: 1 +Summary: NVIDIA CUDA Deep Neural Network library (cuDNN) +License: NVIDIA Software Development Kit +URL: https://developer.nvidia.com/cudnn +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-%{version}_cuda%{cuda_version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-sbsa/cudnn-linux-sbsa-%{version}_cuda%{cuda_version}-archive.tar.xz + +%description +The NVIDIA CUDA Deep Neural Network library (cuDNN) is a GPU-accelerated +library of primitives for deep neural networks. cuDNN provides highly tuned +implementations for standard routines such as forward and backward convolution, +pooling, normalization, and activation layers. cuDNN is part of the NVIDIA Deep +Learning SDK. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: cuda%{?_isa} >= %{?epoch:%{epoch}:}%{cuda_version} + +%description devel +The %{name}-devel package contains libraries and header files for developing +applications that use %{name}. + +%package static +Summary: Static libraries for %{name} +Requires: %{name}-devel%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description static +Static library files for %{name}. + +%prep +%ifarch x86_64 +%setup -q -n cudnn-linux-x86_64-%{version}_cuda%{cuda_version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n cudnn-linux-sbsa-%{version}_cuda%{cuda_version}-archive +%endif + +%install +mkdir -p %{buildroot}%{_libdir} +cp -a lib/*.so* %{buildroot}%{_libdir}/ +chmod 755 %{buildroot}%{_libdir}/*.so* +cp -a lib/*.a %{buildroot}%{_libdir}/ +chmod 644 %{buildroot}%{_libdir}/*.a + +mkdir -p %{buildroot}%{_includedir} +cp -a include/* %{buildroot}%{_includedir}/ +chmod 644 %{buildroot}%{_includedir}/* + +%{?ldconfig_scriptlets} + +%files +%license LICENSE +%{_libdir}/libcudnn*.so.* + +%files devel +%{_includedir}/cudnn* +%{_libdir}/libcudnn*.so + +%files static +%{_libdir}/libcudnn*.a + +%changelog +%autochangelog diff --git a/anda/lib/nvidia/cuda-cudnn/update.rhai b/anda/lib/nvidia/cuda-cudnn/update.rhai new file mode 100644 index 0000000000..0df4df487d --- /dev/null +++ b/anda/lib/nvidia/cuda-cudnn/update.rhai @@ -0,0 +1,5 @@ +import "andax/nvidia.rhai" as nvidia; +let series = "9.6.0"; +let url = `https://developer.download.nvidia.com/compute/cudnn/redist/redistrib_${series}.json`; +let json = get(url).json(); +rpm.version(json["cudnn"]["version"]); diff --git a/anda/lib/nvidia/cuda-cuobjdump/anda.hcl b/anda/lib/nvidia/cuda-cuobjdump/anda.hcl new file mode 100644 index 0000000000..ce0c06c838 --- /dev/null +++ b/anda/lib/nvidia/cuda-cuobjdump/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "cuda-cuobjdump.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/cuda-cuobjdump/cuda-cuobjdump.spec b/anda/lib/nvidia/cuda-cuobjdump/cuda-cuobjdump.spec new file mode 100644 index 0000000000..a74b2922f6 --- /dev/null +++ b/anda/lib/nvidia/cuda-cuobjdump/cuda-cuobjdump.spec @@ -0,0 +1,48 @@ +%global real_name cuda_cuobjdump + +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global major_package_version 12-6 + +Name: %(echo %real_name | tr '_' '-') +Epoch: 1 +Version: 12.6.77 +Release: 1%{?dist} +Summary: Utility to extract information from CUDA binary files +License: CUDA Toolkit +URL: https://developer.nvidia.com/cuda-toolkit +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cuda/redist/%{real_name}/linux-x86_64/%{real_name}-linux-x86_64-%{version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cuda/redist/%{real_name}/linux-sbsa/%{real_name}-linux-sbsa-%{version}-archive.tar.xz + +Conflicts: %{name}-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} + +%description +cuobjdump extracts information from CUDA binary files (both standalone and those +embedded in host binaries) and presents them in human readable format. The +output of cuobjdump includes CUDA assembly code for each kernel, CUDA ELF +section headers, string tables, relocators and other CUDA specific sections. It +also extracts embedded ptx text from host binaries. + +%prep +%ifarch x86_64 +%setup -q -n %{real_name}-linux-x86_64-%{version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n %{real_name}-linux-sbsa-%{version}-archive +%endif + +%install +install -m 0755 -p -D bin/cuobjdump %{buildroot}%{_bindir}/cuobjdump + +%files +%license LICENSE +%{_bindir}/cuobjdump + +%changelog +%autochangelog + diff --git a/anda/lib/nvidia/cuda-cuobjdump/update.rhai b/anda/lib/nvidia/cuda-cuobjdump/update.rhai new file mode 100644 index 0000000000..1b01e079fc --- /dev/null +++ b/anda/lib/nvidia/cuda-cuobjdump/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("cuda_cuobjdump")); diff --git a/anda/lib/nvidia/cuda-cupti/anda.hcl b/anda/lib/nvidia/cuda-cupti/anda.hcl new file mode 100644 index 0000000000..524b27fb9f --- /dev/null +++ b/anda/lib/nvidia/cuda-cupti/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "cuda-cupti.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/cuda-cupti/cuda-cupti.spec b/anda/lib/nvidia/cuda-cupti/cuda-cupti.spec new file mode 100644 index 0000000000..f6bbe558ff --- /dev/null +++ b/anda/lib/nvidia/cuda-cupti/cuda-cupti.spec @@ -0,0 +1,83 @@ +%global real_name cuda_cupti + +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global major_package_version 12-6 + +Name: %(echo %real_name | tr '_' '-') +Epoch: 1 +Version: 12.6.80 +Release: 1%{?dist} +Summary: NVIDIA CUDA Profiling Tools Interface (CUPTI) library +License: CUDA Toolkit +URL: https://developer.nvidia.com/cuda-toolkit +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cuda/redist/%{real_name}/linux-x86_64/%{real_name}-linux-x86_64-%{version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cuda/redist/%{real_name}/linux-sbsa/%{real_name}-linux-sbsa-%{version}-archive.tar.xz + +Conflicts: %{name}-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} + +%description +The NVIDIA CUDA Profiling Tools Interface (CUPTI) provides performance analysis +tools with detailed information about how applications are using the GPUs in a +system. + +%package devel +Summary: Development files for NVIDIA CUDA Profiling Tools Interface (CUPTI) library +Requires: %{name}%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Conflicts: %{name}-devel-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} + +%description devel +This package provides development files for the NVIDIA CUDA Profiling Tools +Interface (CUPTI) library. + +%package static +Summary: Static libraries for NVIDIA CUDA Profiling Tools Interface (CUPTI) +Requires: %{name}-devel%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description static +This package contains static libraries for NVIDIA CUDA Profiling Tools Interface +(CUPTI). + +%prep +%ifarch x86_64 +%setup -q -n %{real_name}-linux-x86_64-%{version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n %{real_name}-linux-sbsa-%{version}-archive +%endif + +%{?ldconfig_scriptlets} + +%install +mkdir -p %{buildroot}%{_includedir} +mkdir -p %{buildroot}%{_libdir} +cp -fr include/* %{buildroot}%{_includedir}/ +cp -fr lib/* %{buildroot}%{_libdir}/ + +%files +%license LICENSE +%{_libdir}/libcheckpoint.so +%{_libdir}/libcupti.so.* +%{_libdir}/libpcsamplingutil.so + +%files devel +%doc doc/* samples/* +%{_includedir}/* +%{_libdir}/libcupti.so +%{_libdir}/libnvperf_host.so +%{_libdir}/libnvperf_target.so + +%files static +%{_libdir}/libcupti_static.a +%ifarch x86_64 +%{_libdir}/libnvperf_host_static.a +%endif + +%changelog +%autochangelog + diff --git a/anda/lib/nvidia/cuda-cupti/update.rhai b/anda/lib/nvidia/cuda-cupti/update.rhai new file mode 100644 index 0000000000..fbeed07228 --- /dev/null +++ b/anda/lib/nvidia/cuda-cupti/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("cuda_cupti")); diff --git a/anda/lib/nvidia/cuda-cuxxfilt/anda.hcl b/anda/lib/nvidia/cuda-cuxxfilt/anda.hcl new file mode 100644 index 0000000000..a152d49d81 --- /dev/null +++ b/anda/lib/nvidia/cuda-cuxxfilt/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "cuda-cuxxfilt.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/cuda-cuxxfilt/cuda-cuxxfilt.spec b/anda/lib/nvidia/cuda-cuxxfilt/cuda-cuxxfilt.spec new file mode 100644 index 0000000000..253a6000bc --- /dev/null +++ b/anda/lib/nvidia/cuda-cuxxfilt/cuda-cuxxfilt.spec @@ -0,0 +1,53 @@ +%global real_name cuda_cuxxfilt + +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global major_package_version 12-6 + +Name: %(echo %real_name | tr '_' '-') +Epoch: 1 +Version: 12.6.77 +Release: 1%{?dist} +Summary: CUDA cuxxfilt (demangler) +License: CUDA Toolkit +URL: https://developer.nvidia.com/cuda-toolkit +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cuda/redist/%{real_name}/linux-x86_64/%{real_name}-linux-x86_64-%{version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cuda/redist/%{real_name}/linux-sbsa/%{real_name}-linux-sbsa-%{version}-archive.tar.xz + +%description +CUDA cuxxfilt (demangler). + +%package devel +Summary: CUDA cuxxfilt (demangler) development files +Conflicts: %{name}-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} + +%description devel +CUDA cuxxfilt (demangler). + +%prep +%ifarch x86_64 +%setup -q -n %{real_name}-linux-x86_64-%{version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n %{real_name}-linux-sbsa-%{version}-archive +%endif + +%install +install -m 0755 -p -D bin/cu++filt %{buildroot}%{_bindir}/cu++filt +install -m 0644 -p -D include/nv_decode.h %{buildroot}%{_includedir}/nv_decode.h +install -m 0644 -p -D lib/libcufilt.a %{buildroot}%{_libdir}/libcufilt.a + +%files devel +%license LICENSE +%{_bindir}/cu++filt +%{_includedir}/nv_decode.h +%{_libdir}/libcufilt.a + +%changelog +%autochangelog + diff --git a/anda/lib/nvidia/cuda-cuxxfilt/update.rhai b/anda/lib/nvidia/cuda-cuxxfilt/update.rhai new file mode 100644 index 0000000000..cc20c1000d --- /dev/null +++ b/anda/lib/nvidia/cuda-cuxxfilt/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("cuda_cuxxfilt")); diff --git a/anda/lib/nvidia/cuda-gcc/anda.hcl b/anda/lib/nvidia/cuda-gcc/anda.hcl new file mode 100644 index 0000000000..b7ae3ad50a --- /dev/null +++ b/anda/lib/nvidia/cuda-gcc/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "cuda-gcc.spec" + } + labels { + updbranch = 1 + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/cuda-gcc/cuda-gcc.spec b/anda/lib/nvidia/cuda-gcc/cuda-gcc.spec new file mode 100644 index 0000000000..57ddf951f6 --- /dev/null +++ b/anda/lib/nvidia/cuda-gcc/cuda-gcc.spec @@ -0,0 +1,47 @@ +%global gcc_major 13 + +Name: cuda-gcc +Version: 13.3.1 +Release: 2%{?dist} +Summary: GNU Compiler Collection CUDA compatibility package +License: BSD +URL: http://gcc.gnu.org + +BuildArch: noarch + +Requires: gcc%{gcc_major}-c++ + +Provides: cuda-gcc = %{version}-%{release} +Obsoletes: cuda-gcc < %{version}-%{release} +Provides: cuda-gcc-c++ = %{version}-%{release} +Obsoletes: cuda-gcc-c++ < %{version}-%{release} +Provides: cuda-gcc-gfortran = %{version}-%{release} +Obsoletes: cuda-gcc-gfortran < %{version}-%{release} + +%description +The %{name} package contains scripts that are sourced in the environment to use +the GCC compatibility packages when invoking NVCC. + +%install +mkdir -p %{buildroot}%{_sysconfdir}/profile.d/ + +cat > %{buildroot}%{_sysconfdir}/profile.d/%{name}.sh < %{buildroot}%{_sysconfdir}/profile.d/%{name}.csh <= 1.95 +Conflicts: %{name}-command-line-tools-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} + +%description cli-tools +Contains the command line tools to debug and profile CUDA applications. + +%package libs +Summary: Compute Unified Device Architecture native run-time library +Requires(post): ldconfig +Requires: %{name}-cudart%{?_isa} +Requires: %{name}-nvrtc%{?_isa} +Requires: libcublas%{?_isa} +Requires: libcufft%{?_isa} +Requires: libcufile%{?_isa} +Requires: libcurand%{?_isa} +Requires: libcusolver%{?_isa} +Requires: libcusparse%{?_isa} +Requires: libnpp%{?_isa} +Requires: libnvjpeg%{?_isa} +Conflicts: %{name}-driver-devel-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} +Conflicts: %{name}-libraries-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} +# Explicitly declare the dependency or libcuda.so.1()(64bit) will pull in xorg-x11-drv-cuda-libs +Requires: nvidia-driver-cuda-libs%{_isa} + +%description libs +Contains the CUDA run-time library required to run CUDA application natively. + +%package extra-libs +Summary: All runtime NVIDIA CUDA libraries +Requires(post): ldconfig +Requires: %{name}-cupti%{?_isa} +Conflicts: %{name}-runtime-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} + +%description extra-libs +Metapackage that installs all runtime NVIDIA CUDA libraries. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-libs%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-cccl-devel%{?_isa} +Requires: %{name}-cudart-devel%{?_isa} +Requires: %{name}-cupti-devel%{?_isa} +Requires: %{name}-nvcc%{?_isa} +Requires: %{name}-nvprof-devel%{?_isa} +Requires: %{name}-nvprune%{?_isa} +Requires: %{name}-nvml-devel%{?_isa} +Requires: %{name}-nvrtc-devel%{?_isa} +Requires: %{name}-nvtx-devel%{?_isa} +Requires: %{name}-cuobjdump%{?_isa} +Requires: %{name}-cuxxfilt-devel%{?_isa} +Requires: libcublas-devel%{?_isa} +Requires: libcufft-devel%{?_isa} +Requires: libcufile-devel%{?_isa} +Requires: libcurand-devel%{?_isa} +Requires: libcusolver-devel%{?_isa} +Requires: libcusparse-devel%{?_isa} +Requires: libnpp-devel%{?_isa} +Requires: libnvjpeg-devel%{?_isa} +Conflicts: %{name}-headers-%{major_package_version} < %{?epoch:%{epoch}:}%{version} +Conflicts: %{name}-libraries-dev-%{major_package_version} < %{?epoch:%{epoch}:}%{version} +Conflicts: %{name}-misc-headers-%{major_package_version} < %{?epoch:%{epoch}:}%{version} +Conflicts: %{name}-toolkit-%{major_package_version} < %{?epoch:%{epoch}:}%{version} +Provides: %{name}-toolkit-%{major_package_version} = %{?epoch:%{epoch}:}%{version} + +%description devel +This package provides the development files of the %{name} package. + +%prep +%setup -q -n cuda_documentation-linux-x86_64-%{version}-archive + +%build +# Nothing to build + +%install +mkdir -p %{buildroot}%{_libdir}/pkgconfig/ +mkdir -p %{buildroot}%{_sysconfdir}/profile.d/ + +# Environment settings +install -pm 644 %{SOURCE3} %{SOURCE4} %{buildroot}%{_sysconfdir}/profile.d + +# pkg-config files +install -pm 644 %{SOURCE21} %{buildroot}/%{_libdir}/pkgconfig + +# Set proper variables +sed -i \ + -e 's|CUDA_VERSION|%{version}|g' \ + -e 's|LIBDIR|%{_libdir}|g' \ + -e 's|INCLUDE_DIR|%{_includedir}/cuda|g' \ + %{buildroot}/%{_libdir}/pkgconfig/*.pc + +%files +%license LICENSE +%doc CUDA_Toolkit_Release_Notes.txt DOCS EULA.txt README tools +%config(noreplace) %{_sysconfdir}/profile.d/%{name}.*sh + +%files cli-tools +# Empty metapackage + +%files libs +# Empty metapackage + +%files extra-libs +# Empty metapackage + +%files devel +%{_libdir}/pkgconfig/cuda.pc + +%changelog +%autochangelog diff --git a/anda/lib/nvidia/cuda/update.rhai b/anda/lib/nvidia/cuda/update.rhai new file mode 100644 index 0000000000..ca958ccd5f --- /dev/null +++ b/anda/lib/nvidia/cuda/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("cuda_documentation")); diff --git a/anda/lib/nvidia/libcublas/anda.hcl b/anda/lib/nvidia/libcublas/anda.hcl new file mode 100644 index 0000000000..ea293241ed --- /dev/null +++ b/anda/lib/nvidia/libcublas/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "libcublas.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/libcublas/cublas.pc b/anda/lib/nvidia/libcublas/cublas.pc new file mode 100644 index 0000000000..15715b8ea6 --- /dev/null +++ b/anda/lib/nvidia/libcublas/cublas.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: cublas +Description: CUDA Basic Linear Algebra Subprograms +Version: CUDA_VERSION +Libs: -L${libdir} -lcublas +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libcublas/cublasLt.pc b/anda/lib/nvidia/libcublas/cublasLt.pc new file mode 100644 index 0000000000..f9565df9cf --- /dev/null +++ b/anda/lib/nvidia/libcublas/cublasLt.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: cublas +Description: CUDA Basic Linear Algebra Subprograms Lite +Version: CUDA_VERSION +Libs: -L${libdir} -lcublasLt +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libcublas/libcublas.spec b/anda/lib/nvidia/libcublas/libcublas.spec new file mode 100644 index 0000000000..c1f3763816 --- /dev/null +++ b/anda/lib/nvidia/libcublas/libcublas.spec @@ -0,0 +1,100 @@ +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global major_package_version 12-6 + +Name: libcublas +Epoch: 1 +Version: 12.6.4.1 +Release: 1%{?dist} +Summary: NVIDIA CUDA Basic Linear Algebra Subroutines (cuBLAS) libraries +License: CUDA Toolkit +URL: https://developer.nvidia.com/cuda-toolkit +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-x86_64/%{name}-linux-x86_64-%{version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-sbsa/%{name}-linux-sbsa-%{version}-archive.tar.xz +Source3: cublas.pc +Source4: cublasLt.pc + +Requires(post): ldconfig +Conflicts: %{name}-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} + +%description +The NVIDIA CUDA Basic Linear Algebra Subroutines (cuBLAS) library is a +GPU-accelerated version of the complete standard BLAS library that delivers 6x +to 17x faster performance than the latest MKL BLAS. + +%package devel +Summary: Development files for NVIDIA CUDA Basic Linear Algebra Subroutines (cuBLAS) +Requires: %{name}%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Conflicts: %{name}-devel-%{major_package_version} < %{?epoch:%{epoch}:}%{version} + +%description devel +This package provides development files for the NVIDIA CUDA Basic Linear +Algebra Subroutines (cuBLAS) libraries. + +%package static +Summary: Static libraries for NVIDIA CUDA Basic Linear Algebra Subroutines (cuBLAS) +Requires: %{name}-devel%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description static +This package contains static libraries for the NVIDIA CUDA Basic Linear Algebra +Subroutines (cuBLAS). + +%prep +%ifarch x86_64 +%setup -q -n %{name}-linux-x86_64-%{version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n %{name}-linux-sbsa-%{version}-archive +%endif + +%install +mkdir -p %{buildroot}%{_includedir} +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_libdir}/pkgconfig/ + +cp -fr include/* %{buildroot}%{_includedir}/ +cp -fr lib/lib* %{buildroot}%{_libdir}/ +cp -fr %{SOURCE3} %{SOURCE4} %{buildroot}/%{_libdir}/pkgconfig/ + +# Set proper variables +sed -i \ + -e 's|CUDA_VERSION|%{version}|g' \ + -e 's|LIBDIR|%{_libdir}|g' \ + -e 's|INCLUDE_DIR|%{_includedir}|g' \ + %{buildroot}/%{_libdir}/pkgconfig/*.pc + +%{?ldconfig_scriptlets} + +%files +%license LICENSE +%{_libdir}/libcublas.so.* +%{_libdir}/libcublasLt.so.* +%{_libdir}/libnvblas.so.* + +%files devel +%ifarch x86_64 +%doc src +%endif +%{_includedir}/nvblas.h +%{_includedir}/cublasLt.h +%{_includedir}/cublas_v2.h +%{_includedir}/cublas.h +%{_includedir}/cublas_api.h +%{_includedir}/cublasXt.h +%{_libdir}/libcublas.so +%{_libdir}/libcublasLt.so +%{_libdir}/libnvblas.so +%{_libdir}/pkgconfig/cublas.pc +%{_libdir}/pkgconfig/cublasLt.pc + +%files static +%{_libdir}/libcublas_static.a +%{_libdir}/libcublasLt_static.a + +%changelog +%autochangelog diff --git a/anda/lib/nvidia/libcublas/update.rhai b/anda/lib/nvidia/libcublas/update.rhai new file mode 100644 index 0000000000..75ba820983 --- /dev/null +++ b/anda/lib/nvidia/libcublas/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("libcublas")); diff --git a/anda/lib/nvidia/libcudla/anda.hcl b/anda/lib/nvidia/libcudla/anda.hcl new file mode 100644 index 0000000000..d88f879f40 --- /dev/null +++ b/anda/lib/nvidia/libcudla/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["aarch64"] + rpm { + spec = "libcudla.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/libcudla/cudla.pc b/anda/lib/nvidia/libcudla/cudla.pc new file mode 100644 index 0000000000..2cc5ee1e2f --- /dev/null +++ b/anda/lib/nvidia/libcudla/cudla.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: cublas +Description: CUDA Deep Learning Accelerator (DLA) engines driver +Version: CUDA_VERSION +Libs: -L${libdir} -lcudla +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libcudla/libcudla.spec b/anda/lib/nvidia/libcudla/libcudla.spec new file mode 100644 index 0000000000..1334b8dcaf --- /dev/null +++ b/anda/lib/nvidia/libcudla/libcudla.spec @@ -0,0 +1,60 @@ +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global major_package_version 12-6 + +Name: libcudla +Epoch: 1 +Version: 12.6.77 +Release: 1%{?dist} +Summary: NVIDIA CUDA Deep Learning Accelerator (DLA) engines (Jetson Xavier and Orin) +License: CUDA Toolkit +URL: https://developer.nvidia.com/cuda-toolkit +ExclusiveArch: aarch64 + +Source0: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-aarch64/%{name}-linux-aarch64-%{version}-archive.tar.xz +Source1: cudla.pc + +%description +Low-level driver for the Deep Learning Accelerator (DLA) engine for Jetson Xavier and Orin boards. + +%package devel +Summary: Development files for CUDA Deep Learning Accelerator (DLA) engines +Requires: %{name}%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Conflicts: %{name}-devel-%{major_package_version} < %{?epoch:%{epoch}:}%{version} + +%description devel +This package provides development files for the CUDA Deep Learning Accelerator (DLA) engines. + +%prep +%autosetup -n %{name}-linux-aarch64-%{version}-archive + +%install +mkdir -p %{buildroot}%{_includedir} +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_libdir}/pkgconfig/ + +cp -fr include/* %{buildroot}%{_includedir}/ +cp -fr lib/lib* %{buildroot}%{_libdir}/ +cp -fr %{SOURCE1} %{buildroot}/%{_libdir}/pkgconfig/ + +# Set proper variables +sed -i \ + -e 's|CUDA_VERSION|%{version}|g' \ + -e 's|LIBDIR|%{_libdir}|g' \ + -e 's|INCLUDE_DIR|%{_includedir}|g' \ + %{buildroot}/%{_libdir}/pkgconfig/*.pc + +%files +%license LICENSE +%{_libdir}/libcudla.so.* + +%files devel +%{_includedir}/cudla.h +%{_includedir}/cudlaExternalEtbl.hpp +%{_libdir}/libcudla.so +%{_libdir}/pkgconfig/cudla.pc + +%changelog +%autochangelog diff --git a/anda/lib/nvidia/libcudla/update.rhai b/anda/lib/nvidia/libcudla/update.rhai new file mode 100644 index 0000000000..3531b98301 --- /dev/null +++ b/anda/lib/nvidia/libcudla/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("libcudla")); diff --git a/anda/lib/nvidia/libcufft/anda.hcl b/anda/lib/nvidia/libcufft/anda.hcl new file mode 100644 index 0000000000..a46203edb7 --- /dev/null +++ b/anda/lib/nvidia/libcufft/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "libcufft.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/libcufft/cufft.pc b/anda/lib/nvidia/libcufft/cufft.pc new file mode 100644 index 0000000000..94a33651ad --- /dev/null +++ b/anda/lib/nvidia/libcufft/cufft.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: cufft +Description: CUDA Fast Fourier Transform +Version: CUDA_VERSION +Libs: -L${libdir} -lcufft +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libcufft/cufftw.pc b/anda/lib/nvidia/libcufft/cufftw.pc new file mode 100644 index 0000000000..a009f4ba0e --- /dev/null +++ b/anda/lib/nvidia/libcufft/cufftw.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: cufftw +Description: CUDA Fast Fourier Transform Wide +Version: CUDA_VERSION +Libs: -L${libdir} -lcufftw +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libcufft/libcufft.spec b/anda/lib/nvidia/libcufft/libcufft.spec new file mode 100644 index 0000000000..39d99163f9 --- /dev/null +++ b/anda/lib/nvidia/libcufft/libcufft.spec @@ -0,0 +1,105 @@ +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global major_package_version 12-6 + +Name: libcufft +Epoch: 2 +Version: 11.3.0.4 +Release: 1%{?dist} +Summary: NVIDIA CUDA Fast Fourier Transform library (cuFFT) libraries +License: CUDA Toolkit +URL: https://developer.nvidia.com/cuda-toolkit +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-x86_64/%{name}-linux-x86_64-%{version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-sbsa/%{name}-linux-sbsa-%{version}-archive.tar.xz +Source3: cufft.pc +Source4: cufftw.pc + +Requires(post): ldconfig +Conflicts: %{name}-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} +# Drop in 11.7: +Provides: cuda-cufft = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: cuda-cufft < %{?epoch:%{epoch}:}%{version}-%{release} + +%description +The NVIDIA CUDA Fast Fourier Transform libraries (cuFFT) provide a simple +interface for computing FFTs up to 10x faster. By using hundreds of processor +cores inside NVIDIA GPUs, cuFFT delivers the floating‐point performance of a +GPU without having to develop your own custom GPU FFT implementation. + +%package devel +Summary: Development files for CUDA Fast Fourier Transform library (cuFFT) +Requires: %{name}%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Conflicts: %{name}-devel-%{major_package_version} < %{?epoch:%{epoch}:}%{version} +# Drop in 11.7: +Provides: cuda-cufft-devel = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: cuda-cufft-devel < %{?epoch:%{epoch}:}%{version}-%{release} + +%description devel +This package provides development files for the NVIDIA CUDA Fast Fourier +Transform library (cuFFT) libraries. + +%package static +Summary: Static libraries for CUDA Fast Fourier Transform library (cuFFT) +Requires: %{name}-devel%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +# Drop in 11.7: +Provides: cuda-cufft-static = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: cuda-cufft-static < %{?epoch:%{epoch}:}%{version}-%{release} + +%description static +This package contains static libraries for CUDA Fast Fourier Transform library +(cuFFT). + +%prep +%ifarch x86_64 +%setup -q -n %{name}-linux-x86_64-%{version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n %{name}-linux-sbsa-%{version}-archive +%endif + +%install +mkdir -p %{buildroot}%{_includedir} +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_libdir}/pkgconfig/ + +cp -fr include/* %{buildroot}%{_includedir}/ +cp -fr lib/lib* %{buildroot}%{_libdir}/ +cp -fr %{SOURCE3} %{SOURCE4} %{buildroot}/%{_libdir}/pkgconfig/ + +# Set proper variables +sed -i \ + -e 's|CUDA_VERSION|%{version}|g' \ + -e 's|LIBDIR|%{_libdir}|g' \ + -e 's|INCLUDE_DIR|%{_includedir}|g' \ + %{buildroot}/%{_libdir}/pkgconfig/*.pc + +%{?ldconfig_scriptlets} + +%files +%license LICENSE +%{_libdir}/libcufft.so.* +%{_libdir}/libcufftw.so.* + +%files devel +%{_includedir}/cudalibxt.h +%{_includedir}/cufft.h +%{_includedir}/cufftw.h +%{_includedir}/cufftXt.h +%{_libdir}/libcufft.so +%{_libdir}/libcufftw.so +%{_libdir}/pkgconfig/cufft.pc +%{_libdir}/pkgconfig/cufftw.pc + +%files static +%{_libdir}/libcufft_static.a +%{_libdir}/libcufft_static_nocallback.a +%{_libdir}/libcufftw_static.a + +%changelog +%autochangelog + diff --git a/anda/lib/nvidia/libcufft/update.rhai b/anda/lib/nvidia/libcufft/update.rhai new file mode 100644 index 0000000000..4e40086137 --- /dev/null +++ b/anda/lib/nvidia/libcufft/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("libcufft")); diff --git a/anda/lib/nvidia/libcurand/anda.hcl b/anda/lib/nvidia/libcurand/anda.hcl new file mode 100644 index 0000000000..6ba63a679e --- /dev/null +++ b/anda/lib/nvidia/libcurand/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "libcurand.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/libcurand/curand.pc b/anda/lib/nvidia/libcurand/curand.pc new file mode 100644 index 0000000000..cb3e52489f --- /dev/null +++ b/anda/lib/nvidia/libcurand/curand.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: curand +Description: CUDA Random Number Generation Library +Version: CUDA_VERSION +Libs: -L${libdir} -lcurand +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libcurand/libcurand.spec b/anda/lib/nvidia/libcurand/libcurand.spec new file mode 100644 index 0000000000..49a2b1f4b9 --- /dev/null +++ b/anda/lib/nvidia/libcurand/libcurand.spec @@ -0,0 +1,103 @@ +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global major_package_version 12-6 + +Name: libcurand +Epoch: 2 +Version: 10.3.7.77 +Release: 1%{?dist} +Summary: NVIDIA CUDA Random Number Generation library (cuRAND) +License: CUDA Toolkit +URL: https://developer.nvidia.com/cuda-toolkit +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-x86_64/%{name}-linux-x86_64-%{version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-sbsa/%{name}-linux-sbsa-%{version}-archive.tar.xz +Source3: curand.pc + +Requires(post): ldconfig +Conflicts: %{name}-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} + +%description +The NVIDIA CUDA Random Number Generation library (cuRAND) delivers high +performance GPU-accelerated random number generation (RNG). The cuRAND library +delivers high quality random numbers 8x faster using hundreds of processor +cores available in NVIDIA GPUs. + +%package devel +Summary: Development files for NVIDIA CUDA Random Number Generation library (cuRAND) +Requires: %{name}%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Conflicts: %{name}-devel-%{major_package_version} < %{?epoch:%{epoch}:}%{version} + +%description devel +This package provides development files for the NVIDIA CUDA Random Number +Generation library (cuRAND). + +%package static +Summary: Static libraries for NVIDIA CUDA Random Number Generation (cuRAND) +Requires: %{name}-devel%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description static +This package contains static libraries for NVIDIA CUDA Random Number Generation +(cuRAND). + +%prep +%ifarch x86_64 +%setup -q -n %{name}-linux-x86_64-%{version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n %{name}-linux-sbsa-%{version}-archive +%endif + +%install +mkdir -p %{buildroot}%{_includedir} +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_libdir}/pkgconfig/ + +cp -fr include/* %{buildroot}%{_includedir}/ +cp -fr lib/lib* %{buildroot}%{_libdir}/ +cp -fr %{SOURCE3} %{buildroot}/%{_libdir}/pkgconfig/ + +# Set proper variables +sed -i \ + -e 's|CUDA_VERSION|%{version}|g' \ + -e 's|LIBDIR|%{_libdir}|g' \ + -e 's|INCLUDE_DIR|%{_includedir}|g' \ + %{buildroot}/%{_libdir}/pkgconfig/*.pc + +%{?ldconfig_scriptlets} + +%files +%license LICENSE +%{_libdir}/libcurand.so.* + +%files devel +%{_includedir}/curand_discrete2.h +%{_includedir}/curand_discrete.h +%{_includedir}/curand_globals.h +%{_includedir}/curand.h +%{_includedir}/curand_kernel.h +%{_includedir}/curand_lognormal.h +%{_includedir}/curand_mrg32k3a.h +%{_includedir}/curand_mtgp32dc_p_11213.h +%{_includedir}/curand_mtgp32.h +%{_includedir}/curand_mtgp32_host.h +%{_includedir}/curand_mtgp32_kernel.h +%{_includedir}/curand_normal.h +%{_includedir}/curand_normal_static.h +%{_includedir}/curand_philox4x32_x.h +%{_includedir}/curand_poisson.h +%{_includedir}/curand_precalc.h +%{_includedir}/curand_uniform.h +%{_libdir}/libcurand.so +%{_libdir}/pkgconfig/curand.pc + +%files static +%{_libdir}/libcurand_static.a + +%changelog +%autochangelog + diff --git a/anda/lib/nvidia/libcurand/update.rhai b/anda/lib/nvidia/libcurand/update.rhai new file mode 100644 index 0000000000..02b3f0a95f --- /dev/null +++ b/anda/lib/nvidia/libcurand/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("libcurand")); diff --git a/anda/lib/nvidia/libcusparse/anda.hcl b/anda/lib/nvidia/libcusparse/anda.hcl new file mode 100644 index 0000000000..fcf8d8b6b3 --- /dev/null +++ b/anda/lib/nvidia/libcusparse/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "libcusparse.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/libcusparse/cusparse.pc b/anda/lib/nvidia/libcusparse/cusparse.pc new file mode 100644 index 0000000000..cd77308e3c --- /dev/null +++ b/anda/lib/nvidia/libcusparse/cusparse.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: cusparse +Description: CUDA Sparse Matrix Library +Version: CUDA_VERSION +Libs: -L${libdir} -lcusparse +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libcusparse/libcusparse.spec b/anda/lib/nvidia/libcusparse/libcusparse.spec new file mode 100644 index 0000000000..fdbe4c7ab3 --- /dev/null +++ b/anda/lib/nvidia/libcusparse/libcusparse.spec @@ -0,0 +1,91 @@ +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global major_package_version 12-6 + +Name: libcusparse +Epoch: 1 +Version: 12.5.4.2 +Release: 1%{?dist} +Summary: NVIDIA CUDA Sparse Matrix library (cuSPARSE) library +License: CUDA Toolkit +URL: https://developer.nvidia.com/cuda-toolkit +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-x86_64/%{name}-linux-x86_64-%{version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-sbsa/%{name}-linux-sbsa-%{version}-archive.tar.xz +Source3: cusparse.pc + +Requires(post): ldconfig +Conflicts: %{name}-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} + +%description +The NVIDIA CUDA Sparse Matrix library (cuSPARSE) provides a collection of basic +linear algebra subroutines used for sparse matrices that delivers up to 8x +faster performance than the latest MKL. The cuSPARSE library is designed to be +called from C or C++, and the latest release includes a sparse triangular +solver. + +%package devel +Summary: Development files for NVIDIA CUDA Sparse Matrix (cuSPARSE) library +Requires: %{name}%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Conflicts: %{name}-devel-%{major_package_version} < %{?epoch:%{epoch}:}%{version} + +%description devel +This package provides development files for the NVIDIA CUDA Sparse Matrix +library (cuSPARSE) library. + +%package static +Summary: Static libraries for NVIDIA CUDA Sparse Matrix (cuSPARSE) +Requires: %{name}-devel%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description static +This package contains static libraries for NVIDIA CUDA Sparse Matrix (cuSPARSE). + +%prep +%ifarch x86_64 +%setup -q -n %{name}-linux-x86_64-%{version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n %{name}-linux-sbsa-%{version}-archive +%endif + +%install +mkdir -p %{buildroot}%{_includedir} +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_libdir}/pkgconfig/ + +cp -fr include/* %{buildroot}%{_includedir}/ +cp -fr lib/lib* %{buildroot}%{_libdir}/ +cp -fr %{SOURCE3} %{buildroot}/%{_libdir}/pkgconfig/ + +# Set proper variables +sed -i \ + -e 's|CUDA_VERSION|%{version}|g' \ + -e 's|LIBDIR|%{_libdir}|g' \ + -e 's|INCLUDE_DIR|%{_includedir}|g' \ + %{buildroot}/%{_libdir}/pkgconfig/*.pc + +%{?ldconfig_scriptlets} + +%files +%license LICENSE +%{_libdir}/libcusparse.so.* + +%files devel +%ifarch x86_64 +%doc src +%endif +%{_includedir}/cusparse.h +%{_includedir}/cusparse_v2.h +%{_libdir}/libcusparse.so +%{_libdir}/pkgconfig/cusparse.pc + +%files static +%{_libdir}/libcusparse_static.a + +%changelog +%autochangelog + diff --git a/anda/lib/nvidia/libcusparse/update.rhai b/anda/lib/nvidia/libcusparse/update.rhai new file mode 100644 index 0000000000..ca0407fbbe --- /dev/null +++ b/anda/lib/nvidia/libcusparse/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("libcusparse")); diff --git a/anda/lib/nvidia/libcusparselt/anda.hcl b/anda/lib/nvidia/libcusparselt/anda.hcl new file mode 100644 index 0000000000..6f738351fb --- /dev/null +++ b/anda/lib/nvidia/libcusparselt/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "libcusparselt.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/libcusparselt/libcusparselt.spec b/anda/lib/nvidia/libcusparselt/libcusparselt.spec new file mode 100644 index 0000000000..20cd3afb58 --- /dev/null +++ b/anda/lib/nvidia/libcusparselt/libcusparselt.spec @@ -0,0 +1,79 @@ +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none + +Name: libcusparselt +Version: 0.6.3.2 +Release: 1%?dist +Summary: CUDA Library for Sparse Matrix-Matrix Multiplication +License: NVIDIA License +URL: https://docs.nvidia.com/cuda/cusparselt/index.html +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse_lt/linux-x86_64/libcusparse_lt-linux-x86_64-%{version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse_lt/linux-sbsa/libcusparse_lt-linux-sbsa-%{version}-archive.tar.xz + +Conflicts: %{name}0 < %{?epoch:%{epoch}:}%{version}-%{release} + +%description +NVIDIA cuSPARSELt is a high-performance CUDA library dedicated to general +matrix-matrix operations in which at least one operand is a sparse matrix. + +The cuSPARSELt APIs allow flexibility in the algorithm/operation selection, +epilogue, and matrix characteristics, including memory layout, alignment, and +data types. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: cuda-devel%{?_isa} +Conflicts: %{name}-devel < %{?epoch:%{epoch}:}%{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for developing +applications that use cuSPARSELt. + +%package static +Summary: Static libraries for %{name} +Requires: %{name}-devel%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description static +Static libraries for cuSPARSELt. + +%prep +%ifarch x86_64 +%setup -q -n libcusparse_lt-linux-x86_64-%{version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n libcusparse_lt-linux-sbsa-%{version}-archive +%endif + +%build +# Nothing to build + +%install +mkdir -p %{buildroot}%{_libdir}/ +cp -a lib/libcusparseLt.so* %{buildroot}%{_libdir}/ +chmod 755 %{buildroot}%{_libdir}/*.so* +install -p -m0644 lib/libcusparseLt_static.a %{buildroot}%{_libdir}/ + +mkdir -p %{buildroot}%{_includedir}/ +install -p -m0644 include/cusparseLt.h %{buildroot}%{_includedir}/ + +%{?ldconfig_scriptlets} + +%files +%license LICENSE +%{_libdir}/libcusparseLt.so.* + +%files devel +%{_includedir}/cusparseLt.h +%{_libdir}/libcusparseLt.so + +%files static +%{_libdir}/libcusparseLt_static.a + +%changelog +%autochangelog diff --git a/anda/lib/nvidia/libcusparselt/update.rhai b/anda/lib/nvidia/libcusparselt/update.rhai new file mode 100644 index 0000000000..9dc271021e --- /dev/null +++ b/anda/lib/nvidia/libcusparselt/update.rhai @@ -0,0 +1,5 @@ +let series = "0.6.3"; +let url = `https://developer.download.nvidia.com/compute/cusparselt/redist/redistrib_${series}.json`; +let json = get(url).json(); + +rpm.version(json["libcusparse_lt"]["version"]); diff --git a/anda/lib/nvidia/libnpp/anda.hcl b/anda/lib/nvidia/libnpp/anda.hcl new file mode 100644 index 0000000000..bdb71604c8 --- /dev/null +++ b/anda/lib/nvidia/libnpp/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "libnpp.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/libnpp/libnpp.spec b/anda/lib/nvidia/libnpp/libnpp.spec new file mode 100644 index 0000000000..f5ba72b44b --- /dev/null +++ b/anda/lib/nvidia/libnpp/libnpp.spec @@ -0,0 +1,152 @@ +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global major_package_version 12-6 + +Name: libnpp +Epoch: 1 +Version: 12.3.1.54 +Release: 1%{?dist} +Summary: NVIDIA Performance Primitives libraries +License: CUDA Toolkit +URL: https://developer.nvidia.com/cuda-toolkit +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-x86_64/%{name}-linux-x86_64-%{version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-sbsa/%{name}-linux-sbsa-%{version}-archive.tar.xz + +Source10: nppc.pc +Source11: nppial.pc +Source12: nppicc.pc +Source13: nppicom.pc +Source14: nppidei.pc +Source15: nppif.pc +Source16: nppig.pc +Source17: nppim.pc +Source18: nppi.pc +Source19: nppist.pc +Source20: nppisu.pc +Source21: nppitc.pc +Source22: npps.pc + +Requires(post): ldconfig +Conflicts: %{name}-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} + +%description +The NVIDIA Performance Primitives library (NPP) is a collection of +GPU-accelerated image, video, and signal processing functions that deliver 5x +to 10x faster performance than comparable CPU-only implementations. Using NPP, +developers can take advantage of over 1900 image processing and approx 600 +signal processing primitives to achieve significant improvements in application +performance in a matter of hours. + +%package devel +Summary: Development files for NVIDIA Performance Primitives libraries. +Requires: %{name}%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Conflicts: %{name}-devel-%{major_package_version} < %{?epoch:%{epoch}:}%{version} + +%description devel +This package provides development files for the NVIDIA Performance Primitives +libraries. + +%package static +Summary: Static libraries for NVIDIA Performance Primitives +Requires: %{name}-devel%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description static +This package contains static libraries for NVIDIA Performance Primitives +libraries. + +%prep +%ifarch x86_64 +%setup -q -n %{name}-linux-x86_64-%{version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n %{name}-linux-sbsa-%{version}-archive +%endif + +%install +mkdir -p %{buildroot}%{_includedir} +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_libdir}/pkgconfig/ + +cp -fr include/* %{buildroot}%{_includedir}/ +cp -fr lib/lib* %{buildroot}%{_libdir}/ +cp -fr %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE15} \ + %{SOURCE16} %{SOURCE17} %{SOURCE18} %{SOURCE19} %{SOURCE20} %{SOURCE21} \ + %{SOURCE22} %{buildroot}/%{_libdir}/pkgconfig/ + +# Set proper variables +sed -i \ + -e 's|CUDA_VERSION|%{version}|g' \ + -e 's|LIBDIR|%{_libdir}|g' \ + -e 's|INCLUDE_DIR|%{_includedir}|g' \ + %{buildroot}/%{_libdir}/pkgconfig/*.pc + +%{?ldconfig_scriptlets} + +%files +%license LICENSE +%{_libdir}/libnppc.so.* +%{_libdir}/libnppial.so.* +%{_libdir}/libnppicc.so.* +%{_libdir}/libnppidei.so.* +%{_libdir}/libnppif.so.* +%{_libdir}/libnppig.so.* +%{_libdir}/libnppim.so.* +%{_libdir}/libnppist.so.* +%{_libdir}/libnppisu.so.* +%{_libdir}/libnppitc.so.* +%{_libdir}/libnpps.so.* + +%files devel +%{_includedir}/nppcore.h +%{_includedir}/nppdefs.h +%{_includedir}/npp.h +%{_includedir}/nppi_arithmetic_and_logical_operations.h +%{_includedir}/nppi_color_conversion.h +%{_includedir}/nppi_data_exchange_and_initialization.h +%{_includedir}/nppi_filtering_functions.h +%{_includedir}/nppi_geometry_transforms.h +%{_includedir}/nppi.h +%{_includedir}/nppi_linear_transforms.h +%{_includedir}/nppi_morphological_operations.h +%{_includedir}/nppi_statistics_functions.h +%{_includedir}/nppi_support_functions.h +%{_includedir}/nppi_threshold_and_compare_operations.h +%{_includedir}/npps_arithmetic_and_logical_operations.h +%{_includedir}/npps_conversion_functions.h +%{_includedir}/npps_filtering_functions.h +%{_includedir}/npps.h +%{_includedir}/npps_initialization.h +%{_includedir}/npps_statistics_functions.h +%{_includedir}/npps_support_functions.h +%{_libdir}/libnppc.so +%{_libdir}/libnppial.so +%{_libdir}/libnppicc.so +%{_libdir}/libnppidei.so +%{_libdir}/libnppif.so +%{_libdir}/libnppig.so +%{_libdir}/libnppim.so +%{_libdir}/libnppist.so +%{_libdir}/libnppisu.so +%{_libdir}/libnppitc.so +%{_libdir}/libnpps.so +%{_libdir}/pkgconfig/npp*.pc + +%files static +%{_libdir}/libnppc_static.a +%{_libdir}/libnppial_static.a +%{_libdir}/libnppicc_static.a +%{_libdir}/libnppidei_static.a +%{_libdir}/libnppif_static.a +%{_libdir}/libnppig_static.a +%{_libdir}/libnppim_static.a +%{_libdir}/libnppist_static.a +%{_libdir}/libnppisu_static.a +%{_libdir}/libnppitc_static.a +%{_libdir}/libnpps_static.a +%changelog +%autochangelog \ No newline at end of file diff --git a/anda/lib/nvidia/libnpp/nppc.pc b/anda/lib/nvidia/libnpp/nppc.pc new file mode 100644 index 0000000000..caae4c8e19 --- /dev/null +++ b/anda/lib/nvidia/libnpp/nppc.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: nppc +Description: NVIDIA Performance Primitives - Core +Version: CUDA_VERSION +Libs: -L${libdir} -lnppc +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnpp/nppi.pc b/anda/lib/nvidia/libnpp/nppi.pc new file mode 100644 index 0000000000..e5a614d6f6 --- /dev/null +++ b/anda/lib/nvidia/libnpp/nppi.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: nppi +Description: NVIDIA Performance Primitives - Image Processing +Version: CUDA_VERSION +Libs: -L${libdir} -lnppi +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnpp/nppial.pc b/anda/lib/nvidia/libnpp/nppial.pc new file mode 100644 index 0000000000..ba9a18f623 --- /dev/null +++ b/anda/lib/nvidia/libnpp/nppial.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: nppial +Description: NVIDIA Performance Primitives - Image Processing - Arithmetic and Logic +Version: CUDA_VERSION +Libs: -L${libdir} -lnppial +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnpp/nppicc.pc b/anda/lib/nvidia/libnpp/nppicc.pc new file mode 100644 index 0000000000..6b5b45938e --- /dev/null +++ b/anda/lib/nvidia/libnpp/nppicc.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: nppicc +Description: NVIDIA Performance Primitives - Image Processing - Color Conversion +Version: CUDA_VERSION +Libs: -L${libdir} -lnppicc +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnpp/nppicom.pc b/anda/lib/nvidia/libnpp/nppicom.pc new file mode 100644 index 0000000000..edb15735a1 --- /dev/null +++ b/anda/lib/nvidia/libnpp/nppicom.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: nppicom +Description: NVIDIA Performance Primitives - Image Processing - Compression +Version: CUDA_VERSION +Libs: -L${libdir} -lnppicom +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnpp/nppidei.pc b/anda/lib/nvidia/libnpp/nppidei.pc new file mode 100644 index 0000000000..2e517e0b9a --- /dev/null +++ b/anda/lib/nvidia/libnpp/nppidei.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: nppidei +Description: NVIDIA Performance Primitives - Image Processing - DEI +Version: CUDA_VERSION +Libs: -L${libdir} -lnppidei +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnpp/nppif.pc b/anda/lib/nvidia/libnpp/nppif.pc new file mode 100644 index 0000000000..f135e981b7 --- /dev/null +++ b/anda/lib/nvidia/libnpp/nppif.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: nppif +Description: NVIDIA Performance Primitives - Image Processing - Filters +Version: CUDA_VERSION +Libs: -L${libdir} -lnppif +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnpp/nppig.pc b/anda/lib/nvidia/libnpp/nppig.pc new file mode 100644 index 0000000000..270c844af3 --- /dev/null +++ b/anda/lib/nvidia/libnpp/nppig.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: nppig +Description: NVIDIA Performance Primitives - Image Processing - Geometry +Version: CUDA_VERSION +Libs: -L${libdir} -lnppig +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnpp/nppim.pc b/anda/lib/nvidia/libnpp/nppim.pc new file mode 100644 index 0000000000..21cd9e582a --- /dev/null +++ b/anda/lib/nvidia/libnpp/nppim.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: nppim +Description: NVIDIA Performance Primitives - Image Processing - Morphological +Version: CUDA_VERSION +Libs: -L${libdir} -lnppim +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnpp/nppist.pc b/anda/lib/nvidia/libnpp/nppist.pc new file mode 100644 index 0000000000..924b112055 --- /dev/null +++ b/anda/lib/nvidia/libnpp/nppist.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: nppist +Description: NVIDIA Performance Primitives - Image Processing - Statistic and Linear +Version: CUDA_VERSION +Libs: -L${libdir} -lnppist +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnpp/nppisu.pc b/anda/lib/nvidia/libnpp/nppisu.pc new file mode 100644 index 0000000000..ea4072e751 --- /dev/null +++ b/anda/lib/nvidia/libnpp/nppisu.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: nppisu +Description: NVIDIA Performance Primitives - Image Processing - Support and Data Exchange +Version: CUDA_VERSION +Libs: -L${libdir} -lnppisu +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnpp/nppitc.pc b/anda/lib/nvidia/libnpp/nppitc.pc new file mode 100644 index 0000000000..d60b4a64ba --- /dev/null +++ b/anda/lib/nvidia/libnpp/nppitc.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: nppitc +Description: NVIDIA Performance Primitives - Image Processing - Threshold and Compare +Version: CUDA_VERSION +Libs: -L${libdir} -lnppitc +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnpp/npps.pc b/anda/lib/nvidia/libnpp/npps.pc new file mode 100644 index 0000000000..0ce2a9f5ea --- /dev/null +++ b/anda/lib/nvidia/libnpp/npps.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: npps +Description: NVIDIA Performance Primitives - Signal Processing +Version: CUDA_VERSION +Libs: -L${libdir} -lnpps +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnpp/update.rhai b/anda/lib/nvidia/libnpp/update.rhai new file mode 100644 index 0000000000..88a2866e64 --- /dev/null +++ b/anda/lib/nvidia/libnpp/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("libnpp")); diff --git a/anda/lib/nvidia/libnvfatbin/anda.hcl b/anda/lib/nvidia/libnvfatbin/anda.hcl new file mode 100644 index 0000000000..0f221d477d --- /dev/null +++ b/anda/lib/nvidia/libnvfatbin/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "libnvfatbin.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/libnvfatbin/libnvfatbin.spec b/anda/lib/nvidia/libnvfatbin/libnvfatbin.spec new file mode 100644 index 0000000000..9ce45567d1 --- /dev/null +++ b/anda/lib/nvidia/libnvfatbin/libnvfatbin.spec @@ -0,0 +1,92 @@ +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global major_package_version 12-6 + +Name: libnvfatbin +Epoch: 1 +Version: 12.6.77 +Release: 1%{?dist} +Summary: CUDA Fatbin Creator API +License: CUDA Toolkit +URL: https://developer.nvidia.com/cuda-toolkit +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-x86_64/%{name}-linux-x86_64-%{version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-sbsa/%{name}-linux-sbsa-%{version}-archive.tar.xz +Source3: nvfatbin.pc + +Requires(post): ldconfig +Conflicts: %{name}-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} + +%description +The Fatbin Creator APIs are a set of APIs which can be used at runtime to +combine multiple CUDA objects into one CUDA fat binary (fatbin). + +The functionality in this library is similar to the fatbinary offline tool in +the CUDA toolkit, with the following advantages: + + - Support for runtime fatbin creation. + - The clients get fine grain control and can specify separate options for each + fatbinary. + - Supports direct input from memory, rather than requiring inputs be written to + files. + +%package devel +Summary: Development files for CUDA Fatbin Creator API +Requires: %{name}%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Conflicts: %{name}-devel-%{major_package_version} < %{?epoch:%{epoch}:}%{version} + +%description devel +This package provides development files for the CUDA Fatbin Creator API. + +%package static +Summary: Static libraries for CUDA Fatbin Creator API. +Requires: %{name}-devel%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description static +This package contains static libraries for CUDA Fatbin Creator API. + +%prep +%ifarch x86_64 +%setup -q -n %{name}-linux-x86_64-%{version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n %{name}-linux-sbsa-%{version}-archive +%endif + +%install +mkdir -p %{buildroot}%{_includedir} +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_libdir}/pkgconfig/ + +cp -fr include/* %{buildroot}%{_includedir}/ +cp -fr lib/lib* %{buildroot}%{_libdir}/ +cp -fr %{SOURCE3} %{buildroot}/%{_libdir}/pkgconfig/ + +# Set proper variables +sed -i \ + -e 's|CUDA_VERSION|%{version}|g' \ + -e 's|LIBDIR|%{_libdir}|g' \ + -e 's|INCLUDE_DIR|%{_includedir}|g' \ + %{buildroot}/%{_libdir}/pkgconfig/*.pc + +%{?ldconfig_scriptlets} + +%files +%license LICENSE +%{_libdir}/libnvfatbin.so.* + +%files devel +%{_includedir}/nvFatbin.h +%{_libdir}/libnvfatbin.so +%{_libdir}/pkgconfig/nvfatbin.pc + +%files static +%{_libdir}/libnvfatbin_static.a + +%changelog +%autochangelog + diff --git a/anda/lib/nvidia/libnvfatbin/nvfatbin.pc b/anda/lib/nvidia/libnvfatbin/nvfatbin.pc new file mode 100644 index 0000000000..7c5962b839 --- /dev/null +++ b/anda/lib/nvidia/libnvfatbin/nvfatbin.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: nvjpeg +Description: NVIDIA JPEG decoder +Version: CUDA_VERSION +Libs: -L${libdir} -lnvjpeg +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnvfatbin/update.rhai b/anda/lib/nvidia/libnvfatbin/update.rhai new file mode 100644 index 0000000000..2b38928c70 --- /dev/null +++ b/anda/lib/nvidia/libnvfatbin/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("libnvfatbin")); diff --git a/anda/lib/nvidia/libnvidia-container/anda.hcl b/anda/lib/nvidia/libnvidia-container/anda.hcl new file mode 100644 index 0000000000..ebf0b02572 --- /dev/null +++ b/anda/lib/nvidia/libnvidia-container/anda.hcl @@ -0,0 +1,9 @@ +project "pkg" { + rpm { + spec = "libnvidia-container.spec" + } + labels = { + subrepo = "nvidia" + mock = 1 + } +} diff --git a/anda/lib/nvidia/libnvidia-container/fix-debug-packages.patch b/anda/lib/nvidia/libnvidia-container/fix-debug-packages.patch new file mode 100644 index 0000000000..0f49e9b9f6 --- /dev/null +++ b/anda/lib/nvidia/libnvidia-container/fix-debug-packages.patch @@ -0,0 +1,32 @@ +--- a/Makefile ++++ b/Makefile +@@ -219,22 +219,14 @@ + -include $(DEPENDENCIES) + + $(LIB_SHARED): $(LIB_OBJS) +- $(MKDIR) -p $(DEBUG_DIR) + $(CC) $(LIB_CFLAGS) $(LIB_CPPFLAGS) $(LIB_LDFLAGS) $(OUTPUT_OPTION) $^ $(LIB_SCRIPT) $(LIB_LDLIBS) +- $(OBJCPY) --only-keep-debug $@ $(LIB_SONAME) +- $(OBJCPY) --add-gnu-debuglink=$(LIB_SONAME) $@ +- $(MV) $(LIB_SONAME) $(DEBUG_DIR) +- $(STRIP) --strip-unneeded -R .comment $@ + + $(LIB_STATIC_OBJ): $(LIB_OBJS) + # FIXME Handle user-defined LDFLAGS and LDLIBS + $(LD) -d -r --exclude-libs ALL -L$(DEPS_DIR)$(libdir) $(OUTPUT_OPTION) $^ $(LIB_LDLIBS_STATIC) +- $(OBJCPY) --localize-hidden $@ +- $(STRIP) --strip-unneeded -R .comment $@ + + $(BIN_NAME): $(BIN_OBJS) + $(CC) $(BIN_CFLAGS) $(BIN_CPPFLAGS) $(BIN_LDFLAGS) $(OUTPUT_OPTION) $^ $(BIN_SCRIPT) $(BIN_LDLIBS) +- $(STRIP) --strip-unneeded -R .comment $@ + + ##### Public rules ##### + +@@ -281,6 +281,4 @@ endif + $(LDCONFIG) -n $(DESTDIR)$(libdir) +- # Install debugging symbols +- $(INSTALL) -m 644 $(DEBUG_DIR)/$(LIB_SONAME) $(DESTDIR)$(libdbgdir) + # Install configuration files + $(MAKE_DIR)/$(LIB_PKGCFG).in "$(strip $(VERSION))" "$(strip $(LIB_LDLIBS_SHARED))" > $(DESTDIR)$(pkgconfdir)/$(LIB_PKGCFG) + # Install binary files diff --git a/anda/lib/nvidia/libnvidia-container/fix-makefile.patch b/anda/lib/nvidia/libnvidia-container/fix-makefile.patch new file mode 100644 index 0000000000..80aeddd641 --- /dev/null +++ b/anda/lib/nvidia/libnvidia-container/fix-makefile.patch @@ -0,0 +1,12 @@ +--- a/Makefile ++++ b/Makefile +@@ -165,6 +165,9 @@ ifeq ($(WITH_TIRPC), yes) + LIB_CPPFLAGS += -isystem $(DEPS_DIR)$(includedir)/tirpc -DWITH_TIRPC + LIB_LDLIBS_STATIC += -l:libtirpc.a + LIB_LDLIBS_SHARED += -lpthread ++else ++CPPFLAGS += -I/usr/include/tirpc ++LIB_LDLIBS_SHARED += -lpthread -ltirpc + endif + ifeq ($(WITH_SECCOMP), yes) + LIB_CPPFLAGS += -DWITH_SECCOMP $(shell pkg-config --cflags libseccomp) diff --git a/anda/lib/nvidia/libnvidia-container/fix-revision.patch b/anda/lib/nvidia/libnvidia-container/fix-revision.patch new file mode 100644 index 0000000000..0e8c30704b --- /dev/null +++ b/anda/lib/nvidia/libnvidia-container/fix-revision.patch @@ -0,0 +1,17 @@ +--- a/mk/common.mk ++++ b/mk/common.mk +@@ -19,6 +19,7 @@ + BMAKE ?= MAKEFLAGS= bmake + DOCKER ?= docker + PATCH ?= patch ++REVISION ?= $(shell git rev-parse HEAD) + + UID := $(shell id -u) + GID := $(shell id -g) +@@ -27,7 +28,6 @@ + else + DATE := $(shell date -u --iso-8601=minutes) + endif +-REVISION ?= $(shell git rev-parse HEAD) + COMPILER := $(realpath $(shell which $(CC))) + PLATFORM ?= $(shell uname -m) diff --git a/anda/lib/nvidia/libnvidia-container/libnvidia-container.spec b/anda/lib/nvidia/libnvidia-container/libnvidia-container.spec new file mode 100644 index 0000000000..81ecd846f2 --- /dev/null +++ b/anda/lib/nvidia/libnvidia-container/libnvidia-container.spec @@ -0,0 +1,111 @@ +%global _major 1 + +Name: libnvidia-container +Version: 1.17.4 +Release: 1%?dist +Summary: NVIDIA container runtime library +License: BSD-3-Clause AND Apache-2.0 AND GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND GPL-2.0-only +Vendor: NVIDIA Corporation +URL: https://github.com/NVIDIA/%{name} +Source0: https://github.com/NVIDIA/%{name}/archive/v%{version}.tar.gz +Patch0: fix-revision.patch +Patch1: fix-makefile.patch +Patch2: fix-debug-packages.patch +BuildRequires: bmake +BuildRequires: elfutils-libelf-devel +BuildRequires: gcc +BuildRequires: git +BuildRequires: golang +BuildRequires: libcap-devel +BuildRequires: libtirpc-devel +BuildRequires: libseccomp-devel +BuildRequires: rpcgen + +%description +The nvidia-container library provides an interface to configure containers using NVIDIA hardware. + +%prep +rm -rf ./* +### Must be built this way because the Makefile expects be to in a Git directory. +git clone https://github.com/NVIDIA/%{name}.git +cd %{name} +git checkout v%{version} +%autopatch -p1 + +%build +cd %{name} +make distclean +%make_build REVISION=%{version} WITH_LIBELF=yes + +%install +cd %{name} +make install DESTDIR=%{buildroot} REVISION=%{version} WITH_LIBELF=yes \ + LDCONFIG=/bin/true \ + prefix=%{_prefix} \ + exec_prefix=%{_exec_prefix} \ + bindir=%{_bindir} \ + libdir=%{_libdir} \ + includedir=%{_includedir} \ + docdir=%{_licensedir} + +%package -n %{name}%{_major} +Summary: NVIDIA container runtime library +Requires: nvidia-driver >= 340.29 +%description -n %{name}%{_major} +The nvidia-container library provides an interface to configure containers using NVIDIA hardware. + +%post -n %{name}%{_major} -p /sbin/ldconfig +%postun -n %{name}%{_major} -p /sbin/ldconfig + +%package devel +Requires: %{name}%{_major}%{?_isa} = %{version}-%{release} +Summary: NVIDIA container runtime library development files +Requires: nvidia-driver >= 340.29 +%description devel +This package contains the files required to compile programs with the library. + +%package static +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Summary: NVIDIA container runtime library static library +Requires: nvidia-driver >= 340.29 +%description static +The nvidia-container library provides an interface to configure containers using NVIDIA hardware. + +%package tools +Requires: %{name}%{_major}%{?_isa} >= %{version}-%{release} +Summary: NVIDIA container runtime library command-line tools +Requires: nvidia-driver >= 340.29 +%description tools +This package contains command-line tools that facilitate using the nvidia-container library. + +%package libseccomp2 +Requires: libseccomp2 +Provides: libseccomp.so +Conflicts: libseccomp.so +Summary: A virtual package to provide libseccomp through libseccomp2 +%description libseccomp2 +This is a virtual package to satisfy the libseccomp.so dependency through a transitive dependency on libseccomp2.so. + +%files -n %{name}%{_major} +%license %{_licensedir}/* +%{_libdir}/lib*.so.* + +%files devel +%license %{_licensedir}/* +%{_includedir}/*.h +%{_libdir}/lib*.so +%{_libdir}/pkgconfig/*.pc + +%files static +%license %{_licensedir}/* +%{_libdir}/lib*.a + +%files tools +%license %{_licensedir}/* +%{_bindir}/* + +%files libseccomp2 +%license %{_licensedir}/* + +%changelog +%autochangelog diff --git a/anda/lib/nvidia/libnvidia-container/update.rhai b/anda/lib/nvidia/libnvidia-container/update.rhai new file mode 100644 index 0000000000..df858cec15 --- /dev/null +++ b/anda/lib/nvidia/libnvidia-container/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("NVIDIA/libnvidia-container")); diff --git a/anda/lib/nvidia/libnvjpeg/anda.hcl b/anda/lib/nvidia/libnvjpeg/anda.hcl new file mode 100644 index 0000000000..8881c1ea8e --- /dev/null +++ b/anda/lib/nvidia/libnvjpeg/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "libnvjpeg.spec" + } + labels { + subrepo = "nvidia" + } +} diff --git a/anda/lib/nvidia/libnvjpeg/libnvjpeg.spec b/anda/lib/nvidia/libnvjpeg/libnvjpeg.spec new file mode 100644 index 0000000000..808cde3fb0 --- /dev/null +++ b/anda/lib/nvidia/libnvjpeg/libnvjpeg.spec @@ -0,0 +1,87 @@ +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global major_package_version 12-6 + +Name: libnvjpeg +Epoch: 1 +Version: 12.3.3.54 +Release: 1%{?dist} +Summary: CUDA NVIDIA JPEG decoder (nvJPEG) +License: CUDA Toolkit +URL: https://developer.nvidia.com/cuda-toolkit +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-x86_64/%{name}-linux-x86_64-%{version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cuda/redist/%{name}/linux-sbsa/%{name}-linux-sbsa-%{version}-archive.tar.xz +Source3: nvjpeg.pc + +Requires(post): ldconfig +Conflicts: %{name}-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} + +%description +nvJPEG is a high-performance GPU-accelerated library for JPEG decoding. nvJPEG +supports decoding of single and batched images, color space conversion, multiple +phase decoding, and hybrid decoding using both CPU and GPU. Applications that +rely on nvJPEG for decoding deliver higher throughput and lower latency JPEG +decode compared CPU-only decoding. + +%package devel +Summary: Development files for CUDA NVIDIA JPEG decoder (nvJPEG) +Requires: %{name}%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Conflicts: %{name}-devel-%{major_package_version} < %{?epoch:%{epoch}:}%{version} + +%description devel +This package provides development files for the CUDA NVIDIA JPEG decoder +(nvJPEG). + +%package static +Summary: Static libraries for CUDA NVIDIA JPEG decoder (nvJPEG) +Requires: %{name}-devel%{_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description static +This package contains static libraries for CUDA NVIDIA JPEG decoder (nvJPEG). + +%prep +%ifarch x86_64 +%setup -q -n %{name}-linux-x86_64-%{version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n %{name}-linux-sbsa-%{version}-archive +%endif + +%install +mkdir -p %{buildroot}%{_includedir} +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_libdir}/pkgconfig/ + +cp -fr include/* %{buildroot}%{_includedir}/ +cp -fr lib/lib* %{buildroot}%{_libdir}/ +cp -fr %{SOURCE3} %{buildroot}/%{_libdir}/pkgconfig/ + +# Set proper variables +sed -i \ + -e 's|CUDA_VERSION|%{version}|g' \ + -e 's|LIBDIR|%{_libdir}|g' \ + -e 's|INCLUDE_DIR|%{_includedir}|g' \ + %{buildroot}/%{_libdir}/pkgconfig/*.pc + +%{?ldconfig_scriptlets} + +%files +%license LICENSE +%{_libdir}/libnvjpeg.so.* + +%files devel +%{_includedir}/nvjpeg.h +%{_libdir}/libnvjpeg.so +%{_libdir}/pkgconfig/nvjpeg.pc + +%files static +%{_libdir}/libnvjpeg_static.a + +%changelog +%autochangelog + diff --git a/anda/lib/nvidia/libnvjpeg/nvjpeg.pc b/anda/lib/nvidia/libnvjpeg/nvjpeg.pc new file mode 100644 index 0000000000..7c5962b839 --- /dev/null +++ b/anda/lib/nvidia/libnvjpeg/nvjpeg.pc @@ -0,0 +1,8 @@ +libdir=LIBDIR +includedir=INCLUDE_DIR + +Name: nvjpeg +Description: NVIDIA JPEG decoder +Version: CUDA_VERSION +Libs: -L${libdir} -lnvjpeg +Cflags: -I${includedir} diff --git a/anda/lib/nvidia/libnvjpeg/update.rhai b/anda/lib/nvidia/libnvjpeg/update.rhai new file mode 100644 index 0000000000..79772901d0 --- /dev/null +++ b/anda/lib/nvidia/libnvjpeg/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("libnvjpeg")); diff --git a/anda/lib/rtmpdump/anda.hcl b/anda/lib/rtmpdump/anda.hcl new file mode 100644 index 0000000000..8a4c8ba8c6 --- /dev/null +++ b/anda/lib/rtmpdump/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "rtmpdump.spec" + } + labels { + mock =1 + } +} diff --git a/anda/lib/rtmpdump/rtmpdump.spec b/anda/lib/rtmpdump/rtmpdump.spec new file mode 100644 index 0000000000..27e9873f3c --- /dev/null +++ b/anda/lib/rtmpdump/rtmpdump.spec @@ -0,0 +1,70 @@ +%global commit 6f6bb1353fc84f4cc37138baa99f586750028a01 +%global commit_date 20240301 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: rtmpdump +Version: 2.6^%{commit_date}git%{shortcommit} +Release: 1%{?dist} +Summary: Toolkit for RTMP streams +# The tools are GPLv2+, but the he library is LGPLv2+. +License: GPLv2+ +URL: https://git.ffmpeg.org/gitweb/%{name}.git +BuildRequires: gcc +BuildRequires: git +BuildRequires: gnutls-devel +BuildRequires: libgcrypt-devel +BuildRequires: nettle-devel +BuildRequires: zlib-devel + +%description +rtmpdump is a toolkit for RTMP streams. All forms of RTMP are supported. + +%package -n librtmp +Summary: Support library for RTMP streams +License: LGPLv2+ + +%description -n librtmp +librtmp is a support library for RTMP streams. All forms of RTMP are supported. + +%package -n librtmp-devel +Summary: Files for librtmp development +License: LGPLv2+ +Requires: librtmp%{?_isa} = %{version}-%{release} + +%description -n librtmp-devel +Development package for librtmp. + +%prep +git clone https://git.ffmpeg.org/%{name}.git +%setup -T -D -n %{name} + +%build +make SYS=posix CRYPTO=GNUTLS SHARED=yes OPT="%{optflags}" + +%install +make CRYPTO=GNUTLS SHARED=yes DESTDIR=%{buildroot} prefix=%{_prefix} mandir=%{_mandir} libdir=%{_libdir} install +find %{buildroot} -name "*.a" -delete + +%files +%license COPYING +%doc README +%{_bindir}/rtmpdump +/usr/sbin/rtmpsrv +/usr/sbin/rtmpgw +/usr/sbin/rtmpsuck +%{_mandir}/man1/rtmpdump.1* +%{_mandir}/man8/rtmpgw.8* + +%files -n librtmp +%license librtmp/COPYING +%doc ChangeLog +%{_libdir}/librtmp.so.1 + +%files -n librtmp-devel +%{_includedir}/librtmp/ +%{_libdir}/librtmp.so +%{_libdir}/pkgconfig/librtmp.pc +%{_mandir}/man3/librtmp.3* + +%changelog +%autochangelog diff --git a/anda/lib/tdlib/anda.hcl b/anda/lib/tdlib/anda.hcl index 29e7eebe8d..b1b0aee448 100644 --- a/anda/lib/tdlib/anda.hcl +++ b/anda/lib/tdlib/anda.hcl @@ -2,7 +2,4 @@ project pkg { rpm { spec = "tdlib-nightly.spec" } - labels { - nightly = "1" - } } diff --git a/anda/lib/tdlib/tdlib-nightly.spec b/anda/lib/tdlib/tdlib-nightly.spec index fec0cd11d0..a36be6e0ec 100644 --- a/anda/lib/tdlib/tdlib-nightly.spec +++ b/anda/lib/tdlib/tdlib-nightly.spec @@ -1,15 +1,15 @@ -%global commit dcfd86c70c565c9c1d2f576a9ff0a769f2ef5e49 -%global ver 1.8.36 -%global commit_date 20240219 +%global commit 721300bcb4d0f2114505712f4dc6350af1ce1a09 +%global ver 1.8.45 +%global commit_date 20250212 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -Name: tdlib-nightly -Version: %ver^%commit_date.%shortcommit -Release: 2%?dist -License: BSL-1.0 -URL: https://github.com/tdlib/td -Summary: Cross-platform library for building Telegram clients -Source0: %url/archive/%commit/tdlib-%commit.tar.gz +Name: tdlib-nightly +Version: %ver^%commit_date.%shortcommit +Release: 1%?dist +License: BSL-1.0 +URL: https://github.com/tdlib/td +Summary: Cross-platform library for building Telegram clients +Source0: %url/archive/%commit/tdlib-%commit.tar.gz BuildRequires: gperftools-devel BuildRequires: openssl-devel @@ -20,7 +20,7 @@ BuildRequires: gperf BuildRequires: cmake BuildRequires: gcc -Provides: bundled(sqlite) = 3.31.0 +Provides: bundled(sqlite) = 3.31.0 %description TDLib (Telegram Database library) is a cross-platform library for @@ -62,14 +62,18 @@ sed -e 's/"DEFAULT"/"PROFILE=SYSTEM"/g' -i tdnet/td/net/SslStream.cpp %install %cmake_install -mv LICENSE_1_0.txt *.md .. +mv LICENSE_1_0.txt *.md example .. rm -rf * mv ../LICENSE_1_0.txt ../*.md . +mkdir -p %buildroot%_datadir/%{name} +cp -r ../example %buildroot%_datadir/%{name} + %files %license LICENSE_1_0.txt %doc README.md CHANGELOG.md %_libdir/libtd*.so.%ver +%_datadir/%{name}/example/* %files devel %_includedir/td diff --git a/anda/lib/tdlib/update.rhai b/anda/lib/tdlib/update.rhai index 0e2cafa333..1e0532fd66 100644 --- a/anda/lib/tdlib/update.rhai +++ b/anda/lib/tdlib/update.rhai @@ -1,8 +1,7 @@ -if filters.contains("nightly") { - rpm.global("commit", gh_commit("tdlib/td")); - if rpm.changed() { - let v = find("\nproject\\(TDLib\\s+VERSION\\s+([\\d.]+)\\s+", gh_rawfile("tdlib/td", "master", "CMakeLists.txt"), 1); - rpm.global("ver", v); - rpm.release(); - } +rpm.global("commit", gh_commit("tdlib/td")); +if rpm.changed() { + let v = find("\nproject\\(TDLib\\s+VERSION\\s+([\\d.]+)\\s+", gh_rawfile("tdlib/td", "master", "CMakeLists.txt"), 1); + rpm.global("ver", v); + rpm.release(); + rpm.global("commit_date", date()); } diff --git a/anda/lib/vo-aacenc/anda.hcl b/anda/lib/vo-aacenc/anda.hcl new file mode 100644 index 0000000000..541efbd9ce --- /dev/null +++ b/anda/lib/vo-aacenc/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "vo-aacenc.spec" + } + labels { + weekly = 1 + mock = 1 + } +} diff --git a/anda/lib/vo-aacenc/update.rhai b/anda/lib/vo-aacenc/update.rhai new file mode 100644 index 0000000000..ee0c6ad41f --- /dev/null +++ b/anda/lib/vo-aacenc/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("mstorsjo/vo-aacenc")); diff --git a/anda/lib/vo-aacenc/vo-aacenc.spec b/anda/lib/vo-aacenc/vo-aacenc.spec new file mode 100644 index 0000000000..64e0aac86d --- /dev/null +++ b/anda/lib/vo-aacenc/vo-aacenc.spec @@ -0,0 +1,52 @@ +Name: vo-aacenc +Version: 0.1.3 +Release: 1%{?dist} +Summary: VisualOn AAC encoder library +License: ASL 2.0 +URL: http://sourceforge.net/projects/opencore-amr/ +Source0: http://downloads.sourceforge.net/opencore-amr/%{name}/%{name}-%{version}.tar.gz +BuildRequires: gcc + +%description +This library contains an encoder implementation of the Advanced Audio +Coding (AAC) audio codec. The library is based on a codec implementation +by VisualOn as part of the Stagefright framework from the Google +Android project. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%prep +%autosetup -n %{name}-%{version} + +%build +%configure --disable-static +make %{?_smp_mflags} + +%install +%make_install +find %{buildroot} -name '*.la' -delete + + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%license COPYING NOTICE +%doc ChangeLog +%{_libdir}/*.so.* + +%files devel +%{_includedir}/* +%{_libdir}/*.so +%{_libdir}/pkgconfig/vo-aacenc.pc + + +%changelog +%autochangelog diff --git a/anda/lib/xavs/anda.hcl b/anda/lib/xavs/anda.hcl new file mode 100644 index 0000000000..4a5ac3f4c3 --- /dev/null +++ b/anda/lib/xavs/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "xavs.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/lib/xavs/xavs-cflags.patch b/anda/lib/xavs/xavs-cflags.patch new file mode 100644 index 0000000000..717231b681 --- /dev/null +++ b/anda/lib/xavs/xavs-cflags.patch @@ -0,0 +1,51 @@ +diff -Naur xavs-code-r55-trunk.old/configure xavs-code-r55-trunk/configure +--- xavs-code-r55-trunk.old/configure 2024-08-13 14:58:40.981179321 +0200 ++++ xavs-code-r55-trunk/configure 2024-08-13 15:08:52.935514480 +0200 +@@ -404,14 +404,13 @@ + fi + + if [ "$debug" != "yes" -a "$gprof" != "yes" ]; then +- CFLAGS="$CFLAGS -s -fomit-frame-pointer" +- LDFLAGS="$LDFLAGS -s" ++ CFLAGS="$CFLAGS -fomit-frame-pointer" + fi + + if [ "$debug" = "yes" ]; then +- CFLAGS="-O1 -g $CFLAGS" ++ CFLAGS="-g $CFLAGS" + else +- CFLAGS="-O4 -ffast-math $CFLAGS" ++ CFLAGS="-ffast-math $CFLAGS" + fi + + if cc_check "stdio.h" "" "fseeko(stdin,0,0);" ; then +diff -Naur xavs-code-r55-trunk.old/Makefile xavs-code-r55-trunk/Makefile +--- xavs-code-r55-trunk.old/Makefile 2024-08-13 14:58:40.981179321 +0200 ++++ xavs-code-r55-trunk/Makefile 2024-08-13 15:23:58.864416440 +0200 +@@ -67,10 +67,12 @@ + $(RANLIB) libxavs.a + + $(SONAME): .depend $(OBJS) $(OBJASM) +- $(CC) -shared -o $@ $(OBJS) $(OBJASM) -Wl,-soname,$(SOFLAGS) $(LDFLAGS) ++ $(CC) -shared -o $@.0.0 $(OBJS) $(OBJASM) -Wl,-soname,$(SOFLAGS) $(LDFLAGS) ++ ln -s $@.0.0 $@ ++ ln -s $@ libxavs.so + +-xavs$(EXE): $(OBJCLI) libxavs.a +- $(CC) -o $@ $+ $(LDFLAGS) ++xavs$(EXE): $(OBJCLI) libxavs.a $(SONAME) ++ $(CC) -o $@ $(OBJCLI) $(LDFLAGS) -L. -lxavs + + xavsvfw.dll: libxavs.a $(wildcard vfw/*.c vfw/*.h) + make -C vfw/build/cygwin +@@ -145,8 +147,9 @@ + ifeq ($(SYS),MINGW) + $(if $(SONAME), install -m 755 $(SONAME) $(DESTDIR)$(bindir)) + else ++ $(if $(SONAME), install -m 755 $(SONAME).0.0 $(DESTDIR)$(libdir)) ++ $(if $(SONAME), ln -sf $(SONAME).0.0 $(DESTDIR)$(libdir)/$(SONAME)) + $(if $(SONAME), ln -sf $(SONAME) $(DESTDIR)$(libdir)/libxavs.$(SOSUFFIX)) +- $(if $(SONAME), install -m 755 $(SONAME) $(DESTDIR)$(libdir)) + endif + $(if $(IMPLIBNAME), install -m 644 $(IMPLIBNAME) $(DESTDIR)$(libdir)) + diff --git a/anda/lib/xavs/xavs.spec b/anda/lib/xavs/xavs.spec new file mode 100644 index 0000000000..749d0f0b3a --- /dev/null +++ b/anda/lib/xavs/xavs.spec @@ -0,0 +1,66 @@ +Name: xavs +Version: 0.1.55 +Release: 1%{?dist} +Summary: AVS1 (First-generation AVS Standards) library +License: GPLv2 +URL: http://xavs.sourceforge.net/ +Patch0: %{name}-cflags.patch +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gcc +BuildRequires: libtool +BuildRequires: subversion +#BuildRequires: yasm + +%description +AVS is a complete standard system including system, video, audio, and digital +rights management, providing a more comprehensive solution for the digital audio +and video industry. + +%package -n lib%{name} +Summary: AVS1 (First-generation AVS Standards) library + +%description -n lib%{name} +AVS is a complete standard system including system, video, audio, and digital +rights management, providing a more comprehensive solution for the digital audio +and video industry. + +%package -n lib%{name}-devel +Summary: Development files for %{name} +Requires: lib%{name}%{?_isa} = %{version}-%{release} +Requires: pkg-config + +%description -n lib%{name}-devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%prep +svn co https://svn.code.sf.net/p/xavs/code/trunk %{name} +%setup -T -D -n %{name} +%autopatch -p1 + +%build +%configure \ + --disable-asm \ + --enable-pic \ + --enable-shared \ + --extra-cflags="-Wno-int-conversion -Wno-declaration-missing-parameter-type" +%make_build + +%install +%make_install +rm -f %{buildroot}%{_libdir}/*.a + +%files +%{_bindir}/%{name} + +%files -n lib%{name} +%{_libdir}/*.so.* + +%files -n lib%{name}-devel +%{_includedir}/* +%{_libdir}/*.so +%{_libdir}/pkgconfig/%{name}.pc + +%changelog +%autochangelog diff --git a/anda/lib/xavs2/anda.hcl b/anda/lib/xavs2/anda.hcl new file mode 100644 index 0000000000..4edf53b893 --- /dev/null +++ b/anda/lib/xavs2/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "xavs2.spec" + } + labels { + mock = 1 + weekly = 1 + } +} diff --git a/anda/lib/xavs2/update.rhai b/anda/lib/xavs2/update.rhai new file mode 100644 index 0000000000..b767071a0e --- /dev/null +++ b/anda/lib/xavs2/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("pkuvcl/xavs2")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/lib/xavs2/xavs2.spec b/anda/lib/xavs2/xavs2.spec new file mode 100644 index 0000000000..6867cb68b3 --- /dev/null +++ b/anda/lib/xavs2/xavs2.spec @@ -0,0 +1,108 @@ +%global commit eae1e8b9d12468059bdd7dee893508e470fa83d8 +%global commit_date 20190422 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: xavs2 +Version: 1.4 +Release: 1%{?shortcommit:.%{commit_date}git%{shortcommit}}%{?dist} +Summary: An open-source encoder of AVS2-P2/IEEE1857.4 video coding standard +URL: https://github.com/pkuvcl/%{name} +License: GPLv2 + +%if "%{?shortcommit}" +Source0: https://github.com/pkuvcl/%{name}/archive/%{commit}/%{name}-%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz +%else +Source0: https://github.com/pkuvcl/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz +%endif + +BuildRequires: gcc +%ifarch x86_64 +BuildRequires: nasm >= 2.13 +%endif + +%description +xavs2 is an open-source encoder of AVS2-P2/IEEE1857.4 video coding standard. + +This package contains the command line encoder. + +%package libs +Summary: AVS2-P2/IEEE1857.4 encoder library + +%description libs +davs2 is an open-source encoder of AVS2-P2/IEEE1857.4 video coding standard. + +This package contains the shared library. + +%package devel +Summary: AVS2-P2/IEEE1857.4 encoder library development files +Requires: %{name}-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description devel +davs2 is an open-source encoder of AVS2-P2/IEEE1857.4 video coding standard. + +This package contains the shared library development files. + +%prep +%if "%{?shortcommit}" +%autosetup -n %{name}-%{commit} +%else +%autosetup +%endif + +%build +cd build/linux +export CFLAGS="%{optflags} -Wno-incompatible-pointer-types" +%configure \ + --bit-depth='8' \ + --chroma-format='all' \ +%ifarch aarch64 %ix86 + --disable-asm \ +%endif + --disable-static \ + --enable-pic \ + --enable-shared + +# Remove hardcoded CFLAGS on generated file containing variables +sed -i \ + -e 's|CFLAGS=.*%{optflags}|CFLAGS=%{optflags}|g' \ + config.mak + +%make_build + +%install +cd build/linux +%make_install + +find %{buildroot} -name "*a" -delete + +%ldconfig_scriptlets libs + +%files +%{_bindir}/%{name} + +%files libs +%license COPYING +%{_libdir}/lib%{name}.so.13 + +%files devel +%doc README.md +%{_includedir}/%{name}.h +%{_includedir}/%{name}_config.h +%{_libdir}/lib%{name}.so +%{_libdir}/pkgconfig/%{name}.pc + +%changelog +* Thu Mar 21 2024 Simone Caronni - 1.3-5.20190422giteae1e8b +- Fix build on Fedora 40. + +* Sat May 23 2020 Simone Caronni - 1.3-4.20190422giteae1e8b +- Disable ASM for aarch64. + +* Sun Mar 15 2020 Simone Caronni - 1.3-3.20190422giteae1e8b +- Update to latest snapshot. + +* Sun Jun 09 2019 Simone Caronni - 1.3-2.20181229gitf45c340 +- Update to latest snapshot to fix various bugs. + +* Sat Jun 08 2019 Simone Caronni - 1.3-1 +- First build. diff --git a/anda/misc/alsa-ucm-cros/alsa-ucm-cros.spec b/anda/misc/alsa-ucm-cros/alsa-ucm-cros.spec index 6b45e9e075..543a0c3aee 100644 --- a/anda/misc/alsa-ucm-cros/alsa-ucm-cros.spec +++ b/anda/misc/alsa-ucm-cros/alsa-ucm-cros.spec @@ -1,13 +1,15 @@ %define debug_package %nil Name: alsa-ucm-cros -Version: 0.5 +Version: 0.7 Release: 1%?dist Summary: ALSA Use Case Manager configuration License: BSD-3-Clause URL: https://github.com/WeirdTreeThing/alsa-ucm-conf-cros/tree/standalone Source0: https://github.com/WeirdTreeThing/alsa-ucm-conf-cros/archive/refs/tags/%version.tar.gz BuildArch: noarch +Provides: alsa-ucm +Conflicts: alsa-ucm %description %summary for chromebooks. diff --git a/anda/misc/extest/anda.hcl b/anda/misc/extest/anda.hcl index 9546109527..12ac3c0bb3 100644 --- a/anda/misc/extest/anda.hcl +++ b/anda/misc/extest/anda.hcl @@ -1,8 +1,10 @@ project pkg { + arches = ["x86_64", "aarch64", "i386"] rpm { spec = "rust-extest.spec" } + labels { - multilib = 1 - } + mock = 1 + } } diff --git a/anda/misc/extest/rust-extest.spec b/anda/misc/extest/rust-extest.spec index ccc380e7fb..111d99b2ff 100644 --- a/anda/misc/extest/rust-extest.spec +++ b/anda/misc/extest/rust-extest.spec @@ -1,6 +1,6 @@ -%global commit 79cdf2f642260d19139b071748c6f8d48a1dff10 +%global commit d6863d970d2686dd6282142af57503e1f2d561dc %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240712 +%global commit_date 20241119 # While there's an upstream version at Supreeeme/extest, we're using # the same fork as Bazzite so we can use the same patches. @@ -16,7 +16,7 @@ Name: extest Version: %commit_date.git~%{shortcommit} -Release: %autorelease +Release: 1%?dist Summary: X11 XTEST reimplementation primarily for Steam Controller on Wayland License: MIT diff --git a/anda/misc/sass/sass.spec b/anda/misc/sass/sass.spec index 3c24b8ba05..971064240b 100644 --- a/anda/misc/sass/sass.spec +++ b/anda/misc/sass/sass.spec @@ -4,7 +4,7 @@ %define _build_id_links none Name: sass -Version: 1.78.0 +Version: 1.83.4 Release: 1%?dist Summary: The reference implementation of Sass, written in Dart License: MIT diff --git a/anda/multimedia/carla/0001-carla_host_control-import-from-pyliblo3-if-available.patch b/anda/multimedia/carla/0001-carla_host_control-import-from-pyliblo3-if-available.patch new file mode 100644 index 0000000000..bf4cbd1884 --- /dev/null +++ b/anda/multimedia/carla/0001-carla_host_control-import-from-pyliblo3-if-available.patch @@ -0,0 +1,65 @@ +From a81a2a545d2529233a6e0faa776fbd2d851442fb Mon Sep 17 00:00:00 2001 +From: Adam Williamson +Date: Fri, 27 Sep 2024 11:59:47 -0700 +Subject: [PATCH] carla_host_control: import from pyliblo3 if available + +pyliblo has not been touched upstream since 2015 and doesn't +work out of the box with Python releases since 3.11. There is an +actively-maintained fork called 'pyliblo3' at +https://github.com/gesellkammer/pyliblo3 which *does* work with +current upstream Python releases. It provides a library called +'pyliblo3' rather than 'liblo'. Let's support it, and prefer it +over the dead library (though the dead one will still be used if +it is present and pyliblo3 is not). + +Signed-off-by: Adam Williamson +--- + source/frontend/carla_host_control.py | 32 ++++++++++++++++++--------- + 1 file changed, 22 insertions(+), 10 deletions(-) + +diff --git a/source/frontend/carla_host_control.py b/source/frontend/carla_host_control.py +index 7defa8435..8df839d3a 100755 +--- a/source/frontend/carla_host_control.py ++++ b/source/frontend/carla_host_control.py +@@ -23,16 +23,28 @@ from carla_host import * + # ------------------------------------------------------------------------------------------------------------ + # Imports (liblo) + +-from liblo import ( +- Address, +- AddressError, +- ServerError, +- Server, +- make_method, +- send as lo_send, +- TCP as LO_TCP, +- UDP as LO_UDP, +-) ++try: ++ from pyliblo3 import ( ++ Address, ++ AddressError, ++ ServerError, ++ Server, ++ make_method, ++ send as lo_send, ++ TCP as LO_TCP, ++ UDP as LO_UDP, ++ ) ++except ModuleNotFoundError: ++ from liblo import ( ++ Address, ++ AddressError, ++ ServerError, ++ Server, ++ make_method, ++ send as lo_send, ++ TCP as LO_TCP, ++ UDP as LO_UDP, ++ ) + + from random import random + +-- +2.46.2 + diff --git a/anda/multimedia/carla/Carla-0001-fix-prototype.patch b/anda/multimedia/carla/Carla-0001-fix-prototype.patch new file mode 100644 index 0000000000..cda4846d6a --- /dev/null +++ b/anda/multimedia/carla/Carla-0001-fix-prototype.patch @@ -0,0 +1,25 @@ +From 0144d822d04d19acd625ac57d0e5121181d79943 Mon Sep 17 00:00:00 2001 +From: Yann Collette +Date: Fri, 5 Apr 2024 22:13:29 +0200 +Subject: [PATCH] fix prototype + +--- + source/backend/CarlaPlugin.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/source/backend/CarlaPlugin.hpp b/source/backend/CarlaPlugin.hpp +index fe581bc..215bcd7 100644 +--- a/source/backend/CarlaPlugin.hpp ++++ b/source/backend/CarlaPlugin.hpp +@@ -24,7 +24,7 @@ + // ----------------------------------------------------------------------- + // Avoid including extra libs here + +-typedef void* lo_message; ++typedef struct lo_message_ *lo_message; + typedef struct _NativePluginDescriptor NativePluginDescriptor; + struct LADSPA_RDF_Descriptor; + +-- +2.44.0 + diff --git a/anda/multimedia/carla/Carla-2.5-libdir.patch b/anda/multimedia/carla/Carla-2.5-libdir.patch new file mode 100644 index 0000000000..903cc302ba --- /dev/null +++ b/anda/multimedia/carla/Carla-2.5-libdir.patch @@ -0,0 +1,40 @@ +--- a/source/frontend/carla_shared.py ++++ b/source/frontend/carla_shared.py +@@ -473,30 +473,37 @@ else: + + DEFAULT_LADSPA_PATH = HOME + "/.ladspa" + DEFAULT_LADSPA_PATH += ":/usr/lib/ladspa" ++ DEFAULT_LADSPA_PATH += ":/usr/lib64/ladspa" + DEFAULT_LADSPA_PATH += ":/usr/local/lib/ladspa" + + DEFAULT_DSSI_PATH = HOME + "/.dssi" + DEFAULT_DSSI_PATH += ":/usr/lib/dssi" ++ DEFAULT_DSSI_PATH += ":/usr/lib64/dssi" + DEFAULT_DSSI_PATH += ":/usr/local/lib/dssi" + + DEFAULT_LV2_PATH = HOME + "/.lv2" + DEFAULT_LV2_PATH += ":/usr/lib/lv2" ++ DEFAULT_LV2_PATH += ":/usr/lib64/lv2" + DEFAULT_LV2_PATH += ":/usr/local/lib/lv2" + + DEFAULT_VST2_PATH = HOME + "/.vst" + DEFAULT_VST2_PATH += ":/usr/lib/vst" ++ DEFAULT_VST2_PATH += ":/usr/lib64/vst" + DEFAULT_VST2_PATH += ":/usr/local/lib/vst" + + DEFAULT_VST2_PATH += HOME + "/.lxvst" + DEFAULT_VST2_PATH += ":/usr/lib/lxvst" ++ DEFAULT_VST2_PATH += ":/usr/lib64/lxvst" + DEFAULT_VST2_PATH += ":/usr/local/lib/lxvst" + + DEFAULT_VST3_PATH = HOME + "/.vst3" + DEFAULT_VST3_PATH += ":/usr/lib/vst3" ++ DEFAULT_VST3_PATH += ":/usr/lib64/vst3" + DEFAULT_VST3_PATH += ":/usr/local/lib/vst3" + + DEFAULT_CLAP_PATH = HOME + "/.clap" + DEFAULT_CLAP_PATH += ":/usr/lib/clap" ++ DEFAULT_CLAP_PATH += ":/usr/lib64/clap" + DEFAULT_CLAP_PATH += ":/usr/local/lib/clap" + + DEFAULT_SF2_PATH = HOME + "/.sounds/sf2" diff --git a/anda/multimedia/carla/Carla-QT5_LINK_FLAGS-bad-rpath.patch b/anda/multimedia/carla/Carla-QT5_LINK_FLAGS-bad-rpath.patch new file mode 100644 index 0000000000..d61d63236e --- /dev/null +++ b/anda/multimedia/carla/Carla-QT5_LINK_FLAGS-bad-rpath.patch @@ -0,0 +1,31 @@ +--- a/source/Makefile.deps.mk ++++ b/source/Makefile.deps.mk +@@ -276,7 +276,7 @@ ifeq ($(HAVE_QT5),true) + QT5_HOSTBINS = $(shell $(PKG_CONFIG) --variable=host_bins Qt5Core) + QT5_PREFIX = $(shell $(PKG_CONFIG) --variable=prefix Qt5Core) + QT5_CXX_FLAGS = $(shell $(PKG_CONFIG) --cflags Qt5Core Qt5Gui Qt5Widgets) +-QT5_LINK_FLAGS = -Wl,-rpath,$(QT5_PREFIX)/lib $(shell $(PKG_CONFIG) --libs Qt5Core Qt5Gui Qt5Widgets) ++QT5_LINK_FLAGS = $(shell $(PKG_CONFIG) --libs Qt5Core Qt5Gui Qt5Widgets) + QT5_STYLES_DIR = $(shell pkg-config --variable=libdir Qt5Core)/qt5/plugins/styles + else ifeq ($(HAVE_QT5PKG),true) + QT5_HOSTBINS = $(shell $(PKG_CONFIG) --variable=prefix Qt5OpenGLExtensions)/bin +@@ -296,7 +296,7 @@ ifeq ($(HAVE_QT6),true) + QT6_HOSTBINS = $(shell $(PKG_CONFIG) --variable=libexecdir Qt6Core) + QT6_PREFIX = $(shell $(PKG_CONFIG) --variable=prefix Qt6Core) + QT6_CXX_FLAGS = $(shell $(PKG_CONFIG) --cflags Qt6Core Qt6Gui Qt6Widgets) -std=gnu++17 +-QT6_LINK_FLAGS = -Wl,-rpath,$(QT6_PREFIX)/lib $(shell $(PKG_CONFIG) --libs Qt6Core Qt6Gui Qt6Widgets) ++QT6_LINK_FLAGS = $(shell $(PKG_CONFIG) --libs Qt6Core Qt6Gui Qt6Widgets) + QT6_STYLES_DIR = $(shell pkg-config --variable=libdir Qt6Core)/qt6/plugins/styles + else ifeq ($(HAVE_QT6BREW),true) + QT6_HOSTBINS = /opt/homebrew/opt/qt6/share/qt/libexec +--- a/source/frontend/Makefile ++++ b/source/frontend/Makefile +@@ -44,7 +44,7 @@ ifeq ($(MACOS),true) + QT_LINK_FLAGS += -install_name @rpath/libcarla_frontend.dylib + # FIXME this does not work: -Wl,-rpath,@loader_path + else +-QT_LINK_FLAGS += -Wl,-rpath,'$${ORIGIN}' ++#QT_LINK_FLAGS += -Wl,-rpath,'$${ORIGIN}' + endif + + # --------------------------------------------------------------------------------------------------------------------- diff --git a/anda/multimedia/carla/Carla-nightly.spec b/anda/multimedia/carla/Carla-nightly.spec new file mode 100644 index 0000000000..b3b107be00 --- /dev/null +++ b/anda/multimedia/carla/Carla-nightly.spec @@ -0,0 +1,458 @@ +%global pname carla +%global ver v2.5.9 +%global commit 17000e7fe99459b25a50094a8b00bdfa12f2bfbc +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20241205 + +Name: Carla-nightly +Version: %ver^%commit_date.git~%shortcommit +Release: 1%?dist +Summary: Audio plugin host + +# The entire source code is GPLv2+ except +# - BSD +# source/modules/lilv/lilv-0.24.0/waf +# source/modules/lilv/serd-0.24.0/waf +# source/modules/lilv/sord-0.16.0/waf +# source/modules/lilv/sratom-0.6.0/waf +# source/modules/audio_decoder/ffcompat.h +# source/modules/rtaudio/include/soundcard.h +# - Boost +# source/modules/hylia/link/asio/* +# - ISC +# source/jackbridge/* +# source/modules/dgl/* +# source/modules/distrho/* +# source/modules/lilv/* +# source/modules/water/buffers/AudioSampleBuffer.h +# source/modules/water/containers +# source/modules/water/files/* +# source/modules/water/maths/* +# source/modules/water/memory/* +# source/modules/water/midi/* +# source/modules/water/misc/* +# source/modules/water/streams/OutputStream.h +# source/modules/water/synthesisers/* +# source/modules/water/text/* +# source/modules/water/threads/* +# source/modules/water/xml/* +# source/utils/CarlaJuceUtils.hpp +# - MIT/Expat +# source/modules/rtaudio/RtAudio.cpp +# source/modules/rtaudio/RtAudio.h +# source/modules/rtmidi/RtMidi.cpp +# source/modules/rtmidi/RtMidi.h +# source/modules/sfzero/LICENSE +# - zlib +# source/modules/dgl/src/nanovg/LICENSE.txt +# source/modules/dgl/src/nanovg/fontstash.h +# source/modules/dgl/src/nanovg/nanovg.c +# source/modules/dgl/src/nanovg/nanovg.h +# source/modules/dgl/src/nanovg/nanovg_gl.h +# source/modules/dgl/src/nanovg/nanovg_gl_utils.h + +Epoch: 1 +License: GPL-2.0-or-later AND BSD-2-Clause AND BSD-3-Clause AND BSL-1.0 AND ISC AND MIT AND Zlib +URL: https://github.com/falkTX/Carla +Source0: https://github.com/falkTX/Carla/archive/%commit.tar.gz +# https://github.com/falkTX/Carla/issues/1444 +Patch0: Carla-2.5-libdir.patch +Patch1: Carla-single-libs-path.patch +# https://github.com/falkTX/Carla/pull/1933 +# Support pyliblo3 as well as liblo (to work on F41+) +Patch2: 0001-carla_host_control-import-from-pyliblo3-if-available.patch +Patch3: Carla-QT5_LINK_FLAGS-bad-rpath.patch +Packager: madonuko +Provides: Carla = %epoch:%version-%release +Conflicts: Carla + +BuildRequires: gcc gcc-c++ +BuildRequires: pkgconfig(alsa) +BuildRequires: pkgconfig(libpulse) +BuildRequires: pkgconfig(jack) +BuildRequires: pkgconfig(sndfile) +BuildRequires: pkgconfig(gtk+-2.0) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(fluidsynth) +BuildRequires: pkgconfig(fftw3) +BuildRequires: pkgconfig(mxml) +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(Qt5Core) +BuildRequires: python3-qt5-base +BuildRequires: python3-magic +BuildRequires: python3-rdflib +BuildRequires: pkgconfig(liblo) +BuildRequires: pkgconfig(zlib) +Buildrequires: pkgconfig(libmagic) +BuildRequires: (ffmpeg-free-devel or ffmpeg-devel) +BuildRequires: desktop-file-utils +BuildRequires: make +BuildRequires: /usr/bin/appstream-util +BuildRequires: /usr/bin/desktop-file-validate +Requires: python3-qt5 +Requires: python-pyliblo3 +Requires: hicolor-icon-theme +Requires: shared-mime-info +Requires: a2jmidid + + +# Dont provide or require internal libs. Using new rpm builtin filtering, +# see https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering#Private_Libraries +%global _privatelibs libjack[.]so.* +%global __provides_exclude ^(%{_privatelibs})$ +%global __requires_exclude ^(%{_privatelibs})$ + + +%description +Carla is a fully-featured audio plugin host, with support for many audio drivers +and plugin formats. +It's open source and licensed under the GNU General Public License, version 2 or +later. +Features + + LADSPA, DSSI, LV2 and VST plugin formats + SF2/3 and SFZ sound banks + Internal audio and midi file player + Automation of plugin parameters via MIDI CC + Remote control over OSC + Rack and Patchbay processing modes, plus Single and Multi-Client if using + JACK + Native audio drivers (ALSA, DirectSound, CoreAudio, etc) and JACK + +In experimental phase / work in progress: + + Export any Carla loadable plugin or sound bank as an LV2 plugin + Plugin bridge support (such as running 32bit plugins on a 64bit Carla, or + Windows plugins on Linux) + Run JACK applications as audio plugins + Transport controls, sync with JACK Transport or Ableton Link + +Carla is also available as an LV2 plugin for MacOS and Linux, and VST plugin for +Linux. + +%package devel +Summary: Header files to access Carla's API +Requires: Carla-nightly%{?_isa} = %{epoch}:%{version}-%{release} +Provides: Carla-devel = %epoch:%version-%release + +%description devel +This package contains header files needed when writing software using +Carla's several APIs. + +%package vst +Summary: CarlaRack and CarlaPatchbay VST plugins +Requires: Carla-nightly%{?_isa} = %{epoch}:%{version}-%{release} +Provides: Carla-vst = %epoch:%version-%release + +%description vst +This package contains Carla VST plugins, including CarlaPatchbayFX, +CarlaPatchbay, CarlaRackFX, and CarlaRack. + +%package -n lv2-%{pname}-nightly +Summary: LV2 plugin +Requires: Carla-nightly%{?_isa} = %{epoch}:%{version}-%{release} +Provides: lv2-%{pname} = %epoch:%version-%release + +%description -n lv2-%{pname}-nightly +This package contains the Carla LV2 plugin. + +%prep +#%%autosetup -p0 -n %Carla-%%{version} +%setup -qn Carla-%{commit} +%patch 0 -p1 +%patch 1 -p0 +%patch 2 -p1 +%patch 3 -p1 + +# remove windows stuff +rm -rf data/{macos,windows} + +# E: wrong-script-interpreter /usr/lib64/python3/dist-packages/carla_backend.py /usr/bin/env python3 +find . -type f \( -name "*.py" \) -exec sed -i "s|#!/usr/bin/env python3|#!%{__python3}|g" {} \; +sed -i "s|#!/usr/bin/env python3|#!%{__python3}|" source/frontend/{carla,carla-control,carla-jack-multi,carla-jack-single,carla-patchbay,carla-rack} +sed -i "s|#!/usr/bin/env python|#!%{__python3}|" source/frontend/widgets/paramspinbox.py + +# fix libdir path +sed -i "s|/lib/carla|/%{_lib}/carla|" data/{carla,carla-control,carla-database,carla-jack-multi,carla-jack-single,carla-patchbay,carla-rack,carla-settings} + +# Fix metainfo install dir +sed -i -e 's|$(DESTDIR)$(PREFIX)/share/appdata/studio.kx.carla.appdata.xml|$(DESTDIR)$(PREFIX)/share/metainfo/studio.kx.carla.appdata.xml|g' Makefile +sed -i -e 's|$(DESTDIR)$(PREFIX)/share/appdata|$(DESTDIR)$(PREFIX)/share/metainfo|g' Makefile + +%build +%{set_build_flags} +# list build configuration, no need for optflags or -j +make features +%make_build SKIP_STRIPPING=true NOOPT=true V=1 + +%install +%make_install PREFIX=%{_prefix} LIBDIR=%{_libdir} + +# Create a vst directory +install -m 755 -d %{buildroot}/%{_libdir}/vst/ + +# E: non-executable-script /usr/share/carla/paramspinbox.py 644 /usr/bin/env python +find %{buildroot} -type f \( -name "*.py" \) -exec chmod a+x {} \; + +# E: non-executable-script /usr/share/carla/carla 644 /usr/bin/python3 +chmod a+x %{buildroot}%{_datadir}/%{pname}/{carla,carla-control,carla-jack-multi,carla-jack-single,carla-patchbay,carla-rack} + +# fix perm due rpmlint W: unstripped-binary-or-object /usr/lib64/carla/libcarla_interposer-jack-x11.so +find %{buildroot}%{_libdir} -name '*.so' -exec chmod +x '{}' ';' + +%check +desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop +appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/studio.kx.carla.appdata.xml + +%files +%doc README.md +%license doc/GPL.txt doc/LGPL.txt +%{_bindir}/%{pname} +%{_bindir}/%{pname}-control +%{_bindir}/%{pname}-database +%{_bindir}/%{pname}-jack-multi +%{_bindir}/%{pname}-jack-single +%{_bindir}/%{pname}-patchbay +%{_bindir}/%{pname}-rack +%{_bindir}/%{pname}-settings +%{_bindir}/%{pname}-single +%{_bindir}/%{pname}-jack-patchbayplugin +%{_bindir}/%{pname}-osc-gui +%{_libdir}/%{pname}/ +%{_datadir}/applications/%{pname}-control.desktop +%{_datadir}/applications/%{pname}.desktop +%{_datadir}/applications/%{pname}-jack-multi.desktop +%{_datadir}/applications/%{pname}-jack-single.desktop +%{_datadir}/applications/%{pname}-patchbay.desktop +%{_datadir}/applications/%{pname}-rack.desktop +%{_datadir}/%{pname}/ +%{_datadir}/icons/hicolor/*/apps/%{pname}*.png +%{_datadir}/icons/hicolor/*/apps/%{pname}*.svg +%{_datadir}/mime/packages/%{pname}.xml +%{_datadir}/metainfo/studio.kx.carla.appdata.xml + +%files vst +%{_libdir}/vst/ + +%files -n lv2-%{pname}-nightly +%dir %{_libdir}/lv2 +%{_libdir}/lv2/carla.lv2/ + +%files devel +%{_includedir}/%{pname}/ +%{_libdir}/pkgconfig/%{pname}-standalone.pc +%{_libdir}/pkgconfig/%{pname}-utils.pc +%{_libdir}/pkgconfig/%{pname}-native-plugin.pc +%{_libdir}/pkgconfig/%{pname}-host-plugin.pc + +%changelog +* Wed Dec 04 2024 madonuko - 1:2.5.9^20241103.git~be2f105-1 +- Port to nightly, repackaged for Terra + +* Fri Sep 27 2024 Adam Williamson - 1:2.5.9-2 +- Backport PR #1933 to support pyliblo3 for F41+ + +* Fri Sep 27 2024 Martin Gansser - 1:2.5.9-1 +- Update to 2.5.9 +- Add RR python-pyliblo3 +- Remove Carla-0001-fix-prototype.patch + +* Wed Aug 07 2024 Martin Gansser - 1:2.5.8-4 +- Add Carla-0001-fix-prototype.patch for f41 + +* Wed Jul 17 2024 Fedora Release Engineering - 1:2.5.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 1:2.5.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Martin Gansser - 1:2.5.8-1 +- Update to 2.5.8 + +* Fri Jan 19 2024 Fedora Release Engineering - 1:2.5.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jan 18 2024 Fedora Release Engineering - 1:2.5.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Sep 30 2023 Martin Gansser - 1:2.5.7-1 +- Update to 2.5.7 + +* Sun Aug 06 2023 Martin Gansser - 1:2.5.6-1 +- Update to 2.5.6 + +* Wed Jul 19 2023 Fedora Release Engineering - 1:2.5.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon Jun 05 2023 Martin Gansser - 1:2.5.5-1 +- Update to 2.5.5 + +* Sun Mar 12 2023 Martin Gansser - 1:2.5.4-1 +- Update to 2.5.4 + +* Wed Jan 18 2023 Fedora Release Engineering - 1:2.5.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sun Jan 15 2023 Martin Gansser - 1:2.5.3-1 +- Update to 2.5.3 + +* Sat Oct 15 2022 Martin Gansser - 1:2.5.2-1 +- Update to 2.5.2 + +* Tue Oct 04 2022 Martin Gansser - 1:2.5.1-1 +- Update to 2.5.1 + +* Wed Sep 28 2022 Martin Gansser - 1:2.5.0-1 +- Update to 2.5.0 + +* Wed Jul 20 2022 Fedora Release Engineering - 1:2.4.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jul 16 2022 Martin Gansser - 1:2.4.4-1 +- Update to 2.4.4 +- Add RR a2jmidid to allow automatically midi input from system (BZ#2101508) + +* Sat Apr 16 2022 Martin Gansser - 1:2.4.3-1 +- Update to 2.4.3 + +* Sat Mar 19 2022 Martin Gansser - 1:2.4.2-2 +- Add Carla-refresh-plugin-crash.patch + +* Sun Feb 20 2022 Martin Gansser - 1:2.4.2-1 +- Update to 2.4.2 +- Add Carla-single-libs-path.patch + +* Sat Jan 29 2022 Martin Gansser - 1:2.4.1-3 +- Add Carla-expression-error.patch + +* Wed Jan 19 2022 Fedora Release Engineering - 1:2.4.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sat Oct 16 2021 Martin Gansser - 1:2.4.1-1 +- Update to 2.4.1 + +* Fri Aug 20 2021 Martin Gansser - 1:2.4.0-1 +- Update to 2.4.0 + +* Mon Aug 09 2021 Martin Gansser - 1:2.3.2-1 +- Update to 2.3.2 + +* Wed Jul 21 2021 Fedora Release Engineering - 1:2.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sat Jul 17 2021 Martin Gansser - 1:2.3.1-1 +- Update to 2.3.1-1 + +* Wed Jul 14 2021 Scott Talbert - 1:2.3.0-5 +- Replace python3-qt5-devel BD with python3-qt5-base (for pyuic5) + +* Wed Jun 16 2021 Martin Gansser - 1:2.3.0-4 +- Rebuilt for fluidsynth-2.2.1 + +* Tue Jun 15 2021 Martin Gansser - 1:2.3.0-3 +- Add Carla-libdir.patch + +* Wed May 26 2021 Jan Beran - 1:2.3.0-2 +- Add carla.appdata.xml file + +* Thu Apr 15 2021 Martin Gansser - 1:2.3.0-1 +- Update to 2.3.0 + +* Thu Feb 18 2021 Neal Gompa - 1:2.2.0-4 +- Drop explicit dep on jack-audio-connection-kit + +* Mon Jan 25 2021 Fedora Release Engineering - 1:2.2.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Oct 12 2020 Jeff Law - 1:2.2.0-2 +- Add missing #includes for gcc-11 + +* Sun Sep 27 2020 Martin Gansser - 1:2.2.0-1 +- Update to 2.2.0 + +* Mon Jul 27 2020 Fedora Release Engineering - 1:2.2.0-0.2.rc1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sun Jul 19 2020 Martin Gansser - 1:2.2.0-0.1.rc1 +- Update to 2.2.0-0.1.rc1 + +* Sat May 16 2020 Martin Gansser - 1:2.2-0.1.beta1 +- Update to 2.2-0.1.beta1 + +* Fri May 15 2020 Martin Gansser - 1:2.2-0.1.20200514gitf100892 +- Update to 2.2-0.1.20200514gitf100892 +- Add ExcludeArch ppc64le due PowerPC is no longer supported by JUCE + +* Tue Apr 14 2020 Martin Gansser - 1:2.1-2 +- Add epoch to allow update + +* Tue Apr 14 2020 Martin Gansser - 1:2.1-1 +- Update to 2.1-1 + +* Wed Apr 08 2020 Martin Gansser - 2.1-6.rc2 +- Update to 2.1-6.rc2 + +* Mon Feb 17 2020 Orcan Ogetbil - 2.1-5.beta1.git74eef49 +- Rebuild against fluidsynth2 + +* Fri Feb 07 2020 Martin Gansser - 2.1-4.beta1.git74eef49 +- Update to 2.1-4.beta1.git74eef49 +- Add Carla-gcc10-include.patch + +* Tue Jan 28 2020 Fedora Release Engineering - 2.1-3.beta13322c9f +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Oct 30 2019 Martin Gansser - 2.1-2.beta1.git3322c9f +- Update to 2.1-2.beta1.git3322c9f +- Dropped BR non-ntk-fluid +- Dropped BR pkgconfig(ntk) + +* Wed Oct 30 2019 Martin Gansser - 2.1-1.beta1.git3322c9f +- Update to 2.1-1.beta1.git3322c9f + +* Wed Jul 24 2019 Fedora Release Engineering - 2.0.0-0.11.20190501git41f81a8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed May 15 2019 Martin Gansser - 2.0.0-0.10.20190501git41f81a8 +- Update to 2.0.0-0.10.20190501git41f81a8 + +* Thu Jan 31 2019 Fedora Release Engineering - 2.0.0-0.9.20181225git2f3a442 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sun Jan 06 2019 Martin Gansser - 2.0.0-0.8.20181225git2f3a442 +- Filtering private libs + +* Sat Jan 05 2019 Martin Gansser - 2.0.0-0.7.20181225git2f3a442 +- Add RR python3-pyliblo fixes (RHBZ#1663630) + +* Fri Jan 04 2019 Martin Gansser - 2.0.0-0.6.20181225git2f3a442 +- Add RR jack-audio-connection-kit fixes (RHBZ#1663319) and (RHBZ#1663357) + +* Tue Dec 25 2018 Martin Gansser - 2.0.0-0.5.20181225git2f3a442 +- Update to 2.0.0-0.5.20181225git2f3a442 +- Rework of Carla-bswap.patch + +* Fri Dec 21 2018 Martin Gansser - 2.0.0-0.4.20181212git51f2073 +- Add lv2-carla subpkg +- Take ownership of lv2/ +- Add BR desktop-file-utils +- Add Carla-bswap.patch +- Remove upstream optimisation options + +* Thu Dec 20 2018 Martin Gansser - 2.0.0-0.3.20181212git51f2073 +- Use correct directory in subpgk vst +- Make build verbose V=1 +- Fix debug symbols extraction / stripping + +* Wed Dec 19 2018 Martin Gansser - 2.0.0-0.2.20181212git51f2073 +- Add subpkg vst +- Remove group tag +- Remove old BR qt-devel +- New git release use correct desktop files +- Use macro %%{_lib} libdir fix +- Use %%{__python3} macro +- Use %%{_datadir}/%%{pname}/ + +* Tue Dec 18 2018 Martin Gansser - 2.0.0-0.1.20181212git51f2073 +- Initial build + diff --git a/anda/multimedia/carla/Carla-single-libs-path.patch b/anda/multimedia/carla/Carla-single-libs-path.patch new file mode 100644 index 0000000000..23004d739b --- /dev/null +++ b/anda/multimedia/carla/Carla-single-libs-path.patch @@ -0,0 +1,14 @@ +--- data/carla-single 2018-09-06 09:49:37.310950156 +1000 ++++ data/carla-single 2019-09-25 16:36:23.365683884 +1000 +@@ -25,9 +25,9 @@ + # -------------------------------------------------------------------------------------------------------- + # Setup + +-INSTALL_PREFIX = "X-PREFIX-X" ++INSTALL_PREFIX = "/usr" + +-CARLA_LIBDIR = os.path.join(INSTALL_PREFIX, "lib", "carla") ++CARLA_LIBDIR = os.path.join(INSTALL_PREFIX, "lib64", "carla") + CARLA_RESDIR = os.path.join(INSTALL_PREFIX, "share", "carla", "resources") + + # -------------------------------------------------------------------------------------------------------- diff --git a/anda/multimedia/carla/anda.hcl b/anda/multimedia/carla/anda.hcl new file mode 100644 index 0000000000..fa58c8e5e9 --- /dev/null +++ b/anda/multimedia/carla/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + rpm { + spec = "Carla-nightly.spec" + } + labels { + nightly = 1 + subrepo = "extras" + } +} diff --git a/anda/multimedia/carla/update.rhai b/anda/multimedia/carla/update.rhai new file mode 100644 index 0000000000..2b3eb6cae7 --- /dev/null +++ b/anda/multimedia/carla/update.rhai @@ -0,0 +1,6 @@ +rpm.global("commit", gh_commit("falkTX/Carla")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); + rpm.global("ver", gh("falkTX/Carla")); +} diff --git a/anda/multimedia/faad2/anda.hcl b/anda/multimedia/faad2/anda.hcl new file mode 100644 index 0000000000..7af0420ab8 --- /dev/null +++ b/anda/multimedia/faad2/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "faad2.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/multimedia/faad2/faad2.spec b/anda/multimedia/faad2/faad2.spec new file mode 100644 index 0000000000..d2ced90136 --- /dev/null +++ b/anda/multimedia/faad2/faad2.spec @@ -0,0 +1,322 @@ +Summary: Library and frontend for decoding MPEG2/4 AAC +Name: faad2 +Epoch: 1 +Version: 2.11.1 +Release: 3%{?dist} +License: GPLv2+ +URL: http://www.audiocoding.com/faad2.html +Source: https://github.com/knik0/faad2/archive/%{version}/%{name}-%{version}.tar.gz + + +BuildRequires: gcc-c++ +BuildRequires: cmake +BuildRequires: libsysfs-devel + +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} +Obsoletes: %{name}-xmms < %{version}-%{release} + +%description +FAAD 2 is a LC, MAIN and LTP profile, MPEG2 and MPEG-4 AAC decoder, completely +written from scratch. + +%package libs +Summary: Shared libraries of the FAAD 2 AAC decoder + +%description libs +FAAD 2 is a LC, MAIN and LTP profile, MPEG2 and MPEG-4 AAC decoder, completely +written from scratch. + +This package contains libfaad. + +%package devel +Summary: Development libraries of the FAAD 2 AAC decoder +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} + +%description devel +FAAD 2 is a LC, MAIN and LTP profile, MPEG2 and MPEG-4 AAC decoder, completely +written from scratch. + +This package contains development files and documentation for libfaad. + +%prep +%autosetup -p1 + +%build +%cmake + +%cmake_build + +%install +%cmake_install +install -m 0755 -d %{buildroot}%{_mandir}/man3 +install -D -m 644 docs/libfaad.3 -t %{buildroot}%{_mandir}/man3/ + +%ldconfig_scriptlets libs + + +%files +%doc AUTHORS ChangeLog README* +%license COPYING +%{_bindir}/faad +%{_mandir}/man1/faad.1* + +%files libs +%{_libdir}/libfaad*.so.* +%{_mandir}/man3/libfaad.3* + +%files devel +%{_includedir}/faad.h +%{_includedir}/neaacdec.h +%{_libdir}/pkgconfig/faad2.pc +%{_libdir}/libfaad*.so + +%changelog +* Thu Aug 01 2024 RPM Fusion Release Engineering - 1:2.11.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Feb 03 2024 RPM Fusion Release Engineering - 1:2.11.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Nov 16 2023 Leigh Scott - 1:2.11.1-1 +- Update to 2.11.1 + +* Tue Nov 07 2023 Leigh Scott - 1:2.11.0-1 +- Update to 2.11.0 + +* Wed Aug 02 2023 RPM Fusion Release Engineering - 1:2.10.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Oct 21 2022 Leigh Scott - 1:2.10.1-1 +- Update to 2.10.1 + +* Sun Aug 07 2022 RPM Fusion Release Engineering - 1:2.10.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg + 5.1 + +* Wed Feb 09 2022 RPM Fusion Release Engineering - 1:2.10.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Aug 02 2021 RPM Fusion Release Engineering - 1:2.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri May 21 2021 Sérgio Basto - 1:2.10.0-1 +- Update to 2.10.0 + +* Wed Feb 03 2021 RPM Fusion Release Engineering - 1:2.9.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Aug 18 2020 Leigh Scott - 1:2.9.2-3 +- Rebuilt for i686 + +* Mon Aug 17 2020 RPM Fusion Release Engineering - 1:2.9.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue May 05 2020 Leigh Scott - 1:2.9.2-1 +- Update to 2.9.2 + +* Thu Mar 12 2020 Leigh Scott - 1:2.9.1-3 +- Rebuilt for i686 + +* Tue Feb 04 2020 RPM Fusion Release Engineering - 1:2.9.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 01 2020 Leigh Scott - 1:2.9.1-1 +- Update to 2.9.1 + +* Fri Aug 09 2019 RPM Fusion Release Engineering - 1:2.8.8-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Jun 07 2019 Nicolas Chauvet - 1:2.8.8-6 +- Fix overflows +- Conditionalize xmms + +* Mon Mar 04 2019 RPM Fusion Release Engineering - 1:2.8.8-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Feb 26 2019 Nicolas Chauvet - 1:2.8.8-4 +- Group Clean-up + +* Tue Jan 29 2019 Nicolas Chauvet - 1:2.8.8-3 +- Drop autoreconf + +* Thu Jul 26 2018 RPM Fusion Release Engineering - 1:2.8.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Sat Apr 14 2018 Leigh Scott - 1:2.8.8-1 +- Update to 2.8.8 + +* Wed Feb 28 2018 RPM Fusion Release Engineering - 1:2.8.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 31 2017 RPM Fusion Release Engineering - 1:2.8.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jul 28 2017 Leigh Scott - 1:2.8.1-1 +- update to 2.8.1 + +* Sun Mar 19 2017 RPM Fusion Release Engineering - 1:2.7-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Aug 23 2016 Nicolas Chauvet - 1:2.7-8 +- Bump for dist + +* Thu Aug 18 2016 Sérgio Basto - 1:2.7-7 +- Clean spec, Vascom patches series, rfbz #4200, add license tag + +* Mon Sep 01 2014 Sérgio Basto - 1:2.7-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Mon Dec 30 2013 Nicolas Chauvet - 1:2.7-5 +- Rebuilt for F-20 + +* Wed Mar 27 2013 Nicolas Chauvet - 1:2.7-4 +- Change the escaping space hack - rhbz#928110 + +* Sun Mar 03 2013 Nicolas Chauvet - 1:2.7-3 +- Mass rebuilt for Fedora 19 Features + +* Wed Jan 25 2012 Nicolas Chauvet - 1:2.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Mar 13 2009 Dominik Mierzejewski 1:2.7-1 +- update to 2.7 +- don't install internal libmp4ff +- include manpage +- fix build on x86_64 (non-PIC objects in libmp4ff.a) +- fix rpaths +- make xmms plugin depend on -libs, not the frontend +- preserve docs timestamps + +* Mon Nov 10 2008 Dominik Mierzejewski 1:2.6.1-6 +- fix CVE-2008-4201 + +* Sat Oct 18 2008 Dominik Mierzejewski 1:2.6.1-5 +- add Obsoletes: for xmms-aac to ensure smooth upgrade from Freshrpms +- add some additional docs for xmms-faad2 + +* Sun Aug 03 2008 Thorsten Leemhuis 1:2.6.1-3 +- split off libs to avoid multilib conflicts + +* Sun Nov 11 2007 Dominik Mierzejewski 1:2.6.1-2 +- bring back the XMMS plugin +- move EOL fixup to prep +- fix URLs + +* Thu Nov 01 2007 Dominik Mierzejewski 1:2.6.1-1 +- remerge freshrpms specfile +- update to latest upstream, fixes licensing issues! + +* Thu Oct 18 2007 Dominik Mierzejewski 1:2.0-21 +- fix missing epochs in dependencies + +* Tue Oct 16 2007 Dominik Mierzejewski 1:2.0-20 +- revert from 2.5 + +* Wed Sep 26 2007 Dominik Mierzejewski 2.5-4 +- disable drm, fixes playback of many AAC streams (bug #1465) + +* Sun Sep 23 2007 Dominik Mierzejewski 2.5-3 +- remove redundant BRs +- don't disable backward compatibility (breaks ffmpeg) +- silence tar in setup +- use disttag +- fix source file permissions and other rpmlint warnings + +* Sat Sep 15 2007 Thorsten Leemhuis 2.5-2 +- import faad2 from freshrpms as discussed on on repomerge-list + +* Fri Oct 06 2006 Thorsten Leemhuis 2.0-19 +- rebuilt for unwind info generation, broken in gcc-4.1.1-21 + +* Tue Sep 26 2006 Ville Skyttä - 2.0-18.20050131 +- Rebuild. + +* Sat Jun 17 2006 Ville Skyttä - 2.0-17.20050131 +- Let soname based autogenerated deps take care of xmms-libs (#1018). +- Revert x86_64 patch to the correct one again (#1017). + +* Thu Jun 15 2006 Noa Resare - 2.0-16.20050131 +- reverted to obviously broken x86_64 patch to preserve binary compatibility + and prevent slow motion bug (#1017) +- fixed xmms-libs regression (#1018) + +* Wed May 24 2006 Noa Resare - 2.0-15.20050131 +- added patch to fix apple trailer playback problem + +* Tue May 23 2006 Noa Resare - 2.0-14.20050131 +- reverted to older cvs to avoid a GPL violating extra redistribution + requirement in README +- changed the bogus uint8_t to correct uin32_t in the x86_64 patch + +* Sun May 21 2006 Ville Skyttä - 2.0-13.20060505 +- Avoid aclocal >= 1.8 warnings. + +* Sun May 21 2006 Noa Resare - 2.0-12.20060505 +- re-introduce the x86_64 patch to restore binary compatibility + +* Sat May 20 2006 Noa Resare - 2.0-10.20060505 +- patch the sources to be binary compatible with old faad2 +- remove library major version bump +- add symbol versioning script for new symbols + +* Fri May 05 2006 Noa Resare - 2.0-9.20060505 +- upgrade to cvs version +- mp4v2 is no longer included (now a separate package) +- bump libary major version +- drop static library +- remove mp4ff headers from -devel + +* Mon Mar 13 2006 Thorsten Leemhuis - 2.0-8 +- Drop Epoch completely + +* Thu Mar 09 2006 Andreas Bierfert +- switch to new release field + +* Tue Feb 28 2006 Andreas Bierfert +- add dist + +* Tue Jan 17 2006 Adrian Reber - 2.0-0.lvn.7 +- Removed change of ownership to root:root during %%install +- Droped Epoch + +* Sat Oct 01 2005 Thorsten Leemhuis - 0:2.0-0.lvn.5 +- Included some hand install lines because make install did not place some required header files + +* Wed Apr 27 2005 Dams - 0:2.0-0.lvn.4 +- Fixed gcc4 build + +* Fri Nov 12 2004 Dams 0:2.0-0.lvn.3 +- Fixing gcc34 build + +* Wed Oct 13 2004 Ville Skyttä - 0:2.0-0.lvn.2 +- libsndfile is no longer required since 2.0rc1. + +* Wed Mar 10 2004 Dams 0:2.0-0.lvn.1 +- Updated to 2.0 final release +- Added missing defattr +- Added xmms-aac provides to xmms-{name} +- Fixed makefile (patch) + +* Sun Sep 28 2003 Dams 0:2.0-0.fdr.0.1.rc1 +- Updated to 2.0 rc1 +- Added xmms-faad2 subpackage + +* Sun Sep 28 2003 Dams 0:1.1-0.fdr.4 +- Added missing scriplets +- buildroot -> RPM_BUILD_ROOT + +* Tue Apr 15 2003 Dams 0:1.1-0.fdr.3 +- turned bootstrap into ./bootstrap to prevent build to fail with + people who dont have "." in their PATH. + +* Sat Apr 12 2003 Dams 0:1.1-0.fdr.2 +- Typo in devel Requires. + +* Sat Apr 12 2003 Dams +- Initial build. diff --git a/anda/multimedia/faad2/update.rhai b/anda/multimedia/faad2/update.rhai new file mode 100644 index 0000000000..86ceb8dbfd --- /dev/null +++ b/anda/multimedia/faad2/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("knik0/faad2")); diff --git a/anda/multimedia/ffmpeg/VERSION_tesseract.txt b/anda/multimedia/ffmpeg/VERSION_tesseract.txt new file mode 100644 index 0000000000..c7ba1e87f7 --- /dev/null +++ b/anda/multimedia/ffmpeg/VERSION_tesseract.txt @@ -0,0 +1 @@ +5.5.0 \ No newline at end of file diff --git a/anda/multimedia/ffmpeg/VERSION_x265.txt b/anda/multimedia/ffmpeg/VERSION_x265.txt new file mode 100644 index 0000000000..8a36cd142b --- /dev/null +++ b/anda/multimedia/ffmpeg/VERSION_x265.txt @@ -0,0 +1 @@ +4.1 \ No newline at end of file diff --git a/anda/multimedia/ffmpeg/anda.hcl b/anda/multimedia/ffmpeg/anda.hcl new file mode 100644 index 0000000000..9dd00c587b --- /dev/null +++ b/anda/multimedia/ffmpeg/anda.hcl @@ -0,0 +1,10 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "ffmpeg.spec" + } + labels { + updbranch = 1 + mock = 1 + } +} diff --git a/anda/multimedia/ffmpeg/ffmpeg.spec b/anda/multimedia/ffmpeg/ffmpeg.spec new file mode 100644 index 0000000000..a9a82f4b2a --- /dev/null +++ b/anda/multimedia/ffmpeg/ffmpeg.spec @@ -0,0 +1,1932 @@ +# TODO: add make test to %%check section + +#global branch oldabi- +#global date 20230221 +#global commit 691d01989936d4b0681aa226aea8a19f06c04cea +#global rel %(c=%{commit}; echo ${c:0:7}) + +%global terrasrc_commit 60a820cdf3d0048cbffc8a83483cec768e70f909 + +%if 0%{?fedora} >= 37 || 0%{?rhel} >= 9 +%bcond_without libavcodec_freeworld +%else +%bcond_with libavcodec_freeworld +%endif + +%undefine _package_note_file + +%ifarch %{ix86} %{arm} +# Fails due to asm issue +%global _lto_cflags %{nil} +%endif + +# Cuda and others are only available on some arches +%global cuda_arches x86_64 + +# Disable because of gcc issue +%global _without_lensfun 1 +# Disable due to undefined symbols in libavformat +#global _with_dvddemuxer 1 +%ifnarch i686 +%global _with_bs2b 1 +%global _with_codec2 1 +%global _with_chromaprint 1 +%global _with_ilbc 1 +%global _with_openh264 1 +%if 0%{?fedora} +%global _with_placebo 1 +%endif +%global _with_rav1e 1 +%global _with_smb 1 +%global _with_snappy 1 +%global _with_svtav1 1 +%global _with_tesseract 1 +%global _with_twolame 1 +%global _with_wavpack 1 +%global _with_webp 1 +%global _with_zmq 1 +%else +%global _without_libklvanc 1 +%global _without_libaribb24 1 +%global _without_libaribcaption 1 +%global _without_rubberband 1 +%global _without_vulkan 1 +%endif +%ifarch x86_64 +%global _with_vpl 1 +%global _with_vapoursynth 1 +%global _with_vmaf 1 +%endif + +# flavor nonfree +%if 0%{?_with_cuda:1} +%global _with_cuvid 1 +%global _with_libnpp 1 +%endif + +# Disable nvenc when not relevant +%ifnarch %{cuda_arches} aarch64 +%global _without_nvenc 1 +%endif + +# extras flags +%if 0%{!?_cuda_version:1} +%global _cuda_version 12.6 +%endif +%global _cuda_version_rpm %(echo %{_cuda_version} | sed -e 's/\\./-/') +%global _cuda_bindir %{_cuda_prefix}/bin +%if 0%{?_with_cuda:1} +%global cuda_cflags $(pkg-config --cflags cuda-%{_cuda_version}) +%global cuda_ldflags $(pkg-config --libs cuda-%{_cuda_version}) +%endif + +%if 0%{?_with_libnpp:1} +%global libnpp_cflags $(pkg-config --cflags nppi-%{_cuda_version} nppc-%{_cuda_version}) +%global libnpp_ldlags $(pkg-config --libs-only-L nppi-%{_cuda_version} nppc-%{_cuda_version}) +%endif + +%if 0%{?_with_rpi:1} +%global _with_omx 1 +%global _with_omx_rpi 1 +%global _with_mmal 1 +ExclusiveArch: armv7hnl +%endif + +%if 0%{?_without_gpl} +%global lesser L +%endif + +%if 0%{!?_without_amr} || 0%{?_with_gmp} || 0%{?_with_smb} || 0%{?_with_vmaf} +%global ffmpeg_license %{?lesser}GPLv3+ +%else +%global ffmpeg_license %{?lesser}GPLv2+ +%endif + +Summary: Digital VCR and streaming server +Name: ffmpeg%{?flavor} +Version: 7.1 +Release: 1%{?dist} +License: %{ffmpeg_license} +URL: https://ffmpeg.org/ +%if 0%{?date} +Source0: ffmpeg-%{?branch}%{date}.tar.bz2 +%else +Source0: https://ffmpeg.org/releases/ffmpeg-%{version}.tar.xz +Source1: https://ffmpeg.org/releases/ffmpeg-%{version}.tar.xz.asc +Source2: https://ffmpeg.org/ffmpeg-devel.asc +%endif +# We don't endorse adding this patch but fedora insists on breaking the ffmpeg ABI +#Patch0: https://raw.githubusercontent.com/terrapkg/pkg-ffmpeg/%terrasrc_commit/ffmpeg-chromium.patch +Patch1: https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/099f88b8641dfc299f3896d17d9addc5b9ae7799 +Conflicts: %{name}-free +Provides: %{name}-bin = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%{?_with_cuda:BuildRequires: cuda-minimal-build-%{_cuda_version_rpm} cuda-drivers-devel} +%{?_with_cuda:%{?!_with_cuda_nvcc:BuildRequires: clang}} +%{?_with_libnpp:BuildRequires: pkgconfig(nppc-%{_cuda_version})} +BuildRequires: alsa-lib-devel +BuildRequires: AMF-devel +BuildRequires: bzip2-devel +%{?_with_codec2:BuildRequires: codec2-devel} +%{?_with_faac:BuildRequires: faac-devel} +%{?_with_fdk_aac:BuildRequires: fdk-aac-devel} +%{?_with_flite:BuildRequires: flite-devel} +BuildRequires: fontconfig-devel +BuildRequires: freetype-devel +BuildRequires: fribidi-devel +%{!?_without_frei0r:BuildRequires: frei0r-devel} +%{?_with_gme:BuildRequires: game-music-emu-devel} +BuildRequires: gnupg2 +BuildRequires: gnutls-devel +BuildRequires: gsm-devel +BuildRequires: harfbuzz-devel +%{?_with_ilbc:BuildRequires: ilbc-devel} +BuildRequires: lame-devel >= 3.98.3 +%{!?_without_jack:BuildRequires: jack-audio-connection-kit-devel} +%{!?_without_jxl:BuildRequires: libjxl-devel} +%{!?_without_ladspa:BuildRequires: ladspa-devel} +BuildRequires: lcms2-devel +%{!?_without_aom:BuildRequires: libaom-devel} +%{!?_without_aribb24:BuildRequires: pkgconfig(aribb24) >= 1.0.3} +%{!?_without_dav1d:BuildRequires: libdav1d-devel} +%{?_with_dvddemuxer:BuildRequires: libdvdnav-devel libdvdread-devel} +%{!?_without_ass:BuildRequires: libass-devel} +%{!?_without_bluray:BuildRequires: libbluray-devel} +%{?_with_bs2b:BuildRequires: libbs2b-devel} +%{?_with_caca:BuildRequires: libcaca-devel} +%{!?_without_cdio:BuildRequires: libcdio-paranoia-devel} +%{?_with_chromaprint:BuildRequires: libchromaprint-devel} +%{!?_without_lensfun:BuildRequires: lensfun-devel} +%if 0%{?_with_ieee1394} +BuildRequires: libavc1394-devel +BuildRequires: libdc1394-devel +BuildRequires: libiec61883-devel +%endif +%{!?_without_libaribcaption:BuildRequires: pkgconfig(libaribcaption) >= 1.1.1} +BuildRequires: libdrm-devel +BuildRequires: libgcrypt-devel +%{!?_without_libklvanc:BuildRequires: libklvanc-devel} +BuildRequires: libGL-devel +BuildRequires: libmodplug-devel +BuildRequires: libmysofa-devel +%if 0%{?fedora} && 0%{?fedora} > 39 +%{?_with_openh264:BuildRequires: noopenh264-devel} +%else +%{?_with_openh264:BuildRequires: openh264-devel} +%endif +BuildRequires: libopenmpt-devel +%{?_with_placebo:BuildRequires: libplacebo-devel >= 4.192.0} +BuildRequires: librsvg2-devel +# Disable rtmp because of rfbz: 6441 & 2399 +%{?_with_rtmp:BuildRequires: librtmp-devel} +%{?_with_smb:BuildRequires: libsmbclient-devel} +BuildRequires: libssh-devel +BuildRequires: libtheora-devel +BuildRequires: libv4l-devel +%{?!_without_vaapi:BuildRequires: libva-devel >= 0.31.0} +BuildRequires: libvdpau-devel +BuildRequires: libvorbis-devel +%{?_with_vapoursynth:BuildRequires: vapoursynth-devel} +%{?!_without_vpx:BuildRequires: libvpx-devel >= 1.4.0} +%{?_with_mfx:BuildRequires: pkgconfig(libmfx) >= 1.23-1} +%ifarch %{ix86} x86_64 +BuildRequires: nasm +%endif +%{?_with_webp:BuildRequires: libwebp-devel} +%{?_with_netcdf:BuildRequires: netcdf-devel} +%{?_with_rpi:BuildRequires: raspberrypi-vc-devel} +%{!?_without_nvenc:BuildRequires: nv-codec-headers} +%{!?_without_amr:BuildRequires: opencore-amr-devel vo-amrwbenc-devel} +%{?_with_omx:BuildRequires: libomxil-bellagio-devel} +BuildRequires: libxcb-devel +BuildRequires: libxml2-devel +%{!?_without_lv2:BuildRequires: lilv-devel lv2-devel} +%{!?_without_openal:BuildRequires: openal-soft-devel} +%if 0%{!?_without_opencl:1} +BuildRequires: opencl-headers ocl-icd-devel +%{?fedora:Recommends: opencl-icd} +%endif +%{?_with_opencv:BuildRequires: opencv-devel} +BuildRequires: openjpeg2-devel +%{!?_without_opus:BuildRequires: opus-devel >= 1.1.3} +%{!?_without_pulse:BuildRequires: pulseaudio-libs-devel} +BuildRequires: perl(GD::Text) +BuildRequires: perl(Pod::Man) +BuildRequires: perl(Texinfo::Convert::HTML) +BuildRequires: qrencode-devel +%{?_with_rav1e:BuildRequires: pkgconfig(rav1e)} +%{!?_without_rubberband:BuildRequires: rubberband-devel} +%{!?_without_tools:BuildRequires: SDL2-devel} +%{?_with_snappy:BuildRequires: snappy-devel} +BuildRequires: soxr-devel +BuildRequires: speex-devel +BuildRequires: pkgconfig(srt) +%{?_with_svtav1:BuildRequires: svt-av1-devel >= 0.9.0} +%{?_with_tesseract:BuildRequires: tesseract-devel} +#BuildRequires: texi2html +BuildRequires: texinfo +%{?_with_twolame:BuildRequires: twolame-devel} +%{?_with_vmaf:BuildRequires: libvmaf-devel >= 1.5.2} +%{?_with_vpl:BuildRequires: pkgconfig(vpl) >= 2.6} +%{?_with_wavpack:BuildRequires: wavpack-devel} +%{!?_without_vidstab:BuildRequires: vid.stab-devel} +%{!?_without_vulkan:BuildRequires: pkgconfig(shaderc) pkgconfig(vulkan) >= 1.3.277} +%{!?_without_x264:BuildRequires: x264-devel >= 0.0.0-0.31} +%{!?_without_x265:BuildRequires: x265-devel} +%{!?_without_xvid:BuildRequires: xvidcore-devel} +%{!?_without_zimg:BuildRequires: zimg-devel >= 2.7.0} +BuildRequires: zlib-devel +%{?_with_zmq:BuildRequires: zeromq-devel} +%{!?_without_zvbi:BuildRequires: zvbi-devel} + +%description +FFmpeg is a complete and free Internet live audio and video +broadcasting solution for Linux/Unix. It also includes a digital +VCR. It can encode in real time in many formats including MPEG1 audio +and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash. + +%package libs +Summary: Libraries for %{name} +Conflicts: libavcodec-free +Conflicts: libavfilter-free +Conflicts: libavformat-free +Conflicts: libavutil-free +Conflicts: libpostproc-free +Conflicts: libswresample-free +Conflicts: libswscale-free +%{?_with_vmaf:Recommends: vmaf-models} +Provides: libavcodec-freeworld = %{version}-%{release} + +%description libs +FFmpeg is a complete and free Internet live audio and video +broadcasting solution for Linux/Unix. It also includes a digital +VCR. It can encode in real time in many formats including MPEG1 audio +and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash. +This package contains the libraries for %{name} + +%package -n libavdevice%{?flavor} +Summary: Special devices muxing/demuxing library +Conflicts: libavdevice-free +Requires: %{name}-libs%{_isa} = %{version}-%{release} + +%description -n libavdevice%{?flavor} +Libavdevice is a complementary library to libavf "libavformat". It provides +various "special" platform-specific muxers and demuxers, e.g. for grabbing +devices, audio capture and playback etc. + +%package devel +Summary: Development package for %{name} +Conflicts: %{name}-free-devel +Requires: %{name}-libs%{_isa} = %{version}-%{release} +Requires: libavdevice%{?flavor}%{_isa} = %{version}-%{release} +Requires: pkgconfig + +%description devel +FFmpeg is a complete and free Internet live audio and video +broadcasting solution for Linux/Unix. It also includes a digital +VCR. It can encode in real time in many formats including MPEG1 audio +and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash. +This package contains development files for %{name} + +%if %{with libavcodec_freeworld} +%package -n libavcodec-freeworld +Summary: Freeworld libavcodec to complement the distro counterparts +# Supplements doesn't work well yet - we can rely on comps for now +#Supplements: libavcodec-free >= %%{version} +Conflicts: libavcodec-free < %{version} + +%description -n libavcodec-freeworld +Freeworld libavcodec to complement the distro counterparts +%endif + + +# Don't use the %%configure macro as this is not an autotool script +%global ff_configure \ +./configure \\\ + --prefix=%{_prefix} \\\ + --bindir=%{_bindir} \\\ + --datadir=%{_datadir}/%{name} \\\ + --docdir=%{_docdir}/%{name} \\\ + --incdir=%{_includedir}/%{name} \\\ + --libdir=%{_libdir} \\\ + --mandir=%{_mandir} \\\ + --arch=%{_target_cpu} \\\ + --optflags="%{optflags}" \\\ + --extra-ldflags="%{?__global_ldflags} %{?cuda_ldflags} %{?libnpp_ldlags}" \\\ + --extra-cflags="%{?cuda_cflags} %{?libnpp_cflags} -I%{_includedir}/rav1e" \\\ + %{?flavor:--disable-manpages} \\\ + %{?progs_suffix:--progs-suffix=%{progs_suffix}} \\\ + %{?build_suffix:--build-suffix=%{build_suffix}} \\\ + %{!?_without_amr:--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3} \\\ + --enable-bzlib \\\ + %{?_with_chromaprint:--enable-chromaprint} \\\ + --enable-fontconfig \\\ + %{!?_without_frei0r:--enable-frei0r} \\\ + --enable-gcrypt \\\ + %{?_with_gmp:--enable-gmp --enable-version3} \\\ + --enable-gnutls \\\ + %{!?_without_ladspa:--enable-ladspa} \\\ + --enable-lcms2 \\\ + %{!?_without_aom:--enable-libaom} \\\ + %{!?_without_libaribb24:--enable-libaribb24} \\\ + %{!?_without_libaribcaption:--enable-libaribcaption} \\\ + %{!?_without_dav1d:--enable-libdav1d} \\\ + %{!?_without_ass:--enable-libass} \\\ + %{!?_without_bluray:--enable-libbluray} \\\ + %{?_with_bs2b:--enable-libbs2b} \\\ + %{?_with_caca:--enable-libcaca} \\\ + %{?_with_codec2:--enable-libcodec2} \\\ + %{?_with_cuda_nvcc:--enable-cuda-nvcc --enable-nonfree} \\\ + %{?_with_cuvid:--enable-cuvid --enable-nonfree} \\\ + %{!?_without_cdio:--enable-libcdio} \\\ + %{?_with_ieee1394:--enable-libdc1394 --enable-libiec61883} \\\ + --enable-libdrm \\\ + %{?_with_dvddemuxer:--enable-libdvdnav --enable-libdvdread} \\\ + %{?_with_faac:--enable-libfaac --enable-nonfree} \\\ + %{?_with_fdk_aac:--enable-libfdk-aac --enable-nonfree} \\\ + %{?_with_flite:--enable-libflite} \\\ + %{!?_without_jack:--enable-libjack} \\\ + %{!?_without_jxl:--enable-libjxl} \\\ + --enable-libfreetype \\\ + %{!?_without_fribidi:--enable-libfribidi} \\\ + %{?_with_gme:--enable-libgme} \\\ + --enable-libgsm \\\ + --enable-libharfbuzz \\\ + %{?_with_ilbc:--enable-libilbc} \\\ + %{!?_without_lensfun:--enable-liblensfun} \\\ + %{?_with_libnpp:--enable-libnpp --enable-nonfree} \\\ + --enable-libmp3lame \\\ + --enable-libmysofa \\\ + %{?_with_netcdf:--enable-netcdf} \\\ + %{?_with_mmal:--enable-mmal} \\\ + %{!?_without_nvenc:--enable-nvenc} \\\ + %{?_with_omx:--enable-omx} \\\ + %{?_with_omx_rpi:--enable-omx-rpi} \\\ + %{!?_without_openal:--enable-openal} \\\ + %{!?_without_opencl:--enable-opencl} \\\ + %{?_with_opencv:--enable-libopencv} \\\ + %{!?_without_opengl:--enable-opengl} \\\ + %{?_with_openh264:--enable-libopenh264} \\\ + --enable-libopenjpeg \\\ + --enable-libopenmpt \\\ + %{!?_without_opus:--enable-libopus} \\\ + %{!?_without_pulse:--enable-libpulse} \\\ + %{?_with_placebo:--enable-libplacebo} \\\ + --enable-librsvg \\\ + %{?_with_rav1e:--enable-librav1e} \\\ + %{?_with_rtmp:--enable-librtmp} \\\ + %{!?_without_rubberband:--enable-librubberband} \\\ + --enable-libqrencode \\\ + %{?_with_smb:--enable-libsmbclient --enable-version3} \\\ + %{?_with_snappy:--enable-libsnappy} \\\ + --enable-libsoxr \\\ + --enable-libspeex \\\ + --enable-libsrt \\\ + --enable-libssh \\\ + %{?_with_svtav1:--enable-libsvtav1} \\\ + %{?_with_tesseract:--enable-libtesseract} \\\ + --enable-libtheora \\\ + %{?_with_twolame:--enable-libtwolame} \\\ + --enable-libvorbis \\\ + --enable-libv4l2 \\\ + %{!?_without_vidstab:--enable-libvidstab} \\\ + %{?_with_vmaf:--enable-libvmaf --enable-version3} \\\ + %{?_with_vapoursynth:--enable-vapoursynth} \\\ + %{!?_without_vpx:--enable-libvpx} \\\ + %{!?_without_vulkan:--enable-vulkan --enable-libshaderc} \\\ + %{?_with_webp:--enable-libwebp} \\\ + %{!?_without_x264:--enable-libx264} \\\ + %{!?_without_x265:--enable-libx265} \\\ + %{!?_without_xvid:--enable-libxvid} \\\ + --enable-libxml2 \\\ + %{!?_without_zimg:--enable-libzimg} \\\ + %{?_with_zmq:--enable-libzmq} \\\ + %{!?_without_zvbi:--enable-libzvbi} \\\ + %{!?_without_lv2:--enable-lv2} \\\ + --enable-avfilter \\\ + --enable-libmodplug \\\ + --enable-postproc \\\ + --enable-pthreads \\\ + --disable-static \\\ + --enable-shared \\\ + %{!?_without_gpl:--enable-gpl} \\\ + --disable-debug \\\ + --disable-stripping + + +%prep +%if 0%{?date} +%autosetup -p1 -n ffmpeg-%{?branch}%{date} +echo "git-snapshot-%{?branch}%{date}-rpmfusion" > VERSION +%else +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%autosetup -p1 -n ffmpeg-%{version} +%endif +# fix -O3 -g in host_cflags +sed -i "s|check_host_cflags -O3|check_host_cflags %{optflags}|" configure +mkdir -p _doc/examples +cp -pr doc/examples/{*.c,Makefile,README} _doc/examples/ + +%build +%{?_with_cuda:export PATH=${PATH}:%{_cuda_bindir}} +%{ff_configure}\ + --shlibdir=%{_libdir} \ +%if 0%{?_without_tools:1} + --disable-doc \ + --disable-ffmpeg --disable-ffplay --disable-ffprobe \ +%endif +%ifnarch %{ix86} + --enable-lto \ +%endif +%ifarch %{ix86} + --cpu=%{_target_cpu} \ +%endif + %{?_with_mfx:--enable-libmfx} \ + %{?_with_vpl:--enable-libvpl} \ +%ifarch %{ix86} x86_64 %{power64} + --enable-runtime-cpudetect \ +%endif +%ifarch %{power64} +%ifarch ppc64 + --cpu=g5 \ +%endif +%ifarch ppc64p7 + --cpu=power7 \ +%endif +%ifarch ppc64le + --cpu=power8 \ +%endif + --enable-pic \ +%endif +%ifarch %{arm} + --disable-runtime-cpudetect --arch=arm \ +%ifarch armv6hl + --cpu=armv6 \ +%endif +%ifarch armv7hl armv7hnl + --cpu=armv7-a \ + --enable-vfpv3 \ + --enable-thumb \ +%endif +%ifarch armv7hl + --disable-neon \ +%endif +%ifarch armv7hnl + --enable-neon \ +%endif +%endif + || cat ffbuild/config.log + +%make_build V=1 +make documentation V=1 +make alltools V=1 + +%install +%make_install V=1 +%if 0%{!?flavor:1} +rm -r %{buildroot}%{_datadir}/%{name}/examples +%endif +%if 0%{!?progs_suffix:1} +install -pm755 tools/qt-faststart %{buildroot}%{_bindir} +%endif + +%if %{with libavcodec_freeworld} +# Install the libavcodec freeworld counterpart +mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ +mkdir -p %{buildroot}%{_libdir}/%{name} +echo -e "%{_libdir}/%{name}\n" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_lib}.conf +cp -pa %{buildroot}%{_libdir}/libavcodec.so.* \ + %{buildroot}%{_libdir}/%{name} +%endif + +%ldconfig_scriptlets libs +%ldconfig_scriptlets -n libavdevice%{?flavor} + +%if 0%{!?_without_tools:1} +%files +%{_bindir}/ffmpeg%{?progs_suffix} +%{_bindir}/ffplay%{?progs_suffix} +%{_bindir}/ffprobe%{?progs_suffix} +%{!?progs_suffix:%{_bindir}/qt-faststart} +%{!?flavor: +%{_mandir}/man1/ffmpeg*.1* +%{_mandir}/man1/ffplay*.1* +%{_mandir}/man1/ffprobe*.1* +} +%{_datadir}/%{name} +%endif + +%files libs +%doc CREDITS README.md +%license COPYING.* +%{_libdir}/lib*.so.* +%exclude %{_libdir}/libavdevice%{?build_suffix}.so.* +%{!?flavor:%{_mandir}/man3/lib*.3.* +%exclude %{_mandir}/man3/libavdevice.3* +} + +%files -n libavdevice%{?flavor} +%{_libdir}/libavdevice%{?build_suffix}.so.* +%{!?flavor:%{_mandir}/man3/libavdevice.3*} + +%files devel +%doc MAINTAINERS doc/APIchanges doc/*.txt +%doc _doc/examples +%doc %{_docdir}/%{name}/*.{css,html} +%{_includedir}/%{name} +%{_libdir}/pkgconfig/lib*.pc +%{_libdir}/lib*.so + +%if %{with libavcodec_freeworld} +%files -n libavcodec-freeworld +%{_sysconfdir}/ld.so.conf.d/%{name}-%{_lib}.conf +%{_libdir}/%{name}/libavcodec.so.* +%endif + + +%changelog +* Wed Oct 09 2024 Leigh Scott - 7.0.2-4 +- Disable DVD demuxer due to undefined symbols in libavformat + +* Mon Oct 07 2024 Nicolas Chauvet - 7.0.2-3 +- Sync with fedora deps: + Enable Kernel Labs VANC processing and ARIB text/caption decoding + +* Fri Sep 20 2024 Leigh Scott - 7.0.2-2 +- Rebuild + +* Sun Aug 04 2024 Leigh Scott - 7.0.2-1 +- Update to 7.0.2 + +* Thu Aug 01 2024 RPM Fusion Release Engineering - 7.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri May 31 2024 Robert-André Mauchin - 7.0.1-2 +- Rebuild for svt-av1 2.1.0 + +* Sun May 26 2024 Leigh Scott - 7.0.1-1 +- Update to 7.0.1 + +* Fri Apr 19 2024 Leigh Scott - 7.0-1 +- Update to 7.0 + +* Sat Apr 06 2024 Leigh Scott - 6.1.1-8 +- Rebuild for new x265 version + +* Fri Mar 22 2024 Sérgio Basto - 6.1.1-7 +- Rebuild for jpegxl (libjxl) 0.10.2 + +* Tue Mar 12 2024 Dominik Mierzejewski - 6.1.1-6 +- Enable drawtext filter (requires libharfbuzz, rfbz#6889) + +* Thu Feb 01 2024 Leigh Scott - 6.1.1-5 +- rebuilt + +* Thu Feb 01 2024 Leigh Scott - 6.1.1-4 +- Switch to noopenh264-devel for f39+ + +* Tue Jan 16 2024 Nicolas Chauvet - 6.1.1-3 +- Rebuilt for libavcodec-freeworld + +* Sun Jan 14 2024 Leigh Scott - 6.1.1-2 +- rebuilt + +* Mon Jan 01 2024 Leigh Scott - 6.1.1-1 +- Update to 6.1.1 release + +* Wed Nov 15 2023 Nicolas Chauvet - 6.1-3 +- Bump + +* Wed Nov 15 2023 Leigh Scott - 6.1-2 +- Add patch to fix fedora ffmpeg brokenABI change + +* Sat Nov 11 2023 Leigh Scott - 6.1-1 +- Update to 6.1 release + +* Fri Nov 10 2023 Leigh Scott - 6.0.1-1 +- Update to 6.0.1 release + +* Sun Oct 08 2023 Dominik Mierzejewski - 6.0-18 +- Backport upstream patch to fix segfault when passing non-existent filter + option (rfbz#6773) + +* Fri Sep 29 2023 Nicolas Chauvet - 6.0-17 +- Rebuild for libplacebo +- Backport upstream patch to fix assembly with binutils 2.41 - rathann + +* Fri Jul 28 2023 Nicolas Chauvet - 6.0-16 +- rebuilt + +* Sun Jul 16 2023 Leigh Scott - 6.0-15 +- rebuilt + +* Fri Jun 23 2023 Leigh Scott - 6.0-14 +- rebuilt + +* Fri Jun 23 2023 Leigh Scott - 6.0-13 +- rebuilt + +* Wed Jun 14 2023 Leigh Scott - 6.0-12 +- rebuilt + +* Sun May 14 2023 Leigh Scott - 6.0-11 +- fedora cisco repo isn't multiarch + +* Fri May 12 2023 Leigh Scott - 6.0-10 +- Enable openh264 for fedora + +* Mon Apr 24 2023 Nicolas Chauvet - 6.0-9 +- Add ffmpeg-bin for deps + +* Fri Apr 07 2023 Leigh Scott - 6.0-8 +- rebuilt + +* Fri Mar 24 2023 Leigh Scott - 6.0-7 +- rebuilt + +* Wed Mar 22 2023 Nicolas Chauvet - 6.0-6 +- Rebuilt + +* Sat Mar 18 2023 Todd Zullinger - 6.0-5 +- verify upstream source signature + +* Sun Mar 12 2023 Leigh Scott - 6.0-4 +- Rebuild against new nvcodec-headers + +* Sun Mar 12 2023 Leigh Scott - 6.0-3 +- Enable chromaprint +- Enable svt-av1 on all arches + +* Tue Feb 28 2023 Leigh Scott - 6.0-2 +- Disable chromaprint + +* Tue Feb 21 2023 Leigh Scott - 6.0-1 +- Update to 6.0 release + +* Sun Jan 08 2023 Leigh Scott - 5.1.2-9 +- Enable libplacebo (rfbz#6549) + +* Fri Dec 23 2022 Nicolas Chauvet - 5.1.2-8 +- rebuild + +* Mon Nov 21 2022 Nicolas Chauvet - 5.1.2-6 +- Enable libjxl +- Enable svt-av1 on el9 x86_64 + +* Thu Nov 17 2022 Nicolas Chauvet - 5.1.2-5 +- Rework el9 cases + +* Mon Oct 17 2022 Leigh Scott - 5.1.2-3 +- Disable rtmp because of rfbz: 6441 & 2399 + +* Wed Sep 28 2022 Nicolas Chauvet - 5.1.2-2 +- Implement libavcodec-freeworld + +* Sun Sep 25 2022 Leigh Scott - 5.1.2-1 +- Update to 5.1.2 release + +* Mon Sep 05 2022 Leigh Scott - 5.1.1-3 +- Switch from glslang to shaderc + +* Sun Sep 04 2022 Leigh Scott - 5.1.1-2 +- move libs to a subdirectory to allow parallel installation with ffmpeg-free + +* Thu Sep 01 2022 Leigh Scott - 5.1.1-1 +- Update to 5.1.1 release + +* Sun Aug 07 2022 RPM Fusion Release Engineering - 5.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg + 5.1 + +* Fri Jul 22 2022 Leigh Scott - 5.1-1 +- Update to 5.1 release + +* Mon Jul 11 2022 Leigh Scott - 5.0.1-10 +- rebuilt + +* Thu Jun 23 2022 Robert-André Mauchin - 5.0.1-9 +- Rebuilt for new AOM, dav1d, rav1e and svt-av1 + +* Fri Jun 17 2022 Nicolas Chauvet - 5.0.1-8 +- Rebuilt + +* Sun Jun 12 2022 Sérgio Basto - 5.0.1-7 +- unbootstrap + +* Sun Jun 12 2022 Sérgio Basto - 5.0.1-6 +- Mass rebuild for x264-0.164 +- Bootstrap build without chromaprint + +* Fri May 27 2022 Leigh Scott - 5.0.1-5 +- rebuilt + +* Fri May 27 2022 Leigh Scott - 5.0.1-4 +- rebuilt + +* Fri Apr 29 2022 Leigh Scott - 5.0.1-3 +- Fix zimg + +* Tue Apr 05 2022 Leigh Scott - 5.0.1-2 +- Add conflicts + +* Tue Apr 05 2022 Leigh Scott - 5.0.1-1 +- Update to 5.0.1 release + +* Sun Mar 13 2022 Leigh Scott - 5.0-7 +- Rebuilt + +* Fri Mar 11 2022 Leigh Scott - 5.0-6 +- Enable AMF support + +* Thu Mar 03 2022 Leigh Scott - 5.0-5 +- Rebuild + +* Sat Feb 26 2022 Leigh Scott - 5.0-4 +- Drop patch for chrome + +* Fri Feb 11 2022 Leigh Scott - 5.0-3 +- Add patch for chrome + +* Fri Feb 04 2022 Leigh Scott - 5.0-2 +- rebuilt + +* Sat Jan 15 2022 Leigh Scott - 5.0-1 +- Update to 5.0 release + +* Tue Jan 04 2022 Leigh Scott - 5.0-0.1.20220104git311ea9c +- Update to 5.0-0.1.20220104git311ea9c + +* Sun Dec 19 2021 Leigh Scott - 4.5-0.3.20211108git45dc668 +- rebuilt + +* Thu Dec 16 2021 Nicolas Chauvet - 4.5-0.2.20211108git45dc668 +- Rebuilt + +* Mon Nov 08 2021 Leigh Scott - 4.5-0.1.20211108git45dc668 +- Update to 4.5-0.1.20211108git45dc668 + +* Mon Oct 25 2021 Leigh Scott - 4.4.1-1 +- Update to 4.4.1 release + +* Mon Aug 02 2021 RPM Fusion Release Engineering - 4.4-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jul 28 2021 Leigh Scott - 4.4-6 +- Enable libwebp support + +* Sat Jul 10 2021 Sérgio Basto - 4.4-5 +- Mass rebuild for x264-0.163 + +* Sun Jun 13 2021 Leigh Scott - 4.4-4 +- Rebuild for aom bump + +* Mon May 10 2021 Leigh Scott - 4.4-3 +- rebuilt + +* Wed Apr 14 2021 Leigh Scott - 4.4-2 +- Rebuild for new x265 + +* Fri Apr 09 2021 Leigh Scott - 4.4-1 +- Update to 4.4 release + +* Thu Apr 08 2021 Leigh Scott - 4.4-0.8.20210408git25e794a +- Update to 4.4-0.8.20210408git25e794a + +* Wed Mar 24 2021 Leigh Scott - 4.4-0.7.20210323git0be265e +- rebuilt + +* Tue Mar 23 2021 Leigh Scott - 4.4-0.6.20210323git0be265e +- Update to 4.4-0.6.20210323git0be265e +- Switch to release/4.4 branch + +* Fri Mar 12 2021 Leigh Scott - 4.4-0.5.20210312git5136726 +- Update to 20210312git5136726 + +* Thu Feb 18 2021 Leigh Scott - 4.4-0.4.20210218gitc2bf1dc +- Update to 20210218gitc2bf1dc + +* Wed Feb 03 2021 RPM Fusion Release Engineering - 4.4-0.3.20210125gitc7016e3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jan 25 2021 Leigh Scott - 4.4-0.2.20210125gitc7016e3 +- Update to 20210125gitc7016e3 + +* Thu Dec 31 2020 Leigh Scott - 4.4-0.1.20201231git477dd2d +- Update to 20201231git477dd2d + +* Thu Dec 24 2020 Leigh Scott - 4.3.1-15 +- Enable dash demuxer (rfbz#5876) +- Enable lv2 support (rfbz#5863) + +* Mon Dec 14 2020 Leigh Scott - 4.3.1-14 +- Actually do the dav1d rebuild + +* Mon Dec 14 2020 Robert-André Mauchin - 4.3.1-13 +- Rebuild for dav1d SONAME bump + +* Fri Nov 27 2020 Sérgio Basto - 4.3.1-12 +- Mass rebuild for x264-0.161 + +* Sat Oct 10 2020 Leigh Scott - 4.3.1-11 +- Revert last commit + +* Sat Oct 10 2020 Leigh Scott - 4.3.1-10 +- Add VP9 10/12 Bit support for VDPAU + +* Tue Aug 18 2020 Leigh Scott - 4.3.1-9 +- Disable vulkan on i686 + +* Mon Aug 17 2020 RPM Fusion Release Engineering - 4.3.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sun Aug 16 2020 Leigh Scott - 4.3.1-7 +- Disable rav1e support as rust packaging is rawhide only + +* Sun Aug 09 2020 Leigh Scott - 4.3.1-6 +- Enable LTO for x86 +- Add glslang patches and bump version for build requires +- Add upstream patches to suppress asm warnings + +* Mon Aug 03 2020 Leigh Scott - 4.3.1-5 +- Disable LTO for x86 + +* Mon Aug 03 2020 Leigh Scott - 4.3.1-4 +- Add patch to fix x86_64 LTO build issue + +* Wed Jul 15 2020 Leigh Scott - 4.3.1-3 +- Enabled libopenmpt + +* Tue Jul 14 2020 Leigh Scott - 4.3.1-2 +- Enable libmysofa + +* Sat Jul 11 2020 Leigh Scott - 4.3.1-1 +- Update to 4.3.1 release + +* Wed Jul 08 2020 Leigh Scott - 4.3-5 +- Rebuilt + +* Tue Jul 07 2020 Sérgio Basto - 4.3-4 +- Mass rebuild for x264 + +* Wed Jul 01 2020 Leigh Scott - 4.3-3 +- Rebuilt + +* Wed Jun 24 2020 Leigh Scott - 4.3-2 +- Enable vapoursynth + +* Mon Jun 15 2020 Leigh Scott - 4.3-1 +- Update to 4.3 release + +* Sat Jun 06 2020 Leigh Scott - 4.3-0.23.20200606git +- Update to 20200606git + +* Sun May 31 2020 Leigh Scott - 4.3-0.22.20200531git +- Update to 20200531git + +* Mon May 25 2020 Leigh Scott - 4.3-0.21.20200524git +- Enable lensfun + +* Sun May 24 2020 Leigh Scott - 4.3-0.20.20200524git +- Rebuild for dav1d SONAME bump + +* Sat May 23 2020 Leigh Scott - 4.3-0.19.20200523git +- Update to 20200523git + +* Sat May 16 2020 Leigh Scott - 4.3-0.18.20200516git +- Update to 20200516git + +* Fri May 08 2020 Leigh Scott - 4.3-0.17.20200508git +- Update to 20200508git + +* Fri May 01 2020 Leigh Scott - 4.3-0.16.20200501git +- Update to 20200501git + +* Thu Apr 23 2020 Leigh Scott - 4.3-0.15.20200423git +- Update to 20200423git +- Enable nvdec for aarch64 + +* Sun Apr 19 2020 Leigh Scott - 4.3-0.14.20200419git +- Update to 20200419git + +* Sun Apr 12 2020 Leigh Scott - 4.3-0.13.20200412git +- Update to 20200412git + +* Wed Apr 08 2020 Nicolas Chauvet - 4.3-0.12.20200401git +- Enable srt + +* Wed Apr 01 2020 Leigh Scott - 4.3-0.11.20200401git +- Update snapshot, fixes rfbz#5537 + +* Wed Apr 01 2020 leigh123linux - 4.3-0.10.20200401git +- Update to 20200401git + +* Sat Mar 21 2020 Leigh Scott - 4.3-0.9.20200321git +- Update to 20200321git + +* Fri Mar 13 2020 leigh123linux - 4.3-0.8.20200313git +- Update to 20200313git + +* Wed Mar 11 2020 Leigh Scott - 4.3-0.7.20200305git +- Rebuilt for i686 + +* Mon Mar 09 2020 leigh123linux - 4.3-0.6.20200305git +- Enable rav1e support + +* Thu Mar 05 2020 Leigh Scott - 4.3-0.5.20200305git +- Update to 20200305git + +* Tue Feb 25 2020 Leigh Scott - 4.3-0.4.20200225git +- Update to 20200225git + +* Sun Feb 23 2020 Leigh Scott - 4.3-0.3.20200222git +- Rebuild for x265 + +* Sun Feb 23 2020 Leigh Scott - 4.3-0.2.20200222git +- Enable vulkan support + +* Sat Feb 22 2020 Leigh Scott - 4.3-0.1.20200222git +- Update to 20200222git + +* Tue Feb 04 2020 RPM Fusion Release Engineering - 4.2.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 01 2020 Leigh Scott - 4.2.2-1 +- Update to 4.2.2 release + +* Tue Dec 17 2019 Sérgio Monteiro Basto - 4.2.1-5 +- Mass rebuild for x264 + +* Thu Nov 28 2019 Leigh Scott - 4.2.1-4 +- Rebuilt for x265 + +* Thu Oct 24 2019 Leigh Scott - 4.2.1-3 +- Rebuild for dav1d SONAME bump + +* Sat Sep 07 2019 Leigh Scott - 4.2.1-2 +- Enable libjack (rfbz #5346) + +* Sat Sep 07 2019 Leigh Scott - 4.2.1-1 +- Update to 4.2.1 release + +* Mon Aug 26 2019 Leigh Scott - 4.2-4 +- Rebuild for el8 + +* Tue Aug 20 2019 Leigh Scott - 4.2-3 +- Rebuild for dav1d and aom SONAME bump +- Drop XvMC support (rfbz #5328) + +* Fri Aug 09 2019 RPM Fusion Release Engineering - 4.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Aug 05 2019 Leigh Scott - 4.2-1 +- Update to 4.2 release +- Enable dav1d support + +* Sat Jul 27 2019 Nicolas Chauvet - 4.1.4-2 +- Add patch for set_default_priority + +* Tue Jul 09 2019 Leigh Scott - 4.1.4-1 +- Update to 4.1.4 release + +* Fri Jun 28 2019 Nicolas Chauvet - 4.1.3-3 +- Rebuilt for x265 + +* Sat Apr 06 2019 Nicolas Chauvet - 4.1.3-2 +- Backport avutil/mem: Fix invalid use of av_alloc_size - rfbz#5149 + +* Mon Apr 01 2019 Leigh Scott - 4.1.3-1 +- Update to 4.1.3 release + +* Sat Mar 23 2019 Leigh Scott - 4.1.2-1 +- Update to 4.1.2 release + +* Tue Mar 12 2019 Sérgio Basto - 4.1.1-4 +- Mass rebuild for x264 + +* Mon Mar 04 2019 RPM Fusion Release Engineering - 4.1.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Feb 28 2019 Leigh Scott - 4.1.1-2 +- Rebuild for new x265 + +* Sun Feb 10 2019 Leigh Scott - 4.1.1-1 +- Update to 4.1.1 release + +* Fri Jan 25 2019 Dominik Mierzejewski - 4.1-7 +- Enable libssh support by default (rfbz#5135) + +* Thu Jan 24 2019 Nicolas Chauvet - 4.1-6 +- Drop opencv by default + OpenCV 3.X has an overlinking issue - unsuitable for core libraries + Reported as https://github.com/opencv/opencv/issues/7001 + +* Fri Dec 21 2018 Nicolas Chauvet - 4.1-5 +- Add omx/omx_rpi + +* Sun Nov 18 2018 Leigh Scott - 4.1-4 +- Rebuild for new x265 + +* Fri Nov 09 2018 Nicolas Chauvet - 4.1-3 +- Fix for cuda enabled repo + +* Thu Nov 08 2018 Nicolas Chauvet - 4.1-2 +- Add support for rpi +- Enable libvmaf for x86_64 + +* Tue Nov 06 2018 Leigh Scott - 4.1-1 +- Update to 4.1 release + +* Sat Nov 03 2018 Leigh Scott - 4.0.3-1 +- Update to 4.0.3 release + +* Thu Oct 04 2018 Leigh Scott - 4.0.2-8 +- Add upstream commit to fix aom build failure + +* Thu Oct 04 2018 Sérgio Basto - 4.0.2-7 +- Mass rebuild for x264 and/or x265 + +* Fri Sep 14 2018 Leigh Scott - 4.0.2-6 +- Change BuildRequires: aom-devel to libaom-devel + +* Tue Sep 11 2018 Robert-André Mauchin - 4.0.2-5 +- Add support for libaom (rfbz#5016) + +* Wed Sep 05 2018 Nicolas Chauvet - 4.0.2-4 +- Add without_opus +- Add disable opus and mfx for rhel +- Enable nvenc for rhel + +* Sun Jul 29 2018 Julian Sikorski - 4.0.2-3 +- Add spec fixes from rfbz #4964 + +* Thu Jul 26 2018 RPM Fusion Release Engineering - 4.0.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Jul 18 2018 Leigh Scott - 4.0.2-1 +- Update to 4.0.2 release + +* Fri Jul 06 2018 Leigh Scott - 4.0.1-2 +- enable libzvbi by default (rfbz#4956) + +* Sat Jun 16 2018 Leigh Scott - 4.0.1-1 +- Update to 4.0.1 release + +* Sat Jun 16 2018 Leigh Scott - 4.0-2 +- Rebuild for new libass version + +* Fri Apr 20 2018 Leigh Scott - 4.0-1 +- Update to 4.0 release + +* Thu Apr 19 2018 Leigh Scott - 4.0-0.1.20180419git +- Update to 20180419 (release/4.0 branch) + +* Mon Mar 05 2018 Leigh Scott - 3.5-0.6.20180305git +- Update to 20180305 +- Change build requires for nvenc + +* Wed Feb 28 2018 Leigh Scott - 3.5-0.5.20180211git +- Rebuilt for x265 + +* Tue Feb 27 2018 Nicolas Chauvet - 3.5-0.4.20180211git +- Rebuilt for x265 + +* Sun Feb 11 2018 Leigh Scott - 3.5-0.3.20180211git +- Update to 20180211git + +* Fri Jan 26 2018 Leigh Scott - 3.5-0.2.20180116git +- Rebuild for new libcdio and libvpx versions + +* Tue Jan 16 2018 Leigh Scott - 3.5-0.1.20180116git +- Update to 20180116git +- Remove ffserver parts from spec +- Add requires ffmpeg-libs to libavdevice (rfbz#4768) + +* Mon Jan 15 2018 Nicolas Chauvet - 3.4.1-5 +- Update to libva 2.0.0 + +* Sat Dec 30 2017 Sérgio Basto - 3.4.1-4 +- Mass rebuild for x264 and x265 + +* Sun Dec 17 2017 Nicolas Chauvet - 3.4.1-3 +- Add _cuda_version rpm macro + +* Mon Dec 11 2017 Nicolas Chauvet - 3.4.1-2 +- Backport patch for arm neon rfbz#4727 + +* Mon Dec 11 2017 Leigh Scott - 3.4.1-1 +- Updated to 3.4.1 + +* Tue Nov 28 2017 Dominik Mierzejewski - 3.4-6 +- enable support for vid.stab (rfbz#4713) +- rebuild against new libmfx (rhbz#1471768) + +* Wed Oct 25 2017 Dominik Mierzejewski - 3.4-5 +- drop support for building on ppc (32bit) +- explicitly support ppc64p7 and ppc64le +- set correct CPU options on armv7hl +- show config.log in case of configure failure +- enable VAAPI support on all arches, it's not x86-specific anymore + +* Wed Oct 25 2017 Leigh Scott - 3.4-4 +- Switch from yasm to nasm + +* Wed Oct 25 2017 Leigh Scott - 3.4-3 +- Add SVG rasterization and KMS screengrabber support + +* Mon Oct 16 2017 Leigh Scott - 3.4-2 +- rebuild for x265 + +* Sun Oct 15 2017 Leigh Scott - 3.4-1 +- Updated to 3.4 +- Remove build requires schroedinger-devel (wrapper was removed) + +* Thu Oct 12 2017 Dominik Mierzejewski - 3.3.4-2 +- add support for OpenJPEG v2.3 + +* Tue Sep 12 2017 Leigh Scott - 3.3.4-1 +- Updated to 3.3.4 + +* Thu Aug 31 2017 Leigh Scott - 3.3.3-4 +- Add support for LibOpenJPEG v2.2 + +* Thu Aug 31 2017 RPM Fusion Release Engineering - 3.3.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Aug 31 2017 RPM Fusion Release Engineering - 3.3.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Jul 29 2017 Leigh Scott - 3.3.3-1 +- Updated to 3.3.3 + +* Wed Jun 07 2017 Leigh Scott - 3.3.2-1 +- Updated to 3.3.2 + +* Mon May 15 2017 Leigh Scott - 3.3.1-1 +- Updated to 3.3.1 + +* Wed Apr 19 2017 Leigh Scott - 3.3-1 +- Updated to 3.3 +- Make nvenc x86 only +- Remove obsolete x11grab configure option + +* Sun Mar 19 2017 RPM Fusion Release Engineering - 3.2.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sat Feb 11 2017 Leigh Scott - 3.2.4-1 +- Updated to 3.2.4 + +* Mon Feb 06 2017 Leigh Scott - 3.2.3-1 +- Updated to 3.2.3 + +* Tue Jan 03 2017 Dominik Mierzejewski - 3.2.2-3 +- rebuild for x265 + +* Mon Jan 02 2017 Dominik Mierzejewski - 3.2.2-2 +- enable optional nonfree build with cuda, cuvid, npp and fdk-aac + (most credit for this goes to Nicolas Chauvet) +- allow disabling x11grab (conflicts with nonfree builds) +- use Recommends only on Fedora (patch by Nicolas Chauvet) +- enable AMR codecs by default (rfbz#4367, patch by Nicolas Chauvet) + +* Tue Dec 06 2016 Julian Sikorski - 3.2.2-1 +- Updated to 3.2.2 + +* Sat Nov 26 2016 Julian Sikorski - 3.2.1-1 +- Updated to 3.2.1 + +* Wed Nov 16 2016 Adrian Reber - 3.2-3 +- Rebuild for libcdio-0.94 + +* Tue Nov 08 2016 Sérgio Basto - 3.2-2 +- Rebuild for x265-2.1 + +* Sat Oct 29 2016 Julian Sikorski - 3.2-1 +- Updated to 3.2 +- Dropped openjpeg2 patch +- Updated BuildRequires to SDL2-devel +- Incorporated some cleanups from RF #4243 + +* Tue Oct 25 2016 Julian Sikorski - 3.1.5-1 +- Updated to 3.1.5 + +* Sat Oct 01 2016 Leigh Scott - 3.1.4-2 +- Fix missing libxvid (rfbz#4274) + +* Sat Oct 01 2016 Julian Sikorski - 3.1.4-1 +- Updated to 3.1.4 + +* Thu Sep 08 2016 Nicolas Chauvet - 3.1.3-3 +- Disable OpenCV for Fedora >= 25 + +* Sat Sep 03 2016 Dominik Mierzejewski - 3.1.3-2 +- enable QSV support by default, since libmfx is in Fedora now +- QSV is x86 only +- put x86-specific BRs in one place + +* Sat Aug 27 2016 Julian Sikorski - 3.1.3-1 +- Updated to 3.1.3 + +* Thu Aug 25 2016 Leigh Scott - 3.1.2-2 +- enable support for nvenc + +* Wed Aug 10 2016 Julian Sikorski - 3.1.2-1 +- Updated to 3.1.2 + +* Wed Jul 27 2016 Julian Sikorski - 3.1.1-1 +- Updated to 3.1.1 +- Dropped included patch +- Added $RPM_LD_FLAGS to %%configure +- Switched to openjpeg2 +- Fixed build with openjpeg2-2.1.1 (patch by Sandro Mani) + +* Sat Jul 23 2016 Igor Gnatenko - 3.0.2-5 +- Rebuild for libvpx soname bump + +* Sun Jul 10 2016 Dominik Mierzejewski - 3.0.2-4 +- enable jack by default (rfbz#2156) +- re-enable opencl by default (rfbz#3640 was fixed) +- add conditional support for QSV via libmfx (rfbz#4043) +- drop libcelt support (celt 0.11 no longer available in Fedora) +- drop libdirac support (unsupported by FFmpeg) +- make xvidcore support optional +- add missing ldconfig calls for libavdevice package +- move libavdevice manpage to its subpackage +- move examples from main package to -devel as docs +- add support for libiec61883 and make DV (IEEE 1394) support optional +- enable optional support for many external libraries (rfbz#4109) + +* Thu Jul 07 2016 Julian Sikorski - 3.0.2-3 +- Fixed build failure on rawhide due to newer opencv using a patch from upstream + git + +* Sun Jun 12 2016 Leigh Scott - 3.0.2-2 +- rebuilt + +* Sat May 14 2016 Michael Kuhn - 3.0.2-1 +- Update to 3.0.2. + +* Mon May 02 2016 Julian Sikorski - 2.8.7-1 +- Updated to 2.8.7 + +* Mon Feb 01 2016 Julian Sikorski - 2.8.6-1 +- Updated to 2.8.6 + +* Sat Jan 16 2016 Julian Sikorski - 2.8.5-1 +- Updated to 2.8.5 + +* Wed Dec 23 2015 Julian Sikorski - 2.8.4-1 +- Updated to 2.8.4 +- Fixed Fraunhofer FDK AAC conditional build (RF # 3898) + +* Sun Nov 29 2015 Julian Sikorski - 2.8.3-1 +- Updated to 2.8.3 + +* Sat Nov 14 2015 Nicolas Chauvet - 2.8.2-1 +- Update to 2.8.2 + +* Sat Oct 24 2015 Nicolas Chauvet - 2.8.1-1 +- Update to 2.8.1 + +* Sat Jul 25 2015 Julian Sikorski - 2.6.4-1 +- Updated to 2.6.4 + +* Wed May 27 2015 Julian Sikorski - 2.6.3-1 +- Updated to 2.6.3 + +* Sat May 16 2015 Nicolas Chauvet - 2.6.2-3 +- Rebuilt for x265 + +* Mon May 11 2015 Nicolas Chauvet - 2.6.2-2 +- Disable opencl by default - rfbz#3640 +- Add with condition for nvenc,fdk_aac + +* Tue May 05 2015 Julian Sikorski - 2.6.2-1 +- Updated to 2.6.2 + +* Tue Apr 28 2015 Julian Sikorski - 2.4.9-1 +- Updated to 2.4.9 + +* Wed Apr 15 2015 Dominik Mierzejewski - 2.4.8-3 +- rebuilt for new x265 + +* Mon Apr 13 2015 Nicolas Chauvet - 2.4.8-2 +- Fix sed for f22 where cflags contains a directory path + +* Mon Mar 30 2015 Julian Sikorski - 2.4.8-1 +- Updated to 2.4.8 + +* Sun Feb 15 2015 Julian Sikorski - 2.4.7-1 +- Updated to 2.4.7 + +* Sun Feb 01 2015 Dominik Mierzejewski - 2.4.6-3 +- enable LADSPA support (rfbz#3134) + +* Sun Feb 01 2015 Dominik Mierzejewski - 2.4.6-2 +- enable OpenCL support +- BR texinfo instead of texi2html to reduce BRs by half +- drop support for building on SPARC (no longer a Fedora Secondary Arch) +- move libavdevice to a subpackage (rfbz#3075) + +* Wed Jan 14 2015 Julian Sikorski - 2.4.6-1 +- Updated to 2.4.6 + +* Sun Dec 21 2014 Julian Sikorski - 2.4.5-1 +- Updated to 2.4.5 + +* Thu Dec 18 2014 Dominik Mierzejewski - 2.4.4-2 +- enable support for libx265 by default (rfbz#3421, patch by Nerijus Baliūnas) + +* Mon Dec 01 2014 Julian Sikorski - 2.4.4-1 +- Updated to 2.4.4 + +* Tue Nov 04 2014 Nicolas Chauvet - 2.4.3-2 +- Rebuilt for vaapi 0.36 + +* Sun Nov 02 2014 Julian Sikorski - 2.4.3-1 +- Updated to 2.4.3 + +* Sun Oct 19 2014 Sérgio Basto - 2.4.2-1 +- Update to ffmpeg-2.4.2 + +* Fri Oct 03 2014 Julian Sikorski - 2.3.4-1 +- Updated to 2.3.4 + +* Sat Sep 27 2014 kwizart - 2.3.3-3 +- Rebuild back to ffmpeg 2.3x + +* Sat Sep 13 2014 Nicolas Chauvet - 2.3.3-2 +- Disable libcelt by default - rfbz#3359 + +* Tue Sep 02 2014 Julian Sikorski - 2.3.3-1 +- Updated to 2.3.3 + +* Tue Aug 12 2014 Julian Sikorski - 2.3.2-1 +- Updated to 2.3.2 + +* Sun Aug 03 2014 Julian Sikorski - 2.3.1-1 +- Updated to 2.3.1 +- README → README.md + +* Tue Jul 15 2014 Julian Sikorski - 2.2.5-1 +- Updated to 2.2.5 + +* Tue Jul 08 2014 Julian Sikorski - 2.2.4-1 +- Updated to 2.2.4 + +* Wed Jun 04 2014 Julian Sikorski - 2.2.3-1 +- Updated to 2.2.3 + +* Mon May 05 2014 Julian Sikorski - 2.2.2-1 +- Updated to 2.2.2 + +* Fri Apr 18 2014 Nicolas Chauvet - 2.2.1-1 +- Update to 2.2.1 + +* Mon Mar 24 2014 Julian Sikorski - 2.2-1 +- Updated to 2.2 + +* Fri Mar 21 2014 Julian Sikorski - 2.1.4-4 +- Rebuilt for libass-0.10.2 + +* Tue Mar 18 2014 Julian Sikorski - 2.1.4-3 +- Rebuilt for x264 + +* Thu Mar 06 2014 Nicolas Chauvet - 2.1.4-2 +- Rebuilt for x264 + +* Tue Feb 25 2014 Julian Sikorski - 2.1.4-1 +- Updated to 2.1.4 + +* Thu Jan 16 2014 Julian Sikorski - 2.1.3-1 +- Updated to 2.1.3 + +* Wed Nov 20 2013 Nicolas Chauvet - 2.1.1-1 +- Update to 2.1.1 + +* Tue Oct 29 2013 Julian Sikorski - 2.1-1 +- Updated to 2.1 + +* Tue Oct 22 2013 Nicolas Chauvet - 2.0.2-2 +- Rebuilt for x264 + +* Wed Oct 09 2013 Julian Sikorski - 2.0.2-1 +- Updated to 2.0.2 + +* Mon Sep 30 2013 Nicolas Chauvet - 2.0.1-3 +- Rebuilt + +* Tue Aug 27 2013 Nicolas Chauvet - 2.0.1-2 +- Enable avresample as noticed by Xavier Bachelot + +* Tue Aug 13 2013 Nicolas Chauvet - 2.0.1-1 +- Update to 2.0.1 + +* Thu Aug 01 2013 Julian Sikorski - 2.0-1 +- Updated to 2.0 +- Dropped the no longer needed bogus man dir work-around + +* Thu Aug 01 2013 Julian Sikorski - 1.2.2-1 +- Updated to 1.2.2 + +* Sat Jul 20 2013 Nicolas Chauvet - 1.2.1-7 +- Rebuilt for x264 + +* Tue Jul 02 2013 Dominik Mierzejewski - 1.2.1-6 +- fix building with libcdio + +* Mon Jul 01 2013 Dominik Mierzejewski - 1.2.1-5 +- build with soxr support enabled (rfbz#2853) + +* Thu Jun 27 2013 Nicolas Chauvet - 1.2.1-4 +- Reverse the logic for neon on arm + +* Wed Jun 19 2013 Nicolas Chauvet - 1.2.1-3 +- Enable neon on armv7hnl +- Enable thumb on all arm but armv6hl + +* Tue May 14 2013 Julian Sikorski - 1.2.1-1 +- Updated to 1.2.1 + +* Sun May 05 2013 Julian Sikorski - 1.2-2 +- Rebuilt for x264-0.130 + +* Mon Mar 18 2013 Julian Sikorski - 1.2-1 +- Updated to 1.2 + +* Mon Mar 18 2013 Julian Sikorski - 1.1.4-1 +- Updated to 1.1.4 + +* Sun Mar 10 2013 Nicolas Chauvet - 1.1.3-1 +- Update to 1.1.3 + +* Sun Jan 20 2013 Nicolas Chauvet - 1.1.1-1 +- Update to 1.1.1 +- Disable libcdio with fedora 19 + +* Mon Jan 07 2013 Julian Sikorski - 1.1-1 +- Updated to 1.1 +- Added new man pages + +* Tue Dec 04 2012 Julian Sikorski - 1.0.1-1 +- Updated to 1.0.1 + +* Fri Nov 23 2012 Julian Sikorski - 1.0-5 +- Rebuilt for x264-0.128 + +* Sat Nov 03 2012 Julian Sikorski - 1.0-4 +- Fixed -O3 -g in host_cflags +- Made the installation verbose too + +* Sat Nov 03 2012 Julian Sikorski - 1.0-3 +- Use Fedora %%{optflags} +- Made the build process verbose + +* Thu Nov 01 2012 Nicolas Chauvet - 1.0-2 +- Add opus +- Enable opencv frei0r by default +- Disable librmtp - use builtin implementation rfbz#2399 + +* Thu Oct 04 2012 Julian Sikorski - 1.0-1 +- Updated to 1.0 +- Dropped obsolete Group, Buildroot, %%clean and %%defattr +- Dropped the included patch + +* Wed Sep 05 2012 Nicolas Chauvet - 0.11.1-3 +- Rebuilt for x264 ABI 125 + +* Sat Jul 21 2012 Nicolas Chauvet - 0.11.1-2 +- Backport fix rfbz#2423 + +* Thu Jun 14 2012 Julian Sikorski - 0.11.1-1 +- Updated to 0.11.1 + +* Wed Jun 13 2012 Julian Sikorski - 0.10.4-1 +- Updated to 0.10.4 + +* Mon May 07 2012 Julian Sikorski - 0.10.3-1 +- Updated to 0.10.3 + +* Tue May 01 2012 Nicolas Chauvet - 0.10.2-3 +- Sync with ffmpeg-compat and EL +- Add BR libmodplug-devel +- Enable libass openal-soft + +* Tue Apr 10 2012 Nicolas Chauvet - 0.10.2-2 +- Explicitely disable neon unless armv7hnl + +* Sun Mar 18 2012 Julian Sikorski - 0.10.2-1 +- Updated to 0.10.2 + +* Mon Mar 12 2012 root - 0.10-2 +- Rebuilt for x264 ABI 0.120 + +* Sun Feb 19 2012 Nicolas Chauvet - 0.10-1 +- Update to 0.10 +- Disable dirac by default - rfbz#1946 +- Enabled by default: libv4l2 gnutls +- New RPM Conditionals: + --with crystalhd dirac jack frei0r openal opencv + --without celt cdio pulse + +* Wed Feb 01 2012 Nicolas Chauvet - 0.8.9-1 +- Update to 0.8.9 +- Add BR libass-devel +- Rebuilt for libvpx + +* Mon Jan 09 2012 Nicolas Chauvet - 0.8.8-1 +- Update to 0.8.8 + +* Wed Dec 21 2011 Nicolas Chauvet - 0.8.7-1 +- Update to 0.8.7 + +* Fri Oct 28 2011 Nicolas Chauvet - 0.8.5-2 +- Fix for glibc bug rhbz#747377 + +* Sun Oct 23 2011 Dominik Mierzejewski - 0.8.5-1 +- update to 0.8.5 + +* Fri Sep 23 2011 Dominik Mierzejewski - 0.8.4-1 +- update to 0.8.4 +- fix FFmpeg name spelling + +* Mon Aug 22 2011 Dominik Mierzejewski - 0.8.2-1 +- update to 0.8.2 +- enable CELT decoding via libcelt +- support AMR WB encoding via libvo-amrwbenc (optional) +- enable FreeType support + +* Thu Jul 14 2011 Nicolas Chauvet - 0.7.1-1 +- Update to 0.7.1 + +* Fri Jul 01 2011 Nicolas Chauvet - 0.7-0.3.20110612git +- Add XvMC in ffmpeg + +* Sun Jun 12 2011 Nicolas Chauvet - 0.7-0.2.20110612git +- Update to 20110612git from oldabi branch + +* Sun Jun 12 2011 Nicolas Chauvet - 0.7-0.1.rc1 +- Update to 7.0-rc1 +- Remove upstreamed patch +- Fix flv - rfbz#1743 +- New RPM build conditional --without x264. + +* Tue Apr 12 2011 Dominik Mierzejewski - 0.6.90-0.2.rc0 +- fixed missing av_parser_parse symbol (upstream patch) + +* Mon Apr 04 2011 Dominik Mierzejewski - 0.6.90-0.1.rc0 +- updated to 0.6.90-rc0 release +- ensure main package is version-locked to the -libs subpackage + +* Sun Feb 27 2011 Dominik Mierzejewski - 0.6.1-1.20110227git +- 20110227 snapshot +- bump version to post-0.6.1 to allow stable 0.6.1 update in older branches +- drop --with amr->opencore_amr indirection +- add qt-faststart tool (bug #1259) +- build PIC objects on PPC (bug #1457) +- provide custom version string +- require latest x264 build + +* Fri Jan 21 2011 Hans de Goede - 0.6-5.20100704svn +- Rebuild for new openjpeg + +* Wed Jul 21 2010 Nicolas Chauvet - 0.6-4.20100704svn +- Enable libva +- Restore compatibility --with amr + +* Mon Jul 05 2010 Nicolas Chauvet - 0.6-3.20100704svn +- Fix build using --define ffmpegsuffix 'foo' +- Disable FFmpeg binaries when built with suffix. + +* Sun Jul 04 2010 Dominik Mierzejewski - 0.6-2.20100704svn +- 20100703 snapshot +- enable libvpx (WebM/VP8) support (rfbz#1250) +- drop faad2 support (dropped upstream) +- drop old Obsoletes: +- enable librtmp support + +* Sat Jun 19 2010 Dominik Mierzejewski - 0.6-1.20100619svn +- 20100619 snapshot + +* Thu Apr 29 2010 Dominik Mierzejewski - 0.6-0.3.20100429svn +- 20100429 snapshot +- dropped unnecessary imlib2-devel BR + +* Sat Mar 20 2010 Dominik Mierzejewski - 0.6-0.2.20100320svn +- bump for rebuild + +* Sat Mar 20 2010 Dominik Mierzejewski - 0.6-0.1.20100320svn +- 20100320 snapshot +- drop upstream'd patch +- bumped version to pre-0.6 +- added ffprobe to file list + +* Sat Jan 16 2010 Dominik Mierzejewski - 0.5-6.20100116svn +- 20100116 snapshot, requires recent x264 +- fix textrels on x86_64 in a different way (patch by Reimar Döffinger) +- use -mlongcall instead of -fPIC to fix rfbz#804, it's faster + +* Sat Nov 7 2009 Hans de Goede - 0.5-5.20091026svn +- Add -fPIC -dPIC when compiling on ppc (rf804) + +* Thu Oct 22 2009 Dominik Mierzejewski - 0.5-4.20091026svn +- 20091026 snapshot, requires recent x264 +- dropped support for old amr libs (not supported upstream since July) +- don't disable yasm for generic builds +- fixed opencore amr support +- dropped workaround for non-standard openjpeg headers location +- dropped separate SIMDified libs for x86 and ppc(64), + runtime CPU detection should be enough + +* Thu Oct 15 2009 kwizart - 0.5-3.svn20091007 +- Update to svn snapshot 20091007 +- Add BR dirac vdpau. +- Use --with nonfree as a separate conditional for amr and faac. +- Use --with gplv3 as a separate conditional for opencore-amr. +- Don't build faac by default because it's nonfree. +- Allow to --define 'ffmpegsuffix custom' for special SONAME. + +* Fri Mar 27 2009 Dominik Mierzejewski - 0.5-2 +- rebuild for new faad2 and x264 + +* Tue Mar 10 2009 Dominik Mierzejewski - 0.5-1 +- 0.5 release +- enable yasm on x86_64, fix resulting textrels +- add missing obsoletes for ffmpeg-compat-devel (really fix bug #173) +- disable yasm and certain asm optimizations for generic ix86 builds +- %%{_bindir} is now usable +- include more docs +- specfile cleanups +- add JPEG2000 decoding support via openjpeg + +* Sat Jan 31 2009 Dominik Mierzejewski - 0.4.9-0.58.20090131 +- 20090131 snapshot + +* Wed Dec 17 2008 Dominik Mierzejewski - 0.4.9-0.57.20081217 +- 20081217 snapshot +- fix pkgconfig files again (broken in 0.4.9-0.55.20081214) + +* Mon Dec 15 2008 Dominik Mierzejewski - 0.4.9-0.56.20081214 +- drop libdirac support for now + +* Sun Dec 14 2008 Dominik Mierzejewski - 0.4.9-0.55.20081214 +- 20081214 snapshot +- change the lib split on x86, it doesn't work right for P3/AthlonXP +- specfile cleanups +- enable bzlib, dirac and speex support via external libs +- sort BR list alphabetically +- drop upstream'd patch + +* Thu Dec 11 2008 Dominik Mierzejewski - 0.4.9-0.54.20081202 +- fix pkgconfig file generation + +* Thu Dec 04 2008 Dominik Mierzejewski - 0.4.9-0.53.20081202 +- 20081202 snapshot +- drop upstreamed/obsolete patches + +* Thu Nov 20 2008 Dominik Mierzejewski - 0.4.9-0.52.20080908 +- add obsoletes for -compat package (RPMFusion bug #173) + +* Sat Nov 01 2008 Dominik Mierzejewski - 0.4.9-0.51.20080908 +- reworked build system +- build optimized versions where it makes sense +- specfile cleanups +- enable yasm for optimized asm routines on x86_32 +- add obsoletes for Freshrpms' libpostproc subpackage + +* Thu Sep 18 2008 Dominik Mierzejewski - 0.4.9-0.50.20080908 +- 20080908 snapshot (r25261), last before ABI change + +* Fri Sep 05 2008 Dominik Mierzejewski - 0.4.9-0.49.20080905 +- 20080905 snapshot +- fix build --with amr +- update snapshot.sh +- drop liba52 support, native ac3 decoder is better in every way + +* Mon Aug 25 2008 Dominik Mierzejewski - 0.4.9-0.48.20080825 +- 20080825 snapshot +- use CFLAGS more similar to upstream +- enable X11 grabbing input +- enable libavfilter + +* Sun Aug 03 2008 Thorsten Leemhuis - 0.4.9-0.46.20080614 +- 20080614 snapshot +- no need to conditionalize swscaler anymore +- dropped obsolete pkgconfig patch +- BR latest x264 + +* Mon Mar 03 2008 Dominik Mierzejewski - 0.4.9-0.45.20080113 +- rebuild for new x264 + +* Sun Jan 13 2008 Dominik Mierzejewski - 0.4.9-0.44.20080113 +- 20080113 snapshot +- drop unnecessary patch +- enable libdc1394 support +- enable swscaler + +* Mon Nov 12 2007 Dominik Mierzejewski - 0.4.9-0.43.20071111 +- ensure that we use the correct faad2 version + +* Sun Nov 11 2007 Dominik Mierzejewski - 0.4.9-0.42.20071111 +- 20071111 snapshot +- current faad2 is good again + +* Thu Oct 18 2007 Dominik Mierzejewski - 0.4.9-0.41.20071011 +- fix BRs and Requires for faad2 + +* Thu Oct 11 2007 Dominik Mierzejewski - 0.4.9-0.40.20071011 +- 20071011 snapshot +- don't link against faad2-2.5, it makes GPL'd binary non-distributable +- go back to normal linking instead of dlopen() of liba52 + +* Sun Sep 23 2007 Dominik Mierzejewski - 0.4.9-0.39.20070923 +- 20070923 snapshot +- use faad2 2.5 +- optional AMR support +- dropped obsolete patch + +* Thu Jun 07 2007 Dominik Mierzejewski - 0.4.9-0.38.20070607 +- 20070607 snapshot +- libdca BR dropped (no longer supported) +- drop gsm.h path hack, gsm in Fedora now provides a compatibility symlink +- remove arch hacks, ffmpeg's configure is smart enough +- enable cmov on x86_64 + +* Thu May 03 2007 Dominik Mierzejewski - 0.4.9-0.37.20070503 +- require older faad2 to prevent bugreports like #1388 +- prepare for libdc1394 support +- enable pthreads +- 20070503 snapshot + +* Thu Feb 08 2007 Dominik Mierzejewski - 0.4.9-0.35.20070204 +- libswscale.pc is necessary regardless of --enable-swscaler + +* Sun Feb 4 2007 Ville Skyttä - 0.4.9-0.34.20070204 +- 2007-02-04 snapshot, enable libtheora. +- Make swscaler optional, disabled again by default (#1379). + +* Fri Jan 05 2007 Dominik Mierzejewski - 0.4.9-0.34.20061214 +- move vhooks to -libs + +* Wed Jan 03 2007 Dominik Mierzejewski - 0.4.9-0.33.20061214 +- split -libs subpackage for multilib installs + +* Tue Dec 26 2006 Dominik Mierzejewski - 0.4.9-0.32.20061214 +- new kino works with swscaler, re-enabled + +* Tue Dec 19 2006 Dominik Mierzejewski - 0.4.9-0.31.20061214 +- disable swscaler, it breaks kino + +* Sun Dec 17 2006 Ville Skyttä - 0.4.9-0.30.20061214 +- fix pkgconfig patch + +* Sat Dec 16 2006 Dominik Mierzejewski - 0.4.9-0.29.20061214 +- liba52 change broke build on 64bit +- resurrect lost URL changes + +* Fri Dec 15 2006 Dominik Mierzejewski - 0.4.9-0.28.20061214 +- fixed build on x86 +- change liba52 file-based dependency to provides-based +- resurrect and update pkgconfig patch + +* Thu Dec 14 2006 Dominik Mierzejewski - 0.4.9-0.27.20061214 +- new snapshot URL +- new URL + +* Thu Dec 14 2006 Dominik Mierzejewski - 0.4.9-0.26.20061214 +- 2006-12-14 snapshot +- added libdca support +- enabled swscaler +- dropped obsolete patches + +* Mon Oct 30 2006 Ville Skyttä - 0.4.9-0.25.20061030 +- 2006-10-30 snapshot, fixes x86_64 build. +- Apply a less intrusive workaround for LAME detection issues. + +* Sat Oct 28 2006 Ville Skyttä - 0.4.9-0.25.20061028 +- 2006-10-28 snapshot, build with x264. +- Clean up some pre-FC4 compat build dependency cruft. +- Quick and dirty workarounds for ./configure's libmp3lame test and asm + register issues on ix86. + +* Fri Oct 06 2006 Thorsten Leemhuis 0.4.9-25 +- rebuilt for unwind info generation, broken in gcc-4.1.1-21 + +* Tue Sep 26 2006 Ville Skyttä - 0.4.9-0.24.20060817 +- Drop SELinux fcontext settings, they're supposedly fixed upstream again. + +* Thu Aug 17 2006 Ville Skyttä - 0.4.9-0.23.20060817 +- 2006-08-17 snapshot. +- Fix svn rev in "ffmpeg -version" etc. + +* Wed Aug 9 2006 Ville Skyttä - 0.4.9-0.23.20060804 +- Reintroduce SELinux fcontext settings on ix86 (not needed on x86_64, ppc), + they're not completely taken care of upstream (#1120). +- Split svn snapshot creator into a separate script. + +* Fri Aug 4 2006 Ville Skyttä - 0.4.9-0.22.20060804 +- 2006-08-04 snapshot. +- Drop bogus version from SDL-devel build dependency. +- Drop no longer relevant libpostproc obsoletion. +- Prune pre-2005 changelog entries. +- Specfile cleanup. + +* Sat Jun 17 2006 Ville Skyttä - 0.4.9-0.22.20060617 +- 2006-06-17 snapshot. + +* Mon Jun 12 2006 Ville Skyttä - 0.4.9-0.22.20060612 +- 2006-06-12 snapshot, rgb.txt patch applied upstream. +- Patch to force linking vhook modules with their dependencies, --as-needed + seems to drop needed things for some reason for drawtext and imlib2. +- Revert to dlopen()'ing liba52 and add file based dependency on it, it's + easier this way again due to --as-needed linkage. + +* Wed May 17 2006 Ville Skyttä - 0.4.9-0.22.20060517 +- 2006-05-17 snapshot. +- Link with faad2, don't dlopen() it. + +* Sat May 13 2006 Ville Skyttä - 0.4.9-0.22.20060513 +- 2006-05-13 snapshot. +- Drop SELinux fixups, they're part of upstream policy now. + +* Sat Apr 15 2006 Ville Skyttä - 0.4.9-0.22.20060407 +- SELinux file context fixups (mplayer, vdr-dxr3 etc) while waiting for #188358 + +* Sat Apr 8 2006 Ville Skyttä - 0.4.9-0.21.20060407 +- 2006-04-07 CVS snapshot. +- Move *.so to -devel, hopefully nothing needs them any more. + +* Fri Mar 31 2006 Ville Skyttä - 0.4.9-0.21.20051228 +- Remove superfluous dependencies from pkgconfig files (#747). +- Re-enable MMX on x86_64. + +* Thu Mar 09 2006 Andreas Bierfert +- switch to new release field + +* Tue Feb 28 2006 Andreas Bierfert +- add dist + +* Wed Dec 28 2005 Ville Skyttä - 0.4.9-0.lvn.0.20.20051228 +- 2005-12-28 CVS snapshot. +- Let upstream configure take care of PIC settings (patched for ppc). +- Own shared lib symlinks. + +* Fri Dec 23 2005 Ville Skyttä - 0.4.9-0.lvn.0.20.20050801 +- Apply upstream fix for CVE-2005-4048. +- Patch to find rgb.txt in FC5 too. + +* Thu Sep 29 2005 Ville Skyttä - 0:0.4.9-0.lvn.0.19.20050801 +- Clean up obsolete pre-FC3 stuff (FAAC is now unconditionally enabled). +- Drop zero Epochs. + +* Tue Aug 16 2005 Ville Skyttä - 0:0.4.9-0.lvn.0.18.20050801 +- Apply some upstream and some mine (libdir) fixes to pkgconfig files. +- Add pkgconfig dependency to -devel. +- Include gsm support. + +* Thu Aug 4 2005 David Woodhouse - 0:0.4.9-0.lvn.0.17.20050801 +- Update to 20050801 snapshot to make xine-lib happy +- Enable Altivec support by using --cpu=powerpc (not 'ppc') +- Enable theora +- Add pkgconfig files +- Undefine various things which might be macros before redefining them + +* Sat Jul 23 2005 Dams - 0:0.4.9-0.lvn.0.17.20050427 +- Added patch from Marc Deslauriers to fix wmv2 distorsion + +* Sun Jul 10 2005 Ville Skyttä - 0:0.4.9-0.lvn.0.16.20050427 +- Enable faac by default, rebuild with "--without faac" to disable. +- Clean up obsolete pre-FC2 and other stuff. + +* Sun May 22 2005 Ville Skyttä - 0:0.4.9-0.lvn.0.15.20050427 +- PPC needs -fPIC too. + +* Sat May 21 2005 Thorsten Leemhuis - 0:0.4.9-0.lvn.0.14.20050427 +- disable mmx for now on x86_64 to fix build + +* Sat Apr 30 2005 Dams - 0:0.4.9-0.lvn.0.13.20050427 +- Removed bogus devel requires +- Re-added conditionnal a52dec buildreq + +* Fri Apr 29 2005 Ville Skyttä - 0:0.4.9-0.lvn.0.12.20050427 +- Link avcodec with a52 when building with a52bin, remove unnecessary + hardcoded liba52.so.0 dependency. + +* Fri Apr 29 2005 Dams - 0:0.4.9-0.lvn.0.11.20050427 +- Fixed devel package deps + +* Fri Apr 29 2005 Dams - 0:0.4.9-0.lvn.0.10.20050427 +- texi2html replaces tetex as build dependency (FC4 compliance) +- re-added man pages + +* Thu Apr 28 2005 Dams - 0:0.4.9-0.lvn.0.9.20050427 +- Patch from Enrico to fix build on gcc4 +- Missing BuildReq a52dec-devel when a52bin is defined +- Patch to fix a52 build + +* Wed Apr 27 2005 Dams - 0:0.4.9-0.lvn.0.8.20050427 +- Updated tarball to cvs 20050427 snapshot +- Enabled libogg, xvid, a52bin +- Dropped Patch[0-3] diff --git a/anda/multimedia/ffmpeg/update.rhai b/anda/multimedia/ffmpeg/update.rhai new file mode 100644 index 0000000000..989870ef6c --- /dev/null +++ b/anda/multimedia/ffmpeg/update.rhai @@ -0,0 +1,14 @@ +import "andax/bump_extras.rhai" as bump; + +rpm.version(find(`ffmpeg-([\d.]+?)\.tar\.xz`, get("https://ffmpeg.org/download.html"), 1)); + +let branch = labels.branch; +if branch.starts_with("f") { + branch.crop(1); // remove the `f` +} + +let ffmpeg_ver = get(`https://madoguchi.fyralabs.com/v4/terra${branch}/packages/x265`).json().ver; +open_file("anda/fusion/ffmpeg/VERSION_x265.txt", "w").write(ffmpeg_ver); + +let tesseract_ver = bump::bodhi("tesseract", bump::as_bodhi_ver(labels.branch)); +open_file("anda/fusion/ffmpeg/VERSION_tesseract.txt", "w").write(tesseract_ver); diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/anda.hcl b/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/anda.hcl new file mode 100644 index 0000000000..c280d77b08 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "gstreamer1-plugin-icamerasrc.spec" + } + labels { + weekly = 1 + } +} diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/gstreamer1-plugin-icamerasrc-videoformat.patch b/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/gstreamer1-plugin-icamerasrc-videoformat.patch new file mode 100644 index 0000000000..cedc7c42a7 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/gstreamer1-plugin-icamerasrc-videoformat.patch @@ -0,0 +1,34 @@ +--- icamerasrc-9b2f7e3cec27d42a3bf01058b93ae22fed26cc9c.old/src/gstcameraformat.cpp 2024-04-11 05:02:03.000000000 +0200 ++++ icamerasrc-9b2f7e3cec27d42a3bf01058b93ae22fed26cc9c/src/gstcameraformat.cpp 2024-05-07 15:28:47.502046987 +0200 +@@ -159,11 +159,6 @@ + break; + case V4L2_PIX_FMT_P010:{ + structure = gst_structure_new ("video/x-raw", +- "format", G_TYPE_STRING, gst_video_format_to_string (GST_VIDEO_FORMAT_P010_10BE), (void *)NULL); +- } +- break; +- case V4L2_PIX_FMT_P010_LE:{ +- structure = gst_structure_new ("video/x-raw", + "format", G_TYPE_STRING, gst_video_format_to_string (GST_VIDEO_FORMAT_P010_10LE), (void *)NULL); + } + break; +--- icamerasrc-9b2f7e3cec27d42a3bf01058b93ae22fed26cc9c.old/src/utils.cpp 2024-04-11 05:02:03.000000000 +0200 ++++ icamerasrc-9b2f7e3cec27d42a3bf01058b93ae22fed26cc9c/src/utils.cpp 2024-05-07 15:35:05.263520367 +0200 +@@ -61,8 +61,7 @@ + { "RGB16", GST_VIDEO_FORMAT_RGB16, V4L2_PIX_FMT_RGB565 }, + { "NV16", GST_VIDEO_FORMAT_NV16, V4L2_PIX_FMT_NV16 }, + { "BGRx", GST_VIDEO_FORMAT_BGRx, V4L2_PIX_FMT_XBGR32 }, +- { "P010", GST_VIDEO_FORMAT_P010_10BE, V4L2_PIX_FMT_P010 }, +- { "P01L", GST_VIDEO_FORMAT_P010_10LE, V4L2_PIX_FMT_P010_LE }, ++ { "P01L", GST_VIDEO_FORMAT_P010_10LE, V4L2_PIX_FMT_P010 }, + }; + + int num_of_format = ARRAY_SIZE(gFormatMapping); +@@ -121,7 +120,6 @@ + case V4L2_PIX_FMT_YUV420: + case V4L2_PIX_FMT_YVU420: + case V4L2_PIX_FMT_P010: +- case V4L2_PIX_FMT_P010_LE: + return height*3/2; + case V4L2_PIX_FMT_NV16: + return height*2; diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/gstreamer1-plugin-icamerasrc.spec b/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/gstreamer1-plugin-icamerasrc.spec new file mode 100644 index 0000000000..a4aeada267 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/gstreamer1-plugin-icamerasrc.spec @@ -0,0 +1,70 @@ +%global fulldate 2024-11-29 +%global commit ee8526451ca1bb4957702de2f46138b63151f34c +%global commit_date %(echo %{fulldate} | sed 's/-//g') +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: gstreamer1-plugin-icamerasrc +Summary: GStreamer 1.0 Intel IPU6 camera plugin +Version: 1.0.0 +Release: 1.%{commit_date}git%{shortcommit}%{?dist} +License: LGPL-2.1-only +URL: https://github.com/intel/icamerasrc/tree/icamerasrc_slim_api +Source0: https://github.com/intel/icamerasrc/archive/%{commit}/icamerasrc-%{shortcommit}.tar.gz +Patch0: %{name}-videoformat.patch +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: g++ +BuildRequires: gcc +BuildRequires: gstreamer1-plugins-base-devel +BuildRequires: libtool +BuildRequires: pkgconfig(gstreamer-va-1.0) +BuildRequires: pkgconfig(libcamhal) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(libdrm_intel) +BuildRequires: pkgconfig(libva) +BuildRequires: pkgconfig(libva-drm) +BuildRequires: pkgconfig(gstreamer-1.0) >= 1.0.0 +BuildRequires: pkgconfig(gstreamer-base-1.0) >= 1.0.0 +BuildRequires: pkgconfig(gstreamer-controller-1.0) >= 1.0.0 +ExclusiveArch: x86_64 +AutoProv: no + +%description +This package provides the GStreamer plugin for the Intel IPU6 MIPI camera. + +%package devel +Summary: GStreamer plugin development files for Intel IPU6 camera +Requires: gstreamer1-devel +Requires: ipu6-camera-bins-devel +Requires: ipu6-camera-hal-devel +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +Development files for the GStreamer IPU6 camera plugin. + +%prep +%autosetup -p1 -n icamerasrc-%{commit} +autoreconf -vif + +%build +export CHROME_SLIM_CAMHAL=ON +export STRIP_VIRTUAL_CHANNEL_CAMHAL=ON +%configure --enable-gstdrmformat --with-haladaptor +%make_build + +%install +%make_install + +%files +%license LICENSE +%{_libdir}/gstreamer-1.0/* +%{_libdir}/libgsticamerainterface-1.0.so.1 +%{_libdir}/libgsticamerainterface-1.0.so.1.0.0 + +%files devel +%{_libdir}/libgsticamerainterface-1.0.so +%{_includedir}/gstreamer-1.0/gst/* +%{_libdir}/pkgconfig/* + +%changelog +%autochangelog diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/update.rhai b/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/update.rhai new file mode 100644 index 0000000000..7d1bb33faf --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugin-icamerasrc/update.rhai @@ -0,0 +1,7 @@ +let url = `https://api.github.com/repos/intel/icamerasrc/commits/icamerasrc_slim_api`; +let json = get(url).json(); +let c = json.sha; +let d = json.commit.author.date; +d.truncate(10); +rpm.global("commit", c); +rpm.global("fulldate", d); diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/anda.hcl b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/anda.hcl new file mode 100644 index 0000000000..f6d20ce1a6 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/anda.hcl @@ -0,0 +1,11 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "gstreamer1-plugin-libav.spec" + } + labels { + subrepo = "extras" + mock = 1 + updbranch = 1 + } +} diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/gstreamer1-plugin-libav.spec b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/gstreamer1-plugin-libav.spec new file mode 100644 index 0000000000..ce6a4e2ae7 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/gstreamer1-plugin-libav.spec @@ -0,0 +1,53 @@ +Name: gstreamer1-plugin-libav +Version: 1.24.11 +Release: 1%?dist +Summary: GStreamer Libav plugin +License: LGPLv2+ +URL: https://gstreamer.freedesktop.org/modules/gst-libav.html + +Source0: https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-%{version}.tar.xz + +BuildRequires: bzip2-devel +BuildRequires: gcc-c++ +BuildRequires: gstreamer1-devel >= %{version} +BuildRequires: gstreamer1-plugins-base-devel >= %{version} +BuildRequires: libtool +BuildRequires: meson >= 0.62 +BuildRequires: orc-devel >= 0.4.16 +BuildRequires: pkgconfig(libavfilter) +BuildRequires: pkgconfig(libavformat) +BuildRequires: pkgconfig(libavcodec) >= 58 +BuildRequires: pkgconfig(libavutil) + +Obsoletes: gstreamer1-libav < 1:1.20.3-4 +Provides: gstreamer1-libav = 1:%{version}-%{release} +Provides: gstreamer1-libav%{?_isa} = 1:%{version}-%{release} + +%ifarch %{ix86} x86_64 +BuildRequires: yasm +%endif + +%description +GStreamer plugin containing libav library code. + +%prep +%autosetup -p1 -n gst-libav-%{version} + +%build +%meson \ + -D package-name="Fedora GStreamer-plugins-ugly package" \ + -D package-origin="https://gstreamer.freedesktop.org" \ + -D doc=disabled +%meson_build + +%install +%meson_install +find %{buildroot} -name "*.la" -delete + +%files +%license COPYING +%doc AUTHORS NEWS README.md +%{_libdir}/gstreamer-1.0/libgstlibav.so + +%changelog +%autochangelog diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/update.rhai b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/update.rhai new file mode 100644 index 0000000000..9c2d9f5b38 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugin-libav/update.rhai @@ -0,0 +1,5 @@ +import "andax/bump_extras.rhai" as bump; + +let vr = bump::bodhi_vr("gstreamer1-plugin-libav", bump::as_bodhi_ver(labels.branch)); +rpm.version(vr[1]); +rpm.release(vr[2]); diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/OPENCV_VERSION.txt b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/OPENCV_VERSION.txt new file mode 100644 index 0000000000..91f3b43844 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/OPENCV_VERSION.txt @@ -0,0 +1 @@ +4.11.0 \ No newline at end of file diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/anda.hcl b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/anda.hcl new file mode 100644 index 0000000000..e031b556e2 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/anda.hcl @@ -0,0 +1,11 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "gstreamer1-plugins-bad.spec" + } + labels { + subrepo = "extras" + mock = 1 + updbranch = 1 + } +} diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/gstreamer-bad.metainfo.xml b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/gstreamer-bad.metainfo.xml new file mode 100644 index 0000000000..d9b1409d95 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/gstreamer-bad.metainfo.xml @@ -0,0 +1,39 @@ + + + + gstreamer-bad + CC0-1.0 + GStreamer Multimedia Codecs - Extra + Multimedia playback for AIFF, DVB, GSM, MIDI, MXF and Opus + +

+ This addon includes several additional codecs that are missing + something - perhaps a good code review, some documentation, a set of + tests, a real live maintainer, or some actual wide use. + However, they might be good enough to play your media files. +

+

+ These codecs can be used to encode and decode media files where the + format is not patent encumbered. +

+

+ A codec decodes audio and video for for playback or editing and is also + used for transmission or storage. + Different codecs are used in video-conferencing, streaming media and + video editing applications. +

+
+ + AIFF + DVB + GSM + MIDI + MXF + Opus + + http://gstreamer.freedesktop.org/ + https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer + http://gstreamer.freedesktop.org/documentation/ + http://www.gnome.org/friends/ + +
diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/gstreamer1-plugins-bad.spec b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/gstreamer1-plugins-bad.spec new file mode 100644 index 0000000000..c1530c01a4 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/gstreamer1-plugins-bad.spec @@ -0,0 +1,746 @@ +%define _legacy_common_support 1 +%global majorminor 1.0 + +Name: gstreamer1-plugins-bad +Version: 1.24.11 +Release: 3%{?dist} +Summary: GStreamer streaming media framework "bad" plugins +License: LGPLv2+ and LGPLv2 +URL: http://gstreamer.freedesktop.org/ + +Source0: https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-%{version}.tar.xz +Source1: gstreamer-bad.metainfo.xml + +Obsoletes: %{name}-free < %{?epoch}:%{version}-%{release} +Provides: %{name}-free = %{?epoch}:%{version}-%{release} +Provides: %{name}-free%{?_isa} = %{?epoch}:%{version}-%{release} +Obsoletes: %{name}-free-extras < %{?epoch}:%{version}-%{release} +Provides: %{name}-free-extras = %{?epoch}:%{version}-%{release} +Provides: %{name}-free-extras%{?_isa} = %{?epoch}:%{version}-%{release} +Obsoletes: %{name}-freeworld < %{?epoch}:%{version}-%{release} +Provides: %{name}-freeworld = %{?epoch}:%{version}-%{release} +Provides: %{name}-freeworld%{?_isa} = %{?epoch}:%{version}-%{release} +Obsoletes: %{name}-nonfree < %{?epoch}:%{version}-%{release} +Provides: %{name}-nonfree = %{?epoch}:%{version}-%{release} +Provides: %{name}-nonfree%{?_isa} = %{?epoch}:%{version}-%{release} +Obsoletes: %{name}-nvidia < %{?epoch}:%{version}-%{release} +Provides: %{name}-nvidia = %{?epoch}:%{version}-%{release} +Provides: %{name}-nvidia%{?_isa} = %{?epoch}:%{version}-%{release} +Obsoletes: %{name}-wildmidi < %{?epoch}:%{version}-%{release} +Provides: %{name}-wildmidi = %{?epoch}:%{version}-%{release} +Provides: %{name}-wildmidi%{?_isa} = %{?epoch}:%{version}-%{release} +Obsoletes: gstreamer1-plugin-openh264 < %{?epoch}:%{version}-%{release} +Provides: gstreamer1-plugin-openh264 = %{?epoch}:%{version}-%{release} +Provides: gstreamer1-plugin-openh264%{?_isa} = %{?epoch}:%{version}-%{release} +Obsoletes: gstreamer1-svt-hevc < %{?epoch}:%{version}-%{release} +Provides: gstreamer1-svt-hevc = %{?epoch}:%{version}-%{release} +Provides: gstreamer1-svt-hevc%{?_isa} = %{?epoch}:%{version}-%{release} +Obsoletes: %{name}-free-libs < %{?epoch}:%{version}-%{release} +Provides: %{name}-free-libs = %{?epoch}:%{version}-%{release} +Provides: %{name}-free-libs%{?_isa} = %{?epoch}:%{version}-%{release} +BuildRequires: gcc-c++ +BuildRequires: meson >= 0.62 +BuildRequires: gstreamer1-devel >= %{version} +BuildRequires: gstreamer1-plugins-base-devel >= %{version} +BuildRequires: bzip2-devel +BuildRequires: check +BuildRequires: exempi-devel +BuildRequires: flite-devel +BuildRequires: game-music-emu-devel +BuildRequires: gettext-devel >= 0.17 +BuildRequires: glslc +BuildRequires: gobject-introspection-devel >= 1.31.1 +BuildRequires: gsm-devel +BuildRequires: ladspa-devel +BuildRequires: libcdaudio-devel +BuildRequires: libmicrodns-devel +BuildRequires: mesa-libGL-devel +BuildRequires: mesa-libGLU-devel +BuildRequires: orc-devel >= 0.4.17 +BuildRequires: srt-devel +BuildRequires: vulkan-devel +BuildRequires: xvidcore-devel +BuildRequires: pkgconfig(aom) +BuildRequires: pkgconfig(avtp) +BuildRequires: pkgconfig(bluez) >= 5.0 +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(clutter-1.0) >= 1.8 +BuildRequires: pkgconfig(clutter-glx-1.0) >= 1.8 +BuildRequires: pkgconfig(clutter-x11-1.0) >= 1.8 +BuildRequires: pkgconfig(dvdnav) >= 4.1.2 +BuildRequires: pkgconfig(dvdread) >= 4.1.2 +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(fdk-aac) +BuildRequires: pkgconfig(fluidsynth) >= 2.1 +BuildRequires: pkgconfig(gdk-x11-3.0) +BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(gio-unix-2.0) > 2.24 +BuildRequires: pkgconfig(glesv2) +BuildRequires: pkgconfig(gmodule-export-2.0) +BuildRequires: pkgconfig(gmodule-no-export-2.0) +BuildRequires: pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(gstreamer-1.0) >= %{version} +BuildRequires: pkgconfig(gstreamer-allocators-1.0) +BuildRequires: pkgconfig(gstreamer-app-1.0) +BuildRequires: pkgconfig(gstreamer-audio-1.0) +BuildRequires: pkgconfig(gstreamer-base-1.0) +BuildRequires: pkgconfig(gstreamer-check-1.0) +BuildRequires: pkgconfig(gstreamer-controller-1.0) +BuildRequires: pkgconfig(gstreamer-fft-1.0) +BuildRequires: pkgconfig(gstreamer-gl-1.0) +BuildRequires: pkgconfig(gstreamer-gl-egl-1.0) +BuildRequires: pkgconfig(gstreamer-gl-prototypes-1.0) +BuildRequires: pkgconfig(gstreamer-gl-wayland-1.0) +BuildRequires: pkgconfig(gstreamer-gl-x11-1.0) +BuildRequires: pkgconfig(gstreamer-net-1.0) +BuildRequires: pkgconfig(gstreamer-pbutils-1.0) +BuildRequires: pkgconfig(gstreamer-riff-1.0) +BuildRequires: pkgconfig(gstreamer-rtp-1.0) +BuildRequires: pkgconfig(gstreamer-rtsp-1.0) +BuildRequires: pkgconfig(gstreamer-sdp-1.0) +BuildRequires: pkgconfig(gstreamer-tag-1.0) +BuildRequires: pkgconfig(gstreamer-video-1.0) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(gtk+-wayland-3.0) +BuildRequires: pkgconfig(gtk+-x11-3.0) +BuildRequires: pkgconfig(gudev-1.0) +BuildRequires: pkgconfig(json-glib-1.0) +BuildRequires: pkgconfig(lc3) +BuildRequires: pkgconfig(lcms2) >= 2.7 +BuildRequires: pkgconfig(ldacBT-enc) +BuildRequires: pkgconfig(libass) >= 0.10.2 +BuildRequires: pkgconfig(libbs2b) >= 3.1.0 +BuildRequires: pkgconfig(libchromaprint) +BuildRequires: pkgconfig(libcrypto) +BuildRequires: pkgconfig(libcurl) >= 7.55.0 +BuildRequires: pkgconfig(libdca) +BuildRequires: pkgconfig(libdc1394-2) >= 2.2.5 +BuildRequires: pkgconfig(libde265) +BuildRequires: pkgconfig(libdrm) >= 2.4.104 +BuildRequires: pkgconfig(libexif) >= 0.6.16 +BuildRequires: pkgconfig(libfreeaptx) >= 0.1.1 +BuildRequires: pkgconfig(libmodplug) +BuildRequires: pkgconfig(libopenjp2) >= 2.2 +BuildRequires: pkgconfig(libopenmpt) +BuildRequires: pkgconfig(libpng) >= 1.0 +BuildRequires: pkgconfig(libqrencode) +BuildRequires: pkgconfig(librsvg-2.0) >= 2.36.2 +BuildRequires: pkgconfig(librtmp) +BuildRequires: pkgconfig(libSoundTouch) +BuildRequires: pkgconfig(libsoup-2.4) >= 2.48 +BuildRequires: pkgconfig(libsrtp2) >= 2.1.0 +BuildRequires: pkgconfig(libssh2) >= 1.4.3 +BuildRequires: pkgconfig(libusb-1.0) +BuildRequires: pkgconfig(libva) +BuildRequires: pkgconfig(libva-drm) +BuildRequires: pkgconfig(libva-x11) +BuildRequires: pkgconfig(libvisual-0.4) >= 0.4.0 +BuildRequires: pkgconfig(libwebp) >= 0.2.1 +BuildRequires: pkgconfig(libxml-2.0) >= 2.8 +BuildRequires: pkgconfig(lilv-0) >= 0.22 +BuildRequires: pkgconfig(lrdf) +BuildRequires: pkgconfig(ltc) >= 1.1.4 +BuildRequires: pkgconfig(mjpegtools) +BuildRequires: pkgconfig(nice) >= 0.1.20 +BuildRequires: pkgconfig(neon) >= 0.27 +BuildRequires: pkgconfig(nettle) >= 3.0 +BuildRequires: pkgconfig(nice) >= 0.1.14 +BuildRequires: pkgconfig(openal) >= 1.14 +BuildRequires: pkgconfig(opencv4) >= 4.0.0 +BuildRequires: pkgconfig(OpenEXR) +BuildRequires: pkgconfig(openh264) >= 1.3.0 +BuildRequires: pkgconfig(openssl) >= 1.0.1 +BuildRequires: pkgconfig(opus) >= 0.9.4 +BuildRequires: pkgconfig(pango) +BuildRequires: pkgconfig(pangocairo) >= 1.22.0 +BuildRequires: pkgconfig(Qt5Core) +BuildRequires: pkgconfig(Qt5Gui) +BuildRequires: pkgconfig(Qt5Quick) +BuildRequires: pkgconfig(Qt5WaylandClient) +BuildRequires: pkgconfig(Qt5X11Extras) +BuildRequires: pkgconfig(sbc) >= 1.0 +BuildRequires: pkgconfig(schroedinger-1.0) >= 1.0.10 +BuildRequires: pkgconfig(sndfile) >= 1.0.16 +BuildRequires: pkgconfig(spandsp) >= 0.0.6 +BuildRequires: pkgconfig(srt) >= 1.3.0 +BuildRequires: pkgconfig(SvtAv1Enc) >= 1.1 +BuildRequires: pkgconfig(tiger) >= 0.3.2 +BuildRequires: pkgconfig(vo-aacenc) +BuildRequires: pkgconfig(vo-amrwbenc) >= 0.1.0 +BuildRequires: pkgconfig(vulkan) +BuildRequires: pkgconfig(wayland-client) >= 1.15 +BuildRequires: pkgconfig(wayland-cursor) >= 1.15 +BuildRequires: pkgconfig(wayland-egl) >= 1.15 +BuildRequires: pkgconfig(wayland-protocols) >= 1.15 +BuildRequires: pkgconfig(wayland-server) >= 1.15 +BuildRequires: pkgconfig(webrtc-audio-processing-1) +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(x265) +BuildRequires: pkgconfig(xcb) >= 1.10 +BuildRequires: pkgconfig(xkbcommon) >= 0.8 +BuildRequires: pkgconfig(xkbcommon-x11) +BuildRequires: pkgconfig(wildmidi) >= 0.4.2 +BuildRequires: pkgconfig(zbar) >= 0.9 +BuildRequires: pkgconfig(zvbi-0.2) +BuildRequires: pkgconfig(zxing) +%ifarch x86_64 +BuildRequires: pkgconfig(libmfx) >= 1.0 +BuildRequires: pkgconfig(libmfx) <= 1.99 +BuildRequires: pkgconfig(vpl) >= 2.2 +%endif + +%description +GStreamer is a streaming media framework, based on graphs of elements which +operate on media data. + +This package contains plug-ins that aren't tested well enough, or the code is +not of good enough quality. + +%package fluidsynth +Summary: GStreamer "bad" fluidsynth plugin +Requires: %{name}%{?_isa} = %{?epoch}:%{version}-%{release} +Requires: soundfont2-default +Obsoletes: %{name}-free-fluidsynth < %{?epoch}:%{version}-%{release} +Provides: %{name}-free-fluidsynth = %{?epoch}:%{version}-%{release} +Provides: %{name}-free-fluidsynth%{?_isa} = %{?epoch}:%{version}-%{release} + +%description fluidsynth +This package contains the GStreamer Fluidsynth plugin. + +%package devel +Summary: Development files for the GStreamer "bad" plugins +Requires: %{name}%{?_isa} = %{?epoch}:%{version}-%{release} +Requires: gstreamer1-plugins-base-devel +Obsoletes: %{name}-free-devel < %{?epoch}:%{version}-%{release} +Provides: %{name}-free-devel = %{?epoch}:%{version}-%{release} +Provides: %{name}-free-devel%{?_isa} = %{?epoch}:%{version}-%{release} + +%description devel +%summary. + +%prep +%autosetup -p1 -n gst-plugins-bad-%{version} + +%build +%meson \ + -D accurip=enabled \ + -D adpcmdec=enabled \ + -D adpcmenc=enabled \ + -D aes=enabled \ + -D aiff=enabled \ + -D aja=disabled \ + -D amfcodec=disabled \ + -D analyticsoverlay=enabled \ + -D androidmedia=enabled \ + -D aom=enabled \ + -D applemedia=enabled \ + -D asfmux=enabled \ + -D asio=enabled \ + -D assrender=enabled \ + -D audiobuffersplit=enabled \ + -D audiofxbad=enabled \ + -D audiolatency=enabled \ + -D audiomixmatrix=enabled \ + -D audiovisualizers=enabled \ + -D autoconvert=enabled \ + -D avtp=enabled \ + -D bayer=enabled \ + -D bluez=enabled \ + -D bs2b=enabled \ + -D bz2=enabled \ + -D camerabin2=enabled \ + -D chromaprint=enabled \ + -D closedcaption=enabled \ + -D codec2json=enabled \ + -D codecalpha=enabled \ + -D codectimestamper=enabled \ + -D coloreffects=enabled \ + -D colormanagement=enabled \ + -D curl=enabled \ + -D curl-ssh2=enabled \ + -D d3d11=disabled \ + -D d3d11-hlsl-precompile=disabled \ + -D d3d11-math=disabled \ + -D d3d11-wgc=disabled \ + -D d3d12=disabled \ + -D d3dvideosink=disabled \ + -D dash=enabled \ + -D dc1394=enabled \ + -D debugutils=enabled \ + -D decklink=enabled \ + -D directfb=disabled \ + -D directshow=disabled \ + -D directsound=enabled \ + -D doc=disabled \ + -D drm=enabled \ + -D dtls=enabled \ + -D dts=enabled \ + -D dvb=enabled \ + -D dvbsubenc=enabled \ + -D dvbsuboverlay=enabled \ + -D dvdspu=enabled \ + -D dwrite=enabled \ + -D examples=enabled \ + -D extra-checks=enabled \ + -D faac=disabled \ + -D faad=disabled \ + -D faceoverlay=enabled \ + -D fbdev=enabled \ + -D fdkaac=enabled \ + -D festival=enabled \ + -D fieldanalysis=enabled \ + -D flite=enabled \ + -D fluidsynth=enabled \ + -D freeverb=enabled \ + -D frei0r=enabled \ + -D gaudieffects=enabled \ + -D gdp=enabled \ + -D geometrictransform=enabled \ + -D gl=enabled \ + -D glib-asserts=enabled \ + -D glib-checks=enabled \ + -D gme=enabled \ + -D gobject-cast-checks=enabled \ + -D gpl=enabled \ + -D gs=disabled \ + -D gsm=enabled \ + -D gst_play_tests=false \ + -D gtk3=enabled \ + -D hls=enabled \ + -D hls-crypto=auto \ + -D id3tag=enabled \ + -D insertbin=enabled \ + -D inter=enabled \ + -D interlace=enabled \ + -D introspection=enabled \ + -D ipcpipeline=enabled \ + -D iqa=disabled \ + -D isac=disabled \ + -D ivfparse=enabled \ + -D ivtc=enabled \ + -D jp2kdecimator=enabled \ + -D jpegformat=enabled \ + -D kms=enabled \ + -D ladspa=enabled \ + -D ladspa-rdf=enabled \ + -D lc3=enabled \ + -D ldac=enabled \ + -D libde265=enabled \ + -D librfb=enabled \ + -D lv2=enabled \ + -D magicleap=disabled \ + -D mediafoundation=enabled \ + -D microdns=enabled \ + -D midi=enabled \ + -D modplug=enabled \ + -D mpeg2enc=enabled \ + -D mpegdemux=enabled \ + -D mpegpsmux=enabled \ + -D mpegtsdemux=enabled \ + -D mpegtsmux=enabled \ + -D mplex=enabled \ + -D msdk=enabled \ + -D mse=enabled \ + -D musepack=disabled \ + -D mxf=enabled \ + -D neon=enabled \ + -D netsim=enabled \ + -D nls=enabled \ + -D nvcodec=enabled \ + -D onnx=disabled \ + -D onvif=enabled \ + -D openal=enabled \ + -D openaptx=enabled \ + -D opencv=enabled \ + -D openexr=enabled \ + -D openh264=enabled \ + -D openjpeg=enabled \ + -D openmpt=enabled \ + -D openni2=disabled \ + -D opensles=disabled \ + -D opus=enabled \ + -D orc=enabled \ + -D package-name="Fedora GStreamer-plugins-bad package" \ + -D package-origin="https://gstreamer.freedesktop.org" \ + -D pcapparse=enabled \ + -D pnm=enabled \ + -D proxy=enabled \ + -D qroverlay=enabled \ + -D qt6d3d11=disabled \ + -D rawparse=enabled \ + -D removesilence=enabled \ + -D resindvd=enabled \ + -D rist=enabled \ + -D rsvg=enabled \ + -D rtmp=enabled \ + -D rtmp2=enabled \ + -D rtp=enabled \ + -D sbc=enabled \ + -D sctp=enabled \ + -D sctp-internal-usrsctp=enabled \ + -D sdp=enabled \ + -D segmentclip=enabled \ + -D shm=enabled \ + -D siren=enabled \ + -D smooth=enabled \ + -D smoothstreaming=enabled \ + -D sndfile=enabled \ + -D soundtouch=enabled \ + -D spandsp=enabled \ + -D speed=enabled \ + -D srt=enabled \ + -D srtp=enabled \ + -D subenc=enabled \ + -D svtav1=enabled \ + -D svthevcenc=disabled \ + -D switchbin=enabled \ + -D teletext=enabled \ + -D tests=disabled \ + -D timecode=enabled \ + -D tinyalsa=disabled \ + -D tools=enabled \ + -D transcode=enabled \ + -D ttml=enabled \ + -D udev=enabled \ + -D unixfd=enabled \ + -D uvcgadget=enabled \ + -D uvch264=enabled \ + -D v4l2codecs=enabled \ + -D va=enabled \ + -D videofilters=enabled \ + -D videoframe_audiolevel=enabled \ + -D videoparsers=enabled \ + -D videosignal=enabled \ + -D vmnc=enabled \ + -D voaacenc=enabled \ + -D voamrwbenc=enabled \ + -D vulkan=enabled \ + -D vulkan-video=enabled \ + -D wasapi=disabled \ + -D wasapi2=disabled \ + -D wayland=enabled \ + -D webp=enabled \ + -D webrtc=enabled \ + -D webrtcdsp=enabled \ + -D wic=enabled \ + -D wildmidi=enabled \ + -D win32ipc=disabled \ + -D winks=enabled \ + -D winscreencap=enabled \ + -D wpe=disabled \ + -D x11=enabled \ + -D x265=enabled \ + -D y4m=enabled \ + -D zbar=enabled \ + -D zxing=enabled \ +%ifarch x86_64 + -D mfx_api=oneVPL \ + -D mfx-modules-dir=enabled \ + -D msdk=enabled \ + -D qsv=enabled \ +%else + -D msdk=disabled \ + -D qsv=disabled \ +%endif +%if "%?version" < "1.25.1" + -D asio-sdk-path=enabled +%endif + +%meson_build + +%install +%meson_install +install -p -m 644 -D %{SOURCE1} %{buildroot}%{_metainfodir}/gstreamer-bad.metainfo.xml + +%find_lang gst-plugins-bad-%{majorminor} + +%files -f gst-plugins-bad-%{majorminor}.lang +%license COPYING +%doc AUTHORS NEWS README.md RELEASE REQUIREMENTS +%{_bindir}/gst-transcoder-1.0 +%{_metainfodir}/gstreamer-bad.metainfo.xml +%{_libdir}/girepository-%{majorminor}/CudaGst-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstAnalytics-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstBadAudio-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstCodecs-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstCuda-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstDxva-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstInsertBin-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstMpegts-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstMse-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstPlayer-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstPlay-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstTranscoder-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstVa-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstVulkan-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstVulkanWayland-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstVulkanXCB-%{majorminor}.typelib +%{_libdir}/girepository-%{majorminor}/GstWebRTC-%{majorminor}.typelib +%{_libdir}/libgstadaptivedemux-%{majorminor}.so.* +%{_libdir}/libgstanalytics-%{majorminor}.so.* +%{_libdir}/libgstbadaudio-%{majorminor}.so.* +%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so.* +%{_libdir}/libgstcodecparsers-%{majorminor}.so.* +%{_libdir}/libgstcodecs-%{majorminor}.so.* +%{_libdir}/libgstcuda-%{majorminor}.so.* +%{_libdir}/libgstdxva-%{majorminor}.so.* +%{_libdir}/libgstinsertbin-%{majorminor}.so.* +%{_libdir}/libgstisoff-%{majorminor}.so.* +%{_libdir}/libgstmpegts-%{majorminor}.so.* +%{_libdir}/libgstmse-%{majorminor}.so.* +%{_libdir}/libgstopencv-%{majorminor}.so.* +%{_libdir}/libgstphotography-%{majorminor}.so.* +%{_libdir}/libgstplayer-%{majorminor}.so.* +%{_libdir}/libgstplay-%{majorminor}.so.* +%{_libdir}/libgstsctp-%{majorminor}.so.* +%{_libdir}/libgsttranscoder-%{majorminor}.so.* +%{_libdir}/libgsturidownloader-%{majorminor}.so.* +%{_libdir}/libgstva-%{majorminor}.so.* +%{_libdir}/libgstvulkan-%{majorminor}.so.* +%{_libdir}/libgstwayland-%{majorminor}.so.* +%{_libdir}/libgstwebrtc-%{majorminor}.so.* +%{_libdir}/libgstwebrtcnice-%{majorminor}.so.* +%dir %{_datadir}/gstreamer-%{majorminor}/encoding-profiles/ +%dir %{_datadir}/gstreamer-%{majorminor}/encoding-profiles/device/ +%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/device/dvd.gep +%dir %{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/ +%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/avi.gep +%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/flv.gep +%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/mkv.gep +%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/mp3.gep +%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/mp4.gep +%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/oga.gep +%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/ogv.gep +%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/ts.gep +%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/file-extension/webm.gep +%dir %{_datadir}/gstreamer-%{majorminor}/encoding-profiles/online-services/ +%{_datadir}/gstreamer-%{majorminor}/encoding-profiles/online-services/youtube.gep +%dir %{_datadir}/gstreamer-%{majorminor}/presets +%{_datadir}/gstreamer-%{majorminor}/presets/GstFreeverb.prs +%{_datadir}/gstreamer-%{majorminor}/presets/GstVoAmrwbEnc.prs +%{_libdir}/gstreamer-%{majorminor}/libgstaccurip.so +%{_libdir}/gstreamer-%{majorminor}/libgstadpcmdec.so +%{_libdir}/gstreamer-%{majorminor}/libgstadpcmenc.so +%{_libdir}/gstreamer-%{majorminor}/libgstaes.so +%{_libdir}/gstreamer-%{majorminor}/libgstaiff.so +%{_libdir}/gstreamer-%{majorminor}/libgstanalyticsoverlay.so +%{_libdir}/gstreamer-%{majorminor}/libgstaom.so +%{_libdir}/gstreamer-%{majorminor}/libgstasfmux.so +%{_libdir}/gstreamer-%{majorminor}/libgstassrender.so +%{_libdir}/gstreamer-%{majorminor}/libgstaudiobuffersplit.so +%{_libdir}/gstreamer-%{majorminor}/libgstaudiofxbad.so +%{_libdir}/gstreamer-%{majorminor}/libgstaudiolatency.so +%{_libdir}/gstreamer-%{majorminor}/libgstaudiomixmatrix.so +%{_libdir}/gstreamer-%{majorminor}/libgstaudiovisualizers.so +%{_libdir}/gstreamer-%{majorminor}/libgstautoconvert.so +%{_libdir}/gstreamer-%{majorminor}/libgstavtp.so +%{_libdir}/gstreamer-%{majorminor}/libgstbayer.so +%{_libdir}/gstreamer-%{majorminor}/libgstbluez.so +%{_libdir}/gstreamer-%{majorminor}/libgstbs2b.so +%{_libdir}/gstreamer-%{majorminor}/libgstbz2.so +%{_libdir}/gstreamer-%{majorminor}/libgstclosedcaption.so +%{_libdir}/gstreamer-%{majorminor}/libgstcamerabin.so +%{_libdir}/gstreamer-%{majorminor}/libgstchromaprint.so +%{_libdir}/gstreamer-%{majorminor}/libgstcodecalpha.so +%{_libdir}/gstreamer-%{majorminor}/libgstcodec2json.so +%{_libdir}/gstreamer-%{majorminor}/libgstcodectimestamper.so +%{_libdir}/gstreamer-%{majorminor}/libgstcoloreffects.so +%{_libdir}/gstreamer-%{majorminor}/libgstcolormanagement.so +%{_libdir}/gstreamer-%{majorminor}/libgstcurl.so +%{_libdir}/gstreamer-%{majorminor}/libgstdash.so +%{_libdir}/gstreamer-%{majorminor}/libgstdc1394.so +%{_libdir}/gstreamer-%{majorminor}/libgstde265.so +%{_libdir}/gstreamer-%{majorminor}/libgstdebugutilsbad.so +%{_libdir}/gstreamer-%{majorminor}/libgstdecklink.so +%{_libdir}/gstreamer-%{majorminor}/libgstdtls.so +%{_libdir}/gstreamer-%{majorminor}/libgstdtsdec.so +%{_libdir}/gstreamer-%{majorminor}/libgstdvb.so +%{_libdir}/gstreamer-%{majorminor}/libgstdvbsubenc.so +%{_libdir}/gstreamer-%{majorminor}/libgstdvbsuboverlay.so +%{_libdir}/gstreamer-%{majorminor}/libgstdvdspu.so +%{_libdir}/gstreamer-%{majorminor}/libgstfaceoverlay.so +%{_libdir}/gstreamer-%{majorminor}/libgstfbdevsink.so +%{_libdir}/gstreamer-%{majorminor}/libgstfdkaac.so +%{_libdir}/gstreamer-%{majorminor}/libgstfestival.so +%{_libdir}/gstreamer-%{majorminor}/libgstfieldanalysis.so +%{_libdir}/gstreamer-%{majorminor}/libgstflite.so +%{_libdir}/gstreamer-%{majorminor}/libgstfreeverb.so +%{_libdir}/gstreamer-%{majorminor}/libgstfrei0r.so +%{_libdir}/gstreamer-%{majorminor}/libgstgaudieffects.so +%{_libdir}/gstreamer-%{majorminor}/libgstgdp.so +%{_libdir}/gstreamer-%{majorminor}/libgstgeometrictransform.so +%{_libdir}/gstreamer-%{majorminor}/libgstgme.so +%{_libdir}/gstreamer-%{majorminor}/libgstgsm.so +%{_libdir}/gstreamer-%{majorminor}/libgstgtkwayland.so +%{_libdir}/gstreamer-%{majorminor}/libgsthls.so +%{_libdir}/gstreamer-%{majorminor}/libgstid3tag.so +%{_libdir}/gstreamer-%{majorminor}/libgstinsertbin.so +%{_libdir}/gstreamer-%{majorminor}/libgstinterlace.so +%{_libdir}/gstreamer-%{majorminor}/libgstinter.so +%{_libdir}/gstreamer-%{majorminor}/libgstivfparse.so +%{_libdir}/gstreamer-%{majorminor}/libgstivtc.so +%{_libdir}/gstreamer-%{majorminor}/libgstjp2kdecimator.so +%{_libdir}/gstreamer-%{majorminor}/libgstjpegformat.so +%{_libdir}/gstreamer-%{majorminor}/libgstkms.so +%{_libdir}/gstreamer-%{majorminor}/libgstladspa.so +%{_libdir}/gstreamer-%{majorminor}/libgstlc3.so +%{_libdir}/gstreamer-%{majorminor}/libgstldac.so +%{_libdir}/gstreamer-%{majorminor}/libgstlegacyrawparse.so +%{_libdir}/gstreamer-%{majorminor}/libgstlv2.so +%{_libdir}/gstreamer-%{majorminor}/libgstmidi.so +%{_libdir}/gstreamer-%{majorminor}/libgstmicrodns.so +%{_libdir}/gstreamer-%{majorminor}/libgstmodplug.so +%{_libdir}/gstreamer-%{majorminor}/libgstmpeg2enc.so +%{_libdir}/gstreamer-%{majorminor}/libgstmpegpsdemux.so +%{_libdir}/gstreamer-%{majorminor}/libgstmpegpsmux.so +%{_libdir}/gstreamer-%{majorminor}/libgstmpegtsdemux.so +%{_libdir}/gstreamer-%{majorminor}/libgstmpegtsmux.so +%{_libdir}/gstreamer-%{majorminor}/libgstmplex.so +%ifarch x86_64 +%{_libdir}/gstreamer-%{majorminor}/libgstmsdk.so +%endif +%{_libdir}/gstreamer-%{majorminor}/libgstmse.so +%{_libdir}/gstreamer-%{majorminor}/libgstmxf.so +%{_libdir}/gstreamer-%{majorminor}/libgstneonhttpsrc.so +%{_libdir}/gstreamer-%{majorminor}/libgstnetsim.so +%{_libdir}/gstreamer-%{majorminor}/libgstnvcodec.so +%{_libdir}/gstreamer-%{majorminor}/libgstopenal.so +%{_libdir}/gstreamer-%{majorminor}/libgstopenaptx.so +%{_libdir}/gstreamer-%{majorminor}/libgstopencv.so +%{_libdir}/gstreamer-%{majorminor}/libgstopenexr.so +%{_libdir}/gstreamer-%{majorminor}/libgstopenh264.so +%{_libdir}/gstreamer-%{majorminor}/libgstopenjpeg.so +%{_libdir}/gstreamer-%{majorminor}/libgstopenmpt.so +%{_libdir}/gstreamer-%{majorminor}/libgstopusparse.so +%{_libdir}/gstreamer-%{majorminor}/libgstpcapparse.so +%{_libdir}/gstreamer-%{majorminor}/libgstipcpipeline.so +%{_libdir}/gstreamer-%{majorminor}/libgstpnm.so +%{_libdir}/gstreamer-%{majorminor}/libgstproxy.so +%{_libdir}/gstreamer-%{majorminor}/libgstqroverlay.so +%ifarch x86_64 +%{_libdir}/gstreamer-%{majorminor}/libgstqsv.so +%endif +%{_libdir}/gstreamer-%{majorminor}/libgstremovesilence.so +%{_libdir}/gstreamer-%{majorminor}/libgstresindvd.so +%{_libdir}/gstreamer-%{majorminor}/libgstrfbsrc.so +%{_libdir}/gstreamer-%{majorminor}/libgstrist.so +%{_libdir}/gstreamer-%{majorminor}/libgstrsvg.so +%{_libdir}/gstreamer-%{majorminor}/libgstrtmp.so +%{_libdir}/gstreamer-%{majorminor}/libgstrtmp2.so +%{_libdir}/gstreamer-%{majorminor}/libgstrtpmanagerbad.so +%{_libdir}/gstreamer-%{majorminor}/libgstrtponvif.so +%{_libdir}/gstreamer-%{majorminor}/libgstsbc.so +%{_libdir}/gstreamer-%{majorminor}/libgstsctp.so +%{_libdir}/gstreamer-%{majorminor}/libgstsdpelem.so +%{_libdir}/gstreamer-%{majorminor}/libgstsegmentclip.so +%{_libdir}/gstreamer-%{majorminor}/libgstshm.so +%{_libdir}/gstreamer-%{majorminor}/libgstsiren.so +%{_libdir}/gstreamer-%{majorminor}/libgstsmooth.so +%{_libdir}/gstreamer-%{majorminor}/libgstsmoothstreaming.so +%{_libdir}/gstreamer-%{majorminor}/libgstsndfile.so +%{_libdir}/gstreamer-%{majorminor}/libgstsoundtouch.so +%{_libdir}/gstreamer-%{majorminor}/libgstspandsp.so +%{_libdir}/gstreamer-%{majorminor}/libgstspeed.so +%{_libdir}/gstreamer-%{majorminor}/libgstsrt.so +%{_libdir}/gstreamer-%{majorminor}/libgstsrtp.so +%{_libdir}/gstreamer-%{majorminor}/libgstsvtav1.so +%{_libdir}/gstreamer-%{majorminor}/libgstsubenc.so +%{_libdir}/gstreamer-%{majorminor}/libgstswitchbin.so +%{_libdir}/gstreamer-%{majorminor}/libgstteletext.so +%{_libdir}/gstreamer-%{majorminor}/libgsttimecode.so +%{_libdir}/gstreamer-%{majorminor}/libgsttranscode.so +%{_libdir}/gstreamer-%{majorminor}/libgstttmlsubs.so +%{_libdir}/gstreamer-%{majorminor}/libgstunixfd.so +%{_libdir}/gstreamer-%{majorminor}/libgstuvch264.so +%{_libdir}/gstreamer-%{majorminor}/libgstuvcgadget.so +%{_libdir}/gstreamer-%{majorminor}/libgstv4l2codecs.so +%{_libdir}/gstreamer-%{majorminor}/libgstva.so +%{_libdir}/gstreamer-%{majorminor}/libgstvideofiltersbad.so +%{_libdir}/gstreamer-%{majorminor}/libgstvideoframe_audiolevel.so +%{_libdir}/gstreamer-%{majorminor}/libgstvideoparsersbad.so +%{_libdir}/gstreamer-%{majorminor}/libgstvideosignal.so +%{_libdir}/gstreamer-%{majorminor}/libgstvmnc.so +%{_libdir}/gstreamer-%{majorminor}/libgstvoaacenc.so +%{_libdir}/gstreamer-%{majorminor}/libgstvoamrwbenc.so +%{_libdir}/gstreamer-%{majorminor}/libgstvulkan.so +%{_libdir}/gstreamer-%{majorminor}/libgstwaylandsink.so +%{_libdir}/gstreamer-%{majorminor}/libgstwebp.so +%{_libdir}/gstreamer-%{majorminor}/libgstwebrtc.so +%{_libdir}/gstreamer-%{majorminor}/libgstwebrtcdsp.so +%{_libdir}/gstreamer-%{majorminor}/libgstwildmidi.so +%{_libdir}/gstreamer-%{majorminor}/libgstx265.so +%{_libdir}/gstreamer-%{majorminor}/libgsty4mdec.so +%{_libdir}/gstreamer-%{majorminor}/libgstzbar.so +%{_libdir}/gstreamer-%{majorminor}/libgstzxing.so + +%files fluidsynth +%{_libdir}/gstreamer-%{majorminor}/libgstfluidsynthmidi.so +%{_libdir}/gstreamer-%{majorminor}/libgstmidi.so +%{_libdir}/gstreamer-%{majorminor}/libgstwildmidi.so + +%files devel +%{_datadir}/gir-%{majorminor}/CudaGst-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstAnalytics-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstBadAudio-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstCodecs-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstCuda-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstDxva-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstInsertBin-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstMpegts-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstMse-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstPlayer-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstPlay-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstTranscoder-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstVa-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstVulkan-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstVulkanWayland-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstVulkanXCB-%{majorminor}.gir +%{_datadir}/gir-%{majorminor}/GstWebRTC-%{majorminor}.gir +%{_includedir}/gstreamer-%{majorminor}/gst/* +%{_libdir}/libgstadaptivedemux-%{majorminor}.so +%{_libdir}/libgstanalytics-%{majorminor}.so +%{_libdir}/libgstbadaudio-%{majorminor}.so +%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so +%{_libdir}/libgstcodecparsers-%{majorminor}.so +%{_libdir}/libgstcodecs-%{majorminor}.so +%{_libdir}/libgstcuda-%{majorminor}.so +%{_libdir}/libgstdxva-%{majorminor}.so +%{_libdir}/libgstinsertbin-%{majorminor}.so +%{_libdir}/libgstisoff-%{majorminor}.so +%{_libdir}/libgstmpegts-%{majorminor}.so +%{_libdir}/libgstmse-%{majorminor}.so +%{_libdir}/libgstopencv-%{majorminor}.so +%{_libdir}/libgstphotography-%{majorminor}.so +%{_libdir}/libgstplay-%{majorminor}.so +%{_libdir}/libgstplayer-%{majorminor}.so +%{_libdir}/libgstsctp-%{majorminor}.so +%{_libdir}/libgsttranscoder-%{majorminor}.so +%{_libdir}/libgsturidownloader-%{majorminor}.so +%{_libdir}/libgstva-%{majorminor}.so +%{_libdir}/libgstvulkan-%{majorminor}.so +%{_libdir}/libgstwayland-%{majorminor}.so +%{_libdir}/libgstwebrtc-%{majorminor}.so +%{_libdir}/libgstwebrtcnice-%{majorminor}.so +%{_libdir}/pkgconfig/gstreamer-analytics-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-bad-audio-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-codecparsers-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-cuda-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-insertbin-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-mpegts-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-mse-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-photography-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-play-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-player-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-plugins-bad-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-sctp-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-transcoder-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-va-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-vulkan-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-vulkan-wayland-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-vulkan-xcb-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-wayland-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-webrtc-%{majorminor}.pc +%{_libdir}/pkgconfig/gstreamer-webrtc-nice-%{majorminor}.pc + +%changelog +%autochangelog diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/update.rhai b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/update.rhai new file mode 100644 index 0000000000..0fb6809d01 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-bad/update.rhai @@ -0,0 +1,11 @@ +import "andax/bump_extras.rhai" as bump; + +let bodhi_branch = bump::as_bodhi_ver(labels.branch); + +let pkg = "gstreamer1-plugins-bad-free"; +let branch = bump::as_bodhi_ver(labels.branch); + +bump::follow_bodhi_vr(rpm, "gstreamer1-plugins-bad-free", branch); + +let opencv_ver = bump::bodhi("opencv", bodhi_branch); +open_file("anda/multimedia/gstreamer1/gstreamer1-plugins-bad/OPENCV_VERSION.txt", "w").write(opencv_ver); diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/anda.hcl b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/anda.hcl new file mode 100644 index 0000000000..5ef2660d6e --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/anda.hcl @@ -0,0 +1,11 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "gstreamer1-plugins-ugly.spec" + } + labels { + subrepo = "extras" + mock = 1 + updbranch = 1 + } +} diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/gstreamer1-plugins-ugly.spec b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/gstreamer1-plugins-ugly.spec new file mode 100644 index 0000000000..11b773c4df --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/gstreamer1-plugins-ugly.spec @@ -0,0 +1,78 @@ +%global majorminor 1.0 + +Name: gstreamer1-plugins-ugly +Version: 1.24.11 +Release: 1%?dist +Summary: GStreamer streaming media framework "ugly" plugins +License: LGPLv2+ and LGPLv2 +URL: http://gstreamer.freedesktop.org/ + +Source0: http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-%{version}.tar.xz + +BuildRequires: gstreamer1-devel >= %{version} +BuildRequires: gstreamer1-plugins-base-devel >= %{version} + +BuildRequires: a52dec-devel >= 0.7.3 +BuildRequires: gcc-c++ +BuildRequires: gettext-devel >= 0.17 +BuildRequires: libdvdread-devel +BuildRequires: libid3tag-devel >= 0.15.0 +BuildRequires: meson >= 0.48.0 +BuildRequires: orc-devel >= 0.4.16 +BuildRequires: pkgconfig(gmodule-no-export-2.0) +BuildRequires: pkgconfig(libcdio) >= 0.76 +BuildRequires: pkgconfig(libmpeg2) >= 0.5.1 +BuildRequires: pkgconfig(mad) >= 0.15 +BuildRequires: pkgconfig(x264) >= 0.120 + +Obsoletes: %{name}-free < %{?epoch}:%{version}-%{release} +Provides: %{name}-free = %{?epoch}:%{version}-%{release} +Provides: %{name}-free%{?_isa} = %{?epoch}:%{version}-%{release} + +%description +This module contains a set of plugins that have good quality and are well tested, but can be questionable to distribute due to patents. + +%prep +%autosetup -n gst-plugins-ugly-%{version} + +%build +%meson \ + -D package-name="Fedora GStreamer-plugins-ugly package" \ + -D package-origin="http://gstreamer.freedesktop.org" \ + -D a52dec=enabled \ + -D asfdemux=enabled \ + -D cdio=enabled \ + -D doc=disabled \ + -D dvdlpcmdec=enabled \ + -D dvdread=enabled \ + -D dvdsub=enabled \ + -D gpl=enabled \ + -D mpeg2dec=enabled \ + -D realmedia=enabled \ + -D sidplay=disabled \ + -D x264=enabled \ + -D x264_libraries=libx264_main10.so + +%meson_build + +%install +%meson_install +find %{buildroot} -name '*.la' -delete +%find_lang gst-plugins-ugly-%{majorminor} + +%files -f gst-plugins-ugly-%{majorminor}.lang +%license COPYING +%doc AUTHORS NEWS README.md REQUIREMENTS +%{_datadir}/gstreamer-%{majorminor}/presets/*.prs +%{_libdir}/gstreamer-%{majorminor}/libgstasf.so +%{_libdir}/gstreamer-%{majorminor}/libgstdvdlpcmdec.so +%{_libdir}/gstreamer-%{majorminor}/libgstdvdsub.so +%{_libdir}/gstreamer-%{majorminor}/libgsta52dec.so +%{_libdir}/gstreamer-%{majorminor}/libgstcdio.so +%{_libdir}/gstreamer-%{majorminor}/libgstdvdread.so +%{_libdir}/gstreamer-%{majorminor}/libgstmpeg2dec.so +%{_libdir}/gstreamer-%{majorminor}/libgstrealmedia.so +%{_libdir}/gstreamer-%{majorminor}/libgstx264.so + +%changelog +%autochangelog diff --git a/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/update.rhai b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/update.rhai new file mode 100644 index 0000000000..5f9560fa48 --- /dev/null +++ b/anda/multimedia/gstreamer1/gstreamer1-plugins-ugly/update.rhai @@ -0,0 +1,5 @@ +import "andax/bump_extras.rhai" as bump; + +let vr = bump::bodhi_vr("gstreamer1-plugins-ugly-free", bump::as_bodhi_ver(labels.branch)); +rpm.version(vr[1]); +rpm.release(vr[2]); diff --git a/anda/multimedia/kvazaar/anda.hcl b/anda/multimedia/kvazaar/anda.hcl new file mode 100644 index 0000000000..9001334d1b --- /dev/null +++ b/anda/multimedia/kvazaar/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "kvazaar.spec" + } + labels { + mock =1 + } +} diff --git a/anda/multimedia/kvazaar/kvazaar.spec b/anda/multimedia/kvazaar/kvazaar.spec new file mode 100644 index 0000000000..92ef5997b4 --- /dev/null +++ b/anda/multimedia/kvazaar/kvazaar.spec @@ -0,0 +1,66 @@ +Name: kvazaar +Version: 2.3.1 +Release: 2%{?dist} +Summary: An open-source HEVC encoder +License: BSD and ISC +URL: https://ultravideo.fi/kvazaar.html + +Source0: https://github.com/ultravideo/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gcc +BuildRequires: libtool +BuildRequires: yasm + +%description +Kvazaar is the leading academic open-source HEVC encoder developed from scratch +in C. This package contains the application for encoding videos. + +%package libs +Summary: HEVC encoder %{name} libraries + +%description libs +The %{name}-devel package contains libraries and header files for developing +applications that use %{name}. This package contains the shared libraries. + +%package devel +Summary: Development files for %{name} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%prep +%autosetup -p1 + +%build +autoreconf -vif +%configure --enable-static=no +%make_build + +%install +%make_install +find %{buildroot} -name '*.la' -delete + +# Pick up docs in the files section +rm -fr %{buildroot}%{_docdir} + +%files +%{_bindir}/%{name} +%{_mandir}/man1/%{name}.* + +%files libs +%license LICENSE* +%doc README.md CREDITS +%{_libdir}/lib%{name}.so.7 +%{_libdir}/lib%{name}.so.7.4.0 + +%files devel +%{_includedir}/%{name}.h +%{_libdir}/lib%{name}.so +%{_libdir}/pkgconfig/%{name}.pc + +%changelog +%autochangelog diff --git a/anda/multimedia/mjpegtools/anda.hcl b/anda/multimedia/mjpegtools/anda.hcl new file mode 100644 index 0000000000..4660da642e --- /dev/null +++ b/anda/multimedia/mjpegtools/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "mjpegtools.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/multimedia/mjpegtools/mjpegtools.spec b/anda/multimedia/mjpegtools/mjpegtools.spec new file mode 100644 index 0000000000..bd3a980926 --- /dev/null +++ b/anda/multimedia/mjpegtools/mjpegtools.spec @@ -0,0 +1,222 @@ +%global build_cflags %{__build_flags_lang_c} %{?_distro_extra_cflags} -Wno-template-body +%global build_cxxflags %{__build_flags_lang_cxx} %{?_distro_extra_cxxflags} -Wno-template-body + +Name: mjpegtools +Version: 2.2.1 +Release: 1%{?dist} +Summary: Tools to manipulate MPEG data +License: GPLv2 +URL: http://mjpeg.sourceforge.net/ +Source0: https://downloads.sourceforge.net/sourceforge/mjpeg/%{name}-%{version}.tar.gz +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gcc-c++ +BuildRequires: libjpeg-devel +BuildRequires: nasm +BuildRequires: pkgconfig(libdv) >= 0.9 +BuildRequires: pkgconfig(sdl) >= 1.1.3 +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(gtk+-2.0) >= 2.4.0 +BuildRequires: libtool +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: %{name}-lav%{?_isa} = %{version}-%{release} +Requires: ffmpeg +Requires: which +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info + +%description +The mjpeg programs are a set of tools that can do recording of videos and playback. + +This package contains mjpegtools console utilities. + +%package gui +Summary: GUI tools to manipulate MPEG data +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description gui +This package contains mjpegtools GUI utilities. + +%package libs +Summary: MJPEGtools libraries + +%description libs +This package contains libraries which are used by %{name} and also by several +other projects. + +%package lav +Summary: MJPEGtools lavpipe libraries +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description lav +This package contains libraries used by %{name}. + +%package devel +Summary: Development files for mjpegtools libraries +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description devel +This package contains development files for building applications that use +%{name} libraries. + +%package lav-devel +Summary: Development files for mjpegtools lavpipe libraries +Requires: %{name}-lav%{?_isa} = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} + +%description lav-devel +This package contains development files for building applications that use +%{name} lavpipe libraries. + +%prep +%autosetup -p1 + +sed -i -e 's/ARCHFLAGS=.*/ARCHFLAGS=/g' configure* +sed -i -e 's|/lib /usr/lib|/%{_lib} %{_libdir}|' configure +for f in docs/yuvfps.1 ; do + iconv -f iso-8859-1 -t utf-8 $f > $f.utf8 ; mv $f.utf8 $f +done + +%build +autoreconf -vif +%configure \ + --disable-static \ + --with-dga \ + --with-gtk \ + --with-libdv \ + --with-libpng \ + --with-libquicktime \ + --with-libsdl \ + --with-v4l \ + --without-sdlgfx + +%make_build + +%install +%make_install +find %{buildroot} -name "*.la" -delete +rm -f %{buildroot}%{_infodir}/dir + +rm %{buildroot}%{_bindir}/mpegtranscode +rm %{buildroot}%{_bindir}/lav2avi.sh + +%post +/sbin/install-info %{_infodir}/mjpeg-howto.info %{_infodir}/dir || : + +%preun +[ $1 -eq 0 ] && \ +/sbin/install-info --delete %{_infodir}/mjpeg-howto.info %{_infodir}/dir || : + +%ldconfig_scriptlets libs +%ldconfig_scriptlets lav + +%files +%doc CHANGES ChangeLog AUTHORS BUGS README.lavpipe NEWS TODO +%{_bindir}/anytovcd.sh +%{_bindir}/jpeg2yuv +%{_bindir}/lav2mpeg +%{_bindir}/lav2wav +%{_bindir}/lav2yuv +%{_bindir}/lavaddwav +%{_bindir}/lavinfo +%{_bindir}/lavpipe +%{_bindir}/lavtc.sh +%{_bindir}/lavtrans +%{_bindir}/matteblend.flt +%{_bindir}/mjpeg_simd_helper +%{_bindir}/mp2enc +%{_bindir}/mpeg2enc +%{_bindir}/mplex +%{_bindir}/multiblend.flt +%{_bindir}/pgmtoy4m +%{_bindir}/png2yuv +%{_bindir}/pnmtoy4m +%{_bindir}/ppmtoy4m +%{_bindir}/transist.flt +%{_bindir}/y4mblack +%{_bindir}/y4mcolorbars +%{_bindir}/y4mdenoise +%{_bindir}/y4minterlace +%{_bindir}/y4mivtc +%{_bindir}/y4mscaler +%{_bindir}/y4mshift +%{_bindir}/y4mspatialfilter +%{_bindir}/y4mstabilizer +%{_bindir}/y4mtopnm +%{_bindir}/y4mtoppm +%{_bindir}/y4mtoyuv +%{_bindir}/y4munsharp +%{_bindir}/ypipe +%{_bindir}/yuv2lav +%{_bindir}/yuv4mpeg +%{_bindir}/yuvcorrect +%{_bindir}/yuvcorrect_tune +%{_bindir}/yuvdeinterlace +%{_bindir}/yuvdenoise +%{_bindir}/yuvfps +%{_bindir}/yuvinactive +%{_bindir}/yuvkineco +%{_bindir}/yuvmedianfilter +%{_bindir}/yuvscaler +%{_bindir}/yuvycsnoise +%{_bindir}/yuyvtoy4m +%{_infodir}/mjpeg-howto.info* +%{_mandir}/man1/jpeg2yuv.1* +%{_mandir}/man1/lav2mpeg.1* +%{_mandir}/man1/lav2wav.1* +%{_mandir}/man1/lav2yuv.1* +%{_mandir}/man1/lavpipe.1* +%{_mandir}/man1/lavrec.1* +%{_mandir}/man1/lavtrans.1* +%{_mandir}/man1/mjpegtools.1* +%{_mandir}/man1/mp2enc.1* +%{_mandir}/man1/mpeg2enc.1* +%{_mandir}/man1/mplex.1* +%{_mandir}/man1/pgmtoy4m.1* +%{_mandir}/man1/png2yuv.1* +%{_mandir}/man1/pnmtoy4m.1* +%{_mandir}/man1/ppmtoy4m.1* +%{_mandir}/man1/y4mcolorbars.1* +%{_mandir}/man1/y4mdenoise.1* +%{_mandir}/man1/y4mscaler.1* +%{_mandir}/man1/y4mtopnm.1* +%{_mandir}/man1/y4mtoppm.1* +%{_mandir}/man1/y4munsharp.1* +%{_mandir}/man1/yuv2lav.1* +%{_mandir}/man1/yuvdenoise.1* +%{_mandir}/man1/yuvfps.1* +%{_mandir}/man1/yuvinactive.1* +%{_mandir}/man1/yuvkineco.1* +%{_mandir}/man1/yuvmedianfilter.1* +%{_mandir}/man1/yuvscaler.1* +%{_mandir}/man1/yuvycsnoise.1* +%{_mandir}/man5/yuv4mpeg.5* + +%files gui +%{_bindir}/glav +%{_bindir}/lavplay +%{_bindir}/y4mhist +%{_bindir}/yuvplay +%{_mandir}/man1/lavplay.1* +%{_mandir}/man1/yuvplay.1* + +%files libs +%license COPYING +%{_libdir}/libm*.so.* + +%files lav +%license COPYING +%{_libdir}/liblav*.so.* + +%files devel +%{_includedir}/%{name} +%exclude %{_includedir}/%{name}/*lav*.h +%{_libdir}/libm*.so +%{_libdir}/pkgconfig/%{name}.pc + +%files lav-devel +%{_includedir}/%{name}/*lav*.h +%{_libdir}/liblav*.so + +%changelog +%autochangelog diff --git a/anda/multimedia/rtaudio/anda.hcl b/anda/multimedia/rtaudio/anda.hcl new file mode 100644 index 0000000000..30f5c1922d --- /dev/null +++ b/anda/multimedia/rtaudio/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + rpm { + spec = "rtaudio-nightly.spec" + } + labels { + nightly = 1 + subrepo = "extras" + } +} diff --git a/anda/multimedia/rtaudio/rtaudio-nightly.spec b/anda/multimedia/rtaudio/rtaudio-nightly.spec new file mode 100644 index 0000000000..b1c0342ba7 --- /dev/null +++ b/anda/multimedia/rtaudio/rtaudio-nightly.spec @@ -0,0 +1,200 @@ +#? https://src.fedoraproject.org/rpms/rtaudio/blob/db1aa72863ccbfd480e22c2f7aefb41ebb8e2360/f/rtaudio.spec + +Name: rtaudio-nightly +Version: 6.0.1 +Release: 1%?dist +Summary: Real-time Audio I/O Library +License: MIT +URL: https://www.music.mcgill.ca/~gary/rtaudio/ +Source0: %url/release/rtaudio-%version.tar.gz +Packager: madonuko +BuildRequires: alsa-lib-devel +BuildRequires: doxygen +BuildRequires: gcc-c++ +BuildRequires: jack-audio-connection-kit-devel +BuildRequires: libtool +BuildRequires: make +BuildRequires: pulseaudio-libs-devel +Conflicts: rtaudio +Provides: rtaudio = %version-%release + +%global _description %{expand: +RtAudio is a set of C++ classes that provide a common API for realtime audio +input/output across different operating systems. RtAudio significantly +simplifies the process of interacting with computer audio hardware. It was +designed with the following objectives: + + * object-oriented C++ design + * simple, common API across all supported platforms + * allow simultaneous multi-api support + * support dynamic connection of devices + * provide extensive audio device parameter control + * allow audio device capability probing + * automatic internal conversion for data format, channel number compensation, + (de)interleaving, and byte-swapping} + +%description %_description + + +%package devel +Summary: Real-time Audio I/O Library +Requires: %{name}%{?_isa} = %{version}-%{release} +Conflicts: rtaudio-devel +Provides: rtaudio-devel = %version-%release + +%description devel %_description + + +%prep +%autosetup -n rtaudio-%version +# Fix encoding issues +for file in tests/teststops.cpp; do + sed 's|\r||' $file > $file.tmp + iconv -f ISO-8859-1 -t UTF8 $file.tmp > $file.tmp2 + touch -r $file $file.tmp2 + mv -f $file.tmp2 $file +done + + +%build +export CFLAGS="%optflags -fPIC" +%configure --with-jack --with-alsa --with-pulse --enable-shared --disable-static --verbose +%make_build + + +%install +%make_install +%ldconfig_scriptlets + + +%files +%license doc/doxygen/license.txt +%doc README.md doc/release.txt +%{_libdir}/librtaudio.so.* + +%files devel +%doc doc/html doc/images +%{_includedir}/rtaudio/*.h +%{_libdir}/librtaudio.so +%{_libdir}/pkgconfig/rtaudio.pc + + +%changelog +* Tue Oct 15 2024 Richard Shaw - 6.0.1-1 +- Update to 6.0.1. + +* Fri Jul 19 2024 Fedora Release Engineering - 5.2.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jan 26 2024 Fedora Release Engineering - 5.2.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 5.2.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jul 21 2023 Fedora Release Engineering - 5.2.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Jan 20 2023 Fedora Release Engineering - 5.2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Oct 06 2022 Richard Shaw - 5.2.0-1 +- Update to 5.2.0. + +* Sat Jul 23 2022 Fedora Release Engineering - 5.0.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jan 21 2022 Fedora Release Engineering - 5.0.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 5.0.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jan 27 2021 Fedora Release Engineering - 5.0.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Aug 01 2020 Fedora Release Engineering - 5.0.0-8 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 5.0.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jan 30 2020 Fedora Release Engineering - 5.0.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jul 26 2019 Fedora Release Engineering - 5.0.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Feb 02 2019 Fedora Release Engineering - 5.0.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jul 14 2018 Fedora Release Engineering - 5.0.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Feb 09 2018 Fedora Release Engineering - 5.0.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sun Jan 07 2018 Orcan Ogetbil 5.0.0-1 +- Update to 5.0.0 + +* Thu Aug 03 2017 Fedora Release Engineering - 4.0.11-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 4.0.11-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 4.0.11-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 04 2016 Fedora Release Engineering - 4.0.11-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Jun 18 2015 Fedora Release Engineering - 4.0.11-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat May 02 2015 Kalev Lember - 4.0.11-8 +- Rebuilt for GCC 5 C++11 ABI change + +* Mon Aug 18 2014 Fedora Release Engineering - 4.0.11-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sun Jun 08 2014 Fedora Release Engineering - 4.0.11-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sun Aug 04 2013 Fedora Release Engineering - 4.0.11-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Feb 14 2013 Fedora Release Engineering - 4.0.11-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Nov 15 2012 Brendan Jones 4.0.11-3 +- Update source comments + +* Sun Oct 28 2012 Brendan Jones 4.0.11-2 +- Add pulse dependancies + +* Sun Oct 14 2012 Brendan Jones 4.0.11-1 +- Update to 4.011 + +* Wed Feb 09 2011 Fedora Release Engineering - 4.0.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Feb 05 2010 Orcan Ogetbil 4.0.7-1 +- Update to 4.0.7 +- Upstream is supporting shared libraries now. Drop the static library + +* Sun Jul 26 2009 Fedora Release Engineering - 4.0.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Fri Jun 05 2009 Orcan Ogetbil 4.0.6-1 +- Update to 4.0.6 + +* Sat Feb 28 2009 Orcan Ogetbil 4.0.5-3 +- Don't remove the tests/Release directory + +* Fri Feb 27 2009 Orcan Ogetbil 4.0.5-2 +- Build static library only + +* Tue Feb 24 2009 Orcan Ogetbil 4.0.5-1 +- Initial build diff --git a/anda/multimedia/rtaudio/update.rhai b/anda/multimedia/rtaudio/update.rhai new file mode 100644 index 0000000000..3b9858561e --- /dev/null +++ b/anda/multimedia/rtaudio/update.rhai @@ -0,0 +1 @@ +rpm.version(find(`Latest Updates \(Version ([\d.]+)\)`, get("https://www.music.mcgill.ca/~gary/rtaudio/"), 1)); diff --git a/anda/multimedia/uavs3d/anda.hcl b/anda/multimedia/uavs3d/anda.hcl new file mode 100644 index 0000000000..e74e92e8fc --- /dev/null +++ b/anda/multimedia/uavs3d/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "uavs3d.spec" + } + labels { + mock =1 + } +} diff --git a/anda/multimedia/uavs3d/i686-build-fix.patch b/anda/multimedia/uavs3d/i686-build-fix.patch new file mode 100644 index 0000000000..db49368886 --- /dev/null +++ b/anda/multimedia/uavs3d/i686-build-fix.patch @@ -0,0 +1,14 @@ +--- a/source/decoder/uavs3d.c ++++ b/source/decoder/uavs3d.c +@@ -1083,11 +1083,6 @@ + uavs3d_funs_init_arm64(); + #elif defined(ENABLE_FUNCTION_ARM32) + uavs3d_funs_init_armv7(); +-#elif defined(ENABLE_FUNCTION_X86) +- uavs3d_funs_init_sse(); +- if (uavs3d_simd_avx_level(NULL) >= 2) { +- uavs3d_funs_init_avx2(); +- } + #endif + + ctx->dec_cfg.frm_threads = COM_CLIP3(1, 32, ctx->dec_cfg.frm_threads); diff --git a/anda/multimedia/uavs3d/uavs3d-soname.patch b/anda/multimedia/uavs3d/uavs3d-soname.patch new file mode 100644 index 0000000000..e648250a2b --- /dev/null +++ b/anda/multimedia/uavs3d/uavs3d-soname.patch @@ -0,0 +1,20 @@ +diff -Naur uavs3d-7b1dd734c926a23f8134b42dbfaac4d22cd6ba1d.old/CMakeLists.txt uavs3d-7b1dd734c926a23f8134b42dbfaac4d22cd6ba1d/CMakeLists.txt +--- uavs3d-7b1dd734c926a23f8134b42dbfaac4d22cd6ba1d.old/CMakeLists.txt 2022-03-16 11:03:27.762312616 +0100 ++++ uavs3d-7b1dd734c926a23f8134b42dbfaac4d22cd6ba1d/CMakeLists.txt 2022-03-16 11:03:35.893460120 +0100 +@@ -15,4 +15,3 @@ + target_link_libraries(uavs3dec m) + endif() + target_link_libraries(uavs3dec uavs3d) +-#target_link_libraries(uavs3dec dl) +diff -Naur uavs3d-7b1dd734c926a23f8134b42dbfaac4d22cd6ba1d.old/source/CMakeLists.txt uavs3d-7b1dd734c926a23f8134b42dbfaac4d22cd6ba1d/source/CMakeLists.txt +--- uavs3d-7b1dd734c926a23f8134b42dbfaac4d22cd6ba1d.old/source/CMakeLists.txt 2022-03-16 11:03:27.764312652 +0100 ++++ uavs3d-7b1dd734c926a23f8134b42dbfaac4d22cd6ba1d/source/CMakeLists.txt 2022-03-16 11:03:45.958642708 +0100 +@@ -128,6 +128,8 @@ + MESSAGE(STATUS "BUILD_SHARED_LIBS \t\t: false") + endif() + add_library(${LIBNAME} ${DIR_UAVS3D_SRC} ${UAVS3D_ASM_FILES}) ++set_target_properties(${LIBNAME} PROPERTIES VERSION 1.2.0) ++set_target_properties(${LIBNAME} PROPERTIES SOVERSION 1) + + if (NOT MSVC) + target_link_libraries(${LIBNAME} m) diff --git a/anda/multimedia/uavs3d/uavs3d.spec b/anda/multimedia/uavs3d/uavs3d.spec new file mode 100644 index 0000000000..d392187261 --- /dev/null +++ b/anda/multimedia/uavs3d/uavs3d.spec @@ -0,0 +1,74 @@ +%global commit0 1fd04917cff50fac72ae23e45f82ca6fd9130bd8 +%global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) +%global date 20230223 + +Name: uavs3d +Summary: AVS3 decoder library +Version: 1.2.0 +Release: 4%{?shortcommit0:.%{date}git%{shortcommit0}}%{?dist} +License: BSD +URL: https://github.com/uavs3/uavs3d + +Source0: https://github.com/uavs3/uavs3d/archive/%{commit0}.tar.gz#/%{name}-%{shortcommit0}.tar.gz +Patch0: %{name}-soname.patch +%ifarch %ix86 +Patch1: i686-build-fix.patch +%endif + +BuildRequires: cmake >= 3.5 +BuildRequires: gcc-c++ +BuildRequires: git + +%description +Opensource and cross-platform AVS3 decoder that supports AVS3-P2 baseline +profile. + +%package libs +Summary: AVS3 decoder library + +%description libs +Opensource and cross-platform AVS3 decoder that supports AVS3-P2 baseline +profile. + +%package devel +Summary: Header files for uavs3d library +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for developing +applications that use %{name}. + +%prep +%autosetup -n %{name}-%{commit0} -p1 +%ifnarch %ix86 + sed -i '/libdir/ s/"lib"/"%{_lib}"/' source/CMakeLists.txt +%endif + +%build +%cmake \ + -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \ + -DCMAKE_SKIP_RPATH:BOOL=YES \ + -DCOMPILE_10BIT:BOOL=ON + +%cmake_build + +%install +%cmake_install +install -p -m 755 -D %{__cmake_builddir}/uavs3dec %{buildroot}%{_bindir}/uavs3dec + +%files +%{_bindir}/uavs3dec + +%files libs +%license COPYING +%doc README.md +%{_libdir}/libuavs3d.so.1 +%{_libdir}/libuavs3d.so.%{version} + +%files devel +%{_includedir}/%{name}.h +%{_libdir}/libuavs3d.so +%{_libdir}/pkgconfig/%{name}.pc + +%changelog +%autochangelog diff --git a/anda/multimedia/vvenc/anda.hcl b/anda/multimedia/vvenc/anda.hcl new file mode 100644 index 0000000000..ccbfbd4469 --- /dev/null +++ b/anda/multimedia/vvenc/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "vvenc.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/multimedia/vvenc/vvenc.spec b/anda/multimedia/vvenc/vvenc.spec new file mode 100644 index 0000000000..260403c943 --- /dev/null +++ b/anda/multimedia/vvenc/vvenc.spec @@ -0,0 +1,73 @@ +Name: vvenc +Version: 1.12.1 +Release: 1%{?dist} +Summary: VVenC, the Fraunhofer Versatile Video Encoder +License: BSD-3-Clause +URL: https://github.com/fraunhoferhhi/%{name} + +Source0: %{url}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz + +BuildRequires: cmake +BuildRequires: gcc-c++ + +%description +VVenC, the Fraunhofer Versatile Video Encoder, is a fast and efficient software +H.266/VVC encoder implementation with the following main features: + +- Easy to use encoder implementation with five predefined quality/speed presets; +- Perceptual optimization to improve subjective video quality, based on the + XPSNR visual model; +- Extensive frame-level and task-based parallelization with very good scaling; +- Frame-level single-pass and two-pass rate control supporting variable bit-rate + (VBR) encoding. + +%package libs +Summary: VVenC, the Fraunhofer Versatile Video Encoder %{name} libraries + +%description libs +The %{name}-devel package contains libraries and header files for developing +applications that use %{name}. This package contains the shared libraries. + +%package devel +Summary: Development files for %{name} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%prep +%autosetup -p1 + +%build +export CXXFLAGS="%{optflags} -Wno-error=maybe-uninitialized -Wno-error=uninitialized" +%cmake \ + -DCMAKE_SKIP_INSTALL_RPATH=OFF \ + -DVVENC_INSTALL_FULLFEATURE_APP=ON +%cmake_build + +%install +%cmake_install + +%files +%{_bindir}/%{name}app +%{_bindir}/%{name}FFapp + +%files libs +%license LICENSE.txt +%doc README.md changelog.txt +%{_libdir}/lib%{name}.so.1.12 +%{_libdir}/lib%{name}.so.%{version} + +%files devel +%{_includedir}/%{name}/ +%{_libdir}/cmake/%{name}/%{name}*.cmake +%{_libdir}/lib%{name}.so +%{_libdir}/pkgconfig/lib%{name}.pc + +%changelog +* Mon Nov 11 2024 Simone Caronni - 1.12.1-1 +- Update to 1.12.1. + +* Mon Aug 19 2024 Simone Caronni - 1.12.0-1 +- First build. \ No newline at end of file diff --git a/anda/multimedia/x264-bootstrap/anda.hcl b/anda/multimedia/x264-bootstrap/anda.hcl new file mode 100644 index 0000000000..46255b7fbc --- /dev/null +++ b/anda/multimedia/x264-bootstrap/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "x264-bootstrap.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/multimedia/x264-bootstrap/x264-bootstrap.spec b/anda/multimedia/x264-bootstrap/x264-bootstrap.spec new file mode 100644 index 0000000000..d216dbf9d3 --- /dev/null +++ b/anda/multimedia/x264-bootstrap/x264-bootstrap.spec @@ -0,0 +1,822 @@ +%global fusionsrc_commit 91b92ea4846982e5d9eb58744fda70f75d0faf8d + +# globals for x264-0.164-20231001git31e19f92.tar.bz2 +%global api 164 +%global gitdate 20231001 +%global gitversion 31e19f92 +%global gitlongver 31e19f92f00c7003fa115047ce50978bc98c3a0d + +%global snapshot %{gitdate}git%{gitversion} +%global gver .%{gitdate}git%{gitversion} +%global branch stable + +%global _with_bootstrap 1 + +%{?_with_bootstrap: +%global _without_gpac 1 +%global _without_libavformat 1 +%global _without_libswscale 1 +} + +# Reduce dependencies to build x264-libs on i686 +%if 0%{?fedora} +%ifarch i686 +%global _without_gpac 1 +%global _without_libavformat 1 +%global _without_libswscale 1 +%endif +%endif + +#Whitelist of arches with dedicated ASM code +%global asmarch aarch64 armv7hl armv7hnl i686 ppc64 ppc64le x86_64 +%ifnarch %{asmarch} +%global _without_asm 1 +%endif + +Summary: H264/AVC video streams encoder +Name: x264-bootstrap +Version: 0.0.%{api} +Release: 15%{?gver}%{?_with_bootstrap:_bootstrap}%{?dist} +License: GPLv2+ +URL: https://www.videolan.org/developers/x264.html +Source0: https://code.videolan.org/videolan/x264/-/archive/%gitversion.tar.bz2 +Source1: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-snapshot.sh +Source2: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/version.h + +# don't remove config.h and don't re-run version.sh +Patch0: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-nover.patch +# add 10b suffix to high bit depth build +Patch1: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-10b.patch +# fix assignment from incompatible pointer type errors +Patch2: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-altivec-incompatible-pointer-type.patch +Patch11: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-opencl.patch + +BuildRequires: anda-srpm-macros git-core +BuildRequires: gcc +%{!?_without_gpac:BuildRequires: gpac-static >= 1.0.1 zlib-devel openssl-devel libpng-devel libjpeg-devel xz-devel libglvnd-devel mesa-libGLU-devel faad2-devel libmad-devel xvidcore-devel a52dec-devel libvorbis-devel libtheora-devel openjpeg2-devel } +%{!?_without_libavformat:BuildRequires: ffmpeg-devel} +%{?_with_ffmpegsource:BuildRequires: ffmpegsource-devel} +# https://bugzilla.rpmfusion.org/show_bug.cgi?id=3975 +%ifarch armv7hl armv7hnl +BuildRequires: execstack +%endif +%ifarch %{asmarch} +BuildRequires: nasm +%endif +BuildRequires: pkgconfig(bash-completion) +# we need to enforce the exact EVR for an ISA - not only the same ABI +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: ffmpeg-libs%{?_isa} +Provides: x264 = %version-%release + +%description +x264 is a free library for encoding H264/AVC video streams, written from +scratch. + +This package contains the frontend. + +%package libs +Summary: Library for encoding H264/AVC video streams +Recommends: %{_libdir}/libOpenCL.so.1 +Provides: x264-libs = %version-%release + +%description libs +x264 is a free library for encoding H264/AVC video streams, written from +scratch. + +%package devel +Summary: Development files for the x264 library +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: pkgconfig +Provides: x264-devel = %version-%release + +%description devel +x264 is a free library for encoding H264/AVC video streams, written from +scratch. + +This package contains the development files. + +%global x_configure \ +./configure \\\ + --host=%{_host} \\\ + --prefix=%{_prefix} \\\ + --exec-prefix=%{_exec_prefix} \\\ + --bindir=%{_bindir} \\\ + --includedir=%{_includedir} \\\ + --libdir=%{_libdir} \\\ + %{?_without_libavformat:--disable-lavf} \\\ + %{?_without_libswscale:--disable-swscale} \\\ + %{!?_with_ffmpegsource:--disable-ffms} \\\ + --enable-debug \\\ + --enable-shared \\\ + --system-libx264 \\\ + --enable-pic + +%prep +%setup -q -n x264-%gitversion-%gitlongver + +mkdir x264-0.%{api}-%{snapshot} +pushd x264-0.%{api}-%{snapshot} +git init +git remote add origin https://code.videolan.org/videolan/x264.git +git fetch --depth 1 origin %gitlongver +git checkout FETCH_HEAD +sh version.sh > ./version.h + +cp %{SOURCE2} . +%patch -P0 -p1 -b .nover +%patch -P1 -p1 -b .10b +%patch -P2 -p1 -b .ptr +%patch -P11 -p1 -b .opencl +popd + +for variant in generic generic10 ; do + rm -rf ${variant} + cp -pr x264-0.%{api}-%{snapshot} ${variant} +done + + +%build +%set_build_flags +pushd generic +%{x_configure}\ + %{?_without_asm:--disable-asm} + +%make_build +popd + +pushd generic10 +%{x_configure}\ + %{?_without_asm:--disable-asm}\ + --disable-cli\ + --disable-opencl \ + --bit-depth=10 + +%make_build +popd + +%install +# NOTE: the order is important here! We want the generic devel stuff +for variant in generic10 generic ; do +pushd ${variant} +%make_install +popd +done + +#Fix timestamp on x264 generated headers +touch -r generic/version.h %{buildroot}%{_includedir}/x264.h %{buildroot}%{_includedir}/x264_config.h + +# https://bugzilla.rpmfusion.org/show_bug.cgi?id=3975 +%ifarch armv7hl armv7hnl +execstack -c %{buildroot}%{_libdir}/libx264{,10b}.so.%{api} +%endif + +install -dm755 %{buildroot}%{_pkgdocdir} +install -pm644 generic/{AUTHORS,COPYING} %{buildroot}%{_pkgdocdir}/ + + +%ldconfig_scriptlets libs + + +%files +%{_bindir}/x264 +%dir %{_datadir}/bash-completion +%dir %{_datadir}/bash-completion/completions +%{_datadir}/bash-completion/completions/x264 + +%files libs +%dir %{_pkgdocdir} +%{_pkgdocdir}/AUTHORS +%license %{_pkgdocdir}/COPYING +%{_libdir}/libx264.so.%{api} +%{_libdir}/libx26410b.so.%{api} + +%files devel +%doc generic/doc/* +%{_includedir}/x264.h +%{_includedir}/x264_config.h +%{_libdir}/libx264.so +%{_libdir}/libx26410b.so +%{_libdir}/pkgconfig/x264.pc + +%changelog +* Tue Oct 08 2024 Nicolas Chauvet - 0.164-15.20231001git31e19f92 +- Rebuilt + +* Fri Aug 02 2024 RPM Fusion Release Engineering - 0.164-14.20231001git31e19f92 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sun Mar 10 2024 Dominik Mierzejewski - 0.164-13.20231001git31e19f92 +- Fix "assignment from incompatible pointer type" errors on ppc64le +- Use correct build dependency on bash-completion + +* Sun Feb 04 2024 RPM Fusion Release Engineering - 0.164-12.20231001git31e19f92 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Nov 12 2023 Leigh Scott - 0.164-11.20231001git31e19f92 +- Rebuild for new ffmpeg version + +* Sun Oct 01 2023 Sérgio Basto - 0.164-10.20231001git31e19f92 +- Update to x264-0.164-20231001git31e19f92 (stable branch) + +* Wed Sep 27 2023 Sérgio Basto - 0.164-9.20220602gitbaee400f +- [Bug 6769] Include bash completion definitions for x264 + +* Wed Aug 02 2023 RPM Fusion Release Engineering - 0.164-8.20220602gitbaee400f +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon Mar 13 2023 Leigh Scott - 0.164-7.20220602gitbaee400f +- Rebuild for gpac + +* Tue Feb 28 2023 Sérgio Basto - 0.164-6.20220602gitbaee400f +- Disable build with gpac until we can build gapc with ffmepg-6 + +* Tue Feb 28 2023 Leigh Scott - 0.164-5.20220602gitbaee400f +- Rebuilt for new ffmpeg + +* Sun Feb 19 2023 Leigh Scott - 0.164-4.20220602gitbaee400f +- rebuilt + +* Sun Sep 04 2022 Leigh Scott - 0.164-3.20220602gitbaee400f +- Add requires ffmpeg-libs + +* Mon Aug 08 2022 RPM Fusion Release Engineering - 0.164-2.20220602gitbaee400f +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg + 5.1 + +* Mon Jun 06 2022 Sérgio Basto - 0.164-1.20220602gitbaee400f +- Update to x264-0.164-20220602gitbaee400f (stable branch) + +* Sat Mar 05 2022 Sérgio Basto - 0.163-6.20210613git5db6aa6 +- Rebuild for new gpac on F36 + +* Sat Feb 26 2022 Leigh Scott - 0.163-5.20210613git5db6aa6 +- Rebuild for new gpac + +* Wed Feb 09 2022 RPM Fusion Release Engineering - 0.163-4.20210613git5db6aa6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Nov 09 2021 Leigh Scott - 0.163-3.20210613git5db6aa6 +- Rebuilt for new ffmpeg snapshot + +* Tue Aug 03 2021 RPM Fusion Release Engineering - 0.163-2.20210613git5db6aa6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jun 14 2021 Sérgio Basto - 0.163-1.20210613git5db6aa6 +- x264-0.163-20210613git5db6aa6 soname bump +- gpac patch accepted upstream with modifications + +* Tue Apr 13 2021 Sérgio Basto - 0.161-6.20210412git55d517b +- Update to x264-0.161-20210412git55d517b (stable branch) + +* Thu Feb 04 2021 RPM Fusion Release Engineering - 0.161-5.20210124git544c61f +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sun Jan 24 2021 Sérgio Basto - 0.161-4.20210124git544c61f +- Update to 0.161-20210124git544c61f (stable branch) + +* Tue Jan 19 2021 Dominik Mierzejewski - 0.161-3.20200912gitd198931 +- Drop non-asm build for i686 and ppc64 (rfbz#5855) +- Use set_build_flags instead of configure macro for non-autotools script (rfbz#5854) + +* Thu Dec 31 2020 Leigh Scott - 0.161-2.20200912gitd198931 +- Rebuilt for new ffmpeg snapshot + +* Wed Nov 18 2020 Sérgio Basto - 0.161-1.20200912gitd198931 +- Update x264 to api 0.161 (stable branch) + +* Wed Aug 19 2020 RPM Fusion Release Engineering - 0.160-2.20200702gitcde9a93 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 06 2020 Sérgio Basto - 0.160-1.20200702gitcde9a93 +- Update to 0.160-20200702gitcde9a93 (stable branch) + +* Mon Jul 06 2020 Nicolas Chauvet - 0.159-11.20200409git296494a +- Bump + +* Mon Jul 06 2020 Sérgio Basto - 0.159-10.20200409git296494a +- Fix detection of gpac try 2 + +* Mon Jul 06 2020 Sérgio Basto - 0.159-9.20200409git296494a +- Fix detection of gpac + +* Wed Jun 10 2020 Sérgio Basto - 0.159-8.20200409git296494a +- Update to 0.159-20200409git296494a (stable branch) +- Replace all __make _smp_mflags by make_build macro + +* Thu Mar 12 2020 Leigh Scott - 0.159-7.20191127git1771b55 +- Rebuilt for i686 + +* Wed Mar 11 2020 Nicolas Chauvet - 0.159-6.20191127git1771b55_bootstrap +- bootstrap for i686 + +* Sat Feb 22 2020 Leigh Scott - 0.159-5.20191127git1771b55 +- Rebuild for ffmpeg-4.3 git + +* Wed Feb 05 2020 RPM Fusion Release Engineering - 0.159-4.20191127git1771b55 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Dec 17 2019 Leigh Scott - 0.159-3.20191127git1771b55 +- Rebuild without bootstrap + +* Tue Dec 17 2019 Leigh Scott - 0.159-2.20191127git1771b55_bootstrap +- DO A BOOTSTRAP BUILD + +* Mon Dec 16 2019 Sérgio Monteiro Basto - 0.159-1.20191127git1771b55 +- Update to 0.159-20191127-git1771b55 (stable branch) + +* Fri Oct 04 2019 Dominik Mierzejewski - 0.157-12.20190717git34c06d1 +- don't overwrite generic headers with 10bit on simdarch (rfbz#5071) + +* Mon Aug 26 2019 Nicolas Chauvet - 0.157-11.20190717git34c06d1 +- Drop hack for arm builders + +* Tue Aug 06 2019 Leigh Scott - 0.157-10.20190717git34c06d1 +- Rebuild for new ffmpeg version + +* Wed Jul 17 2019 Sérgio Basto - 0.157-9.20190717git34c06d1 +- 0.157 update, date 2019-07-17 (stable branch) + +* Tue May 07 2019 Sérgio Basto - 0.157-8.20190303git72db437 +- Revert "Build /usr/bin/x264 with gpac shared lib instead static lib." + +* Wed May 01 2019 Leigh Scott - 0.157-7.20190303git72db437 +- Fix ARM rpm mangle issue + +* Tue Apr 30 2019 Sérgio Basto - 0.157-6.20190303git72db437_bootstrap +- Bootstrap to fix arm builds + +* Mon Apr 29 2019 Sérgio Basto - 0.157-5.20190303git72db437 +- Enable opencl (which is default) only exist --disable-opencl option +- Disable opencl on 10bit seems that is just prepared for 8bit. +- Build /usr/bin/x264 with gpac shared lib instead static lib. + +* Sun Apr 28 2019 Leigh Scott - 0.157-4.20190303git72db437 +- Fix opencl dlopen (rfbz#5185) + +* Tue Mar 12 2019 Leigh Scott - 0.157-3.20190303git72db437 +- Disable bootstrap build + +* Tue Mar 12 2019 Leigh Scott - 0.157-2.20190303git72db437_bootstrap +- Do the forgotten bootstrap build + +* Tue Mar 12 2019 Sérgio Basto - 0.157-1.20190303git72db437 +- Update to 0.157 (stable branch) +- Rebase patches + +* Tue Mar 05 2019 RPM Fusion Release Engineering - 0.155-3.20180806git0a84d98 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Nov 07 2018 Stefan Becker - 0.155-2.20180806git0a84d98 +- reverse order of generic/generic10 install to fix -devel contents (rfbz #5071) + +* Thu Oct 04 2018 Sérgio Basto - 0.155-1.20180806git0a84d98 +- Update x264 to 0.155 +- Rebase x264-10b.patch +- Add a patch to fix linking with --system-libx264 on x86 + ( https://patches.videolan.org/patch/21704/ ) + +* Sun Aug 19 2018 Leigh Scott - 0.152-7.20171224gite9a5903 +- Rebuilt for Fedora 29 Mass Rebuild binutils issue + +* Fri Jul 27 2018 RPM Fusion Release Engineering - 0.152-6.20171224gite9a5903 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Mar 08 2018 RPM Fusion Release Engineering - 0.152-5.20171224gite9a5903 +- Rebuilt for new ffmpeg snapshot + +* Thu Mar 01 2018 RPM Fusion Release Engineering - 0.152-4.20171224gite9a5903 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Jan 17 2018 Leigh Scott - 0.152-3.20171224gite9a5903 +- Rebuilt for ffmpeg-3.5 git + +* Thu Jan 04 2018 Sérgio Basto - 0.152-2.20171224gite9a5903 +- un-bootstrap x264 + +* Sat Dec 30 2017 Sérgio Basto - 0.152-1.20171224gite9a5903_bootstrap +- Update x264 to 0.152 and switch asm compiler from yasm to nasm + +* Thu Aug 31 2017 RPM Fusion Release Engineering - 0.148-22.20170521gitaaa9aa8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jun 26 2017 Sérgio Basto - 0.148-21.20170521gitaaa9aa8 +- Update x264 to x264-0.148-20170521-aaa9aa8 + +* Mon May 22 2017 Sérgio Basto - 0.148-20.20170519gitd32d7bf +- Update x264 to x264-0.148-20170519-d32d7bf + +* Sat Apr 29 2017 Leigh Scott - 0.148-19.20170121git97eaef2 +- Rebuild for ffmpeg update + +* Wed Mar 22 2017 Sérgio Basto - 0.148-18.20170121git97eaef2 +- Unbootstrap + +* Mon Mar 20 2017 RPM Fusion Release Engineering - 0.148-17.20170121git97eaef2_bootstrap +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sat Mar 18 2017 Sérgio Basto - 0.148-16.20170121git97eaef2_bootstrap +- Bootstrap for ppc64, ppc64le and aarch64 + +* Wed Jan 25 2017 Sérgio Basto - 0.148-15.20170121git97eaef2 +- Update x264 to git stable snapshot of 20170121 + +* Sat Dec 03 2016 Sérgio Basto - 0.148-14.20161201git4d5c8b0 +- Update to x264-0.148-20161201-4d5c8b0 stable branch +- Improve x264-snapshot.sh to use date from last commit and print the headers to + include in x264.spec + +* Sat Nov 05 2016 Sérgio Basto - 0.148-13.20160924git86b7198 +- Rebuilt for new ffmpeg + +* Tue Sep 27 2016 Sérgio Basto - 0.148-12.20160924git86b7198 +- Update to 0.148-20160924-86b7198 version + +* Fri Aug 26 2016 Dominik Mierzejewski - 0.148-11.20160614gita5e06b9 +- rework asm treatment on i686 and ppc64 +- fix adding the 10b suffix to the library name +- correct the list of ASM-enabled arches: + * ppc64 can be Power5, which doesn't have AltiVec + * ppc64le always has it + * no implementation for sparc +- force non-executable stack on armv7 (#3975) +- explicitly disable OpenCL support, it's dlopened at the moment + and not working without ocl-icd-devel +- drop doc and license from main package, libs already contain it +- update URL + +* Thu Aug 18 2016 Sérgio Basto - 0.148-10.20160614gita5e06b9 +- Add license tag also to x264-libs + +* Mon Aug 01 2016 Sérgio Basto - 0.148-9.20160614gita5e06b9 +- Enable asm in build with 10bit on i686 + +* Sat Jul 30 2016 Julian Sikorski - 0.148-8.20160614gita5e06b9 +- Rebuilt for ffmpeg-3.1.1 + +* Tue Jun 21 2016 Sérgio Basto - 0.148-7.20160614gita5e06b9 +- Update to last stable version upstream. + +* Tue Apr 19 2016 Sérgio Basto - 0.148-6.20160412gitfd2c324 +- Update x264 to 0.148-20160412-fd2c324 + +* Wed Jan 20 2016 Sérgio Basto - 0.148-5.20160118git5c65704 +- Fix enable-asm #2 + +* Tue Jan 19 2016 Sérgio Basto - 0.148-4.20160118git5c65704 +- Fix enable-asm + +* Mon Jan 18 2016 Nicolas Chauvet - 0.148-3.20160118git5c65704 +- Restore explicit dependency on -libs - enforce %%{_isa} +- Expand arm arches where asm is available. +- Restore asm only on sse2 and later capable i686 + +* Mon Jan 18 2016 Sérgio Basto - 0.148-2.20151020gita0cd7d3 +- Update x264 to 0.148-20160118-5c65704 + +* Fri Nov 27 2015 Simone Caronni +- Remove obsolete SPEC file tags, defattr were also breaking file permissions, + all libraries were not executable. +- Enable optimizations in RHEL, they are working since RHEL 6: + https://bugzilla.rpmfusion.org/show_bug.cgi?id=3260 +- Add license and make_install macro as per packaging guidelines. +- Use the default configure macro and remove redundant parameters. Optimizations + (build flags) are now added by default. + +* Wed Oct 21 2015 Sérgio Basto - 0.148-1.20151020gita0cd7d3 +- Update to x264-0.148, soname bump, git a0cd7d3, date 20151020 . + +* Sat Jun 06 2015 Sérgio Basto - 0.144-1.20150225gitc8a773e +- Update to x264-0.144, soname bump, git c8a773e from date 20150225 . + +* Mon Jun 01 2015 Marcin Juszkiewicz - 0.142-12.20141221git6a301b6 +- Added patch to make it build on AArch64. + +* Mon Dec 22 2014 Sérgio Basto - 0.142-11.20141221git6a301b6 +- Update x264-0.142 to git 6a301b6 + +* Sun Oct 19 2014 Sérgio Basto - 0.142-10.20140826git021c0dc +- Rebuilt for FFmpeg 2.4.3 + +* Fri Sep 26 2014 Nicolas Chauvet - 0.142-9.20140826git021c0dc +- Rebuilt for FFmpeg 2.4.x + +* Mon Sep 15 2014 Sérgio Basto - 0.142-7.20140826git021c0dc +- Update x264-0.142 to git 021c0dc + +* Thu Aug 07 2014 Sérgio Basto - 0.142-6.20140728gitaf8e768 +- Rebuilt for ffmpeg-2.3 + +* Mon Jul 28 2014 Sérgio Basto - 0.142-5.20140728gitaf8e768 +- Update x264-0.142 to git af8e768 + +* Wed Apr 23 2014 Sérgio Basto - 0.142-4.20140423gite260ea5 +- Update to git e260ea5 (stable branch) + +* Tue Mar 25 2014 Sérgio Basto - 0.142-3.20140314gitaff928d +- Rebuilt for ffmpeg-2.2 + +* Sun Mar 23 2014 Sérgio Basto - 0.142-2.20140314gitaff928d +- Un-bootstrap + +* Fri Mar 14 2014 Sérgio Basto - 0.142-1.20140314gitaff928d_bootstrap +- Update to 0.142 git aff928d (stable branch) and bootstrap + +* Mon Mar 10 2014 Sérgio Basto - 0.140-3.20140122gitde0bc36 +- Un-boostrap + +* Wed Mar 05 2014 Sérgio Basto - 0.140-2.20140122gitde0bc36 +- bootstrap x264 to avoid: + /usr/bin/ld: warning: libx264.so.138, needed by + /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/libavcodec.so, may conflict with + libx264.so.140 + +* Wed Jan 22 2014 Sérgio Basto - 0.140-1.20140122gitde0bc36 +- Update to 0.140 git de0bc36 (stable branch) +- drop visualize options, ./configure doesn't have --enable-visualize or --disable-visualize, +anymore + +* Tue Nov 05 2013 Sérgio Basto - 0.138-2.20131030-c628e3b +- Unbootstrap. + +* Sat Nov 02 2013 Sérgio Basto - 0.138-1.20131030-c628e3b +- Update to 0.138 git c628e3b (stable branch) and bootstrap for new ffmpeg. + +* Fri Oct 18 2013 Sérgio Basto - 0.136-1.20131005git3361d59 +- Update to 0.136 git 3361d59 (stable branch). + +* Mon Sep 30 2013 Sérgio Basto - 0.133-3.20130709git585324f +- Fix gpac detection. + +* Thu Aug 15 2013 Nicolas Chauvet - 0.133-2.20130709git585324f +- Rebuilt for FFmpeg 2.0.x + +* Tue Jul 09 2013 Sérgio Basto - 0.133-1.20130709git585324f +- Update to git 585324fee380109acd9986388f857f413a60b896 (HEAD of stable branch). + +* Sat May 25 2013 Sérgio Basto - 0.130-3.20130502git1db4621 +- Build without bootstrap for F19. + +* Fri May 24 2013 Sérgio Basto - 0.130-2.20130502git1db4621 +- Build with bootstrap for F19. + +* Thu May 02 2013 Sérgio Basto - 0.130-1.20130502git1db4621 +- Update to git 1db4621 + +* Tue Mar 05 2013 Sérgio Basto - 0.129-3.20130305gite403db4 +- Update to git e403db4f9079811f5a1f9a1339e7c85b41800ca7 + +* Sun Jan 20 2013 Sérgio Basto - 0.129-2.20130119git9c4ba4b +- Rebuild for ffmpeg-1.1.1 . + +* Sat Jan 19 2013 Sérgio Basto - 0.129-1.20130119git9c4ba4b +- Update to 9c4ba4bde8965571159eae2d79f85cabbb47416c, soname bump. +- Changed branch name by api number, is more readable. +- Drop upstreamed patch. + +* Fri Nov 23 2012 Sérgio Basto - 0.128-2.20121118gitf6a8615 +- unbootstrap on F18. + +* Mon Nov 19 2012 Sérgio Basto - 0.128-1.20121118gitf6a8615 +- Update to f6a8615ab0c922ac2cb5c82c9824f6f4742b1725. + +* Sat Oct 06 2012 Sérgio Basto - 0.125-4.20121006git68dfb7b +- Note: no source update. +- Just add git tag to package name, for faster check upstream. +- Add git tag in x264-snapshot.sh . +- Convert all defines in global. + +* Sun Sep 09 2012 Sérgio Basto - 0.125-4.20120909 +- unbootstrap on F18. + +* Sun Sep 09 2012 Sérgio Basto - 0.125-3.20120909 +- update x264-0.125 from r2201 to r2209. + +* Thu Sep 06 2012 Sérgio Basto - 0.125-2.20120904 +- unbootstrap + +* Tue Sep 04 2012 Sérgio Basto - 0.125-1.20120904 +- Pulled latest stable patches, which bump version to 0.125. + +* Mon Jun 25 2012 Sérgio Basto - 0.124-5.20120616 +- Fixed detection of gf_malloc and gf_free + +* Sun Jun 24 2012 Sérgio Basto - 0.124-4.20120616 +- unbootstrap. + +* Sat Jun 23 2012 Nicolas Chauvet - 0.124-3.20120616 +- Rework alternatives build +- Fix SONAME for x26410b + +* Sun Jun 17 2012 Sérgio Basto - 0.124-2.20120616 +- use _libdir to fix build on x86_64. + +* Sun Jun 17 2012 Sérgio Basto - 0.124-1.20120616 +- Update to 20120616 +- Add one build with --bit-depth=10 +- Enabled bootstrap, after rebuild ffmpeg, we rebuild x264 without bootstrap. + +* Tue May 01 2012 Nicolas Chauvet - 0.120-5.20120303 +- Forward rhel patch +- Disable ASM on armv5tel armv6l +- Add --with bootstrap conditional +- Use %%{_isa} for devel requires + +* Tue Mar 6 2012 Sérgio Basto - 0.120-2.20120303 +- Enable libavformat , after compile ffmeg with 0.120-1 + +* Sat Mar 3 2012 Sérgio Basto - 0.120-1.20120303 +- Change release number, upstream have release numbers at least on stable branch and as ffmpeg + reported. +- Update to 20120303 +- Update x264-nover.patch, as suggest by Joseph D. Wagner +- Dropped obsolete Buildroot and Clean. +- add BuildRequires: zlib-devel to enable gpac. + +* Wed Feb 22 2012 Nicolas Chauvet - 0.0.0-0.34.20120125 +- Rebuilt for F-17 inter branch + +* Wed Feb 08 2012 Nicolas Chauvet - 0.0.0-0.33.20120125 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Jan 25 2012 Nicolas Chauvet - 0.0.0-0.32.20120125 +- Update to 20120125 + +* Mon Aug 22 2011 Dominik Mierzejewski 0.0.0-0.31.20110811 +- 20110811 snapshot (ABI 116) +- fix snapshot script to include version.h properly +- link x264 binary to the shared library + +* Thu Jul 14 2011 Nicolas Chauvet - 0.0.0-0.30.20110714 +- Update to 20110714 stable branch (ABI 115) +- Convert x264-snapshot to git (based on ffmpeg script). +- New Build Conditionals --with ffmpegsource libavformat +- Remove shared and strip patches - undeeded anymore +- Remove uneeded convertion of AUTHORS + +* Mon Jan 10 2011 Dominik Mierzejewski 0.0.0-0.29.20110227 +- 20110227 snapshot (ABI bump) + +* Tue Jul 06 2010 Dominik Mierzejewski 0.0.0-0.28.20100706gitd058f37 +- 20100706 snapshot (ABI bump) +- drop old Obsoletes: + +* Thu Apr 29 2010 Dominik Mierzejewski 0.0.0-0.27.20100429gitd9db8b3 +- 20100429 snapshot +- s/%%{ix86}/i686 (rfbz #1075) +- ship more docs in -devel + +* Sat Jan 16 2010 Dominik Mierzejewski 0.0.0-0.26.20100116git3d0f110 +- 20100116 snapshot (SO version bump) +- don't remove config.h and don't re-run version.sh +- link x264 binary to the shared library +- really don't strip if debug is enabled + +* Mon Oct 26 2009 Dominik Mierzejewski 0.0.0-0.26.20091026gitec46ace7 +- 20091026 snapshot + +* Thu Oct 15 2009 kwizart - 0.0.0-0.25.20091007git496d79d +- Update to 20091007git +- Move simd to %%{_libdir}/sse2 + +* Thu Mar 26 2009 Dominik Mierzejewski 0.0.0-0.24.20090319gitc109c8 +- 20090319 snapshot +- build with static gpac +- fix build on ppc + +* Tue Feb 10 2009 Dominik Mierzejewski 0.0.0-0.23.20090119git451ba8d +- 20090119 snapshot +- fix BRs for build-time options + +* Sat Dec 20 2008 Dominik Mierzejewski 0.0.0-0.22.20081213git9089d21 +- rebuild against new gpac + +* Sat Dec 13 2008 Dominik Mierzejewski 0.0.0-0.21.20081213git9089d21 +- fix the libs split on x86 + +* Sat Dec 13 2008 Dominik Mierzejewski 0.0.0-0.20.20081213git9089d21 +- 20081213 snapshot +- drop the libs split on x86, it doesn't work right for P3/AthlonXP +- drop obsolete patch + +* Thu Dec 04 2008 Dominik Mierzejewski 0.0.0-0.19.20081202git71d34b4.1 +- fix compilation on ppc + +* Tue Dec 02 2008 Dominik Mierzejewski 0.0.0-0.19.20081202git71d34b4 +- 20081202 snapshot +- bring back asm optimized/unoptimized libs split +- rebase and improve patch +- GUI dropped upstream +- dropped redundant BRs + +* Mon Nov 17 2008 Dominik Mierzejewski 0.0.0-0.18.20080905 +- partially revert latest changes (the separate sse2 libs part) until selinux + policy catches up + +* Fri Nov 07 2008 Dominik Mierzejewski 0.0.0-0.17.20080905 +- build libs without asm optimizations for less capable x86 CPUs (livna bug #2066) +- fix missing 0 in Obsoletes version (never caused any problems) + +* Fri Sep 05 2008 Dominik Mierzejewski 0.0.0-0.16.20080905 +- 20080905 snapshot +- use yasm on all supported arches +- include mp4 output support via gpac by default +- drop/move obsolete fixups from %%prep +- fix icon filename in desktop file + +* Sun Aug 03 2008 Thorsten Leemhuis 0.0.0-0.14.20080613 +- 20080613 snapshot (.so >= 59 is required by current mencoder) + +* Mon May 05 2008 Dominik Mierzejewski 0.0.0-0.13.20080420 +- 20080420 snapshot +- split libs into a separate package +- svn -> git +- drop obsolete execstack patch +- fixed summaries and descriptions + +* Wed Feb 27 2008 Dominik Mierzejewski 0.0.0-0.12.20080227 +- 20080227 snapshot +- fix build with gpac + +* Tue Nov 13 2007 Hans de Goede 0.0.0-0.11.20070819 +- Merge freshrpms spec into livna spec for rpmfusion: +- Change version from 0 to 0.0.0 so that it is equal to the freshrpms versions, + otherwise we would be older according to rpm version compare. +- Add Provides and Obsoletes x264-gtk to x264-gui for upgrade path from + freshrpms +- Fix icon cache update scripts + +* Sun Sep 30 2007 Hans de Goede 0-0.10.20070819 +- Fix use of execstack on i386, closes livna bug #1659 + +* Sun Aug 19 2007 Dominik Mierzejewski 0-0.9.20070819 +- 20070819 snapshot, closes bug #1560 + +* Thu Nov 09 2006 Dominik Mierzejewski 0-0.8.20061028 +- use PIC on all platforms, fixes bug #1243 + +* Sun Oct 29 2006 Dominik Mierzejewski 0-0.7.20061028 +- fix desktop entry categories for devel + +* Sun Oct 29 2006 Ville Skyttä - 0-0.6.20061028 +- fix BRs +- handle menu icon properly + +* Sat Oct 28 2006 Dominik Mierzejewski 0-0.5.20061028 +- fix bad patch chunk +- fix 32bit build on x86_64 + +* Sat Oct 28 2006 Ville Skyttä - 0-0.4.20061028 +- Don't let ./configure to guess arch, pass it ourselves. +- Drop X-Livna desktop entry category. + +* Sat Oct 28 2006 Dominik Mierzejewski 0-0.3.20061028 +- added GUI (based on kwizart's idea) +- latest snapshot +- added some docs to -devel + +* Sun Oct 01 2006 Dominik Mierzejewski 0-0.2.20061001 +- add snapshot generator script +- fix make install +- make nasm/yasm BRs arch-dependent +- configure is not autoconf-based, call it directly + +* Sat Sep 30 2006 Dominik Mierzejewski 0-0.1.569 +- Updated to latest SVN trunk +- specfile cleanups + +* Mon Sep 04 2006 Dominik Mierzejewski 0-0.1.558 +- Updated to latest SVN trunk +- FE compliance + +* Sun Mar 12 2006 Dominik Mierzejewski 0-0.1.467 +- Updated to latest SVN trunk +- Build shared library +- mp4 output requires gpac + +* Mon Jan 02 2006 Dominik Mierzejewski 0-0.1.394 +- Updated to latest SVN trunk +- Change versioning scheme + +* Sun Nov 27 2005 Dominik Mierzejewski 0.0.375-1 +- Updated to latest SVN trunk +- Added pkgconfig file to -devel + +* Tue Oct 4 2005 Matthias Saou 0.0.315-1 +- Update to svn 315. +- Disable vizualize since otherwise programs trying to link without -lX11 will + fail (cinelerra in this particular case). + +* Mon Aug 15 2005 Matthias Saou 0.0.285-1 +- Update to svn 285. +- Add yasm build requirement (needed on x86_64). +- Replace X11 lib with lib/lib64 to fix x86_64 build. + +* Tue Aug 2 2005 Matthias Saou 0.0.281-1 +- Update to svn 281. + +* Mon Jul 11 2005 Matthias Saou 0.0.273-1 +- Initial RPM release. diff --git a/anda/multimedia/x264/anda.hcl b/anda/multimedia/x264/anda.hcl new file mode 100644 index 0000000000..e4736bc5c9 --- /dev/null +++ b/anda/multimedia/x264/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "x264.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/multimedia/x264/x264.spec b/anda/multimedia/x264/x264.spec new file mode 100644 index 0000000000..544683a41d --- /dev/null +++ b/anda/multimedia/x264/x264.spec @@ -0,0 +1,819 @@ +%global fusionsrc_commit 91b92ea4846982e5d9eb58744fda70f75d0faf8d + +# globals for x264-0.164-20231001git31e19f92.tar.bz2 +%global api 164 +%global gitdate 20231001 +%global gitversion 31e19f92 +%global gitlongver 31e19f92f00c7003fa115047ce50978bc98c3a0d + +%global snapshot %{gitdate}git%{gitversion} +%global gver .%{gitdate}git%{gitversion} +%global branch stable + +#global _with_bootstrap 1 + +%{?_with_bootstrap: +%global _without_gpac 1 +%global _without_libavformat 1 +%global _without_libswscale 1 +} + +# Reduce dependencies to build x264-libs on i686 +%if 0%{?fedora} +%ifarch i686 +%global _without_gpac 1 +%global _without_libavformat 1 +%global _without_libswscale 1 +%endif +%endif + +#Whitelist of arches with dedicated ASM code +%global asmarch aarch64 armv7hl armv7hnl i686 ppc64 ppc64le x86_64 +%ifnarch %{asmarch} +%global _without_asm 1 +%endif + +Summary: H264/AVC video streams encoder +Name: x264 +Version: 0.%{api} +Release: 15%{?gver}%{?_with_bootstrap:_bootstrap}%{?dist} +License: GPLv2+ +URL: https://www.videolan.org/developers/x264.html +Source0: https://code.videolan.org/videolan/x264/-/archive/%gitversion.tar.bz2 +Source1: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-snapshot.sh +Source2: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/version.h + +# don't remove config.h and don't re-run version.sh +Patch0: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-nover.patch +# add 10b suffix to high bit depth build +Patch1: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-10b.patch +# fix assignment from incompatible pointer type errors +Patch2: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-altivec-incompatible-pointer-type.patch +Patch11: https://raw.githubusercontent.com/rpmfusion/x264/%fusionsrc_commit/x264-opencl.patch + +BuildRequires: anda-srpm-macros git-core +BuildRequires: gcc +%{!?_without_gpac:BuildRequires: gpac-static >= 1.0.1 zlib-devel openssl-devel libpng-devel libjpeg-devel xz-devel libglvnd-devel mesa-libGLU-devel faad2-devel libmad-devel xvidcore-devel a52dec-devel libvorbis-devel libtheora-devel openjpeg2-devel } +%{!?_without_libavformat:BuildRequires: ffmpeg-devel} +%{?_with_ffmpegsource:BuildRequires: ffmpegsource-devel} +# https://bugzilla.rpmfusion.org/show_bug.cgi?id=3975 +%ifarch armv7hl armv7hnl +BuildRequires: execstack +%endif +%ifarch %{asmarch} +BuildRequires: nasm +%endif +BuildRequires: pkgconfig(bash-completion) +# we need to enforce the exact EVR for an ISA - not only the same ABI +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: ffmpeg-libs%{?_isa} + +%description +x264 is a free library for encoding H264/AVC video streams, written from +scratch. + +This package contains the frontend. + +%package libs +Summary: Library for encoding H264/AVC video streams +Recommends: %{_libdir}/libOpenCL.so.1 + +%description libs +x264 is a free library for encoding H264/AVC video streams, written from +scratch. + +%package devel +Summary: Development files for the x264 library +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: pkgconfig + +%description devel +x264 is a free library for encoding H264/AVC video streams, written from +scratch. + +This package contains the development files. + +%global x_configure \ +./configure \\\ + --host=%{_host} \\\ + --prefix=%{_prefix} \\\ + --exec-prefix=%{_exec_prefix} \\\ + --bindir=%{_bindir} \\\ + --includedir=%{_includedir} \\\ + --libdir=%{_libdir} \\\ + %{?_without_libavformat:--disable-lavf} \\\ + %{?_without_libswscale:--disable-swscale} \\\ + %{!?_with_ffmpegsource:--disable-ffms} \\\ + --enable-debug \\\ + --enable-shared \\\ + --system-libx264 \\\ + --enable-pic + +%prep +%setup -q -n x264-%gitversion-%gitlongver + +mkdir x264-0.%{api}-%{snapshot} +pushd x264-0.%{api}-%{snapshot} +git init +git remote add origin https://code.videolan.org/videolan/x264.git +git fetch --depth 1 origin %gitlongver +git checkout FETCH_HEAD +sh version.sh > ./version.h + +cp %{SOURCE2} . +%patch -P0 -p1 -b .nover +%patch -P1 -p1 -b .10b +%patch -P2 -p1 -b .ptr +%patch -P11 -p1 -b .opencl +popd + +for variant in generic generic10 ; do + rm -rf ${variant} + cp -pr x264-0.%{api}-%{snapshot} ${variant} +done + + +%build +%set_build_flags +pushd generic +%{x_configure}\ + %{?_without_asm:--disable-asm} + +%make_build +popd + +pushd generic10 +%{x_configure}\ + %{?_without_asm:--disable-asm}\ + --disable-cli\ + --disable-opencl \ + --bit-depth=10 + +%make_build +popd + +%install +# NOTE: the order is important here! We want the generic devel stuff +for variant in generic10 generic ; do +pushd ${variant} +%make_install +popd +done + +#Fix timestamp on x264 generated headers +touch -r generic/version.h %{buildroot}%{_includedir}/x264.h %{buildroot}%{_includedir}/x264_config.h + +# https://bugzilla.rpmfusion.org/show_bug.cgi?id=3975 +%ifarch armv7hl armv7hnl +execstack -c %{buildroot}%{_libdir}/libx264{,10b}.so.%{api} +%endif + +install -dm755 %{buildroot}%{_pkgdocdir} +install -pm644 generic/{AUTHORS,COPYING} %{buildroot}%{_pkgdocdir}/ + + +%ldconfig_scriptlets libs + + +%files +%{_bindir}/x264 +%dir %{_datadir}/bash-completion +%dir %{_datadir}/bash-completion/completions +%{_datadir}/bash-completion/completions/x264 + +%files libs +%dir %{_pkgdocdir} +%{_pkgdocdir}/AUTHORS +%license %{_pkgdocdir}/COPYING +%{_libdir}/libx264.so.%{api} +%{_libdir}/libx26410b.so.%{api} + +%files devel +%doc generic/doc/* +%{_includedir}/x264.h +%{_includedir}/x264_config.h +%{_libdir}/libx264.so +%{_libdir}/libx26410b.so +%{_libdir}/pkgconfig/x264.pc + +%changelog +* Tue Oct 08 2024 Nicolas Chauvet - 0.164-15.20231001git31e19f92 +- Rebuilt + +* Fri Aug 02 2024 RPM Fusion Release Engineering - 0.164-14.20231001git31e19f92 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sun Mar 10 2024 Dominik Mierzejewski - 0.164-13.20231001git31e19f92 +- Fix "assignment from incompatible pointer type" errors on ppc64le +- Use correct build dependency on bash-completion + +* Sun Feb 04 2024 RPM Fusion Release Engineering - 0.164-12.20231001git31e19f92 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Nov 12 2023 Leigh Scott - 0.164-11.20231001git31e19f92 +- Rebuild for new ffmpeg version + +* Sun Oct 01 2023 Sérgio Basto - 0.164-10.20231001git31e19f92 +- Update to x264-0.164-20231001git31e19f92 (stable branch) + +* Wed Sep 27 2023 Sérgio Basto - 0.164-9.20220602gitbaee400f +- [Bug 6769] Include bash completion definitions for x264 + +* Wed Aug 02 2023 RPM Fusion Release Engineering - 0.164-8.20220602gitbaee400f +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon Mar 13 2023 Leigh Scott - 0.164-7.20220602gitbaee400f +- Rebuild for gpac + +* Tue Feb 28 2023 Sérgio Basto - 0.164-6.20220602gitbaee400f +- Disable build with gpac until we can build gapc with ffmepg-6 + +* Tue Feb 28 2023 Leigh Scott - 0.164-5.20220602gitbaee400f +- Rebuilt for new ffmpeg + +* Sun Feb 19 2023 Leigh Scott - 0.164-4.20220602gitbaee400f +- rebuilt + +* Sun Sep 04 2022 Leigh Scott - 0.164-3.20220602gitbaee400f +- Add requires ffmpeg-libs + +* Mon Aug 08 2022 RPM Fusion Release Engineering - 0.164-2.20220602gitbaee400f +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg + 5.1 + +* Mon Jun 06 2022 Sérgio Basto - 0.164-1.20220602gitbaee400f +- Update to x264-0.164-20220602gitbaee400f (stable branch) + +* Sat Mar 05 2022 Sérgio Basto - 0.163-6.20210613git5db6aa6 +- Rebuild for new gpac on F36 + +* Sat Feb 26 2022 Leigh Scott - 0.163-5.20210613git5db6aa6 +- Rebuild for new gpac + +* Wed Feb 09 2022 RPM Fusion Release Engineering - 0.163-4.20210613git5db6aa6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Nov 09 2021 Leigh Scott - 0.163-3.20210613git5db6aa6 +- Rebuilt for new ffmpeg snapshot + +* Tue Aug 03 2021 RPM Fusion Release Engineering - 0.163-2.20210613git5db6aa6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jun 14 2021 Sérgio Basto - 0.163-1.20210613git5db6aa6 +- x264-0.163-20210613git5db6aa6 soname bump +- gpac patch accepted upstream with modifications + +* Tue Apr 13 2021 Sérgio Basto - 0.161-6.20210412git55d517b +- Update to x264-0.161-20210412git55d517b (stable branch) + +* Thu Feb 04 2021 RPM Fusion Release Engineering - 0.161-5.20210124git544c61f +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sun Jan 24 2021 Sérgio Basto - 0.161-4.20210124git544c61f +- Update to 0.161-20210124git544c61f (stable branch) + +* Tue Jan 19 2021 Dominik Mierzejewski - 0.161-3.20200912gitd198931 +- Drop non-asm build for i686 and ppc64 (rfbz#5855) +- Use set_build_flags instead of configure macro for non-autotools script (rfbz#5854) + +* Thu Dec 31 2020 Leigh Scott - 0.161-2.20200912gitd198931 +- Rebuilt for new ffmpeg snapshot + +* Wed Nov 18 2020 Sérgio Basto - 0.161-1.20200912gitd198931 +- Update x264 to api 0.161 (stable branch) + +* Wed Aug 19 2020 RPM Fusion Release Engineering - 0.160-2.20200702gitcde9a93 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 06 2020 Sérgio Basto - 0.160-1.20200702gitcde9a93 +- Update to 0.160-20200702gitcde9a93 (stable branch) + +* Mon Jul 06 2020 Nicolas Chauvet - 0.159-11.20200409git296494a +- Bump + +* Mon Jul 06 2020 Sérgio Basto - 0.159-10.20200409git296494a +- Fix detection of gpac try 2 + +* Mon Jul 06 2020 Sérgio Basto - 0.159-9.20200409git296494a +- Fix detection of gpac + +* Wed Jun 10 2020 Sérgio Basto - 0.159-8.20200409git296494a +- Update to 0.159-20200409git296494a (stable branch) +- Replace all __make _smp_mflags by make_build macro + +* Thu Mar 12 2020 Leigh Scott - 0.159-7.20191127git1771b55 +- Rebuilt for i686 + +* Wed Mar 11 2020 Nicolas Chauvet - 0.159-6.20191127git1771b55_bootstrap +- bootstrap for i686 + +* Sat Feb 22 2020 Leigh Scott - 0.159-5.20191127git1771b55 +- Rebuild for ffmpeg-4.3 git + +* Wed Feb 05 2020 RPM Fusion Release Engineering - 0.159-4.20191127git1771b55 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Dec 17 2019 Leigh Scott - 0.159-3.20191127git1771b55 +- Rebuild without bootstrap + +* Tue Dec 17 2019 Leigh Scott - 0.159-2.20191127git1771b55_bootstrap +- DO A BOOTSTRAP BUILD + +* Mon Dec 16 2019 Sérgio Monteiro Basto - 0.159-1.20191127git1771b55 +- Update to 0.159-20191127-git1771b55 (stable branch) + +* Fri Oct 04 2019 Dominik Mierzejewski - 0.157-12.20190717git34c06d1 +- don't overwrite generic headers with 10bit on simdarch (rfbz#5071) + +* Mon Aug 26 2019 Nicolas Chauvet - 0.157-11.20190717git34c06d1 +- Drop hack for arm builders + +* Tue Aug 06 2019 Leigh Scott - 0.157-10.20190717git34c06d1 +- Rebuild for new ffmpeg version + +* Wed Jul 17 2019 Sérgio Basto - 0.157-9.20190717git34c06d1 +- 0.157 update, date 2019-07-17 (stable branch) + +* Tue May 07 2019 Sérgio Basto - 0.157-8.20190303git72db437 +- Revert "Build /usr/bin/x264 with gpac shared lib instead static lib." + +* Wed May 01 2019 Leigh Scott - 0.157-7.20190303git72db437 +- Fix ARM rpm mangle issue + +* Tue Apr 30 2019 Sérgio Basto - 0.157-6.20190303git72db437_bootstrap +- Bootstrap to fix arm builds + +* Mon Apr 29 2019 Sérgio Basto - 0.157-5.20190303git72db437 +- Enable opencl (which is default) only exist --disable-opencl option +- Disable opencl on 10bit seems that is just prepared for 8bit. +- Build /usr/bin/x264 with gpac shared lib instead static lib. + +* Sun Apr 28 2019 Leigh Scott - 0.157-4.20190303git72db437 +- Fix opencl dlopen (rfbz#5185) + +* Tue Mar 12 2019 Leigh Scott - 0.157-3.20190303git72db437 +- Disable bootstrap build + +* Tue Mar 12 2019 Leigh Scott - 0.157-2.20190303git72db437_bootstrap +- Do the forgotten bootstrap build + +* Tue Mar 12 2019 Sérgio Basto - 0.157-1.20190303git72db437 +- Update to 0.157 (stable branch) +- Rebase patches + +* Tue Mar 05 2019 RPM Fusion Release Engineering - 0.155-3.20180806git0a84d98 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Nov 07 2018 Stefan Becker - 0.155-2.20180806git0a84d98 +- reverse order of generic/generic10 install to fix -devel contents (rfbz #5071) + +* Thu Oct 04 2018 Sérgio Basto - 0.155-1.20180806git0a84d98 +- Update x264 to 0.155 +- Rebase x264-10b.patch +- Add a patch to fix linking with --system-libx264 on x86 + ( https://patches.videolan.org/patch/21704/ ) + +* Sun Aug 19 2018 Leigh Scott - 0.152-7.20171224gite9a5903 +- Rebuilt for Fedora 29 Mass Rebuild binutils issue + +* Fri Jul 27 2018 RPM Fusion Release Engineering - 0.152-6.20171224gite9a5903 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Mar 08 2018 RPM Fusion Release Engineering - 0.152-5.20171224gite9a5903 +- Rebuilt for new ffmpeg snapshot + +* Thu Mar 01 2018 RPM Fusion Release Engineering - 0.152-4.20171224gite9a5903 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Jan 17 2018 Leigh Scott - 0.152-3.20171224gite9a5903 +- Rebuilt for ffmpeg-3.5 git + +* Thu Jan 04 2018 Sérgio Basto - 0.152-2.20171224gite9a5903 +- un-bootstrap x264 + +* Sat Dec 30 2017 Sérgio Basto - 0.152-1.20171224gite9a5903_bootstrap +- Update x264 to 0.152 and switch asm compiler from yasm to nasm + +* Thu Aug 31 2017 RPM Fusion Release Engineering - 0.148-22.20170521gitaaa9aa8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jun 26 2017 Sérgio Basto - 0.148-21.20170521gitaaa9aa8 +- Update x264 to x264-0.148-20170521-aaa9aa8 + +* Mon May 22 2017 Sérgio Basto - 0.148-20.20170519gitd32d7bf +- Update x264 to x264-0.148-20170519-d32d7bf + +* Sat Apr 29 2017 Leigh Scott - 0.148-19.20170121git97eaef2 +- Rebuild for ffmpeg update + +* Wed Mar 22 2017 Sérgio Basto - 0.148-18.20170121git97eaef2 +- Unbootstrap + +* Mon Mar 20 2017 RPM Fusion Release Engineering - 0.148-17.20170121git97eaef2_bootstrap +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sat Mar 18 2017 Sérgio Basto - 0.148-16.20170121git97eaef2_bootstrap +- Bootstrap for ppc64, ppc64le and aarch64 + +* Wed Jan 25 2017 Sérgio Basto - 0.148-15.20170121git97eaef2 +- Update x264 to git stable snapshot of 20170121 + +* Sat Dec 03 2016 Sérgio Basto - 0.148-14.20161201git4d5c8b0 +- Update to x264-0.148-20161201-4d5c8b0 stable branch +- Improve x264-snapshot.sh to use date from last commit and print the headers to + include in x264.spec + +* Sat Nov 05 2016 Sérgio Basto - 0.148-13.20160924git86b7198 +- Rebuilt for new ffmpeg + +* Tue Sep 27 2016 Sérgio Basto - 0.148-12.20160924git86b7198 +- Update to 0.148-20160924-86b7198 version + +* Fri Aug 26 2016 Dominik Mierzejewski - 0.148-11.20160614gita5e06b9 +- rework asm treatment on i686 and ppc64 +- fix adding the 10b suffix to the library name +- correct the list of ASM-enabled arches: + * ppc64 can be Power5, which doesn't have AltiVec + * ppc64le always has it + * no implementation for sparc +- force non-executable stack on armv7 (#3975) +- explicitly disable OpenCL support, it's dlopened at the moment + and not working without ocl-icd-devel +- drop doc and license from main package, libs already contain it +- update URL + +* Thu Aug 18 2016 Sérgio Basto - 0.148-10.20160614gita5e06b9 +- Add license tag also to x264-libs + +* Mon Aug 01 2016 Sérgio Basto - 0.148-9.20160614gita5e06b9 +- Enable asm in build with 10bit on i686 + +* Sat Jul 30 2016 Julian Sikorski - 0.148-8.20160614gita5e06b9 +- Rebuilt for ffmpeg-3.1.1 + +* Tue Jun 21 2016 Sérgio Basto - 0.148-7.20160614gita5e06b9 +- Update to last stable version upstream. + +* Tue Apr 19 2016 Sérgio Basto - 0.148-6.20160412gitfd2c324 +- Update x264 to 0.148-20160412-fd2c324 + +* Wed Jan 20 2016 Sérgio Basto - 0.148-5.20160118git5c65704 +- Fix enable-asm #2 + +* Tue Jan 19 2016 Sérgio Basto - 0.148-4.20160118git5c65704 +- Fix enable-asm + +* Mon Jan 18 2016 Nicolas Chauvet - 0.148-3.20160118git5c65704 +- Restore explicit dependency on -libs - enforce %%{_isa} +- Expand arm arches where asm is available. +- Restore asm only on sse2 and later capable i686 + +* Mon Jan 18 2016 Sérgio Basto - 0.148-2.20151020gita0cd7d3 +- Update x264 to 0.148-20160118-5c65704 + +* Fri Nov 27 2015 Simone Caronni +- Remove obsolete SPEC file tags, defattr were also breaking file permissions, + all libraries were not executable. +- Enable optimizations in RHEL, they are working since RHEL 6: + https://bugzilla.rpmfusion.org/show_bug.cgi?id=3260 +- Add license and make_install macro as per packaging guidelines. +- Use the default configure macro and remove redundant parameters. Optimizations + (build flags) are now added by default. + +* Wed Oct 21 2015 Sérgio Basto - 0.148-1.20151020gita0cd7d3 +- Update to x264-0.148, soname bump, git a0cd7d3, date 20151020 . + +* Sat Jun 06 2015 Sérgio Basto - 0.144-1.20150225gitc8a773e +- Update to x264-0.144, soname bump, git c8a773e from date 20150225 . + +* Mon Jun 01 2015 Marcin Juszkiewicz - 0.142-12.20141221git6a301b6 +- Added patch to make it build on AArch64. + +* Mon Dec 22 2014 Sérgio Basto - 0.142-11.20141221git6a301b6 +- Update x264-0.142 to git 6a301b6 + +* Sun Oct 19 2014 Sérgio Basto - 0.142-10.20140826git021c0dc +- Rebuilt for FFmpeg 2.4.3 + +* Fri Sep 26 2014 Nicolas Chauvet - 0.142-9.20140826git021c0dc +- Rebuilt for FFmpeg 2.4.x + +* Mon Sep 15 2014 Sérgio Basto - 0.142-7.20140826git021c0dc +- Update x264-0.142 to git 021c0dc + +* Thu Aug 07 2014 Sérgio Basto - 0.142-6.20140728gitaf8e768 +- Rebuilt for ffmpeg-2.3 + +* Mon Jul 28 2014 Sérgio Basto - 0.142-5.20140728gitaf8e768 +- Update x264-0.142 to git af8e768 + +* Wed Apr 23 2014 Sérgio Basto - 0.142-4.20140423gite260ea5 +- Update to git e260ea5 (stable branch) + +* Tue Mar 25 2014 Sérgio Basto - 0.142-3.20140314gitaff928d +- Rebuilt for ffmpeg-2.2 + +* Sun Mar 23 2014 Sérgio Basto - 0.142-2.20140314gitaff928d +- Un-bootstrap + +* Fri Mar 14 2014 Sérgio Basto - 0.142-1.20140314gitaff928d_bootstrap +- Update to 0.142 git aff928d (stable branch) and bootstrap + +* Mon Mar 10 2014 Sérgio Basto - 0.140-3.20140122gitde0bc36 +- Un-boostrap + +* Wed Mar 05 2014 Sérgio Basto - 0.140-2.20140122gitde0bc36 +- bootstrap x264 to avoid: + /usr/bin/ld: warning: libx264.so.138, needed by + /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/libavcodec.so, may conflict with + libx264.so.140 + +* Wed Jan 22 2014 Sérgio Basto - 0.140-1.20140122gitde0bc36 +- Update to 0.140 git de0bc36 (stable branch) +- drop visualize options, ./configure doesn't have --enable-visualize or --disable-visualize, +anymore + +* Tue Nov 05 2013 Sérgio Basto - 0.138-2.20131030-c628e3b +- Unbootstrap. + +* Sat Nov 02 2013 Sérgio Basto - 0.138-1.20131030-c628e3b +- Update to 0.138 git c628e3b (stable branch) and bootstrap for new ffmpeg. + +* Fri Oct 18 2013 Sérgio Basto - 0.136-1.20131005git3361d59 +- Update to 0.136 git 3361d59 (stable branch). + +* Mon Sep 30 2013 Sérgio Basto - 0.133-3.20130709git585324f +- Fix gpac detection. + +* Thu Aug 15 2013 Nicolas Chauvet - 0.133-2.20130709git585324f +- Rebuilt for FFmpeg 2.0.x + +* Tue Jul 09 2013 Sérgio Basto - 0.133-1.20130709git585324f +- Update to git 585324fee380109acd9986388f857f413a60b896 (HEAD of stable branch). + +* Sat May 25 2013 Sérgio Basto - 0.130-3.20130502git1db4621 +- Build without bootstrap for F19. + +* Fri May 24 2013 Sérgio Basto - 0.130-2.20130502git1db4621 +- Build with bootstrap for F19. + +* Thu May 02 2013 Sérgio Basto - 0.130-1.20130502git1db4621 +- Update to git 1db4621 + +* Tue Mar 05 2013 Sérgio Basto - 0.129-3.20130305gite403db4 +- Update to git e403db4f9079811f5a1f9a1339e7c85b41800ca7 + +* Sun Jan 20 2013 Sérgio Basto - 0.129-2.20130119git9c4ba4b +- Rebuild for ffmpeg-1.1.1 . + +* Sat Jan 19 2013 Sérgio Basto - 0.129-1.20130119git9c4ba4b +- Update to 9c4ba4bde8965571159eae2d79f85cabbb47416c, soname bump. +- Changed branch name by api number, is more readable. +- Drop upstreamed patch. + +* Fri Nov 23 2012 Sérgio Basto - 0.128-2.20121118gitf6a8615 +- unbootstrap on F18. + +* Mon Nov 19 2012 Sérgio Basto - 0.128-1.20121118gitf6a8615 +- Update to f6a8615ab0c922ac2cb5c82c9824f6f4742b1725. + +* Sat Oct 06 2012 Sérgio Basto - 0.125-4.20121006git68dfb7b +- Note: no source update. +- Just add git tag to package name, for faster check upstream. +- Add git tag in x264-snapshot.sh . +- Convert all defines in global. + +* Sun Sep 09 2012 Sérgio Basto - 0.125-4.20120909 +- unbootstrap on F18. + +* Sun Sep 09 2012 Sérgio Basto - 0.125-3.20120909 +- update x264-0.125 from r2201 to r2209. + +* Thu Sep 06 2012 Sérgio Basto - 0.125-2.20120904 +- unbootstrap + +* Tue Sep 04 2012 Sérgio Basto - 0.125-1.20120904 +- Pulled latest stable patches, which bump version to 0.125. + +* Mon Jun 25 2012 Sérgio Basto - 0.124-5.20120616 +- Fixed detection of gf_malloc and gf_free + +* Sun Jun 24 2012 Sérgio Basto - 0.124-4.20120616 +- unbootstrap. + +* Sat Jun 23 2012 Nicolas Chauvet - 0.124-3.20120616 +- Rework alternatives build +- Fix SONAME for x26410b + +* Sun Jun 17 2012 Sérgio Basto - 0.124-2.20120616 +- use _libdir to fix build on x86_64. + +* Sun Jun 17 2012 Sérgio Basto - 0.124-1.20120616 +- Update to 20120616 +- Add one build with --bit-depth=10 +- Enabled bootstrap, after rebuild ffmpeg, we rebuild x264 without bootstrap. + +* Tue May 01 2012 Nicolas Chauvet - 0.120-5.20120303 +- Forward rhel patch +- Disable ASM on armv5tel armv6l +- Add --with bootstrap conditional +- Use %%{_isa} for devel requires + +* Tue Mar 6 2012 Sérgio Basto - 0.120-2.20120303 +- Enable libavformat , after compile ffmeg with 0.120-1 + +* Sat Mar 3 2012 Sérgio Basto - 0.120-1.20120303 +- Change release number, upstream have release numbers at least on stable branch and as ffmpeg + reported. +- Update to 20120303 +- Update x264-nover.patch, as suggest by Joseph D. Wagner +- Dropped obsolete Buildroot and Clean. +- add BuildRequires: zlib-devel to enable gpac. + +* Wed Feb 22 2012 Nicolas Chauvet - 0.0.0-0.34.20120125 +- Rebuilt for F-17 inter branch + +* Wed Feb 08 2012 Nicolas Chauvet - 0.0.0-0.33.20120125 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Jan 25 2012 Nicolas Chauvet - 0.0.0-0.32.20120125 +- Update to 20120125 + +* Mon Aug 22 2011 Dominik Mierzejewski 0.0.0-0.31.20110811 +- 20110811 snapshot (ABI 116) +- fix snapshot script to include version.h properly +- link x264 binary to the shared library + +* Thu Jul 14 2011 Nicolas Chauvet - 0.0.0-0.30.20110714 +- Update to 20110714 stable branch (ABI 115) +- Convert x264-snapshot to git (based on ffmpeg script). +- New Build Conditionals --with ffmpegsource libavformat +- Remove shared and strip patches - undeeded anymore +- Remove uneeded convertion of AUTHORS + +* Mon Jan 10 2011 Dominik Mierzejewski 0.0.0-0.29.20110227 +- 20110227 snapshot (ABI bump) + +* Tue Jul 06 2010 Dominik Mierzejewski 0.0.0-0.28.20100706gitd058f37 +- 20100706 snapshot (ABI bump) +- drop old Obsoletes: + +* Thu Apr 29 2010 Dominik Mierzejewski 0.0.0-0.27.20100429gitd9db8b3 +- 20100429 snapshot +- s/%%{ix86}/i686 (rfbz #1075) +- ship more docs in -devel + +* Sat Jan 16 2010 Dominik Mierzejewski 0.0.0-0.26.20100116git3d0f110 +- 20100116 snapshot (SO version bump) +- don't remove config.h and don't re-run version.sh +- link x264 binary to the shared library +- really don't strip if debug is enabled + +* Mon Oct 26 2009 Dominik Mierzejewski 0.0.0-0.26.20091026gitec46ace7 +- 20091026 snapshot + +* Thu Oct 15 2009 kwizart - 0.0.0-0.25.20091007git496d79d +- Update to 20091007git +- Move simd to %%{_libdir}/sse2 + +* Thu Mar 26 2009 Dominik Mierzejewski 0.0.0-0.24.20090319gitc109c8 +- 20090319 snapshot +- build with static gpac +- fix build on ppc + +* Tue Feb 10 2009 Dominik Mierzejewski 0.0.0-0.23.20090119git451ba8d +- 20090119 snapshot +- fix BRs for build-time options + +* Sat Dec 20 2008 Dominik Mierzejewski 0.0.0-0.22.20081213git9089d21 +- rebuild against new gpac + +* Sat Dec 13 2008 Dominik Mierzejewski 0.0.0-0.21.20081213git9089d21 +- fix the libs split on x86 + +* Sat Dec 13 2008 Dominik Mierzejewski 0.0.0-0.20.20081213git9089d21 +- 20081213 snapshot +- drop the libs split on x86, it doesn't work right for P3/AthlonXP +- drop obsolete patch + +* Thu Dec 04 2008 Dominik Mierzejewski 0.0.0-0.19.20081202git71d34b4.1 +- fix compilation on ppc + +* Tue Dec 02 2008 Dominik Mierzejewski 0.0.0-0.19.20081202git71d34b4 +- 20081202 snapshot +- bring back asm optimized/unoptimized libs split +- rebase and improve patch +- GUI dropped upstream +- dropped redundant BRs + +* Mon Nov 17 2008 Dominik Mierzejewski 0.0.0-0.18.20080905 +- partially revert latest changes (the separate sse2 libs part) until selinux + policy catches up + +* Fri Nov 07 2008 Dominik Mierzejewski 0.0.0-0.17.20080905 +- build libs without asm optimizations for less capable x86 CPUs (livna bug #2066) +- fix missing 0 in Obsoletes version (never caused any problems) + +* Fri Sep 05 2008 Dominik Mierzejewski 0.0.0-0.16.20080905 +- 20080905 snapshot +- use yasm on all supported arches +- include mp4 output support via gpac by default +- drop/move obsolete fixups from %%prep +- fix icon filename in desktop file + +* Sun Aug 03 2008 Thorsten Leemhuis 0.0.0-0.14.20080613 +- 20080613 snapshot (.so >= 59 is required by current mencoder) + +* Mon May 05 2008 Dominik Mierzejewski 0.0.0-0.13.20080420 +- 20080420 snapshot +- split libs into a separate package +- svn -> git +- drop obsolete execstack patch +- fixed summaries and descriptions + +* Wed Feb 27 2008 Dominik Mierzejewski 0.0.0-0.12.20080227 +- 20080227 snapshot +- fix build with gpac + +* Tue Nov 13 2007 Hans de Goede 0.0.0-0.11.20070819 +- Merge freshrpms spec into livna spec for rpmfusion: +- Change version from 0 to 0.0.0 so that it is equal to the freshrpms versions, + otherwise we would be older according to rpm version compare. +- Add Provides and Obsoletes x264-gtk to x264-gui for upgrade path from + freshrpms +- Fix icon cache update scripts + +* Sun Sep 30 2007 Hans de Goede 0-0.10.20070819 +- Fix use of execstack on i386, closes livna bug #1659 + +* Sun Aug 19 2007 Dominik Mierzejewski 0-0.9.20070819 +- 20070819 snapshot, closes bug #1560 + +* Thu Nov 09 2006 Dominik Mierzejewski 0-0.8.20061028 +- use PIC on all platforms, fixes bug #1243 + +* Sun Oct 29 2006 Dominik Mierzejewski 0-0.7.20061028 +- fix desktop entry categories for devel + +* Sun Oct 29 2006 Ville Skyttä - 0-0.6.20061028 +- fix BRs +- handle menu icon properly + +* Sat Oct 28 2006 Dominik Mierzejewski 0-0.5.20061028 +- fix bad patch chunk +- fix 32bit build on x86_64 + +* Sat Oct 28 2006 Ville Skyttä - 0-0.4.20061028 +- Don't let ./configure to guess arch, pass it ourselves. +- Drop X-Livna desktop entry category. + +* Sat Oct 28 2006 Dominik Mierzejewski 0-0.3.20061028 +- added GUI (based on kwizart's idea) +- latest snapshot +- added some docs to -devel + +* Sun Oct 01 2006 Dominik Mierzejewski 0-0.2.20061001 +- add snapshot generator script +- fix make install +- make nasm/yasm BRs arch-dependent +- configure is not autoconf-based, call it directly + +* Sat Sep 30 2006 Dominik Mierzejewski 0-0.1.569 +- Updated to latest SVN trunk +- specfile cleanups + +* Mon Sep 04 2006 Dominik Mierzejewski 0-0.1.558 +- Updated to latest SVN trunk +- FE compliance + +* Sun Mar 12 2006 Dominik Mierzejewski 0-0.1.467 +- Updated to latest SVN trunk +- Build shared library +- mp4 output requires gpac + +* Mon Jan 02 2006 Dominik Mierzejewski 0-0.1.394 +- Updated to latest SVN trunk +- Change versioning scheme + +* Sun Nov 27 2005 Dominik Mierzejewski 0.0.375-1 +- Updated to latest SVN trunk +- Added pkgconfig file to -devel + +* Tue Oct 4 2005 Matthias Saou 0.0.315-1 +- Update to svn 315. +- Disable vizualize since otherwise programs trying to link without -lX11 will + fail (cinelerra in this particular case). + +* Mon Aug 15 2005 Matthias Saou 0.0.285-1 +- Update to svn 285. +- Add yasm build requirement (needed on x86_64). +- Replace X11 lib with lib/lib64 to fix x86_64 build. + +* Tue Aug 2 2005 Matthias Saou 0.0.281-1 +- Update to svn 281. + +* Mon Jul 11 2005 Matthias Saou 0.0.273-1 +- Initial RPM release. diff --git a/anda/multimedia/x265/anda.hcl b/anda/multimedia/x265/anda.hcl new file mode 100644 index 0000000000..7bb0dd68ca --- /dev/null +++ b/anda/multimedia/x265/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64", "aarch64", "i386"] + rpm { + spec = "x265.spec" + } + labels { + mock =1 + } +} diff --git a/anda/multimedia/x265/update.rhai b/anda/multimedia/x265/update.rhai new file mode 100644 index 0000000000..291bc4d5af --- /dev/null +++ b/anda/multimedia/x265/update.rhai @@ -0,0 +1,5 @@ +// HACK: use RegEx to parse HTML! +let vers = find_all(` +-#define ext ".so" ++#define ext ".so." xstr(X265_BUILD) + #endif + #if defined(__GNUC__) && __GNUC__ >= 8 + #pragma GCC diagnostic ignored "-Wcast-function-type" + diff --git a/anda/multimedia/x265/x265-pic.patch b/anda/multimedia/x265/x265-pic.patch new file mode 100644 index 0000000000..a047ad15a2 --- /dev/null +++ b/anda/multimedia/x265/x265-pic.patch @@ -0,0 +1,11 @@ +--- a/source/CMakeLists.txt ++++ b/source/CMakeLists.txt +@@ -212,7 +212,7 @@ + add_definitions(-std=gnu++98) + endif() + if(ENABLE_PIC) +- add_definitions(-fPIC) ++ add_definitions(-fPIC -DPIC) + endif(ENABLE_PIC) + if(NATIVE_BUILD) + if(INTEL_CXX) diff --git a/anda/multimedia/x265/x265-pkgconfig_path_fix.patch b/anda/multimedia/x265/x265-pkgconfig_path_fix.patch new file mode 100644 index 0000000000..5d958f3e75 --- /dev/null +++ b/anda/multimedia/x265/x265-pkgconfig_path_fix.patch @@ -0,0 +1,11 @@ +--- a/source/x265.pc.in ++++ b/source/x265.pc.in +@@ -1,6 +1,6 @@ + prefix=@CMAKE_INSTALL_PREFIX@ + exec_prefix=${prefix} +-libdir=${exec_prefix}/@LIB_INSTALL_DIR@ ++libdir=@LIB_INSTALL_DIR@ + includedir=${prefix}/include + + Name: @CMAKE_PROJECT_NAME@ + diff --git a/anda/multimedia/x265/x265-sei-length-crash-fix.patch b/anda/multimedia/x265/x265-sei-length-crash-fix.patch new file mode 100644 index 0000000000..87c6d49544 --- /dev/null +++ b/anda/multimedia/x265/x265-sei-length-crash-fix.patch @@ -0,0 +1,29 @@ +From 8454caf458c5f5d20cce711ff8ea8de55ec1ae50 Mon Sep 17 00:00:00 2001 +From: harlanc +Date: Thu, 1 Dec 2022 07:46:13 +0000 +Subject: [PATCH] fix crash when SEI length is variable + +--- + source/encoder/encoder.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/source/encoder/encoder.cpp b/source/encoder/encoder.cpp +index 0fea6553c..5a3fcafc7 100644 +--- a/source/encoder/encoder.cpp ++++ b/source/encoder/encoder.cpp +@@ -1103,6 +1103,12 @@ void Encoder::copyUserSEIMessages(Frame *frame, const x265_picture* pic_in) + input = seiMsg; + else + input = pic_in->userSEI.payloads[i]; ++ ++ if (frame->m_userSEI.payloads[i].payload && (frame->m_userSEI.payloads[i].payloadSize < input.payloadSize)) ++ { ++ delete[] frame->m_userSEI.payloads[i].payload; ++ frame->m_userSEI.payloads[i].payload = NULL; ++ } + + if (!frame->m_userSEI.payloads[i].payload) + frame->m_userSEI.payloads[i].payload = new uint8_t[input.payloadSize]; +-- +2.45.0 + diff --git a/anda/multimedia/x265/x265.spec b/anda/multimedia/x265/x265.spec new file mode 100644 index 0000000000..f6148d92ae --- /dev/null +++ b/anda/multimedia/x265/x265.spec @@ -0,0 +1,349 @@ +%global build_cxxflags %{__build_flags_lang_cxx} %{?_distro_extra_cxxflags} -include %_includedir/c++/*/cstdint + +# Use old cmake macro +%global __cmake_in_source_build 1 + +%global terrasrc_commit b018f3e14bd28f5b17c22446328c6decf9ce57a5 + +%global _so_version 212 + +Summary: H.265/HEVC encoder +Name: x265 +Version: 4.1 +Release: 1%?dist +URL: http://x265.org/ +# source/Lib/TLibCommon - BSD +# source/Lib/TLibEncoder - BSD +# everything else - GPLv2+ +License: GPLv2+ and BSD +Source0: https://bitbucket.org/multicoreware/%{name}_git/downloads/%{name}_%{version}.tar.gz + +# fix building as PIC +Patch0: https://raw.githubusercontent.com/terrapkg/pkg-x265/%terrasrc_commit/x265-pic.patch +Patch1: https://raw.githubusercontent.com/terrapkg/pkg-x265/%terrasrc_commit/x265-high-bit-depth-soname.patch +Patch2: https://raw.githubusercontent.com/terrapkg/pkg-x265/%terrasrc_commit/x265-pkgconfig_path_fix.patch +# https://bitbucket.org/multicoreware/x265_git/pull-requests/10 +Patch3: https://bitbucket.org/harlancc/x265_git/commits/8454caf458c5f5d20cce711ff8ea8de55ec1ae50/raw#/x265-sei-length-crash-fix.patch + +BuildRequires: gcc-c++ +BuildRequires: libstdc++-devel +BuildRequires: git +BuildRequires: cmake +%{?el7:BuildRequires: epel-rpm-macros} +BuildRequires: nasm +BuildRequires: ninja-build + +%ifnarch armv7hl armv7hnl s390 s390x +BuildRequires: numactl-devel +%endif + +%description +The primary objective of x265 is to become the best H.265/HEVC encoder +available anywhere, offering the highest compression efficiency and the highest +performance on a wide variety of hardware platforms. + +This package contains the command line encoder. + +%package libs +Summary: H.265/HEVC encoder library + +%description libs +The primary objective of x265 is to become the best H.265/HEVC encoder +available anywhere, offering the highest compression efficiency and the +highest performance on a wide variety of hardware platforms. + +This package contains the shared library. + +%package devel +Summary: H.265/HEVC encoder library development files +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description devel +The primary objective of x265 is to become the best H.265/HEVC encoder +available anywhere, offering the highest compression efficiency and the highest +performance on a wide variety of hardware platforms. + +This package contains the shared library development files. + +%prep +%autosetup -p1 -n %{name}_%{version} + +%build +# High depth libraries (from source/h265.h): +# If the requested bitDepth is not supported by the linked libx265, +# it will attempt to dynamically bind x265_api_get() from a shared +# library with an appropriate name: +# 8bit: libx265_main.so +# 10bit: libx265_main10.so + +build() { +%cmake -Wno-dev -G "Ninja" \ + -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON \ + -DCMAKE_SKIP_RPATH:BOOL=YES \ + -DENABLE_PIC:BOOL=ON \ + -DENABLE_SHARED=ON \ + -DENABLE_TESTS:BOOL=ON \ + -DENABLE_HDR10_PLUS=YES \ + -DCMAKE_ASM_NASM_FLAGS=-w-macro-params-legacy \ + $* \ + ../source +%cmake_build +} + +# High depth 10/12 bit libraries are supported only on 64 bit. They require +# disabled AltiVec instructions for building on ppc64/ppc64le. +%ifarch x86_64 aarch64 ppc64 ppc64le +mkdir 10bit; pushd 10bit + build \ + -DENABLE_CLI=OFF \ + -DENABLE_ALTIVEC=OFF \ + -DHIGH_BIT_DEPTH=ON +popd + +mkdir 12bit; pushd 12bit + build \ + -DENABLE_CLI=OFF \ + -DENABLE_ALTIVEC=OFF \ + -DHIGH_BIT_DEPTH=ON \ + -DMAIN12=ON +popd +%endif + +# 8 bit base library + encoder +mkdir 8bit; pushd 8bit + build +popd + +%install +for i in 8 10 12; do + if [ -d ${i}bit ]; then + pushd ${i}bit + %cmake_install + # Remove unversioned library, should not be linked to + rm -f %{buildroot}%{_libdir}/libx265_main${i}.so + popd + fi +done + +find %{buildroot} -name "*.a" -delete + +%check +for i in 8 10 12; do + if [ -d ${i}bit ]; then + pushd ${i}bit + test/TestBench || : + popd + fi +done + +%ldconfig_scriptlets libs + +%files +%{_bindir}/x265 + +%files libs +%license COPYING +%{_libdir}/libhdr10plus.so +%{_libdir}/libx265.so.* +%ifarch x86_64 aarch64 ppc64 ppc64le +%{_libdir}/libx265_main10.so.* +%{_libdir}/libx265_main12.so.* +%endif + +%files devel +%doc doc/* +%{_includedir}/hdr10plus.h +%{_includedir}/x265.h +%{_includedir}/x265_config.h +%{_libdir}/libx265.so +%{_libdir}/pkgconfig/x265.pc + +%changelog +* Sun Sep 15 2024 Leigh Scott - 4.0-1 +- Update to 4.0 + +* Fri Aug 02 2024 RPM Fusion Release Engineering - 3.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu May 16 2024 Dominik Mierzejewski - 3.6-2 +- Backport a fix for crashes when encoding with variable length SEI + +* Sat Apr 06 2024 Leigh Scott - 3.6-1 +- Update to 3.6 + +* Sun Feb 04 2024 RPM Fusion Release Engineering - 3.5-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Aug 02 2023 RPM Fusion Release Engineering - 3.5-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Dec 29 2022 Nicolas Chauvet - 3.5-5 +- Enable ENABLE_HDR10_PLUS everywhere rfbz#6454 + +* Mon Aug 08 2022 RPM Fusion Release Engineering - 3.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg + 5.1 + +* Wed Feb 09 2022 RPM Fusion Release Engineering - 3.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Aug 03 2021 RPM Fusion Release Engineering - 3.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Apr 13 2021 Leigh Scott - 3.5-1 +- Update to 3.5 + +* Tue Mar 16 2021 Leigh Scott - 3.4-5 +- Enable HDR10+. + +* Thu Feb 04 2021 RPM Fusion Release Engineering - 3.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Aug 19 2020 RPM Fusion Release Engineering - 3.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jul 23 2020 Leigh Scott - 3.4-2 +- Use old cmake macro + +* Sun May 31 2020 Leigh Scott - 3.4-1 +- Update to 3.4 + +* Wed Mar 11 2020 Nicolas Chauvet - 3.3-2 +- Rebuilt for i686 + +* Sun Feb 23 2020 Leigh Scott - 3.3-1 +- Update to 3.3 + +* Wed Feb 05 2020 RPM Fusion Release Engineering - 3.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Nov 28 2019 Leigh Scott - 3.2.1-1 +- Update to 3.2.1 +- Switch upstream source url + +* Fri Aug 09 2019 RPM Fusion Release Engineering - 3.1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Aug 04 2019 Leigh Scott - 3.1.2-1 +- Update to 3.1.2 + +* Fri Jun 28 2019 Nicolas Chauvet - 3.1-1 +- Update to 3.1 +- Switch to github mirror + +* Tue Mar 05 2019 RPM Fusion Release Engineering - 3.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Feb 28 2019 Leigh Scott - 3.0-1 +- Update to 3.0 + +* Sun Dec 30 2018 Leigh Scott - 2.9-3 +- Rebuild against newer nasm on el7 (rfbz #5128) + +* Wed Nov 21 2018 Antonio Trande - 2.9-2 +- Rebuild for ffmpeg-3.* on el7 + +* Sun Nov 18 2018 Leigh Scott - 2.9-1 +- Update to 2.9 + +* Thu Oct 04 2018 Sérgio Basto - 2.8-1 +- Update to 2.8 more 2 patches to fix builds on non-x86 and arm + https://bitbucket.org/multicoreware/x265/issues/404/28-fails-to-build-on-ppc64le-gnu-linux + https://bitbucket.org/multicoreware/x265/issues/406/arm-assembly-fail-to-compile-on-18 + +* Sun Aug 19 2018 Leigh Scott - 2.7-5 +- Rebuilt for Fedora 29 Mass Rebuild binutils issue + +* Fri Jul 27 2018 RPM Fusion Release Engineering - 2.7-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Sun Apr 08 2018 Leigh Scott - 2.7-3 +- Fix pkgconfig file (rfbz #4853) + +* Tue Feb 27 2018 Nicolas Chauvet - 2.7-2 +- Fix CFLAGS on ARM + +* Tue Feb 27 2018 Leigh Scott - 2.7-1 +- update to 2.7 +- Drop shared test patch as it causes nasm build to fail +- Fix scriptlets +- Use ninja to build + +* Sat Dec 30 2017 Sérgio Basto - 2.6-1 +- Update x265 to 2.6 + +* Mon Oct 16 2017 Leigh Scott - 2.5-1 +- update to 2.5 + +* Thu Aug 31 2017 RPM Fusion Release Engineering - 2.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Apr 29 2017 Leigh Scott - 2.4-1 +- update to 2.4 + +* Mon Apr 10 2017 Simone Caronni - 2.2-3 +- Use source from multicoreware website. +- Clean up SPEC file a bit (formatting, 80 char wide descriptions). +- Enable shared 10/12 bit libraries on 64 bit architectures. + +* Mon Mar 20 2017 RPM Fusion Release Engineering - 2.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Jan 03 2017 Dominik Mierzejewski - 2.2-1 +- update to 2.2 +- spell out SO version in file list +- fix typo in patch + +* Mon Nov 07 2016 Sérgio Basto - 2.1-1 +- Update to 2.1 + +* Thu Aug 18 2016 Sérgio Basto - 1.9-3 +- Clean spec, Vascom patches series, rfbz #4199, add license tag + +* Tue Jul 19 2016 Dominik Mierzejewski - 1.9-2 +- use https for source URL +- enable NUMA support +- make sure Fedora compiler flags are used on ARM + +* Fri Apr 08 2016 Adrian Reber - 1.9-1 +- Update to 1.9 + +* Sun Oct 25 2015 Dominik Mierzejewski 1.8-2 +- fix building as PIC +- update SO version in file list + +* Sat Oct 24 2015 Nicolas Chauvet - 1.8-1 +- Update to 1.8 +- Avoid tests for now + +* Wed Apr 15 2015 Dominik Mierzejewski 1.6-1 +- update to 1.6 (ABI bump, rfbz#3593) +- release tarballs are now hosted on videolan.org +- drop obsolete patches + +* Thu Dec 18 2014 Dominik Mierzejewski 1.2-6 +- fix build on armv7l arch (partially fix rfbz#3361, patch by Nicolas Chauvet) +- don't run tests on ARM for now (rfbz#3361) + +* Sun Aug 17 2014 Dominik Mierzejewski 1.2-5 +- don't include contributor agreement in doc +- make sure /usr/share/doc/x265 is owned +- add a comment noting which files are BSD-licenced + +* Fri Aug 08 2014 Dominik Mierzejewski 1.2-4 +- don't create bogus soname (patch by Xavier) + +* Thu Jul 17 2014 Dominik Mierzejewski 1.2-3 +- fix tr call to remove DOS EOL +- build the library with -fPIC on arm and i686, too + +* Sun Jul 13 2014 Dominik Mierzejewski 1.2-2 +- use version in source URL +- update License tag +- fix EOL in drag-uncrustify.bat +- don't link test binaries with shared binary on x86 (segfault) + +* Thu Jul 10 2014 Dominik Mierzejewski 1.2-1 +- initial build +- fix pkgconfig file install location +- link test binaries with shared library diff --git a/anda/multimedia/zrythm/anda.hcl b/anda/multimedia/zrythm/anda.hcl index 9b3e2dd135..078a583760 100644 --- a/anda/multimedia/zrythm/anda.hcl +++ b/anda/multimedia/zrythm/anda.hcl @@ -3,6 +3,6 @@ project pkg { spec = "zrythm.spec" } labels { - extra = 1 + subrepo = "extras" } } diff --git a/anda/stardust/armillary/anda.hcl b/anda/stardust/armillary/anda.hcl new file mode 100644 index 0000000000..31ad1adca2 --- /dev/null +++ b/anda/stardust/armillary/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-armillary.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/stardust/armillary/stardust-armillary.spec b/anda/stardust/armillary/stardust-armillary.spec new file mode 100644 index 0000000000..3a6fc88e92 --- /dev/null +++ b/anda/stardust/armillary/stardust-armillary.spec @@ -0,0 +1,39 @@ +%global commit 8ad02b636690170adbd4279fe3fc8265088cbcc2 +%global commit_date 20240726 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-armillary +Version: %commit_date.%shortcommit +Release: 1%?dist +Summary: Model viewer for Stardust XR. +URL: https://github.com/StardustXR/armillary +Source0: %url/archive/%commit/armillary-%commit.tar.gz +License: MIT +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold + +Provides: armillary stardust-armillary +Packager: Owen Zimmerman + +%description +A model viewer for Stardust XR which works great for hand tracking, pointers, and controllers. + +%prep +%autosetup -n armillary-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +%cargo_install + +%files +%_bindir/armillary +%license LICENSE +%doc README.md + +%changelog +* Sat Sep 7 2024 Owen-sz +- Package StardustXR armillary diff --git a/anda/stardust/armillary/update.rhai b/anda/stardust/armillary/update.rhai new file mode 100644 index 0000000000..4b75d1e64b --- /dev/null +++ b/anda/stardust/armillary/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("StardustXR/armillary")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/stardust/atmosphere/anda.hcl b/anda/stardust/atmosphere/anda.hcl new file mode 100644 index 0000000000..5a82bc12e7 --- /dev/null +++ b/anda/stardust/atmosphere/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-atmosphere.spec" + } + labels { + nightly = 1 + } +} \ No newline at end of file diff --git a/anda/stardust/atmosphere/stardust-atmosphere.spec b/anda/stardust/atmosphere/stardust-atmosphere.spec new file mode 100644 index 0000000000..8a309c1151 --- /dev/null +++ b/anda/stardust/atmosphere/stardust-atmosphere.spec @@ -0,0 +1,39 @@ +%global commit 0c8bfb91e8ca32a4895f858067334ed265517309 +%global commit_date 20240822 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-atmosphere +Version: %commit_date.%shortcommit +Release: 1%?dist +Summary: Environment, homespace, and setup client for Stardust XR. +URL: https://github.com/StardustXR/atmosphere +Source0: %url/archive/%commit/atmosphere-%commit.tar.gz +License: MIT +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold libudev-devel g++ libinput-devel libxkbcommon-x11-devel + +Provides: atmosphere stardust-atmosphere +Packager: Owen Zimmerman + +%description +%summary + +%prep +%autosetup -n atmosphere-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +%cargo_install + +%files +%_bindir/atmosphere +%license LICENSE +%doc README.md + +%changelog +* Tue Sep 10 2024 Owen-sz +- Package StardustXR atmosphere diff --git a/anda/stardust/atmosphere/update.rhai b/anda/stardust/atmosphere/update.rhai new file mode 100644 index 0000000000..a375acf6ce --- /dev/null +++ b/anda/stardust/atmosphere/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("StardustXR/atmosphere")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} \ No newline at end of file diff --git a/anda/stardust/black-hole/anda.hcl b/anda/stardust/black-hole/anda.hcl new file mode 100644 index 0000000000..f14c2dc669 --- /dev/null +++ b/anda/stardust/black-hole/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-black-hole.spec" + } + labels { + nightly = 1 + } +} \ No newline at end of file diff --git a/anda/stardust/black-hole/stardust-black-hole.spec b/anda/stardust/black-hole/stardust-black-hole.spec new file mode 100644 index 0000000000..9aeff4f1b5 --- /dev/null +++ b/anda/stardust/black-hole/stardust-black-hole.spec @@ -0,0 +1,44 @@ +%global commit 01c666f472457ef6230c9d2fd5a289d0a64ce5c2 +%global commit_date 20241230 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-black-hole +Version: %commit_date.%shortcommit +Release: 1%?dist +Summary: Spatial storage for Stardust XR. +URL: https://github.com/StardustXR/black-hole +Source0: %url/archive/%commit/black-hole-%commit.tar.gz +License: MIT +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold + +Provides: black-hole stardust-black-hole +Packager: Owen Zimmerman + +%description +%summary + +%prep +%autosetup -n black-hole-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +export STARDUST_RES_PREFIXES=%_datadir +%cargo_install + +mkdir -p %buildroot%_datadir +cp -r res/* %buildroot%_datadir/ + +%files +%doc README.md +%license LICENSE +%_bindir/black-hole +%_datadir/black_hole/ + +%changelog +* Sat Sep 8 2024 Owen-sz +- Package StardustXR black-hole diff --git a/anda/stardust/black-hole/update.rhai b/anda/stardust/black-hole/update.rhai new file mode 100644 index 0000000000..8cacd481ac --- /dev/null +++ b/anda/stardust/black-hole/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("StardustXR/black-hole")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/stardust/comet/anda.hcl b/anda/stardust/comet/anda.hcl new file mode 100644 index 0000000000..95ba7c5843 --- /dev/null +++ b/anda/stardust/comet/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-comet.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/stardust/comet/stardust-comet.spec b/anda/stardust/comet/stardust-comet.spec new file mode 100644 index 0000000000..d893cce5c1 --- /dev/null +++ b/anda/stardust/comet/stardust-comet.spec @@ -0,0 +1,39 @@ +%global commit afbf6109398794791ffb30317712d742143fd08a +%global commit_date 20240831 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-comet +Version: %commit_date.%shortcommit +Release: 1%?dist +Summary: Annotate things in Stardust XR. +URL: https://github.com/StardustXR/comet +Source0: %url/archive/%commit/comet-%commit.tar.gz +License: MIT +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold + +Provides: comet stardust-comet +Packager: Owen Zimmerman + +%description +%summary + +%prep +%autosetup -n comet-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +%cargo_install + +%files +%_bindir/comet +%license LICENSE +%doc README.md + +%changelog +* Sat Sep 7 2024 Owen-sz +- Package StardustXR comet diff --git a/anda/stardust/comet/update.rhai b/anda/stardust/comet/update.rhai new file mode 100644 index 0000000000..e9531f24ba --- /dev/null +++ b/anda/stardust/comet/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("StardustXR/comet")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/stardust/flatland/anda.hcl b/anda/stardust/flatland/anda.hcl new file mode 100644 index 0000000000..9f0199171a --- /dev/null +++ b/anda/stardust/flatland/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-flatland.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/stardust/flatland/stardust-flatland.spec b/anda/stardust/flatland/stardust-flatland.spec new file mode 100644 index 0000000000..9aad7da700 --- /dev/null +++ b/anda/stardust/flatland/stardust-flatland.spec @@ -0,0 +1,45 @@ +%global commit 0914dd3df54a5e6258dfc0a02d65af1c0fc0fc90 +%global commit_date 20240920 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-flatland +Version: %commit_date.%shortcommit +Release: 2%?dist +Summary: Flatland for Stardust XR. +URL: https://github.com/StardustXR/flatland +Source0: %url/archive/%commit/flatland-%commit.tar.gz +License: MIT +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold + +Provides: flatland stardust-flatland +Packager: Owen Zimmerman + +%description +%summary + +%prep +%autosetup -n flatland-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +export STARDUST_RES_PREFIXES=%_datadir +%cargo_install + +mkdir -p %buildroot%_datadir +cp -r res/* %buildroot%_datadir/ + + +%files +%_bindir/flatland +%_datadir/flatland/ +%license LICENSE +%doc README.md + +%changelog +* Sat Sep 7 2024 Owen-sz +- Package StardustXR Flatland diff --git a/anda/stardust/flatland/update.rhai b/anda/stardust/flatland/update.rhai new file mode 100644 index 0000000000..0688d89201 --- /dev/null +++ b/anda/stardust/flatland/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("StardustXR/flatland")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/stardust/gravity/anda.hcl b/anda/stardust/gravity/anda.hcl new file mode 100644 index 0000000000..58522742e6 --- /dev/null +++ b/anda/stardust/gravity/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-gravity.spec" + } + labels { + nightly = 1 + } +} \ No newline at end of file diff --git a/anda/stardust/gravity/stardust-gravity.spec b/anda/stardust/gravity/stardust-gravity.spec new file mode 100644 index 0000000000..8489ee0f33 --- /dev/null +++ b/anda/stardust/gravity/stardust-gravity.spec @@ -0,0 +1,40 @@ +%global commit eca5e835cd3abee69984ce6312610644801457a9 +%global commit_date 20241230 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-gravity +Version: %commit_date.%shortcommit +Release: 1%?dist +Summary: Utility to launch apps and Stardust XR clients spatially. +URL: https://github.com/StardustXR/gravity +Source0: %url/archive/%commit/gravity-%commit.tar.gz +License: MIT +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold + +Provides: stardust-gravity +Packager: Owen Zimmerman + +%description +%summary + +%prep +%autosetup -n gravity-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +%cargo_install + + +%files +%_bindir/gravity +%license LICENSE +%doc README.md + +%changelog +* Wed Sep 11 2024 Owen-sz +- Package StardustXR gravity diff --git a/anda/stardust/gravity/update.rhai b/anda/stardust/gravity/update.rhai new file mode 100644 index 0000000000..d139dccddc --- /dev/null +++ b/anda/stardust/gravity/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("StardustXR/gravity")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} \ No newline at end of file diff --git a/anda/stardust/magnetar/anda.hcl b/anda/stardust/magnetar/anda.hcl new file mode 100644 index 0000000000..59f223d713 --- /dev/null +++ b/anda/stardust/magnetar/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-magnetar.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/stardust/magnetar/stardust-magnetar.spec b/anda/stardust/magnetar/stardust-magnetar.spec new file mode 100644 index 0000000000..f88d40193f --- /dev/null +++ b/anda/stardust/magnetar/stardust-magnetar.spec @@ -0,0 +1,41 @@ +%global commit d00c5ecf0bcaf2b4382ec3b4f3373ea5b761ee7b +%global commit_date 20241230 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-magnetar +Version: %commit_date.%shortcommit +Release: 1%?dist +Summary: Workspaces client for Stardust XR. +URL: https://github.com/StardustXR/magnetar +Source0: %url/archive/%commit/magnetar-%commit.tar.gz +License: MIT +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold libudev-devel g++ libinput-devel libxkbcommon-x11-devel + +Provides: magnetar stardust-magnetar +Packager: Owen Zimmerman + +%description +%summary + +%prep +%autosetup -n magnetar-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +%cargo_install + + +%files +%_bindir/magnetar +%license LICENSE +%doc README.md + +%changelog +* Wed Sep 11 2024 Owen-sz +- Package StardustXR magnetar + diff --git a/anda/stardust/magnetar/update.rhai b/anda/stardust/magnetar/update.rhai new file mode 100644 index 0000000000..6bca40b722 --- /dev/null +++ b/anda/stardust/magnetar/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("StardustXR/magnetar")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} \ No newline at end of file diff --git a/anda/stardust/non-spatial-input/anda.hcl b/anda/stardust/non-spatial-input/anda.hcl new file mode 100644 index 0000000000..4d5828157f --- /dev/null +++ b/anda/stardust/non-spatial-input/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-non-spatial-input.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/stardust/non-spatial-input/stardust-non-spatial-input.spec b/anda/stardust/non-spatial-input/stardust-non-spatial-input.spec new file mode 100644 index 0000000000..bc3ac41d97 --- /dev/null +++ b/anda/stardust/non-spatial-input/stardust-non-spatial-input.spec @@ -0,0 +1,47 @@ +%global commit 5ac7f04f6876097aa8c3cf9af033d609a8a49944 +%global commit_date 20240824 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-non-spatial-input +Version: %commit_date.%shortcommit +Release: 1%?dist +Summary: Tools you can easily snap together to get non-spatial input into Stardust XR. +URL: https://github.com/StardustXR/non-spatial-input +Source0: %url/archive/%commit/non-spatial-input-%commit.tar.gz +License: MIT +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold libudev-devel g++ libinput-devel libxkbcommon-x11-devel + +Provides: non-spatial-input stardust-non-spatial-input +Packager: Owen Zimmerman + +%description +%summary + +%prep +%autosetup -n non-spatial-input-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +(cd azimuth && %cargo_install) & +(cd eclipse && %cargo_install) & +(cd manifold && %cargo_install) & +(cd simular && %cargo_install) & + +wait + +%files +%_bindir/azimuth +%_bindir/eclipse +%_bindir/manifold +%_bindir/simular +%license LICENSE +%doc README.md + +%changelog +* Mon Sep 9 2024 Owen-sz +- Package StardustXR non-spatial-input diff --git a/anda/stardust/non-spatial-input/update.rhai b/anda/stardust/non-spatial-input/update.rhai new file mode 100644 index 0000000000..2d8268c3d9 --- /dev/null +++ b/anda/stardust/non-spatial-input/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("StardustXR/non-spatial-input")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/stardust/protostar/anda.hcl b/anda/stardust/protostar/anda.hcl new file mode 100644 index 0000000000..ad23b47645 --- /dev/null +++ b/anda/stardust/protostar/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "stardust-protostar.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/stardust/protostar/stardust-protostar.spec b/anda/stardust/protostar/stardust-protostar.spec new file mode 100644 index 0000000000..fc2a96eee1 --- /dev/null +++ b/anda/stardust/protostar/stardust-protostar.spec @@ -0,0 +1,52 @@ +%global commit 9b73eb1e128b49a6d40a27a4cde7715d8cbd2674 +%global commit_date 20241230 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling +%global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ + +Name: stardust-xr-protostar +Version: %commit_date.%shortcommit +Release: 1%?dist +Summary: Prototype application launcher for Stardust XR. +URL: https://github.com/StardustXR/protostar +Source0: %url/archive/%commit/protostar-%commit.tar.gz +License: MIT +BuildRequires: cargo cmake anda-srpm-macros cargo-rpm-macros mold libudev-devel g++ libinput-devel libxkbcommon-x11-devel + +Provides: protostar stardust-protostar +Packager: Owen Zimmerman + +%description +Prototype application launcher for StardustXR, providing an easy to use crate to write applications launchers. + +%prep +%autosetup -n protostar-%commit +%cargo_prep_online + +%build + +%install +%define __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked +export STARDUST_RES_PREFIXES=%_datadir +(cd app_grid && %cargo_install) & +(cd hexagon_launcher && %cargo_install) & +(cd single && %cargo_install) & +(cd sirius && %cargo_install) & + +wait + +mkdir -p %buildroot%_datadir +cp -r res/* %buildroot%_datadir/ + +%files +%doc README.md +%license LICENSE +%_bindir/app_grid +%_bindir/hexagon_launcher +%_bindir/single +%_bindir/sirius +%_datadir/protostar/ + +%changelog +* Tue Sep 10 2024 Owen-sz +- Package StardustXR protostar diff --git a/anda/stardust/protostar/update.rhai b/anda/stardust/protostar/update.rhai new file mode 100644 index 0000000000..90aae413bd --- /dev/null +++ b/anda/stardust/protostar/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("StardustXR/protostar")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/stardust/server/stardust-server.spec b/anda/stardust/server/stardust-server.spec index f2112964d2..195de310b9 100644 --- a/anda/stardust/server/stardust-server.spec +++ b/anda/stardust/server/stardust-server.spec @@ -1,6 +1,10 @@ +%global commit c830becbff8907809c87dc0949f9a0abd4d77ed6 +%global commit_date 20241102 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# Exclude input files from mangling %global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ -Name: stardust-server +Name: stardust-xr-server Version: 0.45.1 Release: 1%?dist Summary: Usable Linux display server that reinvents human-computer interaction for all kinds of XR. @@ -13,7 +17,7 @@ BuildRequires: glx-utils fontconfig-devel glibc libxcb-devel wayland-devel BuildRequires: openxr-devel libglvnd-devel libglvnd-gles mesa-libgbm-devel BuildRequires: libwayland-egl libX11-devel libXfixes-devel BuildRequires: mesa-libEGL-devel libxkbcommon-devel -Provides: stardust-xr-server +Provides: stardust-server Packager: Owen Zimmerman %description diff --git a/anda/stardust/server/update.rhai b/anda/stardust/server/update.rhai index 89a05318d8..16db710969 100644 --- a/anda/stardust/server/update.rhai +++ b/anda/stardust/server/update.rhai @@ -1 +1,5 @@ -rpm.version(gh("StardustXR/server")); +rpm.global("commit", gh_commit("StardustXR/server")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/stardust/telescope/stardust-telescope.spec b/anda/stardust/telescope/stardust-telescope.spec index 03135df355..6e2fcc55a5 100644 --- a/anda/stardust/telescope/stardust-telescope.spec +++ b/anda/stardust/telescope/stardust-telescope.spec @@ -1,16 +1,16 @@ %define debug_package %nil -%global commit 2482ed8d8f5bed37b3ad54f766b0df7157646ef1 -%global commit_date 20240719 +%global commit 31aaa1d6a3c1cbf1795981432c9ec2cbcc142ba9 +%global commit_date 20250121 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -Name: stardust-telescope +Name: stardust-xr-telescope Version: %commit_date.git~%shortcommit -Release: 2%?dist +Release: 1%?dist Summary: See the stars! Easy stardust setups to run on your computer. License: MIT URL: https://github.com/StardustXR/telescope -Source0: %url/archive/%commit.tar.gz +Source0: %url/archive/%commit.tar.gz Requires: bash Requires: stardust-xr-server Requires: stardust-xr-gravity @@ -18,6 +18,7 @@ Requires: stardust-xr-black-hole Requires: stardust-xr-protostar Requires: xwayland-satellite BuildArch: noarch +Provides: telescope stardust-telescope %description See the stars! Easy stardust setups to run on your computer. diff --git a/anda/system/broadcom-wl/20-wl.conf b/anda/system/broadcom-wl/20-wl.conf new file mode 100644 index 0000000000..d8f966acfe --- /dev/null +++ b/anda/system/broadcom-wl/20-wl.conf @@ -0,0 +1,14 @@ +### For use only with Terra broadcom-wl, akmod-wl, and kmod-wl packages. +### Required modules to avoid kernel 3.6.* panic at boot on specific devices such as the HP Pavilion dm1 Notebook PC. +### See: https://bugzilla.rpmfusion.org/show_bug.cgi?id=2526#c29 for an example of possible issues. +### INFO: If you hit these issues, add "wl.disable=1" to the GRUB "GRUB_CMDLINE_LINUX_DEFAULT" line in order to boot. +### NOTE: Do NOT report issues to RPM Fusion! The above issue is listed simply to show possible issues when using this module. +# +### Usage: +### TO USE: Uncomment (remove the "#") the line beginning with "add_drivers+=" to add the module to your current and future kernels. Then rebuild the current initramfs by typing sudo dracut -f +### TO REMOVE: Recomment (add "#" in front of) the line beginning with "add_drivers+=" remove the required module of your current and future kernels. Then run sudo dracut -f once more. +# +### NOTE: You may need to rebuild your initramfs manually on updates when using these modules. +# +### This module is disabled by default. +#add_drivers+="lib80211 lib80211_crypt_tkip wl" diff --git a/anda/system/broadcom-wl/90-broadcom-wl.conf b/anda/system/broadcom-wl/90-broadcom-wl.conf new file mode 100644 index 0000000000..9403c3026b --- /dev/null +++ b/anda/system/broadcom-wl/90-broadcom-wl.conf @@ -0,0 +1,16 @@ +### For use with the Broadcom Wi-Fi driver provided by Terra. +### This file disables MAC address randomization while scanning wireless access point as a workaround for RHBZ#1703745 and RFBZ#5245. +### See: +### - https://bugzilla.gnome.org/show_bug.cgi?id=777523 +### - RHBZ#1695696 +# +### WARNING: Anonymity is potentially disabled while scanning for a wireless access point. + +[device-disable-wifi-scan-rand-mac-address] +match-device=driver:wl +wifi.scan-rand-mac-address=no + +[connection-disable-wifi-scan-rand-mac-address] +match-device=driver:wl +wifi.cloned-mac-address=preserve +ethernet.cloned-mac-address=preserve diff --git a/anda/system/broadcom-wl/anda.hcl b/anda/system/broadcom-wl/anda.hcl new file mode 100644 index 0000000000..b1ff7e8005 --- /dev/null +++ b/anda/system/broadcom-wl/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "broadcom-wl.spec" + } +} diff --git a/anda/system/broadcom-wl/broadcom-wl-blacklist.conf b/anda/system/broadcom-wl/broadcom-wl-blacklist.conf new file mode 100644 index 0000000000..b5c1251e5d --- /dev/null +++ b/anda/system/broadcom-wl/broadcom-wl-blacklist.conf @@ -0,0 +1,6 @@ +### These modules must be blacklisted for use with broadcom-wl +blacklist ssb +blacklist bcma +blacklist b43 +blacklist brcmsmac +blacklist brcmfmac diff --git a/anda/system/broadcom-wl/broadcom-wl.spec b/anda/system/broadcom-wl/broadcom-wl.spec new file mode 100644 index 0000000000..0edc352904 --- /dev/null +++ b/anda/system/broadcom-wl/broadcom-wl.spec @@ -0,0 +1,69 @@ +%global _modprobe_d %{_prefix}/lib/modprobe.d +%global _dracut_conf_d %{_prefix}/lib/dracut/dracut.conf.d +%global _nmlibdir_conf_d %{_prefix}/lib/NetworkManager/conf.d +%bcond_without python3 + + +Name: broadcom-wl +Version: 6.30.223.271 +Release: 1%{?dist} +Summary: Common files for Broadcom 802.11 STA driver +Group: System Environment/Kernel +License: Redistributable, no modification permitted +URL: https://www.broadcom.com/support/download-search?pg=Legacy+Products&pf=Legacy+Wireless&pn=&pa=&po=&dk=&pl= +Source0: https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/hybrid-v35-nodebug-pcoem-6_30_223_271.tar.gz +Source1: https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz +Source2: https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/README_6.30.223.271.txt +Source3: broadcom-wl-blacklist.conf +Source4: 20-wl.conf +Source5: fedora.readme +Source6: com.broadcom.wireless.hybrid.driver.metainfo.xml +Source7: generate-modalias-metadata.py +Source8: 90-broadcom-wl.conf +BuildArch: noarch +Provides: wl-kmod-common = %{?epoch}:%{version} +Requires: wl-kmod >= %{?epoch}:%{version} +ExcludeArch: ppc ppc64 +BuildRequires: python3 +BuildRequires: libappstream-glib + +%description +Packaged Broadcom 802.11 Linux STA Driver for Wi-Fi for BCM4311-, BCM4312-, BCM4313-, BCM4321-, BCM4322-, BCM43142-, BCM43224-, BCM43225-, BCM43227-, BCM43228-, BCM4331-, BCM4360, and -BCM4352-. + +%prep +%setup -q -c +iconv -f iso8859-1 -t UTF8 lib/LICENSE.txt -o lib/LICENSE.txt +sed -i 's/\r$//' lib/LICENSE.txt +cp -p %{SOURCE2} . +cp -p %{SOURCE5} . +chmod 644 lib/LICENSE.txt README_6.30.223.271.txt fedora.readme + +%build + + +%install +install -m 0755 -d %{buildroot}%{_modprobe_d} +install -p -m 0644 %{SOURCE3} %{buildroot}%{_modprobe_d}/ +install -m 0755 -d %{buildroot}%{_dracut_conf_d} +install -p -m 0644 %{SOURCE4} %{buildroot}%{_dracut_conf_d}/ +install -m 0755 -d %{buildroot}%{_nmlibdir_conf_d}/ +install -p -m 0644 %{SOURCE8} %{buildroot}%{_nmlibdir_conf_d}/ +install -m 0755 -d %{buildroot}%{_metainfodir}/ +install -p -m 0644 %{SOURCE6} %{buildroot}%{_metainfodir}/ +fn=%{buildroot}%{_metainfodir}/com.broadcom.wireless.hybrid.driver.metainfo.xml +# appstream-util deletes all comments in the metainfo.xml file, so copyright must be saved and rewritten to the resulting file. +copyright_string=$(grep Copyright ${fn}) +python3 %{SOURCE7} README_6.30.223.271.txt "SUPPORTED DEVICES" | xargs appstream-util add-provide ${fn} modalias +appstream-util validate-relax --nonet ${fn} +grep -q Copyright ${fn} >/dev/null || sed -i "s%\(^ + + + com.broadcom.wireless.hybrid.driver + Broadcom STA wireless driver + Broadcom proprietary hybrid wireless drivers for certain Broadcom wireless devices + +

+ Broadcom's IEEE 802.11a/b/g/n hybrid Linux device drivers for use + with Broadcom's BCM4311-, BCM4312-, BCM4313-, BCM4321-, BCM4322-, + BCM43142-, BCM43224-, BCM43225-, BCM43227-, BCM43228-, BCM4331-, + BCM4360 and -BCM4352- based hardware. +

+
+ + https://www.broadcom.com/support/download-search/?pf=Wireless+LAN+Infrastructure + CC0-1.0 + LicenseRef-proprietary:Broadcom + Broadcom Incorporation + + Broadcom + driver + Wireless + hybrid + STA + + https://bugzilla.rpmfusion.org + broadcom-wl-owner@rpmfusion.org + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/anda/system/broadcom-wl/fedora.readme b/anda/system/broadcom-wl/fedora.readme new file mode 100644 index 0000000000..643d980a88 --- /dev/null +++ b/anda/system/broadcom-wl/fedora.readme @@ -0,0 +1,66 @@ +This file provides some basic information about Broadcom STA wireless driver configuration files on Fedora with packages provided by Terra. +------------------------------------------------------------------------ + +------------------------------------------------------------------------ +Table of content + 0. Caution + 1. Initramfs configuration file usage + 3. NetworkManager configuration file usage + 4. Support +------------------------------------------------------------------------ + + +0. Caution +=========== + +The files mentioned in this document should not be used in systems with working Wi-Fi. Only systems failing to connect should use these solutions. + +Use them at your own risk and only if your system's Broadcom device doesn't work properly. + + +1. Initramfs configuration +========================== + +Please read comments in /etc/dracut.conf.d/20-wl.conf file in order to configure loading modules needed by the Broadcom STA wireless driver in your kernel's initramfs. + +Edit the /etc/dracut.conf.d/20-wl.conf file and comment/uncomment the one line "add_drivers+=" directive depending on your needs. + +For example by CLI with Nano: +sudo nano /etc/dracut.conf.d/20-wl.conf + +Ctrl+O will save the file, and Ctrl+X will quit Nano. + +NOTE: Any CLI or GUI text editor is fine, this is purely an example. + +Then use Dracut to rebuild your current initramfs: +sudo dracut -f + + +3. NetworkManager configuration file usage +========================================== + +To try to fix issues noted in RHBZ#1703745 and RFBZ#5245 the usr/lib/NetworkManager/conf.d/90-broadcom-wl.conf file is provided. + +This file disables MAC address randomization for Broadcom devices using this driver while scanning for a wireless access point. + +It prevents "CTRL-EVENT-SCAN-FAILED ret=-22 retry=1" messages in logs and the inability to connect to a wireless access point. + +The tradeoff of this setting is that scanning for wireless access point uses only the real MAC address of the device and produces is less anonymous. + +To disable this setting, reate an empty file with the exact same name in /etc/NetworkManager/conf.d + +In a terminal, type: +sudo touch /etc/NetworkManager/conf.d/90-broadcom-wl.conf + +To re-enable this setting, remove the file. + +In a terminal, type: +sudo rm -f /etc/NetworkManager/conf.d/90-broadcom-wl.conf + + +4. Support +========== + +Support about these configuration files will only be provided on one of the methods of contact listed here: + +https://fyralabs.com/contact diff --git a/anda/system/broadcom-wl/generate-modalias-metadata.py b/anda/system/broadcom-wl/generate-modalias-metadata.py new file mode 100644 index 0000000000..16b1f938cb --- /dev/null +++ b/anda/system/broadcom-wl/generate-modalias-metadata.py @@ -0,0 +1,74 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Richard Hughes +# Licensed under the GNU General Public License Version or later +# +# Modified to parse broadcom-wl README_6.30.223.271.txt and for python3 +# Copyright (C) 2018 Nicolas Viéville +# Usage example: +# python3 generate-modalias-metadata.py README_6.30.223.271.txt "SUPPORTED DEVICES" | \ +# xargs appstream-util add-provide com.broadcom.driver.wireless.hybrid.test.metainfo.xml + +from __future__ import print_function +import sys + +def main(): + if len(sys.argv) != 3: + print("usage: %s README_FILE.txt \"header to match\"" % sys.argv[0]) + return 1 + + # open file + f = open(sys.argv[1]) + in_section = False + in_table = False + pids = [] + for line in f.readlines(): + + # find the right data table + if line.find(sys.argv[2]) != -1: + in_section = True + continue + if not in_section: + continue + + # remove Windows and Linux line endings + line = line.replace('\r', '') + line = line.replace('\n', '') + + # end of table + if len(line) > 0 and not line.startswith(' '): + in_table = False + continue + + # empty line + if len(line) == 0: + continue + + # skip the header + if line.startswith(' -----'): + in_table = True + continue + if not in_table: + continue + + # end of section + if len(line) > 0 and not line.startswith(' '): + in_section = False + in_table = False + continue + + if line.find('0x14e4') != -1: + # get name + pid = int((line.split("0x14e4",1)[1]).split()[0], 16) + if not pid in pids: + pids.append(pid) + + # output + vid = 0x14e4 + print("pci:v%08xd*sv*sd*bc02sc80i*" % (vid)) + for pid in pids: + print("pci:v%08xd%08xsv*sd*bc02sc80i*" % (vid, pid)) + +if __name__ == "__main__": + main() diff --git a/anda/system/chromebook-usbc-fix/anda.hcl b/anda/system/chromebook-usbc-fix/anda.hcl new file mode 100644 index 0000000000..c1c46b66d7 --- /dev/null +++ b/anda/system/chromebook-usbc-fix/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "chromebook-usbc-fix.spec" + } + labels { + nightly = "1" + } +} \ No newline at end of file diff --git a/anda/system/chromebook-usbc-fix/chromebook-usbc-fix.spec b/anda/system/chromebook-usbc-fix/chromebook-usbc-fix.spec new file mode 100644 index 0000000000..a293cecdc7 --- /dev/null +++ b/anda/system/chromebook-usbc-fix/chromebook-usbc-fix.spec @@ -0,0 +1,50 @@ +%global commit_date 20241005 + +%global commit cef28b120a39fd459c5864d51c4ad52ecaaf25a0 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +%global debug_package %{nil} +%define __os_install_post %{nil} + +Name: chromebook-usbc-fix +Version: %commit_date.%shortcommit +Release: 2%?dist + +License: CCO +Summary: Fixes usbc on TigerLake and AlderLake Chromebooks +URL: https://github.com/Ultramarine-Linux/chromebook-usbc-fix +Source: %url/archive/%{commit}/chromebook-usbc-fix-%{commit}.tar.gz +Packager: Owen Zimmerman + +%{?systemd_requires} +BuildRequires: systemd-rpm-macros + +%description +%summary + +%prep +%autosetup -n chromebook-usbc-fix-%commit + +%install +install -Dm755 chromebook-usbc.service %buildroot%{_unitdir}/chromebook-usbc.service + +# These systemd services should be included in the preset file for Ultramarine Linux Chromebook images +%post +%systemd_post chromebook-usbc.service + +%preun +%systemd_preun chromebook-usbc.service + +%postun +%systemd_postun_with_restart chromebook-usbc.service + +%files +%doc README.md +%license LICENSE +%{_unitdir}/chromebook-usbc.service + +%changelog +* Sat Oct 12 2024 Owen-sz +- Fix the systemd preset application +* Sat Oct 5 2024 Owen-sz +- Initial package. diff --git a/anda/system/chromebook-usbc-fix/update.rhai b/anda/system/chromebook-usbc-fix/update.rhai new file mode 100644 index 0000000000..f8cb3cac66 --- /dev/null +++ b/anda/system/chromebook-usbc-fix/update.rhai @@ -0,0 +1,8 @@ +if filters.contains("nightly") { + rpm.global("commit", gh_commit("Ultramarine-Linux/chromebook-usbc-fix")); + if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); + } + } + \ No newline at end of file diff --git a/anda/system/cros-keyboard-map/cros-keyboard-map.spec b/anda/system/cros-keyboard-map/cros-keyboard-map.spec index 300f6139e6..6893b3cdbc 100644 --- a/anda/system/cros-keyboard-map/cros-keyboard-map.spec +++ b/anda/system/cros-keyboard-map/cros-keyboard-map.spec @@ -1,6 +1,6 @@ -%global commit_date 20240824 +%global commit_date 20250123 -%global tree_commit b2e69368f96bdf7562dc1a95a0d863c794756842 +%global tree_commit 4647ce2297a7142dabe3cae1de718a69cb370448 %global tree_shortcommit %(c=%{tree_commit}; echo ${c:0:7}) %global um_commit 46892acafb2fff3f3ace425d4694382c92645feb @@ -41,17 +41,15 @@ mkdir -p %buildroot%{_unitdir} install -Dm644 cros-keyboard-map.service %{buildroot}%{_unitdir}/cros-keyboard-map.service chmod +x %buildroot%{_bindir}/um-generate-cros-keymap +# These systemd services should be included in the preset file for Ultramarine Linux Chromebook images %post %systemd_post cros-keyboard-map.service -%systemd_post keyd.service %preun %systemd_preun cros-keyboard-map.service -%systemd_preun keyd.service %postun %systemd_postun_with_restart cros-keyboard-map.service -%systemd_postun_with_restart keyd.service %files %doc README.md @@ -61,6 +59,8 @@ chmod +x %buildroot%{_bindir}/um-generate-cros-keymap %{_bindir}/um-generate-cros-keymap %changelog +* Sat Oct 12 2024 Owen-sz +- Fix the systemd preset application * Sat Aug 24 2024 junefish - Split off into seperate git repo. * Sat May 4 2024 Owen-sz diff --git a/anda/system/decklink/anda.hcl b/anda/system/decklink/anda.hcl new file mode 100644 index 0000000000..8bc35fab63 --- /dev/null +++ b/anda/system/decklink/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "decklink-devel.spec" + } +} diff --git a/anda/system/decklink/decklink-devel.spec b/anda/system/decklink/decklink-devel.spec new file mode 100644 index 0000000000..31fb9cfda8 --- /dev/null +++ b/anda/system/decklink/decklink-devel.spec @@ -0,0 +1,44 @@ +Name: decklink-devel +Version: 14.4 +Release: 1%{?dist} +Summary: Blackmagic Design DeckLink SDK +License: End User License Agreement for the Software Development Kit +URL: https://www.blackmagicdesign.com/ +BuildArch: noarch + +Source0: https://github.com/terrapkg/pkg-decklink-devel/releases/download/%{version}/Blackmagic_DeckLink_SDK_%{version}.zip + +%description +This SDK provides developer support for Desktop Video that allows updating +of hardware control and software interfaces for Desktop Video products. + +%package samples +Summary: Sample files and documentation for %{name} +Requires: %{name} = %{version}-%{release} + +%description samples +The %{name}-samples package contains documentation and samplese for the +DeckLink SDK. + +%prep +%autosetup -c +mv Blackmagic\ DeckLink\ SDK\ %{version}/* . +rm -fr Blackmagic\ DeckLink\ SDK\ %{version} + +rm -fr Mac Win Examples/Mac Examples/Win +rm -fr Examples/Linux/bin Linux/Samples/bin + +%install +mkdir -p %{buildroot}%{_includedir} +install -p -m 0644 Linux/include/* %{buildroot}%{_includedir} + +%files +%license "End User License Agreement.pdf" +%{_includedir}/* + +%files samples +%doc ReadMe.rtf "Blackmagic DeckLink SDK.pdf" +%doc Examples/ + +%changelog +%autochangelog diff --git a/anda/system/ipu6-camera-hal/0000-lib-path.patch b/anda/system/ipu6-camera-hal/0000-lib-path.patch new file mode 100644 index 0000000000..df8913015d --- /dev/null +++ b/anda/system/ipu6-camera-hal/0000-lib-path.patch @@ -0,0 +1,32 @@ +--- ipu6-camera-hal-8863bda8b15bef415f112700d0fb04e00a48dbee.old/cmake/libcamhal.pc.cmakein 2024-08-06 08:24:01.897232057 +0200 ++++ ipu6-camera-hal-8863bda8b15bef415f112700d0fb04e00a48dbee/cmake/libcamhal.pc.cmakein 2024-08-06 08:25:08.361731743 +0200 +@@ -1,6 +1,6 @@ + prefix=@CMAKE_INSTALL_PREFIX@ + exec_prefix=${prefix}/@CMAKE_INSTALL_SUB_PATH@ +-libdir=${prefix}/lib/@CMAKE_INSTALL_SUB_PATH@ ++libdir=${prefix}/lib64/@CMAKE_INSTALL_SUB_PATH@ + includedir=${prefix}/include/@CMAKE_INSTALL_SUB_PATH@/libcamhal + + Name: libcamhal +--- a/src/hal/hal_adaptor/HalAdaptor.cpp ++++ b/src/hal/hal_adaptor/HalAdaptor.cpp +@@ -62,7 +62,7 @@ static void load_camera_hal_library() { + CheckAndLogError((strlen(pciID) == 0), VOID_VALUE, "%s, Failed to read PCI id. %d", __func__, + ret); + +- std::string libName = "/usr/lib/"; ++ std::string libName = "/usr/lib64/"; + if (IPU6_UPSTREAM) { + if (strstr(pciID, "0x7d19") != nullptr /* MTL */) { + libName += "ipu_mtl_upstream"; +--- ipu6-camera-hal-8863bda8b15bef415f112700d0fb04e00a48dbee.old/src/platformdata/PlatformData.h 2024-08-06 08:24:01.919232222 +0200 ++++ ipu6-camera-hal-8863bda8b15bef415f112700d0fb04e00a48dbee/src/platformdata/PlatformData.h 2024-08-06 08:25:08.362731750 +0200 +@@ -89,7 +89,7 @@ + #define MAX_CAMERA_NUMBER 100 + // Temporarily using current path to save aiqd file for none CAL platforms. + #define CAMERA_CACHE_DIR "./" +-#define CAMERA_DEFAULT_CFG_PATH "/etc/camera/" ++#define CAMERA_DEFAULT_CFG_PATH "/usr/share/camera/" + #define CAMERA_GRAPH_DESCRIPTOR_FILE "gcss/graph_descriptor.xml" + #define CAMERA_GRAPH_SETTINGS_DIR "gcss/" + #endif diff --git a/anda/system/ipu6-camera-hal/0001-CMakeLists-fixes.patch b/anda/system/ipu6-camera-hal/0001-CMakeLists-fixes.patch new file mode 100644 index 0000000000..82924624ce --- /dev/null +++ b/anda/system/ipu6-camera-hal/0001-CMakeLists-fixes.patch @@ -0,0 +1,48 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -266,7 +266,7 @@ add_library(camhal_static STATIC ${LIBCAMHAL_SRCS}) + if (NOT CAL_BUILD AND (NOT "${CMAKE_INSTALL_SUB_PATH}" STREQUAL "")) + set(CMAKE_SKIP_RPATH TRUE) + set_target_properties(camhal PROPERTIES LINK_FLAGS +- "-Wl,-rpath,/usr/lib/${CMAKE_INSTALL_SUB_PATH}") ++ "-Wl,-rpath,${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${CMAKE_INSTALL_SUB_PATH}") + add_compile_definitions(SUB_CONFIG_PATH="${CMAKE_INSTALL_SUB_PATH}") + endif() + set_target_properties(camhal_static PROPERTIES OUTPUT_NAME "camhal") +@@ -399,9 +399,9 @@ endif() #ENABLE_SANDBOXING + if (NOT CAL_BUILD) + # Install headers + if ("${CMAKE_INSTALL_SUB_PATH}" STREQUAL "") +- install(DIRECTORY include/ DESTINATION usr/include/libcamhal) ++ install(DIRECTORY include/ DESTINATION include/libcamhal) + if (SUPPORT_LIVE_TUNING) +- install(FILES modules/livetune/LiveTuning.h DESTINATION usr/include/libcamhal/api) ++ install(FILES modules/livetune/LiveTuning.h DESTINATION include/libcamhal/api) + endif() #SUPPORT_LIVE_TUNING + endif() + +@@ -421,18 +421,18 @@ endif() + # Install libraries + if (${CMAKE_VERSION} VERSION_LESS 3.11) + install(TARGETS camhal camhal_static +- LIBRARY DESTINATION usr/lib/${CMAKE_INSTALL_SUB_PATH} +- ARCHIVE DESTINATION usr/lib/${CMAKE_INSTALL_SUB_PATH} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${CMAKE_INSTALL_SUB_PATH} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/${CMAKE_INSTALL_SUB_PATH} + ) + else() +-install(TARGETS camhal camhal_static DESTINATION usr/lib/${CMAKE_INSTALL_SUB_PATH}) ++install(TARGETS camhal camhal_static DESTINATION ${CMAKE_INSTALL_LIBDIR}/${CMAKE_INSTALL_SUB_PATH}) + endif() + + # Install package config file + configure_file(${PROJECT_SOURCE_DIR}/cmake/libcamhal.pc.cmakein + ${PROJECT_SOURCE_DIR}/libcamhal.pc @ONLY) + install(FILES libcamhal.pc +- DESTINATION usr/${CMAKE_INSTALL_LIBDIR}/${CMAKE_INSTALL_SUB_PATH}/pkgconfig) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/${CMAKE_INSTALL_SUB_PATH}/pkgconfig) + + endif() #NOT CAL_BUILD + + + diff --git a/anda/system/ipu6-camera-hal/0002-set-mainline.patch b/anda/system/ipu6-camera-hal/0002-set-mainline.patch new file mode 100644 index 0000000000..057036a047 --- /dev/null +++ b/anda/system/ipu6-camera-hal/0002-set-mainline.patch @@ -0,0 +1,20 @@ +--- a/src/v4l2/MediaControl.cpp ++++ b/src/v4l2/MediaControl.cpp +@@ -886,6 +886,15 @@ int MediaControl::mediaCtlSetup(int cameraId, MediaCtlConf* mc, int width, int h + ivscName.c_str(), link.sinkEntityName.c_str()); + link.srcEntity = ivsc->info.id; + link.srcEntityName = ivscName; ++ /* ++ * Since mainline kernel commit 48f5fd8967f8 ("media: ++ * ivsc: csi: Swap SINK and SOURCE pads") the src-pad ++ * on the mainline ivsc mc-entity is pad 1, where on ++ * older versions it is pad 0, so this needs to be set ++ * dynamically. ++ * The src-pad is the other pad of the found ivsc sink. ++ */ ++ link.srcPad = !ivsc->links[i].sink->index; + break; + } + } + + diff --git a/anda/system/ipu6-camera-hal/60-intel-ipu6.rules b/anda/system/ipu6-camera-hal/60-intel-ipu6.rules new file mode 100644 index 0000000000..967b72cb12 --- /dev/null +++ b/anda/system/ipu6-camera-hal/60-intel-ipu6.rules @@ -0,0 +1,16 @@ +# Tiger Lake +SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", ATTR{device}=="0x9a19", RUN+="/usr/bin/echo /usr/lib64/ipu_tgl > /etc/ld.so.conf.d/ipu6-x86_64.conf" +# Alder Lake-N +SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", ATTR{device}=="0x465d", RUN+="/usr/bin/echo /usr/lib64/ipu_adl > /etc/ld.so.conf.d/ipu6-x86_64.conf" +# Alder Lake-P +SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", ATTR{device}=="0x462e", RUN+="/usr/bin/echo /usr/lib64/ipu_adl > /etc/ld.so.conf.d/ipu6-x86_64.conf" +# Raptor Lake-P +SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", ATTR{device}=="0xa75d", RUN+="/usr/bin/echo /usr/lib64/ipu_adl > /etc/ld.so.conf.d/ipu6-x86_64.conf" +# Meteor Lake +SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", ATTR{device}=="0x7d19", RUN+="/usr/bin/echo /usr/lib64/ipu_mtl > /etc/ld.so.conf.d/ipu6-x86_64.conf" +# Lunar Lake +SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", ATTR{device}=="0x645d", RUN+="/usr/bin/echo /usr/lib64/ipu_lnl > /etc/ld.so.conf.d/ipu6-x86_64.conf" +# Jasper Lake +SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", ATTR{device}=="0x4e19", RUN+="/usr/bin/echo /usr/lib64/ipu_jsl > /etc/ld.so.conf.d/ipu6-x86_64.conf" + +KERNEL=="ipu-psys0", TAG+="uaccess" diff --git a/anda/system/ipu6-camera-hal/anda.hcl b/anda/system/ipu6-camera-hal/anda.hcl new file mode 100644 index 0000000000..b156dc5ec2 --- /dev/null +++ b/anda/system/ipu6-camera-hal/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "ipu6-camera-hal.spec" + } + labels { + weekly = 1 + } +} diff --git a/anda/system/ipu6-camera-hal/icamera_ipu6_isys.conf b/anda/system/ipu6-camera-hal/icamera_ipu6_isys.conf new file mode 100644 index 0000000000..5631cb2d2d --- /dev/null +++ b/anda/system/ipu6-camera-hal/icamera_ipu6_isys.conf @@ -0,0 +1,3 @@ +# Move the special isys /dev/video# node out of the way of +# normal v4l2 devices such as v4l2loopback +options icamera_ipu6_isys video_nr=8,9,10,11,12,13,14,15 diff --git a/anda/system/ipu6-camera-hal/ipu6-camera-hal.spec b/anda/system/ipu6-camera-hal/ipu6-camera-hal.spec new file mode 100644 index 0000000000..51ba9cedfe --- /dev/null +++ b/anda/system/ipu6-camera-hal/ipu6-camera-hal.spec @@ -0,0 +1,149 @@ +%global commit 289e645dffbd0ea633f10bb4f93855f1e4429e9a +%global commitdate 20240509 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global build_cflags %{__build_flags_lang_c} %{?_distro_extra_cflags} -Wno-alloc-size-larger-than +%global build_cxxflags %{__build_flags_lang_cxx} %{?_distro_extra_cxxflags} -Wno-alloc-size-larger-than +%global __cmake_in_source_build 1 + +Name: ipu6-camera-hal +Summary: Hardware abstraction layer for Intel IPU6 +URL: https://github.com/intel/ipu6-camera-hal +Version: %{commitdate}.%{shortcommit} +Release: 2%{?dist} +License: Apache-2.0 +Source0: https://github.com/intel/%{name}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz +Source1: 60-intel-ipu6.rules +Source2: v4l2-relayd-adl +Source3: v4l2-relayd-tgl +Source4: icamera_ipu6_isys.conf +Source5: ipu6-driver-select.sh +### RPM Fusion | [ipu6-camera-hal] Update to the latest commit | MODIFIED +## https://lists.rpmfusion.org/archives/list/rpmfusion-commits@lists.rpmfusion.org/thread/O6IPZMHMP7A3LQBDY4AEORTDEX4P6ESY +Patch00: 0000-lib-path.patch +### intel/ipu6-camera-hal | PR #113 | CMakeLists fixes +## https://github.com/intel/ipu6-camera-hal/pull/113 +Patch01: 0001-CMakeLists-fixes.patch +### intel/ipu6-camera-hal | PR #114 | MediaControl: Dymically set mainline IVSC media-entity src-pad index +## https://github.com/intel/ipu6-camera-hal/pull/114 +Patch02: 0002-set-mainline.patch +BuildRequires: systemd-rpm-macros +BuildRequires: ipu6-camera-bins-devel >= 0.0-11 +BuildRequires: cmake +BuildRequires: gcc +BuildRequires: g++ +BuildRequires: expat-devel +BuildRequires: libdrm-devel +ExclusiveArch: x86_64 +Requires: ipu6-camera-bins >= 0.0-11 + +%description +This package provides the basic Hardware Avstraction Layer (HAL) access APIs for IPU6. + +%package devel +Summary: IPU6 header files for HAL +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: ipu6-camera-bins-devel + +%description devel +This provides the necessary header files for IPU6 HAL development. + +%prep +%autosetup -p1 -n %{name}-%{commit} +sed -i "s|/etc/camera/|/usr/share/camera/|g" \ + src/platformdata/PlatformData.h + + +%build +for i in ipu_tgl ipu_adl ipu_mtl; do + export PKG_CONFIG_PATH=%{_libdir}/$i/pkgconfig/ + export LDFLAGS="$RPM_LD_FLAGS -Wl,-rpath=%{_libdir}/$i" + mkdir $i && pushd $i + if [ $i = "ipu_tgl" ]; then + IPU_VERSION=ipu6 + elif [ $i = "ipu_adl" ]; then + IPU_VERSION=ipu6ep + elif [ $i = "ipu_mtl" ]; then + IPU_VERSION=ipu6epmtl + else + IPU_VERSION=ipu + fi + %cmake \ + -DBUILD_CAMHAL_ADAPTOR=ON \ + -DBUILD_CAMHAL_PLUGIN=ON \ + -DBUILD_CAMHAL_TESTS=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_SUB_PATH:PATH="$i" \ + -DCMAKE_INSTALL_SYSCONFDIR=%{_datadir} \ + -DIPU_VER="$IPU_VERSION" \ + -DUSE_PG_LITE_PIPE=ON .. + %make_build + popd +done + +### hal_adaptor.so dispatches between different libcamhal.so builds so only build it once! +mkdir hal_adaptor && pushd hal_adaptor +%cmake ../src/hal/hal_adaptor +%make_build +popd + +%install +for i in ipu_tgl ipu_adl ipu_mtl; do + pushd $i + %make_install + rm %{buildroot}%{_libdir}/$i/libcamhal.a + rm -r %{buildroot}%{_libdir}/$i/pkgconfig + popd +done + +pushd hal_adaptor +%make_install +popd + +install -Dpm 0644 %{SOURCE1} %{buildroot}%{_udevrulesdir}/60-intel-ipu6.rules + +### v4l2-relayd configuration examples (mtl uses same config as adl) +install -Dpm 0644 %{SOURCE2} %{buildroot}%{_datadir}/camera/ipu_adl/v4l2-relayd +install -Dpm 0644 %{SOURCE2} %{buildroot}%{_datadir}/camera/ipu_mtl/v4l2-relayd +install -Dpm 0644 %{SOURCE3} %{buildroot}%{_datadir}/camera/ipu_tgl/v4l2-relayd + +### Make kmod-intel-ipu6 use /dev/video7 leaving /dev/video0 for loopback +install -Dpm 0644 %{SOURCE4} %{buildroot}%{_modprobedir}/icamera_ipu6_isys.conf + +### Script to switch between proprietary and open IPU6 stacks +install -Dpm 0755 %{SOURCE5} %{buildroot}%{_bindir}/ipu6-driver-select + +### Needed for GStreamer ICamera builds. +ln -sf hal_adaptor %{buildroot}%{_includedir}/libcamhal +ln -sf hal_adaptor.pc %{buildroot}%{_libdir}/pkgconfig/libcamhal.pc + +%posttrans +### Ensure that v4l2-relayd service enabled if ipu6-driver-select is installed +if [ ! -f /etc/modprobe.d/ipu6-driver-select.conf ]; then + /usr/bin/ipu6-driver-select proprietary +fi +### Skip triggering if udevd isn't accessible +if [ -S /run/udev/control ]; then + /usr/bin/udevadm control --reload + /usr/bin/udevadm trigger /sys/devices/pci0000:00/0000:00:05.0 +fi + +%files +%license LICENSE +%ghost %{_sysconfdir}/modprobe.d/ipu6-driver-select.conf +%{_bindir}/ipu6-driver-select +%{_libdir}/ipu*/libcamhal.so* +%{_libdir}/libhal_adaptor.so.* +%{_datadir}/camera +%{_modprobedir}/icamera_ipu6_isys.conf +%{_udevrulesdir}/60-intel-ipu6.rules + +%files devel +%{_includedir}/hal_adaptor +%{_includedir}/libcamhal +%{_libdir}/libhal_adaptor.so +%{_libdir}/pkgconfig/hal_adaptor.pc +%{_libdir}/pkgconfig/libcamhal.pc + + +%changelog +%autochangelog diff --git a/anda/system/ipu6-camera-hal/ipu6-driver-select.sh b/anda/system/ipu6-camera-hal/ipu6-driver-select.sh new file mode 100644 index 0000000000..4f7333d3b9 --- /dev/null +++ b/anda/system/ipu6-camera-hal/ipu6-driver-select.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +set -e + +function show_help () { + echo "Usage: 'ipu6-driver-select [ proprietary | open ]'" + exit 1 +} + +function needs_reboot () { + echo "Reboot your system for the changes to take effect" + exit 0 +} + +if (( $# != 1 )); then + show_help +fi + +case "$1" in + "open") + echo "blacklist icamera-ipu6" > /etc/modprobe.d/ipu6-driver-select.conf + echo "blacklist icamera-ipu6-isys" >> /etc/modprobe.d/ipu6-driver-select.conf + echo "blacklist icamera-ipu6-psys" >> /etc/modprobe.d/ipu6-driver-select.conf + systemctl disable v4l2-relayd.service + needs_reboot + ;; + "proprietary") + echo "blacklist intel-ipu6" > /etc/modprobe.d/ipu6-driver-select.conf + systemctl enable v4l2-relayd.service + needs_reboot + ;; + *) + show_help + ;; +esac diff --git a/anda/system/ipu6-camera-hal/v4l2-relayd-adl b/anda/system/ipu6-camera-hal/v4l2-relayd-adl new file mode 100644 index 0000000000..97aea200e4 --- /dev/null +++ b/anda/system/ipu6-camera-hal/v4l2-relayd-adl @@ -0,0 +1,15 @@ +# GStreamer source element name: +VIDEOSRC="icamerasrc" +#SPLASHSRC="filesrc location=/.../splash.png ! pngdec ! imagefreeze num-buffers=4 ! videoscale ! videoconvert" + +# Output format, width, height, and frame rate: +FORMAT=NV12 +WIDTH=1280 +HEIGHT=720 +FRAMERATE=30/1 + +# Virtual video device name: +CARD_LABEL="Intel MIPI Camera" + +# Extra options to pass to v4l2-relayd: +#EXTRA_OPTS=-d diff --git a/anda/system/ipu6-camera-hal/v4l2-relayd-tgl b/anda/system/ipu6-camera-hal/v4l2-relayd-tgl new file mode 100644 index 0000000000..4453b45c62 --- /dev/null +++ b/anda/system/ipu6-camera-hal/v4l2-relayd-tgl @@ -0,0 +1,15 @@ +# GStreamer source element name: +VIDEOSRC="icamerasrc" +#SPLASHSRC="filesrc location=/.../splash.png ! pngdec ! imagefreeze num-buffers=4 ! videoscale ! videoconvert" + +# Output format, width, height, and frame rate: +FORMAT=YUY2 +WIDTH=1280 +HEIGHT=720 +FRAMERATE=30/1 + +# Virtual video device name: +CARD_LABEL="Intel MIPI Camera" + +# Extra options to pass to v4l2-relayd: +#EXTRA_OPTS=-d diff --git a/anda/system/ivsc-firmware/ivsc-firmware.spec b/anda/system/ivsc-firmware/ivsc-firmware.spec index ec14b2177a..64e540e8a3 100644 --- a/anda/system/ivsc-firmware/ivsc-firmware.spec +++ b/anda/system/ivsc-firmware/ivsc-firmware.spec @@ -1,5 +1,5 @@ %global debug_package %{nil} -%global commit 10c214fea5560060d387fbd2fb8a1af329cb6232 +%global commit 74a01d1208a352ed85d76f959c68200af4ead918 %global commitdate 20230811 %global shortcommit %(c=%{commit}; echo ${c:0:7}) @@ -7,7 +7,7 @@ Name: ivsc-firmware Summary: Intel iVSC firmware URL: https://github.com/intel/ivsc-firmware Version: %{commitdate}.%{shortcommit} -Release: 1%{?dist} +Release: 1%?dist License: Proprietary Source0: https://github.com/intel/%{name}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz Requires: ipu6-camera-bins diff --git a/anda/system/limine/limine.spec b/anda/system/limine/limine.spec index cbde5ddfeb..0e29a6fe58 100644 --- a/anda/system/limine/limine.spec +++ b/anda/system/limine/limine.spec @@ -1,5 +1,5 @@ Name: limine -Version: 8.0.11 +Version: 8.7.0 Release: 1%?dist Summary: Modern, advanced, portable, multiprotocol bootloader License: BSD-2-Clause diff --git a/anda/system/nvidia-patch/nvidia-patch.spec b/anda/system/nvidia-patch/nvidia-patch.spec index 3877472560..64353127ce 100644 --- a/anda/system/nvidia-patch/nvidia-patch.spec +++ b/anda/system/nvidia-patch/nvidia-patch.spec @@ -1,7 +1,7 @@ %global debug_package %{nil} -%global commit d3a5414eff8acb3246ccf1014a81ba4bf4237a98 +%global commit ab88d5ec996e841255e3c5215a360b7de306f375 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240831 +%global commit_date 20250212 %global patches %{_datadir}/src/nvidia-patch diff --git a/anda/system/nvidia/README.md b/anda/system/nvidia/README.md new file mode 100644 index 0000000000..c0fe5a7a8a --- /dev/null +++ b/anda/system/nvidia/README.md @@ -0,0 +1,43 @@ +# The Terra NVIDIA Driver tree + +This directory contains the Terra distribution of NVIDIA drivers. + +These driver packages are based on negativo17's NVIDIA driver packages for Fedora, with very slight modifications for hardware compatibility, and conforming to the Terra packaging guidelines. + +Unlike negativo17 and Nobara, we do not manually generate a tarball of the NVIDIA drivers, but directly generate them +on-the-fly from the NVIDIA installer. This ensures that the packages can be easily maintained and updated, as long as the +self-extracting NVIDIA installer still has the same command-line options. + +One major difference for Terra's distro is that we install the closed-source kernel modules by default, instead of the newer open-source kernel modules. This is because the open-source modules only support GPUs that have a GSP (GPU System Processor), which only includes Turing (RTX 20 series) and newer GPUs. As we would like to still support older GPUs, we install the closed-source modules by default. + +## How Terra unpacks the self-extracting archive + +Instead of pre-generating the tarball, we run the NVIDIA installer with the `-x` flag to extract the contents directly to the build directory. We then make use of an RPM macro to set the new build directory as that tree. + +```rpmspec +Source0: http://download.nvidia.com/XFree86/Linux-%{_arch}/%{version}/NVIDIA-Linux-%{_arch}-%{version}.run + + +... skip to the %prep section ... + +%prep +sh %{SOURCE0} -x --target nvidia-driver-%{version} +%setup -T -D -n nvidia-driver-%{version} + +%build + +... Build the package as usual ... + +``` + +This is simpler than manually generating the tarball, but comes with a slight cost of having to download the NVIDIA installer every time we build any package that relies on that archive. + +## Support + +If you have any issues with the NVIDIA drivers, please file an issue on the [Terra Monorepo](https://github.com/terrapkg/packages/issues). We will try to help you as best as we can. + +## License + +The NVIDIA drivers are licensed under the NVIDIA Software License. Please refer to the [NVIDIA Software License](https://www.nvidia.com/content/DriverDownload-March2009/licence.php?lang=us) for more information. + +We do not modify the actual NVIDIA drivers in any way, only providing a re-packaged version compatible with Ultramarine and Fedora. diff --git a/anda/system/nvidia/libva-nvidia-driver/anda.hcl b/anda/system/nvidia/libva-nvidia-driver/anda.hcl new file mode 100644 index 0000000000..d3a613011e --- /dev/null +++ b/anda/system/nvidia/libva-nvidia-driver/anda.hcl @@ -0,0 +1,10 @@ +project "pkg" { + rpm { + spec = "libva-nvidia-driver.spec" + } + arches = ["x86_64", "aarch64", "i386"] + labels = { + subrepo = "nvidia" + mock = 1 + } +} \ No newline at end of file diff --git a/anda/system/nvidia/libva-nvidia-driver/libva-nvidia-driver.spec b/anda/system/nvidia/libva-nvidia-driver/libva-nvidia-driver.spec new file mode 100644 index 0000000000..4b1ba9be71 --- /dev/null +++ b/anda/system/nvidia/libva-nvidia-driver/libva-nvidia-driver.spec @@ -0,0 +1,94 @@ +%global commit0 c519e97ef7af581c109f49b6973269fb16d1bc54 +%global date 20250206 +%global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) + +%global upstream_name nvidia-vaapi-driver + +Name: libva-nvidia-driver +Epoch: 1 +Version: 0.0.13%{!?tag:^%{date}git%{shortcommit0}} +Release: 1%{?dist} +Summary: VA-API user mode driver for Nvidia GPUs +License: MIT +URL: https://github.com/elFarto/%{upstream_name} + +%if "%{?shortcommit0}" +Source0: %{url}/archive/%{commit0}/%{upstream_name}-%{commit0}.tar.gz#/%{upstream_name}-%{shortcommit0}.tar.gz +%else +Source0: %{url}/archive/v%{version}/%{upstream_name}-%{version}.tar.gz +%endif + +BuildRequires: gcc +BuildRequires: meson >= 0.58.0 +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(ffnvcodec) >= 11.1.5.1 +%if 0%{?fedora} || 0%{?rhel} >= 9 +BuildRequires: pkgconfig(gstreamer-codecparsers-1.0) +%endif +BuildRequires: pkgconfig(libdrm) >= 2.4.60 +BuildRequires: pkgconfig(libva) >= 1.8.0 + +Conflicts: libva-vdpau-driver%{?_isa} +Obsoletes: %{upstream_name} < 0.0.10-3 +Provides: %{upstream_name} = %{version}-%{release} +# Alternative name that better describes the API involved +Provides: nvdec-vaapi-driver = %{version}-%{release} + +Requires: mesa-filesystem + +%description +This is a VA-API implementation that uses NVDEC as a backend. This +implementation is specifically designed to be used by Firefox for accelerated +decode of web content, and may not operate correctly in other applications. + +%prep +%if "%{?shortcommit0}" +%autosetup -p1 -n %{upstream_name}-%{commit0} +%else +%autosetup -p1 -n %{upstream_name}-%{version} +%endif + +%build +%meson +%meson_build + +%install +%meson_install + +%check +%meson_test + +%files +%license COPYING +%doc README.md +%{_libdir}/dri/nvidia_drv_video.so + +%changelog +* Sun Nov 10 2024 Simone Caronni - 1:0.0.13^20241108git259b7b7-1 +- Update to latest snapshot. +- Drop no longer needed patch. + +* Fri Oct 04 2024 Simone Caronni - 1:0.0.12^20240909git68efa33-2 +- Update to latest snapshot. +- Add patch for 560/Wayland. + +* Mon May 06 2024 Simone Caronni - 1:0.0.12-1 +- Update to 0.0.12. +- Trim changelog. +- Clean up SPEC file, allow it to build for EL8. + +* Wed Nov 08 2023 Simone Caronni - 0.0.11-1 +- Update to 0.0.11. +- Rename to libva-nvidia-driver, as in main Fedora repository. + +* Wed Jun 28 2023 Simone Caronni - 0.0.10-1 +- Update to 0.0.10. + +* Mon Mar 20 2023 Simone Caronni - 0.0.9-1.20230319gitc0a7f54 +- Update to latest snapshot. + +* Mon Feb 06 2023 Simone Caronni - 0.0.8-2.20230205git17c62b8 +- Add latest fixes. + +* Sat Feb 04 2023 Simone Caronni - 0.0.8-1.20230131git2bb71a5 +- Rebase to latest snapshot. \ No newline at end of file diff --git a/anda/system/nvidia/nvidia-container-toolkit/anda.hcl b/anda/system/nvidia/nvidia-container-toolkit/anda.hcl new file mode 100644 index 0000000000..a3300d432d --- /dev/null +++ b/anda/system/nvidia/nvidia-container-toolkit/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "nvidia-container-toolkit.spec" + } + labels = { + subrepo = "nvidia" + } +} diff --git a/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec b/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec new file mode 100644 index 0000000000..887eda961b --- /dev/null +++ b/anda/system/nvidia/nvidia-container-toolkit/nvidia-container-toolkit.spec @@ -0,0 +1,81 @@ +Name: nvidia-container-toolkit +Version: 1.17.4 +Release: 2%?dist +Summary: NVIDIA Container Toolkit +License: Apache-2.0 +Group: Development/Tools/Other +URL: https://github.com/NVIDIA/nvidia-container-toolkit +Source0: https://github.com/NVIDIA/%{name}/archive/v%{version}/nvidia-container-toolkit-v%{version}.tar.gz +BuildRequires: containers-common +BuildRequires: golang >= 1.16 +BuildRequires: systemd-rpm-macros +Requires: libnvidia-container-tools +Requires(post): systemd +Requires(postun): systemd +Supplements: (nvidia-driver and moby-engine) +Supplements: (nvidia-driver and cri-o) +Supplements: (nvidia-driver and containerd) +Supplements: (nvidia-driver and podman) + + +%description +Build and run containers leveraging NVIDIA GPUs. + +%prep +%autosetup + +%build +go build -v \ + -o bin/nvidia-ctk \ + ./cmd/nvidia-ctk + +go build -v \ + -o bin/nvidia-container-runtime-hook \ + ./cmd/nvidia-container-runtime-hook + +go build -v \ + -o bin/nvidia-container-runtime \ + ./cmd/nvidia-container-runtime + + +%install +install -D -m 0755 bin/nvidia-ctk %{buildroot}%{_bindir}/nvidia-ctk +install -D -m 0755 bin/nvidia-container-runtime-hook %{buildroot}%{_bindir}/nvidia-container-runtime-hook +install -D -m 0755 bin/nvidia-container-runtime %{buildroot}%{_bindir}/nvidia-container-runtime +mkdir -p %{buildroot}%{_sysconfdir}/nvidia-container-runtime + +%post +if rpm -q --quiet moby-engine; then + nvidia-ctk runtime configure --runtime=docker + /bin/systemctl --system try-restart docker.service &>/dev/null || : +elif rpm -q --quiet containerd; then + nvidia-ctk runtime configure --runtime=containerd + /bin/systemctl --system try-restart containerd.service &>/dev/null || : +elif rpm -q --quiet cri-o; then + nvidia-ctk runtime configure --runtime=crio + /bin/systemctl --system try-restart crio.service &>/dev/null || : + elif rpm -q --quiet podman; then + nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml +fi + +%postun +if rpm -q --quiet moby-engine; then + /bin/systemctl --system try-restart docker.service &>/dev/null || : +elif rpm -q --quiet containerd; then + /bin/systemctl --system try-restart containerd.service &>/dev/null || : +elif rpm -q --quiet cri-o; then + /bin/systemctl --system try-restart crio.service &>/dev/null || : +fi + +%files +%license LICENSE +%doc README.md CHANGELOG.md +%{_bindir}/nvidia-ctk +%{_bindir}/nvidia-container-runtime +%{_bindir}/nvidia-container-runtime-hook +%dir %{_sysconfdir}/nvidia-container-runtime +%ghost %config(noreplace) %{_sysconfdir}/nvidia-container-runtime/config.toml +%ghost %config(noreplace) %{_sysconfdir}/cdi/nvidia.yaml + +%changelog +%autochangelog diff --git a/anda/system/nvidia/nvidia-container-toolkit/update.rhai b/anda/system/nvidia/nvidia-container-toolkit/update.rhai new file mode 100644 index 0000000000..ba3415d2b6 --- /dev/null +++ b/anda/system/nvidia/nvidia-container-toolkit/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("NVIDIA/nvidia-container-toolkit")); diff --git a/anda/system/nvidia/nvidia-driver/.gitignore b/anda/system/nvidia/nvidia-driver/.gitignore new file mode 100644 index 0000000000..cfb0b7a5cd --- /dev/null +++ b/anda/system/nvidia/nvidia-driver/.gitignore @@ -0,0 +1,4 @@ +nvidia*/ +NVIDIA*/ +*.tar.* +*.run \ No newline at end of file diff --git a/anda/system/nvidia/nvidia-driver/10-nvidia.conf b/anda/system/nvidia/nvidia-driver/10-nvidia.conf new file mode 100644 index 0000000000..b9db1a9928 --- /dev/null +++ b/anda/system/nvidia/nvidia-driver/10-nvidia.conf @@ -0,0 +1,8 @@ +Section "OutputClass" + Identifier "nvidia" + MatchDriver "nvidia-drm" + Driver "nvidia" + Option "AllowEmptyInitialConfiguration" + Option "SLI" "Auto" + Option "BaseMosaic" "on" +EndSection diff --git a/anda/system/nvidia/nvidia-driver/70-nvidia-driver-cuda.preset b/anda/system/nvidia/nvidia-driver/70-nvidia-driver-cuda.preset new file mode 100644 index 0000000000..ef728bd1e8 --- /dev/null +++ b/anda/system/nvidia/nvidia-driver/70-nvidia-driver-cuda.preset @@ -0,0 +1,4 @@ +# Enable persistence state. From: +# file:///usr/share/doc/nvidia-driver/html/nvidia-persistenced.html + +enable nvidia-persistenced.service diff --git a/anda/system/nvidia/nvidia-driver/70-nvidia-driver.preset b/anda/system/nvidia/nvidia-driver/70-nvidia-driver.preset new file mode 100644 index 0000000000..4d7eeef038 --- /dev/null +++ b/anda/system/nvidia/nvidia-driver/70-nvidia-driver.preset @@ -0,0 +1,11 @@ +# Enable complete power management. From: +# file:///usr/share/doc/nvidia-driver/html/powermanagement.html + +enable nvidia-hibernate.service +enable nvidia-resume.service +enable nvidia-suspend.service + +# Enable Dynamic Boost. From: +# file:///usr/share/doc/nvidia-driver/html/dynamicboost.html + +enable nvidia-powerd.service diff --git a/anda/system/nvidia/nvidia-driver/alternate-install-present b/anda/system/nvidia/nvidia-driver/alternate-install-present new file mode 100644 index 0000000000..4f8206e1ef --- /dev/null +++ b/anda/system/nvidia/nvidia-driver/alternate-install-present @@ -0,0 +1,7 @@ +The NVIDIA proprietary driver is already installed in this system. It was +installed through a 3d party repository. + +Please refer to the following page for additional information and to install +optional driver components: + + https://negativo17.org/nvidia-driver/ diff --git a/anda/system/nvidia/nvidia-driver/anda.hcl b/anda/system/nvidia/nvidia-driver/anda.hcl new file mode 100644 index 0000000000..91ae1308c7 --- /dev/null +++ b/anda/system/nvidia/nvidia-driver/anda.hcl @@ -0,0 +1,13 @@ +project "pkg" { + rpm { + spec = "nvidia-driver.spec" + # We run the negativo17 generator script here because I genuinely tried fixing the spec file with our fancy patch and it didn't work + # TODO: Port it inside the specfile scripts + # pre_script = "nvidia-generate-tarballs.sh" + } + arches = ["x86_64", "aarch64", "i386"] + labels = { + subrepo = "nvidia" + mock = 1 + } +} \ No newline at end of file diff --git a/anda/system/nvidia/nvidia-driver/com.nvidia.driver.metainfo.xml b/anda/system/nvidia/nvidia-driver/com.nvidia.driver.metainfo.xml new file mode 100644 index 0000000000..ccc42a3963 --- /dev/null +++ b/anda/system/nvidia/nvidia-driver/com.nvidia.driver.metainfo.xml @@ -0,0 +1,47 @@ + + + com.nvidia.driver + + nvidia-settings.desktop + + NVIDIA Graphics Driver + /usr/share/pixmaps/com.nvidia.driver.png + NVIDIA Accelerated Graphics Driver + + NVIDIA Corporation + + +

The NVIDIA Accelerated Linux Graphics Driver brings accelerated 2D functionality and high-performance OpenGL support to Linux with the use of NVIDIA graphics processing units.

+

These drivers provide optimized hardware acceleration for OpenGL and X applications and support nearly all recent NVIDIA GPU products. The NVIDIA graphics driver uses a Unified Driver Architecture: the single graphics driver supports all modern NVIDIA GPUs.

+
+ + CUDA + GeForce + NVIDIA + OpenGL + Quadro + Tesla + Video + Vulkan + av1 + avc + driver + h264 + h265 + hevc + jpeg + mpeg2 + vaapi + vc-1 + vp8 + vp9 + + CC0-1.0 + LicenseRef-proprietary:NVIDIA + https://www.nvidia.com/ + https://github.com/terrapkg/packages/issues + https://github.com/terrapkg/packages + + True + +
diff --git a/anda/system/nvidia/nvidia-driver/com.nvidia.driver.png b/anda/system/nvidia/nvidia-driver/com.nvidia.driver.png new file mode 100644 index 0000000000..ff023b8b1b Binary files /dev/null and b/anda/system/nvidia/nvidia-driver/com.nvidia.driver.png differ diff --git a/anda/system/nvidia/nvidia-driver/nvidia-driver.spec b/anda/system/nvidia/nvidia-driver/nvidia-driver.spec new file mode 100644 index 0000000000..e74d6f8f12 --- /dev/null +++ b/anda/system/nvidia/nvidia-driver/nvidia-driver.spec @@ -0,0 +1,703 @@ +%global debug_package %{nil} +%global __strip /bin/true +%global __brp_ldconfig %{nil} +%define _build_id_links none + +# systemd 248+ +%if 0%{?rhel} == 8 +%global _systemd_util_dir %{_prefix}/lib/systemd +%endif + +Name: nvidia-driver +Version: 570.86.16 +Release: 1%?dist +Summary: NVIDIA's proprietary display driver for NVIDIA graphic cards +Epoch: 3 +License: NVIDIA License +URL: http://www.nvidia.com/object/unix.html +ExclusiveArch: %{ix86} x86_64 aarch64 + +%dnl Source0: %{name}-%{version}-i386.tar.xz +%dnl Source1: %{name}-%{version}-x86_64.tar.xz +%dnl Source2: %{name}-%{version}-aarch64.tar.xz +Source8: 70-nvidia-driver.preset +Source9: 70-nvidia-driver-cuda.preset +Source10: 10-nvidia.conf +Source13: alternate-install-present + +Source40: com.nvidia.driver.metainfo.xml +Source41: parse-supported-gpus.py +Source42: com.nvidia.driver.png + +Source99: nvidia-generate-tarballs.sh + +%ifarch x86_64 aarch64 +BuildRequires: libappstream-glib +%if 0%{?rhel} == 8 +# xml.etree.ElementTree has indent only from 3.9+: +BuildRequires: python(abi) >= 3.9 +%else +BuildRequires: python3 +%endif +BuildRequires: systemd-rpm-macros +%endif + +BuildRequires: wget +BuildRequires: coreutils + +Requires: nvidia-driver-libs%{?_isa} = %{?epoch:%{epoch}:}%{version} +Requires: nvidia-kmod-common = %{?epoch:%{epoch}:}%{version} + +Conflicts: nvidia-x11-drv +Conflicts: nvidia-x11-drv-470xx +Conflicts: xorg-x11-drv-nvidia +Conflicts: xorg-x11-drv-nvidia-470xx + +%description +This package provides the most recent NVIDIA display driver which allows for +hardware accelerated rendering with recent NVIDIA chipsets. + +For the full product support list, please consult the release notes for driver +version %{version}. + +%package libs +Summary: Libraries for %{name} +Requires: egl-gbm%{?_isa} >= 2:1.1.2 +Requires: egl-wayland%{?_isa} >= 1.1.13.1 +Requires: egl-x11%{?_isa} +Requires: libvdpau%{?_isa} >= 0.5 +Requires: libglvnd%{?_isa} >= 1.0 +Requires: libglvnd-egl%{?_isa} >= 1.0 +Requires: libglvnd-gles%{?_isa} >= 1.0 +Requires: libglvnd-glx%{?_isa} >= 1.0 +Requires: libglvnd-opengl%{?_isa} >= 1.0 +Requires: libnvidia-ml%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: vulkan-loader + +Conflicts: nvidia-x11-drv-libs +Conflicts: nvidia-x11-drv-470xx-libs +Conflicts: xorg-x11-drv-nvidia-libs +Conflicts: xorg-x11-drv-nvidia-470xx-libs + +%description libs +This package provides the shared libraries for %{name}. + +%package cuda-libs +Summary: Libraries for %{name}-cuda +Provides: %{name}-devel = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: %{name}-devel < %{?epoch:%{epoch}:}%{version}-%{release} +Requires: libnvidia-ml = %{?epoch:%{epoch}:}%{version}-%{release} + +%ifarch x86_64 aarch64 +Requires: libnvidia-cfg = %{?epoch:%{epoch}:}%{version}-%{release} +%endif + +Conflicts: xorg-x11-drv-nvidia-cuda-libs +Conflicts: xorg-x11-drv-nvidia-470xx-cuda-libs + +%description cuda-libs +This package provides the CUDA libraries for %{name}-cuda. + +%package -n libnvidia-fbc +Summary: NVIDIA OpenGL-based Framebuffer Capture libraries +Provides: nvidia-driver-NvFBCOpenGL = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: nvidia-driver-NvFBCOpenGL < %{?epoch:%{epoch}:}%{version}-%{release} +# Loads libnvidia-encode.so at runtime +Requires: %{name}-cuda-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} + +%description -n libnvidia-fbc +This library provides a high performance, low latency interface to capture and +optionally encode the composited framebuffer of an X screen. NvFBC are private +APIs that are only available to NVIDIA approved partners for use in remote +graphics scenarios. + +%package -n libnvidia-ml +Summary: NVIDIA Management Library (NVML) +Provides: cuda-nvml%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: nvidia-driver-NVML = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: nvidia-driver-NVML < %{?epoch:%{epoch}:}%{version}-%{release} + +%description -n libnvidia-ml +A C-based API for monitoring and managing various states of the NVIDIA GPU +devices. It provides a direct access to the queries and commands exposed via +nvidia-smi. The run-time version of NVML ships with the NVIDIA display driver, +and the SDK provides the appropriate header, stub libraries and sample +applications. Each new version of NVML is backwards compatible and is intended +to be a platform for building 3rd party applications. + +%ifarch x86_64 aarch64 + +%package -n libnvidia-cfg +Summary: NVIDIA Config public interface (nvcfg) + +%description -n libnvidia-cfg +This package contains the private libnvidia-cfg runtime library which is used by +other driver components. + +%package cuda +Summary: CUDA integration for %{name} +Requires: %{name}-cuda-libs%{?_isa} = %{?epoch:%{epoch}:}%{version} +Requires: nvidia-kmod-common = %{?epoch:%{epoch}:}%{version} +Requires: nvidia-persistenced = %{?epoch:%{epoch}:}%{version} +Requires: opencl-filesystem +Requires: ocl-icd + +Conflicts: xorg-x11-drv-nvidia-cuda +Conflicts: xorg-x11-drv-nvidia-470xx-cuda + +%description cuda +This package provides the CUDA integration components for %{name}. + +%package -n xorg-x11-nvidia +Summary: X.org X11 NVIDIA driver and extensions +Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version} +Requires: xorg-x11-server-Xorg%{?_isa} +Supplements: (nvidia-driver and xorg-x11-server-Xorg) + +Conflicts: xorg-x11-drv-nvidia +Conflicts: xorg-x11-drv-nvidia-470xx + +%description -n xorg-x11-nvidia +The NVIDIA X.org X11 driver and associated components. + +%endif + +%prep +source %{SOURCE99} +export VERSION=%{version} + +unpack() { + set_vars + run_file_get + run_file_extract + cleanup_folder + create_tarball +} + +%ifarch %{ix86} +export ARCH=x86_64 +unpack +%setup -D -T -n %{name}-%{version}-i386 +%endif + +%ifarch x86_64 +export ARCH=x86_64 +unpack +%setup -D -T -n %{name}-%{version}-x86_64 +%endif + +%ifarch aarch64 +export ARCH=aarch64 +unpack +%setup -D -T -n %{name}-%{version}-aarch64 +%endif + +%ifarch x86_64 +%if 0%{?rhel} == 8 +rm -f libnvidia-pkcs11-openssl3.so.%{version} +%else +rm -f libnvidia-pkcs11.so.%{version} +%endif +%endif + +# Create symlinks for shared objects +ldconfig -vn . + +# Required for building gstreamer 1.0 NVENC plugins +ln -sf libnvidia-encode.so.%{version} libnvidia-encode.so + +# Required for building ffmpeg 3.1 Nvidia CUVID +ln -sf libnvcuvid.so.%{version} libnvcuvid.so + +# Required for building against CUDA +ln -sf libcuda.so.%{version} libcuda.so + +%build + +%install +# EGL loader +install -p -m 0644 -D 10_nvidia.json %{buildroot}%{_datadir}/glvnd/egl_vendor.d/10_nvidia.json + +# Vulkan loader +install -p -m 0644 -D nvidia_icd.json %{buildroot}%{_datadir}/vulkan/icd.d/nvidia_icd.%{_target_cpu}.json +sed -i -e 's|libGLX_nvidia|%{_libdir}/libGLX_nvidia|g' %{buildroot}%{_datadir}/vulkan/icd.d/nvidia_icd.%{_target_cpu}.json + +%ifarch x86_64 +# Vulkan SC loader and compiler +install -p -m 0644 -D nvidia_icd_vksc.json %{buildroot}%{_datadir}/vulkansc/icd.d/nvidia_icd.%{_target_cpu}.json +sed -i -e 's|libnvidia-vksc-core|%{_libdir}/libnvidia-vksc-core|g' %{buildroot}%{_datadir}/vulkansc/icd.d/nvidia_icd.%{_target_cpu}.json +install -p -m 0755 -D nvidia-pcc %{buildroot}%{_bindir}/nvidia-pcc +%endif + +# Unique libraries +mkdir -p %{buildroot}%{_libdir}/vdpau/ +cp -a lib*GL*_nvidia.so* libcuda*.so* libnv*.so* %{buildroot}%{_libdir}/ +cp -a libvdpau_nvidia.so* %{buildroot}%{_libdir}/vdpau/ + +%if 0%{?fedora} || 0%{?rhel} >= 9 +# GBM loader +mkdir -p %{buildroot}%{_libdir}/gbm/ +ln -sf ../libnvidia-allocator.so.%{version} %{buildroot}%{_libdir}/gbm/nvidia-drm_gbm.so +%endif + +%ifarch x86_64 + +# NGX Proton/Wine library +mkdir -p %{buildroot}%{_libdir}/nvidia/wine/ +cp -a *.dll %{buildroot}%{_libdir}/nvidia/wine/ + +%endif + +%ifarch x86_64 aarch64 + +# alternate-install-present file triggers runfile warning +install -m 0755 -d %{buildroot}/usr/lib/nvidia/ +install -p -m 0644 %{SOURCE13} %{buildroot}/usr/lib/nvidia/ + +# Empty? +mkdir -p %{buildroot}%{_sysconfdir}/nvidia/ + +# OpenCL config +install -p -m 0755 -D nvidia.icd %{buildroot}%{_sysconfdir}/OpenCL/vendors/nvidia.icd + +# Binaries +mkdir -p %{buildroot}%{_bindir} +install -p -m 0755 nvidia-{debugdump,smi,cuda-mps-control,cuda-mps-server,bug-report.sh,ngx-updater,powerd} %{buildroot}%{_bindir} + +# Man pages +mkdir -p %{buildroot}%{_mandir}/man1/ +install -p -m 0644 nvidia-{smi,cuda-mps-control}*.gz %{buildroot}%{_mandir}/man1/ + +# X stuff +install -p -m 0644 -D %{SOURCE10} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/10-nvidia.conf +install -p -m 0755 -D nvidia_drv.so %{buildroot}%{_libdir}/xorg/modules/drivers/nvidia_drv.so +install -p -m 0755 -D libglxserver_nvidia.so.%{version} %{buildroot}%{_libdir}/xorg/modules/extensions/libglxserver_nvidia.so + +# NVIDIA specific configuration files +mkdir -p %{buildroot}%{_datadir}/nvidia/ +install -p -m 0644 nvidia-application-profiles-%{version}-key-documentation \ + %{buildroot}%{_datadir}/nvidia/ +install -p -m 0644 nvidia-application-profiles-%{version}-rc \ + %{buildroot}%{_datadir}/nvidia/ + +# OptiX +install -p -m 0644 nvoptix.bin %{buildroot}%{_datadir}/nvidia/ + +# Systemd units and script for suspending/resuming +mkdir -p %{buildroot}%{_systemd_util_dir}/system-preset/ +install -p -m 0644 %{SOURCE8} %{SOURCE9} %{buildroot}%{_systemd_util_dir}/system-preset/ +mkdir -p %{buildroot}%{_unitdir}/ +install -p -m 0644 systemd/system/*.service %{buildroot}%{_unitdir}/ +install -p -m 0755 systemd/nvidia-sleep.sh %{buildroot}%{_bindir}/ +install -p -m 0755 -D systemd/system-sleep/nvidia %{buildroot}%{_systemd_util_dir}/system-sleep/nvidia +install -p -m 0644 -D nvidia-dbus.conf %{buildroot}%{_datadir}/dbus-1/system.d/nvidia-dbus.conf + +%if 0%{?fedora} >= 41 +mkdir -p %{buildroot}%{_unitdir}/systemd-suspend.service.d/ +cat > %{buildroot}%{_unitdir}/systemd-suspend.service.d/10-nvidia.conf << EOF +[Service] +Environment="SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false" +EOF +mkdir -p %{buildroot}%{_unitdir}/systemd-homed.service.d/ +cat > %{buildroot}%{_unitdir}/systemd-homed.service.d/10-nvidia.conf << EOF +[Service] +Environment="SYSTEMD_HOME_LOCK_FREEZE_SESSION=false" +EOF +%endif + +# Ignore powerd binary exiting if hardware is not present +# We should check for information in the DMI table +sed -i -e 's/ExecStart=/ExecStart=-/g' %{buildroot}%{_unitdir}/nvidia-powerd.service + +# Vulkan layer +install -p -m 0644 -D nvidia_layers.json %{buildroot}%{_datadir}/vulkan/implicit_layer.d/nvidia_layers.json + +# Install AppData and add modalias provides, do not use appstream-util add-provide as it mangles the xml +install -p -m 0644 -D %{SOURCE40} %{buildroot}%{_metainfodir}/com.nvidia.driver.metainfo.xml +%{SOURCE41} supported-gpus/supported-gpus.json %{buildroot}%{_metainfodir}/com.nvidia.driver.metainfo.xml +mkdir -p %{buildroot}%{_datadir}/pixmaps/ +cp %{SOURCE42} %{buildroot}%{_datadir}/pixmaps/ + +%check +# Using appstreamcli: appstreamcli validate --strict +# Icon type local is not supported by appstreamcli for drivers +appstream-util validate --nonet %{buildroot}%{_metainfodir}/com.nvidia.driver.metainfo.xml + +%endif + +%ifarch x86_64 aarch64 + +%post +%systemd_post nvidia-hibernate.service +%systemd_post nvidia-powerd.service +%systemd_post nvidia-resume.service +%systemd_post nvidia-suspend.service + +%preun +%systemd_preun nvidia-hibernate.service +%systemd_preun nvidia-powerd.service +%systemd_preun nvidia-resume.service +%systemd_preun nvidia-suspend.service + +%postun +%systemd_postun nvidia-hibernate.service +%systemd_postun nvidia-powerd.service +%systemd_postun nvidia-resume.service +%systemd_postun nvidia-suspend.service + +%endif + +%ifarch x86_64 aarch64 + +%files +%license LICENSE +%doc NVIDIA_Changelog README.txt html supported-gpus/supported-gpus.json +%dir %{_sysconfdir}/nvidia +%{_bindir}/nvidia-bug-report.sh +%{_bindir}/nvidia-ngx-updater +%ifarch x86_64 +%{_bindir}/nvidia-pcc +%endif +%{_bindir}/nvidia-powerd +%{_bindir}/nvidia-sleep.sh +%{_metainfodir}/com.nvidia.driver.metainfo.xml +%{_datadir}/dbus-1/system.d/nvidia-dbus.conf +%{_datadir}/nvidia/nvidia-application-profiles* +%{_datadir}/pixmaps/com.nvidia.driver.png +%{_systemd_util_dir}/system-preset/70-nvidia-driver.preset +%{_systemd_util_dir}/system-sleep/nvidia +%{_unitdir}/nvidia-hibernate.service +%{_unitdir}/nvidia-powerd.service +%{_unitdir}/nvidia-resume.service +%{_unitdir}/nvidia-suspend.service +%if 0%{?fedora} >= 41 +%{_unitdir}/systemd-suspend.service.d/10-nvidia.conf +%{_unitdir}/systemd-homed.service.d/10-nvidia.conf +%endif + +%files -n xorg-x11-nvidia +%config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/10-nvidia.conf +%{_libdir}/xorg/modules/extensions/libglxserver_nvidia.so +%{_libdir}/xorg/modules/drivers/nvidia_drv.so + +%files -n libnvidia-cfg +%{_libdir}/libnvidia-cfg.so.1 +%{_libdir}/libnvidia-cfg.so.%{version} + +%files cuda +%{_sysconfdir}/OpenCL/vendors/* +%{_bindir}/nvidia-cuda-mps-control +%{_bindir}/nvidia-cuda-mps-server +%{_bindir}/nvidia-debugdump +%{_bindir}/nvidia-smi +%{_mandir}/man1/nvidia-cuda-mps-control.1.* +%{_mandir}/man1/nvidia-smi.* +%{_prefix}/lib/nvidia/alternate-install-present +%{_systemd_util_dir}/system-preset/70-nvidia-driver-cuda.preset + +%endif + +%files libs +%{_datadir}/glvnd/egl_vendor.d/10_nvidia.json +%{_datadir}/vulkan/icd.d/nvidia_icd.%{_target_cpu}.json +%if 0%{?fedora} || 0%{?rhel} >= 9 +%dir %{_libdir}/gbm +%{_libdir}/gbm/nvidia-drm_gbm.so +%endif +%{_libdir}/libEGL_nvidia.so.0 +%{_libdir}/libEGL_nvidia.so.%{version} +%{_libdir}/libGLESv1_CM_nvidia.so.1 +%{_libdir}/libGLESv1_CM_nvidia.so.%{version} +%{_libdir}/libGLESv2_nvidia.so.2 +%{_libdir}/libGLESv2_nvidia.so.%{version} +%{_libdir}/libGLX_nvidia.so.0 +%{_libdir}/libGLX_nvidia.so.%{version} +%{_libdir}/libnvidia-allocator.so.1 +%{_libdir}/libnvidia-allocator.so.%{version} +%{_libdir}/libnvidia-eglcore.so.%{version} +%{_libdir}/libnvidia-glcore.so.%{version} +%{_libdir}/libnvidia-glsi.so.%{version} +%{_libdir}/libnvidia-glvkspirv.so.%{version} +%{_libdir}/libnvidia-gpucomp.so.%{version} +%{_libdir}/libnvidia-tls.so.%{version} +%{_libdir}/vdpau/libvdpau_nvidia.so.1 +%{_libdir}/vdpau/libvdpau_nvidia.so.%{version} +%ifarch x86_64 aarch64 +%{_datadir}/nvidia/nvoptix.bin +%{_datadir}/vulkan/implicit_layer.d/nvidia_layers.json +%{_libdir}/libnvidia-api.so.1 +%{_libdir}/libnvidia-ngx.so.1 +%{_libdir}/libnvidia-ngx.so.%{version} +%{_libdir}/libnvidia-rtcore.so.%{version} +%{_libdir}/libnvoptix.so.1 +%{_libdir}/libnvoptix.so.%{version} +%endif +%ifarch x86_64 +%{_datadir}/vulkansc/icd.d/nvidia_icd.%{_target_cpu}.json +%{_libdir}/libnvidia-vksc-core.so.1 +%{_libdir}/libnvidia-vksc-core.so.%{version} +%dir %{_libdir}/nvidia +%dir %{_libdir}/nvidia/wine +%{_libdir}/nvidia/wine/*.dll +%endif + +%files cuda-libs +%{_libdir}/libcuda.so +%{_libdir}/libcuda.so.1 +%{_libdir}/libcuda.so.%{version} +%{_libdir}/libnvcuvid.so +%{_libdir}/libnvcuvid.so.1 +%{_libdir}/libnvcuvid.so.%{version} +%{_libdir}/libnvidia-encode.so +%{_libdir}/libnvidia-encode.so.1 +%{_libdir}/libnvidia-encode.so.%{version} +%{_libdir}/libnvidia-nvvm.so.4 +%{_libdir}/libnvidia-nvvm.so.%{version} +%{_libdir}/libnvidia-opencl.so.1 +%{_libdir}/libnvidia-opencl.so.%{version} +%{_libdir}/libnvidia-opticalflow.so.1 +%{_libdir}/libnvidia-opticalflow.so.%{version} +%{_libdir}/libnvidia-ptxjitcompiler.so.1 +%{_libdir}/libnvidia-ptxjitcompiler.so.%{version} +%ifarch x86_64 aarch64 +%{_libdir}/libcudadebugger.so.1 +%{_libdir}/libcudadebugger.so.%{version} +%endif +%ifarch x86_64 +%if 0%{?rhel} == 8 +%{_libdir}/libnvidia-pkcs11.so.%{version} +%else +%{_libdir}/libnvidia-pkcs11-openssl3.so.%{version} +%endif +%{_libdir}/libnvidia-sandboxutils.so.1 +%{_libdir}/libnvidia-sandboxutils.so.%{version} +%endif + +%files -n libnvidia-fbc +%{_libdir}/libnvidia-fbc.so.1 +%{_libdir}/libnvidia-fbc.so.%{version} + +%files -n libnvidia-ml +%{_libdir}/libnvidia-ml.so.1 +%{_libdir}/libnvidia-ml.so.%{version} + +%changelog +* Thu Dec 05 2024 Simone Caronni - 3:565.77-1 +- Update to 565.77. + +* Mon Nov 25 2024 Simone Caronni - 3:565.57.01-5 +- Switch back to local icon. + +* Fri Nov 15 2024 Simone Caronni - 3:565.57.01-4 +- Do not manipulate appstream metadata using libappstream-glib. + +* Sat Nov 09 2024 Simone Caronni - 3:565.57.01-3 +- Switch to remote icon for Appstream metadata. "appstremcli validate", instead + of "appstream-util validate", prints out that local is not a valid icon type, + even if the documentation says so. + +* Sun Oct 27 2024 Simone Caronni - 3:565.57.01-2 +- Add workaround for system sleep on systemd 256+. + +* Wed Oct 23 2024 Simone Caronni - 3:565.57.01-1 +- Update to 565.57.01. + +* Thu Oct 10 2024 Simone Caronni - 3:560.35.03-4 +- Enable nvidia-persistenced by default if installed through a systemd preset. + +* Wed Sep 04 2024 Simone Caronni - 3:560.35.03-3 +- Unbundle nvidia-egl-platform-base. + +* Fri Aug 30 2024 Simone Caronni - 3:560.35.03-2 +- Split out X.org components. + +* Wed Aug 21 2024 Simone Caronni - 3:560.35.03-1 +- Update to 560.35.03. + +* Tue Aug 06 2024 Simone Caronni - 3:560.31.02-1 +- Update to 560.31.02. +- Update EGL requirements. + +* Mon Aug 05 2024 Simone Caronni - 3:560.28.03-1 +- Update to 560.28.03. +- Add Vulkan Safety Critical library and offline Pipeline Cache Compiler. +- Temporarily add new EGL libraries. + +* Mon Jul 15 2024 Simone Caronni - 3:555.58.02-3 +- Provider of cuda-nvml still needs _isa. + +* Sat Jul 13 2024 Simone Caronni - 3:555.58.02-2 +- Remove isa Provides/Requires. + +* Tue Jul 02 2024 Simone Caronni - 3:555.58.02-1 +- Update to 555.58.02. +- Reorganize some libraries that get dynamically opened by other components. + +* Sat Jun 29 2024 Simone Caronni - 3:555.58-4 +- Adjust Appstream icon path. + +* Fri Jun 28 2024 Simone Caronni - 3:555.58-3 +- Switch to local icon for Appstream metadata before madness takes over. + +* Fri Jun 28 2024 Simone Caronni - 3:555.58-2 +- Make sure there are no redirects in the Appstream metadata URLs. + +* Thu Jun 27 2024 Simone Caronni - 3:555.58-1 +- Update to 555.58. + +* Wed Jun 26 2024 Simone Caronni - 3:555.52.04-2 +- Update AppData metadata, add new custom key entry: + https://gitlab.gnome.org/GNOME/gnome-software/-/merge_requests/2034 + +* Thu Jun 06 2024 Simone Caronni +- Update to 555.52.04. + +* Fri May 31 2024 Simone Caronni - 3:555.42.02-3 +- Fix file format specification for Vulkan layers. + +* Mon May 27 2024 Simone Caronni - 3:555.42.02-2 +- Add GBM loader library symlink also for i686 libraries (#156). +- Also own the %%_libdir/gbm directory. + +* Wed May 22 2024 Simone Caronni - 3:555.42.02-1 +- Update to 555.42.02. + +* Fri Apr 26 2024 Simone Caronni - 3:550.78-1 +- Update to 550.78. + +* Fri Apr 26 2024 Simone Caronni - 3:550.76-2 +- Install Vulkan loader in a more similar way to Mesa packages. + +* Thu Apr 18 2024 Simone Caronni - 3:550.76-1 +- Update to 550.76. + +* Mon Apr 15 2024 Simone Caronni - 3:550.67-2 +- Fix egl requirements. + +* Sun Mar 24 2024 Simone Caronni - 3:550.67-1 +- Update to 550.67. + +* Thu Mar 14 2024 Simone Caronni - 3:550.54.14-3 +- Clean up SPEC file. + +* Fri Mar 08 2024 Simone Caronni - 3:550.54.14-2 +- Add support for aarch64. +- Clean up SPEC file. + +* Sun Mar 03 2024 Simone Caronni - 3:550.54.14-1 +- Update to 550.54.14. + +* Thu Feb 22 2024 Simone Caronni - 3:550.40.07-1 +- Update to 550.40.07. + +* Fri Feb 16 2024 Simone Caronni - 3:545.29.06-3 +- Re-add explicit egl-wayland dependency (reverts + cd6f2b9044d90f71f94fa91be1cc0cad343a1560). + +* Mon Dec 18 2023 Simone Caronni - 3:545.29.06-2 +- Do not mark nvidia-powerd unit as failed if the binary exits. + +* Fri Dec 01 2023 Simone Caronni - 3:545.29.06-1 +- Update to 545.29.06. + +* Mon Nov 13 2023 Simone Caronni - 3:545.29.02-2 +- Create kernel module tarball with proprietary and open source modules. + +* Tue Oct 31 2023 Simone Caronni - 3:545.29.02-1 +- Update to 545.29.02. + +* Wed Oct 18 2023 Simone Caronni - 3:545.23.06-1 +- Update to 545.23.06. + +* Fri Sep 22 2023 Simone Caronni - 3:535.113.01-1 +- Update to 535.113.01. + +* Thu Aug 24 2023 Simone Caronni - 3:535.104.05-1 +- Update to 535.104.05. + +* Wed Aug 09 2023 Simone Caronni - 3:535.98-1 +- Update to 535.98. + +* Wed Jul 19 2023 Simone Caronni - 3:535.86.05-1 +- Update to 535.86.05. + +* Thu Jun 15 2023 Simone Caronni - 3:535.54.03-1 +- Update to 535.54.03. + +* Tue Jun 13 2023 Simone Caronni - 3:535.43.02-1 +- Update to 535.43.02. + +* Fri Mar 24 2023 Simone Caronni - 3:530.41.03-1 +- Update to 530.41.03. + +* Wed Mar 08 2023 Simone Caronni - 3:530.30.02-1 +- Update to 530.30.02. + +* Fri Feb 10 2023 Simone Caronni - 3:525.89.02-1 +- Update to 525.89.02. + +* Fri Jan 20 2023 Simone Caronni - 3:525.85.05-1 +- Update to 525.85.05. + +* Mon Jan 09 2023 Simone Caronni - 3:525.78.01-1 +- Update to 525.78.01. + +* Tue Dec 13 2022 Simone Caronni - 3:525.60.11-2 +- Drop nvidia-driver-devel subpackage. +- Trim changelog. + +* Tue Nov 29 2022 Simone Caronni - 3:525.60.11-1 +- Update to 525.60.11. + +* Thu Oct 13 2022 Simone Caronni - 3:520.56.06-1 +- Update to 520.56.06. + +* Wed Sep 21 2022 Simone Caronni - 3:515.76-1 +- Update to 515.76. + +* Mon Aug 08 2022 Simone Caronni - 3:515.65.01-1 +- Update to 515.65.01. + +* Wed Jun 29 2022 Simone Caronni - 3:515.57-1 +- Update to 515.57. + +* Wed Jun 01 2022 Simone Caronni - 3:515.48.07-1 +- Update to 515.48.07. + +* Sun May 15 2022 Simone Caronni - 3:515.43.04-2 +- Rename libnvidia-vulkan-producer.so versioned library (#128). + +* Thu May 12 2022 Simone Caronni - 3:515.43.04-1 +- Update to 515.43.04. + +* Mon May 02 2022 Simone Caronni - 3:510.68.02-1 +- Update to 510.68.02. + +* Mon Mar 28 2022 Simone Caronni - 3:510.60.02-1 +- Update to 510.60.02. + +* Thu Mar 03 2022 Simone Caronni - 3:510.54-3 +- nvidia-resume is no longer triggered by nvidia-sleep.sh. + +* Fri Feb 25 2022 Simone Caronni - 3:510.54-2 +- nvidia-smi dlopens NVML, add explicit dependency to cuda subpackage. + +* Mon Feb 14 2022 Simone Caronni - 3:510.54-1 +- Update to 510.54. + +* Sat Feb 12 2022 Simone Caronni - 3:510.47.03-4 +- Drop libva-vdpau-driver hard dependency. + +* Mon Feb 07 2022 Simone Caronni - 3:510.47.03-3 +- Fix GBM condition. + +* Sat Feb 05 2022 Simone Caronni - 3:510.47.03-2 +- Drop explicit dependency on egl-wayland, it's auto generated and not needed on + i686 libs. Minimum version 1.1.7 required. + +* Wed Feb 02 2022 Simone Caronni - 3:510.47.03-1 +- Update to 510.47.03. +- Use external GBM library. +- Install GBM only on CentOS/RHEL 9+ and Fedora 35. It's also supported in + CentOS Stream 8 (8.6+/Mesa 21.2), but there's no easy way to check for Stream + in the SPEC file. diff --git a/anda/system/nvidia/nvidia-driver/nvidia-generate-tarballs.sh b/anda/system/nvidia/nvidia-driver/nvidia-generate-tarballs.sh new file mode 100755 index 0000000000..37a41b0bc3 --- /dev/null +++ b/anda/system/nvidia/nvidia-driver/nvidia-generate-tarballs.sh @@ -0,0 +1,117 @@ +#!/bin/sh +# Slightly modified from negativo's tarball generator script + +# instead of generating tarballs, we just make this script export +# the functions + +CONTEXT=$(realpath $(dirname $0)) +set -e + +set_vars() { + export VERSION=${VERSION:?"VERSION not set"} + export DL_SITE=${DL_SITE:-http://download.nvidia.com/XFree86} + export TEMP_UNPACK=${ARCH} + export PLATFORM=Linux-${ARCH} + export RUN_FILE=NVIDIA-${PLATFORM}-${VERSION}.run +} + +run_file_get() { + printf "Downloading installer ${RUN_FILE}... " + [[ -f $RUN_FILE ]] || wget -c -q ${DL_SITE}/${PLATFORM}/${VERSION}/$RUN_FILE + printf "OK\n" +} + +run_file_extract() { + rm -fr ${TEMP_UNPACK} + sh ${RUN_FILE} --extract-only --target ${TEMP_UNPACK} +} + +cleanup_folder() { + + printf "Cleaning up binaries... " + + cd ${TEMP_UNPACK} + + # Stuff not needed for packages: + # - Compiled from source + # - Interactive installer files + # - GLVND GL libraries + # - Internal development only libraries + rm -fr \ + nvidia-xconfig* \ + nvidia-persistenced* \ + nvidia-modprobe* \ + libnvidia-gtk* libnvidia-wayland-client* nvidia-settings* \ + libGLESv1_CM.so.* libGLESv2.so.* libGLdispatch.so.* libOpenGL.so.* libGLX.so.* libGL.so.1* libEGL.so.1* \ + libnvidia-egl-wayland.so.* libnvidia-egl-gbm.so.* libnvidia-egl-xcb.so.* libnvidia-egl-xlib.so.* \ + libOpenCL.so.1* \ + libEGL.so.${VERSION} \ + nvidia-installer* .manifest make* mk* tls_test* libglvnd_install_checker + + if [ "${ARCH}" == x86_64 ]; then + rm -fr \ + 32/libGLESv1_CM.so.* 32/libGLESv2.so.* 32/libGLdispatch.so.* 32/libOpenGL.so.* 32/libGLX.so.* 32/libGL.so.1* 32/libEGL.so.1* \ + 32/libOpenCL.so.1* \ + 32/libGL.so.${VERSION} 32/libEGL.so.${VERSION} \ + 32/libnvidia-egl-wayland.so.* 32/libnvidia-egl-gbm.so.* 32/libnvidia-egl-xcb.so.* 32/libnvidia-egl-xlib.so.* + + cp -f *.json* 32/ + fi + + cd .. + + printf "OK\n" +} + +create_tarball() { + + KMOD=nvidia-kmod-${VERSION}-${ARCH} + KMOD_COMMON=nvidia-kmod-common-${VERSION} + USR_64=nvidia-driver-${VERSION}-${ARCH} + + mkdir ${KMOD} ${KMOD_COMMON} ${USR_64} + mv ${TEMP_UNPACK}/kernel* ${KMOD}/ + mv ${TEMP_UNPACK}/firmware ${KMOD_COMMON}/ + + if [ "$ARCH" == x86_64 ]; then + + USR_32=nvidia-driver-${VERSION}-i386 + + mkdir ${USR_32} + mv ${TEMP_UNPACK}/32/* ${USR_32}/ + rm -fr ${TEMP_UNPACK}/32 + + fi + + mv ${TEMP_UNPACK}/* ${USR_64}/ + + rm -fr ${TEMP_UNPACK} + + for tarball in ${KMOD} ${KMOD_COMMON} ${USR_64} ${USR_32}; do + + printf "Creating tarball $tarball... " + + # XZ_OPT='-T0' tar --remove-files -cJf $tarball.tar.xz $tarball + + printf "OK\n" + + done +} + +# pushd $CONTEXT + +# ARCH=aarch64 +# set_vars +# run_file_get +# run_file_extract +# cleanup_folder +# create_tarball + +# ARCH=x86_64 +# set_vars +# run_file_get +# run_file_extract +# cleanup_folder +# create_tarball + +# popd \ No newline at end of file diff --git a/anda/system/nvidia/nvidia-driver/parse-supported-gpus.py b/anda/system/nvidia/nvidia-driver/parse-supported-gpus.py new file mode 100755 index 0000000000..cb2feef6c3 --- /dev/null +++ b/anda/system/nvidia/nvidia-driver/parse-supported-gpus.py @@ -0,0 +1,43 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2021-2024 Simone Caronni +# Licensed under the GNU General Public License Version or later + +import json +import sys +import xml.etree.ElementTree as ElementTree + +def main(): + if len(sys.argv) != 3: + print("usage: %s supported-gpus.json com.nvidia.driver.metainfo.xml" % sys.argv[0]) + return 1 + + json_input = open(sys.argv[1]) + gpus_raw = json.load(json_input) + legacy = 'legacybranch' + devids = [] + + for product in gpus_raw["chips"]: + + if legacy not in product.keys(): + + devid = int(product["devid"], 16) + if not devid in devids: + devids.append(devid) + + appstream_xml = ElementTree.parse(sys.argv[2]) + root = appstream_xml.getroot() + provides = ElementTree.Element('provides') + root.append(provides) + + for devid in devids: + modalias = ElementTree.SubElement(provides, "modalias") + modalias.text = "pci:v000010DEd%08Xsv*sd*bc*sc*i*" % (devid) + + ElementTree.indent(root, space=" ", level=0) + # appstream-util validate requires the xml header + appstream_xml.write(sys.argv[2], encoding="utf-8", xml_declaration=True) + +if __name__ == "__main__": + main() diff --git a/anda/system/nvidia/nvidia-driver/pre.sh b/anda/system/nvidia/nvidia-driver/pre.sh new file mode 100755 index 0000000000..24f660da43 --- /dev/null +++ b/anda/system/nvidia/nvidia-driver/pre.sh @@ -0,0 +1,9 @@ +#!/bin/bash -x + +# We are going to assume we already have andax installed + +export VERSION=$(anda run andax/nvidia_driver_print.rhai) + +SCRIPT_DIR=$(realpath $(dirname $0)) + +$SCRIPT_DIR/nvidia-generate-tarballs.sh \ No newline at end of file diff --git a/anda/system/nvidia/nvidia-driver/update.rhai b/anda/system/nvidia/nvidia-driver/update.rhai new file mode 100644 index 0000000000..e5eff132c0 --- /dev/null +++ b/anda/system/nvidia/nvidia-driver/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_driver_version()); diff --git a/anda/system/nvidia/nvidia-kmod-common/60-nvidia.rules b/anda/system/nvidia/nvidia-kmod-common/60-nvidia.rules new file mode 100644 index 0000000000..40e532f346 --- /dev/null +++ b/anda/system/nvidia/nvidia-kmod-common/60-nvidia.rules @@ -0,0 +1,13 @@ +# Device nodes are created by nvidia-modprobe, which is called by the nvidia DDX. +# In case the DDX is not started, the device nodes are never created, so call +# nvidia-modprobe in the udev rules to cover the Wayland/EGLStream and compute +# case without a started display. +ACTION=="add|bind", KERNEL=="nvidia", RUN+="/usr/bin/nvidia-modprobe" + +# Enable runtime PM for NVIDIA VGA/3D controller devices on driver bind +ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto" +ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto" + +# Disable runtime PM for NVIDIA VGA/3D controller devices on driver unbind +ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="on" +ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on" diff --git a/anda/system/nvidia/nvidia-kmod-common/99-nvidia.conf b/anda/system/nvidia/nvidia-kmod-common/99-nvidia.conf new file mode 100644 index 0000000000..6d64aaeb34 --- /dev/null +++ b/anda/system/nvidia/nvidia-kmod-common/99-nvidia.conf @@ -0,0 +1,3 @@ +# Omit the nvidia driver from the ramdisk, to avoid needing to regenerate +# the ramdisk on updates. +omit_drivers+=" nvidia nvidia-drm nvidia-modeset nvidia-peermem nvidia-uvm " diff --git a/anda/system/nvidia/nvidia-kmod-common/anda.hcl b/anda/system/nvidia/nvidia-kmod-common/anda.hcl new file mode 100644 index 0000000000..915b62fb8f --- /dev/null +++ b/anda/system/nvidia/nvidia-kmod-common/anda.hcl @@ -0,0 +1,9 @@ +project "pkg" { + rpm { + spec = "nvidia-kmod-common.spec" + } + arches = ["x86_64"] + labels = { + subrepo = "nvidia" + } +} \ No newline at end of file diff --git a/anda/system/nvidia/nvidia-kmod-common/kernel.conf b/anda/system/nvidia/nvidia-kmod-common/kernel.conf new file mode 100644 index 0000000000..34603d9738 --- /dev/null +++ b/anda/system/nvidia/nvidia-kmod-common/kernel.conf @@ -0,0 +1,20 @@ +# This variable determines what kind of modules get installed on the system +# until the Nvidia driver provides only the open source variant. +# +# The name of the variable is the name of the folder that hosts the kernel +# module code inside the driver installer: +# +# +-------------+---------------------+----------------+ +# | Value | Type | License type | +# +-------------+---------------------+----------------+ +# | kernel | Proprietary drivers | NVIDIA license | +# +-------------+---------------------+----------------+ +# | kernel-open | Open source drivers | Dual MIT/GPL | +# +-------------+---------------------+----------------+ + +# TERRA-SPECIFIC NOTES: +# Since we are focused on HWE, we will use proprietary drivers for now. +# At least until Pascal/Maxwell support is added to the open source drivers, or until +# everyone stops using them in the near future. + +MODULE_VARIANT=kernel diff --git a/anda/system/nvidia/nvidia-kmod-common/nvidia-boot-update b/anda/system/nvidia/nvidia-kmod-common/nvidia-boot-update new file mode 100755 index 0000000000..46cad2f238 --- /dev/null +++ b/anda/system/nvidia/nvidia-kmod-common/nvidia-boot-update @@ -0,0 +1,186 @@ +#!/bin/sh + + +# EL8 (grub2 with BootLoaderSpec patches) +# +# kernel options: grub.cfg + grubenv + /etc/kernel/cmdline +# kernel options in /boot/loader/entries/*.conf use kernelopts from /boot/grub2/grubenv +# grubby +# - updates kernelopts in /boot/grub2/grubenv +# - does not update /etc/default/grub +# - does not update kernelopts in grub.cfg +# grub.cfg: +# - UEFI: /etc/grub2-efi.cfg -> /boot/efi/EFI//grub.cfg +# - BIOS: /etc/grub2.cfg -> /boot/grub2/grub.cfg + + +# EL9 (grub2 with BootLoaderSpec patches) +# +# kernel options: grub.cfg + /etc/kernel/cmdline + /boot/loader/entries/*.conf +# manually update: /etc/default/grub + /etc/kernel/cmdline +# grub2-mkconfig does not update /boot/loader/entries/*.conf +# grub.cfg: +# - UEFI: /etc/grub2-efi.cfg -> /boot/efi/EFI//grub.cfg +# - BIOS: /etc/grub2.cfg -> /boot/grub2/grub.cfg + + +# Fedora (grub2 with BootLoaderSpec patches) +# +# kernel options: grub.cfg + /etc/kernel/cmdline + /boot/loader/entries/*.conf +# manually update: /etc/default/grub + /etc/kernel/cmdline +# grub2-mkconfig does not update /boot/loader/entries/*.conf +# grub.cfg: +# - UEFI/BIOS: /boot/grub2/grub.cfg + + +# Fedora (systemd-boot) +# +# kernel options: grub.cfg + /boot/efi/loader/entries/*.conf (UEFI only) +# grubby as an updateloaderentries alias: +# - updates all entries in /boot/efi/loader/entries/*.conf +# - does not work with multiple parameters at once +# - does not update /etc/kernel/cmdline + + +# Complete use case coverage, regardless of boot loaders: +# +# - update options in /etc/default/grub +# - regenerate grub.cfg/grubenv +# - update options in /boot/{efi/}loader/entries/*.conf entries +# - update options in /etc/kernel/cmdline +# - cover both UEFI and BIOS case + +CMDLINE_ARGS_ADD="_dracutopts_in" +CMDLINE_ARGS_REMOVE="_dracutopts_rm" + +print_usage() { +cat <> /etc/default/grub + else + for param in $CMDLINE_ARGS_ADD; do + echo ${GRUB_CMDLINE_LINUX} | grep -q $param + [ $? -eq 1 ] && GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX} ${param}" + done + for param in $CMDLINE_ARGS_REMOVE; do + echo ${GRUB_CMDLINE_LINUX} | grep -q $param + [ $? -eq 0 ] && GRUB_CMDLINE_LINUX="$(echo ${GRUB_CMDLINE_LINUX} | sed -e "s/ $param//g")" + done + sed -i -e "s|^GRUB_CMDLINE_LINUX=.*|GRUB_CMDLINE_LINUX=\"${GRUB_CMDLINE_LINUX}\"|g" /etc/default/grub + fi + + grub2-mkconfig -o $GRUB_CFG &>/dev/null + + fi + + if [ -v BLS_ENTRIES ]; then + + for config_file in $BLS_ENTRIES/*.conf; do + for param in $CMDLINE_ARGS_ADD; do + grep -q $param $config_file + [ $? -eq 1 ] && sed -i -e "s|^options.*|& $param|" $config_file + done + for param in $CMDLINE_ARGS_REMOVE; do + grep -q $param $config_file + [ $? -eq 0 ] && sed -i -e "s| $param||" $config_file + done + done + + fi + +} + +preun() { + + if [ -v GRUB_CFG ]; then + + for param in $CMDLINE_ARGS_ADD; do + echo ${GRUB_CMDLINE_LINUX} | grep -q $param + [ $? -eq 0 ] && GRUB_CMDLINE_LINUX="$(echo ${GRUB_CMDLINE_LINUX} | sed -e "s/ $param//g")" + done + sed -i -e "s|^GRUB_CMDLINE_LINUX=.*|GRUB_CMDLINE_LINUX=\"${GRUB_CMDLINE_LINUX}\"|g" /etc/default/grub + + grub2-mkconfig -o $GRUB_CFG &>/dev/null + + fi + + if [ -v BLS_ENTRIES ]; then + + for config_file in $BLS_ENTRIES/*.conf; do + for param in $CMDLINE_ARGS_ADD; do + grep -q $param $config_file + [ $? -eq 0 ] && sed -i -e "s| $param||" $config_file + done + done + + fi + +} + +case "$1" in + post) + check + post + exit 0 + ;; + preun) + check + preun + exit 0 + ;; + *) + print_usage + exit 0 + ;; +esac diff --git a/anda/system/nvidia/nvidia-kmod-common/nvidia-kmod-common.spec b/anda/system/nvidia/nvidia-kmod-common/nvidia-kmod-common.spec new file mode 100644 index 0000000000..7a9402c72b --- /dev/null +++ b/anda/system/nvidia/nvidia-kmod-common/nvidia-kmod-common.spec @@ -0,0 +1,420 @@ +%global _dracutopts_in rd.driver.blacklist=nouveau modprobe.blacklist=nouveau +%global _dracutopts_rm nomodeset gfxpayload=vga=normal nouveau.modeset=0 nvidia-drm.modeset=1 initcall_blacklist=simpledrm_platform_driver_init +%global _dracut_conf_d %{_prefix}/lib/dracut/dracut.conf.d + +# gsp_*.bin: ELF 64-bit LSB executable, UCB RISC-V +%global _binaries_in_noarch_packages_terminate_build 0 +%global __strip /bin/true + +Name: nvidia-kmod-common +Version: 570.86.16 +Release: 1%?dist +Summary: Common file for NVIDIA's proprietary driver kernel modules +Epoch: 3 +License: NVIDIA License +URL: http://www.nvidia.com/object/unix.html + +BuildArch: noarch + +Source0: http://download.nvidia.com/XFree86/Linux-x86_64/%{version}/NVIDIA-Linux-x86_64-%{version}.run +Source17: nvidia-boot-update +Source18: kernel.conf +Source19: nvidia-modeset.conf +Source20: nvidia.conf +Source21: 60-nvidia.rules +Source24: 99-nvidia.conf + +# UDev rule location (_udevrulesdir) and systemd macros: +BuildRequires: systemd-rpm-macros + +# Owns /usr/lib/firmware: +Requires: linux-firmware +Requires: nvidia-modprobe +Requires: nvidia-kmod = %{?epoch:%{epoch}:}%{version} +Provides: nvidia-kmod-common = %{?epoch:%{epoch}:}%{version} +Obsoletes: cuda-nvidia-kmod-common < %{?epoch:%{epoch}:}%{version} + +%description +This package provides the common files required by all NVIDIA kernel module +package variants. + +%prep +sh %{SOURCE0} -x --target nvidia-kmod-%{version}-x86_64 +%setup -T -D -n nvidia-kmod-%{version}-x86_64 + +%install +# Script for post/preun tasks +install -p -m 0755 -D %{SOURCE17} %{buildroot}%{_sbindir}/nvidia-boot-update +sed -i \ + -e 's/_dracutopts_in/%{_dracutopts_in}/g' \ + -e 's/_dracutopts_rm/%{_dracutopts_rm}/g' \ + %{buildroot}%{_sbindir}/nvidia-boot-update + +# Choice of kernel module type: +install -p -m 0644 -D %{SOURCE18} %{buildroot}%{_sysconfdir}/nvidia/kernel.conf + +# Nvidia modesetting support: +install -p -m 0644 -D %{SOURCE19} %{buildroot}%{_sysconfdir}/modprobe.d/nvidia-modeset.conf + +# Load nvidia-uvm, enable complete power management: +install -p -m 0644 -D %{SOURCE20} %{buildroot}%{_modprobedir}/nvidia.conf + +# Avoid Nvidia modules getting in the initrd: +install -p -m 0644 -D %{SOURCE24} %{buildroot}%{_dracut_conf_d}/99-nvidia.conf + +# UDev rules +# https://github.com/NVIDIA/nvidia-modprobe/blob/master/modprobe-utils/nvidia-modprobe-utils.h#L33-L46 +# https://github.com/negativo17/nvidia-kmod-common/issues/11 +# https://github.com/negativo17/nvidia-driver/issues/27 +install -p -m 644 -D %{SOURCE21} %{buildroot}%{_udevrulesdir}/60-nvidia.rules + +# Firmware files: +mkdir -p %{buildroot}%{_prefix}/lib/firmware/nvidia/%{version}/ +install -p -m 644 firmware/* %{buildroot}%{_prefix}/lib/firmware/nvidia/%{version} + +%post +%{_sbindir}/nvidia-boot-update post + +%preun +if [ "$1" -eq "0" ]; then + %{_sbindir}/nvidia-boot-update preun +fi ||: + +%files +%{_dracut_conf_d}/99-nvidia.conf +%{_modprobedir}/nvidia.conf +%{_prefix}/lib/firmware/nvidia/%{version} +%{_sbindir}/nvidia-boot-update +%config(noreplace) %{_sysconfdir}/modprobe.d/nvidia-modeset.conf +%config(noreplace) %{_sysconfdir}/nvidia/kernel.conf +%{_udevrulesdir}/60-nvidia.rules + +%changelog +* Wed Dec 25 2024 Simone Caronni - 3:565.77-2 +- Run nvidia-modprobe only on add/bind (thanks os369510). + +* Thu Dec 05 2024 Simone Caronni - 3:565.77-1 +- Update to 565.77. + +* Tue Oct 29 2024 Simone Caronni - 3:565.57.01-2 +- Update power management configuration. + +* Wed Oct 23 2024 Simone Caronni - 3:565.57.01-1 +- Update to 565.57.01. + +* Fri Oct 11 2024 Simone Caronni - 3:560.35.03-2 +- Fix configuration file replacement (#14). + +* Wed Aug 21 2024 Simone Caronni - 3:560.35.03-1 +- Update to 560.35.03. + +* Tue Aug 06 2024 Simone Caronni - 3:560.31.02-1 +- Update to 560.31.02. + +* Mon Aug 05 2024 Simone Caronni - 3:560.28.03-1 +- Update to 560.28.03. + +* Tue Jul 02 2024 Simone Caronni - 3:555.58.02-1 +- Update to 555.58.02. + +* Thu Jun 27 2024 Simone Caronni - 3:555.58-1 +- Update to 555.58. + +* Thu Jun 06 2024 Simone Caronni - 3:555.52.04-1 +- Update to 555.52.04. + +* Fri May 31 2024 Simone Caronni - 3:555.42.02-2 +- Fix typo in preun scriptlet. + +* Wed May 22 2024 Simone Caronni - 3:555.42.02-1 +- Update to 555.42.02. + +* Fri Apr 26 2024 Simone Caronni - 3:550.78-1 +- Update to 550.78. + +* Thu Apr 18 2024 Simone Caronni - 3:550.76-1 +- Update to 550.76. + +* Sun Mar 24 2024 Simone Caronni - 3:550.67-1 +- Update to 550.67. + +* Mon Mar 11 2024 Simone Caronni - 3:550.54.14-2 +- Add support for installing drivers without a configured bootloader (i.e. + kickstart case). +- Add support for sdboot. + +* Sun Mar 03 2024 Simone Caronni - 3:550.54.14-1 +- Update to 550.54.14. + +* Tue Feb 06 2024 Simone Caronni - 3:550.40.07-1 +- Update to 550.40.07. + +* Fri Dec 01 2023 Simone Caronni - 3:545.29.06-1 +- Update to 545.29.06. + +* Tue Nov 14 2023 Simone Caronni - 3:545.29.02-5 +- Update location of configuration file for kernel module variant. + +* Mon Nov 13 2023 Simone Caronni - 3:545.29.02-4 +- Allow installing proprietary or open source kernel modules. + +* Sat Nov 04 2023 Simone Caronni - 3:545.29.02-3 +- Second part of the fix for issue + https://github.com/negativo17/nvidia-kmod-common/issues/11. + +* Sat Nov 04 2023 Simone Caronni - 3:545.29.02-2 +- First part of fix for issue + https://github.com/negativo17/nvidia-kmod-common/issues/11. + +* Tue Oct 31 2023 Simone Caronni - 3:545.29.02-1 +- Update to 545.29.02. + +* Thu Oct 19 2023 Simone Caronni - 3:545.23.06-2 +- Also remove old simpledrm workaround if still present. + +* Wed Oct 18 2023 Simone Caronni - 3:545.23.06-1 +- Update to 545.23.06. + +* Fri Sep 22 2023 Simone Caronni - 3:535.113.01-1 +- Update to 535.113.01. + +* Thu Aug 24 2023 Simone Caronni - 3:535.104.05-1 +- Update to 535.104.05. + +* Wed Aug 09 2023 Simone Caronni - 3:535.98-1 +- Update to 535.98. + +* Wed Jul 19 2023 Simone Caronni - 3:535.86.05-1 +- Update to 535.86.05. + +* Thu Jun 15 2023 Simone Caronni - 3:535.54.03-1 +- Update to 535.54.03. + +* Tue Jun 13 2023 Simone Caronni - 3:535.43.02-1 +- Update to 535.43.02. + +* Fri Mar 24 2023 Simone Caronni - 3:530.41.03-1 +- Update to 530.41.03. + +* Wed Mar 08 2023 Simone Caronni - 3:530.30.02-1 +- Update to 530.30.02. + +* Wed Mar 08 2023 Simone Caronni - 3:525.89.02-2 +- Drop workaround for simpledrm support (fixed in 525.60.11). + +* Fri Feb 10 2023 Simone Caronni - 3:525.89.02-1 +- Update to 525.89.02. + +* Fri Jan 20 2023 Simone Caronni - 3:525.85.05-1 +- Update to 525.85.05. + +* Mon Jan 09 2023 Simone Caronni - 3:525.78.01-1 +- Update to 525.78.01. + +* Tue Nov 29 2022 Simone Caronni - 3:525.60.11-1 +- Update to 525.60.11. + +* Thu Oct 13 2022 Simone Caronni - 3:520.56.06-1 +- Update to 520.56.06. + +* Wed Sep 21 2022 Simone Caronni - 3:515.76-1 +- Update to 515.76. + +* Mon Aug 08 2022 Simone Caronni - 3:515.65.01-1 +- Update to 515.65.01. + +* Wed Jun 29 2022 Simone Caronni - 3:515.57-1 +- Update to 515.57. + +* Thu Jun 09 2022 Simone Caronni - 3:515.48.07-2 +- Adjust conditionals. +- Drop removal of nvidia-drm.modeset=1 from the kernel command line. +- Add nvidia-drm.modeset=1 to the configuration file also on RHEL/CentOS. + +* Wed Jun 01 2022 Simone Caronni - 3:515.48.07-1 +- Update to 515.48.07. + +* Tue May 31 2022 Simone Caronni - 3:515.43.04-2 +- Blacklist nouveau for modprobe. + +* Thu May 12 2022 Simone Caronni - 3:515.43.04-1 +- Update to 515.43.04. + +* Mon May 02 2022 Simone Caronni - 3:510.68.02-1 +- Update to 510.68.02. + +* Mon Mar 28 2022 Simone Caronni - 3:510.60.02-1 +- Update to 510.60.02. + +* Mon Feb 14 2022 Simone Caronni - 3:510.54-1 +- Update to 510.54. + +* Wed Feb 02 2022 Simone Caronni - 3:510.47.03-1 +- Update to 510.47.03. + +* Tue Dec 14 2021 Simone Caronni - 3:495.46-1 +- Update to 495.46. + +* Fri Dec 10 2021 Jamie Nguyen - 3:495.44-4 +- Source grub file before rewriting GRUB_CMDLINE_LINUX in preun. Without this, + we are clearing out GRUB_CMDLINE_LINUX when this package gets removed. + +* Sun Nov 07 2021 Simone Caronni - 3:495.44-3 +- Avoid duplication on modprobe configuration file names (second file in + /usr/lib/modprobe.d gets ignored). Thanks Jens Peters. +- Fix issue with missing quotes in /etc/default/grub and multiple parameters. + Thanks Roshan Shariff. + +* Sat Nov 06 2021 Simone Caronni - 3:495.44-2 +- Update configuration files and boot options. + +* Tue Nov 02 2021 Simone Caronni - 3:495.44-1 +- Update to 495.44. +- Also disable bundling nvidia-peermem in initrd. + +* Tue Nov 02 2021 Simone Caronni - 3:470.82.00-1 +- Update to 470.82.00. + +* Tue Sep 21 2021 Simone Caronni - 3:470.74-1 +- Update to 470.74. + +* Fri Aug 20 2021 Simone Caronni - 3:470.63.01-3 +- SPEC file cleanup. +- Enable modesetting by default for Fedora 35+ + +* Fri Aug 20 2021 Simone Caronni - 3:470.63.01-2 +- Enable complete power management. + +* Wed Aug 11 2021 Simone Caronni - 3:470.63.01-1 +- Update to 470.63.01. + +* Tue Jul 20 2021 Simone Caronni - 3:470.57.02-1 +- Update to 470.57.02. + +* Wed Jun 30 2021 Simone Caronni - 3:470.42.01-1 +- Update to 470.42.01. + +* Wed May 26 2021 Simone Caronni - 3:465.31-1 +- Update to 465.31. + +* Sat May 01 2021 Simone Caronni - 3:465.27-1 +- Update to 465.27. + +* Sun Apr 18 2021 Simone Caronni - 3:465.24.02-1 +- Update to 465.24.02. + +* Fri Apr 09 2021 Simone Caronni - 3:465.19.01-1 +- Update to 465.19.01. + +* Fri Mar 19 2021 Simone Caronni - 3:460.67-1 +- Update to 460.67. + +* Mon Mar 01 2021 Simone Caronni - 3:460.56-1 +- Update to 460.56. + +* Wed Jan 27 2021 Simone Caronni - 3:460.39-1 +- Update to 460.39. + +* Thu Jan 7 2021 Simone Caronni - 3:460.32.03-1 +- Update to 460.32.03. + +* Sun Dec 20 2020 Simone Caronni - 3:460.27.04-1 +- Update to 460.27.04. +- Update comments in modprobe file. + +* Mon Dec 07 2020 Simone Caronni - 3:455.45.01-2 +- Remove CentOS/RHEL 6 support. + +* Wed Nov 18 2020 Simone Caronni - 3:455.45.01-1 +- Update to 455.45.01. + +* Mon Nov 02 2020 Simone Caronni - 3:455.38-1 +- Update to 455.38. + +* Mon Oct 12 2020 Simone Caronni - 3:455.28-1 +- Update to 455.28. + +* Tue Oct 06 2020 Simone Caronni - 3:450.80.02-1 +- Update to 450.80.02. + +* Thu Aug 20 2020 Simone Caronni - 3:450.66-1 +- Update to 450.66. + +* Fri Jul 10 2020 Simone Caronni - 3:450.57-1 +- Update to 450.57. + +* Thu Jun 25 2020 Simone Caronni - 3:440.100-1 +- Update to 440.100. + +* Thu Apr 09 2020 Simone Caronni - 3:440.82-1 +- Update to 440.82. + +* Fri Feb 28 2020 Simone Caronni - 3:440.64-1 +- Update to 440.64. + +* Tue Feb 04 2020 Simone Caronni - 3:440.59-1 +- Update to 440.59. + +* Sat Dec 14 2019 Simone Caronni - 3:440.44-1 +- Update to 440.44. + +* Sat Nov 30 2019 Simone Caronni - 3:440.36-1 +- Update to 440.36. + +* Mon Nov 11 2019 Simone Caronni - 3:440.31-2 +- Fix udev rules synax (thanks Leigh) + +* Sat Nov 09 2019 Simone Caronni - 3:440.31-1 +- Update to 440.31. + +* Thu Oct 17 2019 Simone Caronni - 3:440.26-1 +- Update to 440.26. + +* Tue Oct 01 2019 Simone Caronni - 3:435.21-3 +- Remove workaround for onboard GPU devices. +- Fix typo on udev character device rules (thanks tbaederr). + +* Tue Oct 01 2019 Simone Caronni - 3:435.21-2 +- Fix build on CentOS/RHEL 8 + +* Tue Sep 03 2019 Simone Caronni - 3:435.21-1 +- Update to 435.21. + +* Thu Aug 22 2019 Simone Caronni - 3:435.17-1 +- Update to 435.17. +- Add power management functions as per documentation. +- Require systemd-rpm-macros instead of systemd on Fedora/RHEL 8+. + +* Wed Jul 31 2019 Simone Caronni - 3:430.40-1 +- Update to 430.40. + +* Fri Jul 12 2019 Simone Caronni - 3:430.34-1 +- Update to 430.34. + +* Wed Jun 12 2019 Simone Caronni - 3:430.26-1 +- Update to 430.26. + +* Thu Jun 06 2019 Simone Caronni - 3:430.14-2 +- Do not run post/preun scriptlets on Atomic/Silverblue. + +* Sat May 18 2019 Simone Caronni - 3:430.14-1 +- Update to 430.14. + +* Thu May 09 2019 Simone Caronni - 3:418.74-1 +- Update to 418.74. +- Remove fallback scenario (thanks Karol Herbst). + +* Thu Apr 18 2019 Simone Caronni - 3:418.56-2 +- Obsoletes cuda-nvidia-kmod-common (thanks Timm). + +* Sun Mar 24 2019 Simone Caronni - 3:418.56-1 +- Update to 418.56. + +* Fri Feb 22 2019 Simone Caronni - 3:418.43-1 +- Update to 418.43. + +* Wed Feb 06 2019 Simone Caronni - 3:418.30-1 +- Update to 418.30. + +* Sun Feb 03 2019 Simone Caronni - 3:415.27-1 +- First build. diff --git a/anda/system/nvidia/nvidia-kmod-common/nvidia-modeset.conf b/anda/system/nvidia/nvidia-kmod-common/nvidia-modeset.conf new file mode 100644 index 0000000000..c4e6e744e5 --- /dev/null +++ b/anda/system/nvidia/nvidia-kmod-common/nvidia-modeset.conf @@ -0,0 +1,4 @@ +# Nvidia modesetting support. Set to 0 or comment to disable kernel modesetting +# support. This must be disabled in case of SLI Mosaic. + +options nvidia-drm modeset=1 fbdev=1 diff --git a/anda/system/nvidia/nvidia-kmod-common/nvidia.conf b/anda/system/nvidia/nvidia-kmod-common/nvidia.conf new file mode 100644 index 0000000000..bb90a99750 --- /dev/null +++ b/anda/system/nvidia/nvidia-kmod-common/nvidia.conf @@ -0,0 +1,24 @@ +# Nouveau must be blacklisted here as well beside from the initrd to avoid a +# delayed loading (for example on Optimus laptops where the Nvidia card is not +# driving the main display). + +blacklist nouveau + +# Make a soft dependency for nvidia-uvm as adding the module loading to +# /usr/lib/modules-load.d/nvidia-uvm.conf for systemd consumption, makes the +# configuration file to be added to the initrd but not the module, throwing an +# error on plymouth about not being able to find the module. +# Ref: /usr/lib/dracut/modules.d/00systemd/module-setup.sh + +# Even adding the module is not the correct thing, as we don't want it to be +# included in the initrd, so use this configuration file to specify the +# dependency. + +softdep nvidia post: nvidia-uvm + +# Enable complete power management. From: +# file:///usr/share/doc/nvidia-driver/html/powermanagement.html + +options nvidia NVreg_TemporaryFilePath=/var/tmp +options nvidia NVreg_EnableS0ixPowerManagement=1 +options nvidia NVreg_PreserveVideoMemoryAllocations=1 diff --git a/anda/system/nvidia/nvidia-kmod-common/update.rhai b/anda/system/nvidia/nvidia-kmod-common/update.rhai new file mode 100644 index 0000000000..e5eff132c0 --- /dev/null +++ b/anda/system/nvidia/nvidia-kmod-common/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_driver_version()); diff --git a/anda/system/nvidia/nvidia-kmod/anda.hcl b/anda/system/nvidia/nvidia-kmod/anda.hcl new file mode 100644 index 0000000000..b5ccca3615 --- /dev/null +++ b/anda/system/nvidia/nvidia-kmod/anda.hcl @@ -0,0 +1,9 @@ +project "pkg" { + rpm { + spec = "nvidia-kmod.spec" + } + labels { + mock = 1 + subrepo = "nvidia" + } +} \ No newline at end of file diff --git a/anda/system/nvidia/nvidia-kmod/nvidia-kmod.spec b/anda/system/nvidia/nvidia-kmod/nvidia-kmod.spec new file mode 100644 index 0000000000..45b40d045e --- /dev/null +++ b/anda/system/nvidia/nvidia-kmod/nvidia-kmod.spec @@ -0,0 +1,202 @@ +# Build only the akmod package and no kernel module packages: +%define buildforkernels akmod + +%global debug_package %{nil} + +Name: nvidia-kmod +Version: 570.86.16 +Release: 1%?dist +Summary: NVIDIA display driver kernel module +Epoch: 3 +License: NVIDIA License +URL: http://www.nvidia.com/object/unix.html +ExclusiveArch: x86_64 aarch64 + +Source0: http://download.nvidia.com/XFree86/Linux-%{_arch}/%{version}/NVIDIA-Linux-%{_arch}-%{version}.run + + +# Get the needed BuildRequires (in parts depending on what we build for): +BuildRequires: kmodtool + +# kmodtool does its magic here: +%{expand:%(kmodtool --target %{_target_cpu} --repo terra.fyralabs.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +The NVidia %{version} display driver kernel module for kernel %{kversion}. + +%prep +# Error out if there was something wrong with kmodtool: +%{?kmodtool_check} +# Print kmodtool output for debugging purposes: +kmodtool --target %{_target_cpu} --repo terra.fyralabs.com --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +sh %{SOURCE0} -x --target nvidia-kmod-%{version}-%{_arch} +%setup -T -D -n nvidia-kmod-%{version}-%{_arch} + +rm -f */dkms.conf + +for kernel_version in %{?kernel_versions}; do + mkdir _kmod_build_${kernel_version%%___*} + cp -fr kernel* _kmod_build_${kernel_version%%___*} +done + +%build +if [ -f /etc/nvidia/kernel.conf ]; then + . /etc/nvidia/kernel.conf +fi +for kernel_version in %{?kernel_versions}; do + pushd _kmod_build_${kernel_version%%___*}/ + make %{?_smp_mflags} -C ${MODULE_VARIANT} \ + KERNEL_UNAME="${kernel_version%%___*}" modules + popd +done + +%install +if [ -f /etc/nvidia/kernel.conf ]; then + . /etc/nvidia/kernel.conf +fi +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -p -m 0755 _kmod_build_${kernel_version%%___*}/${MODULE_VARIANT}/*.ko \ + %{buildroot}/%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ +done +%{?akmod_install} + +%changelog +* Thu Dec 05 2024 Simone Caronni - 3:565.77-1 +- Update to 565.77. + +* Mon Nov 25 2024 Simone Caronni - 3:565.57.01-2 +- Add kernel 6.12 patch. + +* Wed Oct 23 2024 Simone Caronni - 3:565.57.01-1 +- Update to 565.57.01. + +* Fri Oct 11 2024 Simone Caronni - 3:560.35.03-2 +- Add kernel 6.11 patch. + +* Wed Aug 21 2024 Simone Caronni - 3:560.35.03-1 +- Update to 560.35.03. + +* Tue Aug 06 2024 Simone Caronni - 3:560.31.02-1 +- Update to 560.31.02. + +* Mon Aug 05 2024 Simone Caronni - 3:560.28.03-1 +- Update to 560.28.03. + +* Tue Jul 02 2024 Simone Caronni - 3:555.58.02-1 +- Update to 555.58.02. + +* Thu Jun 27 2024 Simone Caronni - 3:555.58-1 +- Update to 555.58. + +* Thu Jun 06 2024 Simone Caronni - 3:555.52.04-1 +- Update to 555.52.04. + +* Wed May 22 2024 Simone Caronni - 3:555.42.02-1 +- Update to 555.42.02. + +* Fri Apr 26 2024 Simone Caronni - 3:550.78-1 +- Update to 550.78. + +* Thu Apr 18 2024 Simone Caronni - 3:550.76-1 +- Update to 550.76. + +* Sun Mar 24 2024 Simone Caronni - 3:550.67-1 +- Update to 550.67. + +* Sat Mar 09 2024 Simone Caronni - 3:550.54.14-2 +- Enable aarch64. + +* Sun Mar 03 2024 Simone Caronni - 3:550.54.14-1 +- Update to 550.54.14. + +* Tue Feb 06 2024 Simone Caronni - 3:550.40.07-1 +- Update to 550.40.07. + +* Tue Feb 06 2024 Simone Caronni - 3:545.29.06-2 +- Add patch to fix build with the latest 6.6/6.7 kernels. + +* Fri Dec 01 2023 Simone Caronni - 3:545.29.06-1 +- Update to version 545.29.06. + +* Tue Nov 14 2023 Simone Caronni - 3:545.29.02-3 +- Update location of configuration file. + +* Mon Nov 13 2023 Simone Caronni - 3:545.29.02-2 +- Trim changelog. +- Drop custom signing and compressing in favour of kmodtool. +- Allow building proprietary or open source modules. +- Adjust compile command to match with what Nvidia ships nowadays. + +* Tue Oct 31 2023 Simone Caronni - 3:545.29.02-1 +- Update to 545.29.02. + +* Wed Oct 18 2023 Simone Caronni - 3:545.23.06-1 +- Update to 545.23.06. + +* Fri Sep 22 2023 Simone Caronni - 3:535.113.01-1 +- Update to 535.113.01. + +* Thu Aug 24 2023 Simone Caronni - 3:535.104.05-1 +- Update to 535.104.05. + +* Wed Aug 09 2023 Simone Caronni - 3:535.98-1 +- Update to 535.98. + +* Wed Jul 19 2023 Simone Caronni - 3:535.86.05-1 +- Update to 535.86.05. + +* Thu Jun 15 2023 Simone Caronni - 3:535.54.03-1 +- Update to 535.54.03. + +* Tue Jun 13 2023 Simone Caronni - 3:535.43.02-1 +- Update to 535.43.02. + +* Fri Mar 24 2023 Simone Caronni - 3:530.41.03-1 +- Update to 530.41.03. + +* Wed Mar 08 2023 Simone Caronni - 3:530.30.02-1 +- Update to 530.30.02. + +* Fri Feb 10 2023 Simone Caronni - 3:525.89.02-1 +- Update to 525.89.02. + +* Fri Jan 20 2023 Simone Caronni - 3:525.85.05-1 +- Update to 525.85.05. + +* Mon Jan 09 2023 Simone Caronni - 3:525.78.01-1 +- Update to 525.78.01. + +* Tue Nov 29 2022 Simone Caronni - 3:525.60.11-1 +- Update to 525.60.11. + +* Thu Oct 13 2022 Simone Caronni - 3:520.56.06-1 +- Update to 520.56.06. + +* Wed Sep 21 2022 Simone Caronni - 3:515.76-1 +- Update to 515.76. + +* Mon Aug 08 2022 Simone Caronni - 3:515.65.01-1 +- Update to 515.65.01. + +* Wed Jun 29 2022 Simone Caronni - 3:515.57-1 +- Update to 515.57. + +* Wed Jun 01 2022 Simone Caronni - 3:515.48.07-1 +- Update to 515.48.07. + +* Thu May 12 2022 Simone Caronni - 3:515.43.04-1 +- Update to 515.43.04. + +* Mon May 02 2022 Simone Caronni - 3:510.68.02-1 +- Update to 510.68.02. + +* Mon Mar 28 2022 Simone Caronni - 3:510.60.02-1 +- Update to 510.60.02. + +* Mon Feb 14 2022 Simone Caronni - 3:510.54-1 +- Update to 510.54. + +* Wed Feb 02 2022 Simone Caronni - 3:510.47.03-1 +- Update to 510.47.03. \ No newline at end of file diff --git a/anda/system/nvidia/nvidia-kmod/update.rhai b/anda/system/nvidia/nvidia-kmod/update.rhai new file mode 100644 index 0000000000..e5eff132c0 --- /dev/null +++ b/anda/system/nvidia/nvidia-kmod/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_driver_version()); diff --git a/anda/system/nvidia/nvidia-modprobe/anda.hcl b/anda/system/nvidia/nvidia-modprobe/anda.hcl new file mode 100644 index 0000000000..12fa43ca14 --- /dev/null +++ b/anda/system/nvidia/nvidia-modprobe/anda.hcl @@ -0,0 +1,8 @@ +project "pkg" { + rpm { + spec = "nvidia-modprobe.spec" + } + labels = { + subrepo = "nvidia" + } +} \ No newline at end of file diff --git a/anda/system/nvidia/nvidia-modprobe/nvidia-modprobe-man-page-permissions.patch b/anda/system/nvidia/nvidia-modprobe/nvidia-modprobe-man-page-permissions.patch new file mode 100644 index 0000000000..96d073cda3 --- /dev/null +++ b/anda/system/nvidia/nvidia-modprobe/nvidia-modprobe-man-page-permissions.patch @@ -0,0 +1,12 @@ +diff -Naur nvidia-modprobe-525.60.11.old/Makefile nvidia-modprobe-525.60.11/Makefile +--- nvidia-modprobe-525.60.11.old/Makefile 2022-11-28 20:15:22.000000000 +0100 ++++ nvidia-modprobe-525.60.11/Makefile 2022-11-30 07:56:18.751429168 +0100 +@@ -110,7 +110,7 @@ + .PHONY: MANPAGE_install + MANPAGE_install: $(MANPAGE) + $(MKDIR) $(MANDIR) +- $(INSTALL) $(INSTALL_BIN_ARGS) $< $(MANDIR)/$(notdir $<) ++ $(INSTALL) $(INSTALL_DOC_ARGS) $< $(MANDIR)/$(notdir $<) + + $(eval $(call DEBUG_INFO_RULES, $(NVIDIA_MODPROBE))) + $(NVIDIA_MODPROBE).unstripped: $(OBJS) diff --git a/anda/system/nvidia/nvidia-modprobe/nvidia-modprobe.spec b/anda/system/nvidia/nvidia-modprobe/nvidia-modprobe.spec new file mode 100644 index 0000000000..145b12d3c5 --- /dev/null +++ b/anda/system/nvidia/nvidia-modprobe/nvidia-modprobe.spec @@ -0,0 +1,297 @@ +Name: nvidia-modprobe +Version: 570.86.16 +Release: 1%?dist +Summary: NVIDIA kernel module loader +Epoch: 3 +License: GPLv2+ +URL: http://www.nvidia.com/object/unix.html +ExclusiveArch: x86_64 aarch64 + +Source0: https://download.nvidia.com/XFree86/%{name}/%{name}-%{version}.tar.bz2 +Patch0: %{name}-man-page-permissions.patch + +BuildRequires: gcc +BuildRequires: m4 + +%description +This utility is used by user-space NVIDIA driver components to make sure the +NVIDIA kernel modules are loaded and that the NVIDIA character device files are +present. + +%prep +%autosetup -p1 +# Remove additional CFLAGS added when enabling DEBUG +sed -i '/+= -O0 -g/d' utils.mk + +%build +export CFLAGS="%{optflags}" +export LDFLAGS="%{?__global_ldflags}" +make %{?_smp_mflags} \ + DEBUG=1 \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + STRIP_CMD=true + +%install +%make_install \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + STRIP_CMD=true + +%files +%license COPYING +%attr(4755, root, root) %{_bindir}/%{name} +%{_mandir}/man1/%{name}.1.* + +%changelog +* Thu Dec 05 2024 Simone Caronni - 3:565.77-1 +- Update to 565.77. + +* Wed Oct 23 2024 Simone Caronni - 3:565.57.01-1 +- Update to 565.57.01. + +* Wed Aug 21 2024 Simone Caronni - 3:560.35.03-1 +- Update to 560.35.03. + +* Tue Aug 06 2024 Simone Caronni - 3:560.31.02-1 +- Update to 560.31.02. + +* Mon Aug 05 2024 Simone Caronni - 3:560.28.03-1 +- Update to 560.28.03. + +* Tue Jul 02 2024 Simone Caronni - 3:555.58.02-1 +- Update to 555.58.02. + +* Thu Jun 27 2024 Simone Caronni - 3:555.58-1 +- Update to 555.58. + +* Thu Jun 06 2024 Simone Caronni - 3:555.52.04-1 +- Update to 555.52.04. + +* Wed May 22 2024 Simone Caronni - 3:555.42.02-1 +- Update to 555.42.02. + +* Tue Apr 30 2024 Simone Caronni - 3:550.78-2 +- Switch to Nvidia provided tarball. + +* Fri Apr 26 2024 Simone Caronni - 3:550.78-1 +- Update to 550.78. + +* Thu Apr 18 2024 Simone Caronni - 3:550.76-1 +- Update to 550.76. + +* Sun Mar 24 2024 Simone Caronni - 3:550.67-1 +- Update to 550.67. + +* Sat Mar 09 2024 Simone Caronni - 3:550.54.14-2 +- Enable aarch64. + +* Sun Mar 03 2024 Simone Caronni - 3:550.54.14-1 +- Update to 550.54.14. + +* Tue Feb 06 2024 Simone Caronni - 3:550.40.07-1 +- Update to 550.40.07. + +* Fri Dec 01 2023 Simone Caronni - 3:545.29.06-1 +- Update to 545.29.06. + +* Tue Oct 31 2023 Simone Caronni - 3:545.29.02-1 +- Update to 545.29.02. + +* Wed Oct 18 2023 Simone Caronni - 3:545.23.06-1 +- Update to 545.23.06. + +* Fri Sep 22 2023 Simone Caronni - 3:535.113.01-1 +- Update to 535.113.01. + +* Thu Aug 24 2023 Simone Caronni - 3:535.104.05-1 +- Update to 535.104.05. + +* Wed Aug 09 2023 Simone Caronni - 3:535.98-1 +- Update to 535.98. + +* Wed Jul 19 2023 Simone Caronni - 3:535.86.05-1 +- Update to 535.86.05. + +* Thu Jun 15 2023 Simone Caronni - 3:535.54.03-1 +- Update to 535.54.03. + +* Tue Jun 13 2023 Simone Caronni - 3:535.43.02-1 +- Update to 535.43.02. + +* Fri Mar 24 2023 Simone Caronni - 3:530.41.03-1 +- Update to 530.41.03. + +* Wed Mar 08 2023 Simone Caronni - 3:530.30.02-1 +- Update to 530.30.02. + +* Fri Feb 10 2023 Simone Caronni - 3:525.89.02-1 +- Update to 525.89.02. + +* Fri Jan 20 2023 Simone Caronni - 3:525.85.05-1 +- Update to 525.85.05. + +* Mon Jan 09 2023 Simone Caronni - 3:525.78.01-1 +- Update to 525.78.01. + +* Tue Nov 29 2022 Simone Caronni - 3:525.60.11-1 +- Update to 525.60.11. + +* Thu Oct 13 2022 Simone Caronni - 3:520.56.06-1 +- Update to 520.56.06. + +* Wed Sep 21 2022 Simone Caronni - 3:515.76-1 +- Update to 515.76. + +* Mon Aug 08 2022 Simone Caronni - 3:515.65.01-1 +- Update to 515.65.01. + +* Wed Jun 29 2022 Simone Caronni - 3:515.57-1 +- Update to 515.57. + +* Wed Jun 01 2022 Simone Caronni - 3:515.48.07-1 +- Update to 515.48.07. + +* Thu May 12 2022 Simone Caronni - 3:515.43.04-1 +- Update to 515.43.04. + +* Mon May 02 2022 Simone Caronni - 3:510.68.02-1 +- Update to 510.68.02. + +* Mon Mar 28 2022 Simone Caronni - 3:510.60.02-1 +- Update to 510.60.02. + +* Mon Feb 14 2022 Simone Caronni - 3:510.54-1 +- Update to 510.54. + +* Wed Feb 02 2022 Simone Caronni - 3:510.47.03-1 +- Update to 510.47.03. + +* Tue Dec 14 2021 Simone Caronni - 3:495.46-1 +- Update to 495.46. + +* Tue Nov 02 2021 Simone Caronni - 3:495.44-1 +- Update to 495.44. + +* Tue Nov 02 2021 Simone Caronni - 3:470.82.00-1 +- Update to 470.82.00. + +* Tue Sep 21 2021 Simone Caronni - 3:470.74-1 +- Update to 470.74. + +* Wed Aug 11 2021 Simone Caronni - 3:470.63.01-1 +- Update to 470.63.01. + +* Tue Jul 20 2021 Simone Caronni - 3:470.57.02-1 +- Update to 470.57.02. + +* Wed Jun 30 2021 Simone Caronni - 3:470.42.01-1 +- Update to 470.42.01. + +* Wed May 26 2021 Simone Caronni - 3:465.31-1 +- Update to 465.31. + +* Sat May 01 2021 Simone Caronni - 3:465.27-1 +- Update to 465.27. + +* Sun Apr 18 2021 Simone Caronni - 3:465.24.02-1 +- Update to 465.24.02. +- Switch to github sources. + +* Fri Apr 09 2021 Simone Caronni - 3:465.19.01-1 +- Update to 465.19.01. + +* Fri Mar 19 2021 Simone Caronni - 3:460.67-1 +- Update to 460.67. + +* Mon Mar 01 2021 Simone Caronni - 3:460.56-1 +- Update to 460.56. + +* Wed Jan 27 2021 Simone Caronni - 3:460.39-1 +- Update to 460.39. + +* Thu Jan 7 2021 Simone Caronni - 3:460.32.03-1 +- Update to 460.32.03. + +* Sun Dec 20 2020 Simone Caronni - 3:460.27.04-1 +- Update to 460.27.04. +- Trim changelog. + +* Mon Dec 07 2020 Simone Caronni - 3:455.45.01-2 +- Use autoseptup macro. + +* Wed Nov 18 2020 Simone Caronni - 3:455.45.01-1 +- Update to 455.45.01. + +* Mon Nov 02 2020 Simone Caronni - 3:455.38-1 +- Update to 455.38. + +* Mon Oct 12 2020 Simone Caronni - 3:455.28-1 +- Update to 455.28. + +* Tue Oct 06 2020 Simone Caronni - 3:450.80.02-1 +- Update to 450.80.02. + +* Thu Aug 20 2020 Simone Caronni - 3:450.66-1 +- Update to 450.66. + +* Fri Jul 10 2020 Simone Caronni - 3:450.57-1 +- Update to 450.57. + +* Thu Jun 25 2020 Simone Caronni - 3:440.100-1 +- Update to 440.100. + +* Thu Apr 09 2020 Simone Caronni - 3:440.82-1 +- Update to 440.82. + +* Fri Feb 28 2020 Simone Caronni - 3:440.64-1 +- Update to 440.64. + +* Tue Feb 04 2020 Simone Caronni - 3:440.59-1 +- Update to 440.59. + +* Sat Dec 14 2019 Simone Caronni - 3:440.44-1 +- Update to 440.44. + +* Sat Nov 30 2019 Simone Caronni - 3:440.36-1 +- Update to 440.36. + +* Sat Nov 09 2019 Simone Caronni - 3:440.31-1 +- Update to 440.31. + +* Thu Oct 17 2019 Simone Caronni - 3:440.26-1 +- Update to 440.26. + +* Mon Sep 02 2019 Simone Caronni - 3:435.21-1 +- Update to 435.21. + +* Thu Aug 22 2019 Simone Caronni - 3:435.17-1 +- Update to 435.17. + +* Wed Jul 31 2019 Simone Caronni - 3:430.40-1 +- Update to 430.40. + +* Fri Jul 12 2019 Simone Caronni - 3:430.34-1 +- Update to 430.34. + +* Wed Jun 12 2019 Simone Caronni - 3:430.26-1 +- Update to 430.26. + +* Sat May 18 2019 Simone Caronni - 3:430.14-1 +- Update to 430.14. + +* Thu May 09 2019 Simone Caronni - 3:418.74-1 +- Update to 418.74. + +* Sun Mar 24 2019 Simone Caronni - 3:418.56-1 +- Update to 418.56. + +* Fri Feb 22 2019 Simone Caronni - 3:418.43-1 +- Update to 418.43. +- Trim changelog. + +* Wed Feb 06 2019 Simone Caronni - 3:418.30-1 +- Update to 418.30. + +* Thu Jan 17 2019 Simone Caronni - 3:415.27-1 +- Update to 415.27. diff --git a/anda/system/nvidia/nvidia-modprobe/update.rhai b/anda/system/nvidia/nvidia-modprobe/update.rhai new file mode 100644 index 0000000000..e5eff132c0 --- /dev/null +++ b/anda/system/nvidia/nvidia-modprobe/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_driver_version()); diff --git a/anda/system/nvidia/nvidia-persistenced/anda.hcl b/anda/system/nvidia/nvidia-persistenced/anda.hcl new file mode 100644 index 0000000000..94fb3ebc91 --- /dev/null +++ b/anda/system/nvidia/nvidia-persistenced/anda.hcl @@ -0,0 +1,8 @@ +project "pkg" { + rpm { + spec = "nvidia-persistenced.spec" + } + labels = { + subrepo = "nvidia" + } +} \ No newline at end of file diff --git a/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.service b/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.service new file mode 100644 index 0000000000..0d83758660 --- /dev/null +++ b/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.service @@ -0,0 +1,14 @@ +[Unit] +Description=NVIDIA Persistence Daemon +After=syslog.target + +[Service] +Type=forking +PIDFile=/var/run/nvidia-persistenced/nvidia-persistenced.pid +Restart=always +ExecStart=/usr/sbin/nvidia-persistenced --verbose +ExecStopPost=/bin/rm -rf /var/run/nvidia-persistenced/* +TimeoutSec=300 + +[Install] +WantedBy=multi-user.target diff --git a/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.spec b/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.spec new file mode 100644 index 0000000000..c2ed246fbc --- /dev/null +++ b/anda/system/nvidia/nvidia-persistenced/nvidia-persistenced.spec @@ -0,0 +1,336 @@ +Name: nvidia-persistenced +Version: 570.86.16 +Release: 1%?dist +Summary: A daemon to maintain persistent software state in the NVIDIA driver +Epoch: 3 +License: GPLv2+ +URL: http://www.nvidia.com/object/unix.html +ExclusiveArch: x86_64 aarch64 + +Source0: https://download.nvidia.com/XFree86/%{name}/%{name}-%{version}.tar.bz2 +Source1: %{name}.service + +BuildRequires: gcc +BuildRequires: libtirpc-devel +BuildRequires: m4 + +# For Fedora systemd-rpm-macros would be enough: +BuildRequires: systemd-devel +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +Requires: libnvidia-cfg%{?_isa} >= %{?epoch:%{epoch}:}%{version} + +%description +The %{name} utility is used to enable persistent software state in the NVIDIA +driver. When persistence mode is enabled, the daemon prevents the driver from +releasing device state when the device is not in use. This can improve the +startup time of new clients in this scenario. + +%prep +%autosetup +# Remove additional CFLAGS added when enabling DEBUG +sed -i -e '/+= -O0 -g/d' utils.mk + +%build +export CFLAGS="%{optflags} -I%{_includedir}/tirpc" +make %{?_smp_mflags} \ + DEBUG=1 \ + LIBS="-ldl -ltirpc" \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + STRIP_CMD=true + +%install +%make_install \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + STRIP_CMD=true + +mv %{buildroot}%{_bindir} %{buildroot}%{_sbindir} +mkdir -p %{buildroot}%{_sharedstatedir}/%{name} + +# Systemd unit files +install -p -m 644 -D %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service + +%post +%systemd_post %{name}.service + +%preun +%systemd_preun %{name}.service + +%postun +%systemd_postun_with_restart %{name}.service + +%files +%license COPYING +%{_mandir}/man1/%{name}.1.* +%{_sbindir}/%{name} +%{_unitdir}/%{name}.service +%{_sharedstatedir}/%{name} + +%changelog +* Thu Dec 05 2024 Simone Caronni - 3:565.77-1 +- Update to 565.77. + +* Wed Oct 23 2024 Simone Caronni - 3:565.57.01-1 +- Update to 565.57.01. + +* Wed Aug 21 2024 Simone Caronni - 3:560.35.03-1 +- Update to 560.35.03. + +* Tue Aug 06 2024 Simone Caronni - 3:560.31.02-1 +- Update to 560.31.02. + +* Mon Aug 05 2024 Simone Caronni - 3:560.28.03-1 +- Update to 560.28.03. + +* Tue Jul 02 2024 Simone Caronni - 3:555.58.02-1 +- Update to 555.58.02. +- Require dynamically loaded library libnvidia-cfg. + +* Thu Jun 27 2024 Simone Caronni - 3:555.58-1 +- Update to 555.58. + +* Thu Jun 06 2024 Simone Caronni - 3:555.52.04-1 +- Update to 555.52.04. + +* Wed May 22 2024 Simone Caronni - 3:555.42.02-1 +- Update to 555.42.02. + +* Tue Apr 30 2024 Simone Caronni - 3:550.78-2 +- Switch to Nvidia provided tarball. + +* Fri Apr 26 2024 Simone Caronni - 3:550.78-1 +- Update to 550.78. + +* Thu Apr 18 2024 Simone Caronni - 3:550.76-1 +- Update to 550.76. + +* Sun Mar 24 2024 Simone Caronni - 3:550.67-1 +- Update to 550.67. + +* Mon Mar 18 2024 Simone Caronni - 3:550.54.14-4 +- Clean up build requirements. + +* Sat Mar 09 2024 Simone Caronni - 3:550.54.14-3 +- Enable aarch64. + +* Thu Mar 07 2024 Simone Caronni - 3:550.54.14-2 +- Run nvidia-persistenced as root as Nvidia does. + +* Sun Mar 03 2024 Simone Caronni - 3:550.54.14-1 +- Update to 550.54.14. + +* Tue Feb 06 2024 Simone Caronni - 3:550.40.07-1 +- Update to 550.40.07. + +* Fri Dec 01 2023 Simone Caronni - 3:545.29.06-1 +- Update to 545.29.06. + +* Tue Oct 31 2023 Simone Caronni - 3:545.29.02-1 +- Update to 545.29.02. + +* Wed Oct 18 2023 Simone Caronni - 3:545.23.06-1 +- Update to 545.23.06. + +* Fri Sep 22 2023 Simone Caronni - 3:535.113.01-1 +- Update to 535.113.01. + +* Thu Aug 24 2023 Simone Caronni - 3:535.104.05-1 +- Update to 535.104.05. + +* Wed Aug 09 2023 Simone Caronni - 3:535.98-1 +- Update to 535.98. + +* Wed Jul 19 2023 Simone Caronni - 3:535.86.05-1 +- Update to 535.86.05. + +* Thu Jun 15 2023 Simone Caronni - 3:535.54.03-1 +- Update to 535.54.03. + +* Tue Jun 13 2023 Simone Caronni - 3:535.43.02-1 +- Update to 535.43.02. + +* Fri Mar 24 2023 Simone Caronni - 3:530.41.03-1 +- Update to 530.41.03. + +* Wed Mar 08 2023 Simone Caronni - 3:530.30.02-1 +- Update to 530.30.02. + +* Fri Feb 10 2023 Simone Caronni - 3:525.89.02-1 +- Update to 525.89.02. + +* Fri Jan 20 2023 Simone Caronni - 3:525.85.05-1 +- Update to 525.85.05. + +* Mon Jan 09 2023 Simone Caronni - 3:525.78.01-1 +- Update to 525.78.01. + +* Tue Nov 29 2022 Simone Caronni - 3:525.60.11-1 +- Update to 525.60.11. + +* Thu Oct 13 2022 Simone Caronni - 3:520.56.06-1 +- Update to 520.56.06. + +* Wed Sep 21 2022 Simone Caronni - 3:515.76-1 +- Update to 515.76. + +* Mon Aug 08 2022 Simone Caronni - 3:515.65.01-1 +- Update to 515.65.01. + +* Wed Jun 29 2022 Simone Caronni - 3:515.57-1 +- Update to 515.57. + +* Wed Jun 01 2022 Simone Caronni - 3:515.48.07-1 +- Update to 515.48.07. + +* Thu May 12 2022 Simone Caronni - 3:515.43.04-1 +- Update to 515.43.04. + +* Mon May 02 2022 Simone Caronni - 3:510.68.02-1 +- Update to 510.68.02. + +* Mon Mar 28 2022 Simone Caronni - 3:510.60.02-1 +- Update to 510.60.02. + +* Mon Feb 14 2022 Simone Caronni - 3:510.54-1 +- Update to 510.54. + +* Wed Feb 02 2022 Simone Caronni - 3:510.47.03-1 +- Update to 510.47.03. + +* Tue Dec 14 2021 Simone Caronni - 3:495.46-1 +- Update to 495.46. + +* Tue Nov 02 2021 Simone Caronni - 3:495.44-1 +- Update to 495.44. + +* Tue Nov 02 2021 Simone Caronni - 3:470.82.00-1 +- Update to 470.82.00. + +* Tue Sep 21 2021 Simone Caronni - 3:470.74-1 +- Update to 470.74. + +* Wed Aug 11 2021 Simone Caronni - 3:470.63.01-1 +- Update to 470.63.01. + +* Tue Jul 20 2021 Simone Caronni - 3:470.57.02-1 +- Update to 470.57.02. + +* Wed Jun 30 2021 Simone Caronni - 3:470.42.01-1 +- Update to 470.42.01. + +* Wed May 26 2021 Simone Caronni - 3:465.31-1 +- Update to 465.31. + +* Sat May 01 2021 Simone Caronni - 3:465.27-1 +- Update to 465.27. + +* Sun Apr 18 2021 Simone Caronni - 3:465.24.02-1 +- Update to 465.24.02. +- Switch to github sources. + +* Fri Apr 09 2021 Simone Caronni - 3:465.19.01-1 +- Update to 465.19.01. + +* Fri Mar 19 2021 Simone Caronni - 3:460.67-1 +- Update to 460.67. + +* Mon Mar 01 2021 Simone Caronni - 3:460.56-1 +- Update to 460.56. + +* Wed Jan 27 2021 Simone Caronni - 3:460.39-1 +- Update to 460.39. + +* Thu Jan 7 2021 Simone Caronni - 3:460.32.03-1 +- Update to 460.32.03. + +* Sun Dec 20 2020 Simone Caronni - 3:460.27.04-1 +- Update to 460.27.04. +- Trim changelog. + +* Mon Dec 07 2020 Simone Caronni - 3:455.45.01-2 +- Remove RHEL/CentOS 6 support. + +* Wed Nov 18 2020 Simone Caronni - 3:455.45.01-1 +- Update to 455.45.01. + +* Mon Nov 02 2020 Simone Caronni - 3:455.38-1 +- Update to 455.38. + +* Mon Oct 12 2020 Simone Caronni - 3:455.28-1 +- Update to 455.28. + +* Tue Oct 06 2020 Simone Caronni - 3:450.80.02-1 +- Update to 450.80.02. + +* Thu Aug 20 2020 Simone Caronni - 3:450.66-1 +- Update to 450.66. + +* Fri Jul 10 2020 Simone Caronni - 3:450.57-1 +- Update to 450.57. + +* Thu Jun 25 2020 Simone Caronni - 3:440.100-1 +- Update to 440.100. + +* Tue Apr 14 2020 Simone Caronni - 3:440.82-2 +- Update requirements according to package guidelines. + +* Thu Apr 09 2020 Simone Caronni - 3:440.82-1 +- Update to 440.82. + +* Fri Feb 28 2020 Simone Caronni - 3:440.64-1 +- Update to 440.64. + +* Tue Feb 04 2020 Simone Caronni - 3:440.59-1 +- Update to 440.59. + +* Sat Dec 14 2019 Simone Caronni - 3:440.44-1 +- Update to 440.44. + +* Sat Nov 30 2019 Simone Caronni - 3:440.36-1 +- Update to 440.36. + +* Sat Nov 09 2019 Simone Caronni - 3:440.31-1 +- Update to 440.31. + +* Thu Oct 17 2019 Simone Caronni - 3:440.26-1 +- Update to 440.26. + +* Mon Sep 02 2019 Simone Caronni - 3:435.21-1 +- Update to 435.21. + +* Thu Aug 22 2019 Simone Caronni - 3:435.17-1 +- Update to 435.17. + +* Wed Jul 31 2019 Simone Caronni - 3:430.40-1 +- Update to 430.40. + +* Fri Jul 12 2019 Simone Caronni - 3:430.34-1 +- Update to 430.34. + +* Wed Jun 12 2019 Simone Caronni - 3:430.26-1 +- Update to 430.26. + +* Sat May 18 2019 Simone Caronni - 3:430.14-1 +- Update to 430.14. + +* Thu May 09 2019 Simone Caronni - 3:418.74-1 +- Update to 418.74. + +* Sun Mar 24 2019 Simone Caronni - 3:418.56-1 +- Update to 418.56. + +* Fri Feb 22 2019 Simone Caronni - 3:418.43-1 +- Update to 418.43. +- Trim changelog. + +* Wed Feb 06 2019 Simone Caronni - 3:418.30-1 +- Update to 418.30. + +* Sun Feb 03 2019 Simone Caronni - 3:415.27-2 +- Do not require nvidia-kmod-common, already required by nvidia-driver-cuda. + +* Thu Jan 17 2019 Simone Caronni - 3:415.27-1 +- Update to 415.27. diff --git a/anda/system/nvidia/nvidia-persistenced/update.rhai b/anda/system/nvidia/nvidia-persistenced/update.rhai new file mode 100644 index 0000000000..e5eff132c0 --- /dev/null +++ b/anda/system/nvidia/nvidia-persistenced/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_driver_version()); diff --git a/anda/system/nvidia/nvidia-settings/anda.hcl b/anda/system/nvidia/nvidia-settings/anda.hcl new file mode 100644 index 0000000000..bfec503ed7 --- /dev/null +++ b/anda/system/nvidia/nvidia-settings/anda.hcl @@ -0,0 +1,8 @@ +project "pkg" { + rpm { + spec = "nvidia-settings.spec" + } + labels = { + subrepo = "nvidia" + } +} \ No newline at end of file diff --git a/anda/system/nvidia/nvidia-settings/nvidia-settings-desktop.patch b/anda/system/nvidia/nvidia-settings/nvidia-settings-desktop.patch new file mode 100644 index 0000000000..9ea63a8c5e --- /dev/null +++ b/anda/system/nvidia/nvidia-settings/nvidia-settings-desktop.patch @@ -0,0 +1,18 @@ +diff -Naur nvidia-settings-530.30.02/doc/nvidia-settings.desktop nvidia-settings-530.30.02.old/doc/nvidia-settings.desktop +--- nvidia-settings-530.30.02/doc/nvidia-settings.desktop 2023-03-08 13:01:39.749406623 +0100 ++++ nvidia-settings-530.30.02.old/doc/nvidia-settings.desktop 2023-03-08 13:02:50.950572460 +0100 +@@ -1,11 +1,11 @@ + [Desktop Entry] + Type=Application +-Encoding=UTF-8 + Name=NVIDIA X Server Settings + Comment=Configure NVIDIA X Server Settings +-Exec=__UTILS_PATH__/nvidia-settings ++Exec=nvidia-settings + Icon=nvidia-settings +-Categories=__NVIDIA_SETTINGS_DESKTOP_CATEGORIES__ ++Categories=System;Settings ++Keywords=nvidia;vulkan;opengl;driver + + # Translation by Marcin Mikołajczak + Name[pl]=Ustawienia serwera X NVIDIA diff --git a/anda/system/nvidia/nvidia-settings/nvidia-settings-ld-dep-remove.patch b/anda/system/nvidia/nvidia-settings/nvidia-settings-ld-dep-remove.patch new file mode 100644 index 0000000000..3af69b6d21 --- /dev/null +++ b/anda/system/nvidia/nvidia-settings/nvidia-settings-ld-dep-remove.patch @@ -0,0 +1,12 @@ +Index: nvidia-settings-545.13/utils.mk +=================================================================== +--- nvidia-settings-545.13.orig/utils.mk ++++ nvidia-settings-545.13/utils.mk +@@ -584,7 +584,6 @@ define READ_ONLY_OBJECT_FROM_FILE_RULE + $(at_if_quiet)$$(MKDIR) $$(OUTPUTDIR) + $(at_if_quiet)cd $$(dir $(1)); \ + $$(call quiet_cmd_no_at,LD) -r -z noexecstack --format=binary \ +- $$(LD_TARGET_EMULATION_FLAG) \ + $$(notdir $(1)) -o $$(OUTPUTDIR_ABSOLUTE)/$$(notdir $$@) + $$(call quiet_cmd,OBJCOPY) \ + --rename-section .data=.rodata,contents,alloc,load,data,readonly \ diff --git a/anda/system/nvidia/nvidia-settings/nvidia-settings-lib-permissions.patch b/anda/system/nvidia/nvidia-settings/nvidia-settings-lib-permissions.patch new file mode 100644 index 0000000000..6f98c875bf --- /dev/null +++ b/anda/system/nvidia/nvidia-settings/nvidia-settings-lib-permissions.patch @@ -0,0 +1,24 @@ +diff -Naur nvidia-settings-525.60.11.old/src/libXNVCtrl/utils.mk nvidia-settings-525.60.11/src/libXNVCtrl/utils.mk +--- nvidia-settings-525.60.11.old/src/libXNVCtrl/utils.mk 2022-12-01 07:56:28.691047034 +0100 ++++ nvidia-settings-525.60.11/src/libXNVCtrl/utils.mk 2022-12-01 07:56:49.882413208 +0100 +@@ -92,7 +92,7 @@ + + INSTALL ?= install + INSTALL_BIN_ARGS ?= -m 755 +-INSTALL_LIB_ARGS ?= -m 644 ++INSTALL_LIB_ARGS ?= -m 755 + INSTALL_DOC_ARGS ?= -m 644 + + M4 ?= m4 +diff -Naur nvidia-settings-525.60.11.old/utils.mk nvidia-settings-525.60.11/utils.mk +--- nvidia-settings-525.60.11.old/utils.mk 2022-12-01 07:56:28.651046343 +0100 ++++ nvidia-settings-525.60.11/utils.mk 2022-12-01 07:56:49.883413225 +0100 +@@ -92,7 +92,7 @@ + + INSTALL ?= install + INSTALL_BIN_ARGS ?= -m 755 +-INSTALL_LIB_ARGS ?= -m 644 ++INSTALL_LIB_ARGS ?= -m 755 + INSTALL_DOC_ARGS ?= -m 644 + + M4 ?= m4 diff --git a/anda/system/nvidia/nvidia-settings/nvidia-settings-libXNVCtrl.patch b/anda/system/nvidia/nvidia-settings/nvidia-settings-libXNVCtrl.patch new file mode 100644 index 0000000000..3661d8c6f5 --- /dev/null +++ b/anda/system/nvidia/nvidia-settings/nvidia-settings-libXNVCtrl.patch @@ -0,0 +1,97 @@ +diff -Naur nvidia-settings-525.60.11.old/src/libXNVCtrl/Makefile nvidia-settings-525.60.11/src/libXNVCtrl/Makefile +--- nvidia-settings-525.60.11.old/src/libXNVCtrl/Makefile 2022-12-01 07:56:28.691047034 +0100 ++++ nvidia-settings-525.60.11/src/libXNVCtrl/Makefile 2022-12-01 08:02:18.889098255 +0100 +@@ -49,9 +49,10 @@ + ############################################################################## + + .PHONY: all +-all: $(LIBXNVCTRL) ++all: $(LIBXNVCTRL_SHARED) + + .PHONY: clean + clean: + rm -rf $(LIBXNVCTRL) *~ \ + $(OUTPUTDIR)/*.o $(OUTPUTDIR)/*.d ++ rm -f $(LIBXNVCTRL_SHARED) $(LIBXNVCTRL_SHARED).* +diff -Naur nvidia-settings-525.60.11.old/src/libXNVCtrl/xnvctrl.mk nvidia-settings-525.60.11/src/libXNVCtrl/xnvctrl.mk +--- nvidia-settings-525.60.11.old/src/libXNVCtrl/xnvctrl.mk 2022-12-01 07:56:28.691047034 +0100 ++++ nvidia-settings-525.60.11/src/libXNVCtrl/xnvctrl.mk 2022-12-01 08:02:18.934099033 +0100 +@@ -39,6 +39,8 @@ + + LIBXNVCTRL = $(OUTPUTDIR)/libXNVCtrl.a + ++LIBXNVCTRL_SHARED = $(OUTPUTDIR)/libXNVCtrl.so ++ + LIBXNVCTRL_SRC = $(XNVCTRL_DIR)/NVCtrl.c + + LIBXNVCTRL_OBJ = $(call BUILD_OBJECT_LIST,$(LIBXNVCTRL_SRC)) +@@ -47,3 +49,9 @@ + + $(LIBXNVCTRL) : $(LIBXNVCTRL_OBJ) + $(call quiet_cmd,AR) ru $@ $(LIBXNVCTRL_OBJ) ++ ++$(LIBXNVCTRL_SHARED): $(LIBXNVCTRL_OBJ) ++ $(RM) $@ $@.* ++ $(CC) -shared -Wl,-soname=$(@F).0 -o $@.0.0.0 $(LDFLAGS) $^ -lXext -lX11 ++ ln -s $(@F).0.0.0 $@.0 ++ ln -s $(@F).0 $@ +diff -Naur nvidia-settings-525.60.11.old/src/Makefile nvidia-settings-525.60.11/src/Makefile +--- nvidia-settings-525.60.11.old/src/Makefile 2022-12-01 08:02:11.280966791 +0100 ++++ nvidia-settings-525.60.11/src/Makefile 2022-12-01 08:02:59.233795388 +0100 +@@ -303,7 +303,11 @@ + all: $(NVIDIA_SETTINGS) $(GTK2LIB) $(GTK3LIB) $(WAYLANDLIB) + + .PHONY: install +-install: NVIDIA_SETTINGS_install NVIDIA_GTKLIB_install WAYLAND_LIB_install ++install: NVIDIA_SETTINGS_install NVIDIA_GTKLIB_install WAYLAND_LIB_install NVIDIA_XNVCTRL_install ++ ++NVIDIA_XNVCTRL_install: ++ $(MKDIR) $(LIBDIR) ++ cp -a $(LIBXNVCTRL_SHARED)* $(LIBDIR) + + .PHONY: NVIDIA_GTKLIB_install + NVIDIA_GTKLIB_install: $(GTK2LIB) $(GTK3LIB) +@@ -329,28 +333,28 @@ + $(INSTALL) $(INSTALL_BIN_ARGS) $< $(BINDIR)/$(notdir $<) + + $(eval $(call DEBUG_INFO_RULES, $(NVIDIA_SETTINGS))) +-$(NVIDIA_SETTINGS).unstripped: $(OBJS) $(LIBXNVCTRL) ++$(NVIDIA_SETTINGS).unstripped: $(OBJS) $(LIBXNVCTRL_SHARED) + $(call quiet_cmd,LINK) $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ +- -rdynamic -o $@ $(OBJS) $(LIBXNVCTRL) $(LIBS) ++ -rdynamic -o $@ $(OBJS) $(LIBXNVCTRL_SHARED) $(LIBS) + + ifdef BUILD_GTK2LIB + $(eval $(call DEBUG_INFO_RULES, $(GTK2LIB))) +-$(GTK2LIB).unstripped: $(LIBXNVCTRL) $(GTK2_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) ++$(GTK2LIB).unstripped: $(LIBXNVCTRL_SHARED) $(GTK2_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) + $(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ + -o $@ \ + -Wl,-soname -Wl,$(GTK2LIB_SONAME) \ + $(GTK2_OBJS) $(IMAGE_OBJS) $(XCP_OBJS) \ +- $(LIBXNVCTRL) $(LIBS) $(GTK2_LIBS) ++ $(LIBXNVCTRL_SHARED) $(LIBS) $(GTK2_LIBS) + endif + + ifdef BUILD_GTK3LIB + $(eval $(call DEBUG_INFO_RULES, $(GTK3LIB))) +-$(GTK3LIB).unstripped: $(LIBXNVCTRL) $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) ++$(GTK3LIB).unstripped: $(LIBXNVCTRL_SHARED) $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) + $(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ + -o $@ \ + -Wl,-soname -Wl,$(GTK3LIB_SONAME) \ + $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) \ +- $(LIBXNVCTRL) $(LIBS) $(GTK3_LIBS) ++ $(LIBXNVCTRL_SHARED) $(LIBS) $(GTK3_LIBS) + endif + + ifdef BUILD_WAYLANDLIB +@@ -379,7 +383,7 @@ + $(OUTPUTDIR)/*.o $(OUTPUTDIR)/*.d \ + $(GTK2LIB) $(GTK3LIB) $(GTK2LIB_DIR) $(GTK3LIB_DIR) \ + $(WAYLANDLIB) $(WAYLANDLIB_DIR) \ +- $(IMAGE_HEADERS) $(LIBXNVCTRL) ++ $(IMAGE_HEADERS) $(LIBXNVCTRL_SHARED) + + ifdef BUILD_GTK2LIB + $(foreach src,$(GTK_SRC), \ diff --git a/anda/system/nvidia/nvidia-settings/nvidia-settings-link-order.patch b/anda/system/nvidia/nvidia-settings/nvidia-settings-link-order.patch new file mode 100644 index 0000000000..b8fffa9e45 --- /dev/null +++ b/anda/system/nvidia/nvidia-settings/nvidia-settings-link-order.patch @@ -0,0 +1,60 @@ +diff -Naur nvidia-settings-525.60.11.old/src/Makefile nvidia-settings-525.60.11/src/Makefile +--- nvidia-settings-525.60.11.old/src/Makefile 2022-12-01 07:56:28.657046446 +0100 ++++ nvidia-settings-525.60.11/src/Makefile 2022-12-01 08:01:09.920906524 +0100 +@@ -60,7 +60,7 @@ + endif + + ifndef GTK2_LDFLAGS +- GTK2_LDFLAGS := -Wl,--no-as-needed $(shell $(PKG_CONFIG) --libs gtk+-2.0) ++ GTK2_LDFLAGS := $(shell $(PKG_CONFIG) --libs gtk+-2.0) + endif + else + GTK2_CFLAGS ?= +@@ -82,7 +82,7 @@ + endif + + ifndef GTK3_LDFLAGS +- GTK3_LDFLAGS := -Wl,--no-as-needed $(shell $(PKG_CONFIG) --libs gtk+-3.0) ++ GTK3_LDFLAGS := $(shell $(PKG_CONFIG) --libs gtk+-3.0) + endif + else + GTK3_CFLAGS ?= +@@ -337,30 +337,29 @@ + $(eval $(call DEBUG_INFO_RULES, $(GTK2LIB))) + $(GTK2LIB).unstripped: $(LIBXNVCTRL) $(GTK2_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) + $(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ +- $(LIBXNVCTRL) $(LIBS) $(GTK2_LIBS) \ +- -Wl,--unresolved-symbols=ignore-all -o $@ \ ++ -o $@ \ + -Wl,-soname -Wl,$(GTK2LIB_SONAME) \ +- $(GTK2_OBJS) $(IMAGE_OBJS) $(XCP_OBJS) ++ $(GTK2_OBJS) $(IMAGE_OBJS) $(XCP_OBJS) \ ++ $(LIBXNVCTRL) $(LIBS) $(GTK2_LIBS) + endif + + ifdef BUILD_GTK3LIB + $(eval $(call DEBUG_INFO_RULES, $(GTK3LIB))) + $(GTK3LIB).unstripped: $(LIBXNVCTRL) $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK) + $(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ +- $(LIBXNVCTRL) $(LIBS) $(GTK3_LIBS) \ +- -Wl,--unresolved-symbols=ignore-all -o $@ \ ++ -o $@ \ + -Wl,-soname -Wl,$(GTK3LIB_SONAME) \ +- $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) ++ $(GTK3_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) \ ++ $(LIBXNVCTRL) $(LIBS) $(GTK3_LIBS) + endif + + ifdef BUILD_WAYLANDLIB + $(eval $(call DEBUG_INFO_RULES, $(WAYLANDLIB))) + $(WAYLANDLIB).unstripped: $(WAYLAND_OBJS) + $(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \ +- $(LIBS) $(WAYLAND_LIBS) \ +- -Wl,--unresolved-symbols=ignore-all -o $@ \ ++ -o $@ \ + -Wl,-soname -Wl,$(WAYLANDLIB_SONAME) \ +- $(WAYLAND_OBJS) ++ $(WAYLAND_OBJS) $(LIBS) $(WAYLAND_LIBS) + + endif + diff --git a/anda/system/nvidia/nvidia-settings/nvidia-settings-load.desktop b/anda/system/nvidia/nvidia-settings/nvidia-settings-load.desktop new file mode 100644 index 0000000000..664e1f5e0e --- /dev/null +++ b/anda/system/nvidia/nvidia-settings/nvidia-settings-load.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=NVIDIA X Server Settings +Comment=Configure NVIDIA X Server Settings +Exec=/usr/bin/nvidia-settings --load-config-only +Terminal=false +Icon=nvidia-settings +Categories=Settings; diff --git a/anda/system/nvidia/nvidia-settings/nvidia-settings.appdata.xml b/anda/system/nvidia/nvidia-settings/nvidia-settings.appdata.xml new file mode 100644 index 0000000000..0240ba817a --- /dev/null +++ b/anda/system/nvidia/nvidia-settings/nvidia-settings.appdata.xml @@ -0,0 +1,57 @@ + + + nvidia-settings.desktop + NVIDIA Graphics Drivers Control Panel + Accelerated Linux Graphics Driver Control Panel + +

+ The NVIDIA Accelerated Linux Graphics Driver brings accelerated 2D + functionality and high-performance OpenGL support to Linux with the + use of NVIDIA graphics processing units. +

+

+ These drivers provide optimized hardware acceleration for OpenGL and X + applications and support nearly all recent NVIDIA GPU products. + The NVIDIA graphics driver uses a Unified Driver Architecture: the single + graphics driver supports all modern NVIDIA GPUs. +

+

+ The nvidia-settings utility is a tool for configuring the NVIDIA graphics + driver. It operates by communicating with the NVIDIA X driver, querying + and updating state as appropriate. This communication is done via the + NV-CONTROL, GLX, XVideo, and RandR X extensions. +

+

+ Values such as brightness and gamma, XVideo attributes, temperature, and + OpenGL settings can be queried and configured via nvidia-settings. +

+
+ + http://www.nvidia.com/ + CC0-1.0 + GPL-2.0+ + NVIDIA Corporation + + + The nvidia-settings utility main window + https://negativo17.org/appstream/nvidia-settings-0.png + + + Monitoring GPU status + https://negativo17.org/appstream/nvidia-settings-1.png + + + Application profiles creation + https://negativo17.org/appstream/nvidia-settings-2.png + + + + NVIDIA + driver + GeForce + Quadro + Vulkan + OpenGL + + negativo17@gmail.com +
diff --git a/anda/system/nvidia/nvidia-settings/nvidia-settings.spec b/anda/system/nvidia/nvidia-settings/nvidia-settings.spec new file mode 100644 index 0000000000..b1c66fbd66 --- /dev/null +++ b/anda/system/nvidia/nvidia-settings/nvidia-settings.spec @@ -0,0 +1,409 @@ +Name: nvidia-settings +Version: 570.86.16 +Release: 1%?dist +Summary: Configure the NVIDIA graphics driver +Epoch: 3 +License: GPLv2+ +URL: http://www.nvidia.com/object/unix.html +ExclusiveArch: x86_64 aarch64 + +Source0: https://download.nvidia.com/XFree86/%{name}/%{name}-%{version}.tar.bz2 +Source1: %{name}-load.desktop +Source2: %{name}.appdata.xml +Patch0: %{name}-desktop.patch +Patch1: %{name}-lib-permissions.patch +Patch2: %{name}-link-order.patch +Patch3: %{name}-libXNVCtrl.patch +Patch4: %{name}-ld-dep-remove.patch + +BuildRequires: desktop-file-utils +BuildRequires: dbus-devel +BuildRequires: gcc +BuildRequires: jansson-devel +BuildRequires: libappstream-glib +BuildRequires: libvdpau-devel >= 1.0 +BuildRequires: libXxf86vm-devel +BuildRequires: libXext-devel +BuildRequires: libXrandr-devel +BuildRequires: libXv-devel +BuildRequires: m4 +BuildRequires: mesa-libEGL-devel +BuildRequires: mesa-libGL-devel +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: vulkan-headers + +Requires: nvidia-libXNVCtrl%{?_isa} = %{?epoch}:%{version}-%{release} +Requires: nvidia-driver%{?_isa} = %{?epoch}:%{version} +# Loaded at runtime +Requires: libvdpau%{?_isa} >= 0.9 + +%description +The %{name} utility is a tool for configuring the NVIDIA graphics +driver. It operates by communicating with the NVIDIA X driver, querying and +updating state as appropriate. + +This communication is done with the NV-CONTROL X extension. + +%package -n nvidia-libXNVCtrl +Summary: Library providing the NV-CONTROL API +Obsoletes: libXNVCtrl < %{?epoch}:%{version}-%{release} +Provides: libXNVCtrl = %{?epoch}:%{version}-%{release} + +%description -n nvidia-libXNVCtrl +This library provides the NV-CONTROL API for communicating with the proprietary +NVidia xorg driver. It is required for proper operation of the %{name} utility. + +%package -n nvidia-libXNVCtrl-devel +Summary: Development files for libXNVCtrl +Requires: nvidia-libXNVCtrl = %{?epoch}:%{version}-%{release} +Requires: libX11-devel + +%description -n nvidia-libXNVCtrl-devel +This devel package contains libraries and header files for +developing applications that use the NV-CONTROL API. + +%prep +%autosetup -p1 + +# Remove bundled jansson +rm -fr src/jansson + +# Remove additional CFLAGS added when enabling DEBUG +sed -i '/+= -O0 -g/d' utils.mk src/libXNVCtrl/utils.mk + +# Change all occurrences of destinations in each utils.mk. +sed -i -e 's|$(PREFIX)/lib|$(PREFIX)/%{_lib}|g' utils.mk src/libXNVCtrl/utils.mk + +%build +export CFLAGS="%{optflags} -fPIC" +export LDFLAGS="%{?__global_ldflags}" +make \ + DEBUG=1 \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + XNVCTRL_LDFLAGS="-L%{_libdir}" + +%install +# Install libXNVCtrl headers +mkdir -p %{buildroot}%{_includedir}/NVCtrl +cp -af src/libXNVCtrl/*.h %{buildroot}%{_includedir}/NVCtrl/ + +# Install main program +%make_install \ + DEBUG=1 \ + NV_USE_BUNDLED_LIBJANSSON=0 \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} + +# Install desktop file +mkdir -p %{buildroot}%{_datadir}/{applications,pixmaps} +desktop-file-install --dir %{buildroot}%{_datadir}/applications/ doc/%{name}.desktop +cp doc/%{name}.png %{buildroot}%{_datadir}/pixmaps/ + +# Install autostart file to load settings at login +install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/xdg/autostart/%{name}-load.desktop + +# install AppData and add modalias provides +mkdir -p %{buildroot}%{_metainfodir}/ +install -p -m 0644 %{SOURCE2} %{buildroot}%{_metainfodir}/ + +%check +desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop +desktop-file-validate %{buildroot}%{_sysconfdir}/xdg/autostart/%{name}-load.desktop +appstream-util validate-relax --nonet %{buildroot}/%{_metainfodir}/%{name}.appdata.xml + +%files +%{_bindir}/%{name} +%{_metainfodir}/%{name}.appdata.xml +%{_datadir}/applications/%{name}.desktop +%{_datadir}/pixmaps/%{name}.png +%{_libdir}/libnvidia-gtk3.so.%{version} +%{_libdir}/libnvidia-wayland-client.so.%{version} +%{_mandir}/man1/%{name}.* +%{_sysconfdir}/xdg/autostart/%{name}-load.desktop + +%files -n nvidia-libXNVCtrl +%license COPYING +%{_libdir}/libXNVCtrl.so.* + +%files -n nvidia-libXNVCtrl-devel +%doc doc/NV-CONTROL-API.txt doc/FRAMELOCK.txt +%{_includedir}/NVCtrl +%{_libdir}/libXNVCtrl.so + +%changelog +* Thu Dec 05 2024 Simone Caronni - 3:565.77-1 +- Update to 565.77. + +* Wed Oct 23 2024 Simone Caronni - 3:565.57.01-1 +- Update to 565.57.01. + +* Wed Aug 21 2024 Simone Caronni - 3:560.35.03-1 +- Update to 560.35.03. + +* Tue Aug 06 2024 Simone Caronni - 3:560.31.02-1 +- Update to 560.31.02. + +* Mon Aug 05 2024 Simone Caronni - 3:560.28.03-1 +- Update to 560.28.03. + +* Tue Jul 02 2024 Simone Caronni - 3:555.58.02-1 +- Update to 555.58.02. + +* Thu Jun 27 2024 Simone Caronni - 3:555.58-1 +- Update to 555.58. + +* Thu Jun 06 2024 Simone Caronni - 3:555.52.04-1 +- Update to 555.52.04. + +* Wed May 22 2024 Simone Caronni - 3:555.42.02-1 +- Update to 555.42.02. + +* Tue Apr 30 2024 Simone Caronni - 3:550.78-2 +- Switch to Nvidia provided tarball. + +* Fri Apr 26 2024 Simone Caronni - 3:550.78-1 +- Update to 550.78. + +* Thu Apr 18 2024 Simone Caronni - 3:550.76-1 +- Update to 550.76. + +* Sun Mar 24 2024 Simone Caronni - 3:550.67-1 +- Update to 550.67. + +* Sat Mar 09 2024 Simone Caronni - 3:550.54.14-3 +- Enable aarch64. + +* Fri Mar 08 2024 Simone Caronni - 3:550.54.14-2 +- Add missing patch. + +* Sun Mar 03 2024 Simone Caronni - 3:550.54.14-1 +- Update to 550.54.14. + +* Tue Feb 06 2024 Simone Caronni - 3:550.40.07-1 +- Update to 550.40.07. + +* Fri Dec 01 2023 Simone Caronni - 3:545.29.06-1 +- Update to 545.29.06. + +* Tue Oct 31 2023 Simone Caronni - 3:545.29.02-1 +- Update to 545.29.02. + +* Wed Oct 18 2023 Simone Caronni - 3:545.23.06-1 +- Update to 545.23.06. + +* Fri Sep 22 2023 Simone Caronni - 3:535.113.01-1 +- Update to 535.113.01. + +* Thu Aug 24 2023 Simone Caronni - 3:535.104.05-1 +- Update to 535.104.05. + +* Wed Aug 09 2023 Simone Caronni - 3:535.98-1 +- Update to 535.98. + +* Wed Jul 19 2023 Simone Caronni - 3:535.86.05-1 +- Update to 535.86.05. + +* Thu Jun 15 2023 Simone Caronni - 3:535.54.03-1 +- Update to 535.54.03. + +* Tue Jun 13 2023 Simone Caronni - 3:535.43.02-1 +- Update to 535.43.02. + +* Fri Mar 24 2023 Simone Caronni - 3:530.41.03-1 +- Update to 530.41.03. + +* Wed Mar 08 2023 Simone Caronni - 3:530.30.02-1 +- Update to 530.30.02. + +* Fri Feb 10 2023 Simone Caronni - 3:525.89.02-1 +- Update to 525.89.02. + +* Fri Jan 20 2023 Simone Caronni - 3:525.85.05-1 +- Update to 525.85.05. + +* Mon Jan 09 2023 Simone Caronni - 3:525.78.01-1 +- Update to 525.78.01. + +* Tue Nov 29 2022 Simone Caronni - 3:525.60.11-1 +- Update to 525.60.11. +- Finally drop gtk2. + +* Thu Oct 13 2022 Simone Caronni - 3:520.56.06-1 +- Update to 520.56.06. + +* Wed Sep 21 2022 Simone Caronni - 3:515.76-1 +- Update to 515.76. + +* Mon Aug 08 2022 Simone Caronni - 3:515.65.01-1 +- Update to 515.65.01. + +* Wed Jun 29 2022 Simone Caronni - 3:515.57-1 +- Update to 515.57. + +* Wed Jun 01 2022 Simone Caronni - 3:515.48.07-1 +- Update to 515.48.07. + +* Thu May 12 2022 Simone Caronni - 3:515.43.04-1 +- Update to 515.43.04. +- Update SPEC file. +- Update patches from upstream. + +* Mon May 02 2022 Simone Caronni - 3:510.68.02-1 +- Update to 510.68.02. + +* Mon Mar 28 2022 Simone Caronni - 3:510.60.02-1 +- Update to 510.60.02. + +* Mon Feb 14 2022 Simone Caronni - 3:510.54-1 +- Update to 510.54. + +* Wed Feb 02 2022 Simone Caronni - 3:510.47.03-1 +- Update to 510.47.03. + +* Tue Dec 14 2021 Simone Caronni - 3:495.46-1 +- Update to 495.46. + +* Tue Nov 02 2021 Simone Caronni - 3:495.44-1 +- Update to 495.44. + +* Tue Nov 02 2021 Simone Caronni - 3:470.82.00-1 +- Update to 470.82.00. + +* Tue Sep 21 2021 Simone Caronni - 3:470.74-1 +- Update to 470.74. + +* Wed Aug 11 2021 Simone Caronni - 3:470.63.01-1 +- Update to 470.63.01. + +* Tue Jul 20 2021 Simone Caronni - 3:470.57.02-1 +- Update to 470.57.02. + +* Wed Jun 30 2021 Simone Caronni - 3:470.42.01-1 +- Update to 470.42.01. + +* Wed May 26 2021 Simone Caronni - 3:465.31-1 +- Update to 465.31. + +* Sat May 01 2021 Simone Caronni - 3:465.27-1 +- Update to 465.27. + +* Sun Apr 18 2021 Simone Caronni - 3:465.24.02-1 +- Update to 465.24.02. +- Switch to github sources. + +* Fri Apr 09 2021 Simone Caronni - 3:465.19.01-1 +- Update to 465.19.01. + +* Fri Mar 19 2021 Simone Caronni - 3:460.67-1 +- Update to 460.67. + +* Mon Mar 01 2021 Simone Caronni - 3:460.56-1 +- Update to 460.56. + +* Wed Jan 27 2021 Simone Caronni - 3:460.39-1 +- Update to 460.39. + +* Thu Jan 7 2021 Simone Caronni - 3:460.32.03-1 +- Update to 460.32.03. + +* Sun Dec 20 2020 Simone Caronni - 3:460.27.04-1 +- Update to 460.27.04. +- Trim changelog. + +* Mon Dec 07 2020 Simone Caronni - 3:455.45.01-2 +- Remove RHEL/CentOS 6 support. +- Do not generate AppData on CentOS/RHEL 7. + +* Wed Nov 18 2020 Simone Caronni - 3:455.45.01-1 +- Update to 455.45.01. + +* Mon Nov 02 2020 Simone Caronni - 3:455.38-1 +- Update to 455.38. + +* Mon Oct 12 2020 Simone Caronni - 3:455.28-1 +- Update to 455.28. + +* Tue Oct 06 2020 Simone Caronni - 3:450.80.02-1 +- Update to 450.80.02. + +* Thu Aug 20 2020 Simone Caronni - 3:450.66-1 +- Update to 450.66. + +* Fri Jul 10 2020 Simone Caronni - 3:450.57-1 +- Update to 450.57. + +* Thu Jun 25 2020 Simone Caronni - 3:440.100-1 +- Update to 440.100. + +* Thu Apr 09 2020 Simone Caronni - 3:440.82-1 +- Update to 440.82. + +* Sat Mar 14 2020 Simone Caronni - 3:440.64-2 +- Add patch for GCC 10. + +* Fri Feb 28 2020 Simone Caronni - 3:440.64-1 +- Update to 440.64. + +* Tue Feb 04 2020 Simone Caronni - 3:440.59-1 +- Update to 440.59. + +* Sat Dec 14 2019 Simone Caronni - 3:440.44-1 +- Update to 440.44. + +* Sat Nov 30 2019 Simone Caronni - 3:440.36-1 +- Update to 440.36. + +* Sun Nov 17 2019 Simone Caronni - 3:440.31-2 +- Fix full libXNVCtrl libraries instead of symlinks in CentOS/RHEL 6/7. + +* Sat Nov 09 2019 Simone Caronni - 3:440.31-1 +- Update to 440.31. + +* Thu Oct 17 2019 Simone Caronni - 3:440.26-1 +- Update to 440.26. + +* Mon Sep 02 2019 Simone Caronni - 3:435.21-1 +- Update to 435.21. + +* Thu Aug 22 2019 Simone Caronni - 3:435.17-1 +- Update to 435.17. + +* Wed Jul 31 2019 Simone Caronni - 3:430.40-1 +- Update to 430.40. +- Update AppData installation. + +* Fri Jul 12 2019 Simone Caronni - 3:430.34-1 +- Update to 430.34. + +* Tue Jun 18 2019 Simone Caronni - 3:430.26-3 +- Fix rpm message when upgrading from Fedora's libXNVCtrl. + +* Sun Jun 16 2019 Simone Caronni - 3:430.26-2 +- Revert libXNVCtrl soname to libXNVCtrl.so.0. + +* Wed Jun 12 2019 Simone Caronni - 3:430.26-1 +- Update to 430.26. +- Update patches. +- Update SPEC file. + +* Sat May 18 2019 Simone Caronni - 3:430.14-1 +- Update to 430.14. + +* Thu May 09 2019 Simone Caronni - 3:418.74-1 +- Update to 418.74. + +* Sun Mar 24 2019 Simone Caronni - 3:418.56-1 +- Update to 418.56. + +* Fri Feb 22 2019 Simone Caronni - 3:418.43-1 +- Update to 418.43. +- Trim changelog. + +* Wed Feb 06 2019 Simone Caronni - 3:418.30-1 +- Update to 418.30. + +* Thu Jan 17 2019 Simone Caronni - 3:415.27-1 +- Update to 415.27. \ No newline at end of file diff --git a/anda/system/nvidia/nvidia-settings/update.rhai b/anda/system/nvidia/nvidia-settings/update.rhai new file mode 100644 index 0000000000..e5eff132c0 --- /dev/null +++ b/anda/system/nvidia/nvidia-settings/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_driver_version()); diff --git a/anda/system/nvidia/nvidia-xconfig/anda.hcl b/anda/system/nvidia/nvidia-xconfig/anda.hcl new file mode 100644 index 0000000000..0008900a30 --- /dev/null +++ b/anda/system/nvidia/nvidia-xconfig/anda.hcl @@ -0,0 +1,8 @@ +project "pkg" { + rpm { + spec = "nvidia-xconfig.spec" + } + labels = { + subrepo = "nvidia" + } +} \ No newline at end of file diff --git a/anda/system/nvidia/nvidia-xconfig/nvidia-xconfig.spec b/anda/system/nvidia/nvidia-xconfig/nvidia-xconfig.spec new file mode 100644 index 0000000000..e0132daca5 --- /dev/null +++ b/anda/system/nvidia/nvidia-xconfig/nvidia-xconfig.spec @@ -0,0 +1,307 @@ +Name: nvidia-xconfig +Version: 570.86.16 +Release: 1%?dist +Summary: NVIDIA X configuration file editor +Epoch: 3 +License: GPLv2+ +URL: http://www.nvidia.com/object/unix.html +ExclusiveArch: x86_64 aarch64 + +Source0: https://download.nvidia.com/XFree86/%{name}/%{name}-%{version}.tar.bz2 + +BuildRequires: gcc +BuildRequires: libpciaccess-devel +BuildRequires: m4 + +Requires: libnvidia-cfg%{?_isa} >= %{?epoch:%{epoch}:}%{version} +Requires: xorg-x11-nvidia%{?_isa} >= %{?epoch:%{epoch}:}%{version} + +%description +%{name} is a command line tool intended to provide basic control over +configuration options available in the NVIDIA X driver. + +%prep +%autosetup -p1 +# Remove additional CFLAGS added when enabling DEBUG +sed -i '/+= -O0 -g/d' utils.mk + +%build +export CFLAGS="%{optflags}" +export LDFLAGS="%{?__global_ldflags}" +make %{?_smp_mflags} \ + DEBUG=1 \ + MANPAGE_GZIP=0 \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + STRIP_CMD=true + +%install +%make_install \ + MANPAGE_GZIP=0 \ + NV_VERBOSE=1 \ + PREFIX=%{_prefix} \ + STRIP_CMD=true + +%files +%license COPYING +%{_bindir}/%{name} +%{_mandir}/man1/%{name}.1* + +%changelog +* Thu Dec 05 2024 Simone Caronni - 3:565.77-1 +- Update to 565.77. + +* Wed Oct 23 2024 Simone Caronni - 3:565.57.01-1 +- Update to 565.57.01. + +* Sun Sep 01 2024 Simone Caronni - 3:560.35.03-2 +- Add requirement on xorg-x11-nvidia so package gets removed as well in case of + uninstallation of X.org components. + +* Wed Aug 21 2024 Simone Caronni - 3:560.35.03-1 +- Update to 560.35.03. + +* Tue Aug 06 2024 Simone Caronni - 3:560.31.02-1 +- Update to 560.31.02. + +* Mon Aug 05 2024 Simone Caronni - 3:560.28.03-1 +- Update to 560.28.03. + +* Tue Jul 02 2024 Simone Caronni - 3:555.58.02-1 +- Update to 555.58.02. +- Require dynamically loaded library libnvidia-cfg. + +* Thu Jun 27 2024 Simone Caronni - 3:555.58-1 +- Update to 555.58. + +* Thu Jun 06 2024 Simone Caronni - 3:555.52.04-1 +- Update to 555.52.04. + +* Wed May 22 2024 Simone Caronni - 3:555.42.02-1 +- Update to 555.42.02. + +* Tue Apr 30 2024 Simone Caronni - 3:550.78-2 +- Switch to Nvidia provided tarball. + +* Fri Apr 26 2024 Simone Caronni - 3:550.78-1 +- Update to 550.78. + +* Thu Apr 18 2024 Simone Caronni - 3:550.76-1 +- Update to 550.76. + +* Sun Mar 24 2024 Simone Caronni - 3:550.67-1 +- Update to 550.67. + +* Sat Mar 09 2024 Simone Caronni - 3:550.54.14-2 +- Enable aarch64. + +* Sun Mar 03 2024 Simone Caronni - 3:550.54.14-1 +- Update to 550.54.14. + +* Tue Feb 06 2024 Simone Caronni - 3:550.40.07-1 +- Update to 550.40.07. + +* Fri Dec 01 2023 Simone Caronni - 3:545.29.06-1 +- Update to 545.29.06. + +* Tue Oct 31 2023 Simone Caronni - 3:545.29.02-1 +- Update to 545.29.02. + +* Wed Oct 18 2023 Simone Caronni - 3:545.23.06-1 +- Update to 545.23.06. + +* Fri Sep 22 2023 Simone Caronni - 3:535.113.01-1 +- Update to 535.113.01. + +* Thu Aug 24 2023 Simone Caronni - 3:535.104.05-1 +- Update to 535.104.05. + +* Wed Aug 09 2023 Simone Caronni - 3:535.98-1 +- Update to 535.98. + +* Wed Jul 19 2023 Simone Caronni - 3:535.86.05-1 +- Update to 535.86.05. + +* Thu Jun 15 2023 Simone Caronni - 3:535.54.03-1 +- Update to 535.54.03. + +* Tue Jun 13 2023 Simone Caronni - 3:535.43.02-1 +- Update to 535.43.02. + +* Fri Mar 24 2023 Simone Caronni - 3:530.41.03-1 +- Update to 530.41.03. + +* Wed Mar 08 2023 Simone Caronni - 3:530.30.02-1 +- Update to 530.30.02. + +* Fri Feb 10 2023 Simone Caronni - 3:525.89.02-1 +- Update to 525.89.02. + +* Fri Jan 20 2023 Simone Caronni - 3:525.85.05-1 +- Update to 525.85.05. + +* Mon Jan 09 2023 Simone Caronni - 3:525.78.01-1 +- Update to 525.78.01. + +* Tue Nov 29 2022 Simone Caronni - 3:525.60.11-1 +- Update to 525.60.11. + +* Thu Oct 13 2022 Simone Caronni - 3:520.56.06-1 +- Update to 520.56.06. + +* Wed Sep 21 2022 Simone Caronni - 3:515.76-1 +- Update to 515.76. + +* Mon Aug 08 2022 Simone Caronni - 3:515.65.01-1 +- Update to 515.65.01. + +* Wed Jun 29 2022 Simone Caronni - 3:515.57-1 +- Update to 515.57. + +* Wed Jun 01 2022 Simone Caronni - 3:515.48.07-1 +- Update to 515.48.07. + +* Thu May 12 2022 Simone Caronni - 3:515.43.04-1 +- Update to 515.43.04. +- Add upstream patch. + +* Mon May 02 2022 Simone Caronni - 3:510.68.02-1 +- Update to 510.68.02. + +* Mon Mar 28 2022 Simone Caronni - 3:510.60.02-1 +- Update to 510.60.02. + +* Mon Feb 14 2022 Simone Caronni - 3:510.54-1 +- Update to 510.54. + +* Wed Feb 02 2022 Simone Caronni - 3:510.47.03-1 +- Update to 510.47.03. + +* Tue Dec 14 2021 Simone Caronni - 3:495.46-1 +- Update to 495.46. + +* Tue Nov 02 2021 Simone Caronni - 3:495.44-1 +- Update to 495.44. + +* Tue Nov 02 2021 Simone Caronni - 3:470.82.00-1 +- Update to 470.82.00. + +* Tue Sep 21 2021 Simone Caronni - 3:470.74-1 +- Update to 470.74. + +* Wed Aug 11 2021 Simone Caronni - 3:470.63.01-1 +- Update to 470.63.01. + +* Tue Jul 20 2021 Simone Caronni - 3:470.57.02-1 +- Update to 470.57.02. + +* Wed Jun 30 2021 Simone Caronni - 3:470.42.01-1 +- Update to 470.42.01. + +* Wed May 26 2021 Simone Caronni - 3:465.31-1 +- Update to 465.31. + +* Sat May 01 2021 Simone Caronni - 3:465.27-1 +- Update to 465.27. + +* Sun Apr 18 2021 Simone Caronni - 3:465.24.02-1 +- Update to 465.24.02. +- Switch to github sources. + +* Fri Apr 09 2021 Simone Caronni - 3:465.19.01-1 +- Update to 465.19.01. + +* Fri Mar 19 2021 Simone Caronni - 3:460.67-1 +- Update to 460.67. + +* Mon Mar 01 2021 Simone Caronni - 3:460.56-1 +- Update to 460.56. + +* Wed Jan 27 2021 Simone Caronni - 3:460.39-1 +- Update to 460.39. + +* Thu Jan 7 2021 Simone Caronni - 3:460.32.03-1 +- Update to 460.32.03. + +* Sun Dec 20 2020 Simone Caronni - 3:460.27.04-1 +- Update to 460.27.04. +- Trim changelog. + +* Mon Dec 07 2020 Simone Caronni - 3:455.45.01-2 +- Remove unused patch, use autoseptup macro. + +* Wed Nov 18 2020 Simone Caronni - 3:455.45.01-1 +- Update to 455.45.01. + +* Mon Nov 02 2020 Simone Caronni - 3:455.38-1 +- Update to 455.38. + +* Mon Oct 12 2020 Simone Caronni - 3:455.28-1 +- Update to 455.28. + +* Tue Oct 06 2020 Simone Caronni - 3:450.80.02-1 +- Update to 450.80.02. + +* Thu Aug 20 2020 Simone Caronni - 3:450.66-1 +- Update to 450.66. + +* Fri Jul 10 2020 Simone Caronni - 3:450.57-1 +- Update to 450.57. + +* Thu Jun 25 2020 Simone Caronni - 3:440.100-1 +- Update to 440.100. + +* Thu Apr 09 2020 Simone Caronni - 3:440.82-1 +- Update to 440.82. + +* Fri Feb 28 2020 Simone Caronni - 3:440.64-1 +- Update to 440.64. + +* Tue Feb 04 2020 Simone Caronni - 3:440.59-1 +- Update to 440.59. + +* Sat Dec 14 2019 Simone Caronni - 3:440.44-1 +- Update to 440.44. + +* Sat Nov 30 2019 Simone Caronni - 3:440.36-1 +- Update to 440.36. + +* Sat Nov 09 2019 Simone Caronni - 3:440.31-1 +- Update to 440.31. + +* Thu Oct 17 2019 Simone Caronni - 3:440.26-1 +- Update to 440.26. + +* Mon Sep 02 2019 Simone Caronni - 3:435.21-1 +- Update to 435.21. + +* Thu Aug 22 2019 Simone Caronni - 3:435.17-1 +- Update to 435.17. + +* Wed Jul 31 2019 Simone Caronni - 3:430.40-1 +- Update to 430.40. + +* Fri Jul 12 2019 Simone Caronni - 3:430.34-1 +- Update to 430.34. + +* Wed Jun 12 2019 Simone Caronni - 3:430.26-1 +- Update to 430.26. + +* Sat May 18 2019 Simone Caronni - 3:430.14-1 +- Update to 430.14. + +* Thu May 09 2019 Simone Caronni - 3:418.74-1 +- Update to 418.74. + +* Sun Mar 24 2019 Simone Caronni - 3:418.56-1 +- Update to 418.56. + +* Fri Feb 22 2019 Simone Caronni - 3:418.43-1 +- Update to 418.43. +- Trim changelog. + +* Wed Feb 06 2019 Simone Caronni - 3:418.30-1 +- Update to 418.30. + +* Thu Jan 17 2019 Simone Caronni - 3:415.27-1 +- Update to 415.27. \ No newline at end of file diff --git a/anda/system/nvidia/nvidia-xconfig/update.rhai b/anda/system/nvidia/nvidia-xconfig/update.rhai new file mode 100644 index 0000000000..e5eff132c0 --- /dev/null +++ b/anda/system/nvidia/nvidia-xconfig/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_driver_version()); diff --git a/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec b/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec index fffa6b4094..cf21027be3 100644 --- a/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec +++ b/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec @@ -1,7 +1,7 @@ -%global commit 4811d5ebde6cf24c1002a73519262357765b306f +%global commit d4150dea3c0e1f60177b3bb47faea114ba221663 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240907 -%global ver v0.6.4.0 +%global commit_date 20250125 +%global ver 0.6.5.0 # We aren't using Mono but RPM expected Mono %global __requires_exclude_from ^/usr/lib/opentabletdriver/.*$ @@ -11,7 +11,7 @@ Name: opentabletdriver-nightly Version: %ver^%commit_date.git~%shortcommit -Release: 2%?dist +Release: 1%?dist Summary: Open source, cross-platform, user-mode tablet driver License: LGPL-3.0-or-later Conflicts: opentabletdriver diff --git a/anda/system/surface-dtx-daemon/surface-dtx-daemon.spec b/anda/system/surface-dtx-daemon/surface-dtx-daemon.spec index 4381810371..73c0e01ebc 100644 --- a/anda/system/surface-dtx-daemon/surface-dtx-daemon.spec +++ b/anda/system/surface-dtx-daemon/surface-dtx-daemon.spec @@ -1,15 +1,17 @@ %global debug_package %{nil} -%global ver 0.3.8-1 +%global ver v0.3.8-1 +%global ver2 %(echo %{ver} | sed 's/^v//') -Name: surface-dtx-daemon +Name: terra-surface-dtx-daemon Version: %(echo %ver | sed 's/-/~/g') -Release: 1%{?dist} +Release: 3%{?dist} Summary: Surface Detachment System (DTX) Daemon License: MIT URL: https://github.com/linux-surface/surface-dtx-daemon -Source: %url/archive/refs/tags/v%ver.tar.gz +Source: %url/archive/refs/tags/%ver.tar.gz BuildRequires: rust cargo dbus-devel anda-srpm-macros cargo-rpm-macros mold Packager: Owen Zimmerman +Obsoletes: surface-dtx-daemon < 0.3.8~1-3 %description Linux User-Space Detachment System (DTX) Daemon for the Surface ACPI Driver @@ -17,7 +19,7 @@ Linux User-Space Detachment System (DTX) Daemon for the Surface ACPI Driver lack of driver-support on the Surface Book 1. This may change in the future. %prep -%autosetup -n %{name}-%{ver} +%autosetup -n surface-dtx-daemon-%{ver2} %cargo_prep_online %build @@ -48,6 +50,19 @@ install -D -m644 "target/_surface-dtx-userd" "%{buildroot}/usr/share/zsh/site-fu install -D -m644 "target/surface-dtx-daemon.fish" "%{buildroot}/usr/share/fish/vendor_completions.d/surface-dtx-daemon.fish" install -D -m644 "target/surface-dtx-userd.fish" "%{buildroot}/usr/share/fish/vendor_completions.d/surface-dtx-userd.fish" +# These systemd services should be included in the preset file for Ultramarine Linux Surface images +%post +%systemd_post surface-dtx-daemon.service +%systemd_user_post surface-dtx-userd.service + +%preun +%systemd_preun surface-dtx-daemon.service +%systemd_user_preun surface-dtx-userd.service + +%postun +%systemd_postun_with_restart surface-dtx-daemon.service +%systemd_user_postun_with_restart surface-dtx-userd.service + %files %config /etc/dbus-1/system.d/org.surface.dtx.conf %config /etc/udev/rules.d/40-surface_dtx.rules @@ -64,5 +79,8 @@ install -D -m644 "target/surface-dtx-userd.fish" "%{buildroot}/usr/share/fish/ve /usr/share/fish/vendor_completions.d/surface-dtx-userd.fish %changelog +* Wed Feb 5 2025 Owen Zimmerman +- rename to terra-surface-dtx-daemon + * Sat Oct 5 2024 Owen Zimmerman - Package surface-dtx-daemon diff --git a/anda/system/uutils-coreutils-replace/.gitignore b/anda/system/uutils-coreutils-replace/.gitignore new file mode 100644 index 0000000000..c32b546f7d --- /dev/null +++ b/anda/system/uutils-coreutils-replace/.gitignore @@ -0,0 +1 @@ +*.tar.gz \ No newline at end of file diff --git a/anda/system/uutils-coreutils-replace/anda.hcl b/anda/system/uutils-coreutils-replace/anda.hcl new file mode 100644 index 0000000000..b19312cdcf --- /dev/null +++ b/anda/system/uutils-coreutils-replace/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "uutils-coreutils-replace.spec" + } + labels { + subrepo = "extras" + } +} diff --git a/anda/system/uutils-coreutils-replace/coreutils-colorls.csh b/anda/system/uutils-coreutils-replace/coreutils-colorls.csh new file mode 100644 index 0000000000..66ec2fa8d2 --- /dev/null +++ b/anda/system/uutils-coreutils-replace/coreutils-colorls.csh @@ -0,0 +1,63 @@ +# skip everything for non-interactive shells +if (! $?prompt) exit + +# color-ls initialization +if ( $?USER_LS_COLORS ) then + if ( "$USER_LS_COLORS" != "" ) then + #when USER_LS_COLORS defined do not override user + #specified LS_COLORS and use them + goto finish + endif +endif + +alias ll 'ls -l' +alias l. 'ls -d .*' +set COLORS=/etc/DIR_COLORS + +if ($?TERM) then + if ( -e "/etc/DIR_COLORS.$TERM" ) then + set COLORS="/etc/DIR_COLORS.$TERM" + endif +endif +if ( -f ~/.dircolors ) set COLORS=~/.dircolors +if ( -f ~/.dir_colors ) set COLORS=~/.dir_colors +if ($?TERM) then + if ( -f ~/.dircolors."$TERM" ) set COLORS=~/.dircolors."$TERM" + if ( -f ~/.dir_colors."$TERM" ) set COLORS=~/.dir_colors."$TERM" +endif +set INCLUDE="`/usr/bin/cat "$COLORS" | /usr/bin/grep '^INCLUDE' | /usr/bin/cut -d ' ' -f2-`" + +if ( ! -e "$COLORS" ) exit + +set _tmp="`/usr/bin/mktemp .colorlsXXX -q --tmpdir=/tmp`" +#if mktemp fails, exit when include was active, otherwise use $COLORS file +if ( "$_tmp" == '' ) then + if ( "$INCLUDE" == '' ) then + eval "`/usr/bin/dircolors -c $COLORS`" + endif + goto cleanup +endif + +if ( "$INCLUDE" != '' ) /usr/bin/cat "$INCLUDE" >> $_tmp +/usr/bin/grep -v '^INCLUDE' "$COLORS" >> $_tmp + +eval "`/usr/bin/dircolors -c $_tmp`" + +/usr/bin/rm -f $_tmp + +if ( "$LS_COLORS" == '' ) exit +cleanup: +set color_none=`/usr/bin/sed -n '/^COLOR.*none/Ip' < $COLORS` +if ( "$color_none" != '' ) then + unset color_none + exit +endif +unset color_none +unset _tmp +unset INCLUDE +unset COLORS + +finish: +alias ll 'ls -l --color=auto' +alias l. 'ls -d .* --color=auto' +alias ls 'ls --color=auto' diff --git a/anda/system/uutils-coreutils-replace/coreutils-colorls.sh b/anda/system/uutils-coreutils-replace/coreutils-colorls.sh new file mode 100644 index 0000000000..5162f1e39c --- /dev/null +++ b/anda/system/uutils-coreutils-replace/coreutils-colorls.sh @@ -0,0 +1,53 @@ +# color-ls initialization + +# Skip all for noninteractive shells. +[ ! -t 0 ] && return + +#when USER_LS_COLORS defined do not override user LS_COLORS, but use them. +if [ -z "$USER_LS_COLORS" ]; then + + alias ll='ls -l' 2>/dev/null + alias l.='ls -d .*' 2>/dev/null + + INCLUDE= + COLORS= + + for colors in "$HOME/.dir_colors.$TERM" "$HOME/.dircolors.$TERM" \ + "$HOME/.dir_colors" "$HOME/.dircolors"; do + [ -e "$colors" ] && COLORS="$colors" && \ + INCLUDE="`/usr/bin/cat "$COLORS" | /usr/bin/grep '^INCLUDE' | /usr/bin/cut -d ' ' -f2-`" && \ + break + done + + [ -z "$COLORS" ] && [ -e "/etc/DIR_COLORS.$TERM" ] && \ + COLORS="/etc/DIR_COLORS.$TERM" + + [ -z "$COLORS" ] && [ -e "/etc/DIR_COLORS" ] && \ + COLORS="/etc/DIR_COLORS" + + # Existence of $COLORS already checked above. + [ -n "$COLORS" ] || return + + if [ -e "$INCLUDE" ]; + then + TMP="`/usr/bin/mktemp .colorlsXXX -q --tmpdir=/tmp`" + [ -z "$TMP" ] && return + + /usr/bin/cat "$INCLUDE" >> $TMP + /usr/bin/grep -v '^INCLUDE' "$COLORS" >> $TMP + + eval "`/usr/bin/dircolors --sh $TMP 2>/dev/null`" + /usr/bin/rm -f $TMP + else + eval "`/usr/bin/dircolors --sh $COLORS 2>/dev/null`" + fi + + [ -z "$LS_COLORS" ] && return + /usr/bin/grep -qi "^COLOR.*none" $COLORS >/dev/null 2>/dev/null && return +fi + +unset TMP COLORS INCLUDE + +alias ll='ls -l --color=auto' 2>/dev/null +alias l.='ls -d .* --color=auto' 2>/dev/null +alias ls='ls --color=auto' 2>/dev/null diff --git a/anda/system/uutils-coreutils-replace/coreutils-fix-metadata.diff b/anda/system/uutils-coreutils-replace/coreutils-fix-metadata.diff new file mode 100644 index 0000000000..2ae3d7b2f0 --- /dev/null +++ b/anda/system/uutils-coreutils-replace/coreutils-fix-metadata.diff @@ -0,0 +1,40 @@ +--- coreutils-*/Cargo.toml ++++ coreutils-*/Cargo.toml +@@ -18,6 +18,7 @@ + categories = ["command-line-utilities"] + rust-version = "1.79.0" + edition = "2021" ++autobins = false + + build = "build.rs" + +@@ -325,7 +326,7 @@ + rand_core = "0.6.4" + rayon = "1.10" + regex = "1.10.4" +-rstest = "0.24.0" ++rstest = ">=0.24" + rust-ini = "0.21.0" + same-file = "1.0.6" + self_cell = "1.0.4" +@@ -514,7 +515,7 @@ + rstest = { workspace = true } + + [target.'cfg(any(target_os = "linux", target_os = "android"))'.dev-dependencies] +-procfs = { version = "0.17", default-features = false } ++procfs = { version = ">=0.16, <0.18", default-features = false } + + [target.'cfg(unix)'.dev-dependencies] + nix = { workspace = true, features = ["process", "signal", "user", "term"] } +@@ -537,11 +538,6 @@ + name = "coreutils" + path = "src/bin/coreutils.rs" +- +-[[bin]] +-name = "uudoc" +-path = "src/bin/uudoc.rs" +-required-features = ["uudoc"] + + # The default release profile. It contains all optimizations, without + # sacrificing debug info. With this profile (like in the standard + # release profile), the debug info and the stack traces will still be available. diff --git a/anda/system/uutils-coreutils-replace/coreutils-fix-seq-neg-num-tests.diff b/anda/system/uutils-coreutils-replace/coreutils-fix-seq-neg-num-tests.diff new file mode 100644 index 0000000000..dbb164e778 --- /dev/null +++ b/anda/system/uutils-coreutils-replace/coreutils-fix-seq-neg-num-tests.diff @@ -0,0 +1,134 @@ +--- a/tests/by-util/test_seq.rs ++++ b/tests/by-util/test_seq.rs +@@ -381,80 +381,80 @@ + #[test] + fn test_width_negative_zero_scientific_notation() { + new_ucmd!() +- .args(&["-w", "-0e0", "1"]) ++ .args(&["-w", "--", "-0e0", "1"]) + .succeeds() + .stdout_only("-0\n01\n"); + new_ucmd!() +- .args(&["-w", "-0e0", "1", "2"]) ++ .args(&["-w", "--", "-0e0", "1", "2"]) + .succeeds() + .stdout_only("-0\n01\n02\n"); + new_ucmd!() +- .args(&["-w", "-0e0", "1", "2.0"]) ++ .args(&["-w", "--", "-0e0", "1", "2.0"]) + .succeeds() + .stdout_only("-0\n01\n02\n"); + + new_ucmd!() +- .args(&["-w", "-0e+1", "1"]) ++ .args(&["-w", "--", "-0e+1", "1"]) + .succeeds() + .stdout_only("-00\n001\n"); + new_ucmd!() +- .args(&["-w", "-0e+1", "1", "2"]) ++ .args(&["-w", "--", "-0e+1", "1", "2"]) + .succeeds() + .stdout_only("-00\n001\n002\n"); + new_ucmd!() +- .args(&["-w", "-0e+1", "1", "2.0"]) ++ .args(&["-w", "--", "-0e+1", "1", "2.0"]) + .succeeds() + .stdout_only("-00\n001\n002\n"); + + new_ucmd!() +- .args(&["-w", "-0.000e0", "1"]) ++ .args(&["-w", "--", "-0.000e0", "1"]) + .succeeds() + .stdout_only("-0.000\n01.000\n"); + new_ucmd!() +- .args(&["-w", "-0.000e0", "1", "2"]) ++ .args(&["-w", "--", "-0.000e0", "1", "2"]) + .succeeds() + .stdout_only("-0.000\n01.000\n02.000\n"); + new_ucmd!() +- .args(&["-w", "-0.000e0", "1", "2.0"]) ++ .args(&["-w", "--", "-0.000e0", "1", "2.0"]) + .succeeds() + .stdout_only("-0.000\n01.000\n02.000\n"); + + new_ucmd!() +- .args(&["-w", "-0.000e-2", "1"]) ++ .args(&["-w", "--", "-0.000e-2", "1"]) + .succeeds() + .stdout_only("-0.00000\n01.00000\n"); + new_ucmd!() +- .args(&["-w", "-0.000e-2", "1", "2"]) ++ .args(&["-w", "--", "-0.000e-2", "1", "2"]) + .succeeds() + .stdout_only("-0.00000\n01.00000\n02.00000\n"); + new_ucmd!() +- .args(&["-w", "-0.000e-2", "1", "2.0"]) ++ .args(&["-w", "--", "-0.000e-2", "1", "2.0"]) + .succeeds() + .stdout_only("-0.00000\n01.00000\n02.00000\n"); + + new_ucmd!() +- .args(&["-w", "-0.000e5", "1"]) ++ .args(&["-w", "--", "-0.000e5", "1"]) + .succeeds() + .stdout_only("-000000\n0000001\n"); + new_ucmd!() +- .args(&["-w", "-0.000e5", "1", "2"]) ++ .args(&["-w", "--", "-0.000e5", "1", "2"]) + .succeeds() + .stdout_only("-000000\n0000001\n0000002\n"); + new_ucmd!() +- .args(&["-w", "-0.000e5", "1", "2.0"]) ++ .args(&["-w", "--", "-0.000e5", "1", "2.0"]) + .succeeds() + .stdout_only("-000000\n0000001\n0000002\n"); + + new_ucmd!() +- .args(&["-w", "-0.000e5", "1"]) ++ .args(&["-w", "--", "-0.000e5", "1"]) + .succeeds() + .stdout_only("-000000\n0000001\n"); + new_ucmd!() +- .args(&["-w", "-0.000e5", "1", "2"]) ++ .args(&["-w", "--", "-0.000e5", "1", "2"]) + .succeeds() + .stdout_only("-000000\n0000001\n0000002\n"); + new_ucmd!() +- .args(&["-w", "-0.000e5", "1", "2.0"]) ++ .args(&["-w", "--", "-0.000e5", "1", "2.0"]) + .succeeds() + .stdout_only("-000000\n0000001\n0000002\n"); + } +@@ -493,7 +493,7 @@ + #[test] + fn test_width_negative_decimal_notation() { + new_ucmd!() +- .args(&["-w", "-.1", ".1", ".11"]) ++ .args(&["-w", "--", "-.1", ".1", ".11"]) + .succeeds() + .stdout_only("-0.1\n00.0\n00.1\n"); + } +@@ -501,19 +501,19 @@ + #[test] + fn test_width_negative_scientific_notation() { + new_ucmd!() +- .args(&["-w", "-1e-3", "1"]) ++ .args(&["-w", "--", "-1e-3", "1"]) + .succeeds() + .stdout_only("-0.001\n00.999\n"); + new_ucmd!() +- .args(&["-w", "-1.e-3", "1"]) ++ .args(&["-w", "--", "-1.e-3", "1"]) + .succeeds() + .stdout_only("-0.001\n00.999\n"); + new_ucmd!() +- .args(&["-w", "-1.0e-4", "1"]) ++ .args(&["-w", "--", "-1.0e-4", "1"]) + .succeeds() + .stdout_only("-0.00010\n00.99990\n"); + new_ucmd!() +- .args(&["-w", "-.1e2", "10", "100"]) ++ .args(&["-w", "--", "-.1e2", "10", "100"]) + .succeeds() + .stdout_only( + "-010 diff --git a/anda/system/uutils-coreutils-replace/update.rhai b/anda/system/uutils-coreutils-replace/update.rhai new file mode 100644 index 0000000000..69aaaf4ad9 --- /dev/null +++ b/anda/system/uutils-coreutils-replace/update.rhai @@ -0,0 +1 @@ +rpm.version(crates("coreutils")); diff --git a/anda/system/uutils-coreutils-replace/uutils-coreutils-replace.spec b/anda/system/uutils-coreutils-replace/uutils-coreutils-replace.spec new file mode 100644 index 0000000000..5a86590f55 --- /dev/null +++ b/anda/system/uutils-coreutils-replace/uutils-coreutils-replace.spec @@ -0,0 +1,118 @@ +%global coreutils_ver 9.3 +%if 0%{?fedora} >= 42 +### Temporary solution, will be fixed on newer Oniguruma releases. +%global build_cflags %{__build_flags_lang_c} %{?_distro_extra_cflags} -std=c18 -std=gnu18 +%endif + +Name: uutils-coreutils-replace +Version: 0.0.29 +Release: 1%?dist +Summary: Cross-platform Rust rewrite of the GNU coreutils +License: MIT +URL: https://github.com/uutils/coreutils +Source0: %url/archive/refs/tags/%version.tar.gz +Source1: https://src.fedoraproject.org/rpms/coreutils/raw/rawhide/f/coreutils-colorls.sh +Source2: https://src.fedoraproject.org/rpms/coreutils/raw/rawhide/f/coreutils-colorls.csh +Source3: https://raw.githubusercontent.com/coreutils/coreutils/refs/heads/master/src/dircolors.hin +Patch0: coreutils-fix-metadata.diff +Patch1: coreutils-fix-seq-neg-num-tests.diff +Patch3: https://src.fedoraproject.org/rpms/coreutils/raw/rawhide/f/coreutils-8.32-DIR_COLORS.patch +BuildRequires: anda-srpm-macros +BuildRequires: cargo +BuildRequires: clang-devel +BuildRequires: gcc-c++ +BuildRequires: libselinux-devel +BuildRequires: make +BuildRequires: rustfmt +BuildRequires: selinux-policy-devel +Requires: glibc +Provides: coreutils +Provides: coreutils-common +Conflicts: uutils-coreutils + +%description +uutils coreutils is a cross-platform reimplementation of the GNU coreutils in Rust. +While all programs have been implemented, some options might be missing or different +behavior might be experienced. + +This package replaces the GNU coreutils commands. + + +%prep +%setup -q -n coreutils-%version +%cargo_prep_online +cp %{SOURCE3} . +sed dircolors.hin \ + -e 's| 00;36$| 01;36|' \ + > DIR_COLORS +sed dircolors.hin \ + -e 's| 01;31$| 00;31|' \ + -e 's| 01;35$| 00;35|' \ + > DIR_COLORS.lightbgcolor +%autopatch -p1 + +%build + +%install +export CARGOFLAGS="-vv --verbose" +install -p -c -Dm644 %{SOURCE1} %{buildroot}%{_sysconfdir}/profile.d/colorls.sh +install -p -c -Dm644 %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d/colorls.csh +install -p -c -Dm644 DIR_COLORS{,.lightbgcolor} %{buildroot}%{_sysconfdir} +/usr/bin/rm dircolors.hin DIR_COLORS DIR_COLORS.lightbgcolor +%make_install PROFILE_CMD='--profile=rpm' MULTICALL=n DESTDIR=%buildroot BUILDDIR=target/rpm PREFIX=%_prefix SELINUX_ENABLED=1 SKIP_UTILS='hostname kill more uptime' & +wait +ln -sr hashsum %{buildroot}%{_bindir}/sha1sum +ln -sr hashsum %{buildroot}%{_bindir}/sha224sum +ln -sr hashsum %{buildroot}%{_bindir}/sha256sum +ln -sr hashsum %{buildroot}%{_bindir}/sha384sum +ln -sr hashsum %{buildroot}%{_bindir}/sha512sum +ln -sr hashsum %{buildroot}%{_bindir}/sha3-224sum +ln -sr hashsum %{buildroot}%{_bindir}/sha3-256sum +ln -sr hashsum %{buildroot}%{_bindir}/sha3-384sum +ln -sr hashsum %{buildroot}%{_bindir}/sha3-512sum +ln -sr hashsum %{buildroot}%{_bindir}/sha3sum +ln -sr hashsum %{buildroot}%{_bindir}/shake128sum +ln -sr hashsum %{buildroot}%{_bindir}/shake256sum + +%define cmds() $(echo %1{runcon,arch,base{32,64,name,nc},cat,ch{grp,mod,own,root,con},cksum,comm,cp,csplit,cut,date,dd,df,dir{,colors,name},du,echo,env,expand,expr,factor,false,fmt,fold,groups,hashsum,head,host{id},id,install,join,link,ln,logname,ls,mk{dir,fifo,nod,temp},mv,nice,nl,nohup,nproc,numfmt,od,paste,pathchk,pinky,pr,printenv,printf,ptx,pwd,readlink,realpath,rm{,dir},seq,shred,shuf,sleep,sort,split,stat,stdbuf,sum,sync,tac,tail,tee,test,timeout,touch,tr,true,truncate,tsort,tty,uname,un{expand,iq,link},users,vdir,wc,who{,ami},yes}%2) +cat < files.txt +%cmds %_bindir/ "" +%_bindir/[ +%cmds %_datadir/bash-completion/completions/ "" +%cmds %_datadir/fish/vendor_completions.d/ .fish +%cmds %_mandir/man1/ .1.gz +%cmds %_datadir/zsh/site-functions/_ "" +EOF +sed -i 's@ @\n@g' files.txt + +# remove buildroot from paths in files.txt +sed -i "s@%buildroot@/@g" files.txt + + +echo "=== Files ===" +cat files.txt + +%files -f files.txt +%doc README.md +%license LICENSE +%{_bindir}/sha1sum +%{_bindir}/sha224sum +%{_bindir}/sha256sum +%{_bindir}/sha384sum +%{_bindir}/sha512sum +%{_bindir}/sha3-224sum +%{_bindir}/sha3-256sum +%{_bindir}/sha3-384sum +%{_bindir}/sha3-512sum +%{_bindir}/sha3sum +%{_bindir}/shake128sum +%{_bindir}/shake256sum +%config(noreplace) %{_sysconfdir}/DIR_COLORS +%config(noreplace) %{_sysconfdir}/DIR_COLORS.lightbgcolor +%{_sysconfdir}/profile.d/colorls.sh +%{_sysconfdir}/profile.d/colorls.csh + + + +%changelog +%autochangelog diff --git a/anda/fusion/v4l2-relayd/anda.hcl b/anda/system/v4l2-relayd/anda.hcl similarity index 100% rename from anda/fusion/v4l2-relayd/anda.hcl rename to anda/system/v4l2-relayd/anda.hcl diff --git a/anda/system/v4l2-relayd/update.rhai b/anda/system/v4l2-relayd/update.rhai new file mode 100644 index 0000000000..9ab74d8ee1 --- /dev/null +++ b/anda/system/v4l2-relayd/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gitlab_commit("gitlab.com", "24306684", "main")); +if rpm.changed() { + rpm.global("commit_date", date()); + rpm.release(); +} diff --git a/anda/fusion/v4l2-relayd/v4l2-relayd.preset b/anda/system/v4l2-relayd/v4l2-relayd.preset similarity index 100% rename from anda/fusion/v4l2-relayd/v4l2-relayd.preset rename to anda/system/v4l2-relayd/v4l2-relayd.preset diff --git a/anda/fusion/v4l2-relayd/v4l2-relayd.spec b/anda/system/v4l2-relayd/v4l2-relayd.spec similarity index 81% rename from anda/fusion/v4l2-relayd/v4l2-relayd.spec rename to anda/system/v4l2-relayd/v4l2-relayd.spec index 17f0e794cf..a29e83df0f 100644 --- a/anda/fusion/v4l2-relayd/v4l2-relayd.spec +++ b/anda/system/v4l2-relayd/v4l2-relayd.spec @@ -1,17 +1,14 @@ -%global commit 2e4d5c9ba53bfe8cfe16ea91932c8e5ecb090a87 -%global commitdate 20220126 +%global commit 35a06d89747ff31fbaabf744b7dae585bfa86723 +%global commit_date 20220126 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: v4l2-relayd Summary: Utils for relaying the video stream between two video devices -Version: %{commitdate}.%{shortcommit} -Release: 1%{?dist} +Version: %{commit_date}.%{shortcommit} +Release: 1%?dist License: GPL-2.0-only Source0: https://gitlab.com/vicamo/v4l2-relayd//-/archive/%{commit}/%{name}-%{shortcommit}.tar.gz Source1: v4l2-relayd.preset -### RPM Fusion | [v4l2-relayd] Set output stream to I420 -## https://lists.rpmfusion.org/archives/list/rpmfusion-commits@lists.rpmfusion.org/thread/VUMAJABDYISF3UVOSESSFYQBAMQK7VKY/ -Patch0: 0000-set-new-offset.patch BuildRequires: systemd-rpm-macros BuildRequires: gcc BuildRequires: g++ diff --git a/anda/system/v4l2loopback/anda.hcl b/anda/system/v4l2loopback/anda.hcl new file mode 100644 index 0000000000..14eb49b671 --- /dev/null +++ b/anda/system/v4l2loopback/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "v4l2loopback.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/system/v4l2loopback/modprobe-d-98-v4l2loopback.conf b/anda/system/v4l2loopback/modprobe-d-98-v4l2loopback.conf new file mode 100644 index 0000000000..de440a13a7 --- /dev/null +++ b/anda/system/v4l2loopback/modprobe-d-98-v4l2loopback.conf @@ -0,0 +1 @@ +options v4l2loopback exclusive_caps=1 card_label="OBS Virtual Camera" diff --git a/anda/system/v4l2loopback/modules-load-d-v4l2loopback.conf b/anda/system/v4l2loopback/modules-load-d-v4l2loopback.conf new file mode 100644 index 0000000000..d394e47bc8 --- /dev/null +++ b/anda/system/v4l2loopback/modules-load-d-v4l2loopback.conf @@ -0,0 +1 @@ +v4l2loopback diff --git a/anda/system/v4l2loopback/update.rhai b/anda/system/v4l2loopback/update.rhai new file mode 100644 index 0000000000..fd9dec4b15 --- /dev/null +++ b/anda/system/v4l2loopback/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("umlaeute/v4l2loopback")); diff --git a/anda/system/v4l2loopback/v4l2loopback.spec b/anda/system/v4l2loopback/v4l2loopback.spec new file mode 100644 index 0000000000..9bfe51ec06 --- /dev/null +++ b/anda/system/v4l2loopback/v4l2loopback.spec @@ -0,0 +1,95 @@ +%global buildforkernels akmod +%global debug_package %{nil} + +%global commit 2c9b67072b15d903fecde67c7f269abeafee4c25 +%global commitdate 20230503 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + + +%global prjname v4l2loopback + +Name: %{prjname} +Summary: Utils for V4L2 loopback devices +Version: 0.13.2 +Release: 2%{?dist} +License: GPLv2+ +URL: https://github.com/umlaeute/v4l2loopback +Source0: %{url}/archive/v%{version}/%{prjname}-%{version}.tar.gz + +Source1: modprobe-d-98-v4l2loopback.conf +Source2: modules-load-d-v4l2loopback.conf +BuildRequires: gcc +BuildRequires: make +BuildRequires: help2man +BuildRequires: systemd-rpm-macros +BuildRequires: kmodtool +BuildRequires: systemd-rpm-macros +Requires: kmod-v4l2loopback = %{version}-%{release} +Provides: %{name}-kmod-common = %{version}-%{release} +# Required for akmod-v4l2loopback +Requires: help2man +### For compatibility with older names +Provides: %{name}-utils = %{version}-%{release} +Obsoletes: %{name}-utils < 0.12.5-2 + +%{expand:%(kmodtool --target %{_target_cpu} --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +Allows creation of virtual video devices. Normal (v4l2) applications will read these devices as if they were ordinary video devices. + +%package kmod +Summary: Kernel module (kmod) for %{name} +Requires: kernel-devel + +%description kmod +This module allows you to create "virtual video devices". Normal (v4l2) applications will read these devices as if they were ordinary video devices, but the video will not be read from e.g. a capture card but instead it is generated by another application. + + + +%prep +%{?kmodtool_check} +kmodtool --target %{_target_cpu} --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%autosetup -p1 -n %{name}-%{version} + +# for kernel_version in %{?kernel_versions} ; do +# cp -av ./* _kmod_build_${kernel_version%%___*} +# done + +%build + +for kernel_version in %{?kernel_versions} ; do + make V=1 %{?_smp_mflags} M=${PWD}/_kmod_build_${kernel_version%%___*} VERSION=v%{version} v4l2loopback +done + +%{set_build_flags} +%make_build utils + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -D -m 755 v4l2loopback.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + chmod a+x %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/*.ko +done + +%{set_build_flags} +%make_build utils + +%{?akmod_install} +make V=1 %{?_smp_mflags} install-utils DESTDIR=%{buildroot} PREFIX=%{_prefix} +make V=1 %{?_smp_mflags} install-man DESTDIR=%{buildroot} PREFIX=%{_prefix} +install -D -m 0644 %{SOURCE1} %{buildroot}%{_modprobedir}/98-v4l2loopback.conf +install -D -m 0644 %{SOURCE2} %{buildroot}%{_modulesloaddir}/v4l2loopback.conf + + + +%files +%doc README.md AUTHORS NEWS +%license COPYING +%attr(0755,root,root) %{_bindir}/v4l2loopback-ctl +%attr(0644,root,root) %{_mandir}/man1/v4l2loopback-ctl.1* +%{_modprobedir}/98-v4l2loopback.conf +%{_modulesloaddir}/v4l2loopback.conf + +%changelog +%autochangelog diff --git a/anda/system/wl-kmod/anda.hcl b/anda/system/wl-kmod/anda.hcl new file mode 100644 index 0000000000..41761c4b5a --- /dev/null +++ b/anda/system/wl-kmod/anda.hcl @@ -0,0 +1,9 @@ +project pkg { + arches = ["x86_64", "i386"] + rpm { + spec = "wl-kmod.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/system/wl-kmod/wl-kmod-002_kernel_3.18_null_pointer.patch b/anda/system/wl-kmod/wl-kmod-002_kernel_3.18_null_pointer.patch new file mode 100644 index 0000000000..6623d2291b --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-002_kernel_3.18_null_pointer.patch @@ -0,0 +1,17 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c 2015-09-19 00:47:30.000000000 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c 2015-10-17 18:26:48.174207806 +0200 +@@ -2165,8 +2165,13 @@ + wlif = WL_DEV_IF(dev); + wl = WL_INFO(dev); + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0) ++ skb->prev = NULL; ++#endif + if (WL_ALL_PASSIVE_ENAB(wl) || (WL_RTR() && WL_CONFIG_SMP())) { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) + skb->prev = NULL; ++#endif + + TXQ_LOCK(wl); + diff --git a/anda/system/wl-kmod/wl-kmod-003_gcc_4.9_remove_TIME_DATE_macros.patch b/anda/system/wl-kmod/wl-kmod-003_gcc_4.9_remove_TIME_DATE_macros.patch new file mode 100644 index 0000000000..5e0d239f8b --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-003_gcc_4.9_remove_TIME_DATE_macros.patch @@ -0,0 +1,29 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c 2015-10-17 18:26:48.174207806 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c 2015-10-18 13:28:13.013818788 +0200 +@@ -724,7 +724,11 @@ + WL_ALL_PASSIVE_ENAB(wl) ? ", Passive Mode" : "", EPI_VERSION_STR); + + #ifdef BCMDBG ++#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9) + printf(" (Compiled in " SRCBASE " at " __TIME__ " on " __DATE__ ")"); ++#else ++ printf(" (Compiled in " SRCBASE ")"); ++#endif + #endif + printf("\n"); + +@@ -2053,8 +2057,13 @@ + void + wl_dump_ver(wl_info_t *wl, struct bcmstrbuf *b) + { ++#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9) + bcm_bprintf(b, "wl%d: %s %s version %s\n", wl->pub->unit, + __DATE__, __TIME__, EPI_VERSION_STR); ++#else ++ bcm_bprintf(b, "wl%d: version %s\n", wl->pub->unit, ++ EPI_VERSION_STR); ++#endif + } + + #if defined(BCMDBG) diff --git a/anda/system/wl-kmod/wl-kmod-004_kernel_4.3_rdtscl_to_rdtsc.patch b/anda/system/wl-kmod/wl-kmod-004_kernel_4.3_rdtscl_to_rdtsc.patch new file mode 100644 index 0000000000..4856a56ec6 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-004_kernel_4.3_rdtscl_to_rdtsc.patch @@ -0,0 +1,15 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/shared/linux_osl.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/shared/linux_osl.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/shared/linux_osl.c 2015-09-19 00:47:30.000000000 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/shared/linux_osl.c 2015-12-21 10:01:33.892793431 +0100 +@@ -932,7 +932,11 @@ + uint cycles; + + #if defined(__i386__) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) ++ cycles = (u32) rdtsc(); ++#else + rdtscl(cycles); ++#endif + #else + cycles = 0; + #endif diff --git a/anda/system/wl-kmod/wl-kmod-005_kernel_4.7_IEEE80211_BAND_to_NL80211_BAND.patch b/anda/system/wl-kmod/wl-kmod-005_kernel_4.7_IEEE80211_BAND_to_NL80211_BAND.patch new file mode 100644 index 0000000000..2256e7c72a --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-005_kernel_4.7_IEEE80211_BAND_to_NL80211_BAND.patch @@ -0,0 +1,142 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c 2015-09-19 00:47:30.000000000 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c 2016-08-15 01:58:51.610278898 +0200 +@@ -235,6 +235,25 @@ + }; + #endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) ++#define CHAN2G(_channel, _freq, _flags) { \ ++ .band = NL80211_BAND_2GHZ, \ ++ .center_freq = (_freq), \ ++ .hw_value = (_channel), \ ++ .flags = (_flags), \ ++ .max_antenna_gain = 0, \ ++ .max_power = 30, \ ++} ++ ++#define CHAN5G(_channel, _flags) { \ ++ .band = NL80211_BAND_5GHZ, \ ++ .center_freq = 5000 + (5 * (_channel)), \ ++ .hw_value = (_channel), \ ++ .flags = (_flags), \ ++ .max_antenna_gain = 0, \ ++ .max_power = 30, \ ++} ++#else + #define CHAN2G(_channel, _freq, _flags) { \ + .band = IEEE80211_BAND_2GHZ, \ + .center_freq = (_freq), \ +@@ -252,6 +271,7 @@ + .max_antenna_gain = 0, \ + .max_power = 30, \ + } ++#endif + + #define RATE_TO_BASE100KBPS(rate) (((rate) * 10) / 2) + #define RATETAB_ENT(_rateid, _flags) \ +@@ -379,7 +399,11 @@ + }; + + static struct ieee80211_supported_band __wl_band_2ghz = { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) ++ .band = NL80211_BAND_2GHZ, ++#else + .band = IEEE80211_BAND_2GHZ, ++#endif + .channels = __wl_2ghz_channels, + .n_channels = ARRAY_SIZE(__wl_2ghz_channels), + .bitrates = wl_g_rates, +@@ -387,7 +411,11 @@ + }; + + static struct ieee80211_supported_band __wl_band_5ghz_a = { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) ++ .band = NL80211_BAND_5GHZ, ++#else + .band = IEEE80211_BAND_5GHZ, ++#endif + .channels = __wl_5ghz_a_channels, + .n_channels = ARRAY_SIZE(__wl_5ghz_a_channels), + .bitrates = wl_a_rates, +@@ -395,7 +423,11 @@ + }; + + static struct ieee80211_supported_band __wl_band_5ghz_n = { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) ++ .band = NL80211_BAND_5GHZ, ++#else + .band = IEEE80211_BAND_5GHZ, ++#endif + .channels = __wl_5ghz_n_channels, + .n_channels = ARRAY_SIZE(__wl_5ghz_n_channels), + .bitrates = wl_a_rates, +@@ -1876,8 +1908,13 @@ + wdev->wiphy->max_num_pmkids = WL_NUM_PMKIDS_MAX; + #endif + wdev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) ++ wdev->wiphy->bands[NL80211_BAND_2GHZ] = &__wl_band_2ghz; ++ wdev->wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_a; ++#else + wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = &__wl_band_2ghz; + wdev->wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_a; ++#endif + wdev->wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM; + wdev->wiphy->cipher_suites = __wl_cipher_suites; + wdev->wiphy->n_cipher_suites = ARRAY_SIZE(__wl_cipher_suites); +@@ -2000,7 +2037,11 @@ + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39) + freq = ieee80211_channel_to_frequency(notif_bss_info->channel, + (notif_bss_info->channel <= CH_MAX_2G_CHANNEL) ? ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) ++ NL80211_BAND_2GHZ : NL80211_BAND_5GHZ); ++#else + IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ); ++#endif + #else + freq = ieee80211_channel_to_frequency(notif_bss_info->channel); + #endif +@@ -2116,7 +2157,11 @@ + return err; + } + chan = wf_chspec_ctlchan(chanspec); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) ++ band = (chan <= CH_MAX_2G_CHANNEL) ? NL80211_BAND_2GHZ : NL80211_BAND_5GHZ; ++#else + band = (chan <= CH_MAX_2G_CHANNEL) ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ; ++#endif + freq = ieee80211_channel_to_frequency(chan, band); + channel = ieee80211_get_channel(wiphy, freq); + cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL); +@@ -2250,10 +2295,18 @@ + join_params->params.chanspec_list[0] = + ieee80211_frequency_to_channel(chan->center_freq); + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) ++ if (chan->band == NL80211_BAND_2GHZ) { ++#else + if (chan->band == IEEE80211_BAND_2GHZ) { ++#endif + chanspec |= WL_CHANSPEC_BAND_2G; + } ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) ++ else if (chan->band == NL80211_BAND_5GHZ) { ++#else + else if (chan->band == IEEE80211_BAND_5GHZ) { ++#endif + chanspec |= WL_CHANSPEC_BAND_5G; + } + else { +@@ -2885,7 +2938,11 @@ + + if (phy == 'n' || phy == 'a' || phy == 'v') { + wiphy = wl_to_wiphy(wl); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) ++ wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_n; ++#else + wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_n; ++#endif + } + + return err; diff --git a/anda/system/wl-kmod/wl-kmod-006_gcc_6_fix_indentation_warnings.patch b/anda/system/wl-kmod/wl-kmod-006_gcc_6_fix_indentation_warnings.patch new file mode 100644 index 0000000000..82be172f1b --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-006_gcc_6_fix_indentation_warnings.patch @@ -0,0 +1,16 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c 2015-10-18 13:28:13.013818000 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c 2016-08-26 08:24:32.558643780 +0200 +@@ -775,9 +775,9 @@ + pci_read_config_dword(pdev, 0x40, &val); + if ((val & 0x0000ff00) != 0) + pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); +- bar1_size = pci_resource_len(pdev, 2); +- bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2), +- bar1_size); ++ bar1_size = pci_resource_len(pdev, 2); ++ bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2), ++ bar1_size); + wl = wl_attach(pdev->vendor, pdev->device, pci_resource_start(pdev, 0), PCI_BUS, pdev, + pdev->irq, bar1_addr, bar1_size); + diff --git a/anda/system/wl-kmod/wl-kmod-007_kernel_4.8_add_cfg80211_scan_info_struct.patch b/anda/system/wl-kmod/wl-kmod-007_kernel_4.8_add_cfg80211_scan_info_struct.patch new file mode 100644 index 0000000000..51de0841c0 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-007_kernel_4.8_add_cfg80211_scan_info_struct.patch @@ -0,0 +1,51 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c 2016-09-07 22:38:13.303835653 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c 2016-09-07 22:54:53.550730661 +0200 +@@ -2439,8 +2439,17 @@ + s32 err = 0; + + if (wl->scan_request) { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ struct cfg80211_scan_info info = { ++ .aborted = true, ++ }; ++#endif + WL_DBG(("%s: Aborting scan\n", __FUNCTION__)); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ cfg80211_scan_done(wl->scan_request, &info); ++#else + cfg80211_scan_done(wl->scan_request, true); ++#endif + wl->scan_request = NULL; + } + +@@ -2541,7 +2550,14 @@ + + scan_done_out: + if (wl->scan_request) { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ struct cfg80211_scan_info info = { ++ .aborted = false, ++ }; ++ cfg80211_scan_done(wl->scan_request, &info); ++#else + cfg80211_scan_done(wl->scan_request, false); ++#endif + wl->scan_request = NULL; + } + rtnl_unlock(); +@@ -2970,7 +2986,14 @@ + s32 err = 0; + + if (wl->scan_request) { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ struct cfg80211_scan_info info = { ++ .aborted = true, ++ }; ++ cfg80211_scan_done(wl->scan_request, &info); ++#else + cfg80211_scan_done(wl->scan_request, true); ++#endif + wl->scan_request = NULL; + } + diff --git a/anda/system/wl-kmod/wl-kmod-008_fix_kernel_warnings.patch b/anda/system/wl-kmod/wl-kmod-008_fix_kernel_warnings.patch new file mode 100644 index 0000000000..86b4af2c05 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-008_fix_kernel_warnings.patch @@ -0,0 +1,165 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c 2016-09-07 22:54:53.550730661 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c 2017-02-08 19:35:44.320100235 +0100 +@@ -2005,7 +2005,7 @@ + + if (dtoh32(bi->length) > WL_BSS_INFO_MAX) { + WL_DBG(("Beacon is larger than buffer. Discarding\n")); +- return err; ++ return -E2BIG; + } + notif_bss_info = kzalloc(sizeof(*notif_bss_info) + sizeof(*mgmt) - sizeof(u8) + + WL_BSS_INFO_MAX, GFP_KERNEL); +@@ -2029,9 +2029,15 @@ + beacon_proberesp->capab_info = cpu_to_le16(bi->capability); + wl_rst_ie(wl); + +- wl_mrg_ie(wl, ((u8 *) bi) + bi->ie_offset, bi->ie_length); +- wl_cp_ie(wl, beacon_proberesp->variable, WL_BSS_INFO_MAX - +- offsetof(struct wl_cfg80211_bss_info, frame_buf)); ++ err = wl_mrg_ie(wl, ((u8 *) bi) + bi->ie_offset, bi->ie_length); ++ if (err) ++ goto inform_single_bss_out; ++ ++ err = wl_cp_ie(wl, beacon_proberesp->variable, WL_BSS_INFO_MAX - ++ offsetof(struct wl_cfg80211_bss_info, frame_buf)); ++ if (err) ++ goto inform_single_bss_out; ++ + notif_bss_info->frame_len = offsetof(struct ieee80211_mgmt, u.beacon.variable) + + wl_get_ielen(wl); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39) +@@ -2047,14 +2053,14 @@ + #endif + if (freq == 0) { + WL_ERR(("Invalid channel, fail to chcnage channel to freq\n")); +- kfree(notif_bss_info); +- return -EINVAL; ++ err = -EINVAL; ++ goto inform_single_bss_out; + } + channel = ieee80211_get_channel(wiphy, freq); + if (unlikely(!channel)) { + WL_ERR(("ieee80211_get_channel error\n")); +- kfree(notif_bss_info); +- return -EINVAL; ++ err = -EINVAL; ++ goto inform_single_bss_out; + } + + WL_DBG(("SSID : \"%s\", rssi %d, channel %d, capability : 0x04%x, bssid %pM\n", +@@ -2062,28 +2068,35 @@ + mgmt->u.beacon.capab_info, &bi->BSSID)); + + signal = notif_bss_info->rssi * 100; +- cbss = cfg80211_inform_bss_frame(wiphy, channel, mgmt, +- le16_to_cpu(notif_bss_info->frame_len), signal, GFP_KERNEL); +- if (unlikely(!cbss)) { +- WL_ERR(("cfg80211_inform_bss_frame error\n")); +- kfree(notif_bss_info); +- return -EINVAL; ++ if (!wl->scan_request) { ++ cbss = cfg80211_inform_bss_frame(wiphy, channel, mgmt, ++ le16_to_cpu(notif_bss_info->frame_len), signal, GFP_KERNEL); ++ if (unlikely(!cbss)) { ++ WL_ERR(("cfg80211_inform_bss_frame error\n")); ++ err = -ENOMEM; ++ goto inform_single_bss_out; ++ } + } +- +- notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset); +- notify_ielen = le32_to_cpu(bi->ie_length); ++ else { ++ notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset); ++ notify_ielen = le32_to_cpu(bi->ie_length); + #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) +- cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet), +- 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int, +- (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL); +-#else +- cbss = cfg80211_inform_bss(wiphy, channel, CFG80211_BSS_FTYPE_UNKNOWN, (const u8 *)(bi->BSSID.octet), +- 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int, +- (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL); +-#endif +- +- if (unlikely(!cbss)) +- return -ENOMEM; ++ cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet), ++ 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int, ++ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL); ++#else ++ cbss = cfg80211_inform_bss(wiphy, channel, ++ wl->active_scan ? CFG80211_BSS_FTYPE_PRESP : CFG80211_BSS_FTYPE_BEACON, ++ (const u8 *)(bi->BSSID.octet), ++ 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int, ++ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL); ++#endif ++ if (unlikely(!cbss)) { ++ WL_ERR(("cfg80211_inform_bss error\n")); ++ err = -ENOMEM; ++ goto inform_single_bss_out; ++ } ++ } + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0) + cfg80211_put_bss(wiphy, cbss); +@@ -2091,6 +2104,7 @@ + cfg80211_put_bss(cbss); + #endif + ++inform_single_bss_out: + kfree(notif_bss_info); + + return err; +@@ -2369,6 +2383,9 @@ + if (err) + goto update_bss_info_out; + ++ bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid, ++ ssid->SSID, ssid->SSID_len, WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS); ++ + ie = ((u8 *)bi) + bi->ie_offset; + ie_len = bi->ie_length; + } else { +@@ -2381,12 +2398,20 @@ + ie_len = bss->len_information_elements; + #endif + wl->conf->channel = *bss->channel; ++ } ++ ++ if (bss) { + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0) + cfg80211_put_bss(wiphy, bss); + #else + cfg80211_put_bss(bss); + #endif + } ++ else { ++ WL_DBG(("Could not update BSS\n")); ++ err = -EINVAL; ++ goto update_bss_info_out; ++ } + + tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM); + if (tim) { +@@ -2413,10 +2438,17 @@ + struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl); + s32 err = 0; + +- wl_get_assoc_ies(wl); ++ err = wl_get_assoc_ies(wl); ++ if (err) ++ return err; ++ + memcpy(wl->profile->bssid, &e->addr, ETHER_ADDR_LEN); + memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN); +- wl_update_bss_info(wl); ++ ++ err = wl_update_bss_info(wl); ++ if (err) ++ return err; ++ + cfg80211_roamed(ndev, + #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) + &wl->conf->channel, diff --git a/anda/system/wl-kmod/wl-kmod-009_kernel_4.11_remove_last_rx_in_net_device_struct.patch b/anda/system/wl-kmod/wl-kmod-009_kernel_4.11_remove_last_rx_in_net_device_struct.patch new file mode 100644 index 0000000000..4d46d0496a --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-009_kernel_4.11_remove_last_rx_in_net_device_struct.patch @@ -0,0 +1,27 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c 2017-02-08 19:35:44.320100235 +0100 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c 2017-04-10 14:23:40.909434506 +0200 +@@ -39,6 +39,10 @@ + #include + #include + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) ++#include ++#endif ++ + #define EVENT_TYPE(e) dtoh32((e)->event_type) + #define EVENT_FLAGS(e) dtoh16((e)->flags) + #define EVENT_STATUS(e) dtoh32((e)->status) +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c 2016-08-26 08:24:32.558643000 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c 2017-04-10 14:23:40.884434339 +0200 +@@ -2929,7 +2929,9 @@ + if (skb == NULL) return; + + skb->dev = wl->monitor_dev; ++#if LINUX_VERSION_CODE <= KERNEL_VERSION(4, 10, 0) + skb->dev->last_rx = jiffies; ++#endif + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22) + skb_reset_mac_header(skb); + #else diff --git a/anda/system/wl-kmod/wl-kmod-010_kernel_4.12_add_cfg80211_roam_info_struct.patch b/anda/system/wl-kmod/wl-kmod-010_kernel_4.12_add_cfg80211_roam_info_struct.patch new file mode 100644 index 0000000000..cdc3ffe714 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-010_kernel_4.12_add_cfg80211_roam_info_struct.patch @@ -0,0 +1,70 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c 2017-04-10 14:23:40.909434506 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c 2017-07-03 11:32:04.271398087 +0200 +@@ -54,7 +54,11 @@ + #endif + + static s32 wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev, +- enum nl80211_iftype type, u32 *flags, struct vif_params *params); ++ enum nl80211_iftype type, ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0) ++ u32 *flags, ++#endif ++ struct vif_params *params); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0) + static s32 + wl_cfg80211_scan(struct wiphy *wiphy, +@@ -499,8 +503,11 @@ + + static s32 + wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev, +- enum nl80211_iftype type, u32 *flags, +- struct vif_params *params) ++ enum nl80211_iftype type, ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0) ++ u32 *flags, ++#endif ++ struct vif_params *params) + { + struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy); + struct wireless_dev *wdev; +@@ -2440,6 +2447,9 @@ + const wl_event_msg_t *e, void *data) + { + struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) ++ struct cfg80211_roam_info roam_info = {}; ++#endif + s32 err = 0; + + err = wl_get_assoc_ies(wl); +@@ -2453,13 +2463,28 @@ + if (err) + return err; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) ++ roam_info.channel = &wl->conf->channel; ++ roam_info.bssid = (u8*)&wl->bssid; ++ roam_info.req_ie = conn_info->req_ie; ++ roam_info.req_ie_len = conn_info->req_ie_len; ++ roam_info.resp_ie = conn_info->resp_ie; ++ roam_info.resp_ie_len = conn_info->resp_ie_len; ++#endif ++ + cfg80211_roamed(ndev, ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0) + #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) + &wl->conf->channel, + #endif + (u8 *)&wl->bssid, + conn_info->req_ie, conn_info->req_ie_len, +- conn_info->resp_ie, conn_info->resp_ie_len, GFP_KERNEL); ++ conn_info->resp_ie, conn_info->resp_ie_len, ++#else ++ &roam_info, ++#endif ++ GFP_KERNEL); ++ + WL_DBG(("Report roaming result\n")); + + set_bit(WL_STATUS_CONNECTED, &wl->status); diff --git a/anda/system/wl-kmod/wl-kmod-011_kernel_4.14_new_kernel_read_function_prototype.patch b/anda/system/wl-kmod/wl-kmod-011_kernel_4.14_new_kernel_read_function_prototype.patch new file mode 100644 index 0000000000..9de5f531c8 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-011_kernel_4.14_new_kernel_read_function_prototype.patch @@ -0,0 +1,15 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/shared/linux_osl.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/shared/linux_osl.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/shared/linux_osl.c 2017-06-03 15:26:57.092475595 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/shared/linux_osl.c 2017-11-24 10:45:55.764626061 +0100 +@@ -1080,7 +1080,11 @@ + if (!image) + return 0; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) ++ rdlen = kernel_read(fp, buf, len, &fp->f_pos); ++#else + rdlen = kernel_read(fp, fp->f_pos, buf, len); ++#endif + if (rdlen > 0) + fp->f_pos += rdlen; + diff --git a/anda/system/wl-kmod/wl-kmod-012_kernel_4.15_new_timer.patch b/anda/system/wl-kmod/wl-kmod-012_kernel_4.15_new_timer.patch new file mode 100644 index 0000000000..533e7b420b --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-012_kernel_4.15_new_timer.patch @@ -0,0 +1,47 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c 2017-06-03 15:26:57.094475000 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c 2018-02-15 00:54:30.184690464 +0100 +@@ -93,7 +93,11 @@ + + #include + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) ++static void wl_timer(struct timer_list *tl); ++#else + static void wl_timer(ulong data); ++#endif + static void _wl_timer(wl_timer_t *t); + static struct net_device *wl_alloc_linux_if(wl_if_t *wlif); + +@@ -2311,10 +2315,17 @@ + atomic_dec(&t->wl->callbacks); + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) ++static void ++wl_timer(struct timer_list *tl) ++{ ++ wl_timer_t *t = (wl_timer_t *)tl; ++#else + static void + wl_timer(ulong data) + { + wl_timer_t *t = (wl_timer_t *)data; ++#endif + + if (!WL_ALL_PASSIVE_ENAB(t->wl)) + _wl_timer(t); +@@ -2366,9 +2377,13 @@ + + bzero(t, sizeof(wl_timer_t)); + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) ++ timer_setup(&t->timer, wl_timer, 0); ++#else + init_timer(&t->timer); + t->timer.data = (ulong) t; + t->timer.function = wl_timer; ++#endif + t->wl = wl; + t->fn = fn; + t->arg = arg; diff --git a/anda/system/wl-kmod/wl-kmod-013_gcc8_fix_bounds_check_warnings.patch b/anda/system/wl-kmod/wl-kmod-013_gcc8_fix_bounds_check_warnings.patch new file mode 100644 index 0000000000..625326c99f --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-013_gcc8_fix_bounds_check_warnings.patch @@ -0,0 +1,18 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c 2018-02-15 00:54:30.184690464 +0100 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c 2018-04-18 08:07:30.068342420 +0200 +@@ -2986,7 +2986,14 @@ + } + + ASSERT(strlen(wlif->name) > 0); ++#if __GNUC__ < 8 + strncpy(wlif->dev->name, wlif->name, strlen(wlif->name)); ++#else ++ // Should have been: ++ // strncpy(wlif->dev->name, wlif->name, sizeof(wlif->dev->name) - 1); ++ // wlif->dev->name[sizeof(wlif->dev->name) - 1] = '\0'; ++ memcpy(wlif->dev->name, wlif->name, strlen(wlif->name)); ++#endif + + wl->monitor_dev = dev; + if (wl->monitor_type == 1) diff --git a/anda/system/wl-kmod/wl-kmod-014_kernel_read_pos_increment_fix.patch b/anda/system/wl-kmod/wl-kmod-014_kernel_read_pos_increment_fix.patch new file mode 100644 index 0000000000..55b0c964e9 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-014_kernel_read_pos_increment_fix.patch @@ -0,0 +1,20 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/shared/linux_osl.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/shared/linux_osl.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/shared/linux_osl.c 2017-11-24 10:45:55.764626000 +0100 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/shared/linux_osl.c 2019-01-26 19:33:46.518389607 +0100 +@@ -1075,6 +1075,7 @@ + osl_os_get_image_block(char *buf, int len, void *image) + { + struct file *fp = (struct file *)image; ++ loff_t pos = fp->f_pos; + int rdlen; + + if (!image) +@@ -1085,7 +1086,7 @@ + #else + rdlen = kernel_read(fp, fp->f_pos, buf, len); + #endif +- if (rdlen > 0) ++ if ((rdlen > 0) && (fp->f_pos == pos)) + fp->f_pos += rdlen; + + return rdlen; diff --git a/anda/system/wl-kmod/wl-kmod-015_kernel_5.1_get_ds_removed.patch b/anda/system/wl-kmod/wl-kmod-015_kernel_5.1_get_ds_removed.patch new file mode 100644 index 0000000000..92947ab577 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-015_kernel_5.1_get_ds_removed.patch @@ -0,0 +1,30 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c 2017-07-03 11:32:04.271398000 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c 2019-04-14 17:35:23.565460847 +0200 +@@ -490,7 +490,11 @@ + ifr.ifr_data = (caddr_t)&ioc; + + fs = get_fs(); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0) ++ set_fs(KERNEL_DS); ++#else + set_fs(get_ds()); ++#endif + #if defined(WL_USE_NETDEV_OPS) + err = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE); + #else +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_iw.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_iw.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_iw.c 2017-06-03 15:26:57.095475000 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_iw.c 2019-05-30 01:29:32.766280636 +0200 +@@ -117,7 +117,11 @@ + ifr.ifr_data = (caddr_t) &ioc; + + fs = get_fs(); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0) ++ set_fs(KERNEL_DS); ++#else + set_fs(get_ds()); ++#endif + #if defined(WL_USE_NETDEV_OPS) + ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE); + #else diff --git a/anda/system/wl-kmod/wl-kmod-016_fix_unsupported_mesh_point.patch b/anda/system/wl-kmod/wl-kmod-016_fix_unsupported_mesh_point.patch new file mode 100644 index 0000000000..db407b15a2 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-016_fix_unsupported_mesh_point.patch @@ -0,0 +1,117 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c 2019-04-14 17:35:23.565460847 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c 2019-06-01 14:37:25.675650990 +0200 +@@ -522,6 +522,10 @@ + switch (type) { + case NL80211_IFTYPE_MONITOR: + case NL80211_IFTYPE_WDS: ++ case NL80211_IFTYPE_MESH_POINT: ++ case NL80211_IFTYPE_P2P_DEVICE: ++ case NL80211_IFTYPE_P2P_CLIENT: ++ case NL80211_IFTYPE_P2P_GO: + WL_ERR(("type (%d) : currently we do not support this type\n", + type)); + return -EOPNOTSUPP; +@@ -532,6 +536,10 @@ + wl->conf->mode = WL_MODE_BSS; + infra = 1; + break; ++ case NL80211_IFTYPE_AP: ++ wl->conf->mode = WL_MODE_AP; ++ ap = 1; ++ break; + default: + return -EINVAL; + } +@@ -1893,6 +1901,8 @@ + return NL80211_IFTYPE_STATION; + case WL_MODE_IBSS: + return NL80211_IFTYPE_ADHOC; ++ case WL_MODE_AP: ++ return NL80211_IFTYPE_AP; + default: + return NL80211_IFTYPE_UNSPECIFIED; + } +@@ -1900,6 +1910,46 @@ + return err; + } + ++static const struct ieee80211_txrx_stypes ++wl_txrx_stypes[NUM_NL80211_IFTYPES] = { ++ [NL80211_IFTYPE_STATION] = { ++ .tx = 0xffff, ++ .rx = BIT(IEEE80211_STYPE_ACTION >> 4) | ++ BIT(IEEE80211_STYPE_PROBE_REQ >> 4) ++ }, ++ [NL80211_IFTYPE_AP] = { ++ .tx = 0xffff, ++ .rx = BIT(IEEE80211_STYPE_ASSOC_REQ >> 4) | ++ BIT(IEEE80211_STYPE_REASSOC_REQ >> 4) | ++ BIT(IEEE80211_STYPE_PROBE_REQ >> 4) | ++ BIT(IEEE80211_STYPE_DISASSOC >> 4) | ++ BIT(IEEE80211_STYPE_AUTH >> 4) | ++ BIT(IEEE80211_STYPE_DEAUTH >> 4) | ++ BIT(IEEE80211_STYPE_ACTION >> 4) ++ } ++}; ++ ++static const struct ieee80211_iface_limit wl_limits[] = { ++ { ++ .max = 1, ++ .types = BIT(NL80211_IFTYPE_STATION), ++ }, ++ { ++ .max = 1, ++ .types = BIT(NL80211_IFTYPE_AP), ++ }, ++}; ++ ++static const struct ieee80211_iface_combination wl_combination [] = { ++ { ++ .limits = wl_limits, ++ .n_limits = ARRAY_SIZE(wl_limits), ++ .max_interfaces = 2, ++ .num_different_channels = 1, ++ .beacon_int_infra_match = true, ++ }, ++}; ++ + static s32 wl_alloc_wdev(struct device *dev, struct wireless_dev **rwdev) + { + struct wireless_dev *wdev; +@@ -1922,7 +1972,10 @@ + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33) + wdev->wiphy->max_num_pmkids = WL_NUM_PMKIDS_MAX; + #endif +- wdev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC); ++ wdev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC) | BIT(NL80211_IFTYPE_AP); ++ wdev->wiphy->iface_combinations = wl_combination; ++ wdev->wiphy->n_iface_combinations = ARRAY_SIZE(wl_combination); ++ wdev->wiphy->mgmt_stypes = wl_txrx_stypes; + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) + wdev->wiphy->bands[NL80211_BAND_2GHZ] = &__wl_band_2ghz; + wdev->wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_a; +@@ -2944,15 +2997,22 @@ + switch (iftype) { + case NL80211_IFTYPE_MONITOR: + case NL80211_IFTYPE_WDS: ++ case NL80211_IFTYPE_MESH_POINT: ++ case NL80211_IFTYPE_P2P_DEVICE: ++ case NL80211_IFTYPE_P2P_CLIENT: ++ case NL80211_IFTYPE_P2P_GO: + WL_ERR(("type (%d) : currently we do not support this mode\n", + iftype)); +- err = -EINVAL; ++ err = -EOPNOTSUPP; + return err; + case NL80211_IFTYPE_ADHOC: + break; + case NL80211_IFTYPE_STATION: + infra = 1; + break; ++ case NL80211_IFTYPE_AP: ++ ap = 1; ++ break; + default: + err = -EINVAL; + WL_ERR(("invalid type (%d)\n", iftype)); diff --git a/anda/system/wl-kmod/wl-kmod-017_fix_gcc_fallthrough_warning.patch b/anda/system/wl-kmod/wl-kmod-017_fix_gcc_fallthrough_warning.patch new file mode 100644 index 0000000000..e5f34b76dd --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-017_fix_gcc_fallthrough_warning.patch @@ -0,0 +1,11 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c 2019-06-01 14:37:25.675650990 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c 2019-10-16 16:33:57.319456346 +0200 +@@ -856,6 +856,7 @@ + break; + case NL80211_AUTHTYPE_NETWORK_EAP: + WL_DBG(("network eap\n")); ++ __attribute__((__fallthrough__)); /* [[fallthrough]]; falls through */ + default: + val = 2; + WL_ERR(("invalid auth type (%d)\n", sme->auth_type)); diff --git a/anda/system/wl-kmod/wl-kmod-018_kernel_5.6_adaptations.patch b/anda/system/wl-kmod/wl-kmod-018_kernel_5.6_adaptations.patch new file mode 100644 index 0000000000..8f59570635 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-018_kernel_5.6_adaptations.patch @@ -0,0 +1,59 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/shared/linux_osl.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/shared/linux_osl.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/shared/linux_osl.c 2019-01-26 19:33:46.518389000 +0100 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/shared/linux_osl.c 2020-03-19 10:16:53.597986455 +0100 +@@ -946,7 +946,11 @@ + void * + osl_reg_map(uint32 pa, uint size) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0) + return (ioremap_nocache((unsigned long)pa, (unsigned long)size)); ++#else ++ return (ioremap((unsigned long)pa, (unsigned long)size)); ++#endif + } + + void +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c 2018-04-18 13:53:37.484164000 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c 2020-03-19 10:24:18.154395810 +0100 +@@ -586,7 +586,11 @@ + } + wl->bcm_bustype = bustype; + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0) + if ((wl->regsva = ioremap_nocache(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) { ++#else ++ if ((wl->regsva = ioremap(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) { ++#endif + WL_ERROR(("wl%d: ioremap() failed\n", unit)); + goto fail; + } +@@ -780,7 +784,11 @@ + if ((val & 0x0000ff00) != 0) + pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); + bar1_size = pci_resource_len(pdev, 2); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0) + bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2), ++#else ++ bar1_addr = (uchar *)ioremap(pci_resource_start(pdev, 2), ++#endif + bar1_size); + wl = wl_attach(pdev->vendor, pdev->device, pci_resource_start(pdev, 0), PCI_BUS, pdev, + pdev->irq, bar1_addr, bar1_size); +@@ -3373,10 +3381,16 @@ + } + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0) + static const struct file_operations wl_fops = { + .owner = THIS_MODULE, + .read = wl_proc_read, + .write = wl_proc_write, ++#else ++static const struct proc_ops wl_fops = { ++ .proc_read = wl_proc_read, ++ .proc_write = wl_proc_write, ++#endif + }; + #endif + diff --git a/anda/system/wl-kmod/wl-kmod-019_kernel_5.9_segment_eq_removed.patch b/anda/system/wl-kmod/wl-kmod-019_kernel_5.9_segment_eq_removed.patch new file mode 100644 index 0000000000..592be9318d --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-019_kernel_5.9_segment_eq_removed.patch @@ -0,0 +1,15 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c 2020-03-19 10:24:18.154395810 +0100 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c 2020-11-11 13:39:00.579562572 +0100 +@@ -1659,7 +1659,11 @@ + goto done2; + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0) ++ if (uaccess_kernel()) ++#else + if (segment_eq(get_fs(), KERNEL_DS)) ++#endif + buf = ioc.buf; + + else if (ioc.buf) { diff --git a/anda/system/wl-kmod/wl-kmod-020_kernel_5.10_get_set_fs_removed.patch b/anda/system/wl-kmod/wl-kmod-020_kernel_5.10_get_set_fs_removed.patch new file mode 100644 index 0000000000..2fd0d8a332 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-020_kernel_5.10_get_set_fs_removed.patch @@ -0,0 +1,180 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c 2019-10-16 16:33:57.319456000 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c 2020-12-29 21:44:24.206777104 +0100 +@@ -38,6 +38,9 @@ + #include + #include + #include ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) ++#include ++#endif + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) + #include +@@ -475,13 +478,16 @@ + static s32 + wl_dev_ioctl(struct net_device *dev, u32 cmd, void *arg, u32 len) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 10, 0) + struct ifreq ifr; + struct wl_ioctl ioc; + mm_segment_t fs; + s32 err = 0; ++#endif + + BUG_ON(len < sizeof(int)); + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 10, 0) + memset(&ioc, 0, sizeof(ioc)); + ioc.cmd = cmd; + ioc.buf = arg; +@@ -503,6 +509,9 @@ + set_fs(fs); + + return err; ++#else ++ return wlc_ioctl_internal(dev, cmd, arg, len); ++#endif + } + + static s32 +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wlc_pub.h hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wlc_pub.h +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wlc_pub.h 2017-06-03 15:26:57.095475000 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wlc_pub.h 2020-12-29 21:55:44.922067533 +0100 +@@ -24,6 +24,9 @@ + + #include + #include ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) ++#include ++#endif + #include "proto/802.11.h" + #include "proto/bcmevent.h" + +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_iw.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_iw.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_iw.c 2019-05-30 01:32:34.421426000 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_iw.c 2020-12-29 21:47:36.457836102 +0100 +@@ -37,6 +37,9 @@ + + #include + #include ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) ++#include ++#endif + + extern bool wl_iw_conn_status_str(uint32 event_type, uint32 status, + uint32 reason, char* stringBuf, uint buflen); +@@ -103,6 +106,7 @@ + int len + ) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 10, 0) + struct ifreq ifr; + wl_ioctl_t ioc; + mm_segment_t fs; +@@ -130,6 +134,9 @@ + set_fs(fs); + + return ret; ++#else ++ return wlc_ioctl_internal(dev, cmd, arg, len); ++#endif + } + + static int +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c 2020-11-11 13:39:00.579562572 +0100 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.c 2020-12-29 21:55:44.899067286 +0100 +@@ -1659,6 +1659,7 @@ + goto done2; + } + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 10, 0) + #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0) + if (uaccess_kernel()) + #else +@@ -1667,6 +1668,9 @@ + buf = ioc.buf; + + else if (ioc.buf) { ++#else ++ if (ioc.buf) { ++#endif + if (!(buf = (void *) MALLOC(wl->osh, MAX(ioc.len, WLC_IOCTL_MAXLEN)))) { + bcmerror = BCME_NORESOURCE; + goto done2; +@@ -1687,7 +1691,11 @@ + WL_UNLOCK(wl); + + done1: ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 10, 0) + if (ioc.buf && (ioc.buf != buf)) { ++#else ++ if (ioc.buf) { ++#endif + if (copy_to_user(ioc.buf, buf, ioc.len)) + bcmerror = BCME_BADADDR; + MFREE(wl->osh, buf, MAX(ioc.len, WLC_IOCTL_MAXLEN)); +@@ -1697,6 +1705,39 @@ + ASSERT(VALID_BCMERROR(bcmerror)); + if (bcmerror != 0) + wl->pub->bcmerror = bcmerror; ++ return (OSL_ERROR(bcmerror)); ++} ++ ++int ++wlc_ioctl_internal(struct net_device *dev, int cmd, void *buf, int len) ++{ ++ wl_info_t *wl; ++ wl_if_t *wlif; ++ int bcmerror; ++ ++ if (!dev) ++ return -ENETDOWN; ++ ++ wl = WL_INFO(dev); ++ wlif = WL_DEV_IF(dev); ++ if (wlif == NULL || wl == NULL || wl->dev == NULL) ++ return -ENETDOWN; ++ ++ bcmerror = 0; ++ ++ WL_TRACE(("wl%d: wlc_ioctl_internal: cmd 0x%x\n", wl->pub->unit, cmd)); ++ ++ WL_LOCK(wl); ++ if (!capable(CAP_NET_ADMIN)) { ++ bcmerror = BCME_EPERM; ++ } else { ++ bcmerror = wlc_ioctl(wl->wlc, cmd, buf, len, wlif->wlcif); ++ } ++ WL_UNLOCK(wl); ++ ++ ASSERT(VALID_BCMERROR(bcmerror)); ++ if (bcmerror != 0) ++ wl->pub->bcmerror = bcmerror; + return (OSL_ERROR(bcmerror)); + } + +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.h hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.h +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.h 2017-06-03 15:26:57.095475000 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_linux.h 2020-12-29 21:55:44.953067865 +0100 +@@ -22,6 +22,9 @@ + #define _wl_linux_h_ + + #include ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) ++#include ++#endif + + typedef struct wl_timer { + struct timer_list timer; +@@ -187,6 +190,9 @@ + extern int __devinit wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent); + extern void wl_free(wl_info_t *wl); + extern int wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) ++extern int wlc_ioctl_internal(struct net_device *dev, int cmd, void *buf, int len); ++#endif + extern struct net_device * wl_netdev_get(wl_info_t *wl); + + #endif diff --git a/anda/system/wl-kmod/wl-kmod-021_kernel_5.17_adaptation.patch b/anda/system/wl-kmod/wl-kmod-021_kernel_5.17_adaptation.patch new file mode 100644 index 0000000000..89dc1583ca --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-021_kernel_5.17_adaptation.patch @@ -0,0 +1,78 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_iw.h hybrid-v35_64-nodebug-pcoem-6_30_223_271-021_kernel_5.17_adaptation/src/wl/sys/wl_iw.h +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_iw.h 2020-12-29 18:29:39.463940664 +0100 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271-021_kernel_5.17_adaptation/src/wl/sys/wl_iw.h 2022-04-01 10:25:05.515054893 +0200 +@@ -70,7 +70,9 @@ + #define WL_IW_RSSI_EXCELLENT -57 + #define WL_IW_RSSI_INVALID 0 + #define MAX_WX_STRING 80 ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0) + #define isprint(c) bcm_isprint(c) ++#endif + #define WL_IW_SET_ACTIVE_SCAN (SIOCIWFIRSTPRIV+1) + #define WL_IW_GET_RSSI (SIOCIWFIRSTPRIV+3) + #define WL_IW_SET_PASSIVE_SCAN (SIOCIWFIRSTPRIV+5) +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c hybrid-v35_64-nodebug-pcoem-6_30_223_271-021_kernel_5.17_adaptation/src/wl/sys/wl_linux.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_linux.c 2020-12-29 21:55:44.899067286 +0100 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271-021_kernel_5.17_adaptation/src/wl/sys/wl_linux.c 2022-04-01 10:00:24.985252480 +0200 +@@ -638,7 +638,11 @@ + WL_ERROR(("wl%d: Error setting MAC ADDRESS\n", unit)); + } + #endif ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0) + bcopy(&wl->pub->cur_etheraddr, dev->dev_addr, ETHER_ADDR_LEN); ++#else ++ dev_addr_mod(dev, 0, &wl->pub->cur_etheraddr, ETHER_ADDR_LEN); ++#endif + + online_cpus = 1; + +@@ -1862,7 +1866,11 @@ + + WL_LOCK(wl); + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0) + bcopy(sa->sa_data, dev->dev_addr, ETHER_ADDR_LEN); ++#else ++ dev_addr_mod(dev, 0, sa->sa_data, ETHER_ADDR_LEN); ++#endif + err = wlc_iovar_op(wl->wlc, "cur_etheraddr", NULL, 0, sa->sa_data, ETHER_ADDR_LEN, + IOV_SET, (WL_DEV_IF(dev))->wlcif); + WL_UNLOCK(wl); +@@ -3054,7 +3062,11 @@ + else + dev->type = ARPHRD_IEEE80211_RADIOTAP; + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0) + bcopy(wl->dev->dev_addr, dev->dev_addr, ETHER_ADDR_LEN); ++#else ++ dev_addr_mod(dev, 0, wl->dev->dev_addr, ETHER_ADDR_LEN); ++#endif + + #if defined(WL_USE_NETDEV_OPS) + dev->netdev_ops = &wl_netdev_monitor_ops; +@@ -3335,8 +3347,12 @@ + static ssize_t + wl_proc_read(struct file *filp, char __user *buffer, size_t length, loff_t *offp) + { ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0)) ++ wl_info_t * wl = pde_data(file_inode(filp)); ++#else + wl_info_t * wl = PDE_DATA(file_inode(filp)); + #endif ++#endif + int bcmerror, len; + int to_user = 0; + char tmp[8]; +@@ -3392,8 +3408,12 @@ + static ssize_t + wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t *offp) + { ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0)) ++ wl_info_t * wl = pde_data(file_inode(filp)); ++#else + wl_info_t * wl = PDE_DATA(file_inode(filp)); + #endif ++#endif + int from_user = 0; + int bcmerror; + diff --git a/anda/system/wl-kmod/wl-kmod-022_kernel_5.18_adaptation.patch b/anda/system/wl-kmod/wl-kmod-022_kernel_5.18_adaptation.patch new file mode 100644 index 0000000000..1b1cb4d40c --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-022_kernel_5.18_adaptation.patch @@ -0,0 +1,101 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/shared/linux_osl.c hybrid-v35_64-nodebug-pcoem-6_30_223_271-022_kernel_5.18_adaptation/src/shared/linux_osl.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/shared/linux_osl.c 2020-12-29 18:29:39.434940249 +0100 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271-022_kernel_5.18_adaptation/src/shared/linux_osl.c 2022-06-06 17:14:25.587543256 +0200 +@@ -48,7 +48,11 @@ + struct osl_info { + osl_pubinfo_t pub; + uint magic; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) ++ struct pci_dev *pdev; ++#else + void *pdev; ++#endif + atomic_t malloced; + atomic_t pktalloced; + uint failed; +@@ -600,8 +604,12 @@ + if (va) + *pap = (ulong)__virt_to_phys(va); + #else ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) ++ va = dma_alloc_coherent(&osh->pdev->dev, size, (dma_addr_t *)pap, GFP_ATOMIC); ++#else + va = pci_alloc_consistent(osh->pdev, size, (dma_addr_t*)pap); + #endif ++#endif + return va; + } + +@@ -613,8 +621,12 @@ + #ifdef __ARM_ARCH_7A__ + kfree(va); + #else ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) ++ dma_free_coherent(&osh->pdev->dev, size, va, (dma_addr_t)pa); ++#else + pci_free_consistent(osh->pdev, size, va, (dma_addr_t)pa); + #endif ++#endif + } + + uint BCMFASTPATH +@@ -623,7 +635,11 @@ + int dir; + + ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC))); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) ++ dir = (direction == DMA_TX)? DMA_TO_DEVICE : DMA_FROM_DEVICE; ++#else + dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE; ++#endif + + #if defined(__ARM_ARCH_7A__) && defined(BCMDMASGLISTOSL) + if (dmah != NULL) { +@@ -635,13 +651,21 @@ + if (skb_is_nonlinear(skb)) { + nsegs = skb_to_sgvec(skb, sg, 0, PKTLEN(osh, skb)); + ASSERT((nsegs > 0) && (totsegs + nsegs <= MAX_DMA_SEGS)); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) ++ dma_map_sg(&osh->pdev->dev, sg, nsegs, dir); ++#else + pci_map_sg(osh->pdev, sg, nsegs, dir); ++#endif + } else { + nsegs = 1; + ASSERT(totsegs + nsegs <= MAX_DMA_SEGS); + sg->page_link = 0; + sg_set_buf(sg, PKTDATA(osh, skb), PKTLEN(osh, skb)); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) ++ dma_map_single(&osh->pdev->dev, PKTDATA(osh, skb), PKTLEN(osh, skb), dir); ++#else + pci_map_single(osh->pdev, PKTDATA(osh, skb), PKTLEN(osh, skb), dir); ++#endif + } + totsegs += nsegs; + totlen += PKTLEN(osh, skb); +@@ -656,7 +680,11 @@ + } + #endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) ++ return (dma_map_single(&osh->pdev->dev, va, size, dir)); ++#else + return (pci_map_single(osh->pdev, va, size, dir)); ++#endif + } + + void BCMFASTPATH +@@ -665,8 +693,13 @@ + int dir; + + ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC))); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) ++ dir = (direction == DMA_TX)? DMA_TO_DEVICE : DMA_FROM_DEVICE; ++ dma_unmap_single(&osh->pdev->dev, (uint32)pa, size, dir); ++#else + dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE; + pci_unmap_single(osh->pdev, (uint32)pa, size, dir); ++#endif + } + + #if defined(BCMDBG_ASSERT) diff --git a/anda/system/wl-kmod/wl-kmod-023_kernel_6.0_adaptation.patch b/anda/system/wl-kmod/wl-kmod-023_kernel_6.0_adaptation.patch new file mode 100644 index 0000000000..aa1ca18345 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-023_kernel_6.0_adaptation.patch @@ -0,0 +1,17 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c 2022-04-02 19:58:24.236715000 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c 2022-10-17 01:08:31.537677649 +0200 +@@ -2531,8 +2531,13 @@ + return err; + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0) ++ roam_info.links[0].channel = &wl->conf->channel; ++ roam_info.links[0].bssid = (u8*)&wl->bssid; ++#else + roam_info.channel = &wl->conf->channel; + roam_info.bssid = (u8*)&wl->bssid; ++#endif + roam_info.req_ie = conn_info->req_ie; + roam_info.req_ie_len = conn_info->req_ie_len; + roam_info.resp_ie = conn_info->resp_ie; diff --git a/anda/system/wl-kmod/wl-kmod-024_kernel_6.1_adaptation.patch b/anda/system/wl-kmod/wl-kmod-024_kernel_6.1_adaptation.patch new file mode 100644 index 0000000000..5cb383b66f --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-024_kernel_6.1_adaptation.patch @@ -0,0 +1,84 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c 2022-10-17 01:08:31.537677649 +0200 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c 2023-01-03 09:20:31.743032501 +0100 +@@ -107,14 +107,25 @@ + static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, s32 *dbm); + #endif + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) ++static s32 wl_cfg80211_config_default_key(struct wiphy *wiphy, ++ struct net_device *dev, int link_id, u8 key_idx, bool unicast, bool multicast); ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) + static s32 wl_cfg80211_config_default_key(struct wiphy *wiphy, + struct net_device *dev, u8 key_idx, bool unicast, bool multicast); + #else + static s32 wl_cfg80211_config_default_key(struct wiphy *wiphy, + struct net_device *dev, u8 key_idx); + #endif +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) ++static s32 wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, ++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr, struct key_params *params); ++static s32 wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev, ++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr); ++static s32 wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev, ++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr, ++ void *cookie, void (*callback) (void *cookie, struct key_params *params)); ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) + static s32 wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, + u8 key_idx, bool pairwise, const u8 *mac_addr, struct key_params *params); + static s32 wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev, +@@ -1237,7 +1248,11 @@ + return err; + } + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) ++static s32 ++wl_cfg80211_config_default_key(struct wiphy *wiphy, ++ struct net_device *dev, int link_id, u8 key_idx, bool unicast, bool multicast) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) + static s32 + wl_cfg80211_config_default_key(struct wiphy *wiphy, + struct net_device *dev, u8 key_idx, bool unicast, bool multicast) +@@ -1262,7 +1277,11 @@ + return 0; + } + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) ++static s32 ++wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, ++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr, struct key_params *params) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) + static s32 + wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, + u8 key_idx, bool pairwise, const u8 *mac_addr, struct key_params *params) +@@ -1383,7 +1402,11 @@ + return err; + } + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) ++static s32 ++wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev, ++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) + static s32 + wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev, + u8 key_idx, bool pairwise, const u8 *mac_addr) +@@ -1426,7 +1449,12 @@ + return err; + } + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) ++static s32 ++wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev, ++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr, void *cookie, ++ void (*callback) (void *cookie, struct key_params * params)) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) + static s32 + wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev, + u8 key_idx, bool pairwise, const u8 *mac_addr, void *cookie, diff --git a/anda/system/wl-kmod/wl-kmod-025_kernel_6.5_adaptation.patch b/anda/system/wl-kmod/wl-kmod-025_kernel_6.5_adaptation.patch new file mode 100644 index 0000000000..34e55f6cc3 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-025_kernel_6.5_adaptation.patch @@ -0,0 +1,208 @@ +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/include/bcmutils.h hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/include/bcmutils.h +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/include/bcmutils.h 2023-01-03 00:23:40.088556742 +0100 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/include/bcmutils.h 2023-08-30 14:18:41.387888952 +0200 +@@ -21,6 +21,8 @@ + #ifndef _bcmutils_h_ + #define _bcmutils_h_ + ++#include ++ + #define bcm_strcpy_s(dst, noOfElements, src) strcpy((dst), (src)) + #define bcm_strncpy_s(dst, noOfElements, src, count) strncpy((dst), (src), (count)) + #define bcm_strcat_s(dst, noOfElements, src) strcat((dst), (src)) +@@ -558,7 +560,11 @@ + typedef struct bcm_tlv { + uint8 id; + uint8 len; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) ++ uint8 data[]; ++#else + uint8 data[1]; ++#endif + } bcm_tlv_t; + + #define bcm_valid_tlv(elt, buflen) ((buflen) >= 2 && (int)(buflen) >= (int)(2 + (elt)->len)) +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/include/wlioctl.h hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/include/wlioctl.h +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/include/wlioctl.h 2023-01-03 00:23:40.089556752 +0100 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/include/wlioctl.h 2023-08-30 14:52:25.925883656 +0200 +@@ -24,6 +24,7 @@ + #ifndef _wlioctl_h_ + #define _wlioctl_h_ + ++#include + #include + #include + #include +@@ -91,7 +92,11 @@ + uint32 buflen; + uint32 version; + uint32 count; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) ++ wl_bss_info_t bss_info[]; ++#else + wl_bss_info_t bss_info[1]; ++#endif + } wl_scan_results_t; + + #define WL_MAXRATES_IN_SET 16 +@@ -129,7 +134,11 @@ + + uint32 count; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) ++ uint32 element[]; ++#else + uint32 element[1]; ++#endif + } wl_uint32_list_t; + + typedef struct wl_assoc_params { +@@ -247,7 +256,11 @@ + + typedef struct _pmkid_list { + uint32 npmkid; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) ++ pmkid_t pmkid[]; ++#else + pmkid_t pmkid[1]; ++#endif + } pmkid_list_t; + + typedef struct _pmkid_cand { +@@ -257,7 +270,11 @@ + + typedef struct _pmkid_cand_list { + uint32 npmkid_cand; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) ++ pmkid_cand_t pmkid_cand[]; ++#else + pmkid_cand_t pmkid_cand[1]; ++#endif + } pmkid_cand_list_t; + + typedef struct { +@@ -278,7 +295,11 @@ + + struct maclist { + uint count; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) ++ struct ether_addr ea[]; ++#else + struct ether_addr ea[1]; ++#endif + }; + + typedef struct wl_ioctl { +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.c 2023-01-03 09:20:31.743032501 +0100 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.c 2023-08-30 14:37:43.085793226 +0200 +@@ -1655,7 +1655,11 @@ + struct cfg80211_pmksa *pmksa) + { + struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) ++ struct { pmkid_t pmkid[1]; } pmkid; ++#else + struct _pmkid_list pmkid; ++#endif + s32 err = 0; + int i; + +@@ -2113,7 +2117,11 @@ + WL_DBG(("Beacon is larger than buffer. Discarding\n")); + return -E2BIG; + } ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) ++ notif_bss_info = kzalloc(sizeof(*notif_bss_info) + sizeof(*mgmt) + ++#else + notif_bss_info = kzalloc(sizeof(*notif_bss_info) + sizeof(*mgmt) - sizeof(u8) + ++#endif + WL_BSS_INFO_MAX, GFP_KERNEL); + if (!notif_bss_info) { + WL_ERR(("notif_bss_info alloc failed\n")); +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.h hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.h +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_cfg80211_hybrid.h 2023-01-03 00:23:40.092556781 +0100 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_cfg80211_hybrid.h 2023-08-30 14:42:11.976820187 +0200 +@@ -22,6 +22,7 @@ + #ifndef _wl_cfg80211_h_ + #define _wl_cfg80211_h_ + ++#include + #include + #include + +@@ -103,7 +104,11 @@ + __le64 timestamp; + __le16 beacon_int; + __le16 capab_info; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) ++ u8 variable[]; ++#else + u8 variable[0]; ++#endif + } __attribute__ ((packed)); + + struct wl_cfg80211_conf { +@@ -126,7 +131,11 @@ + u16 channel; + s16 rssi; + u16 frame_len; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) ++ u8 frame_buf[]; ++#else + u8 frame_buf[1]; ++#endif + }; + + struct wl_cfg80211_scan_req { +@@ -142,7 +151,11 @@ + struct list_head eq_list; + u32 etype; + wl_event_msg_t emsg; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) ++ s8 edata[]; ++#else + s8 edata[1]; ++#endif + }; + + struct wl_cfg80211_security { +@@ -174,7 +187,11 @@ + + struct wl_cfg80211_pmk_list { + pmkid_list_t pmkids; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) ++ pmkid_t foo[MAXPMKID]; ++#else + pmkid_t foo[MAXPMKID - 1]; ++#endif + }; + + struct wl_cfg80211_priv { +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_iw.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_iw.c +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/wl/sys/wl_iw.c 2023-01-03 00:23:40.091556771 +0100 ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/wl/sys/wl_iw.c 2023-08-30 14:45:12.154012702 +0200 +@@ -1907,7 +1907,11 @@ + #if WIRELESS_EXT > 17 + struct { + pmkid_list_t pmkids; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) ++ pmkid_t foo[MAXPMKID]; ++#else + pmkid_t foo[MAXPMKID-1]; ++#endif + } pmkid_list; + static int + wl_iw_set_pmksa( +@@ -1930,7 +1934,11 @@ + bzero((char *)&pmkid_list, sizeof(pmkid_list)); + } + if (iwpmksa->cmd == IW_PMKSA_REMOVE) { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 5, 0) ++ struct { pmkid_t pmkid[1]; } pmkid, *pmkidptr; ++#else + pmkid_list_t pmkid, *pmkidptr; ++#endif + pmkidptr = &pmkid; + bcopy(&iwpmksa->bssid.sa_data[0], &pmkidptr->pmkid[0].BSSID, ETHER_ADDR_LEN); + bcopy(&iwpmksa->pmkid[0], &pmkidptr->pmkid[0].PMKID, WPA2_PMKID_LEN); diff --git a/anda/system/wl-kmod/wl-kmod-026_kernel_6.10_fix_empty_body_in_if_warning.patch b/anda/system/wl-kmod/wl-kmod-026_kernel_6.10_fix_empty_body_in_if_warning.patch new file mode 100644 index 0000000000..ad47e58d01 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-026_kernel_6.10_fix_empty_body_in_if_warning.patch @@ -0,0 +1,57 @@ +From 92a12d8861c51ec2f35aba4c746653fb0e9b7256 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Nicolas=20Vi=C3=A9ville?= +Date: Wed, 21 Aug 2024 19:35:27 +0200 +Subject: [PATCH] =?UTF-8?q?kernel=206.10:=20wl=5Flinux.c:=20fix=20warning?= + =?UTF-8?q?=20suggest=20braces=20around=20empty=20body=20in=20an=20?= + =?UTF-8?q?=E2=80=98if=E2=80=99=20statement?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Nicolas Viéville +--- + src/wl/sys/wl_linux.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c +index 499752b..2000f6f 100644 +--- a/src/wl/sys/wl_linux.c ++++ b/src/wl/sys/wl_linux.c +@@ -1100,8 +1100,9 @@ wl_open(struct net_device *dev) + } + WL_UNLOCK(wl); + +- if (!error) ++ if (!error) { + OLD_MOD_INC_USE_COUNT; ++ } + + #if defined(USE_CFG80211) + if (wl_cfg80211_up(dev)) { +@@ -1874,9 +1875,10 @@ wl_set_mac_address(struct net_device *dev, void *addr) + err = wlc_iovar_op(wl->wlc, "cur_etheraddr", NULL, 0, sa->sa_data, ETHER_ADDR_LEN, + IOV_SET, (WL_DEV_IF(dev))->wlcif); + WL_UNLOCK(wl); +- if (err) ++ if (err) { + WL_ERROR(("wl%d: wl_set_mac_address: error setting MAC addr override\n", + wl->pub->unit)); ++ } + return err; + } + +@@ -2274,9 +2276,10 @@ wl_start(struct sk_buff *skb, struct net_device *dev) + if (!err) { + atomic_inc(&wl->callbacks); + wl->txq_dispatched = TRUE; +- } else ++ } else { + WL_ERROR(("wl%d: wl_start/schedule_work failed\n", + wl->pub->unit)); ++ } + } + + TXQ_UNLOCK(wl); +-- +2.46.0 + diff --git a/anda/system/wl-kmod/wl-kmod-027_wpa_supplicant-2.11_add_max_scan_ie_len.patch b/anda/system/wl-kmod/wl-kmod-027_wpa_supplicant-2.11_add_max_scan_ie_len.patch new file mode 100644 index 0000000000..3f0d36b950 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-027_wpa_supplicant-2.11_add_max_scan_ie_len.patch @@ -0,0 +1,35 @@ +From d9d6f584c57f10349876a68f9bf029ef47c9a74b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Nicolas=20Vi=C3=A9ville?= +Date: Wed, 21 Aug 2024 23:49:28 +0200 +Subject: [PATCH] wpa_supplicant-2.11: wl_cfg80211_hybrid.c: add + max_scan_ie_len in order to make wpa_supplicant scans not to fail +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Nicolas Viéville +--- + src/wl/sys/wl_cfg80211_hybrid.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c +index ff5a3fb..5ffa0b3 100644 +--- a/src/wl/sys/wl_cfg80211_hybrid.c ++++ b/src/wl/sys/wl_cfg80211_hybrid.c +@@ -2011,6 +2011,13 @@ static s32 wl_alloc_wdev(struct device *dev, struct wireless_dev **rwdev) + } + set_wiphy_dev(wdev->wiphy, dev); + wdev->wiphy->max_scan_ssids = WL_NUM_SCAN_MAX; ++ ++ /* Set max_scan_ie_len to a random value in order to make wpa_supplicant ++ * scans not to fail. The driver should ignore the extra passed IEs. ++ * Value taken and fix inspired from: ++ * https://patchwork.kernel.org/project/linux-wireless/patch/20211212221310.5453-1-merlijn@wizzup.org/ ++ */ ++ wdev->wiphy->max_scan_ie_len = 512; + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33) + wdev->wiphy->max_num_pmkids = WL_NUM_PMKIDS_MAX; + #endif +-- +2.46.0 + diff --git a/anda/system/wl-kmod/wl-kmod-028_kernel_6.12_adaptation.patch b/anda/system/wl-kmod/wl-kmod-028_kernel_6.12_adaptation.patch new file mode 100644 index 0000000000..1064225cb3 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-028_kernel_6.12_adaptation.patch @@ -0,0 +1,32 @@ +From 5f6c5c8b27da17c80ce9bd2d6d714295bd352df5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Nicolas=20Vi=C3=A9ville?= +Date: Tue, 10 Dec 2024 09:22:46 +0100 +Subject: [PATCH] wl_linux.c: #include for kernel >= 6.12.x +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Nicolas Viéville +--- + src/wl/sys/wl_linux.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c +index 2000f6f..3c25ce4 100644 +--- a/src/wl/sys/wl_linux.c ++++ b/src/wl/sys/wl_linux.c +@@ -56,7 +56,11 @@ + #include + #include + #include ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0) + #include ++#else ++#include ++#endif + + #include + +-- +2.47.1 + diff --git a/anda/system/wl-kmod/wl-kmod-kmodtool-excludekernel-filterfile b/anda/system/wl-kmod/wl-kmod-kmodtool-excludekernel-filterfile new file mode 100644 index 0000000000..22913e18c9 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod-kmodtool-excludekernel-filterfile @@ -0,0 +1 @@ +xen$ diff --git a/anda/system/wl-kmod/wl-kmod.spec b/anda/system/wl-kmod/wl-kmod.spec new file mode 100644 index 0000000000..cc977ee813 --- /dev/null +++ b/anda/system/wl-kmod/wl-kmod.spec @@ -0,0 +1,151 @@ +%if 0%{?fedora} || 0%{?rhel} >= 9 +%bcond_with kmod +%if %{with kmod} +%global buildforkernels current +%else +%global buildforkernels akmod +%endif +%endif +%global debug_package %{nil} + +Name: wl-kmod +Version: 6.30.223.271 +Release: 1%{?dist} +Summary: Kernel module for Broadcom wireless devices +Group: System Environment/Kernel +License: Redistributable, no modification permitted +URL: https://www.broadcom.com/support/download-search?pg=Legacy+Products&pf=Legacy+Wireless&pn=&pa=&po=&dk=&pl= +Source0: https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/hybrid-v35-nodebug-pcoem-6_30_223_271.tar.gz +Source1: https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz +Source11: wl-kmod-kmodtool-excludekernel-filterfile +Patch0: wl-kmod-002_kernel_3.18_null_pointer.patch +Patch1: wl-kmod-003_gcc_4.9_remove_TIME_DATE_macros.patch +Patch2: wl-kmod-004_kernel_4.3_rdtscl_to_rdtsc.patch +Patch3: wl-kmod-005_kernel_4.7_IEEE80211_BAND_to_NL80211_BAND.patch +Patch4: wl-kmod-006_gcc_6_fix_indentation_warnings.patch +Patch5: wl-kmod-007_kernel_4.8_add_cfg80211_scan_info_struct.patch +Patch6: wl-kmod-008_fix_kernel_warnings.patch +Patch7: wl-kmod-009_kernel_4.11_remove_last_rx_in_net_device_struct.patch +Patch8: wl-kmod-010_kernel_4.12_add_cfg80211_roam_info_struct.patch +Patch9: wl-kmod-011_kernel_4.14_new_kernel_read_function_prototype.patch +Patch10: wl-kmod-012_kernel_4.15_new_timer.patch +Patch11: wl-kmod-013_gcc8_fix_bounds_check_warnings.patch +Patch12: wl-kmod-014_kernel_read_pos_increment_fix.patch +Patch13: wl-kmod-015_kernel_5.1_get_ds_removed.patch +Patch14: wl-kmod-016_fix_unsupported_mesh_point.patch +Patch15: wl-kmod-017_fix_gcc_fallthrough_warning.patch +Patch16: wl-kmod-018_kernel_5.6_adaptations.patch +Patch17: wl-kmod-019_kernel_5.9_segment_eq_removed.patch +Patch18: wl-kmod-020_kernel_5.10_get_set_fs_removed.patch +Patch19: wl-kmod-021_kernel_5.17_adaptation.patch +Patch20: wl-kmod-022_kernel_5.18_adaptation.patch +Patch21: wl-kmod-023_kernel_6.0_adaptation.patch +Patch22: wl-kmod-024_kernel_6.1_adaptation.patch +Patch23: wl-kmod-025_kernel_6.5_adaptation.patch +Patch24: wl-kmod-026_kernel_6.10_fix_empty_body_in_if_warning.patch +Patch25: wl-kmod-027_wpa_supplicant-2.11_add_max_scan_ie_len.patch +Patch26: wl-kmod-028_kernel_6.12_adaptation.patch +ExclusiveArch: i686 x86_64 +BuildRequires: kmodtool +BuildRequires: elfutils-libelf-devel + +%{!?kernels:BuildRequires: gcc, elfutils-libelf-devel} + +%{expand:%(kmodtool --target %{_target_cpu} --repo terra --kmodname %{name} --filterfile %{SOURCE11} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } + +%description +These packages contain Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver for use with Broadcom's BCM4311-, BCM4312-, BCM4313-, BCM4321-, BCM4322-, BCM43142-, BCM43224-, BCM43225-, BCM43227-, BCM43228-, BCM4331-, BCM4360, and -BCM4352-. + +NOTE: Please read the LICENSE.txt file in the docs directory before using this driver. You should read the fedora.readme file in the docs directory in order to know how to configure this software if you encounter problems. + +%prep +%{?kmodtool_check} +kmodtool --target %{_target_cpu} --repo terra --kmodname %{name} --filterfile %{SOURCE11} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null + +%setup -q -c -T +mkdir %{name}-%{version}-src +pushd %{name}-%{version}-src +%ifarch %{ix86} + tar xzf %{SOURCE0} +%else + tar xzf %{SOURCE1} +%endif +%patch -P 0 -p1 -b .kernel_3.18_null_pointer.patch +%patch -P 1 -p1 -b .gcc_4.9_remove_TIME_DATE_macros +%patch -P 2 -p1 -b .kernel_4.3_rdtscl_to_rdtsc.patch +%patch -P 3 -p1 -b .kernel_4.7_IEEE80211_BAND_to_NL80211_BAND +%patch -P 4 -p1 -b .gcc_6_fix_indentation_warnings +%patch -P 5 -p1 -b .kernel_4.8_add_cfg80211_scan_info_struct +%patch -P 6 -p1 -b .fix_kernel_warnings +%patch -P 7 -p1 -b .kernel_4.11_remove_last_rx_in_net_device_struct +%patch -P 8 -p1 -b .kernel_4.12_add_cfg80211_roam_info_struct +%patch -P 9 -p1 -b .kernel_4.14_new_kernel_read_function_prototype +%patch -P 10 -p1 -b .kernel_4.15_new_timer +%patch -P 11 -p1 -b .gcc8_fix_bounds_check_warnings +%patch -P 12 -p1 -b .kernel_read_pos_increment_fix +%patch -P 13 -p1 -b .kernel_5.1_get_ds_removed +%patch -P 14 -p1 -b .fix_unsupported_mesh_point +%patch -P 15 -p1 -b .fix_gcc_fallthrough_warning.patch +%patch -P 16 -p1 -b .kernel_5.6_adaptations.patch +%patch -P 17 -p1 -b .kernel_5.9_segment_eq_removed +%patch -P 18 -p1 -b .kernel_5.10_get_set_fs_removed +%patch -P 19 -p1 -b .kernel_5.17_adaptation +%patch -P 20 -p1 -b .kernel_5.18_adaptation +%patch -P 21 -p1 -b .kernel_6.0_adaptation +%patch -P 22 -p1 -b .kernel_6.1_adaptation +%patch -P 23 -p1 -b .kernel_6.5_adaptation +%patch -P 24 -p1 -b .kernel_6.10_adaptation +%patch -P 25 -p1 -b .wpa_supplicant-2.11_adaptation +%patch -P 26 -p1 -b .kernel_6.12_adaptation + +### NOTE: These MUST be added to as new EL versions are released. +%if 0%{?rhel} == 9 + %define kvl %(echo %{kernel_versions} | cut -d"-" -f1) + %define kvr %(echo %{kernel_versions} | cut -d"-" -f2 | cut -d"." -f1) + +### Patching for various point release kernels. + %if "%{kvl}" == "5.14.0" + %if %{kvr} == 70 + %endif + %if %{kvr} >= 70 + %{__sed} -i 's/ < KERNEL_VERSION(5, 17, 0)/ < KERNEL_VERSION(5, 14, 0)/g' src/wl/sys/wl_iw.h + %{__sed} -i 's/ >= KERNEL_VERSION(5, 17, 0)/ >= KERNEL_VERSION(5, 14, 0)/g' src/wl/sys/wl_linux.c + %endif + %if %{kvr} >= 162 + %endif + %if %{kvr} >= 284 + %endif + %if %{kvr} >= 362 + %{__sed} -i 's/ >= KERNEL_VERSION(6, [01], 0)/ >= KERNEL_VERSION(5, 14, 0)/g' src/wl/sys/wl_cfg80211_hybrid.c + %endif + %if %{kvr} >= 427 + %endif + %endif +%endif +popd + +for kernel_version in %{?kernel_versions} ; do + cp -a %{name}-%{version}-src _kmod_build_${kernel_version%%___*} +done + +%build +for kernel_version in %{?kernel_versions}; do + pushd _kmod_build_${kernel_version%%___*} + make -C ${kernel_version##*___} M=`pwd` modules + popd +done + +%install +rm -rf ${RPM_BUILD_ROOT} +for kernel_version in %{?kernel_versions}; do + pushd _kmod_build_${kernel_version%%___*} + mkdir -p ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}${kernel_version%%___*}%{kmodinstdir_postfix} + install -m 0755 *.ko ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}${kernel_version%%___*}%{kmodinstdir_postfix} + popd +done + +chmod 0755 $RPM_BUILD_ROOT%{kmodinstdir_prefix}*%{kmodinstdir_postfix}/* || : +%{?akmod_install} + +%changelog +%autochangelog diff --git a/anda/system/xpadneo/anda.hcl b/anda/system/xpadneo/anda.hcl index a05aac8e28..522f0b2ff8 100644 --- a/anda/system/xpadneo/anda.hcl +++ b/anda/system/xpadneo/anda.hcl @@ -2,4 +2,7 @@ project pkg { rpm { spec = "xpadneo.spec" } + labels { + mock = 1 + } } diff --git a/anda/system/zenmonitor3/anda.hcl b/anda/system/zenmonitor3/anda.hcl new file mode 100644 index 0000000000..361c6636b8 --- /dev/null +++ b/anda/system/zenmonitor3/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "zenmonitor3.spec" + } +} diff --git a/anda/system/zenmonitor3/modules-load.conf b/anda/system/zenmonitor3/modules-load.conf new file mode 100644 index 0000000000..45363189f9 --- /dev/null +++ b/anda/system/zenmonitor3/modules-load.conf @@ -0,0 +1 @@ +msr \ No newline at end of file diff --git a/anda/system/zenmonitor3/zenmonitor3.spec b/anda/system/zenmonitor3/zenmonitor3.spec new file mode 100644 index 0000000000..7bba8f0397 --- /dev/null +++ b/anda/system/zenmonitor3/zenmonitor3.spec @@ -0,0 +1,89 @@ +%global debug_package %{nil} +%global prjname zenmonitor3 +%global commit ecd9bf31dd532ac53f305e10378e637cd1cc4bbe +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: %{prjname} +Version: 2.0.0^2.git%{shortcommit} +Release: 2%{?dist} +Summary: GUI monitoring software for AMD Zen-based CPUs. +Packager: Cappy Ishihara +License: MIT +URL: https://gitlab.com/shdwchn10/%{prjname} +Source0: https://gitlab.com/shdwchn10/%{prjname}/-/archive/%{commit}/%{prjname}-%{commit}.tar.gz +Source1: modules-load.conf + +BuildRequires: gcc +BuildRequires: make +BuildRequires: systemd-rpm-macros +BuildRequires: sed +BuildRequires: gtk3-devel + +%description +Zenmonitor3 is GTK3 monitoring software for AMD Zen-based CPUs. + +It can monitor these values: +- CPU Temperature +- CPU Core (SVI2) Voltage, Current and Power +- SOC (SVI2) Voltage, Current and Power +- Package and Core Power (RAPL) +- Core Frequency (from OS) + + +%package cli +Summary: CLI monitoring software for AMD Zen-based CPUs. +BuildRequires: ncurses-devel + +%description cli +Zenmonitor3 is ncurses monitoring software for AMD Zen-based CPUs. + +It can monitor these values: +- CPU Temperature +- CPU Core (SVI2) Voltage, Current and Power +- SOC (SVI2) Voltage, Current and Power +- Package and Core Power (RAPL) +- Core Frequency (from OS) + + +%prep +%setup -q -n %{prjname}-%{commit} + + +%build +make %{?_smp_mflags} DESTDIR=%{buildroot} build build-cli + + +%install +make %{?_smp_mflags} DESTDIR=%{buildroot} PREFIX=%{_prefix} install install-cli + +mkdir -p %{buildroot}%{_datadir}/applications/ +mkdir -p %{buildroot}%{_datadir}/polkit-1/actions/ + +sed -e "s|@APP_EXEC@|%{_bindir}/zenmonitor|" data/zenmonitor.desktop.in > \ + %{buildroot}%{_datadir}/applications/zenmonitor.desktop +sed -e "s|@APP_EXEC@|%{_bindir}/zenmonitor|" data/zenmonitor-root.desktop.in > \ + %{buildroot}%{_prefix}/share/applications/zenmonitor-root.desktop +sed -e "s|@APP_EXEC@|%{_bindir}/zenmonitor|" data/org.pkexec.zenmonitor.policy.in > \ + %{buildroot}%{_datadir}/polkit-1/actions/org.pkexec.zenmonitor.policy + +install -Dpm 0644 %{S:1} %{buildroot}%{_modulesloaddir}/%{name}.conf + + +%files +%{_bindir}/zenmonitor +%{_datadir}/applications/zenmonitor.desktop +%{_datadir}/applications/zenmonitor-root.desktop +%{_datadir}/polkit-1/actions/org.pkexec.zenmonitor.policy +%{_modulesloaddir}/%{name}.conf + + +%files cli +%{_bindir}/zenmonitor-cli + + +%changelog +* Thu Dec 19 2024 Andrey Brusnik - 2.0.0^2.gitecd9bf3-2 +- fix: Update broken link to mirror + +* Tue Nov 07 2023 Andrey Brusnik - 2.0.0^1.gita09f0b25d3-1 +- Initial package \ No newline at end of file diff --git a/anda/system/zenpower3/anda.hcl b/anda/system/zenpower3/anda.hcl new file mode 100644 index 0000000000..64d15acce8 --- /dev/null +++ b/anda/system/zenpower3/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "zenpower3.spec" + } + labels { + mock = 1 + } +} diff --git a/anda/system/zenpower3/zenpower3.spec b/anda/system/zenpower3/zenpower3.spec new file mode 100644 index 0000000000..de65ea7976 --- /dev/null +++ b/anda/system/zenpower3/zenpower3.spec @@ -0,0 +1,82 @@ +%global buildforkernels akmod +%global debug_package %{nil} +%global prjname zenpower3 + +# There will probably not be an update script for this package, since this kernel module +# is kind of dead, I will update them manually when needed. +%global commit c176fdb0d5bcba6ba2aba99ea36812e40f47751f +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: %{prjname} +Version: 0.2.0^2.git%{shortcommit} +Release: 1%{?dist} +Summary: AMD Ryzen SMU driver for lm_sensors, up to Zen 3 +Packager: Cappy Ishihara + +License: GPLv2 +URL: https://gitlab.com/shdwchn10/%{prjname} +Source0: https://gitlab.com/shdwchn10/%{prjname}/-/archive/%{commit}/%{prjname}-%{commit}.tar.gz + +BuildRequires: gcc +BuildRequires: make +BuildRequires: kmodtool + +# kmodtool does its magic here +%{expand:%(kmodtool --target %{_target_cpu} --repo %{repo} --kmodname %{prjname} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null | sed '/global with_rhel_kabi/d') } + +%description +Zenpower3 is a Linux kernel driver for reading temperature, voltage(SVI2), current(SVI2) and power(SVI2) for AMD Zen family CPUs, now with Zen 3 support! + +This package contains the kmod module for %{prjname}. + + +%prep +%setup -q -n %{prjname}-%{commit} + +# Error out if there was something wrong with kmodtool. +%{?kmodtool_check} + +# Print kmodtool output for debugging purposes: +kmodtool --target %{_target_cpu} --repo %{repo} --kmodname %{prjname} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null | sed '/global with_rhel_kabi/d' + +mkdir src +cp -a Makefile zenpower.c src/ + +for kernel_version in %{?kernel_versions} ; do + cp -a src _kmod_build_${kernel_version%%___*} +done + +echo %{version} > VERSION + + +%build +for kernel_version in %{?kernel_versions} ; do + make V=1 %{?_smp_mflags} -C ${kernel_version##*___} M=${PWD}/_kmod_build_${kernel_version%%___*} modules +done + + +%install +for kernel_version in %{?kernel_versions}; do + mkdir -p %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + install -Dpm 0755 _kmod_build_${kernel_version%%___*}/*.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/ + chmod a+x %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/*.ko +done +%{?akmod_install} + + +%changelog +* Sun Dec 29 2024 Cappy Ishihara - 0.2.0^2.gitc176fdb-1 +- Repackaged for Terra + +* Mon Dec 23 2024 Andrey Brusnik - 0.2.0^2.gitc176fdb-4 +- fix: Actually fix building with custom kernels on EL + +* Thu Dec 19 2024 Andrey Brusnik - 0.2.0^2.gitc176fdb-3 +- fix: Update broken link to mirror +- fix: Rollback to akmod on EL so module will work with custom kernels + +* Sat Sep 28 2024 Andrey Brusnik - 0.2.0^1.gitc176fdb0d5-2 +- fix: Build kmod instead of akmod for EL + +* Tue Nov 07 2023 Andrey Brusnik - 0.2.0^1.gitc176fdb0d5-1 +- Initial package diff --git a/anda/terra/release/terra-release.spec b/anda/terra/release/terra-release.spec index 8ba5bf53ed..0b1471062e 100644 --- a/anda/terra/release/terra-release.spec +++ b/anda/terra/release/terra-release.spec @@ -1,6 +1,6 @@ Name: terra-release Version: 10 -Release: 1 +Release: 2 Summary: Release package for Terra License: MIT diff --git a/anda/terra/release/terra.repo b/anda/terra/release/terra.repo index 32a1b12099..c89a4c05b5 100644 --- a/anda/terra/release/terra.repo +++ b/anda/terra/release/terra.repo @@ -1,5 +1,5 @@ [terra] -name=Terra $releasever +name=Terra EL$releasever #baseurl=https://repos.fyralabs.com/terrael$releasever metalink=https://tetsudou.fyralabs.com/metalink?repo=terrael$releasever&arch=$basearch metadata_expire=6h @@ -10,9 +10,10 @@ repo_gpgcheck=1 enabled=1 enabled_metadata=1 countme=1 +priority=150 [terra-source] -name=Terra $releasever - Source +name=Terra EL$releasever - Source #baseurl=https://repos.fyralabs.com/terrael$releasever-source metalink=https://tetsudou.fyralabs.com/metalink?repo=terrael$releasever-source&arch=$basearch metadata_expire=6h @@ -22,3 +23,4 @@ gpgkey=https://repos.fyralabs.com/terrael$releasever-source/key.asc repo_gpgcheck=1 enabled=0 enabled_metadata=0 +priority=150 diff --git a/anda/themes/helium-gtk-theme/anda.hcl b/anda/themes/helium-gtk-theme/anda.hcl new file mode 100644 index 0000000000..92079f7601 --- /dev/null +++ b/anda/themes/helium-gtk-theme/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "helium-gtk-theme.spec" + } +} diff --git a/anda/themes/helium-gtk-theme/helium-gtk-theme.spec b/anda/themes/helium-gtk-theme/helium-gtk-theme.spec new file mode 100644 index 0000000000..7b0a7e09d7 --- /dev/null +++ b/anda/themes/helium-gtk-theme/helium-gtk-theme.spec @@ -0,0 +1,186 @@ +%global ver 1.8.24 + +Summary: tauOS GTK/GNOME Shell Themes +Name: helium-gtk-theme +Version: %(echo %ver | sed 's/-/./g') +Release: 2%{?dist} +License: GPL-3.0 +URL: https://github.com/tau-OS/tau-helium +Source0: https://github.com/tau-OS/tau-helium/archive/refs/tags/%{ver}.tar.gz +BuildArch: noarch +BuildRequires: sass +BuildRequires: meson +BuildRequires: ninja-build +BuildRequires: fdupes +Provides: tau-helium = %{version}-%{release} +Obsoletes: tau-helium < 1.8.23-2 + +%description +A set of GTK/GNOME Shell Themes for tauOS + +%prep +%autosetup -n tau-helium-%{ver} + +%build +%meson +%meson_build + +%install +# Install licenses +mkdir -p licenses +%meson_install +%fdupes %buildroot%_datadir/themes/ + +%files +%license LICENSE +%doc README.md +%{_datadir}/themes/Helium/* +%{_datadir}/themes/Helium-dark/* + +%changelog +* Fri Dec 02 2022 root - 1.1.25-1 +- new version + +* Fri Dec 02 2022 root - 1.1.24-1 +- new version + +* Fri Dec 02 2022 root - 1.1.23-1 +- new version + +* Fri Nov 25 2022 root - 1.1.22-1 +- new version + +* Fri Nov 18 2022 Lleyton Gray - 1.1.21-1 +- new version + +* Fri Nov 18 2022 Lleyton Gray - 1.1.20-1 +- new version + +* Thu Nov 17 2022 root - 1.1.19-1 +- new version + +* Sun Nov 13 2022 root - 1.1.18-1 +- new version + +* Fri Nov 11 2022 Lleyton Gray - 1.1.17-1 +- new version + +* Fri Nov 11 2022 Lleyton Gray - 1.1.17-1 +- new version + +* Wed Jun 22 2022 Lains - 1.1-52 +- Theme freeze exception for 1.1. +- Slight differences for themes. + +* Wed Jun 22 2022 Lains - 1.1-49 +- Theme freeze exception for 1.1. +- Merge of GNOME Shell themes. + +* Mon May 30 2022 Lains - 1.1-42 +- Theme freeze exception for 1.1. +- An adventure in coloring happened. + +* Mon May 30 2022 Lains - 1.1-32 +- Theme freeze exception for 1.1. +- Add missing tauOS HIG css classes helpers. + +* Sun May 29 2022 Lains - 1.1-30 +- Theme freeze exception for 1.1. +- Remove GTK3 theme creep and also the tauos specific stylings. + +* Fri May 27 2022 Lains - 1.1-28 +- Theme freeze exception for 1.1. +- Fixed borders on GTK3. + +* Thu May 26 2022 Lains - 1.1-27 +- Actual Theme freeze for 1.1. +- Added missing tau-specific widget theming. + +* Wed May 25 2022 Lains - 1.1-26 +- Theme freeze for 1.1. + +* Wed May 25 2022 Lains - 1.1-25 +- Make switches not as wacky in size. + +* Tue May 24 2022 Lains - 1.1-23 +- Accessibility-driven design on entries and switches. + +* Tue May 24 2022 Lains - 1.1-22 +- Missed some stuff that was breaking the theme. + +* Mon May 23 2022 Lains - 1.1-21 +- Reintroduce some stuff otherwise theme breaks on GTK3. + +* Sun May 22 2022 Lains - 1.1-20 +- Remove platform-specific css classes and things +- Focus only on tau HIG and basic GTK theming. + +* Sat May 21 2022 Lains - 1.1-19 +- Fix typography in general, again. + +* Fri May 20 2022 Lains - 1.1-18 +- Fix typography in general. + +* Fri May 20 2022 Lains - 1.1-17 +- Fix bg color in Helium-dark GNOME Shell. + +* Thu May 19 2022 Lains - 1.1-16 +- Fix more oops. + +* Thu May 19 2022 Lains - 1.1-15 +- Fix some oops. + +* Wed May 18 2022 Lains - 1.1-14 +- Bring in the tauOS HIG widgetry and stuff. + +* Tue May 17 2022 Lains - 1.1-13 +- Make the dark theme content block color not too stark. + +* Mon May 16 2022 Lains - 1.1-12 +- Finalize and fix inconsistencies in the Helium GNOME Shell themes + +* Sun May 15 2022 Lains - 1.1-11 +- Fix Helium Light GNOME Shell theme + +* Fri May 13 2022 Lains - 1.1-10 +- Refine some GTK stuff + +* Tue May 10 2022 Lains - 1.1-9 +- Refine some GTK stuff + +* Tue May 10 2022 Lains - 1.1-8 +- Finish GTK4 theme + +* Mon May 9 2022 Lains - 1.1-7 +- Start GTK4 theme + +* Mon May 9 2022 Lains - 1.1-6 +- More improvements in styling + +* Mon May 9 2022 Lains - 1.1-5 +- Improvements in styling to match Shell with GTK theme + +* Mon May 9 2022 Lains - 1.1-4 +- GNOME shell theme wasn't being installed + +* Sun May 8 2022 Lains - 1.1-3 +- Perhaps this is needed + +* Sun May 8 2022 Lains - 1.1-2 +- Let's roll our own gtk theme + +* Wed May 4 2022 Lains - 1.1-1.7.2 +- Get Helium GNOME Shell theme here + +* Tue May 3 2022 Lains - 1.1-1.7.1 +- Get Helium GNOME Shell theme here + +* Thu Apr 21 2022 Jamie Murphy - 1.1-1.7 +- Update adw-gtk3 to v1.7 +- Update Build System + +* Thu Apr 7 2022 Jamie Murphy - 1.1-2 +- Add accent colours + +* Thu Apr 7 2022 Jamie Murphy - 1.1-1 +- Initial Release diff --git a/anda/themes/helium-gtk-theme/update.rhai b/anda/themes/helium-gtk-theme/update.rhai new file mode 100644 index 0000000000..c3700bc01a --- /dev/null +++ b/anda/themes/helium-gtk-theme/update.rhai @@ -0,0 +1 @@ +rpm.global("ver", gh("tau-OS/tau-helium")); diff --git a/anda/themes/hydrogen-icon-theme/anda.hcl b/anda/themes/hydrogen-icon-theme/anda.hcl new file mode 100644 index 0000000000..90939b190b --- /dev/null +++ b/anda/themes/hydrogen-icon-theme/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "hydrogen-icon-theme.spec" + } +} diff --git a/anda/themes/hydrogen-icon-theme/hydrogen-icon-theme.spec b/anda/themes/hydrogen-icon-theme/hydrogen-icon-theme.spec new file mode 100644 index 0000000000..f7ba7faa06 --- /dev/null +++ b/anda/themes/hydrogen-icon-theme/hydrogen-icon-theme.spec @@ -0,0 +1,42 @@ +Summary: tauOS Icon Theme +Name: hydrogen-icon-theme +Version: 1.0.16 +Release: 2%?dist +License: GPL-3.0 +URL: https://github.com/tau-OS/tau-hydrogen +Source0: https://github.com/tau-OS/tau-hydrogen/archive/refs/tags/%{version}.tar.gz +BuildArch: noarch +BuildRequires: meson +BuildRequires: ninja-build +BuildRequires: librsvg2-tools +BuildRequires: xcursorgen +BuildRequires: fdupes +Provides: tau-hydrogen = %{version}-%{release} +Obsoletes: tau-hydrogen < 1.0.16-2 + +%description +Hydrogen is the default icon theme in tauOS + +%prep +%autosetup -n tau-hydrogen-%{version} + +%build +%meson +%meson_build + +%install +# Install licenses +mkdir -p licenses +%meson_install +%fdupes %buildroot%_datadir + +%files +%license LICENSE +%doc README.md +%{_datadir}/icons/Hydrogen/* +%{_datadir}/gimp/2.0/palettes/Helium.gpl +%{_datadir}/inkscape/palettes/Helium.gpl + +%changelog +* Sun Nov 20 2022 Lleyton Gray - 1.0.1 +- Terra Release diff --git a/anda/themes/hydrogen-icon-theme/update.rhai b/anda/themes/hydrogen-icon-theme/update.rhai new file mode 100644 index 0000000000..7adc5651ad --- /dev/null +++ b/anda/themes/hydrogen-icon-theme/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("tau-OS/tau-hydrogen")); diff --git a/anda/themes/klassy/klassy.spec b/anda/themes/klassy/klassy.spec index 5e3cadd759..ef58ebe8be 100644 --- a/anda/themes/klassy/klassy.spec +++ b/anda/themes/klassy/klassy.spec @@ -1,8 +1,8 @@ Name: klassy %global forgeurl https://github.com/paulmcauley/%{name} -%global tag 6.1.breeze6.0.3 -%global date 20240411 +%global tag 6.2.breeze6.2.1 +%global date 20241018 %forgemeta Version: %{tag} diff --git a/anda/themes/lightly-qt6/VER6.txt b/anda/themes/lightly-qt6/VER6.txt index 7f8f011eb7..45a4fb75db 100644 --- a/anda/themes/lightly-qt6/VER6.txt +++ b/anda/themes/lightly-qt6/VER6.txt @@ -1 +1 @@ -7 +8 diff --git a/anda/tools/arduino-cli/anda.hcl b/anda/tools/arduino-cli/anda.hcl new file mode 100644 index 0000000000..ab0607cc02 --- /dev/null +++ b/anda/tools/arduino-cli/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "arduino-cli.spec" + } +} \ No newline at end of file diff --git a/anda/tools/arduino-cli/arduino-cli.spec b/anda/tools/arduino-cli/arduino-cli.spec new file mode 100644 index 0000000000..58efdb8b9b --- /dev/null +++ b/anda/tools/arduino-cli/arduino-cli.spec @@ -0,0 +1,35 @@ +%define _build_shell /bin/bash +%define debug_package %nil + +Name: arduino-cli +Version: 1.1.1 +Release: 1%?dist +Summary: Arduino command line tool. +License: GPLv3 +Packager: Owen Zimmerman +Url: https://github.com/arduino/arduino-cli +Source0: %url/archive/refs/tags/v%version.tar.gz +BuildRequires: golang git go-rpm-macros anda-srpm-macros + +%description +%summary + +%prep +%autosetup -n arduino-cli-%version + +%build +mkdir -p bin +%go_build_online + +%install +mkdir -p %{buildroot}%{_bindir} +install -Dm 755 build/bin/arduino-cli %buildroot%{_bindir}/arduino-cli + +%files +%license LICENSE.txt +%doc README.md +%{_bindir}/arduino-cli + +%changelog +* Thu Dec 5 2024 Owen Zimmerman +- Package arduino-cli \ No newline at end of file diff --git a/anda/tools/arduino-cli/update.rhai b/anda/tools/arduino-cli/update.rhai new file mode 100644 index 0000000000..edeca6ebd8 --- /dev/null +++ b/anda/tools/arduino-cli/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("arduino/arduino-cli")); \ No newline at end of file diff --git a/anda/tools/buildsys/anda/rust-anda.spec b/anda/tools/buildsys/anda/rust-anda.spec index 3efb22203b..a0fca92c19 100644 --- a/anda/tools/buildsys/anda/rust-anda.spec +++ b/anda/tools/buildsys/anda/rust-anda.spec @@ -1,13 +1,11 @@ # Generated by rust2rpm 22 %bcond_without check -%global with_mold 0 -%global build_rustflags -Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn %define debug_package %{nil} %global crate anda Name: rust-anda -Version: 0.3.3 +Version: 0.4.8 Release: 1%?dist Summary: Andaman Build toolchain @@ -19,14 +17,19 @@ ExclusiveArch: %{rust_arches} BuildRequires: rust-packaging >= 21 BuildRequires: anda-srpm-macros -BuildRequires: openssl-devel +BuildRequires: openssl-devel-engine BuildRequires: git-core BuildRequires: libgit2-devel +BuildRequires: libssh2-devel +BuildRequires: mold -Requires: mock +Requires: mock-scm Requires: rpm-build Requires: createrepo_c Requires: git-core +Requires: libgit2 +Requires: script + %global _description %{expand: Andaman Build toolchain.} @@ -49,13 +52,11 @@ Summary: %{summary} %cargo_prep_online %build -%define __cargo /usr/bin/env CARGO_HOME=.cargo RUSTC_BOOTSTRAP=1 RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' /usr/bin/cargo %cargo_build -%__cargo run --release -p xtask -- manpage -%__cargo run --release -p xtask -- completion +cargo run --release -p xtask -- manpage +cargo run --release -p xtask -- completion %install -%define __cargo /usr/bin/env CARGO_HOME=.cargo RUSTC_BOOTSTRAP=1 RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' /usr/bin/cargo %cargo_install mkdir -p %{buildroot}%{_mandir}/man1/ diff --git a/anda/tools/buildsys/gradle/gradle.spec b/anda/tools/buildsys/gradle/gradle.spec index 34e9b010ac..272ee03f0f 100644 --- a/anda/tools/buildsys/gradle/gradle.spec +++ b/anda/tools/buildsys/gradle/gradle.spec @@ -1,5 +1,5 @@ Name: gradle -Version: 8.10.1 +Version: 8.12.1 Release: 1%?dist Summary: Powerful build system for the JVM URL: https://gradle.org/ diff --git a/anda/tools/buildsys/katsu/katsu.spec b/anda/tools/buildsys/katsu/katsu.spec index 5801c06bc8..6a86e30fd5 100644 --- a/anda/tools/buildsys/katsu/katsu.spec +++ b/anda/tools/buildsys/katsu/katsu.spec @@ -6,8 +6,8 @@ %global cargo_install_lib 0 Name: katsu -Version: 0.7.1 -Release: 2%?dist +Version: 0.9.0 +Release: 1%?dist Summary: Vicious image builder Packager: madonuko diff --git a/anda/tools/buildsys/mise/mise-fix-metadata-auto.diff b/anda/tools/buildsys/mise/mise-fix-metadata-auto.diff index 03ea6c9b6b..700f6e640d 100644 --- a/anda/tools/buildsys/mise/mise-fix-metadata-auto.diff +++ b/anda/tools/buildsys/mise/mise-fix-metadata-auto.diff @@ -1,15 +1,16 @@ ---- mise-2024.12.14/Cargo.toml 1970-01-01T00:00:01+00:00 -+++ mise-2024.12.14/Cargo.toml 2024-12-19T16:42:09.096450+00:00 -@@ -461,17 +461,6 @@ - ] +--- mise-2025.2.3/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ mise-2025.2.3/Cargo.toml 2025-02-09T16:23:06.178985+00:00 +@@ -476,18 +476,6 @@ + optional = true default-features = false -[target."cfg(windows)".dependencies.self_update] --version = "0.41" +-version = "0.42" -features = [ - "archive-zip", - "signatures", -] +-optional = true -default-features = false - -[target."cfg(windows)".dependencies.sevenz-rust] @@ -18,7 +19,7 @@ [lints.clippy] borrowed_box = "allow" -@@ -479,3 +468,4 @@ +@@ -495,3 +483,4 @@ level = "warn" priority = 0 check-cfg = ["cfg(coverage,coverage_nightly)"] diff --git a/anda/tools/buildsys/mise/rust-mise.spec b/anda/tools/buildsys/mise/rust-mise.spec index cfd76491ac..bd91c4a403 100644 --- a/anda/tools/buildsys/mise/rust-mise.spec +++ b/anda/tools/buildsys/mise/rust-mise.spec @@ -1,13 +1,14 @@ # Generated by rust2rpm 27 %bcond check 0 +%undefine __brp_mangle_shebangs %global crate mise Name: rust-mise -Version: 2024.12.14 -Release: %autorelease +Version: 2025.2.3 +Release: 1%?dist Summary: Front-end to your dev env -Provides: mise + License: MIT URL: https://crates.io/crates/mise Source: %{crates_source} diff --git a/anda/tools/buildsys/muon/muon.spec b/anda/tools/buildsys/muon/muon.spec index 037161437b..5d2bd15270 100644 --- a/anda/tools/buildsys/muon/muon.spec +++ b/anda/tools/buildsys/muon/muon.spec @@ -1,6 +1,6 @@ Name: muon -Version: 0.3.0 -Release: 1%{?dist} +Version: 0.4.0 +Release: 1%?dist Summary: A meson-compatible build system # muon is licensed under the GPL version 3 (see LICENSE). Tests under tests/project were copied from the meson project tests and are licensed under Apache 2.0. @@ -15,6 +15,7 @@ BuildRequires: libcurl-devel BuildRequires: libarchive-devel BuildRequires: libpkgconf-devel BuildRequires: scdoc +BuildRequires: git-core %description An implementation of the meson build system in c99 with minimal dependencies. diff --git a/anda/tools/buildsys/muon/update.rhai b/anda/tools/buildsys/muon/update.rhai index 4425e2426d..61177c274a 100644 --- a/anda/tools/buildsys/muon/update.rhai +++ b/anda/tools/buildsys/muon/update.rhai @@ -1 +1,4 @@ -rpm.version(get("https://muon.build/releases/").json_arr().pop().name); +let versions = get("https://muon.build/releases/").json().keys(); +versions.sort(); +versions.pop(); +rpm.version(versions.pop()); diff --git a/anda/tools/buildsys/sccache/rust-sccache.spec b/anda/tools/buildsys/sccache/rust-sccache.spec index 133da145dd..dbe756c5a2 100644 --- a/anda/tools/buildsys/sccache/rust-sccache.spec +++ b/anda/tools/buildsys/sccache/rust-sccache.spec @@ -13,8 +13,8 @@ %global crate sccache Name: rust-sccache -Version: 0.8.1 -Release: %autorelease +Version: 0.9.1 +Release: 1%?dist Summary: Ccache-like tool License: Apache-2.0 diff --git a/anda/tools/buildsys/subatomic/subatomic.spec b/anda/tools/buildsys/subatomic/subatomic.spec index 20dde9701b..b039e8f548 100644 --- a/anda/tools/buildsys/subatomic/subatomic.spec +++ b/anda/tools/buildsys/subatomic/subatomic.spec @@ -1,7 +1,7 @@ %define debug_package %{nil} Name: subatomic -Version: 0.9.3 +Version: 0.9.5 Release: 1%?dist Summary: A modern package delivery system diff --git a/anda/tools/cbfstool/update.rhai b/anda/tools/cbfstool/update.rhai index 97ba221d82..7e27695ddc 100644 --- a/anda/tools/cbfstool/update.rhai +++ b/anda/tools/cbfstool/update.rhai @@ -1 +1 @@ -rpm.version(gh("coreboot/coreboot")); \ No newline at end of file +rpm.version(gh_tag("coreboot/coreboot")); diff --git a/anda/tools/cuda-nvcc/anda.hcl b/anda/tools/cuda-nvcc/anda.hcl new file mode 100644 index 0000000000..e82073db16 --- /dev/null +++ b/anda/tools/cuda-nvcc/anda.hcl @@ -0,0 +1,5 @@ +project "pkg" { + rpm { + spec = "cuda-nvcc.spec" + } +} diff --git a/anda/tools/cuda-nvcc/cuda-nvcc.spec b/anda/tools/cuda-nvcc/cuda-nvcc.spec new file mode 100644 index 0000000000..e85dab437c --- /dev/null +++ b/anda/tools/cuda-nvcc/cuda-nvcc.spec @@ -0,0 +1,189 @@ +%global real_name cuda_nvcc + +%global debug_package %{nil} +%global __strip /bin/true +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global major_package_version 12-6 + +Name: %(echo %real_name | tr '_' '-') +Epoch: 1 +Version: 12.6.85 +Release: 1%{?dist} +Summary: CUDA Compiler (NVCC) +License: CUDA Toolkit +URL: https://developer.nvidia.com/cuda-toolkit +ExclusiveArch: x86_64 aarch64 + +Source0: https://developer.download.nvidia.com/compute/cuda/redist/%{real_name}/linux-x86_64/%{real_name}-linux-x86_64-%{version}-archive.tar.xz +Source1: https://developer.download.nvidia.com/compute/cuda/redist/%{real_name}/linux-sbsa/%{real_name}-linux-sbsa-%{version}-archive.tar.xz +Source3: nvcc.profile + +Requires(post): ldconfig +Conflicts: %{name}-%{major_package_version} < %{?epoch:%{epoch}:}%{version}-%{release} + +# CUDA 12.4 does not support GCC 14+: +%if 0%{?fedora} >= 40 +Requires: cuda-gcc +%endif + +%description +The compilation trajectory involves several splitting, compilation, +preprocessing, and merging steps for each CUDA source file. It is the purpose of +nvcc, the CUDA compiler driver, to hide the intricate details of CUDA +compilation from developers. It accepts a range of conventional compiler +options, such as for defining macros and include/library paths, and for steering +the compilation process. All non-CUDA compilation steps are forwarded to a C++ +host compiler that is supported by nvcc, and nvcc translates its options to +appropriate host compiler command line options. + +NVVM IR is a compiler IR (intermediate representation) based on the LLVM IR. +The NVVM IR is designed to represent GPU compute kernels (for example, CUDA +kernels). High-level language front-ends, like the CUDA C compiler front-end, +can generate NVVM IR. The NVVM compiler (which is based on LLVM) generates PTX +code from NVVM IR. + +%prep +%ifarch x86_64 +%setup -q -n %{real_name}-linux-x86_64-%{version}-archive +%endif + +%ifarch aarch64 +%setup -q -T -b 1 -n %{real_name}-linux-sbsa-%{version}-archive +%endif + +%install +mkdir -p %{buildroot}%{_bindir} + +mkdir -p %{buildroot}%{_includedir} +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_datadir}/nvcc/ + +cp -fr bin/* nvvm/bin/* %{buildroot}%{_bindir}/ +cp -fr include/* nvvm/include/* %{buildroot}%{_includedir}/ +cp -fr lib/* nvvm/lib64/* %{buildroot}%{_libdir}/ +cp -fr nvvm/libdevice/* %{buildroot}%{_datadir}/nvcc/ + +cp -f %{SOURCE3} %{buildroot}%{_bindir}/ + +# Set proper variables +sed -i \ + -e 's|LIBDIR|%{_libdir}|g' \ + -e 's|INCLUDE_DIR|%{_includedir}/cuda|g' \ + %{buildroot}/%{_bindir}/nvcc.profile + +%{?ldconfig_scriptlets} + +%files +%license LICENSE +%{_bindir}/bin2c +%{_bindir}/cicc +%dir %{_bindir}/crt/ +%{_bindir}/crt/link.stub +%{_bindir}/crt/prelink.stub +%{_bindir}/cudafe++ +%{_bindir}/fatbinary +%{_bindir}/nvcc +%{_bindir}/__nvcc_device_query +%{_bindir}/nvcc.profile +%{_bindir}/nvlink +%{_bindir}/ptxas +%dir %{_datadir}/nvcc/ +%{_datadir}/nvcc/libdevice.10.bc +%dir %{_includedir}/crt/ +%{_includedir}/crt/common_functions.h +%{_includedir}/crt/cudacc_ext.h +%{_includedir}/crt/device_double_functions.h +%{_includedir}/crt/device_double_functions.hpp +%{_includedir}/crt/device_functions.h +%{_includedir}/crt/device_functions.hpp +%{_includedir}/crt/func_macro.h +%{_includedir}/crt/host_config.h +%{_includedir}/crt/host_defines.h +%{_includedir}/crt/host_runtime.h +%{_includedir}/crt/math_functions.h +%{_includedir}/crt/math_functions.hpp +%{_includedir}/crt/mma.h +%{_includedir}/crt/mma.hpp +%{_includedir}/crt/nvfunctional +%{_includedir}/crt/sm_70_rt.h +%{_includedir}/crt/sm_70_rt.hpp +%{_includedir}/crt/sm_80_rt.h +%{_includedir}/crt/sm_80_rt.hpp +%{_includedir}/crt/sm_90_rt.h +%{_includedir}/crt/sm_90_rt.hpp +%{_includedir}/crt/storage_class.h +%{_includedir}/fatbinary_section.h +%{_includedir}/nvPTXCompiler.h +%{_includedir}/nvvm.h +%{_libdir}/libnvptxcompiler_static.a +%{_libdir}/libnvvm.so +%{_libdir}/libnvvm.so.4 +%{_libdir}/libnvvm.so.4.0.0 + +%changelog +* Fri Dec 13 2024 Simone Caronni - 1:12.6.85-1 +- Update to 12.6.85. +- Require new cuda-gcc profile package. + +* Thu Sep 19 2024 Simone Caronni - 1:12.6.68-1 +- Update to 12.6.68. + +* Thu Jul 11 2024 Simone Caronni - 1:12.5.82-1 +- Update to 12.5.82. + +* Thu Jul 11 2024 Simone Caronni - 1:12.4.99-1 +- Update to 12.4.99. + +* Fri Mar 22 2024 Simone Caronni - 1:12.4.99-2 +- Correct GCC requirements. + +* Tue Mar 12 2024 Simone Caronni - 1:12.4.99-1 +- Update to 12.4.99. +- Drop ppc64le. + +* Sat Jan 06 2024 Simone Caronni - 1:12.3.107-1 +- Update to 12.3.107. + +* Tue Nov 28 2023 Simone Caronni - 1:12.3.103-1 +- Update to 12.3.103. + +* Thu Sep 28 2023 Simone Caronni - 1:12.2.140-1 +- Update to 12.2.140. + +* Tue Jul 11 2023 Simone Caronni - 1:12.2.91-1 +- Update to 12.2.91. + +* Thu Jun 08 2023 Simone Caronni - 1:12.1.105-1 +- Update to 12.1.105. + +* Tue Apr 11 2023 Simone Caronni - 1:12.1.66-1 +- Update to 12.1.66. + +* Mon Mar 13 2023 Simone Caronni - 1:12.0.140-2 +- Add requirement on cuda-gcc for Fedora 38+. + +* Sat Feb 25 2023 Simone Caronni - 1:12.0.140-1 +- Update to 12.0.140. + +* Tue Dec 13 2022 Simone Caronni - 1:12.0.76-1 +- Update to 12.0.76. + +* Fri Nov 11 2022 Simone Caronni - 1:11.8.89-1 +- Update to 11.8.89. +- Use aarch64 archive in place of sbsa. + +* Sun Sep 04 2022 Simone Caronni - 1:11.7.99-1 +- Update to 11.7.99. + +* Thu Jun 23 2022 Simone Caronni - 1:11.7.64-1 +- Update to 11.7.64. + +* Thu Mar 31 2022 Simone Caronni - 1:11.6.124-1 +- Update to 11.6.124 (CUDA 11.6.2). + +* Tue Mar 08 2022 Simone Caronni - 1:11.6.112-1 +- Update to 11.6.112 (CUDA 11.6.1). + +* Fri Jan 28 2022 Simone Caronni - 1:11.6.55-1 +- First build with the new tarball components. diff --git a/anda/tools/cuda-nvcc/nvcc.profile b/anda/tools/cuda-nvcc/nvcc.profile new file mode 100644 index 0000000000..056b753533 --- /dev/null +++ b/anda/tools/cuda-nvcc/nvcc.profile @@ -0,0 +1,6 @@ +NVVMIR_LIBRARY_DIR = /usr/share/cuda +PATH += /usr/libexec/cuda/open64/bin: +INCLUDES += "-IINCLUDE_DIR" +LIBRARIES =+ "-LLIBDIR" +CUDAFE_FLAGS += +PTXAS_FLAGS += diff --git a/anda/tools/cuda-nvcc/update.rhai b/anda/tools/cuda-nvcc/update.rhai new file mode 100644 index 0000000000..159f652d22 --- /dev/null +++ b/anda/tools/cuda-nvcc/update.rhai @@ -0,0 +1,3 @@ +import "andax/nvidia.rhai" as nvidia; + +rpm.version(nvidia::nvidia_component_version("cuda_nvcc")); diff --git a/anda/tools/electron/electron.spec b/anda/tools/electron/electron.spec index 367a5eb721..28673a59e2 100644 --- a/anda/tools/electron/electron.spec +++ b/anda/tools/electron/electron.spec @@ -12,7 +12,7 @@ %global __provides_exclude_from %{_libdir}/%{name}/.*\\.so Name: electron -Version: 32.0.2 +Version: 34.2.0 Release: 1%?dist Summary: Build cross platform desktop apps with web technologies License: MIT diff --git a/anda/tools/gcm-core/gcm-core.spec b/anda/tools/gcm-core/gcm-core.spec index 2091ea8a0c..f3d14992ed 100644 --- a/anda/tools/gcm-core/gcm-core.spec +++ b/anda/tools/gcm-core/gcm-core.spec @@ -6,9 +6,9 @@ %global forgeurl https://github.com/GitCredentialManager/git-credential-manager Name: gcm-core -Version: 2.5.1 +Version: 2.6.1 %forgemeta -Release: 2%?dist +Release: 1%?dist Summary: Secure, cross-platform Git credential storage License: MIT diff --git a/anda/tools/java-binfmt/anda.hcl b/anda/tools/java-binfmt/anda.hcl new file mode 100644 index 0000000000..e1f765c8cd --- /dev/null +++ b/anda/tools/java-binfmt/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "java-binfmt.spec" + } +} diff --git a/anda/tools/java-binfmt/java-binfmt.spec b/anda/tools/java-binfmt/java-binfmt.spec new file mode 100644 index 0000000000..2f27561804 --- /dev/null +++ b/anda/tools/java-binfmt/java-binfmt.spec @@ -0,0 +1,113 @@ +%global commit 9b3c3202435720ad5d76928c94c8f1c6e22693b7 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20250131 +%global _binfmtdir %{_exec_prefix}/lib/binfmt.d + +Name: java-binfmt +Version: 1.0.0^%{commit_date}git%{shortcommit} +Release: 2%{?dist} +Summary: Binfmt wrappers and utilities for Java and Jar files. +### License for the C file used in the binary. +License: GPL-2.0-or-later +Source0: https://raw.githubusercontent.com/terrapkg/pkg-java-binfmt/%{commit}/javaclassname.c +Source1: https://raw.githubusercontent.com/terrapkg/pkg-java-binfmt/%{commit}/javawrapper +Source2: https://raw.githubusercontent.com/terrapkg/pkg-java-binfmt/%{commit}/jarwrapper +Source3: https://raw.githubusercontent.com/terrapkg/pkg-java-binfmt/%{commit}/Java.conf +Source4: https://raw.githubusercontent.com/terrapkg/pkg-java-binfmt/%{commit}/ExecutableJAR.conf +Source5: https://raw.githubusercontent.com/terrapkg/pkg-java-binfmt/%{commit}/Applet.conf +Source6: https://raw.githubusercontent.com/terrapkg/pkg-java-binfmt/%{commit}/Applet-lib64.conf +BuildRequires: gcc +BuildRequires: systemd-rpm-macros +Packager: ShinyGil + +%description +This package installs binfmt files for use with Java wrappers. + +%package -n java-jarwrapper +Summary: Wrapper to execute Jar files +Requires: bash +Requires: java +Requires(post): systemd +Requires(postun): systemd +BuildArch: noarch + +%description -n java-jarwrapper +A binfmt wrapper to more easily execute Jar files. + +%package -n java-javawrapper +Summary: Wrapper for Java +Requires: bash +Requires: java +Requires: java-javaclassname +Requires(post): systemd +Requires(postun): systemd +BuildArch: noarch + +%description -n java-javawrapper +A wrapper for Java functions. + +%package -n java-javaclassname +Summary: The javaclassname executable +Requires: java + +%description -n java-javaclassname +The javaclassname executable for use with javawrapper. + +%package -n java-applet-binfmt +Summary: binfmt file for Java applets +Requires(post): systemd +Requires(postun): systemd +Recommends: adoptium-temurin-java-repository +BuildArch: noarch + +%description -n java-applet-binfmt +This binfmt file runs Java applets in the usual way. A compatible Java version will need to be manually installed and configured. + +%build +/usr/bin/gcc %{optflags} -o javaclassname %{S:0} + +install -Dpm755 javaclassname %{buildroot}%{_bindir}/javaclassname +install -Dpm755 %{SOURCE1} %{buildroot}%{_bindir}/javawrapper +install -Dpm755 %{SOURCE2} %{buildroot}%{_bindir}/jarwrapper + +install -Dpm644 %{SOURCE3} %{buildroot}%{_binfmtdir}/Java.conf +install -Dpm644 %{SOURCE4} %{buildroot}%{_binfmtdir}/ExecutableJAR.conf +install -Dpm644 %{SOURCE5} %{buildroot}%{_binfmtdir}/Applet.conf +install -Dpm644 %{SOURCE6} %{buildroot}%{_binfmtdir}/Applet-lib64.conf + +%files -n java-jarwrapper +%{_binfmtdir}/ExecutableJAR.conf +%{_bindir}/jarwrapper + +%files -n java-javawrapper +%{_binfmtdir}/Java.conf +%{_bindir}/javawrapper + +%files -n java-javaclassname +%{_bindir}/javaclassname + +%files -n java-applet-binfmt +%{_binfmtdir}/Applet.conf +%{_binfmtdir}/Applet-lib64.conf + +%post -n java-jarwrapper +/bin/systemctl --system try-restart systemd-binfmt.service &>/dev/null || : + +%postun -n java-jarwrapper +/bin/systemctl --system try-restart systemd-binfmt.service &>/dev/null || : + +%post -n java-javawrapper +/bin/systemctl --system try-restart systemd-binfmt.service &>/dev/null || : + +%postun -n java-javawrapper +/bin/systemctl --system try-restart systemd-binfmt.service &>/dev/null || : + +%post -n java-applet-binfmt +/bin/systemctl --system try-restart systemd-binfmt.service &>/dev/null || : + +%postun -n java-applet-binfmt +/bin/systemctl --system try-restart systemd-binfmt.service &>/dev/null || : + +%changelog +* Thu Jan 30 2025 ShinyGil +- Initial package diff --git a/anda/tools/java-binfmt/update.rhai b/anda/tools/java-binfmt/update.rhai new file mode 100644 index 0000000000..4adf10e766 --- /dev/null +++ b/anda/tools/java-binfmt/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("terrapkg/pkg-java-binfmt")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/tools/kmonad/anda.hcl b/anda/tools/kmonad/anda.hcl new file mode 100644 index 0000000000..0cf265114c --- /dev/null +++ b/anda/tools/kmonad/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "kmonad.spec" + } +} diff --git a/anda/tools/kmonad/kmonad.spec b/anda/tools/kmonad/kmonad.spec new file mode 100644 index 0000000000..e4bee0bd80 --- /dev/null +++ b/anda/tools/kmonad/kmonad.spec @@ -0,0 +1,93 @@ +%global pkg_name kmonad + +Name: %{pkg_name} +Version: 0.4.3 +Release: 1%{?dist} +Summary: An advanced keyboard manager + +License: MIT +URL: https://hackage.haskell.org/package/%{name} +Source0: https://github.com/%{name}/%{name}/archive/%{version}.tar.gz + +BuildRequires: gcc-c++ +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-rpm-macros + +BuildRequires: ghc-base-prof +BuildRequires: ghc-cereal-prof +BuildRequires: ghc-lens-prof +BuildRequires: ghc-megaparsec-prof +BuildRequires: ghc-mtl-prof +BuildRequires: ghc-optparse-applicative-prof +BuildRequires: ghc-resourcet-prof +BuildRequires: ghc-rio-prof +BuildRequires: ghc-unliftio-devel + +BuildRequires: systemd-rpm-macros + +Packager: sadlerm + +%description +The Onion of Keyboard Management Tools, available on GNU/Linux, Windows, and MacOS! + + +%package -n ghc-%{name} +Summary: Haskell %{name} library + +%description -n ghc-%{name} +This package contains the Haskell %{name} library. + + +%package -n ghc-%{name}-devel +Summary: Haskell %{name} library development files +Requires: ghc-compiler = %{ghc_version} +Requires: ghc-%{name} = %{version}-%{release} + +%description -n ghc-%{name}-devel +This package provides the Haskell %{name} library development files. + + +%package -n ghc-%{name}-prof +Summary: Haskell %{name} profiling library +Requires: ghc-%{name}-devel = %{version}-%{release} +Supplements: (ghc-%{name}-devel and ghc-prof) + +%description -n ghc-%{name}-prof +This package provides the Haskell %{name} profiling library. + + +%prep +%autosetup + +%build +%ghc_lib_build + +%install +%ghc_lib_install +install -Dm644 startup/kmonad@.service -t %{buildroot}%{_unitdir} + + +%files +%license LICENSE +%doc README.md +%doc doc/faq.md doc/quick-reference.md +%{_bindir}/%{name} +%{_unitdir}/%{name}@.service + + +%files -n ghc-%{name} -f ghc-%{name}.files +%license LICENSE + + +%files -n ghc-%{name}-devel -f ghc-%{name}-devel.files +%doc CONTRIBUTING.md +%doc doc/module_structure.md + + +%files -n ghc-%{name}-prof -f ghc-%{name}-prof.files + + + +%changelog +* Fri Jan 17 2025 sadlerm +- Initial package diff --git a/anda/tools/kmonad/update.rhai b/anda/tools/kmonad/update.rhai new file mode 100644 index 0000000000..c13a4a9044 --- /dev/null +++ b/anda/tools/kmonad/update.rhai @@ -0,0 +1,4 @@ +rpm.version(gh("kmonad/kmonad")); +if rpm.changed() { + rpm.release(); +} diff --git a/anda/tools/pet/pet.spec b/anda/tools/pet/pet.spec index 343139088c..63fd89a540 100644 --- a/anda/tools/pet/pet.spec +++ b/anda/tools/pet/pet.spec @@ -1,7 +1,7 @@ %define debug_package %nil Name: pet -Version: 0.9.0 +Version: 1.0.1 Release: 1%?dist Summary: Simple command-line snippet manager URL: https://github.com/knqyf263/pet diff --git a/anda/tools/picotool/picotool.spec b/anda/tools/picotool/picotool.spec index 364513e54b..ef43a7ba47 100644 --- a/anda/tools/picotool/picotool.spec +++ b/anda/tools/picotool/picotool.spec @@ -1,6 +1,6 @@ -%define sdk_version 2.0.0 +%define sdk_version 2.1.0 Name: picotool -Version: 2.0.0 +Version: 2.1.0 Release: 1%?dist Summary: Tool to inspect RP2040 binaries License: BSD-3-Clause diff --git a/anda/tools/rpi-utils/dtoverlay-manpage.patch b/anda/tools/rpi-utils/dtoverlay-manpage.patch new file mode 100644 index 0000000000..4c89902268 --- /dev/null +++ b/anda/tools/rpi-utils/dtoverlay-manpage.patch @@ -0,0 +1,12 @@ +diff --git a/dtmerge/CMakeLists.txt b/dtmerge/CMakeLists.txt +index 7e2702e..9b101c4 100644 +--- a/dtmerge/CMakeLists.txt ++++ b/dtmerge/CMakeLists.txt +@@ -23,6 +23,7 @@ add_executable(dtoverlay dtoverlay_main.c utils.c) + target_link_libraries(dtoverlay dtovl) + install(TARGETS dtoverlay RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + install(FILES dtoverlay.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) ++install(FILES dtoverlay.2 DESTINATION ${CMAKE_INSTALL_MANDIR}/man2) + + add_custom_command(TARGET dtoverlay POST_BUILD COMMAND ln;-sf;dtoverlay;dtparam) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dtparam DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/anda/tools/rpi-utils/rpi-utils.spec b/anda/tools/rpi-utils/rpi-utils.spec index c79761ea6d..6148f0cc6d 100644 --- a/anda/tools/rpi-utils/rpi-utils.spec +++ b/anda/tools/rpi-utils/rpi-utils.spec @@ -1,84 +1,182 @@ -%global commit e75e3296b1cb4b5b9903d08eaebcc9cf343aa5e7 -%global commit_date 20241118 -%global shortcommit %(c=%{commit}; echo ${C:0:7}) +%global commit 6c3ace77f2299f9a2e442c2eb10d67ae73c949ba +%global commit_date 20250213 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +%define _unpackaged_files_terminate_build 0 Name: rpi-utils -Version: %commit_date.%shortcommit +Version: %{commit_date}.%{shortcommit} Release: 1%?dist Summary: A collection of scripts and simple applications for Raspberry Pi devices -License: BSD +License: BSD-3-Clause URL: https://github.com/raspberrypi/utils -Source0: %url/archive/%commit/utils-%commit.tar.gz +Source0: %{url}/archive/%{commit}.tar.gz +Patch0: dtoverlay-manpage.patch # BuildArch: noarch -BuildRequires: cmake dtc libfdt-devel g++ +BuildRequires: cmake dtc libfdt-devel gcc-c++ + +Requires: %{name}-dtmerge +Requires: %{name}-eeptools +Requires: %{name}-kdtc +Requires: %{name}-otpset +Requires: %{name}-overlaycheck +Requires: %{name}-ovmerge +Requires: %{name}-pinctrl +Requires: %{name}-piolib +Requires: %{name}-vcgencmd +Requires: %{name}-vclog +Requires: %{name}-vcmailbox %description -dtmerge - A tool for applying compiled DT overlays (*.dtbo) to base Device Tree files (*.dtb). Also includes the dtoverlay and dtparam utilities. -eeptools - Tools for creating and managing EEPROMs for HAT+ and HAT board. -kdtc - A tool for compiling overlays with #includes, etc., as used in the kernel tree. -otpset - A short script to help with reading and setting the customer OTP bits. -overlaycheck - A tool for validating the overlay files and README in a kernel source tree. -ovmerge - A tool for merging DT overlay source files (*-overlay.dts), flattening and sorting .dts files for easy comparison, displaying the include tree, etc. -pinctrl - A more powerful replacement for raspi-gpio, a tool for displaying and modifying the GPIO and pin muxing state of a system, bypassing the kernel. -piolib - A library for accessing the Pi 5's PIO hardware. -raspinfo - A short script to dump information about the Pi. Intended for the submission of bug reports. -vclog - A tool to get VideoCore 'assert' or 'msg' logs with optional -f to wait for new logs to arrive. +%{summary} + +%package dtmerge +Summary: A tool for applying compiled DT overlays (*.dtbo) to base Device Tree files (*.dtb) +%description dtmerge +%{summary}. Also includes the dtoverlay and dtparam utilities. + +%package eeptools +Summary: Tools for creating and managing EEPROMs for HAT+ and HAT board +%description eeptools +%{summary}. + +%package kdtc +Requires: dtc +Summary: A tool for compiling overlays with #includes, etc., as used in the kernel tree +%description kdtc +%{summary}. + +%package otpset +Requires: rpi-utils-vcmailbox = %{version} +Summary: A short script to help with reading and setting the customer OTP bits +%description otpset +%{summary}. + +%package overlaycheck +Requires: rpi-utils-dtmerge = %{version} +Requires: rpi-utils-ovmerge = %{version} +Summary: A tool for validating the overlay files and README in a kernel source tree +%description overlaycheck +%{summary}. + +%package ovmerge +Summary: A tool for merging DT overlay source files (*-overlay.dts), flattening and sorting .dts files for easy comparison, displaying the include tree, etc +%description ovmerge +%{summary}. + +%package pinctrl +Summary: A more powerful replacement for raspi-gpio, a tool for displaying and modifying the GPIO and pin muxing state of a system, bypassing the kernel +%description pinctrl +%{summary}. + +%package piolib +Summary: A library for accessing the Pi 5's PIO hardware +%description piolib +%{summary}. + +%package vcgencmd +Summary: Query the VideoCore for information +%description vcgencmd +A command line utility that can get various pieces of information +from the VideoCore GPU on the Raspberry Pi. + +%package vcmailbox +Summary: Send messages to the VideoCore via the mailbox +%description vcmailbox +A low-level utility for sending mailbox messages to the VideoCore. + +%package vclog +Summary: A tool to get VideoCore 'assert' or 'msg' logs with optional -f to wait for new logs to arrive +%description vclog +%{summary}. %prep -%autosetup -n utils-%commit +%autosetup -p1 -n utils-%commit %build -cmake . -make +%cmake +%cmake_build %install -mkdir -p %buildroot%_bindir -install -pm755 dtmerge/dtmerge %buildroot%_bindir/ -install -pm755 dtmerge/dtoverlay %buildroot%_bindir/ -install -pm755 dtmerge/dtparam %buildroot%_bindir/ -install -pm755 eeptools/eepdump %buildroot%_bindir/ -install -pm755 eeptools/eepmake %buildroot%_bindir/ -install -pm755 eeptools/eepflash.sh %buildroot%_bindir/ -install -pm755 kdtc/kdtc %buildroot%_bindir/ -install -pm755 otpset/otpset %buildroot%_bindir/ -install -pm755 overlaycheck/overlaycheck %buildroot%_bindir/ -install -pm755 ovmerge/ovmerge %buildroot%_bindir/ -install -pm755 pinctrl/pinctrl %buildroot%_bindir/ -install -pm755 piolib/piopwm %buildroot%_bindir/ -install -pm755 piolib/dpi_interlace %buildroot%_bindir/ -install -pm755 piolib/pioseq %buildroot%_bindir/ -install -pm755 piolib/piotest %buildroot%_bindir/ -install -pm755 piolib/piows2812 %buildroot%_bindir/ -install -pm755 piolib/rp1sm %buildroot%_bindir/ -install -pm755 raspinfo/raspinfo %buildroot%_bindir/ -install -pm755 vcgencmd/vcgencmd %buildroot%_bindir/ -install -pm755 vclog/vclog %buildroot%_bindir/ -install -pm755 vcmailbox/vcmailbox %buildroot%_bindir/ +%cmake_install %files %doc README.md -%_bindir/dtmerge -%_bindir/dtoverlay -%_bindir/dtparam -%_bindir/eepdump -%_bindir/eepmake -%_bindir/eepflash.sh -%_bindir/kdtc -%_bindir/otpset -%_bindir/overlaycheck -%_bindir/ovmerge -%_bindir/pinctrl -%_bindir/piopwm -%_bindir/dpi_interlace -%_bindir/pioseq -%_bindir/piotest -%_bindir/piows2812 -%_bindir/rp1sm -%_bindir/raspinfo -%_bindir/vcgencmd -%_bindir/vclog -%_bindir/vcmailbox +%license LICENCE + +%files dtmerge +%license LICENCE +%{_bindir}/dt* +%{_mandir}/man1/dtmerge.1.gz +%{_mandir}/man1/dtoverlay.1.gz +%{_mandir}/man1/dtparam.1.gz +%{_mandir}/man2/dtoverlay.2.gz + +%files eeptools +%doc eeptools/README.md +%license LICENCE +%{_bindir}/eep* + +%files kdtc +%doc kdtc/README.md +%license LICENCE +%{_bindir}/kdtc + +%files otpset +%doc otpset/README.md +%license LICENCE +%{_bindir}/otpset + +%files overlaycheck +%doc overlaycheck/README.md +%license LICENCE +%{_bindir}/overlaycheck + +%files ovmerge +%doc ovmerge/README.md +%license LICENCE +%{_bindir}/ovmerge + +%files pinctrl +%doc pinctrl/README.md +%license LICENCE +%{_bindir}/pinctrl +%{_datadir}/bash-completion/completions/pinctrl + +%files piolib +%doc piolib/README.md +%license LICENCE +%{_bindir}/apitest +%{_bindir}/dpi_csync +%{_bindir}/piopwm +%{_bindir}/pioseq +%{_bindir}/piotest +%{_bindir}/piows2812 +%{_bindir}/quadenc +%{_bindir}/rp1sm + +%files vcgencmd +%license LICENCE +%{_bindir}/vcgencmd +%{_mandir}/man1/vcgencmd.1.gz +%{_datadir}/bash-completion/completions/vcgencmd + +%files vclog +%doc vclog/README.md +%license LICENCE +%{_bindir}/vclog + +%files vcmailbox +%license LICENCE +%{_bindir}/vcmailbox +%{_mandir}/man1/vcmailbox.1.gz +%{_mandir}/man7/vcmailbox.7.gz +%{_mandir}/man7/raspiotp.7.gz +%{_mandir}/man7/raspirev.7.gz %changelog +* Tue Dec 17 2024 sadlerm +- Split into individual subpackages and no longer package raspinfo + * Mon Nov 18 2024 Owen-sz -- Package Raspberry Pi Utils \ No newline at end of file +- Package Raspberry Pi Utils diff --git a/anda/tools/sbctl/sbctl.spec b/anda/tools/sbctl/sbctl.spec index 73263d5449..13c3f15f6a 100644 --- a/anda/tools/sbctl/sbctl.spec +++ b/anda/tools/sbctl/sbctl.spec @@ -1,5 +1,5 @@ Name: sbctl -Version: 0.15.4 +Version: 0.16 Release: 1%?dist Summary: Secure Boot key manager diff --git a/anda/tools/sops/sops.spec b/anda/tools/sops/sops.spec index a7d01ac821..dc19ea0be3 100644 --- a/anda/tools/sops/sops.spec +++ b/anda/tools/sops/sops.spec @@ -1,6 +1,6 @@ %define debug_package %nil Name: sops -Version: 3.9.0 +Version: 3.9.4 Release: 1%?dist Summary: Simple and flexible tool for managing secrets License: MPL-2.0 diff --git a/anda/tools/spotx-bash/spotx-bash.spec b/anda/tools/spotx-bash/spotx-bash.spec index 295fa82ccb..afd2beb673 100644 --- a/anda/tools/spotx-bash/spotx-bash.spec +++ b/anda/tools/spotx-bash/spotx-bash.spec @@ -1,5 +1,5 @@ -%global commit 0143cd113cdec0f0516beba3afe46e42e69b8b1c -%global commit_date 20241119 +%global commit d38a66e98dfa1289b4c0752ef40488aac07c9484 +%global commit_date 20250210 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: spotx-bash diff --git a/anda/tools/yt-dlp/anda.hcl b/anda/tools/yt-dlp/anda.hcl index 8cba7d3c07..a318622eba 100644 --- a/anda/tools/yt-dlp/anda.hcl +++ b/anda/tools/yt-dlp/anda.hcl @@ -1,9 +1,8 @@ project pkg { rpm { - spec = "yt-dlp-nightly.spec" + spec = "yt-dlp-git.spec" } labels { - nightly = "1" mock = 1 } } diff --git a/anda/tools/yt-dlp/update.rhai b/anda/tools/yt-dlp/update.rhai index 8bfba97bcf..0fc668a1ea 100644 --- a/anda/tools/yt-dlp/update.rhai +++ b/anda/tools/yt-dlp/update.rhai @@ -1,8 +1,4 @@ -if filters.contains("nightly") { - rpm.global("commit", gh_commit("yt-dlp/yt-dlp")); - if rpm.changed() { - rpm.global("ver", gh("yt-dlp/yt-dlp")); - rpm.global("commit_date", date()); - rpm.release(); - } +rpm.version(gh("yt-dlp/yt-dlp-master-builds")); +if rpm.changed() { + rpm.release(); } diff --git a/anda/tools/yt-dlp/yt-dlp-git.spec b/anda/tools/yt-dlp/yt-dlp-git.spec new file mode 100644 index 0000000000..65b7b5faba --- /dev/null +++ b/anda/tools/yt-dlp/yt-dlp-git.spec @@ -0,0 +1,135 @@ +#bcond_without tests +%global oldpkgname yt-dlp-nightly + +Name: yt-dlp-git +Version: 2025.02.11.213243 +Release: 1%?dist +Summary: A command-line program to download videos from online video platforms + +License: Unlicense +URL: https://github.com/yt-dlp/yt-dlp +# License of the specfile +Source: https://src.fedoraproject.org/rpms/yt-dlp/raw/rawhide/f/yt-dlp.spec.license + +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3dist(hatchling) +BuildRequires: python3dist(pip) + +%if %{with tests} +# Needed for %%check +BuildRequires: %{py3_dist pytest} +%endif + +# Needed for docs +BuildRequires: pandoc +BuildRequires: make + +BuildRequires: anda-srpm-macros + +# ffmpeg-free is now available in Fedora. +Recommends: /usr/bin/ffmpeg +Recommends: /usr/bin/ffprobe + +Conflicts: yt-dlp + +Suggests: python3dist(keyring) + +Provides: %{oldpkgname} = 1:0-1%?dist +Obsoletes: %{oldpkgname} < 0:20250117.git~1643686-2%?dist + +%global _description %{expand: +yt-dlp is a command-line program to download videos from many different online +video platforms, such as youtube.com. The project is a fork of youtube-dl with +additional features and fixes.} + +%description %{_description} This package is built from the yt-dlp master branch. + +%package bash-completion +Summary: Bash completion for yt-dlp +Requires: %{name} = %{version}-%{release} +Requires: bash-completion +Supplements: (%{name} and bash-completion) + +Conflicts: yt-dlp-bash-completion +Provides: %{oldpkgname}-bash-completion = 1:0-1%?dist +Obsoletes: %{oldpkgname}-bash-completion < 0:20250117.git~1643686-2%?dist + +%description bash-completion +Bash command line completion support for %{name}. + +%package zsh-completion +Summary: Zsh completion for %{name} +Requires: %{name} = %{version}-%{release} +Requires: zsh +Supplements: (%{name} and zsh) + +Conflicts: yt-dlp-zsh-completion +Provides: %{oldpkgname}-zsh-completion = 1:0-1%?dist +Obsoletes: %{oldpkgname}-zsh-completion < 0:20250117.git~1643686-2%?dist + +%description zsh-completion +Zsh command line completion support for %{name}. + +%package fish-completion +Summary: Fish completion for %{name} +Requires: %{name} = %{version}-%{release} +Requires: fish +Supplements: (%{name} and fish) + +Conflicts: yt-dlp-fish-completion +Provides: %{oldpkgname}-fish-completion = 1:0-1%?dist +Obsoletes: %{oldpkgname}-fish-completion < 0:20250117.git~1643686-2%?dist + +%description fish-completion +Fish command line completion support for %{name}. + +%prep +%git_clone %{url} master + +# Remove unnecessary shebangs +find -type f ! -executable -name '*.py' -print -exec sed -i -e '1{\@^#!.*@d}' '{}' + +# Relax version constraints +sed -i 's@"\(requests\|urllib3\|websockets\)>=.*"@"\1"@' pyproject.toml + +# Update version number +%{python3} devscripts/update-version.py %{version} -c master -r yt-dlp/yt-dlp-master-builds + +%generate_buildrequires +%pyproject_buildrequires -r + +%build +# Docs and shell completions +make yt-dlp.1 completion-bash completion-zsh completion-fish + +# Docs and shell completions are also included in the wheel. +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files yt_dlp + +%check +%if %{with tests} +# See https://github.com/yt-dlp/yt-dlp/blob/master/devscripts/run_tests.sh +%pytest -m 'not download' +%endif + +%files -f %{pyproject_files} +%{_bindir}/yt-dlp +%{_mandir}/man1/yt-dlp.1* +%doc README.md +%license LICENSE + +%files bash-completion +%{bash_completions_dir}/yt-dlp + +%files zsh-completion +%{zsh_completions_dir}/_yt-dlp + +%files fish-completion +%{fish_completions_dir}/yt-dlp.fish + +%changelog +%autochangelog