Compare commits

..

9 Commits

Author SHA1 Message Date
madomado db5891516e sdk8?
Signed-off-by: madomado <madonuko@outlook.com>
2025-03-02 19:20:43 +08:00
madomado 66d3138751 Update grayjay.spec
Signed-off-by: madomado <madonuko@outlook.com>
2025-03-02 19:13:49 +08:00
madomado 24d3b3023f dotnet-hostfxr-9.0
Signed-off-by: madomado <madonuko@outlook.com>
2025-03-02 19:00:28 +08:00
madomado f06b1389ff Update grayjay.spec
Signed-off-by: madomado <madonuko@outlook.com>
2025-03-02 18:57:10 +08:00
madomado 481f79f0c6 Update grayjay.spec
Signed-off-by: madomado <madonuko@outlook.com>
2025-03-02 18:53:51 +08:00
madomado 5d58d6fc93 this?
Signed-off-by: madomado <madonuko@outlook.com>
2025-03-02 18:33:09 +08:00
madomado 480ef1b0a9 Merge branch 'frawhide' into mado/w/grayjay 2025-03-02 00:36:33 +08:00
madomado 066d126ee4 Update grayjay.speca
Signed-off-by: madomado <madonuko@outlook.com>
2025-01-12 22:15:53 +08:00
madonuko 6acdd17115 add: grayjay 2025-01-12 21:43:42 +08:00
459 changed files with 6995 additions and 12081 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
"repoOwner": "terrapkg",
"repoName": "packages",
"resetAuthor": true,
"targetBranchChoices": ["el10", "f40", "f41", "f42", "frawhide"],
"targetBranchChoices": ["f39", "f40", "frawhide"],
"branchLabelMapping": {
"^sync-(.+)$": "$1"
}
+4 -4
View File
@@ -1,9 +1,9 @@
%global xurl https://files.pythonhosted.org/packages/e3/02/b33d4b92ebeba69d321814af706cdd734e6db7ff8f4ec06b312fa1983ea7/anki-25.02.4-cp39-abi3-manylinux_2_35_x86_64.whl
%global aurl https://files.pythonhosted.org/packages/af/28/789ad6f2ed63281756a609862f778df4cb2ac85b3bc65722a1d6773c16c8/anki-25.02.4-cp39-abi3-manylinux_2_35_aarch64.whl
%global qurl https://files.pythonhosted.org/packages/04/f0/1bef63c18a1cb00bfb1d26bd6532315f7c28681af9636a3bb82fbbffe767/aqt-25.02.4-py3-none-any.whl
%global xurl https://files.pythonhosted.org/packages/68/9c/7685bd012e597332f8ce379a31b0d58dd4eae960da96ff43e9fcd978c93f/anki-25.02-cp39-abi3-manylinux_2_35_x86_64.whl
%global aurl https://files.pythonhosted.org/packages/da/36/741cef7b7fce943d187784549fd8de8152986067d9226f384959c07770a7/anki-25.02-cp39-abi3-manylinux_2_35_aarch64.whl
%global qurl https://files.pythonhosted.org/packages/2c/bc/763589b97aa5c91acf3d834beaa473c25ca7f335c7b40954fd0d5fd41ddc/aqt-25.02-py3-none-any.whl
Name: anki-bin
Version: 25.02.4
Version: 25.02
Release: 1%?dist
Summary: Flashcard program for using space repetition learning (Installed with wheel)
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
+1 -1
View File
@@ -1,5 +1,5 @@
Name: anki-qt5
Version: 25.02.4
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
+1 -1
View File
@@ -1,5 +1,5 @@
Name: anki
Version: 25.02.4
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
@@ -1,8 +1,8 @@
%global __requires_exclude ^lib-.*.so
%global __provides_exclude ^lib-.*.so
%global ver Audacity-3.7.3
%global sanitized_ver %(echo %{ver} | sed 's/Audacity-//g')
%global ver Audacity 3.7.1
%global sanitized_ver %(sed 's/ *//;s/Audacity//' <<< "%{ver}")
Name: audacity-freeworld
Version: %{sanitized_ver}
-3
View File
@@ -1,4 +1 @@
rpm.global("ver", gh("audacity/audacity"));
if rpm.changed() {
rpm.release();
}
+22 -20
View File
@@ -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: 2.1.0
Version: 1.4.5
Release: 1%?dist
Summary: Cooling device control for Linux
License: GPL-3.0-or-later
@@ -21,19 +21,19 @@ Requires: hicolor-icon-theme
Requires: webkit2gtk4.1
Requires: libappindicator-gtk3
Requires: coolercontrold
BuildRequires: nodejs-npm libdrm-devel curl wget file mold
BuildRequires: git-core make nodejs-npm libdrm-devel curl wget file mold
BuildRequires: systemd-rpm-macros anda-srpm-macros cargo >= 1.75.0 cargo-rpm-macros
BuildRequires: binutils bison cmake flex gcc gcc-c++ libtool strace
BuildRequires: autoconf automake binutils bison flex gcc gcc-c++ gdb libtool pkgconf strace
BuildRequires: pkgconfig(webkit2gtk-4.1) pkgconfig(openssl) pkgconfig(librsvg-2.0)
BuildRequires: libappindicator-gtk3-devel
BuildRequires: python3-devel python3-wheel python3-liquidctl python3-setproctitle python3-fastapi python3-uvicorn python3-pip
BuildRequires: libappstream-glib
BuildRequires: desktop-file-utils
BuildRequires: cmake(Qt6)
BuildRequires: cmake(Qt6WebEngineWidgets)
%description %_desc
%package liqctld
Summary: CoolerControl daemon for interacting with liquidctl devices on a system level
Requires: coolercontrold
BuildRequires: python3-devel python3-wheel python3-liquidctl python3-setproctitle python3-fastapi python3-uvicorn python3-pip
%description liqctld %_desc
coolercontrol-liqctld is a CoolerControl daemon for interacting with liquidctl devices on a system level, and is
installed as the coolercontrol-liqctld application. Its main purpose is to wrap the underlying
@@ -43,8 +43,6 @@ It also enables parallel device communication and access to specific device prop
%package -n coolercontrold
Summary: Monitor and control your cooling devices.
Requires: coolercontrol-liqctld
BuildRequires: pkgconfig(webkit2gtk-4.1) pkgconfig(openssl) pkgconfig(librsvg-2.0)
BuildRequires: libappindicator-gtk3-devel
%description -n coolercontrold %_desc
coolercontrold is the main daemon containing the core logic for interfacing with devices, and installed as
"coolercontrold". It is meant to run in the background as a system daemon. It handles all device
@@ -61,31 +59,33 @@ popd
pushd coolercontrol-ui
npm ci --prefer-offline &
pushd src-tauri
%cargo_prep_online &
popd
popd
wait
%build
pushd coolercontrol-ui
npm run build-only &
pushd coolercontrold
%{cargo_license_online} > LICENSE.dependencies &
%cargo_build -- &
popd
pushd coolercontrol-liqctld
%pyproject_wheel
popd
pushd coolercontrol
%cmake
%cmake_build &
popd
pushd coolercontrold
pushd coolercontrol-ui
npm run build &
pushd src-tauri
%{cargo_license_online} > LICENSE.dependencies &
wait
cp -rfp ../coolercontrol-ui/dist/* resources/app/
%cargo_build
%cargo_build -f custom-protocol
popd
popd
%install
pushd coolercontrol-liqctld
@@ -99,8 +99,9 @@ install -Dpm755 target/rpm/coolercontrold %buildroot%_bindir/coolercontrold
install -Dpm644 LICENSE.dependencies %buildroot%_datadir/licenses/coolercontrold/LICENSE.dependencies
popd
pushd coolercontrol/
%cmake_install
pushd coolercontrol-ui/src-tauri
install -Dpm755 target/rpm/coolercontrol %buildroot%_bindir/coolercontrol
install -Dpm644 LICENSE.dependencies %buildroot%_datadir/licenses/%name/LICENSE.dependencies
popd
install -Dpm644 packaging/systemd/coolercontrol-liqctld.service %buildroot%_unitdir/coolercontrol-liqctld.service
@@ -134,6 +135,7 @@ appstream-util validate-relax --nonet %buildroot%_metainfodir/%rdnn.metainfo.xml
%files
%doc README.md
%license LICENSE
%license LICENSE.dependencies
%_bindir/coolercontrol
%_datadir/applications/%rdnn.desktop
%_datadir/metainfo/%rdnn.metainfo.xml
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-canary-openasar
Version: 0.0.663
Version: 0.0.601
Release: 1%?dist
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
+1 -1
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-canary
Version: 0.0.663
Version: 0.0.601
Release: 1%?dist
Summary: Free Voice and Text Chat for Gamers
URL: discord.com
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-openasar
Version: 0.0.93
Version: 0.0.87
Release: 1%?dist
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-ptb-openasar
Version: 0.0.140
Version: 0.0.132
Release: 1%?dist
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
+1 -1
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-ptb
Version: 0.0.140
Version: 0.0.132
Release: 1%?dist
Summary: Free Voice and Text Chat for Gamers.
URL: https://discord.com
+1 -1
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord
Version: 0.0.93
Version: 0.0.87
Release: 1%?dist
Summary: Free Voice and Text Chat for Gamers
URL: https://discord.com
+5 -20
View File
@@ -1,27 +1,22 @@
%global commit 9d85f1c24f5c6234e1672c96ea19b2dc990001e8
%global commit_date 20250423
%global commit 9c6bfe110a50f7f96cd5204205397a9ccd2548d4
%global commit_date 20250224
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: envision-nightly
Version: %commit_date.%shortcommit
Release: 1%?dist
Summary: UI for building, configuring and running Monado, the open source OpenXR runtime
SourceLicense: AGPL-3.0-or-later
License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR MIT OR Apache-2.0) AND AGPL-3.0-or-later AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND ISC AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib
License: AGPL-3.0-or-later
URL: https://gitlab.com/gabmus/envision/
Source0: %url/-/archive/%commit/envision-%commit.tar.gz
BuildRequires: anda-srpm-macros
BuildRequires: cargo
BuildRequires: cargo-rpm-macros
BuildRequires: meson
BuildRequires: ninja-build
BuildRequires: meson ninja-build cargo
BuildRequires: pkgconfig(glib-2.0) >= 2.66
BuildRequires: pkgconfig(gio-2.0) >= 2.66
BuildRequires: pkgconfig(gtk4) >= 4.10.0
BuildRequires: pkgconfig(vte-2.91-gtk4) >= 0.72.0
BuildRequires: pkgconfig(libadwaita-1)
BuildRequires: pkgconfig(libusb-1.0)
BuildRequires: pkgconfig(openssl)
BuildRequires: openssl-devel-engine
BuildRequires: openxr-devel
BuildRequires: libappstream-glib
BuildRequires: desktop-file-utils
@@ -35,27 +30,17 @@ Conflicts: envision
%prep
%autosetup -n envision-%commit
%cargo_prep_online
%build
# generate constants.rs from constants.rs.in
%meson
# skip subdir
sed -E "/^subdir\('src'\)/d" -i meson.build
%meson --reconfigure
%meson_build
%install
%meson_install
%cargo_install
%{cargo_license_online} > LICENSE.dependencies
%files
%doc README.md
%license LICENSE
%license LICENSE.dependencies
%_bindir/envision
%_datadir/applications/org.gabmus.envision.Devel.desktop
%_datadir/envision/
+1 -1
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: feishin
Version: 0.12.3
Version: 0.12.2
Release: 1%?dist
Summary: A modern self-hosted music player
License: GPL-3.0
-6
View File
@@ -1,6 +0,0 @@
project pkg {
arches = ["x86_64"]
rpm {
spec = "flatpost.spec"
}
}
@@ -1,16 +0,0 @@
commit 86a77b2e3d69a09f75992e6795903ab56df1a900 (HEAD -> main, fork/main)
Author: Adam Fidel <adam@fidel.id>
Date: Tue Apr 22 14:52:16 2025 -0500
feat: add MimeType to .desktop file
diff --git a/data/usr/share/applications/com.flatpost.flatpostapp.desktop b/data/usr/share/applications/com.flatpost.flatpostapp.desktop
index 73013fc..d1f321d 100644
--- a/data/usr/share/applications/com.flatpost.flatpostapp.desktop
+++ b/data/usr/share/applications/com.flatpost.flatpostapp.desktop
@@ -4,3 +4,4 @@ Exec=python3 /usr/bin/flatpost
Icon=com.flatpost.flatpostapp
Type=Application
Categories=Utility;
+MimeType=application/vnd.flatpak.ref;application/vnd.flatpak.repo;
-11
View File
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/vnd.flatpak.ref">
<glob pattern="*.flatpakref"/>
<comment>Flatpak Reference File</comment>
</mime-type>
<mime-type type="application/vnd.flatpak.repo">
<glob pattern="*.flatpakrepo"/>
<comment>Flatpak Repository File</comment>
</mime-type>
</mime-info>
-77
View File
@@ -1,77 +0,0 @@
Name: flatpost
Version: 1.0.5
Release: 1%?dist
License: BSD-2-Clause
Summary: Desktop environment agnostic Flathub software center.
URL: https://github.com/gloriouseggroll/flatpost
Source0: %{url}/archive/refs/tags/%{version}.tar.gz
Source1: flatpost-mime.xml
Patch0: flatpost-desktop-mimetype.patch
BuildArch: noarch
BuildRequires: python3-devel
BuildRequires: make
BuildRequires: desktop-file-utils
Provides: nobara-updater
# App Deps
Requires: python
Requires: python3
Requires: python3-gobject
Requires: python3-requests
Requires: python3-pillow
Requires: python3-svgwrite
Requires: python3-fonttools
Requires: python3-numpy
Requires: flatpak
Requires: glib2
Requires: gtk3
Requires: gtk4
Requires: xdg-utils
Requires(post): shared-mime-info
Requires(postun): shared-mime-info
Requires(posttrans): shared-mime-info
%description
Desktop environment agnostic Flathub software center. Allows for browsing,
installation, removal, updating, and permission management of flatpak packages and repositories.
%prep
%autosetup -p1
%build
make all DESTDIR=%{buildroot}
install -D -m644 %{SOURCE1} %{buildroot}/usr/share/mime/packages/flatpost.xml
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/com.flatpost.flatpostapp.desktop
%post
xdg-icon-resource forceupdate --theme hicolor &>/dev/null
update-mime-database usr/share/mime &>/dev/null
update-desktop-database -q
%postun
xdg-icon-resource forceupdate --theme hicolor &>/dev/null
update-mime-database usr/share/mime &>/dev/null
update-desktop-database -q
%posttrans
xdg-icon-resource forceupdate --theme hicolor &>/dev/null
update-mime-database usr/share/mime &>/dev/null
update-desktop-database -q
%files
%{python3_sitelib}/flatpost/
%{_bindir}/flatpost
%{_datadir}/applications/com.flatpost.flatpostapp.desktop
%{_datadir}/flatpost/collections_data.json
%{_datadir}/icons/hicolor/1024x1024/apps/com.flatpost.flatpostapp.png
%{_datadir}/icons/hicolor/64x64/apps/com.flatpost.flatpostapp.png
%{_datadir}/mime/packages/flatpost.xml
%license %{_datadir}/licenses/flatpost/LICENSE
-3
View File
@@ -1,3 +0,0 @@
let v = gh_rawfile("GloriousEggroll/flatpost", "main", "VERSION.txt");
v.trim();
rpm.version(v);
@@ -1,5 +1,5 @@
project pkg {
rpm {
spec = "rio.spec"
spec = "grayjay.spec"
}
}
+61
View File
@@ -0,0 +1,61 @@
%define __strip /bin/true
%define debug_package %nil
Name: grayjay
Version: 5
Release: 1%?dist
Summary: Watch content on your own terms, ensuring you retain full ownership and control over what you watch
License: SFL-1.1
URL: https://grayjay.app/desktop
Source0: https://github.com/futo-org/Grayjay.Desktop/archive/refs/tags/%version.tar.gz
BuildRequires: npm dotnet-host dotnet-hostfxr-8.0 dotnet-sdk-8.0
BuildRequires: anda-srpm-macros git-core
BuildRequires: desktop-file-utils
%description
Grayjay is a multi-platform media application that allows you to watch content from multiple platforms in a single application. Using an extendable plugin system developers can make new integrations with additional platforms. Plugins are cross-compatible between Android and Desktop.
%prep
%autosetup -n Grayjay.Desktop-%version
git init
git remote add origin https://github.com/futo-org/Grayjay.Desktop
git submodule update --init --recursive #{?_smp_mflags}
%build
pushd Grayjay.Desktop.Web
npm i
rm -rf dist
npm run build
popd
pushd Grayjay.Desktop.CEF
rm -rf bin
dotnet publish -c Release
popd
# Copy wwwroot
dir=$(ls Grayjay.Desktop.CEF/bin/Release/net8.0)
mkdir -p Grayjay.Desktop.CEF/bin/Release/net8.0/$dir/publish/wwwroot
cp -r Grayjay.Desktop.Web/dist Grayjay.Desktop.CEF/bin/Release/net8.0/$dir/publish/wwwroot/web
gendesk \
--name=Grayjay \
--pkgname=%name \
--pkgdesc='%summary' \
--exec=%_bindir/grayjay \
--icon=%_datadir/grayjay/logo.ico
%install
mkdir -p %buildroot%_datadir/grayjay %buildroot%_bindir
cp -r Grayjay.Desktop.CEF/bin/Release/net8.0/*/publish/* %buildroot%_datadir/grayjay/
ln -s %_datadir/Grayjay %buildroot%_bindir/grayjay
install -Dm644 %buildroot%_datadir/grayjay/logo.ico %buildroot%_datadir/pixmaps/grayjay.ico
install -Dm644 grayjay.desktop -t %buildroot%_datadir/applications
%files
%doc README.md
%license LICENSE.md
%_bindir/grayjay
%_datadir/applications/grayjay.desktop
%_datadir/grayjay/
%_iconsdir/hicolor/256x256/apps/grayjay.ico
+1
View File
@@ -0,0 +1 @@
rpm.version(gh_tag("futo-org/Grayjay.Desktop"));
+3 -5
View File
@@ -3,10 +3,9 @@
%global gtk4_version 4.14.4
%global libadwaita_version 1.5.1
%global pure_protobuf_version 2.0.0
%global raw_ver v1.75.0
Name: komikku
Version: 1.75.0
Version: 1.70.0
%forgemeta
Release: 1%?dist
Summary: A manga reader for GNOME
@@ -15,7 +14,7 @@ BuildArch: noarch
License: GPL-3.0-or-later
URL: https://valos.gitlab.io/Komikku
Source0: https://codeberg.org/valos/%{appname}/archive/%{raw_ver}.tar.gz#/%{name}-%{version}.tar.gz
Source0: https://codeberg.org/valos/%{appname}/archive/v%{version}.tar.gz#/%{name}-v%{version}.tar.gz
BuildRequires: desktop-file-utils
BuildRequires: intltool
@@ -23,7 +22,6 @@ BuildRequires: libappstream-glib
BuildRequires: meson >= 0.59.0
BuildRequires: python3-devel >= 3.8
BuildRequires: blueprint-compiler
BuildRequires: cmake
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.35.9
BuildRequires: pkgconfig(gtk4) >= %{gtk4_version}
@@ -94,7 +92,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
%files -f %{name}.lang
%license LICENSES/*
%license LICENSE
%doc README.md
%{_bindir}/%{name}
%{_datadir}/%{name}/
-1
View File
@@ -1,4 +1,3 @@
let latest_tag = get("https://codeberg.org/api/v1/repos/valos/Komikku/tags").json_arr()[0].name;
let new_version = find("([\\.\\d]+)", latest_tag, 1);
rpm.global("raw_ver", latest_tag);
rpm.version(new_version);
@@ -14,7 +14,7 @@
%global __provides_exclude_from %{_datadir}/(armcord|legcord)/.*\\.so
Name: legcord-bin
Version: 1.1.1
Version: 1.1.0
Release: 1%?dist
License: OSL-3.0
Summary: Custom lightweight Discord client designed to enhance your experience
@@ -1,5 +1,5 @@
%global commit a5e0c2e5ae7d2be97bf8407eb5d2bfc89671b5dd
%global commit_date 20250422
%global commit 1833760c8be5b5fd4a76bbcd0cf1632d7bff0216
%global commit_date 20250215
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%define debug_package %nil
+1 -1
View File
@@ -5,7 +5,7 @@
%global __provides_exclude_from %{_datadir}/(armcord|legcord)/.*\\.so
Name: legcord
Version: 1.1.1
Version: 1.1.0
Release: 1%?dist
License: OSL-3.0
Summary: Custom lightweight Discord client designed to enhance your experience
+9 -39
View File
@@ -1,7 +1,7 @@
%global commit 61be67071617889282bc477e8d701333ea834783
%global commit 5338f4ba70903e7517bbfc7881e10ff13a912ffc
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20250429
%global ver 0.40.0
%global commit_date 20250227
%global ver 0.39.0
Name: mpv-nightly
Version: %ver^%commit_date.%shortcommit
@@ -124,33 +124,6 @@ Requires: mpv-nightly-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%description devel
This package contains development header files and libraries for Mpv.
%package bash-completion
Summary: MPV Bash completion
Requires: bash
Requires: %{name}
Supplements: (%{name} and bash)
%description bash-completion
Bash shell completion for MPV.
%package fish-completion
Summary: MPV Fish completion
Requires: fish
Requires: %{name}
Supplements: (%{name} and fish)
%description fish-completion
Fish shell completion for MPV.
%package zsh-completion
Summary: MPV Zsh completion
Requires: zsh
Requires: %{name}
Supplements: (%{name} and zsh)
%description zsh-completion
Zsh shell completion for MPV.
%prep
%autosetup -p1 -n mpv-%commit
sed -e "s|/usr/local/etc|%{_sysconfdir}/mpv|" -i etc/mpv.conf
@@ -232,7 +205,13 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/mpv.desktop
%{_docdir}/mpv/
%{_bindir}/mpv
%{_datadir}/applications/mpv.desktop
%dir %{_datadir}/bash-completion/
%dir %{_datadir}/bash-completion/completions/
%{_datadir}/bash-completion/completions/mpv
%{_datadir}/icons/hicolor/*/apps/mpv*.*
%dir %{_datadir}/zsh/
%dir %{_datadir}/zsh/site-functions/
%{_datadir}/zsh/site-functions/_mpv
%{_mandir}/man1/mpv.*
%{_metainfodir}/mpv.metainfo.xml
%dir %{_sysconfdir}/mpv/
@@ -247,14 +226,5 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/mpv.desktop
%{_libdir}/libmpv.so
%{_libdir}/pkgconfig/mpv.pc
%files bash-completion
%{bash_completions_dir}/mpv
%files fish-completion
%{fish_completions_dir}/mpv.fish
%files zsh-completion
%{zsh_completions_dir}/_mpv
%changelog
%autochangelog
@@ -1 +0,0 @@
v1.11.9
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "nekoray.spec"
}
}
-11
View File
@@ -1,11 +0,0 @@
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=nekoray
Categories=Network;
Comment=Qt based cross-platform GUI proxy configuration manager (backend: sing-box)
Comment[zh_CN]=基于 Qt 的跨平台代理配置管理器 (后端 sing-box)
Keywords=Internet;VPN;Proxy;sing-box;
Exec=/bin/nekoray
Icon=/usr/share/icons/nekoray.ico
-2
View File
@@ -1,2 +0,0 @@
#!/bin/sh
/lib64/nekoray/nekoray -appdata "${@}"
-93
View File
@@ -1,93 +0,0 @@
%global gomodulesmode GO111MODULE=on
Name: nekoray
Version: 4.3.4
Release: 1%?dist
Summary: Qt based cross-platform GUI proxy configuration manager (backend: sing-box)
URL: https://github.com/Mahdi-zarei/nekoray
License: GPLv3
Source0: https://github.com/Mahdi-zarei/nekoray/archive/refs/tags/%{version}.tar.gz#/nekoray-%{version}.tar.gz
Packager: bunzuhbu <g89156436@gmail.com>
Source1: vendor-%{version}.tar.gz
%define fetch_vendor %{_rpmconfigdir}/rpmuncompress -xv %{SOURCE1}
Source2: Sagernet.SingBox.Version.txt
%define singbox_version $(cat %{SOURCE2})
Source3: %{name}.desktop
Source4: %{name}.sh
BuildRequires: rpm_macro(cmake)
BuildRequires: rpm_macro(cmake_build)
BuildRequires: rpm_macro(cmake_install)
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: pkgconfig(protobuf)
BuildRequires: pkgconfig(libcurl)
BuildRequires: cmake(yaml-cpp)
BuildRequires: cmake(ZXing)
BuildRequires: cmake(absl)
BuildRequires: cmake(cpr)
BuildRequires: cmake(Qt6)
BuildRequires: cmake(Qt6Svg)
BuildRequires: cmake(Qt6Linguist)
BuildRequires: cmake(Qt6Charts)
BuildRequires: patchelf
BuildRequires: sed
BuildRequires: golang
BuildRequires: rpm_macro(gobuildflags)
Requires: %{name}-core
%define core nekobox_core
%package core
Summary: %{summary}
%description
%{summary}
%description core
%{summary}
%prep
%autosetup -p1 -n %{name}-%{version}
sed -i 's~find_package(Protobuf CONFIG REQUIRED)~find_package(Protobuf REQUIRED)~' cmake/myproto.cmake
sed -i 's~add_library(qhotkey 3rdparty/QHotkey/qhotkey.cpp)~add_library(qhotkey STATIC 3rdparty/QHotkey/qhotkey.cpp)~' cmake/QHotkey.cmake
sed -i 's~ImageFormat::BGRA~ImageFormat::BGR~' 3rdparty/ZxingQtReader.hpp
pushd core/server
%{fetch_vendor}
popd
%build
%cmake
%cmake_build
DEST=$PWD/%{__cmake_builddir}/%{core}
pushd core/server
go build %{gobuildflags} -o $DEST -trimpath -ldflags "-B 0x$(echo "%{name}-%{version}-%{release}-${SOURCE_DATE_EPOCH:-}" | sha1sum | cut -d ' ' -f1) -w -s -X 'github.com/sagernet/sing-box/constant.Version=%{singbox_version}'" -tags "with_clash_api,with_gvisor,with_quic,with_wireguard,with_utls,with_ech,with_dhcp"
popd
%install
mkdir -p %{buildroot}%{_libdir}/%{name}
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_datadir}/applications
mkdir -p %{buildroot}%{_datadir}/icons
cp %{SOURCE4} %{buildroot}%{_bindir}/%{name}
cp %{SOURCE3} %{buildroot}%{_datadir}/applications/%{name}.desktop
sed -i 's~/bin~%{_bindir}~g;s~/usr/share~%{_datadir}~g;s~nekoray~%{name}~g' %{buildroot}%{_datadir}/applications/%{name}.desktop
sed -i 's~/bin~%{_bindir}~g;s~/lib64~%{_libdir}~g;s~nekoray~%{name}~g' %{buildroot}%{_bindir}/%{name}
cp %{__cmake_builddir}/%{name} %{buildroot}%{_libdir}/%{name}/%{name}
cp %{__cmake_builddir}/%{core} %{buildroot}%{_libdir}/%{name}/%{core}
cp res/nekoray.ico %{buildroot}%{_datadir}/icons/%{name}.ico
patchelf --remove-rpath %{buildroot}%{_libdir}/%{name}/%{name}
patchelf --remove-rpath %{buildroot}%{_libdir}/%{name}/%{core}
%files
%attr(0755, -, -) %{_bindir}/%{name}
%attr(0755, -, -) %{_libdir}/%{name}/%{name}
%attr(0644, -, -) %{_datadir}/icons/%{name}.ico
%attr(0644, -, -) %{_datadir}/applications/%{name}.desktop
%files core
%dir %{_libdir}/%{name}
%attr(0755, -, -) %{_libdir}/%{name}/%{core}
-5
View File
@@ -1,5 +0,0 @@
let sourcedir = "anda/apps/nekoray";
sh(`dnf in -y golang rpmdevtools tar rpm-build coreutils`, #{});
sh(`pushd ${sourcedir}; bash -x pre.sh; popd`, #{});
-9
View File
@@ -1,9 +0,0 @@
export sourcedir="$PWD"
rpmdev-spectool --all --get-files nekoray.spec
version=$(rpmspec --query --queryformat "%{VERSION}\n" nekoray.spec | uniq)
tar -xzf "nekoray-${version}.tar.gz"
pushd "nekoray-${version}/core/server"
go mod vendor
tar -czf "${sourcedir}/vendor-${version}.tar.gz" vendor
popd
-3
View File
@@ -1,3 +0,0 @@
rpm.version(find(`([\d.]+)-\d+-\d+-\d+`, gh_rawfile("Mahdi-zarei/nekoray", "dev", "nekoray_version.txt"), 1));
open_file("anda/apps/nekoray/Sagernet.SingBox.Version.txt", "w").write(gh("sagernet/sing-box"));
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "peazip.spec"
}
}
-138
View File
@@ -1,138 +0,0 @@
# can't figure out how to apply usual build flags to lazbuild
%define debug_package %nil
Name: peazip
Version: 10.4.0
Release: 1%?dist
Summary: Free Zip / Unzip software and Rar file extractor. Cross-platform file and archive manager
License: LGPL-3.0-only
URL: https://peazip.github.io
Source0: https://github.com/peazip/PeaZip/archive/refs/tags/%version.tar.gz
# holy smoke this is written in pascal?
BuildRequires: lazarus-tools
BuildRequires: lazarus-lcl-gtk2
BuildRequires: lazarus-lcl-gtk3
BuildRequires: lazarus-lcl-qt5
BuildRequires: lazarus-lcl-qt6
Requires: (peazip-gtk2 or peazip-gtk3 or peazip-gtk4 or peazip-qt5 or peazip-qt6)
Requires: p7zip brotli zstd
Suggests: (peazip-gtk4 if gtk4)
Suggests: (peazip-qt5 if qt5-qtbase)
Suggests: (peazip-qt6 if qt6-qtbase)
%description
PeaZip is a free file archiver utility and rar extractor for Linux, macOS, and
Windows, which works with 200+ archive types and variants (7z, ace, arc, bz2,
cab, gz, iso, paq, pea, rar, tar, wim, zip, zipx...), handles spanned archives
(001, r01, z01...), supports multiple archive encryption standards, file
hashing, exports tasks as console scripts.
%package gtk2
Summary: GTK2 version of peazip
Requires: peazip
RemovePathPostFixes: .gtk2
%description gtk2
GTK2 version of peazip.
%package gtk3
Summary: GTK3 version of peazip
Requires: peazip
RemovePathPostFixes: .gtk3
%description gtk3
GTK3 version of peazip.
%package qt5
Summary: Qt5 version of peazip
Requires: peazip
RemovePathPostFixes: .qt5
%description qt5
Qt5 version of peazip.
%package qt6
Summary: Qt6 version of peazip
Requires: peazip
RemovePathPostFixes: .qt6
%description qt6
Qt6 version of peazip.
%package -n pea
Summary: Engine for PEA file format support
%description -n pea
Engine for PEA file format support.
%package -n pea-gtk2
Summary: GTK2 version of pea
Requires: pea
RemovePathPostFixes: .gtk2
%description -n pea-gtk2
GTK2 version of pea.
%package -n pea-gtk3
Summary: GTK3 version of pea
Requires: pea
RemovePathPostFixes: .gtk3
%description -n pea-gtk3
GTK3 version of pea.
%package -n pea-qt5
Summary: Qt5 version of pea
Requires: pea
RemovePathPostFixes: .qt5
%description -n pea-qt5
Qt5 version of pea.
%package -n pea-qt6
Summary: Qt6 version of pea
Requires: pea
RemovePathPostFixes: .qt6
%description -n pea-qt6
Qt6 version of pea.
%prep
%autosetup -n PeaZip-%version
%build
cd peazip-sources
lazbuild --add-package dev/metadarkstyle/metadarkstyle.lpk
lazbuild --ws=gtk2 dev/project_peach.lpi && cp dev/peazip ../peazip.gtk2
lazbuild --ws=gtk3 dev/project_peach.lpi && cp dev/peazip ../peazip.gtk3
lazbuild --ws=qt5 dev/project_peach.lpi && cp dev/peazip ../peazip.qt5
lazbuild --ws=qt6 dev/project_peach.lpi && cp dev/peazip ../peazip.qt6
lazbuild --ws=gtk2 dev/project_pea.lpi && cp dev/pea ../pea.gtk2
lazbuild --ws=gtk3 dev/project_pea.lpi && cp dev/pea ../pea.gtk3
lazbuild --ws=qt5 dev/project_pea.lpi && cp dev/pea ../pea.qt5
lazbuild --ws=qt6 dev/project_pea.lpi && cp dev/pea ../pea.qt6
%install
install -Dm755 peazip.* -t %buildroot%_bindir
install -Dm755 pea.* -t %buildroot%_bindir
install -Dm644 peazip-sources/res/share/batch/freedesktop_integration/peazip.desktop -t %{buildroot}%{_datadir}/applications
install -Dm644 peazip-sources/res/share/batch/freedesktop_integration/*.png -t %{buildroot}%{_datadir}/pixmaps
install -Dm644 peazip-sources/res/share/batch/freedesktop_integration/KDE-servicemenus/KDE6-dolphin/peazip-kde6.desktop -t %{buildroot}%{_datadir}/kio/servicemenus
install -Dm644 peazip-sources/res/share/batch/freedesktop_integration/Nautilus-scripts/PeaZip/* -t %{buildroot}%{_datadir}/nautilus/scripts/PeaZip
%files
%doc README.md
%license LICENSE SECURITY.md
%{_datadir}/applications/peazip.desktop
%{_datadir}/pixmaps/peazip*.png
%{_datadir}/kio/servicemenus/peazip-kde6.desktop
%dir %{_datadir}/nautilus/scripts/PeaZip
%{_datadir}/nautilus/scripts/PeaZip/*
%files -n pea
%doc README.md
%license LICENSE SECURITY.md
%files gtk2
%_bindir/peazip.gtk2
%files gtk3
%_bindir/peazip.gtk3
%files qt5
%_bindir/peazip.qt5
%files qt6
%_bindir/peazip.qt6
%files -n pea-gtk2
%_bindir/pea.gtk2
%files -n pea-gtk3
%_bindir/pea.gtk3
%files -n pea-qt5
%_bindir/pea.qt5
%files -n pea-qt6
%_bindir/pea.qt6
-1
View File
@@ -1 +0,0 @@
rpm.version(get("https://raw.githubusercontent.com/peazip/peazip.github.io/master/autoupdate.txt"));
+1 -1
View File
@@ -1,4 +1,4 @@
%global ver 2025-04-29
%global ver 2025-03-01
%global goodver %(echo %ver | sed 's/-//g')
%global __brp_mangle_shebangs %{nil}
%bcond_without mold
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "subtitleedit.spec"
}
}
-56
View File
@@ -1,56 +0,0 @@
%global pkgdir %_datadir/subtitleedit
%global realname subtitleedit
Name: %realname.bin
Version: 4.0.12
Release: 2%?dist
Summary: An advanced subtitle editor and converter
License: GPL-3.0-only
URL: https://www.nikse.dk/SubtitleEdit
Source0: https://github.com/SubtitleEdit/subtitleedit/releases/download/%version/SE%{gsub %version %. %{quote:}}.zip
Source1: https://github.com/SubtitleEdit/subtitleedit/blob/%version/src/libse/Icon.png?raw=true
Packager: madonuko <mado@fyralabs.com>
Provides: %realname = %evr
Conflicts: %realname
BuildRequires: unzip anda-srpm-macros
Requires: dejavu-sans-mono-fonts mono-core
%description
%summary.
%prep
cat<<EOF > subtitleedit.desktop
[Desktop Entry]
Name=Subtitle Edit
Comment=An advanced subtitle editor and converter
Exec=/usr/bin/subtitleedit %%F
Icon=subtitleedit
Terminal=false
Type=Application
Categories=Video;AudioVideo;AudioVideoEditing;
EOF
cat<<EOF > subtitleedit
#!/usr/bin/sh
exec mono /usr/share/subtitleedit/SubtitleEdit.exe "$@"
EOF
%install
mkdir -p %buildroot%pkgdir
unzip %{S:0} -d %buildroot%pkgdir
rm -r %buildroot%pkgdir/Tesseract302
rm %buildroot%pkgdir/Hunspell{x86,x64}.dll
touch %buildroot%pkgdir/.PACKAGE-MANAGER
install -Dm755 subtitleedit -t %buildroot%_bindir
install -Dm644 subtitleedit.desktop -t %buildroot%_datadir/applications
install -Dm644 %{S:1} %buildroot%_datadir/pixmaps/subtitleedit.png
%files
%pkgdir
%_bindir/%realname
%_datadir/applications/%realname.desktop
%_datadir/pixmaps/%realname.png
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("SubtitleEdit/subtitleedit"));
@@ -0,0 +1,27 @@
From 44046bfbcb30a19c45416113a2a82a4d17a1a998 Mon Sep 17 00:00:00 2001
From: Jan200101 <sentrycraft123@gmail.com>
Date: Mon, 14 Aug 2023 14:06:45 +0200
Subject: [PATCH 01/10] main: update GPUs comment for dbus property
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
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.
-->
<property name="GPUs" type="aa{sv}" access="read"/>
--
2.46.0
@@ -0,0 +1,379 @@
From 4f31415cb61a50c2bcba1510a7511518417d0970 Mon Sep 17 00:00:00 2001
From: Jan200101 <sentrycraft123@gmail.com>
Date: Mon, 11 Sep 2023 15:21:46 +0200
Subject: [PATCH 02/10] main: add Discrete key
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
.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 <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <gio/gio.h>
+#include <gudev/gudev.h>
+
+#include <amdgpu.h>
+#include <amdgpu_drm.h>
+
+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 <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <gio/gio.h>
+#include <gudev/gudev.h>
+
+#include <xf86drm.h>
+#include <nouveau_drm.h>
+#include <nouveau/nvif/ioctl.h>
+#include <nvif/cl0080.h>
+#include <nvif/class.h>
+
+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
@@ -0,0 +1,27 @@
From 1b115ed72e03ff1169cbfddd79ef10890baca133 Mon Sep 17 00:00:00 2001
From: Jan200101 <sentrycraft123@gmail.com>
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 <sentrycraft123@gmail.com>
---
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
@@ -0,0 +1,278 @@
From d933e96bdb15679ae7653f929461982aa66973ba Mon Sep 17 00:00:00 2001
From: Jan200101 <sentrycraft123@gmail.com>
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 <sentrycraft123@gmail.com>
---
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 <string.h>
+#include <stdint.h>
+#include <stdio.h>
+
+#include <amdgpu_drm.h>
+
+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 <string.h>
+#include <stdint.h>
+#include <stdio.h>
+
+#include <xf86drm.h>
+#include <nouveau_drm.h>
+#include <nouveau/nvif/ioctl.h>
+#include <nvif/cl0080.h>
+#include <nvif/class.h>
+
+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
@@ -0,0 +1,39 @@
From c102b643945dc076d881497dd2ca5865938f7053 Mon Sep 17 00:00:00 2001
From: Jan200101 <sentrycraft123@gmail.com>
Date: Tue, 12 Sep 2023 15:57:47 +0200
Subject: [PATCH 05/10] main: remove leftover and fix typo
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
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
@@ -0,0 +1,48 @@
From f764db4eb565c19ba14155791fbfced3fb5d34c8 Mon Sep 17 00:00:00 2001
From: Jan200101 <sentrycraft123@gmail.com>
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 <sentrycraft123@gmail.com>
---
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
@@ -0,0 +1,137 @@
From d2ecc29469d5572fd171926c9d1dbb1b851c7b09 Mon Sep 17 00:00:00 2001
From: Jan200101 <sentrycraft123@gmail.com>
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 <sentrycraft123@gmail.com>
---
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 <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
+#include <locale.h>
#include <gio/gio.h>
#include <gudev/gudev.h>
+#include <glib.h>
#include <amdgpu.h>
#include <amdgpu_drm.h>
@@ -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 <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
+#include <locale.h>
#include <gio/gio.h>
#include <gudev/gudev.h>
+#include <glib.h>
#include <xf86drm.h>
#include <nouveau_drm.h>
@@ -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
@@ -0,0 +1,25 @@
From 462b09f02de37dfd2965d23cc7c4137bcf45a4ae Mon Sep 17 00:00:00 2001
From: Jan200101 <sentrycraft123@gmail.com>
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 <sentrycraft123@gmail.com>
---
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
@@ -0,0 +1,34 @@
From 55db3aeaeb962952881f73e94432f750cfb64fc8 Mon Sep 17 00:00:00 2001
From: Jan200101 <sentrycraft123@gmail.com>
Date: Thu, 15 Feb 2024 16:24:00 +0100
Subject: [PATCH 09/10] main: use Discrete key in switcherooctl
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
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
@@ -0,0 +1,45 @@
From 4232c75fe41158bb5063d630d36b3ffd6a8a57ec Mon Sep 17 00:00:00 2001
From: Jan200101 <sentrycraft123@gmail.com>
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 <sentrycraft123@gmail.com>
---
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
File diff suppressed because it is too large Load Diff
@@ -1,16 +1,22 @@
Name: switcheroo-control
Version: 2.6
Release: 9%{?dist}
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
# Adds proper discrete GPU detection to switcheroo-control
# https://gitlab.freedesktop.org/hadess/switcheroo-control/-/merge_requests/69
Patch: discrete.patch
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)
@@ -19,7 +25,6 @@ BuildRequires: gtk-doc
BuildRequires: meson
BuildRequires: systemd
BuildRequires: libdrm-devel
BuildRequires: kernel-headers
BuildRequires: python3-dbusmock
BuildRequires: umockdev
@@ -73,7 +78,6 @@ fi
%{_mandir}/man1/switcherooctl.1*
%{_libexecdir}/check-discrete-amdgpu
%{_libexecdir}/check-discrete-nouveau
%{_libexecdir}/check-discrete-xe
%{_udevrulesdir}/30-discrete-gpu.rules
%files docs
@@ -82,17 +86,14 @@ fi
%{_datadir}/gtk-doc/html/%{name}/
%changelog
* Tue Apr 29 2025 Jan200101 <sentrycraft123@gmail.com> - 2.6-9
* Fri Sep 06 2024 Jan200101 <sentrycraft123@gmail.com> - 2.6-8
- Update discrete patch
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.6-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Thu Feb 15 2024 Jan Drögehoff <sentrycraft123@gmail.com> - 2.6-7
- Update discrete patch
* Mon Jul 29 2024 Miroslav Suchý <msuchy@redhat.com> - 2.6-7
- convert license to SPDX
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.6-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Wed Feb 14 2024 Jan Drögehoff <sentrycraft123@gmail.com> - 2.6-6
- Add discrete patch
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.6-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
@@ -6,7 +6,7 @@
Name: vencord-desktop
Provides: VencordDesktop = %{version}-%{release}
Version: 1.5.6
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
+5 -5
View File
@@ -5,16 +5,16 @@
%define __strip /bin/true
# do not perform compression in cpio
%define _source_payload w19.zstdio
%define _source_payload w0.ufdio
%define _binary_payload w19.zstdio
# Exclude private libraries
%global __provides_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
%global __requires_exclude libffmpeg.so
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: voicevox
Version: 0.23.0
Release: 2%?dist
Release: 1%?dist
Summary: Free Japanese text-to-speech editor
License: LGPL-3.0
URL: https://voicevox.hiroshiba.jp
@@ -52,7 +52,7 @@ sed -i "s|Exec=.*|Exec=/usr/share/voicevox/VOICEVOX.AppImage|" squashfs-root/voi
%install
install -Dm755 VOICEVOX.AppImage %buildroot%_datadir/voicevox/VOICEVOX.AppImage
install -Dm755 voicevox.sh %buildroot%_bindir/voicevox
install -Dm644 squashfs-root%_iconsdir/hicolor/256x256/apps/voicevox.png %buildroot%_iconsdir/hicolor/256x256/apps/voicevox.png
install -Dm644 squashfs-root%_iconsdir/hicolor/0x0/apps/voicevox.png %buildroot%_iconsdir/hicolor/256x256/apps/voicevox.png
install -Dm644 squashfs-root/voicevox.desktop %buildroot%_datadir/applications/voicevox.desktop
%files
+4 -8
View File
@@ -1,8 +1,8 @@
%define debug_package %nil
# Exclude private libraries since this is bundled with electron
%global __provides_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
%global __requires_exclude libffmpeg.so
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
# macro shorthand for calling pnpm
%global pnpm npx pnpm@%{pnpm_version}
@@ -12,8 +12,8 @@
%global vendor_pnpm 1
Name: youtube-music
Version: 3.9.0
Release: 1%?dist
Version: 3.7.5
Release: 2%?dist
Summary: YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader)
Source1: youtube-music.desktop
License: MIT
@@ -32,10 +32,6 @@ BuildRequires: python3 gcc-c++
BuildRequires: pnpm nodejs20
%endif
Requires: nss
Requires: libXext
Requires: libXfixes
%description
YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader)
@@ -13,7 +13,7 @@ BuildArch: noarch
Source0: https://github.com/fthx/appmenu-is-back/archive/refs/tags/v%{version}.tar.gz
Patch0: https://github.com/fthx/appmenu-is-back/compare/v2..703a31acf900eb7bcab3462baeefa815ec7f13ab.patch
Requires: (gnome-shell >= 47~ with gnome-shell < 49~)
Requires: (gnome-shell >= 46~ with gnome-shell < 48~)
Recommends: gnome-extensions-app
%description
@@ -0,0 +1,35 @@
From 78a733bae62f8af15f0771d7efde55473f295e46 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
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
@@ -0,0 +1,136 @@
From 0c0cc4ce1d3e08eba3e701d565398e01aa479ff7 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
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
@@ -0,0 +1,128 @@
From d060baeb69a2a7d80fe403fc8eec90e20aa6cb7f Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
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
@@ -1,9 +1,38 @@
diff --git a/data/default-apps/dash.txt b/data/default-apps/dash.txt
index 65db4babc..f354d621b 100644
--- a/data/default-apps/dash.txt
+++ b/data/default-apps/dash.txt
@@ -1,2 +1,2 @@
-org.gnome.Epiphany.desktop
+org.mozilla.firefox.desktop
org.gnome.Calendar.desktop
--
From 551b8979483e127471c726fd1db1d52e063a7d81 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
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 @@
</description>
</key>
<key name="favorite-apps" type="as">
- <default>[ 'org.gnome.Epiphany.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.TextEditor.desktop']</default>
+ <default>[ 'org.mozilla.firefox.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.TextEditor.desktop']</default>
<summary>List of desktop file IDs for favorite applications</summary>
<description>
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
@@ -1,6 +1,6 @@
%global tarball_version %%(echo %{version} | tr '~' '.')
%global major_version 48
%global minor_version 1
%global major_version 47
%global minor_version 3
%if 0%{?rhel}
%global portal_helper 0
@@ -8,13 +8,12 @@
%global portal_helper 1
%endif
Name: gnome-shell
Name: gnome-shell.switcheroo
Version: %{major_version}.%{minor_version}
Release: 2%{?dist}.switcheroo
Release: 1%{?dist}.switcheroo
Summary: Window management and application launching for GNOME
Provides: gnome-shell.switcheroo = %version-%release
Obsoletes: gnome-shell.switcheroo <= 47.3-2
Provides: gnome-shell = %version-%release
License: GPL-2.0-or-later
URL: https://wiki.gnome.org/Projects/GnomeShell
Source0: https://download.gnome.org/sources/gnome-shell/%{major_version}/gnome-shell-%{tarball_version}.tar.xz
@@ -26,6 +25,10 @@ Patch: gnome-shell-favourite-apps-firefox.patch
# 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
@@ -37,21 +40,20 @@ Patch: 3193.patch
%define gjs_version 1.73.1
%define gtk4_version 4.0.0
%define adwaita_version 1.5.0
%define mutter_version 48~rc
%define mutter_version 47.0
%define polkit_version 0.100
%define gsettings_desktop_schemas_version 48~rc
%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.49
%define pipewire_version 0.3.0
%define gnome_settings_daemon_version 3.37.1
%define major_version %(c=%{version}; echo $c | cut -d. -f1 | cut -d~ -f1)
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)
@@ -86,12 +88,9 @@ BuildRequires: gnome-bluetooth-libs-devel >= %{gnome_bluetooth_version}
%endif
# Bootstrap requirements
BuildRequires: gtk-doc
# Handle upgrade path
Conflicts: %{name} < 48~rc-3
%ifnarch s390 s390x
Recommends: gnome-bluetooth%{?_isa} >= %{gnome_bluetooth_version}
%endif
Requires: %{name}-common = %{version}-%{release}
Requires: gnome-desktop3%{?_isa} >= %{gnome_desktop_version}
Requires: gcr%{?_isa}
Requires: gobject-introspection%{?_isa} >= %{gobject_introspection_version}
@@ -116,9 +115,7 @@ Requires: xdg-user-dirs-gtk
# needed for schemas
Requires: at-spi2-atk%{?_isa}
# needed for on-screen keyboard
Recommends: ibus%{?_isa} >= %{ibus_version}
# needed for gobject-introspection typelib
Requires: ibus-libs%{?_isa} >= %{ibus_version}
Requires: ibus%{?_isa} >= %{ibus_version}
# needed for "show keyboard layout"
Requires: tecla
# needed for the user menu
@@ -154,7 +151,6 @@ Requires: webkitgtk6.0%{?_isa}
ExcludeArch: %{ix86}
%endif
Provides: gnome-shell(api) = %{major_version}
Provides: desktop-notification-daemon = %{version}-%{release}
Provides: PolicyKit-authentication-agent = %{version}-%{release}
Provides: bundled(gvc)
@@ -182,14 +178,6 @@ advantage of the capabilities of modern graphics hardware and introduces
innovative user interface concepts to provide a visually attractive and
easy to use experience.
%package common
Summary: Common files used by %{name}
Conflicts: %{name} < 48~rc-3
BuildArch: noarch
%description common
%{summary}
%prep
%autosetup -S git -n gnome-shell-%{tarball_version}
@@ -228,6 +216,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Porta
%{_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
@@ -247,11 +236,8 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Porta
%{_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.Shell.ScreenTime.xml
%{_datadir}/dbus-1/interfaces/org.gnome.ShellSearchProvider.xml
%{_datadir}/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml
%{_datadir}/desktop-directories/X-GNOME-Shell-System.directory
%{_datadir}/desktop-directories/X-GNOME-Shell-Utilities.directory
%{_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
@@ -273,8 +259,5 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Porta
%{_libexecdir}/gnome-shell-portal-helper
%endif
%files common
%{_datadir}/glib-2.0/schemas/*.xml
%changelog
%autochangelog
+2 -13
View File
@@ -1,16 +1,13 @@
%global framework kio
%global stable_kf6 stable
%global majmin_ver_kf6 6.13
%global majmin_ver_kf6 6.11
Name: kf6-%{framework}
Name: kf6-%{framework}.switcheroo
Version: %{majmin_ver_kf6}.0
Release: 1%{?dist}.switcheroo
Summary: KDE Frameworks 6 Tier 3 solution for filesystem abstraction
Provides: kf6-%{framework}.switcheroo = %version-%release
Obsoletes: kf6-%{framework}.switcheroo < 6.13.0-2
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}
@@ -112,7 +109,6 @@ Summary: Documentation files for %{name}
Requires: %{name}-core = %{version}-%{release}
BuildArch: noarch
Provides: kf6-kio-doc = %version-%release
Obsoletes: kf6-kio-doc <= %version-%release
%description doc
Documentation for %{name}.
@@ -124,7 +120,6 @@ Requires: %{name}-doc = %{version}-%{release}
Requires: kf6-filesystem
Recommends: switcheroo-control
Provides: kf6-kio-core = %version-%release
Obsoletes: kf6-kio-core <= %version-%release
%description core
KIOCore library provides core non-GUI components for working with KIO.
@@ -132,7 +127,6 @@ KIOCore library provides core non-GUI components for working with KIO.
Summary: Runtime libraries for KIO Core
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Provides: kf6-kio-core-libs = %version-%release
Obsoletes: kf6-kio-core-libs <= %version-%release
%description core-libs
%{summary}.
@@ -143,7 +137,6 @@ Summary: Widgets for KIO Framework
%{?kf6_kinit_requires}
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Provides: kf6-kio-widgets = %version-%release
Obsoletes: kf6-kio-widgets <= %version-%release
%description widgets
KIOWidgets contains classes that provide generic job control, progress
reporting, etc.
@@ -152,7 +145,6 @@ reporting, etc.
Summary: Runtime libraries for KIO Widgets library
Requires: %{name}-widgets%{?_isa} = %{version}-%{release}
Provides: kf6-kio-widgets-libs = %version-%release
Obsoletes: kf6-kio-widgets-libs <= %version-%release
%description widgets-libs
%{summary}.
@@ -160,7 +152,6 @@ Obsoletes: kf6-kio-widgets-libs <= %version-%release
Summary: Widgets for file-handling for KIO Framework
Requires: %{name}-widgets%{?_isa} = %{version}-%{release}
Provides: kf6-kio-file-widgets = %version-%release
Obsoletes: kf6-kio-file-widgets <= %version-%release
%description file-widgets
The KIOFileWidgets library provides the file selection dialog and
its components.
@@ -169,7 +160,6 @@ its components.
Summary: Gui components for the KIO Framework
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Provides: kf6-kio-gui = %version-%release
Obsoletes: kf6-kio-gui <= %version-%release
%description gui
%{summary}.
@@ -177,7 +167,6 @@ Obsoletes: kf6-kio-gui <= %version-%release
Summary: Developer Documentation files for %{name}
BuildArch: noarch
Provides: kf6-kio-qch-doc = %version-%release
Obsoletes: kf6-kio-qch-doc <= %version-%release
%description qch-doc
Developer Documentation files for %{name} for use with KDevelop or QtCreator.
@@ -1,11 +0,0 @@
--- a/CMakeLists.txt 2025-04-18 01:46:49.810910663 -0500
+++ b/CMakeLists.txt 2025-04-18 02:07:05.663396088 -0500
@@ -77,7 +77,7 @@
-pthread
)
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
pkg_check_modules(GLIB2 REQUIRED glib-2.0)
@@ -4,19 +4,16 @@
Name: lomiri-app-launch
Version: 0.1.11
Release: 2%?dist
Release: 1%?dist
Summary: Provides the Lomiri App Launch user space daemon
License: GPL-3.0
URL: https://gitlab.com/ubports/development/core/lomiri-app-launch
Source0: %{url}/-/archive/%commit/lomiri-app-launch-%commit.tar.gz
Patch0: https://sources.debian.org/data/main/l/lomiri-app-launch/0.1.11-1/debian/patches/2003_remove-werror.patch
Patch1: 2004-std-workaround.patch
BuildRequires: cmake
BuildRequires: pkgconfig
BuildRequires: g++
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: libatomic
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(lttng-ust)
@@ -52,6 +49,8 @@ This package contains development files needed for lomiri-app-launch.
%autosetup -n lomiri-app-launch-%commit
%build
sed -i 's/-Werror//' ./CMakeLists.txt
# For some reason the macro of cmake fails on both clang and gcc
cmake -DLOMIRI_APP_LAUNCH_ARCH=%{_arch} -DENABLE_COVERAGE=OFF -DENABLE_TESTS=OFF -B redhat-linux-build -DCMAKE_INSTALL_PREFIX:PATH=/usr -DENABLE_MIRCLIENT=off -DUSE_SYSTEMD=ON
%cmake_build
@@ -1,9 +1,9 @@
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-download-manager
%global commit 7f4c49f125209235b9a808a6e72d1fdfdd2b01ca
%global commit 682c4928a91da598767e0be2496d9c35af7db035
%forgemeta
Name: lomiri-download-manager
Version: 0.2.1
Version: 0.1.3
Release: 1%?dist
Summary: Upload Download Manager for Lomiri
License: LGPLv3
@@ -1,15 +1,16 @@
%global forgeurl https://gitlab.com/ubports/development/core/lomiri-system-settings
%global commit e583c542521ada6c88c5e7c09eb745b6794bc7b6
%global commit 1b3d0ee6c1142d928a2b08a929723dbc41dc7fea
%forgemeta
Name: lomiri-system-settings
Version: 1.3.0
Release: 2%?dist
Release: 1%?dist
Summary: The system settings application for Lomiri
License: GPLv3
URL: https://gitlab.com/ubports/development/core/lomiri-system-settings
Source0: %{url}/-/archive/%commit/lomiri-system-settings-%commit.tar.gz
Patch0: https://sources.debian.org/data/main/l/lomiri-system-settings/1.3.0-4/debian/patches/2011_build-without-trust-store.patch
Patch0: https://sources.debian.org/data/main/l/lomiri-system-settings/1.0.1-2/debian/patches/1001_use-maliit-keyboard-for-language-plugin.patch
Patch1: https://sources.debian.org/data/main/l/lomiri-system-settings/1.0.1-2/debian/patches/2001_disable-current-language-switching.patch
BuildRequires: cmake
BuildRequires: gcc-c++
@@ -10,7 +10,8 @@ Summary: QML components to ease the creation of beautiful applications in
License: LGPL-3.0
URL: https://gitlab.com/ubports/development/core/lomiri-ui-toolkit
Source0: %{url}/-/archive/%commit/lomiri-ui-toolkit-%commit.tar.gz
Patch0: https://sources.debian.org/data/main/l/lomiri-ui-toolkit/1.3.5110+dfsg-2/debian/patches/2003_stop-using-Ubuntu-fonts.patch
Patch0: https://sources.debian.org/data/main/l/lomiri-ui-toolkit/1.3.5010%2Bdfsg-1/debian/patches/0002-fix-tests-on-qt-5.15.5.patch
Patch1: https://sources.debian.org/data/main/l/lomiri-ui-toolkit/1.3.5010%2Bdfsg-1/debian/patches/2003_stop-using-Ubuntu-fonts.patch
BuildRequires: pkgconfig
BuildRequires: make
@@ -30,11 +31,9 @@ BuildRequires: qt5-qtfeedback
BuildRequires: qt5-qtsystems-devel
BuildRequires: qt5-qtdeclarative-devel
BuildRequires: qt5-pim-devel
BuildRequires: python3-devel
BuildRequires: python3-rpm-macros
BuildRequires: qt5-qtsvg-devel
BuildRequires: fdupes
BuildRequires: python3dist(setuptools)
Requires: qt5-qtgraphicaleffects
Requires: qt5-qtfeedback
@@ -83,9 +82,7 @@ Examples for Lomiri-ui-toolkit.
%build
%{qmake_qt5} 'CONFIG+=ubuntu-uitk-compat' 'CONFIG+=test'
pushd tests/autopilot
%py3_build
popd
%make_build
%install
@@ -95,11 +92,6 @@ rm -rf %{buildroot}%{_qt5_qmldir}/Extinct
%fdupes %buildroot%_libdir/qt5/qml/Lomiri/Components/
%fdupes %buildroot%_libdir/qt5/examples/%name/examples/
pushd tests/autopilot
%py3_install
mv lomiriuitoolkit/{tests,_custom_proxy_objects} %{buildroot}%{python3_sitelib}/lomiriuitoolkit/
popd
%find_lang %{name}
%find_lang %{name}-gallery
@@ -143,8 +135,6 @@ popd
%doc README.md
%dir %{python3_sitelib}/lomiriuitoolkit
%{python3_sitelib}/lomiriuitoolkit/*.py
%dir %{python3_sitelib}/lomiriuitoolkit-%{version}-py%{python3_version}.egg-info
%{python3_sitelib}/lomiriuitoolkit-%{version}-py%{python3_version}.egg-info/*
%{python3_sitelib}/lomiriuitoolkit/_custom_proxy_objects/
%{python3_sitelib}/lomiriuitoolkit/__pycache__/
%{python3_sitelib}/lomiriuitoolkit/tests/
@@ -1,9 +1,9 @@
%global forgeurl https://gitlab.com/ubports/development/core/lomiri
%global commit 5911df7b4f25210e4d88d3e959e04538fe64387f
%global commit 0b85fddd0123c86fe6b3464143df86a6d0ad6bb9
%forgemeta
Name: lomiri
Version: 0.4.1
Version: 0.3.0
Release: 1%?dist
Summary: A convergent desktop environment by Ubports
@@ -1,4 +1,4 @@
%define _ubuntu_rel 2ubuntu3
%define _ubuntu_rel 1ubuntu1
Name: unity-session
Summary: Lightdm profile for Unity 7
@@ -1,6 +1,6 @@
Name: ayatana-indicator-datetime
Summary: A GTK implementation of the StatusNotifierItem Specification
Version: 25.4.0
Version: 24.5.0
Release: 1%?dist
License: GPL-3.0
URL: https://github.com/AyatanaIndicators/ayatana-indicator-datetime
@@ -27,7 +27,6 @@ BuildRequires: pkgconfig(uuid)
BuildRequires: pkgconfig(lomiri-sounds)
BuildRequires: pkgconfig(dbustest-1)
BuildRequires: pkgconfig(systemd)
BuildRequires: cmake(ECM)
%description
The Ayatana Indicators project is the continuation of Application Indicators
@@ -1,6 +1,6 @@
Name: ayatana-indicator-messages
Summary: Ayatana Indicator Messages Applet
Version: 24.5.1
Version: 24.5.0
Release: 1%?dist
License: GPLv3
URL: https://github.com/AyatanaIndicators/ayatana-indicator-messages
@@ -1,6 +1,6 @@
Name: ayatana-indicator-session
Summary: Ayatana Indicator Session Applet
Version: 24.5.1
Version: 24.5.0
Release: 1%?dist
License: GPL-3.0
URL: https://github.com/AyatanaIndicators/ayatana-indicator-session
+3 -3
View File
@@ -1,7 +1,7 @@
%global commit 33b49684edb7a8ac65bbca4d7378959208fbe604
%global commit_date 20250317
%global commit 9b9d4256be440b511e6c37165e01a6c2686e606f
%global commit_date 20250301
%global shortcommit %{sub %{commit} 1 7 }
%global ver 0.1.3
%global ver 0.1.2
Name: mwc
Version: %{ver}^%{commit_date}git.%{shortcommit}
+15 -16
View File
@@ -1,8 +1,8 @@
%global swayVersion 1.10.1
%global swayVersion 1.9
Name: swayfx
Version: 0.5
Release: 2%?dist
Release: 1%?dist
Summary: SwayFX: Sway, but with eye candy!
URL: https://github.com/WillPower3309/swayfx
@@ -21,7 +21,7 @@ BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(json-c) >= 0.13
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libevdev)
BuildRequires: pkgconfig(libinput) >= 1.26.0
BuildRequires: pkgconfig(libinput) >= 1.21.0
BuildRequires: pkgconfig(libpcre2-8)
BuildRequires: pkgconfig(libsystemd) >= 239
BuildRequires: pkgconfig(libudev)
@@ -33,8 +33,8 @@ BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-cursor)
BuildRequires: pkgconfig(wayland-server) >= 1.21.0
BuildRequires: pkgconfig(wayland-protocols) >= 1.24
BuildRequires: pkgconfig(scenefx-0.2)
BuildRequires: pkgconfig(wlroots-0.18)
BuildRequires: (pkgconfig(wlroots) >= 0.17.0 with pkgconfig(wlroots) < 0.18)
BuildRequires: (pkgconfig(scenefx) >= 0.1 with pkgconfig(scenefx) < 0.2)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-icccm)
BuildRequires: pkgconfig(xkbcommon) >= 1.5.0
@@ -46,7 +46,7 @@ Conflicts: sway
Provides: sway = %{swayVersion}
Packager: Atmois <info@atmois.com>
Packager: Atmois <atmois@atmois.com>
%description
%{summary}
@@ -61,6 +61,15 @@ Provides: sway-config = %{version}-%{release}
Conflicts: sway-config
%package wallpapers
Summary: Wallpapers for Sway
BuildArch: noarch
License: CC0
%description wallpapers
Wallpaper collection provided with Sway
# Require the wallpaper referenced in the config.
# Weak dependency here causes a swaynag warning during the configuration load
Requires: sway-wallpapers
@@ -97,20 +106,10 @@ Recommends: (qt6-qtwayland if qt6-qtbase-gui)
Upstream configuration for Sway.
Includes all important dependencies for a typical desktop system with minimal or no divergence from the upstream.
%package wallpapers
Summary: Wallpapers for Sway
BuildArch: noarch
License: CC0
%description wallpapers
Wallpaper collection provided with Sway
%prep
%autosetup -N -n %{name}-%{version}
%autopatch -p1 -M99
%build
%meson \
-Dsd-bus-provider=libsystemd \
+2 -2
View File
@@ -1,7 +1,7 @@
# Generated by rust2rpm 27
%global commit c999033c297582cd56b57d2a6062bfd36cc1dfed
%global commit 5b4cc3e7a8055afb758421f4a114ef4032806e39
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20250426
%global commit_date 20250216
%global ver v0.6.0
%bcond check 0
@@ -12,7 +12,7 @@
# https://github.com/abenz1267/walker
%global goipath github.com/abenz1267/walker
Version: 0.12.21
Version: 0.12.16
%gometa -f
+1 -1
View File
@@ -2,7 +2,7 @@
%bcond check 1
Name: wpaperd
Version: 1.2.1
Version: 1.1.1
Release: 1%?dist
Summary: Modern wallpaper daemon for Wayland
License: (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND CC0-1.0 AND (CC0-1.0 OR Apache-2.0) AND (CC0-1.0 OR Artistic-2.0) AND GPL-3.0+ AND ISC AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR NCSA) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT)
+1 -1
View File
@@ -7,7 +7,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: asar
Version: 3.4.1
Version: 3.3.1
Release: 1%?dist
Summary: Simple extensive tar-like archive format with indexing
License: MIT
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "atac.spec"
}
}
-42
View File
@@ -1,42 +0,0 @@
%global crate atac
%if 0%{?fedora} >= 42
%global build_cflags %{__build_flags_lang_c} %{?_distro_extra_cflags} -std=gnu18
%endif
%global __brp_mangle_shebangs %{nil}
Name: atac
Version: 0.19.0
Release: 1%?dist
Summary: Arguably a Terminal API Client
License: MIT
URL: https://crates.io/crates/atac
Source: %{crates_source}
Packager: xiaoshihou <xiaoshihou@tutamail.com>
BuildRequires: anda-srpm-macros cargo-rpm-macros mold
%global _description %{expand:
Arguably a Terminal API Client. Feature-full, free, open-source, offline
and account-less.}
%description -n %{crate} %{_description}
%files -n %{crate}
%license LICENSE
%license LICENSE.dependencies
%doc README.md
%{_bindir}/%{crate}
%prep
%autosetup -n %{crate}-%{version} -p1
%cargo_prep_online
%build
%{cargo_license_summary_online}
%{cargo_license_online} > LICENSE.dependencies
%install
%cargo_install
-1
View File
@@ -1 +0,0 @@
rpm.version(crates("atac"));
+1 -1
View File
@@ -6,7 +6,7 @@
%endif
Name: bun-bin
Version: 1.2.11
Version: 1.2.4
Release: 1%?dist
Summary: Incredibly fast JavaScript runtime, bundler, test runner, and package manager all in one
License: MIT
@@ -2,7 +2,7 @@
Name: codium-marketplace
Version: 1.65.0
Release: 2%?dist
Release: 1%?dist
Summary: Enable vscode marketplace in vscodium
License: MIT
BuildArch: noarch
@@ -22,7 +22,7 @@ if [ $1 -gt 1 ]; then # update/install
sed -i -e 's/^[[:blank:]]*"serviceUrl":.*/ "serviceUrl": "https:\/\/marketplace.visualstudio.com\/_apis\/public\/gallery",/' \
-e '/^[[:blank:]]*"cacheUrl/d' \
-e '/^[[:blank:]]*"serviceUrl/a\ "cacheUrl": "https:\/\/vscode.blob.core.windows.net\/gallery\/index",' \
-e 's/^[[:blank:]]*"itemUrl":.*/ "itemUrl": "https:\/\/marketplace.visualstudio.com\/items",/' \
-e 's/^[[:blank:]]*"itemUrl":.*/ "itemUrl": "https:\/\/marketplace.visualstudio.com\/items"/' \
-e '/^[[:blank:]]*"linkProtectionTrustedDomains/d' \
/usr/share/codium/resources/app/product.json || true
fi
@@ -30,7 +30,7 @@ fi
%preun
sed -i -e 's/^[[:blank:]]*"serviceUrl":.*/ "serviceUrl": "https:\/\/open-vsx.org\/vscode\/gallery",/' \
-e '/^[[:blank:]]*"cacheUrl/d' \
-e 's/^[[:blank:]]*"itemUrl":.*/ "itemUrl": "https:\/\/open-vsx.org\/vscode\/item",/' \
-e 's/^[[:blank:]]*"itemUrl":.*/ "itemUrl": "https:\/\/open-vsx.org\/vscode\/item"/' \
-e '/^[[:blank:]]*"linkProtectionTrustedDomains/d' \
-e '/^[[:blank:]]*"documentationUrl/i\ "linkProtectionTrustedDomains": ["https://open-vsx.org"],' \
/usr/share/codium/resources/app/product.json || true
@@ -39,9 +39,9 @@ sed -i -e 's/^[[:blank:]]*"serviceUrl":.*/ "serviceUrl": "https:\/\/open-vsx.
sed -i -e 's/^[[:blank:]]*"serviceUrl":.*/ "serviceUrl": "https:\/\/marketplace.visualstudio.com\/_apis\/public\/gallery",/' \
-e '/^[[:blank:]]*"cacheUrl/d' \
-e '/^[[:blank:]]*"serviceUrl/a\ "cacheUrl": "https:\/\/vscode.blob.core.windows.net\/gallery\/index",' \
-e 's/^[[:blank:]]*"itemUrl":.*/ "itemUrl": "https:\/\/marketplace.visualstudio.com\/items",/' \
-e 's/^[[:blank:]]*"itemUrl":.*/ "itemUrl": "https:\/\/marketplace.visualstudio.com\/items"/' \
-e '/^[[:blank:]]*"linkProtectionTrustedDomains/d' \
/usr/share/codium/resources/app/product.json || true
%files
/tmp/terra-codium-marketplace-dummy-file
/tmp/terra-codium-marketplace-dummy-file
+1 -1
View File
@@ -12,7 +12,7 @@
%endif
Name: codium
Version: 1.99.32846
Version: 1.97.2.25045
Release: 1%?dist
Summary: Code editing. Redefined.
License: MIT
-10
View File
@@ -1,10 +0,0 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=DevPod
Comment=Spin up dev environments in any infra
Exec=dev-pod-desktop
Icon=dev-pod-desktop
Terminal=false
StartupNotify=false
Categories=Development;
@@ -1,100 +0,0 @@
%bcond check 0
%global __brp_mangle_shebangs %{nil}
# https://github.com/loft-sh/devpod
%global goipath github.com/loft-sh/devpod
Version: 0.6.15
%gometa -f
%global common_description %{expand:
Codespaces but open-source, client-only and unopinionated: Works with any IDE
and lets you use any cloud, kubernetes or just localhost docker.}
%global golicenses LICENSE
%global godocs docs examples COMMUNITY.md CONTRIBUTING.md README.md\\\
SECURITY.md desktop/README.md e2e/README.md\\\
loadtest/README.md
Name: devpod
Release: 2%?dist
Summary: Spin up dev environments in any infra
Provides: golang-github-loft-sh-devpod
BuildRequires: anda-srpm-macros mold
BuildRequires: yarnpkg rust-packaging
Recommends: devpod-desktop
License: MPL-2.0
URL: https://devpod.sh
Source: %{gosource}
# gendesk --pkgname=DevPod --name=DevPod --exec=dev-pod-desktop --icon=dev-pod-desktop --categories='Development' -n
Source1: DevPod.desktop
%description %{common_description}
%package desktop
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 ISC OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND (BSD-3-Clause AND MIT) AND (BSD-3-Clause OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND BSL-1.0 AND CC0-1.0 AND (CC0-1.0 OR Apache-2.0) AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND ISC AND MIT AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR NCSA) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MPL-2.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(gdk-3.0)
BuildRequires: pkgconfig(javascriptcoregtk-4.1)
BuildRequires: pkgconfig(libsoup-3.0)
BuildRequires: pkgconfig(webkit2gtk-4.1)
Requires: libappindicator-gtk3
%description desktop %{common_description}
%prep
#yarn set version 1.22.1
%autosetup -n %name-%version
rm go.sum
cd desktop/src-tauri
%cargo_prep_online
sed -i '/"targets"/s@"all"@[]@' tauri.conf.json
sed -i '/Comment=/s@DevPod@%summary@' %{S:1}
%build
%define gomodulesmode GO111MODULE=on
# just remove -v -x for godsake
%define gobuild_baseflags %{gocompilerflags} -tags="rpm_crashtraceback ${GO_BUILDTAGS-${BUILDTAGS-}}" -a
%define gobuild_ldflags -s -w -X github.com/loft-sh/devpod/pkg/version.version="v%version" ${GO_LDFLAGS-${LDFLAGS-}} %{?currentgoldflags} -B 0x$(echo "%{name}-%{version}-%{release}-${SOURCE_DATE_EPOCH:-}" | sha1sum | cut -d ' ' -f1) -compressdwarf=false -linkmode=external -extldflags '%{build_ldflags} %{?__golang_extldflags}'
%define gobuilddir %_builddir/%buildsubdir
# build cli
(%{gobuild -o %{gobuilddir}/bin/devpod .}) &
pushd desktop
yarn version --new-version %version --no-git-tag-version &
yarn install &
pushd src-tauri
# cargo licenses
%{cargo_license_summary_online} &
%{cargo_license_online} > %_builddir/%buildsubdir/LICENSE.dependencies &
wait
cp %{gobuilddir}/bin/devpod bin/devpod-cli-%_arch-unknown-linux-gnu
popd # src-tauri
# ≈ %%cargo_build
/usr/bin/env CARGO_HOME=.cargo RUSTC_BOOTSTRAP=1 RUSTFLAGS='%{build_rustflags}' \
yarn run desktop:build -- -- %{__cargo_common_opts} --profile rpm
popd # desktop
%install
# go
install -m 0755 -vd %{buildroot}%{_bindir}
install -m 0755 -vp bin/devpod %{buildroot}%{_bindir}/devpod-cli
# tauri
install -Dm755 "desktop/src-tauri/target/rpm/DevPod Desktop" %buildroot%_bindir/dev-pod-desktop
install -Dm644 %{S:1} -t %buildroot%_datadir/applications/
install -Dm644 desktop/devpod.png %buildroot%_datadir/pixmaps/dev-pod-desktop.png
%files
%license LICENSE
%doc README.md SECURITY.md
%{_bindir}/devpod-cli
%files desktop
%_bindir/dev-pod-desktop
%_datadir/applications/DevPod.desktop
%_datadir/pixmaps/dev-pod-desktop.png
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("loft-sh/devpod"));
+1 -1
View File
@@ -1,5 +1,5 @@
Name: flutter
Version: 3.29.3
Version: 3.29.0
Release: 1%?dist
Summary: SDK for crafting beautiful, fast user experiences from a single codebase
License: BSD-3-Clause
+56 -78
View File
@@ -1,18 +1,16 @@
%global commit 9a4419ce85b11b66af6b1c6974be6c848a4cc5e4
%global commit c6485b9fd5514992e9acf8f6986e7986195dc3fc
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global fulldate 2025-04-28
%global fulldate 2025-02-28
%global commit_date %(echo %{fulldate} | sed 's/-//g')
%global public_key RWQlAjJC23149WL2sEpT/l0QKy7hMIFhYdQOFy0Z7z7PbneUgvlsnYcV
%global ver 1.1.4
%global base_name ghostty
%global reverse_dns com.mitchellh.%{base_name}
%global ver 1.1.3
%if 0%{?fedora} <= 40
%global cache_dir %{_builddir}/zig-cache
%else
%global cache_dir %{builddir}/zig-cache
%endif
Name: %{base_name}-nightly
Name: ghostty-nightly
Version: %{ver}~tip^%{commit_date}git%{shortcommit}
Release: 1%?dist
%if 0%{?fedora} <= 41
@@ -20,10 +18,9 @@ Epoch: 1
%endif
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://%{base_name}.org
Source0: https://github.com/%{base_name}-org/%{base_name}/releases/download/tip/%{base_name}-source.tar.gz
Source1: https://github.com/%{base_name}-org/%{base_name}/releases/download/tip/%{base_name}-source.tar.gz.minisig
BuildRequires: gettext
URL: https://ghostty.org/
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
@@ -37,7 +34,6 @@ BuildRequires: pkgconfig(bzip2)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(gtk4)
BuildRequires: pkgconfig(gtk4-layer-shell-0)
BuildRequires: pkgconfig(harfbuzz)
BuildRequires: pkgconfig(libadwaita-1)
BuildRequires: pkgconfig(libpng)
@@ -47,15 +43,14 @@ BuildRequires: pkgconfig(zlib)
Requires: %{name}-terminfo
Requires: %{name}-shell-integration
Requires: gtk4
Requires: gtk4-layer-shell
Requires: libadwaita
Conflicts: %{base_name}
Provides: %{base_name}-tip = %{ver}^%{commit_date}git%{shortcommit}
Conflicts: ghostty
Provides: ghostty-tip = %{version}-%{release}
%if 0%{?fedora} <= 41
Provides: %{name} = %{commit_date}.%{shortcommit}
%endif
Obsoletes: %{name} = 20250130.04d3636
Packager: Gilver E. <rockgrub@disroot.org>
Packager: ShinyGil <rockgrub@disroot.org>
%description
👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.
@@ -116,9 +111,6 @@ Supplements: %{name}
%if 0%{?fedora} <= 41
Provides: %{name}-terminfo = %{commit_date}.%{shortcommit}
%endif
%if 0%{?fedora} >= 42
Requires: ncurses-term >= 6.5-5.20250125%{?dist}
%endif
BuildArch: noarch
%description terminfo
@@ -135,7 +127,7 @@ This package contains files for Ghostty's terminfo. Available for debugging use.
%prep
/usr/bin/minisign -V -m %{SOURCE0} -x %{SOURCE1} -P %{public_key}
%autosetup -n %{base_name}-%{ver}-main+%{shortcommit}
%autosetup -n ghostty-source
ZIG_GLOBAL_CACHE_DIR="%{cache_dir}" ./nix/build-support/fetch-zig-cache.sh
@@ -158,86 +150,72 @@ zig build \
-Demit-termcap \
-Demit-terminfo
#Don't conflict with ncurses-term on F42 and up
%if 0%{?fedora} >= 42
rm -rf %{buildroot}%{_datadir}/terminfo/g/ghostty
%endif
%find_lang %{reverse_dns}
%files -f %{reverse_dns}.lang
%files
%doc README.md
%license LICENSE
%{_bindir}/%{base_name}
%{_datadir}/applications/%{reverse_dns}.desktop
%{_datadir}/bat/syntaxes/%{base_name}.sublime-syntax
%dir %{_datadir}/%{base_name}
%{_datadir}/%{base_name}/doc
%{_datadir}/%{base_name}/themes
%{_datadir}/kio/servicemenus/%{reverse_dns}.desktop
%{_datadir}/nautilus-python/extensions/%{base_name}.py
%{_datadir}/nvim/site/compiler/%{base_name}.vim
%{_datadir}/nvim/site/ftdetect/%{base_name}.vim
%{_datadir}/nvim/site/ftplugin/%{base_name}.vim
%{_datadir}/nvim/site/syntax/%{base_name}.vim
%{_datadir}/vim/vimfiles/compiler/%{base_name}.vim
%{_datadir}/vim/vimfiles/ftdetect/%{base_name}.vim
%{_datadir}/vim/vimfiles/ftplugin/%{base_name}.vim
%{_datadir}/vim/vimfiles/syntax/%{base_name}.vim
%{_iconsdir}/hicolor/16x16/apps/%{reverse_dns}.png
%{_iconsdir}/hicolor/16x16@2/apps/%{reverse_dns}.png
%{_iconsdir}/hicolor/32x32/apps/%{reverse_dns}.png
%{_iconsdir}/hicolor/32x32@2/apps/%{reverse_dns}.png
%{_iconsdir}/hicolor/128x128/apps/%{reverse_dns}.png
%{_iconsdir}/hicolor/128x128@2/apps/%{reverse_dns}.png
%{_iconsdir}/hicolor/256x256/apps/%{reverse_dns}.png
%{_iconsdir}/hicolor/256x256@2/apps/%{reverse_dns}.png
%{_iconsdir}/hicolor/512x512/apps/%{reverse_dns}.png
%{_iconsdir}/hicolor/1024x1024/apps/%{reverse_dns}.png
%{_mandir}/man1/%{base_name}.1.gz
%{_mandir}/man5/%{base_name}.5.gz
%_bindir/ghostty
%_datadir/applications/com.mitchellh.ghostty.desktop
%_datadir/bat/syntaxes/ghostty.sublime-syntax
%_datadir/ghostty/
%_datadir/kio/servicemenus/com.mitchellh.ghostty.desktop
%_datadir/nautilus-python/extensions/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
%_iconsdir/hicolor/16x16/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/16x16@2/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/32x32/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/32x32@2/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/128x128/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/128x128@2/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/256x256/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/256x256@2/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/512x512/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/1024x1024/apps/com.mitchellh.ghostty.png
%_mandir/man1/ghostty.1.gz
%_mandir/man5/ghostty.5.gz
%files bash-completion
%{bash_completions_dir}/%{base_name}.bash
%bash_completions_dir/ghostty.bash
%files fish-completion
%{fish_completions_dir}/%{base_name}.fish
%fish_completions_dir/ghostty.fish
%files zsh-completion
%{zsh_completions_dir}/_%{base_name}
%zsh_completions_dir/_ghostty
%files shell-integration
%dir %{_datadir}/%{base_name}/shell-integration
%{_datadir}/%{base_name}/shell-integration/bash/bash-preexec.sh
%{_datadir}/%{base_name}/shell-integration/bash/%{base_name}.bash
%{_datadir}/%{base_name}/shell-integration/elvish/lib/%{base_name}-integration.elv
%{_datadir}/%{base_name}/shell-integration/fish/vendor_conf.d/%{base_name}-shell-integration.fish
%{_datadir}/%{base_name}/shell-integration/zsh/.zshenv
%{_datadir}/%{base_name}/shell-integration/zsh/%{base_name}-integration
%_datadir/ghostty/shell-integration/bash/bash-preexec.sh
%_datadir/ghostty/shell-integration/bash/ghostty.bash
%_datadir/ghostty/shell-integration/elvish/lib/ghostty-integration.elv
%_datadir/ghostty/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish
%_datadir/ghostty/shell-integration/zsh/.zshenv
%_datadir/ghostty/shell-integration/zsh/ghostty-integration
%files terminfo
%if 0%{?fedora} < 42
%{_datadir}/terminfo/g/%{base_name}
%endif
%{_datadir}/terminfo/x/xterm-%{base_name}
%_datadir/terminfo/g/ghostty
%_datadir/terminfo/x/xterm-ghostty
%files terminfo-source
%{_datadir}/terminfo/%{base_name}.termcap
%{_datadir}/terminfo/%{base_name}.terminfo
%_datadir/terminfo/ghostty.termcap
%_datadir/terminfo/ghostty.terminfo
%changelog
* Wed Mar 05 2025 Gilver E. <rockgrub@disroot.org>
- Update to 1.1.3~tip^20250305git66e8d91-2%{?dist}
* Ghostty now has localization support via gettext as well as corresponding localization files
* Fri Jan 31 2025 Gilver E. <rockgrub@disroot.org>
- Update to 1.1.1~tip^20250131git5508e7-1%{?dist}
* Fri Jan 31 2025 ShinyGil <rockgrub@disroot.org>
- 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 Gilver E. <rockgrub@disroot.org>
* Tue Dec 31 2024 ShinyGil <rockgrub@disroot.org>
- 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 Gilver E. <rockgrub@disroot.org>
* Thu Dec 26 2024 ShinyGil <rockgrub@disroot.org>
- Initial package
+45 -55
View File
@@ -7,8 +7,8 @@
%endif
Name: ghostty
Version: 1.1.3
Release: 1%?dist
Version: 1.1.2
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/
@@ -37,7 +37,7 @@ Requires: %{name}-shell-integration = %{version}-%{release}
Requires: gtk4
Requires: libadwaita
Conflicts: ghostty-nightly
Packager: Gilver E. <rockgrub@disroot.org>
Packager: ShinyGil <rockgrub@disroot.org>
%description
👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.
@@ -83,9 +83,6 @@ This package contains files allowing Ghostty to integrate with various shells.
%package terminfo
Summary: Ghostty terminfo
Supplements: %{name}
%if 0%{?fedora} >= 42
Requires: ncurses-term >= 6.5-5.20250125%{?dist}
%endif
BuildArch: noarch
%description terminfo
@@ -128,78 +125,71 @@ zig build \
-Demit-termcap \
-Demit-terminfo
#Don't conflict with ncurses-term on F42 and up
%if 0%{?fedora} >= 42
rm -rf %{buildroot}%{_datadir}/terminfo/g/ghostty
%endif
%files
%doc README.md
%license LICENSE
%{_bindir}/ghostty
%{_datadir}/applications/com.mitchellh.ghostty.desktop
%{_datadir}/bat/syntaxes/ghostty.sublime-syntax
%{_datadir}/ghostty/
%{_datadir}/kio/servicemenus/com.mitchellh.ghostty.desktop
%{_datadir}/nautilus-python/extensions/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
%{_iconsdir}/hicolor/16x16/apps/com.mitchellh.ghostty.png
%{_iconsdir}/hicolor/16x16@2/apps/com.mitchellh.ghostty.png
%{_iconsdir}/hicolor/32x32/apps/com.mitchellh.ghostty.png
%{_iconsdir}/hicolor/32x32@2/apps/com.mitchellh.ghostty.png
%{_iconsdir}/hicolor/128x128/apps/com.mitchellh.ghostty.png
%{_iconsdir}/hicolor/128x128@2/apps/com.mitchellh.ghostty.png
%{_iconsdir}/hicolor/256x256/apps/com.mitchellh.ghostty.png
%{_iconsdir}/hicolor/256x256@2/apps/com.mitchellh.ghostty.png
%{_iconsdir}/hicolor/512x512/apps/com.mitchellh.ghostty.png
%{_iconsdir}/hicolor/1024x1024/apps/com.mitchellh.ghostty.png
%{_mandir}/man1/ghostty.1.gz
%{_mandir}/man5/ghostty.5.gz
%_bindir/ghostty
%_datadir/applications/com.mitchellh.ghostty.desktop
%_datadir/bat/syntaxes/ghostty.sublime-syntax
%_datadir/ghostty/
%_datadir/kio/servicemenus/com.mitchellh.ghostty.desktop
%_datadir/nautilus-python/extensions/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
%_iconsdir/hicolor/16x16/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/16x16@2/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/32x32/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/32x32@2/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/128x128/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/128x128@2/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/256x256/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/256x256@2/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/512x512/apps/com.mitchellh.ghostty.png
%_iconsdir/hicolor/1024x1024/apps/com.mitchellh.ghostty.png
%_mandir/man1/ghostty.1.gz
%_mandir/man5/ghostty.5.gz
%files bash-completion
%{bash_completions_dir}/ghostty.bash
%bash_completions_dir/ghostty.bash
%files fish-completion
%{fish_completions_dir}/ghostty.fish
%fish_completions_dir/ghostty.fish
%files zsh-completion
%{zsh_completions_dir}/_ghostty
%zsh_completions_dir/_ghostty
%files shell-integration
%{_datadir}/ghostty/shell-integration/bash/bash-preexec.sh
%{_datadir}/ghostty/shell-integration/bash/ghostty.bash
%{_datadir}/ghostty/shell-integration/elvish/lib/ghostty-integration.elv
%{_datadir}/ghostty/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish
%{_datadir}/ghostty/shell-integration/zsh/.zshenv
%{_datadir}/ghostty/shell-integration/zsh/ghostty-integration
%_datadir/ghostty/shell-integration/bash/bash-preexec.sh
%_datadir/ghostty/shell-integration/bash/ghostty.bash
%_datadir/ghostty/shell-integration/elvish/lib/ghostty-integration.elv
%_datadir/ghostty/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish
%_datadir/ghostty/shell-integration/zsh/.zshenv
%_datadir/ghostty/shell-integration/zsh/ghostty-integration
%files terminfo
%if 0%{?fedora} < 42
%{_datadir}/terminfo/g/ghostty
%endif
%{_datadir}/terminfo/x/xterm-ghostty
%_datadir/terminfo/g/ghostty
%_datadir/terminfo/x/xterm-ghostty
%files terminfo-source
%{_datadir}/terminfo/ghostty.termcap
%{_datadir}/terminfo/ghostty.terminfo
%_datadir/terminfo/ghostty.termcap
%_datadir/terminfo/ghostty.terminfo
%changelog
* Fri Jan 31 2025 Gilver E. <rockgrub@disroot.org>
* Fri Jan 31 2025 ShinyGil <rockgrub@disroot.org>
- 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 Gilver E. <rockgrub@disroot.org>
* Tue Dec 31 2024 ShinyGil <rockgrub@disroot.org>
- 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 Gilver E. <rockgrub@disroot.org>
* Thu Dec 26 2024 ShinyGil <rockgrub@disroot.org>
- Initial package
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "git-biance.spec"
}
}
-41
View File
@@ -1,41 +0,0 @@
%global crate git-biance
Name: git-biance
Version: 0.1.2
Release: 1%?dist
Summary: Visualize code contributions in a GitHub-style graph.
License: GPL-3.0
URL: https://crates.io/crates/git-biance
Source: %{crates_source}
Packager: xiaoshihou <xiaoshihou@tutamail.com>
BuildRequires: anda-srpm-macros cargo-rpm-macros mold
%global _description %{expand:
biance(鞭策,biān cè,spuris a small rust
program that shows and visualizes code contributions
in a git repository.
}
%description %{_description}
%description -n %{crate} %{_description}
%files -n %{crate}
%license LICENSE
%license LICENSE.dependencies
%doc README.md README-zh.md
%{_bindir}/%{crate}
%prep
%autosetup -n %{crate}-%{version} -p1
%cargo_prep_online
%build
%{cargo_license_summary_online}
%{cargo_license_online} > LICENSE.dependencies
%install
%cargo_install
-1
View File
@@ -1 +0,0 @@
rpm.version(crates("git-biance"));
+1 -1
View File
@@ -1,5 +1,5 @@
Name: kvrocks
Version: 2.12.0
Version: 2.11.1
Release: 1%?dist
Summary: Distributed key value NoSQL database that uses RocksDB
License: Apache-2.0
+2 -2
View File
@@ -2,8 +2,8 @@
%global crate lowfi
Name: rust-lowfi
Version: 1.6.0
Release: 1%?dist
Version: 1.5.6
Release: 1%{?dist}
Summary: Extremely simple lofi player
License: MIT
+2 -2
View File
@@ -12,8 +12,8 @@
# Naming variable as something other than "commit" is necessary
# to stop %%gometa from putting commit hash in release
%global commit_hash b61c8a4e1ae6810f307b2fc4bc30c25f2fb04729
%global commit_date 20250429
%global commit_hash 272a308275f3b543647c6171e86dc521ce2822a0
%global commit_date 20250228
%global shortcommit %{sub %{commit_hash} 1 7}
%global ver 2.0.14

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