diff --git a/anda/apps/discord-canary-openasar/discord-canary-openasar.spec b/anda/apps/discord-canary-openasar/discord-canary-openasar.spec index 5e093a5c84..8049181b92 100644 --- a/anda/apps/discord-canary-openasar/discord-canary-openasar.spec +++ b/anda/apps/discord-canary-openasar/discord-canary-openasar.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-canary-openasar -Version: 0.0.346 +Version: 0.0.383 Release: 1%?dist Summary: A snappier Discord rewrite with features like further customization and theming License: MIT AND https://discord.com/terms diff --git a/anda/apps/discord-canary/discord-canary.spec b/anda/apps/discord-canary/discord-canary.spec index 52c08be830..d3ab3b4e95 100644 --- a/anda/apps/discord-canary/discord-canary.spec +++ b/anda/apps/discord-canary/discord-canary.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-canary -Version: 0.0.346 +Version: 0.0.383 Release: 1%?dist Summary: Free Voice and Text Chat for Gamers URL: discord.com diff --git a/anda/apps/discord-openasar/discord-openasar.spec b/anda/apps/discord-openasar/discord-openasar.spec index dd2740b41f..9748269dac 100644 --- a/anda/apps/discord-openasar/discord-openasar.spec +++ b/anda/apps/discord-openasar/discord-openasar.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-openasar -Version: 0.0.52 +Version: 0.0.53 Release: 1%?dist Summary: A snappier Discord rewrite with features like further customization and theming License: MIT AND https://discord.com/terms diff --git a/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec b/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec index d05e06bc19..5d6e212a4f 100644 --- a/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec +++ b/anda/apps/discord-ptb-openasar/discord-ptb-openasar.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-ptb-openasar -Version: 0.0.81 +Version: 0.0.84 Release: 1%?dist Summary: A snappier Discord rewrite with features like further customization and theming License: MIT AND https://discord.com/terms diff --git a/anda/apps/discord-ptb/discord-ptb.spec b/anda/apps/discord-ptb/discord-ptb.spec index c6b0e8812f..4569aea94d 100644 --- a/anda/apps/discord-ptb/discord-ptb.spec +++ b/anda/apps/discord-ptb/discord-ptb.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-ptb -Version: 0.0.81 +Version: 0.0.84 Release: 1%?dist Summary: Free Voice and Text Chat for Gamers. URL: https://discord.com diff --git a/anda/apps/discord/discord.spec b/anda/apps/discord/discord.spec index aef194f512..1c78fa841b 100644 --- a/anda/apps/discord/discord.spec +++ b/anda/apps/discord/discord.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord -Version: 0.0.52 +Version: 0.0.53 Release: 1%?dist Summary: Free Voice and Text Chat for Gamers URL: https://discord.com diff --git a/anda/apps/feishin/feishin.spec b/anda/apps/feishin/feishin.spec index 9815191298..6e2abd578e 100644 --- a/anda/apps/feishin/feishin.spec +++ b/anda/apps/feishin/feishin.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: feishin -Version: 0.6.1 +Version: 0.7.0 Release: 1%?dist Summary: A modern self-hosted music player License: GPL-3.0 diff --git a/anda/apps/mpv/mpv-nightly.spec b/anda/apps/mpv/mpv-nightly.spec index a70281ecd9..5e92fbdb33 100644 --- a/anda/apps/mpv/mpv-nightly.spec +++ b/anda/apps/mpv/mpv-nightly.spec @@ -1,7 +1,7 @@ -%global commit a46ce9e28cd97f7280c085649a79f85aa1d0fe70 +%global commit 943a50b300a081bb223325295040846fe435a861 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240325 -%global ver v0.37.0 +%global commit_date 20240504 +%global ver v0.38.0 Name: mpv-nightly Version: %ver^%commit_date.%shortcommit diff --git a/anda/desktops/elementary/elementary-theme/elementary-theme.spec b/anda/desktops/elementary/elementary-theme/elementary-theme.spec index 34c42b2f8c..98379503c8 100644 --- a/anda/desktops/elementary/elementary-theme/elementary-theme.spec +++ b/anda/desktops/elementary/elementary-theme/elementary-theme.spec @@ -3,8 +3,8 @@ Name: elementary-theme Summary: Elementary GTK+ Stylesheet -Version: 7.3.0 -Release: 1%{?dist} +Version: 8.0.0 +Release: 1%?dist License: GPL-3.0 URL: https://github.com/elementary/stylesheet diff --git a/anda/desktops/elementary/granite-7/granite-7.spec b/anda/desktops/elementary/granite-7/granite-7.spec index d9ecfc465c..9325f09d87 100644 --- a/anda/desktops/elementary/granite-7/granite-7.spec +++ b/anda/desktops/elementary/granite-7/granite-7.spec @@ -5,8 +5,8 @@ apps built for elementary.} Name: granite-7 Summary: Elementary companion library for GTK+ and GLib -Version: 7.4.0 -Release: 1%{?dist} +Version: 7.5.0 +Release: 1%?dist License: LGPL-3.0-or-later URL: https://github.com/elementary/granite @@ -82,6 +82,7 @@ desktop-file-validate \ %{_datadir}/metainfo/granite-7.metainfo.xml %{_datadir}/icons/hicolor/*/apps/io.elementary.granite-7.svg +%{_datadir}/themes/Granite/ %files devel diff --git a/anda/desktops/gnome/gnome-shell-extension-pop-shell/terra-gnome-shell-extension-pop-shell.spec b/anda/desktops/gnome/gnome-shell-extension-pop-shell/terra-gnome-shell-extension-pop-shell.spec index 362f8608a1..5c65531bb1 100644 --- a/anda/desktops/gnome/gnome-shell-extension-pop-shell/terra-gnome-shell-extension-pop-shell.spec +++ b/anda/desktops/gnome/gnome-shell-extension-pop-shell/terra-gnome-shell-extension-pop-shell.spec @@ -1,13 +1,13 @@ # from Fedora upstream %global extension pop-shell %global uuid %{extension}@system76.com -%global commit 9a30c5bd49c373896410852d6477596ac4c43bd3 +%global commit cfa0c55e84b7ce339e5ce83832f76fee17e99d51 %global shortcommit %{lua:print(macros.commit:sub(1,7))} -%global commit_date 240218 +%global commit_date 20240404 %global ver 1.2.0 Name: terra-gnome-shell-extension-%{extension} -Version: %{ver}^%{shortcommit} +Version: %{ver}^%commit_date.%{shortcommit} Release: 1%?dist Summary: GNOME Shell extension for advanced tiling window management License: GPL-3.0-only diff --git a/anda/desktops/sddm/0001-Delay-for-logind-and-fallback-to-seat0.patch b/anda/desktops/sddm/0001-Delay-for-logind-and-fallback-to-seat0.patch new file mode 100644 index 0000000000..e6292da34b --- /dev/null +++ b/anda/desktops/sddm/0001-Delay-for-logind-and-fallback-to-seat0.patch @@ -0,0 +1,142 @@ +From 4d44531c8f624f5b479c3ff23e8fecc67eb848ab Mon Sep 17 00:00:00 2001 +From: Jeremy Linton +Date: Fri, 22 Oct 2021 14:51:54 -0500 +Subject: [PATCH] Delay for logind, and fallback to seat0 + +There is systemd/logind race with when restarting +sddm that causes logind1 not to be available. Previously +this meant the seat0 was immediately created regardless +of the state of CanGraphical. + +Fixing this, though we still want seat0 to be started +if none of the seats appear to be graphical. Presumably +there are some graphics on the machine, otherwise +why run sddm? Wait a bit, and create seat0 anyway. If +this fails the output from Xorg should tell us why. This +is generally a better strategy than what happens a good +amount of time now, where sddm is started and silent about +why the screen is blank. + +References: +* https://bugzilla.redhat.com/2011991 +* https://bugzilla.redhat.com/2016310 + +Signed-off-by: Jeremy Linton +--- + src/daemon/LogindDBusTypes.cpp | 31 +++++++++++++++++++++---------- + src/daemon/SeatManager.cpp | 22 ++++++++++++++++++++++ + src/daemon/SeatManager.h | 1 + + 3 files changed, 44 insertions(+), 10 deletions(-) + +diff --git a/src/daemon/LogindDBusTypes.cpp b/src/daemon/LogindDBusTypes.cpp +index 011bb7f..6255c69 100644 +--- a/src/daemon/LogindDBusTypes.cpp ++++ b/src/daemon/LogindDBusTypes.cpp +@@ -8,6 +8,8 @@ + + #include + ++#include ++ + class LogindPathInternal { + public: + LogindPathInternal(); +@@ -46,17 +48,26 @@ LogindPathInternal::LogindPathInternal() + qRegisterMetaType("UserInfoList"); + qDBusRegisterMetaType(); + +- if (QDBusConnection::systemBus().interface()->isServiceRegistered(QStringLiteral("org.freedesktop.login1"))) { +- qDebug() << "Logind interface found"; +- available = true; +- serviceName = QStringLiteral("org.freedesktop.login1"); +- managerPath = QStringLiteral("/org/freedesktop/login1"); +- managerIfaceName = QStringLiteral("org.freedesktop.login1.Manager"); +- seatIfaceName = QStringLiteral("org.freedesktop.login1.Seat"); +- sessionIfaceName = QStringLiteral("org.freedesktop.login1.Session"); +- userIfaceName = QStringLiteral("org.freedesktop.login1.User"); +- return; ++#ifdef HAVE_SYSTEMD ++ // systemd-logind should be running, although because it takes a few moments to restart after ++ // systemctl isolate calls, it may not yet be running. Wait a few seconds for it, while blocking everything else. ++ int logind_wait_seconds = 50; ++ while (logind_wait_seconds--) { ++ if (QDBusConnection::systemBus().interface()->isServiceRegistered(QStringLiteral("org.freedesktop.login1"))) { ++ qDebug() << "Logind interface found"; ++ available = true; ++ serviceName = QStringLiteral("org.freedesktop.login1"); ++ managerPath = QStringLiteral("/org/freedesktop/login1"); ++ managerIfaceName = QStringLiteral("org.freedesktop.login1.Manager"); ++ seatIfaceName = QStringLiteral("org.freedesktop.login1.Seat"); ++ sessionIfaceName = QStringLiteral("org.freedesktop.login1.Session"); ++ userIfaceName = QStringLiteral("org.freedesktop.login1.User"); ++ return; ++ } ++ qDebug() << "Sleeping for systemd-logind"; ++ usleep(100000); + } ++#endif + + if (QDBusConnection::systemBus().interface()->isServiceRegistered(QStringLiteral("org.freedesktop.ConsoleKit"))) { + qDebug() << "Console kit interface found"; +diff --git a/src/daemon/SeatManager.cpp b/src/daemon/SeatManager.cpp +index bd207e6..39d8b85 100644 +--- a/src/daemon/SeatManager.cpp ++++ b/src/daemon/SeatManager.cpp +@@ -26,6 +26,9 @@ + #include + #include + #include ++#include ++#include ++#include + + #include "LogindDBusTypes.h" + +@@ -115,6 +118,8 @@ namespace SDDM { + + QDBusConnection::systemBus().connect(Logind::serviceName(), Logind::managerPath(), Logind::managerIfaceName(), QStringLiteral("SeatNew"), this, SLOT(logindSeatAdded(QString,QDBusObjectPath))); + QDBusConnection::systemBus().connect(Logind::serviceName(), Logind::managerPath(), Logind::managerIfaceName(), QStringLiteral("SeatRemoved"), this, SLOT(logindSeatRemoved(QString,QDBusObjectPath))); ++ ++ QTimer::singleShot(5000, this, &SeatManager::checkSeat); + } + + void SeatManager::createSeat(const QString &name) { +@@ -152,6 +157,23 @@ namespace SDDM { + m_seats.value(name)->createDisplay(Display::defaultDisplayServerType()); + } + ++ // this is a bit hacky, but linux DRM drivers ++ // won't initially be available so there is a race ++ // between determing if a efifb/etc graphical object ++ // is the only graphics on the machine, or a DRM driver ++ // will take over the display. So we will hang out for a few ++ // seconds and if none of the seats are declared cangraphical ++ // its possible the only graphics on the machine don't have ++ // a drm driver. ++ void SeatManager::checkSeat(void) { ++ if (m_seats.isEmpty()) { ++ //if (QFileInfo::exists(QStringLiteral("/dev/fb0"))) { ++ qWarning() << "No graphical seats found, attempt to start one on the main console anyway..."; ++ createSeat(QStringLiteral("seat0")); ++ //} ++ } ++ } ++ + void SDDM::SeatManager::logindSeatAdded(const QString& name, const QDBusObjectPath& objectPath) + { + auto logindSeat = new LogindSeat(name, objectPath); +diff --git a/src/daemon/SeatManager.h b/src/daemon/SeatManager.h +index b2f9796..aa43047 100644 +--- a/src/daemon/SeatManager.h ++++ b/src/daemon/SeatManager.h +@@ -49,6 +49,7 @@ namespace SDDM { + private: + QHash m_seats; //these will exist only for graphical seats + QHash m_systemSeats; //these will exist for all seats ++ void checkSeat(void); + }; + } + +-- +2.39.2 + diff --git a/anda/desktops/sddm/README.scripts b/anda/desktops/sddm/README.scripts new file mode 100644 index 0000000000..70b5243104 --- /dev/null +++ b/anda/desktops/sddm/README.scripts @@ -0,0 +1,2 @@ +This scripts dir contains only samples, but are generally not used directly. +In practice, sddm runtime uses items under /etc/sddm by default diff --git a/anda/desktops/sddm/anda.hcl b/anda/desktops/sddm/anda.hcl new file mode 100644 index 0000000000..3c3e12cf82 --- /dev/null +++ b/anda/desktops/sddm/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "terra-sddm.spec" + } +} diff --git a/anda/desktops/sddm/sddm-0.18.0-environment_file.patch b/anda/desktops/sddm/sddm-0.18.0-environment_file.patch new file mode 100644 index 0000000000..6f89c36b18 --- /dev/null +++ b/anda/desktops/sddm/sddm-0.18.0-environment_file.patch @@ -0,0 +1,11 @@ +diff -up sddm-0.18.0/services/sddm.service.in.env sddm-0.18.0/services/sddm.service.in +--- sddm-0.18.0/services/sddm.service.in.env 2018-07-18 05:31:40.000000000 -0500 ++++ sddm-0.18.0/services/sddm.service.in 2019-03-14 08:23:22.095498405 -0500 +@@ -7,6 +7,7 @@ After=systemd-user-sessions.service gett + [Service] + ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/sddm + Restart=always ++EnvironmentFile=-/etc/sysconfig/sddm + + [Install] + Alias=display-manager.service diff --git a/anda/desktops/sddm/sddm-0.20.0-fedora_config.patch b/anda/desktops/sddm/sddm-0.20.0-fedora_config.patch new file mode 100644 index 0000000000..ec6c1b6c88 --- /dev/null +++ b/anda/desktops/sddm/sddm-0.20.0-fedora_config.patch @@ -0,0 +1,53 @@ +diff --git a/src/common/Configuration.h b/src/common/Configuration.h +index 54bcace..9b8fa22 100644 +--- a/src/common/Configuration.h ++++ b/src/common/Configuration.h +@@ -37,9 +37,8 @@ namespace SDDM { + enum NumState { NUM_NONE, NUM_SET_ON, NUM_SET_OFF }; + + // Name Type Default value Description +- // TODO: Change default to x11-user in a future release +- Entry(DisplayServer, QString, _S("x11"), _S("Which display server should be used.\n" +- "Valid values are: x11, x11-user, wayland. Wayland support is experimental")); ++ Entry(DisplayServer, QString, _S("wayland"), _S("Which display server should be used.\n" ++ "Valid values are: x11, x11-user, wayland.")); + Entry(HaltCommand, QString, _S(HALT_COMMAND), _S("Halt command")); + Entry(RebootCommand, QString, _S(REBOOT_COMMAND), _S("Reboot command")); + Entry(Numlock, NumState, NUM_NONE, _S("Initial NumLock state. Can be on, off or none.\n" +@@ -51,7 +50,7 @@ namespace SDDM { + // Name Entries (but it's a regular class again) + Section(Theme, + Entry(ThemeDir, QString, _S(DATA_INSTALL_DIR "/themes"), _S("Theme directory path")); +- Entry(Current, QString, _S(""), _S("Current theme name")); ++ Entry(Current, QString, _S("01-breeze-fedora"), _S("Current theme name")); + Entry(FacesDir, QString, _S(DATA_INSTALL_DIR "/faces"), _S("Global directory for user avatars\n" + "The files should be named .face.icon")); + Entry(CursorTheme, QString, QString(), _S("Cursor theme used in the greeter")); +@@ -71,9 +70,9 @@ namespace SDDM { + Entry(SessionDir, QStringList, {_S("/usr/local/share/xsessions"), + _S("/usr/share/xsessions")}, _S("Comma-separated list of directories containing available X sessions")); + Entry(SessionCommand, QString, _S(SESSION_COMMAND), _S("Path to a script to execute when starting the desktop session")); +- Entry(SessionLogFile, QString, _S(".local/share/sddm/xorg-session.log"), _S("Path to the user session log file")); +- Entry(DisplayCommand, QString, _S(DATA_INSTALL_DIR "/scripts/Xsetup"), _S("Path to a script to execute when starting the display server")); +- Entry(DisplayStopCommand, QString, _S(DATA_INSTALL_DIR "/scripts/Xstop"), _S("Path to a script to execute when stopping the display server")); ++ Entry(SessionLogFile, QString, _S(".cache/xsession-errors"), _S("Path to the user session log file")); ++ Entry(DisplayCommand, QString, _S(SYS_CONFIG_DIR "/sddm/Xsetup"), _S("Path to a script to execute when starting the display server")); ++ Entry(DisplayStopCommand, QString, _S(SYS_CONFIG_DIR "/sddm/Xstop"), _S("Path to a script to execute when stopping the display server")); + Entry(EnableHiDPI, bool, true, _S("Enable Qt's automatic high-DPI scaling")); + ); + +@@ -82,12 +81,12 @@ namespace SDDM { + Entry(SessionDir, QStringList, {_S("/usr/local/share/wayland-sessions"), + _S("/usr/share/wayland-sessions")}, _S("Comma-separated list of directories containing available Wayland sessions")); + Entry(SessionCommand, QString, _S(WAYLAND_SESSION_COMMAND), _S("Path to a script to execute when starting the desktop session")); +- Entry(SessionLogFile, QString, _S(".local/share/sddm/wayland-session.log"),_S("Path to the user session log file")); ++ Entry(SessionLogFile, QString, _S(".cache/wayland-errors"), _S("Path to the user session log file")); + Entry(EnableHiDPI, bool, true, _S("Enable Qt's automatic high-DPI scaling")); + ); + + Section(Users, +- Entry(DefaultPath, QString, _S("/usr/local/bin:/usr/bin:/bin"), _S("Default $PATH for logged in users")); ++ Entry(DefaultPath, QString, _S("/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"), _S("Default $PATH for logged in users")); + Entry(MinimumUid, int, UID_MIN, _S("Minimum user id for displayed users")); + Entry(MaximumUid, int, UID_MAX, _S("Maximum user id for displayed users")); + Entry(HideUsers, QStringList, QStringList(), _S("Comma-separated list of users that should not be listed")); diff --git a/anda/desktops/sddm/sddm-0.21.0-qt6greeter.patch b/anda/desktops/sddm/sddm-0.21.0-qt6greeter.patch new file mode 100644 index 0000000000..b9e95a5a36 --- /dev/null +++ b/anda/desktops/sddm/sddm-0.21.0-qt6greeter.patch @@ -0,0 +1,67 @@ +From 52175648f4e1b415f93b24a3ef970983024659f2 Mon Sep 17 00:00:00 2001 +From: Neal Gompa +Date: Wed, 28 Feb 2024 16:47:16 -0500 +Subject: [PATCH] Default to Qt6 and always use versioned greeters + +Distributors can handle creating an unversioned name if necessary. +--- + src/common/ThemeMetadata.cpp | 4 ++-- + src/daemon/Greeter.cpp | 3 +-- + src/greeter/CMakeLists.txt | 9 +-------- + 3 files changed, 4 insertions(+), 12 deletions(-) + +diff --git a/src/common/ThemeMetadata.cpp b/src/common/ThemeMetadata.cpp +index 2cb3762..003056a 100644 +--- a/src/common/ThemeMetadata.cpp ++++ b/src/common/ThemeMetadata.cpp +@@ -28,7 +28,7 @@ namespace SDDM { + QString mainScript { QStringLiteral("Main.qml") }; + QString configFile; + QString translationsDirectory { QStringLiteral(".") }; +- int qtVersion = 5; ++ int qtVersion = 6; + }; + + ThemeMetadata::ThemeMetadata(const QString &path, QObject *parent) : QObject(parent), d(new ThemeMetadataPrivate()) { +@@ -61,6 +61,6 @@ namespace SDDM { + d->mainScript = settings.value(QStringLiteral("SddmGreeterTheme/MainScript"), QStringLiteral("Main.qml")).toString(); + d->configFile = settings.value(QStringLiteral("SddmGreeterTheme/ConfigFile"), QStringLiteral("theme.conf")).toString(); + d->translationsDirectory = settings.value(QStringLiteral("SddmGreeterTheme/TranslationsDirectory"), QStringLiteral(".")).toString(); +- d->qtVersion = settings.value(QStringLiteral("SddmGreeterTheme/QtVersion"), 5).toInt(); ++ d->qtVersion = settings.value(QStringLiteral("SddmGreeterTheme/QtVersion"), 6).toInt(); + } + } +diff --git a/src/daemon/Greeter.cpp b/src/daemon/Greeter.cpp +index 07fccde..5a956b6 100644 +--- a/src/daemon/Greeter.cpp ++++ b/src/daemon/Greeter.cpp +@@ -82,8 +82,7 @@ namespace SDDM { + + QString Greeter::greeterPathForQt(int qtVersion) + { +- const QString suffix = qtVersion == 5 ? QString() : QStringLiteral("-qt%1").arg(qtVersion); +- return QStringLiteral(BIN_INSTALL_DIR "/sddm-greeter%1").arg(suffix); ++ return QStringLiteral(BIN_INSTALL_DIR "/sddm-greeter-qt%1").arg(qtVersion); + } + + bool Greeter::start() { +diff --git a/src/greeter/CMakeLists.txt b/src/greeter/CMakeLists.txt +index 72769e4..524368d 100644 +--- a/src/greeter/CMakeLists.txt ++++ b/src/greeter/CMakeLists.txt +@@ -1,11 +1,4 @@ +-if(QT_MAJOR_VERSION EQUAL "5") +- # Keep the unversioned name for Qt5. When upgrading SDDM, the old daemon +- # might still be running and only know about "sddm-greeter". Keeping the +- # previous name around also helps users calling it directly. +- set(GREETER_TARGET sddm-greeter) +-else() +- set(GREETER_TARGET sddm-greeter-qt${QT_MAJOR_VERSION}) +-endif() ++set(GREETER_TARGET sddm-greeter-qt${QT_MAJOR_VERSION}) + + message(STATUS "Building greeter for Qt ${QT_MAJOR_VERSION} as ${GREETER_TARGET}") + +-- +2.43.0 + diff --git a/anda/desktops/sddm/sddm-PR1876.patch b/anda/desktops/sddm/sddm-PR1876.patch new file mode 100644 index 0000000000..c0a89faa52 --- /dev/null +++ b/anda/desktops/sddm/sddm-PR1876.patch @@ -0,0 +1,1018 @@ +From 6831a26862e15347296a48a9b7825c7db7b5b957 Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin +Date: Tue, 30 Jan 2024 20:16:25 -0800 +Subject: [PATCH 1/7] Mark keyboard backend as disabled on Wayland + +8c370d9 already cleared the list of layouts, but Num/Caps indicators +are also not supported on Wayland. Let's communicate that clearly by +marking the KeyboardModel as disabled. +--- + src/greeter/waylandkeyboardbackend.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/greeter/waylandkeyboardbackend.cpp b/src/greeter/waylandkeyboardbackend.cpp +index fcea53614..c42bee6f2 100644 +--- a/src/greeter/waylandkeyboardbackend.cpp ++++ b/src/greeter/waylandkeyboardbackend.cpp +@@ -95,6 +95,7 @@ void WaylandKeyboardBackend::init() + // TODO: We can't actually switch keyboard layout yet, so don't populate a list of layouts + // so that themes can know to not show the option to change layout + // d->layouts = parseRules(QStringLiteral("/usr/share/X11/xkb/rules/evdev.xml"), d->layout_id); ++ d->enabled = false; + } + + void WaylandKeyboardBackend::disconnect() + +From e490bb994ada2a565e95fd32fb18818b1f05ff82 Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin +Date: Tue, 30 Jan 2024 21:10:15 -0800 +Subject: [PATCH 2/7] Themes: hide LayoutBox when keyboard model is empty or + disabled + +--- + data/themes/elarun/Main.qml | 4 ++++ + data/themes/maldives/Main.qml | 2 ++ + data/themes/maya/Main.qml | 4 ++++ + src/greeter/theme/Main.qml | 4 ++++ + 4 files changed, 14 insertions(+) + +diff --git a/data/themes/elarun/Main.qml b/data/themes/elarun/Main.qml +index e559b741b..523dab7b3 100644 +--- a/data/themes/elarun/Main.qml ++++ b/data/themes/elarun/Main.qml +@@ -270,6 +270,8 @@ Rectangle { + height: parent.height + anchors.verticalCenter: parent.verticalCenter + ++ visible: layoutBox.visible ++ + text: textConstants.layout + font.pixelSize: 14 + verticalAlignment: Text.AlignVCenter +@@ -281,6 +283,8 @@ Rectangle { + anchors.verticalCenter: parent.verticalCenter + font.pixelSize: 14 + ++ visible: keyboard.enabled && keyboard.layouts.length > 0 ++ + arrowIcon: "angle-down.png" + + KeyNavigation.backtab: session; KeyNavigation.tab: user_entry +diff --git a/data/themes/maldives/Main.qml b/data/themes/maldives/Main.qml +index 4fac9f3c5..7f1959a5f 100644 +--- a/data/themes/maldives/Main.qml ++++ b/data/themes/maldives/Main.qml +@@ -201,6 +201,8 @@ Rectangle { + spacing : 4 + anchors.bottom: parent.bottom + ++ visible: keyboard.enabled && keyboard.layouts.length > 0 ++ + Text { + id: lblLayout + width: parent.width +diff --git a/data/themes/maya/Main.qml b/data/themes/maya/Main.qml +index d8e470b39..d166b718c 100644 +--- a/data/themes/maya/Main.qml ++++ b/data/themes/maya/Main.qml +@@ -239,6 +239,8 @@ Rectangle { + width : spUnit * 2 + height : parent.height + ++ visible : keyboard.enabled && keyboard.layouts.length > 0 ++ + color : primaryHue1 + borderColor : primaryHue3 + focusColor : accentLight +@@ -261,6 +263,8 @@ Rectangle { + + text : textConstants.layout + ++ visible : maya_layout.visible ++ + color : normalText + + font.family : opensans_cond_light.name +diff --git a/src/greeter/theme/Main.qml b/src/greeter/theme/Main.qml +index 0a2ab9c84..2106f6004 100644 +--- a/src/greeter/theme/Main.qml ++++ b/src/greeter/theme/Main.qml +@@ -236,6 +236,8 @@ Rectangle { + height: parent.height + anchors.verticalCenter: parent.verticalCenter + ++ visible: layoutBox.visible ++ + text: textConstants.layout + font.pixelSize: 16 + verticalAlignment: Text.AlignVCenter +@@ -247,6 +249,8 @@ Rectangle { + anchors.verticalCenter: parent.verticalCenter + font.pixelSize: 14 + ++ visible: keyboard.enabled && keyboard.layouts.length > 0 ++ + arrowIcon: "angle-down.png" + + KeyNavigation.backtab: session; KeyNavigation.tab: btnShutdown + +From a8dad084766a31d92252b2c2707c778dca1f30cc Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin +Date: Wed, 31 Jan 2024 02:08:47 -0800 +Subject: [PATCH 3/7] Themes: explicitly resolve image URLs + +Qt6 no longer resolves relative URLs on assignment to a property of type +url[^1]. The resolution now happens late, in the context of the item that +uses the URL. In our case, it would be a QML component containing Image. +However, the themes shipped with SDDM contain resources in the theme +directories and rely on the previous algorithm of the URL resolution. + +The only documented[^2] way to address that is to resolve the paths in +advance with `Qt.resolvedUrl` to avoid any ambiguity. `Qt.resolvedUrl` +is supported in Qt5, so that should be a safe, albeit a bit verbose, +conversion. + +Fixes following error: +``` +file:///usr/lib64/qt6/qml/SddmComponents/ComboBox.qml:105:9: QML Image: Cannot open: file:///usr/lib64/qt6/qml/SddmComponents/angle-down.png +``` + +[^1]: https://doc.qt.io/qt-6/qml-url.html +[^2]: `QQmlAbstractUrlInterceptor` exists in Qt5, but + `QQmlEngine::setUrlInterceptor` is undocumented and has potential +negative side-effects. It also receives already resolved absolute URLs. +--- + data/themes/elarun/Main.qml | 29 +++++++++++++++-------------- + data/themes/maldives/Main.qml | 13 +++++++------ + data/themes/maya/Main.qml | 10 +++++----- + docs/THEMING.md | 2 +- + src/greeter/theme/Main.qml | 14 +++++++------- + 5 files changed, 35 insertions(+), 33 deletions(-) + +diff --git a/data/themes/elarun/Main.qml b/data/themes/elarun/Main.qml +index 523dab7b3..8151bb52a 100644 +--- a/data/themes/elarun/Main.qml ++++ b/data/themes/elarun/Main.qml +@@ -50,11 +50,12 @@ Rectangle { + + Background { + anchors.fill: parent +- source: config.background ++ source: Qt.resolvedUrl(config.background) + fillMode: Image.PreserveAspectCrop + onStatusChanged: { +- if (status == Image.Error && source != config.defaultBackground) { +- source = config.defaultBackground ++ var defaultBackground = Qt.resolvedUrl(config.defaultBackground) ++ if (status == Image.Error && source != defaultBackground) { ++ source = defaultBackground + } + } + } +@@ -72,12 +73,12 @@ Rectangle { + + Image { + anchors.fill: parent +- source: "images/rectangle.png" ++ source: Qt.resolvedUrl("images/rectangle.png") + } + + Image { + anchors.fill: parent +- source: "images/rectangle_overlay.png" ++ source: Qt.resolvedUrl("images/rectangle_overlay.png") + opacity: 0.1 + } + +@@ -103,7 +104,7 @@ Rectangle { + anchors.centerIn: parent + + Row { +- Image { source: "images/user_icon.png" } ++ Image { source: Qt.resolvedUrl("images/user_icon.png") } + + TextBox { + id: user_entry +@@ -121,7 +122,7 @@ Rectangle { + + Row { + +- Image { source: "images/lock.png" } ++ Image { source: Qt.resolvedUrl("images/lock.png") } + + PasswordBox { + id: pw_entry +@@ -150,7 +151,7 @@ Rectangle { + anchors.verticalCenter: parent.verticalCenter + anchors.margins: 20 + +- source: "images/login_normal.png" ++ source: Qt.resolvedUrl("images/login_normal.png") + + onClicked: sddm.login(user_entry.text, pw_entry.text, sessionIndex) + +@@ -171,7 +172,7 @@ Rectangle { + + ImageButton { + id: system_button +- source: "images/system_shutdown.png" ++ source: Qt.resolvedUrl("images/system_shutdown.png") + onClicked: sddm.powerOff() + + KeyNavigation.backtab: session; KeyNavigation.tab: reboot_button +@@ -179,7 +180,7 @@ Rectangle { + + ImageButton { + id: reboot_button +- source: "images/system_reboot.png" ++ source: Qt.resolvedUrl("images/system_reboot.png") + onClicked: sddm.reboot() + + KeyNavigation.backtab: system_button; KeyNavigation.tab: suspend_button +@@ -187,7 +188,7 @@ Rectangle { + + ImageButton { + id: suspend_button +- source: "images/system_suspend.png" ++ source: Qt.resolvedUrl("images/system_suspend.png") + visible: sddm.canSuspend + onClicked: sddm.suspend() + +@@ -196,7 +197,7 @@ Rectangle { + + ImageButton { + id: hibernate_button +- source: "images/system_hibernate.png" ++ source: Qt.resolvedUrl("images/system_hibernate.png") + visible: sddm.canHibernate + onClicked: sddm.hibernate() + +@@ -256,7 +257,7 @@ Rectangle { + width: 245 + anchors.verticalCenter: parent.verticalCenter + +- arrowIcon: "angle-down.png" ++ arrowIcon: Qt.resolvedUrl("angle-down.png") + + model: sessionModel + index: sessionModel.lastIndex +@@ -285,7 +286,7 @@ Rectangle { + + visible: keyboard.enabled && keyboard.layouts.length > 0 + +- arrowIcon: "angle-down.png" ++ arrowIcon: Qt.resolvedUrl("angle-down.png") + + KeyNavigation.backtab: session; KeyNavigation.tab: user_entry + } +diff --git a/data/themes/maldives/Main.qml b/data/themes/maldives/Main.qml +index 7f1959a5f..f346829e8 100644 +--- a/data/themes/maldives/Main.qml ++++ b/data/themes/maldives/Main.qml +@@ -58,11 +58,12 @@ Rectangle { + + Background { + anchors.fill: parent +- source: config.background ++ source: Qt.resolvedUrl(config.background) + fillMode: Image.PreserveAspectCrop + onStatusChanged: { +- if (status == Image.Error && source != config.defaultBackground) { +- source = config.defaultBackground ++ var defaultBackground = Qt.resolvedUrl(config.defaultBackground) ++ if (status == Image.Error && source != defaultBackground) { ++ source = defaultBackground + } + } + } +@@ -87,7 +88,7 @@ Rectangle { + width: Math.max(320, mainColumn.implicitWidth + 50) + height: Math.max(320, mainColumn.implicitHeight + 50) + +- source: "rectangle.png" ++ source: Qt.resolvedUrl("rectangle.png") + + Column { + id: mainColumn +@@ -186,7 +187,7 @@ Rectangle { + width: parent.width; height: 30 + font.pixelSize: 14 + +- arrowIcon: "angle-down.png" ++ arrowIcon: Qt.resolvedUrl("angle-down.png") + + model: sessionModel + index: sessionModel.lastIndex +@@ -217,7 +218,7 @@ Rectangle { + width: parent.width; height: 30 + font.pixelSize: 14 + +- arrowIcon: "angle-down.png" ++ arrowIcon: Qt.resolvedUrl("angle-down.png") + + KeyNavigation.backtab: session; KeyNavigation.tab: loginButton + } +diff --git a/data/themes/maya/Main.qml b/data/themes/maya/Main.qml +index d166b718c..30bb530ca 100644 +--- a/data/themes/maya/Main.qml ++++ b/data/themes/maya/Main.qml +@@ -251,7 +251,7 @@ Rectangle { + font.family : opensans_cond_light.name + font.pixelSize : spFontNormal + +- arrowIcon: "images/ic_arrow_drop_down_white_24px.svg" ++ arrowIcon: Qt.resolvedUrl("images/ic_arrow_drop_down_white_24px.svg") + arrowColor: primaryHue3 + + KeyNavigation.tab : maya_username +@@ -296,7 +296,7 @@ Rectangle { + font.family : opensans_cond_light.name + font.pixelSize : spFontNormal + +- arrowIcon: "images/ic_arrow_drop_down_white_24px.svg" ++ arrowIcon: Qt.resolvedUrl("images/ic_arrow_drop_down_white_24px.svg") + arrowColor: primaryHue3 + + KeyNavigation.tab : maya_layout +@@ -355,7 +355,7 @@ Rectangle { + label : textConstants.shutdown + labelColor : normalText + +- icon : "images/ic_power_settings_new_white_24px.svg" ++ icon : Qt.resolvedUrl("images/ic_power_settings_new_white_24px.svg") + iconColor : accentShade + + hoverIconColor : powerColor +@@ -381,7 +381,7 @@ Rectangle { + label : textConstants.reboot + labelColor : normalText + +- icon : "images/ic_refresh_white_24px.svg" ++ icon : Qt.resolvedUrl("images/ic_refresh_white_24px.svg") + iconColor : accentLight + + hoverIconColor : rebootColor +@@ -492,7 +492,7 @@ Rectangle { + hoverColor : accentLight + textColor : normalText + +- image : "images/ic_warning_white_24px.svg" ++ image : Qt.resolvedUrl("images/ic_warning_white_24px.svg") + + tooltipEnabled : true + tooltipText : textConstants.capslockWarning +diff --git a/docs/THEMING.md b/docs/THEMING.md +index bc69be003..873172192 100644 +--- a/docs/THEMING.md ++++ b/docs/THEMING.md +@@ -8,7 +8,7 @@ We also provide models containing information about the screens, available sessi + + ComboBox { + id: session +- arrowIcon: "angle-down.png" ++ arrowIcon: Qt.resolvedPath("angle-down.png") + model: sessionModel + index: sessionModel.lastIndex + } +diff --git a/src/greeter/theme/Main.qml b/src/greeter/theme/Main.qml +index 2106f6004..b799670ac 100644 +--- a/src/greeter/theme/Main.qml ++++ b/src/greeter/theme/Main.qml +@@ -55,7 +55,7 @@ Rectangle { + + Background { + anchors.fill: parent +- source: "qrc:/theme/background.png" ++ source: "qrc:///theme/background.png" + fillMode: Image.PreserveAspectCrop + onStatusChanged: { + if (status == Image.Error && source != config.defaultBackground) { +@@ -131,7 +131,7 @@ Rectangle { + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + anchors.margins: 10 +- source: "angle-left.png" ++ source: "qrc:///theme/angle-left.png" + onClicked: listView.decrementCurrentIndex() + + KeyNavigation.backtab: btnShutdown; KeyNavigation.tab: listView +@@ -162,7 +162,7 @@ Rectangle { + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + anchors.margins: 10 +- source: "angle-right.png" ++ source: "qrc:///theme/angle-right.png" + onClicked: listView.incrementCurrentIndex() + KeyNavigation.backtab: listView; KeyNavigation.tab: session + } +@@ -222,7 +222,7 @@ Rectangle { + width: 245 + anchors.verticalCenter: parent.verticalCenter + +- arrowIcon: "angle-down.png" ++ arrowIcon: "qrc:///theme/angle-down.png" + + model: sessionModel + index: sessionModel.lastIndex +@@ -251,7 +251,7 @@ Rectangle { + + visible: keyboard.enabled && keyboard.layouts.length > 0 + +- arrowIcon: "angle-down.png" ++ arrowIcon: "qrc:///theme/angle-down.png" + + KeyNavigation.backtab: session; KeyNavigation.tab: btnShutdown + } +@@ -266,7 +266,7 @@ Rectangle { + ImageButton { + id: btnReboot + height: parent.height +- source: "reboot.png" ++ source: "qrc:///theme/reboot.png" + + visible: sddm.canReboot + +@@ -278,7 +278,7 @@ Rectangle { + ImageButton { + id: btnShutdown + height: parent.height +- source: "shutdown.png" ++ source: "qrc:///theme/shutdown.png" + + visible: sddm.canPowerOff + + +From fb6849312dd5eddf312b7bdb660162f23a2bdab8 Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin +Date: Mon, 26 Feb 2024 19:39:53 -0800 +Subject: [PATCH 4/7] Components: use Transitions instead of Behaviors + +It's not recommended[^1] to use Behaviors with States, but the specific +examples in SDDM weren't causing any problems previously (on Qt5). + +Now, with Qt6 support, we can finally observe the promised bugs from the +referenced article in the wild: + +* ComboBox can be closed only once. On a second activation it stays open +* Button color transitions on focus out are abruptly stopped on a wrong + color +* ... (this is where I noticed a pattern and decided to convert + everything else preemptively). + +This commit essentially reverts 930fa07bf24d391d42abcfb981f145117292d49d + +[^1]: https://doc.qt.io/qt-5/qtquick-statesanimations-behaviors.html +--- + components/2.0/Button.qml | 4 +++- + components/2.0/ComboBox.qml | 12 ++++++++---- + components/2.0/ImageButton.qml | 4 +++- + components/2.0/Menu.qml | 6 ++++-- + components/2.0/PictureBox.qml | 6 ++++-- + components/2.0/TextBox.qml | 6 ++++-- + 6 files changed, 26 insertions(+), 12 deletions(-) + +diff --git a/components/2.0/Button.qml b/components/2.0/Button.qml +index cedc8356e..7c74f1ded 100644 +--- a/components/2.0/Button.qml ++++ b/components/2.0/Button.qml +@@ -67,7 +67,9 @@ Rectangle { + } + ] + +- Behavior on color { NumberAnimation { duration: 200 } } ++ transitions: Transition { ++ ColorAnimation { duration: 200 } ++ } + + clip: true + smooth: true +diff --git a/components/2.0/ComboBox.qml b/components/2.0/ComboBox.qml +index 26bbef35e..e7fdb3362 100644 +--- a/components/2.0/ComboBox.qml ++++ b/components/2.0/ComboBox.qml +@@ -70,8 +70,6 @@ FocusScope { + border.color: container.borderColor + border.width: container.borderWidth + +- Behavior on border.color { ColorAnimation { duration: 100 } } +- + states: [ + State { + name: "hover"; when: mouseArea.containsMouse +@@ -82,6 +80,10 @@ FocusScope { + PropertyChanges { target: main; border.width: container.borderWidth; border.color: container.focusColor } + } + ] ++ ++ transitions: Transition { ++ ColorAnimation { property: "border.color"; duration: 100 } ++ } + } + + Loader { +@@ -157,8 +159,6 @@ FocusScope { + + clip: true + +- Behavior on height { NumberAnimation { duration: 100 } } +- + Component { + id: myDelegate + +@@ -214,6 +214,10 @@ FocusScope { + PropertyChanges { target: dropDown; height: (container.height - 2*container.borderWidth) * listView.count + container.borderWidth} + } + ] ++ ++ transitions: Transition { ++ NumberAnimation { property: "height"; duration: 100 } ++ } + } + + function toggle() { +diff --git a/components/2.0/ImageButton.qml b/components/2.0/ImageButton.qml +index 6277148ab..28bc940be 100644 +--- a/components/2.0/ImageButton.qml ++++ b/components/2.0/ImageButton.qml +@@ -53,7 +53,9 @@ Image { + } + ] + +- Behavior on opacity { NumberAnimation { duration: 200 } } ++ transitions: Transition { ++ NumberAnimation { property: "opacity"; duration: 200 } ++ } + + clip: true + smooth: true +diff --git a/components/2.0/Menu.qml b/components/2.0/Menu.qml +index 8ef29841e..9acecb9e2 100644 +--- a/components/2.0/Menu.qml ++++ b/components/2.0/Menu.qml +@@ -34,8 +34,6 @@ Rectangle { + property alias model: menuList.model + property alias index: menuList.currentIndex + +- Behavior on height { NumberAnimation { duration: 100 } } +- + states: [ + State { + name: "visible"; +@@ -43,6 +41,10 @@ Rectangle { + } + ] + ++ transitions: Transition { ++ NumberAnimation { property: "height"; duration: 100 } ++ } ++ + Component { + id: listViewItem + +diff --git a/components/2.0/PictureBox.qml b/components/2.0/PictureBox.qml +index eb2fbfee8..b9571f04e 100644 +--- a/components/2.0/PictureBox.qml ++++ b/components/2.0/PictureBox.qml +@@ -37,8 +37,6 @@ FocusScope { + + signal login() + +- Behavior on height { NumberAnimation { duration: 100 } } +- + states: [ + State { + name: "" +@@ -50,6 +48,10 @@ FocusScope { + } + ] + ++ transitions: Transition { ++ NumberAnimation { property: "height"; duration: 100 } ++ } ++ + Rectangle { + id: shadow + anchors.fill: parent +diff --git a/components/2.0/TextBox.qml b/components/2.0/TextBox.qml +index a8d89afd5..0db8ce885 100644 +--- a/components/2.0/TextBox.qml ++++ b/components/2.0/TextBox.qml +@@ -47,8 +47,6 @@ FocusScope { + border.color: container.borderColor + border.width: 1 + +- Behavior on border.color { ColorAnimation { duration: 100 } } +- + states: [ + State { + name: "hover"; when: mouseArea.containsMouse +@@ -59,6 +57,10 @@ FocusScope { + PropertyChanges { target: main; border.width: 1; border.color: container.focusColor } + } + ] ++ ++ transitions: Transition { ++ ColorAnimation { duration: 100 } ++ } + } + + MouseArea { + +From 5c9a8b7d479f8bf019c5fa1a5d9a78ca12db5793 Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin +Date: Mon, 26 Feb 2024 21:11:01 -0800 +Subject: [PATCH 5/7] Themes: fix deprecated signal handler declarations + +Fixes following warnings: +``` +QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo() { ... } +Parameter "event" is not declared. Injection of parameters into signal handlers is deprecated. Use JavaScript functions with formal parameters instead. +``` +--- + components/2.0/Button.qml | 4 ++-- + components/2.0/ComboBox.qml | 2 +- + components/2.0/ImageButton.qml | 4 ++-- + components/2.0/LayoutBox.qml | 8 ++++++-- + components/2.0/PictureBox.qml | 2 +- + data/themes/elarun/Main.qml | 8 ++++---- + data/themes/maldives/Main.qml | 11 +++++------ + data/themes/maya/Main.qml | 10 +++++----- + src/greeter/theme/Main.qml | 6 +++--- + 9 files changed, 29 insertions(+), 26 deletions(-) + +diff --git a/components/2.0/Button.qml b/components/2.0/Button.qml +index 7c74f1ded..4d6d40a76 100644 +--- a/components/2.0/Button.qml ++++ b/components/2.0/Button.qml +@@ -111,7 +111,7 @@ Rectangle { + onReleased: { container.focus = true; container.released() } + } + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if (event.key === Qt.Key_Space) { + container.spaceDown = true; + container.pressed() +@@ -122,7 +122,7 @@ Rectangle { + } + } + +- Keys.onReleased: { ++ Keys.onReleased: function (event) { + if (event.key === Qt.Key_Space) { + container.spaceDown = false; + container.released() +diff --git a/components/2.0/ComboBox.qml b/components/2.0/ComboBox.qml +index e7fdb3362..997a3886e 100644 +--- a/components/2.0/ComboBox.qml ++++ b/components/2.0/ComboBox.qml +@@ -134,7 +134,7 @@ FocusScope { + } + } + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if (event.key === Qt.Key_Up) { + listView.decrementCurrentIndex() + } else if (event.key === Qt.Key_Down) { +diff --git a/components/2.0/ImageButton.qml b/components/2.0/ImageButton.qml +index 28bc940be..b2c267d2b 100644 +--- a/components/2.0/ImageButton.qml ++++ b/components/2.0/ImageButton.qml +@@ -77,7 +77,7 @@ Image { + onReleased: { container.focus = true; container.released() } + } + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if (event.key === Qt.Key_Space) { + container.spaceDown = true; + container.pressed() +@@ -88,7 +88,7 @@ Image { + } + } + +- Keys.onReleased: { ++ Keys.onReleased: function (event) { + if (event.key === Qt.Key_Space) { + container.spaceDown = false; + container.released() +diff --git a/components/2.0/LayoutBox.qml b/components/2.0/LayoutBox.qml +index b992f28de..5e62acd3f 100644 +--- a/components/2.0/LayoutBox.qml ++++ b/components/2.0/LayoutBox.qml +@@ -30,12 +30,16 @@ ComboBox { + model: keyboard.layouts + index: keyboard.currentLayout + +- onValueChanged: keyboard.currentLayout = id ++ function onValueChanged(id) { ++ keyboard.currentLayout = id ++ } + + Connections { + target: keyboard + +- onCurrentLayoutChanged: combo.index = keyboard.currentLayout ++ function onCurrentLayoutChanged() { ++ combo.index = keyboard.currentLayout ++ } + } + + rowDelegate: Rectangle { +diff --git a/components/2.0/PictureBox.qml b/components/2.0/PictureBox.qml +index b9571f04e..560556e40 100644 +--- a/components/2.0/PictureBox.qml ++++ b/components/2.0/PictureBox.qml +@@ -105,7 +105,7 @@ FocusScope { + focus: true + visible: showPassword + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) { + container.login(); + event.accepted = true +diff --git a/data/themes/elarun/Main.qml b/data/themes/elarun/Main.qml +index 8151bb52a..d0caadaea 100644 +--- a/data/themes/elarun/Main.qml ++++ b/data/themes/elarun/Main.qml +@@ -39,11 +39,11 @@ Rectangle { + + Connections { + target: sddm +- onLoginSucceeded: { ++ function onLoginSucceeded() { + } +- onInformationMessage: { ++ function onInformationMessage(message) { + } +- onLoginFailed: { ++ function onLoginFailed() { + pw_entry.text = "" + } + } +@@ -135,7 +135,7 @@ Rectangle { + + KeyNavigation.backtab: user_entry; KeyNavigation.tab: login_button + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) { + sddm.login(user_entry.text, pw_entry.text, sessionIndex) + event.accepted = true +diff --git a/data/themes/maldives/Main.qml b/data/themes/maldives/Main.qml +index f346829e8..17b1b8aff 100644 +--- a/data/themes/maldives/Main.qml ++++ b/data/themes/maldives/Main.qml +@@ -40,17 +40,16 @@ Rectangle { + Connections { + target: sddm + +- onLoginSucceeded: { ++ function onLoginSucceeded() { + errorMessage.color = "steelblue" + errorMessage.text = textConstants.loginSucceeded + } +- +- onLoginFailed: { ++ function onLoginFailed() { + password.text = "" + errorMessage.color = "red" + errorMessage.text = textConstants.loginFailed + } +- onInformationMessage: { ++ function onInformationMessage(message) { + errorMessage.color = "red" + errorMessage.text = message + } +@@ -126,7 +125,7 @@ Rectangle { + + KeyNavigation.backtab: rebootButton; KeyNavigation.tab: password + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) { + sddm.login(name.text, password.text, sessionIndex) + event.accepted = true +@@ -153,7 +152,7 @@ Rectangle { + + KeyNavigation.backtab: name; KeyNavigation.tab: session + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) { + sddm.login(name.text, password.text, sessionIndex) + event.accepted = true +diff --git a/data/themes/maya/Main.qml b/data/themes/maya/Main.qml +index 30bb530ca..60473a473 100644 +--- a/data/themes/maya/Main.qml ++++ b/data/themes/maya/Main.qml +@@ -75,7 +75,7 @@ Rectangle { + Connections { + target: sddm + +- onLoginSucceeded: { ++ function onLoginSucceeded() { + prompt_bg.color = successText + prompt_txt.text = textConstants.loginSucceeded + +@@ -84,7 +84,7 @@ Rectangle { + + anim_success.start() + } +- onLoginFailed: { ++ function onLoginFailed() { + prompt_bg.color = failureText + prompt_txt.text = textConstants.loginFailed + +@@ -93,7 +93,7 @@ Rectangle { + + anim_failure.start() + } +- onInformationMessage: { ++ function onInformationMessage(message) { + prompt_bg.color = failureText + prompt_txt.text = message + +@@ -505,7 +505,7 @@ Rectangle { + KeyNavigation.tab : maya_login + KeyNavigation.backtab : maya_username + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if ((event.key === Qt.Key_Return) || (event.key === Qt.Key_Enter)) { + maya_root.tryLogin() + +@@ -546,7 +546,7 @@ Rectangle { + + onClicked: maya_root.tryLogin() + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if ((event.key === Qt.Key_Return) || (event.key === Qt.Key_Enter)) { + maya_root.tryLogin() + +diff --git a/src/greeter/theme/Main.qml b/src/greeter/theme/Main.qml +index b799670ac..257153b16 100644 +--- a/src/greeter/theme/Main.qml ++++ b/src/greeter/theme/Main.qml +@@ -40,15 +40,15 @@ Rectangle { + + Connections { + target: sddm +- onLoginSucceeded: { ++ function onLoginSucceeded() { + } + +- onLoginFailed: { ++ function onLoginFailed() { + txtMessage.text = textConstants.loginFailed + listView.currentItem.password = "" + } + +- onInformationMessage: { ++ function onInformationMessage(message) { + txtMessage.text = message + } + } + +From ae6313e7433acff4e8bbbfd431a44d715cb306a9 Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin +Date: Tue, 27 Feb 2024 00:00:04 -0800 +Subject: [PATCH 6/7] Themes: set QtVersion=@QT_MAJOR_VERSION@ + +--- + data/themes/CMakeLists.txt | 12 +++++++++--- + .../elarun/{metadata.desktop => metadata.desktop.in} | 2 +- + .../{metadata.desktop => metadata.desktop.in} | 1 + + .../maya/{metadata.desktop => metadata.desktop.in} | 1 + + src/greeter/CMakeLists.txt | 1 + + src/greeter/theme.qrc | 2 +- + .../theme/{metadata.desktop => metadata.desktop.in} | 1 + + 7 files changed, 15 insertions(+), 5 deletions(-) + rename data/themes/elarun/{metadata.desktop => metadata.desktop.in} (97%) + rename data/themes/maldives/{metadata.desktop => metadata.desktop.in} (92%) + rename data/themes/maya/{metadata.desktop => metadata.desktop.in} (92%) + rename src/greeter/theme/{metadata.desktop => metadata.desktop.in} (92%) + +diff --git a/data/themes/CMakeLists.txt b/data/themes/CMakeLists.txt +index 60b29be2e..a18fe8926 100644 +--- a/data/themes/CMakeLists.txt ++++ b/data/themes/CMakeLists.txt +@@ -10,9 +10,15 @@ foreach(THEME ${THEMES}) + + qt_add_translation(QM_FILES "${TRANSLATION_SOURCES}") + +- install(DIRECTORY "${THEME}" DESTINATION "${DATA_INSTALL_DIR}/themes" PATTERN "${THEME}/*.ts" +- EXCLUDE PATTERN "${THEME}/.gitattributes" +- EXCLUDE) ++ configure_file("${THEME}/metadata.desktop.in" "${THEME}/metadata.desktop" @ONLY) ++ ++ install(DIRECTORY "${THEME}" DESTINATION "${DATA_INSTALL_DIR}/themes" ++ PATTERN "${THEME}/*.in" EXCLUDE ++ PATTERN "${THEME}/*.ts" EXCLUDE ++ PATTERN "${THEME}/.gitattributes" EXCLUDE) ++ ++ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${THEME}/metadata.desktop" ++ DESTINATION "${DATA_INSTALL_DIR}/themes/${THEME}/") + + list(APPEND THEMES_QM_FILES ${QM_FILES}) + endforeach(THEME) +diff --git a/data/themes/elarun/metadata.desktop b/data/themes/elarun/metadata.desktop.in +similarity index 97% +rename from data/themes/elarun/metadata.desktop +rename to data/themes/elarun/metadata.desktop.in +index 50455880a..a992a6102 100644 +--- a/data/themes/elarun/metadata.desktop ++++ b/data/themes/elarun/metadata.desktop.in +@@ -46,4 +46,4 @@ TranslationsDirectory=translations + Theme-Id=elarun + Theme-API=2.0 + Website=https://github.com/sddm/sddm +- ++QtVersion=@QT_MAJOR_VERSION@ +diff --git a/data/themes/maldives/metadata.desktop b/data/themes/maldives/metadata.desktop.in +similarity index 92% +rename from data/themes/maldives/metadata.desktop +rename to data/themes/maldives/metadata.desktop.in +index acd0fa47d..8931da6cd 100644 +--- a/data/themes/maldives/metadata.desktop ++++ b/data/themes/maldives/metadata.desktop.in +@@ -14,3 +14,4 @@ TranslationsDirectory=translations + Email=abdurrahmanavci@gmail.com + Theme-Id=maldives + Theme-API=2.0 ++QtVersion=@QT_MAJOR_VERSION@ +diff --git a/data/themes/maya/metadata.desktop b/data/themes/maya/metadata.desktop.in +similarity index 92% +rename from data/themes/maya/metadata.desktop +rename to data/themes/maya/metadata.desktop.in +index 0c2ab2623..ccda38bfb 100644 +--- a/data/themes/maya/metadata.desktop ++++ b/data/themes/maya/metadata.desktop.in +@@ -14,3 +14,4 @@ TranslationsDirectory=translations + Email=spremi@ymail.com + Theme-Id=maya + Theme-API=2.0 ++QtVersion=@QT_MAJOR_VERSION@ +diff --git a/src/greeter/CMakeLists.txt b/src/greeter/CMakeLists.txt +index 72769e4d0..b9159c53d 100644 +--- a/src/greeter/CMakeLists.txt ++++ b/src/greeter/CMakeLists.txt +@@ -36,6 +36,7 @@ set(GREETER_SOURCES + ) + + configure_file("theme.qrc" "theme.qrc") ++configure_file("theme/metadata.desktop.in" "theme/metadata.desktop" @ONLY) + + qt_add_resources(RESOURCES ${CMAKE_CURRENT_BINARY_DIR}/theme.qrc) + +diff --git a/src/greeter/theme.qrc b/src/greeter/theme.qrc +index efed01179..299169ec1 100644 +--- a/src/greeter/theme.qrc ++++ b/src/greeter/theme.qrc +@@ -7,7 +7,7 @@ + ${CMAKE_CURRENT_SOURCE_DIR}/theme/Main.qml + ${CMAKE_CURRENT_SOURCE_DIR}/theme/reboot.png + ${CMAKE_CURRENT_SOURCE_DIR}/theme/shutdown.png +- ${CMAKE_CURRENT_SOURCE_DIR}/theme/metadata.desktop ++ ${CMAKE_CURRENT_BINARY_DIR}/theme/metadata.desktop + ${CMAKE_CURRENT_SOURCE_DIR}/theme/theme.conf + + +diff --git a/src/greeter/theme/metadata.desktop b/src/greeter/theme/metadata.desktop.in +similarity index 92% +rename from src/greeter/theme/metadata.desktop +rename to src/greeter/theme/metadata.desktop.in +index a1c22ce93..0a4c9f349 100644 +--- a/src/greeter/theme/metadata.desktop ++++ b/src/greeter/theme/metadata.desktop.in +@@ -14,3 +14,4 @@ TranslationsDirectory=translations + Email=abdurrahmanavci@gmail.com + Theme-Id=maui + Theme-API=2.0 ++QtVersion=@QT_MAJOR_VERSION@ + +From ed30ef9f3897dd14ef1d7d04674166171f646fce Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin +Date: Tue, 27 Feb 2024 07:07:26 -0800 +Subject: [PATCH 7/7] Docs: add QtVersion information to THEMING + +--- + docs/THEMING.md | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/docs/THEMING.md b/docs/THEMING.md +index 873172192..69997e88a 100644 +--- a/docs/THEMING.md ++++ b/docs/THEMING.md +@@ -13,6 +13,8 @@ We also provide models containing information about the screens, available sessi + index: sessionModel.lastIndex + } + ++Themes are run by a Qt 5 built sddm-greeter, unless the `QtVersion` property in metadata.desktop specifies a different version, such as `QtVersion=6` for using `sddm-greeter-qt6`. ++ + ## Proxy Object + + We provide a proxy object, called as `sddm` to the themes as a context property. This object holds some useful properties about the host system. It also acts as a proxy between the greeter and the daemon. All of the methods called on this object will be transferred to the daemon through a local socket to be executed there. diff --git a/anda/desktops/sddm/sddm-autologin.pam b/anda/desktops/sddm/sddm-autologin.pam new file mode 100644 index 0000000000..f62fad0baf --- /dev/null +++ b/anda/desktops/sddm/sddm-autologin.pam @@ -0,0 +1,20 @@ + #%PAM-1.0 +auth required pam_env.so +auth required pam_permit.so +auth include postlogin + +account required pam_nologin.so +account include system-auth + +password include system-auth + +session required pam_selinux.so close +session required pam_loginuid.so +session required pam_selinux.so open +session optional pam_keyinit.so force revoke +session required pam_namespace.so +session include system-auth +-session optional pam_gnome_keyring.so auto_start +-session optional pam_kwallet5.so auto_start +-session optional pam_kwallet.so auto_start +session include postlogin diff --git a/anda/desktops/sddm/sddm-greeter.pam b/anda/desktops/sddm/sddm-greeter.pam new file mode 100644 index 0000000000..44e209e904 --- /dev/null +++ b/anda/desktops/sddm/sddm-greeter.pam @@ -0,0 +1,17 @@ +#%PAM-1.0 + +# Load environment from /etc/environment and ~/.pam_environment +auth required pam_env.so + +# Always let the greeter start without authentication +auth required pam_permit.so + +# No action required for account management +account required pam_permit.so + +# Can't change password +password required pam_deny.so + +# Setup session +session required pam_unix.so +session optional pam_systemd.so diff --git a/anda/desktops/sddm/sddm-rpmostree-tmpfiles-hack.patch b/anda/desktops/sddm/sddm-rpmostree-tmpfiles-hack.patch new file mode 100644 index 0000000000..4f06aa1946 --- /dev/null +++ b/anda/desktops/sddm/sddm-rpmostree-tmpfiles-hack.patch @@ -0,0 +1,12 @@ +diff --git a/services/sddm-tmpfiles.conf.in b/services/sddm-tmpfiles.conf.in +index fb45553..6acfb6c 100644 +--- a/services/sddm-tmpfiles.conf.in ++++ b/services/sddm-tmpfiles.conf.in +@@ -1,5 +1,7 @@ + # Home dir of the sddm user, also contains state.conf + d ${STATE_DIR} 0750 sddm sddm ++# Workaround for https://pagure.io/fedora-kde/SIG/issue/87 ++Z ${STATE_DIR} - sddm sddm + # This contains X11 auth files passed to Xorg and the greeter + d ${RUNTIME_DIR} 0711 root root + # Sockets for IPC diff --git a/anda/desktops/sddm/sddm-systemd-sysusers.conf b/anda/desktops/sddm/sddm-systemd-sysusers.conf new file mode 100644 index 0000000000..05fcb1c076 --- /dev/null +++ b/anda/desktops/sddm/sddm-systemd-sysusers.conf @@ -0,0 +1,2 @@ +#Type Name ID GECOS Home directory Shell +u sddm - "SDDM Greeter Account" /var/lib/sddm - diff --git a/anda/desktops/sddm/sddm-x11.conf b/anda/desktops/sddm/sddm-x11.conf new file mode 100644 index 0000000000..6d16a4a0b2 --- /dev/null +++ b/anda/desktops/sddm/sddm-x11.conf @@ -0,0 +1,2 @@ +[General] +DisplayServer=x11 diff --git a/anda/desktops/sddm/sddm.conf b/anda/desktops/sddm/sddm.conf new file mode 100644 index 0000000000..c4696b5878 --- /dev/null +++ b/anda/desktops/sddm/sddm.conf @@ -0,0 +1,122 @@ +[Autologin] +# Whether sddm should automatically log back into sessions when they exit +#Relogin=false + +# Name of session file for autologin session +#Session= + +# Username for autologin session +#User= + + +[General] +# Enable Qt's automatic high-DPI scaling +#EnableHiDPI=false + +# Halt command +#HaltCommand=/usr/bin/systemctl poweroff + +# Initial NumLock state. Can be on, off or none. +# If property is set to none, numlock won't be changed +# NOTE: Currently ignored if autologin is enabled. +#Numlock=none + +# Reboot command +#RebootCommand=/usr/bin/systemctl reboot + +# Control x11/wayland startup +# DisplayServer=wayland + +[Theme] +# Current theme name +#Current=01-breeze-fedora + +# Cursor theme used in the greeter +#CursorTheme= + +# Number of users to use as threshold +# above which avatars are disabled +# unless explicitly enabled with EnableAvatars +#DisableAvatarsThreshold=7 + +# Enable display of custom user avatars +#EnableAvatars=true + +# Global directory for user avatars +# The files should be named .face.icon +#FacesDir=/usr/share/sddm/faces + +# Theme directory path +#ThemeDir=/usr/share/sddm/themes + + +[Users] +# Default $PATH for logged in users +#DefaultPath=/usr/local/bin:/usr/bin:/bin + +# Comma-separated list of shells. +# Users with these shells as their default won't be listed +#HideShells= + +# Comma-separated list of users that should not be listed +#HideUsers= + +# Maximum user id for displayed users +#MaximumUid=60000 + +# Minimum user id for displayed users +#MinimumUid=1000 + +# Remember the session of the last successfully logged in user +#RememberLastSession=true + +# Remember the last successfully logged in user +#RememberLastUser=true + + +[Wayland] +# Path to a script to execute when starting the desktop session +#SessionCommand=/etc/sddm/wayland-session + +# Directory containing available Wayland sessions +#SessionDir=/usr/share/wayland-sessions + +# Path to the user session log file +#SessionLogFile=.cache/wayland-errors + + +[X11] +# Path to a script to execute when starting the display server +#DisplayCommand=/etc/sddm/Xsetup + +# Path to a script to execute when stopping the display server +#DisplayStopCommand=/etc/sddm/Xstop + +# The lowest virtual terminal number that will be used. +#MinimumVT=1 + +# Arguments passed to the X server invocation +#ServerArguments=-nolisten tcp + +# Path to X server binary +#ServerPath=/usr/bin/X + +# Path to a script to execute when starting the desktop session +#SessionCommand=/etc/X11/xinit/Xsession + +# Directory containing available X sessions +#SessionDir=/usr/share/xsessions + +# Path to the user session log file +#SessionLogFile=.cache/xsession-errors + +# Path to the Xauthority file +#UserAuthFile=.Xauthority + +# Path to xauth binary +#XauthPath=/usr/bin/xauth + +# Path to Xephyr binary +#XephyrPath=/usr/bin/Xephyr + + diff --git a/anda/desktops/sddm/sddm.pam b/anda/desktops/sddm/sddm.pam new file mode 100644 index 0000000000..34c0777516 --- /dev/null +++ b/anda/desktops/sddm/sddm.pam @@ -0,0 +1,23 @@ +auth [success=done ignore=ignore default=bad] pam_selinux_permit.so +auth substack password-auth +-auth optional pam_gnome_keyring.so +-auth optional pam_kwallet5.so +-auth optional pam_kwallet.so +auth include postlogin + +account required pam_nologin.so +account include password-auth + +password include password-auth + +session required pam_selinux.so close +session required pam_loginuid.so +-session optional pam_ck_connector.so +session required pam_selinux.so open +session optional pam_keyinit.so force revoke +session required pam_namespace.so +session include password-auth +-session optional pam_gnome_keyring.so auto_start +-session optional pam_kwallet5.so auto_start +-session optional pam_kwallet.so auto_start +session include postlogin diff --git a/anda/desktops/sddm/sddm.sysconfig b/anda/desktops/sddm/sddm.sysconfig new file mode 100644 index 0000000000..4911cb4af3 --- /dev/null +++ b/anda/desktops/sddm/sddm.sysconfig @@ -0,0 +1,5 @@ +# workaround https://bugzilla.redhat.com/1686675 +# see also https://bugreports.qt.io/browse/QTBUG-58508 +QML_DISABLE_DISK_CACHE=1 +# enable qDebug messages for debug build +# QT_LOGGING_RULES="*.debug=true" diff --git a/anda/desktops/sddm/terra-sddm.spec b/anda/desktops/sddm/terra-sddm.spec new file mode 100644 index 0000000000..7e5e82ceb2 --- /dev/null +++ b/anda/desktops/sddm/terra-sddm.spec @@ -0,0 +1,293 @@ +# Disable X11 for RHEL 10+ +%bcond x11 %[%{undefined rhel} || 0%{?rhel} < 10] + +Name: terra-sddm +Version: 0.21.0 +Release: 5%{?dist} +License: GPL-2.0-or-later +Summary: QML based desktop and login manager +Provides: sddm = %version-%release + +URL: https://github.com/sddm/sddm +Source0: %{url}/archive/v%{version}/sddm-%{version}.tar.gz + +## upstream patches +# Port all themes to Qt 6 +# Submitted: https://github.com/sddm/sddm/pull/1876 +Patch1: sddm-PR1876.patch + +## upstreamable patches +# Fix race with logind restart, and start seat0 if !CanGraphical on timer +# https://bugzilla.redhat.com/show_bug.cgi?id=2011991 +# https://bugzilla.redhat.com/show_bug.cgi?id=2016310 +# Submmited: https://github.com/sddm/sddm/pull/1494 +Patch11: 0001-Delay-for-logind-and-fallback-to-seat0.patch + +## downstream patches +Patch101: sddm-0.20.0-fedora_config.patch + +# sddm.service: +EnvironmentFile=-/etc/sysconfig/sddm +Patch103: sddm-0.18.0-environment_file.patch + +# Workaround for https://pagure.io/fedora-kde/SIG/issue/87 +Patch104: sddm-rpmostree-tmpfiles-hack.patch + +# Workaround lack of Qt 5 greeter build +Patch105: sddm-0.21.0-qt6greeter.patch + +# https://github.com/sddm/sddm/pull/1779 +Patch106: https://github.com/sddm/sddm/pull/1779.patch + +# Shamelessly stolen from gdm +Source10: sddm.pam +# Shamelessly stolen from gdm +Source11: sddm-autologin.pam +# Previously included in sddm sources +Source12: sddm-greeter.pam +# sample sddm.conf generated with sddm --example-config, and entries commented-out +Source13: sddm.conf +# README.scripts +Source14: README.scripts +# sysconfig snippet +Source15: sddm.sysconfig +# sddm x11 override config +Source16: sddm-x11.conf +# sysusers config file. note these are shipped in the upstream tarball +# but we cannot use the files from the tarball for %pre scriptlet +# generation, so we duplicate them as source files for that purpose; +# this is an ugly hack that should be removed if it becomes possible. +# see https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/TFDMAU7KLMSQTKPJELHSM6PFVXIZ56GK/ +Source17: sddm-systemd-sysusers.conf + + +Provides: service(graphical-login) = sddm + +BuildRequires: cmake >= 2.8.8 +BuildRequires: extra-cmake-modules +BuildRequires: pam-devel +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(systemd) +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(xcb-xkb) +# sometimes python-docutils, sometimes python2-docutils, sometimes python3-docutils. +# use path then for sanity +BuildRequires: /usr/bin/rst2man +BuildRequires: cmake(Qt6Core) +BuildRequires: cmake(Qt6DBus) +BuildRequires: cmake(Qt6Gui) +BuildRequires: cmake(Qt6Qml) +BuildRequires: cmake(Qt6Quick) +BuildRequires: cmake(Qt6LinguistTools) +BuildRequires: cmake(Qt6Test) +BuildRequires: cmake(Qt6QuickTest) +# verify presence to pull defaults from /etc/login.defs +BuildRequires: shadow-utils +BuildRequires: systemd +BuildRequires: systemd-rpm-macros + +Obsoletes: kde-settings-sddm < 20-5 + +%if 0%{?fedora} +# for /usr/share/backgrounds/default.png +BuildRequires: desktop-backgrounds-compat +BuildRequires: GraphicsMagick +Requires: desktop-backgrounds-compat +# for /usr/share/pixmaps/system-logo-white.png +Requires: system-logos +%endif +Requires: systemd +%if %{with x11} +Requires: xorg-x11-xinit +%endif +%{?systemd_requires} + +Requires(pre): shadow-utils + +# Virtual dependency for sddm greeter setup +Requires: sddm-greeter-displayserver +Suggests: sddm-wayland-generic + +%description +SDDM is a modern graphical display manager aiming to be fast, simple and +beautiful. It uses modern technologies like QtQuick, which in turn gives the +designer the ability to create smooth, animated user interfaces. + +%package wayland-generic +Summary: Generic Wayland SDDM greeter configuration +Provides: sddm-greeter-displayserver +Conflicts: sddm-greeter-displayserver +Requires: weston +Requires: %{name} = %{version}-%{release} +BuildArch: noarch + +%description wayland-generic +This package contains configuration and dependencies for SDDM +to use Weston for the greeter display server. + +This is the generic default Wayland configuration provided +by SDDM. + +%if %{with x11} +%package x11 +Summary: X11 SDDM greeter configuration +Provides: sddm-greeter-displayserver +Conflicts: sddm-greeter-displayserver +# This will eventually go away... +Provides: deprecated() +Requires: xorg-x11-server-Xorg +Requires: %{name} = %{version}-%{release} +Recommends: qt6-qtvirtualkeyboard +BuildArch: noarch + +%description x11 +This package contains configuration and dependencies for SDDM +to use X11 for the greeter display server. +%endif + +%package themes +Summary: SDDM Themes +# for upgrade path +Obsoletes: sddm < 0.2.0-0.12 +Requires: %{name} = %{version}-%{release} +BuildArch: noarch +%description themes +A collection of sddm themes, including: elarun, maldives, maya + + +%prep +%autosetup -p1 %{?commitdate:-n sddm-%{commit}} -n sddm-%version + +%if 0%{?fedora} +#FIXME/TODO: use version on filesystem instead of using a bundled copy +cp -v /usr/share/backgrounds/default.png \ + src/greeter/theme/background.png +ls -sh src/greeter/theme/background.png +gm mogrify -resize 1920x1200 src/greeter/theme/background.png +ls -sh src/greeter/theme/background.png +%endif + + +%build +%cmake \ + -DBUILD_WITH_QT6:BOOL=ON \ + -DBUILD_MAN_PAGES:BOOL=ON \ + -DCMAKE_BUILD_TYPE:STRING="Release" \ + -DENABLE_JOURNALD:BOOL=ON \ + -DSESSION_COMMAND:PATH=/etc/X11/xinit/Xsession \ + -DWAYLAND_SESSION_COMMAND:PATH=/etc/sddm/wayland-session + +%cmake_build + + +%install +%cmake_install + +mkdir -p %{buildroot}%{_sysconfdir}/sddm.conf.d +mkdir -p %{buildroot}%{_prefix}/lib/sddm/sddm.conf.d +install -Dpm 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/pam.d/sddm +install -Dpm 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/pam.d/sddm-autologin +install -Dpm 644 %{SOURCE12} %{buildroot}%{_sysconfdir}/pam.d/sddm-greeter +install -Dpm 644 %{SOURCE13} %{buildroot}%{_sysconfdir}/sddm.conf +install -Dpm 644 %{SOURCE14} %{buildroot}%{_datadir}/sddm/scripts/README.scripts +install -Dpm 644 %{SOURCE15} %{buildroot}%{_sysconfdir}/sysconfig/sddm +%if %{with x11} +install -Dpm 644 %{SOURCE16} %{buildroot}%{_prefix}/lib/sddm/sddm.conf.d/x11.conf +%endif +mkdir -p %{buildroot}/run/sddm +mkdir -p %{buildroot}%{_localstatedir}/lib/sddm +mkdir -p %{buildroot}%{_sysconfdir}/sddm/ +cp -a %{buildroot}%{_datadir}/sddm/scripts/* \ + %{buildroot}%{_sysconfdir}/sddm/ +# we're using /etc/X11/xinit/Xsession (by default) instead +rm -fv %{buildroot}%{_sysconfdir}/sddm/Xsession + +# De-conflict the dbus file +mv %{buildroot}%{_datadir}/dbus-1/system.d/org.freedesktop.DisplayManager.conf \ + %{buildroot}%{_datadir}/dbus-1/system.d/org.freedesktop.DisplayManager-sddm.conf + +%if 0%{?fedora} && 0%{?fedora} < 43 +# Provide unversioned greeter until F40 is EOL +ln -sr %{buildroot}%{_bindir}/sddm-greeter-qt6 %{buildroot}%{_bindir}/sddm-greeter +%endif + + +%pre +%sysusers_create_compat %{SOURCE17} + +%post +%systemd_post sddm.service +# handle incompatible configuration changes +(grep \ + -e '^Current=fedora$' \ + -e '^\[XDisplay\]$' \ + -e '^\[WaylandDisplay\]$' \ + %{_sysconfdir}/sddm.conf > /dev/null && \ + sed -i.rpmsave \ + -e 's|^Current=fedora$|#Current=01-breeze-fedora|' \ + -e 's|^\[XDisplay\]$|\[X11\]|' \ + -e 's|^\[WaylandDisplay\]$|\[Wayland\]|' \ + %{_sysconfdir}/sddm.conf +) ||: + + +%preun +%systemd_preun sddm.service + + +%postun +%systemd_postun sddm.service + + +%files +%license LICENSE +%doc README.md CONTRIBUTORS +%dir %{_sysconfdir}/sddm/ +%dir %{_sysconfdir}/sddm.conf.d +%dir %{_prefix}/lib/sddm/sddm.conf.d +%config(noreplace) %{_sysconfdir}/sddm/* +%config(noreplace) %{_sysconfdir}/sddm.conf +%config(noreplace) %{_sysconfdir}/sysconfig/sddm +%config(noreplace) %{_sysconfdir}/pam.d/sddm* +%{_datadir}/dbus-1/system.d/org.freedesktop.DisplayManager-sddm.conf +%{_bindir}/sddm +%{_bindir}/sddm-greeter* +%{_libexecdir}/sddm-helper +%{_libexecdir}/sddm-helper-start-wayland +%{_libexecdir}/sddm-helper-start-x11user +%{_tmpfilesdir}/sddm.conf +%{_sysusersdir}/sddm.conf +%attr(0711, root, sddm) %dir /run/sddm +%attr(1770, sddm, sddm) %dir %{_localstatedir}/lib/sddm +%{_unitdir}/sddm.service +%{_qt6_archdatadir}/qml/SddmComponents/ +%dir %{_datadir}/sddm +%{_datadir}/sddm/faces/ +%{_datadir}/sddm/flags/ +%{_datadir}/sddm/scripts/ +%dir %{_datadir}/sddm/themes/ +# %%lang'ify? they're small, probably not worth it -- rex +%{_datadir}/sddm/translations*/ +%{_mandir}/man1/sddm.1* +%{_mandir}/man1/sddm-greeter.1* +%{_mandir}/man5/sddm.conf.5* +%{_mandir}/man5/sddm-state.conf.5* + + +%files wayland-generic +# No files since default configuration + + +%if %{with x11} +%files x11 +%{_prefix}/lib/sddm/sddm.conf.d/x11.conf +%endif + + +%files themes +%{_datadir}/sddm/themes/elarun/ +%{_datadir}/sddm/themes/maldives/ +%{_datadir}/sddm/themes/maya/ + + +%changelog +%autochangelog diff --git a/anda/desktops/sddm/update.rhai b/anda/desktops/sddm/update.rhai new file mode 100644 index 0000000000..857392fd70 --- /dev/null +++ b/anda/desktops/sddm/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("sddm/sddm")); diff --git a/anda/devs/codium/codium.spec b/anda/devs/codium/codium.spec index 591a036898..845aee5ecd 100644 --- a/anda/devs/codium/codium.spec +++ b/anda/devs/codium/codium.spec @@ -12,7 +12,7 @@ %endif Name: codium -Version: 1.88.1.24104 +Version: 1.89.0.24127 Release: 1%?dist Summary: Code editing. Redefined. License: MIT diff --git a/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec b/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec index 5519b99930..d705c1f589 100644 --- a/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec +++ b/anda/fonts/sarasa-gothic/sarasa-gothic-fonts.spec @@ -1,5 +1,5 @@ Name: sarasa-gothic-fonts -Version: 1.0.10 +Version: 1.0.11 Release: 1%?dist URL: https://github.com/be5invis/Sarasa-Gothic Source0: %url/releases/download/v%version/Sarasa-TTC-%version.7z diff --git a/anda/fonts/seto/seto-fonts.spec b/anda/fonts/seto/seto-fonts.spec index 3365601eeb..8f4f33653d 100644 --- a/anda/fonts/seto/seto-fonts.spec +++ b/anda/fonts/seto/seto-fonts.spec @@ -1,11 +1,10 @@ Name: seto-fonts Version: 6.20 -Release: 2%?dist +Release: 3%?dist URL: https://setofont.osdn.jp/ -Source0: https://osdn.net/frs/redir.php?m=nchc&f=setofont%2F61995%2Fsetofont_v_6_20.zip +Source0: https://github.com/terrapkg/pkg-seto-fonts/archive/refs/tags/%version.tar.gz License: OFL-1.1 Summary: A handwritten font that contains kanji up to JIS 4th level and difficult kanji -BuildRequires: unzip BuildArch: noarch @@ -14,7 +13,7 @@ BuildArch: noarch %prep -%setup -q -n setofont +%setup -q -n pkg-seto-fonts-%version %build @@ -25,11 +24,8 @@ install -Dm644 *.ttf %buildroot/%_datadir/fonts/%name/ %files %doc readme.txt +%license LICENSE.md %_datadir/fonts/%name/ %changelog -* Sun Jun 18 2023 windowsboy111 - 6.20-2 -- Fix install dir. - -* Tue Nov 22 2022 windowsboy111 - 6.20-1 -- Initial package +%autochangelog diff --git a/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec b/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec index 110eaa7844..02ff23b5c3 100644 --- a/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec +++ b/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec @@ -1,13 +1,13 @@ %global real_name prismlauncher %global nice_name PrismLauncher -%global commit df0280f52b68f4352d8da711136609c16ce4db7b +%global commit bfac12604e9cd0884987ca89f34a455cf16c543c %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global libnbtplusplus_commit a5e8fd52b8bf4ab5d5bcc042b2a247867589985f %global quazip_commit 6117161af08e366c37499895b00ef62f93adc345 %global tomlplusplus_commit 7eb2ffcc09f8e9890dc0b77ff8ab00fc53b1f2b8 -%global commit_date 20240325 +%global commit_date 20240501 %global snapshot_info %{commit_date}.%{shortcommit} %bcond_without qt6 diff --git a/anda/games/prismlauncher-qt5-nightly/prismlauncher-qt5-nightly.spec b/anda/games/prismlauncher-qt5-nightly/prismlauncher-qt5-nightly.spec index 1c984e7c69..6f18b42240 100644 --- a/anda/games/prismlauncher-qt5-nightly/prismlauncher-qt5-nightly.spec +++ b/anda/games/prismlauncher-qt5-nightly/prismlauncher-qt5-nightly.spec @@ -1,13 +1,13 @@ %global real_name prismlauncher %global nice_name PrismLauncher -%global commit df0280f52b68f4352d8da711136609c16ce4db7b +%global commit 2012b2c243dcfad8860847c0d85f184b6dd24504 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global libnbtplusplus_commit a5e8fd52b8bf4ab5d5bcc042b2a247867589985f %global quazip_commit 6117161af08e366c37499895b00ef62f93adc345 %global tomlplusplus_commit 7eb2ffcc09f8e9890dc0b77ff8ab00fc53b1f2b8 -%global commit_date 20240325 +%global commit_date 20240329 %global snapshot_info %{commit_date}.%{shortcommit} %bcond_with qt6 diff --git a/anda/langs/crystal/crystal/crystal.spec b/anda/langs/crystal/crystal/crystal.spec index e0eb21669c..8c39e1d934 100644 --- a/anda/langs/crystal/crystal/crystal.spec +++ b/anda/langs/crystal/crystal/crystal.spec @@ -1,8 +1,8 @@ %define debug_package %nil Name: crystal -Version: 1.11.2 -Release: 1%{?dist} +Version: 1.12.1 +Release: 1%?dist Summary: The Crystal Programming Language License: Apache-2.0 URL: https://crystal-lang.org/ diff --git a/anda/langs/crystal/crystal/update.rhai b/anda/langs/crystal/crystal/update.rhai index 8d53b0e749..06671bca2e 100644 --- a/anda/langs/crystal/crystal/update.rhai +++ b/anda/langs/crystal/crystal/update.rhai @@ -1,2 +1,2 @@ let html = get("https://crystal-lang.org/"); -rpm.version(find("Latest release <.+>(.+)", html, 1)) +rpm.version(find("Latest release: (.+?)", html, 1)) diff --git a/anda/langs/nim/nim-nightly/nim-nightly.spec b/anda/langs/nim/nim-nightly/nim-nightly.spec index ff7e2a1853..5c3fb9421e 100644 --- a/anda/langs/nim/nim-nightly/nim-nightly.spec +++ b/anda/langs/nim/nim-nightly/nim-nightly.spec @@ -1,8 +1,8 @@ %global csrc_commit 561b417c65791cd8356b5f73620914ceff845d10 -%global commit 33902d9dbb65fbfdfbd6e3b2a34c6e19eccb762f +%global commit 185e06c92362083c06c76f87e325889b1c9dc659 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global ver 2.1.1 -%global commit_date 20240322 +%global commit_date 20240502 %global debug_package %nil Name: nim-nightly diff --git a/anda/langs/python/pip-system-certs/anda.hcl b/anda/langs/python/pip-system-certs/anda.hcl new file mode 100644 index 0000000000..c480550cba --- /dev/null +++ b/anda/langs/python/pip-system-certs/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + arches = ["x86_64"] + rpm { + spec = "python-pip-system-certs.spec" + } +} diff --git a/anda/langs/python/pip-system-certs/python-pip-system-certs.spec b/anda/langs/python/pip-system-certs/python-pip-system-certs.spec new file mode 100644 index 0000000000..6dfc694f2c --- /dev/null +++ b/anda/langs/python/pip-system-certs/python-pip-system-certs.spec @@ -0,0 +1,56 @@ +# Created by pyp2rpm-3.3.10 +%global pypi_name pip-system-certs +%global pypi_version 4.0 + +Name: python-%{pypi_name} +Version: %{pypi_version} +Release: 1%{?dist} +Summary: Live patches pip to use system certs by default + +License: BSD-2-Clause +URL: https://gitlab.com/alelec/pip-system-certs +Source0: https://files.pythonhosted.org/packages/source/p/%{pypi_name}/pip_system_certs-%{pypi_version}.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel python3-pip python3dist(setuptools) python3dist(wheel) git + + +%description +This package patches pip and requests at runtime to use +certificates from the default system store (rather than the bundled certs +ca). This will allow pip to verify tls/ssl connections to servers who's cert is +trusted by your system install. + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +Requires: python3dist(wrapt) >= 1.10.4 +%description -n python3-%{pypi_name} +This package patches pip and requests at runtime to use +certificates from the default system store (rather than the bundled certs +ca). This will allow pip to verify tls/ssl connections to servers who's cert is +trusted by your system install. + +%prep +%autosetup -n pip_system_certs-%{pypi_version} +# Remove bundled egg-info +rm -rf %{pypi_name}.egg-info + +%build +pip install git-versioner +%pyproject_wheel + +%install +%pyproject_install + +%pyproject_save_files pip_system_certs + +%files -n python3-%{pypi_name} -f %pyproject_files +%license LICENSE +%doc README.rst +%python3_sitelib/pip_system_certs.pth + +%changelog +* Thu Apr 04 2024 madomado - 4.0-1 +- Initial package. diff --git a/anda/langs/python/pip-system-certs/update.rhai b/anda/langs/python/pip-system-certs/update.rhai new file mode 100644 index 0000000000..a08ae89c6a --- /dev/null +++ b/anda/langs/python/pip-system-certs/update.rhai @@ -0,0 +1 @@ +rpm.global("pypi_version", pypi("pip-system-certs")); diff --git a/anda/langs/python/ruff/python3-ruff.spec b/anda/langs/python/ruff/python3-ruff.spec index 108af7ba39..2988699eb3 100644 --- a/anda/langs/python/ruff/python3-ruff.spec +++ b/anda/langs/python/ruff/python3-ruff.spec @@ -1,7 +1,7 @@ %define debug_package %{nil} Name: python3-ruff -Version: 0.4.2 +Version: 0.4.3 Release: 1%?dist Summary: An extremely fast Python linter, written in Rust License: MIT diff --git a/anda/langs/rust/maturin/rust-terra-maturin.spec b/anda/langs/rust/maturin/rust-terra-maturin.spec index 965a3abe48..a69849b411 100644 --- a/anda/langs/rust/maturin/rust-terra-maturin.spec +++ b/anda/langs/rust/maturin/rust-terra-maturin.spec @@ -1,9 +1,9 @@ -# Generated by rust2rpm 24 +# Generated by rust2rpm 26 %global crate maturin Name: rust-terra-maturin Version: 1.5.1 -Release: 1%?dist +Release: %autorelease Summary: Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as python packages License: MIT OR Apache-2.0 @@ -296,6 +296,18 @@ use the "tracing-subscriber" feature of the "%{crate}" crate. %files -n %{name}+tracing-subscriber-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+unicode-xid-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+unicode-xid-devel %{_description} + +This package contains library source intended for building other packages which +use the "unicode-xid" feature of the "%{crate}" crate. + +%files -n %{name}+unicode-xid-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+upload-devel Summary: %{summary} BuildArch: noarch @@ -320,18 +332,6 @@ use the "ureq" feature of the "%{crate}" crate. %files -n %{name}+ureq-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+url-devel -Summary: %{summary} -BuildArch: noarch - -%description -n %{name}+url-devel %{_description} - -This package contains library source intended for building other packages which -use the "url" feature of the "%{crate}" crate. - -%files -n %{name}+url-devel -%ghost %{crate_instdir}/Cargo.toml - %package -n %{name}+wild-devel Summary: %{summary} BuildArch: noarch @@ -369,7 +369,7 @@ use the "zig" feature of the "%{crate}" crate. %ghost %{crate_instdir}/Cargo.toml %prep -%autosetup -n %{crate}-%{version_no_tilde} -p1 +%autosetup -n %{crate}-%{version} -p1 %cargo_prep_online %build diff --git a/anda/langs/rust/nushell/nushell.spec b/anda/langs/rust/nushell/nushell.spec index 4897b16e8c..529cba0ec4 100644 --- a/anda/langs/rust/nushell/nushell.spec +++ b/anda/langs/rust/nushell/nushell.spec @@ -19,7 +19,8 @@ Requires: glibc openssl zlib %{cargo_build -f extra,dataframe} --workspace %install -%cargo_install -f extra,dataframe +mkdir -p %buildroot%_bindir +cp target/rpm/nu* %buildroot%_bindir/ rm -rf .cargo %post diff --git a/anda/langs/vala/vala-language-server-nightly/vala-language-server-nightly.spec b/anda/langs/vala/vala-language-server-nightly/vala-language-server-nightly.spec index f3ce8c1bee..4dd93a8131 100644 --- a/anda/langs/vala/vala-language-server-nightly/vala-language-server-nightly.spec +++ b/anda/langs/vala/vala-language-server-nightly/vala-language-server-nightly.spec @@ -1,9 +1,9 @@ %global real_name vala-language-server -%global commit 0b020298aa3dafacd2f6633533ca91fba5698340 +%global commit a49292758922160244d1842cdcba0a5154d1cb27 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240323 +%global commit_date 20240330 %global snapshot_info %{commit_date}.%{shortcommit} %global verrel 0.48.7 diff --git a/anda/langs/vala/vala-nightly/vala-nightly.spec b/anda/langs/vala/vala-nightly/vala-nightly.spec index 6b0172d65c..6f50236bd6 100644 --- a/anda/langs/vala/vala-nightly/vala-nightly.spec +++ b/anda/langs/vala/vala-nightly/vala-nightly.spec @@ -3,11 +3,11 @@ %global priority 90 %global real_name vala -%global commit 933eb2d0e41bb7fdc4fe5fc01a03254965990f3e +%global commit fa704b2c2385f35d12568ee31de33568d6d67749 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global repo https://gitlab.gnome.org/GNOME/%{real_name}.git -%global commit_date 20240218 +%global commit_date 20240426 %global snapshot_info %{commit_date}.%{shortcommit} Name: vala-nightly diff --git a/anda/langs/vala/vala-panel-appmenu/vala-panel-appmenu.spec b/anda/langs/vala/vala-panel-appmenu/vala-panel-appmenu.spec index ab9a3e66bc..b79fe6061a 100644 --- a/anda/langs/vala/vala-panel-appmenu/vala-panel-appmenu.spec +++ b/anda/langs/vala/vala-panel-appmenu/vala-panel-appmenu.spec @@ -1,5 +1,5 @@ %global forgeurl https://gitlab.com/vala-panel-project/vala-panel-appmenu -%global commit a819ab7b36a449c2d5d0104b896c04115f875d05 +%global commit bada552e3eb595d7205d3ec69ea2e0162b9cca12 %forgemeta Name: vala-panel-appmenu diff --git a/anda/langs/vala/vala-panel/update.rhai b/anda/langs/vala/vala-panel/update.rhai new file mode 100644 index 0000000000..c8febf8b70 --- /dev/null +++ b/anda/langs/vala/vala-panel/update.rhai @@ -0,0 +1 @@ +rpm.version(gitlab("6865057")); diff --git a/anda/langs/vala/vala-panel/vala-panel.spec b/anda/langs/vala/vala-panel/vala-panel.spec index 43e5868d87..09dff956d0 100644 --- a/anda/langs/vala/vala-panel/vala-panel.spec +++ b/anda/langs/vala/vala-panel/vala-panel.spec @@ -1,10 +1,9 @@ +Name: vala-panel +Version: 24.03 %global forgeurl https://gitlab.com/vala-panel-project/vala-panel -%global commit ead4e7a36b0e4b0a2ac43c5d9ca17eb753461afe %forgemeta -Name: vala-panel -Version: 0.5.0 -Release: 2%?dist +Release: 1%?dist License: LGPL-3.0-or-later Summary: This package provides Application Menu plugin for vala-panel Group: System/GUI/Other @@ -38,7 +37,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %forgeautosetup %build -%meson -Dwnck=enabled -Dplatforms='layer-shell,x11' +%meson -Dwnck=enabled -Dplatforms='wayland,x11' %meson_build %install @@ -73,6 +72,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.valapanel.applica %{_datadir}/vala-panel/applets/*.plugin %dir %{_datadir}/vala-panel/images %{_datadir}/vala-panel/images/background.png +%{_libdir}/girepository-1.0/ValaPanel-*.typelib %files devel %doc README.md @@ -82,6 +82,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.valapanel.applica %{_libdir}/libvalapanel.so %{_libdir}/pkgconfig/vala-panel.pc %{_datadir}/vala/vapi/vala-panel.* +%{_datadir}/gir-1.0/ValaPanel-*.gir %changelog %autochangelog diff --git a/anda/lib/apparmor/apparmor.spec b/anda/lib/apparmor/apparmor.spec index 112275b0d4..0f2fb2c1be 100644 --- a/anda/lib/apparmor/apparmor.spec +++ b/anda/lib/apparmor/apparmor.spec @@ -4,14 +4,15 @@ Name: apparmor Version: 4.0.0~alpha3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: AppArmor userspace components %define baseversion %(echo %{version} | cut -d. -f-2) +%global normver %(echo %version | sed 's/~/-/') License: GPL-2.0 URL: https://launchpad.net/apparmor -Source0: %{url}/%{baseversion}/%(echo %version | sed 's/~/-/')/+download/%{name}-%{version}.tar.gz +Source0: %{url}/%{baseversion}/%normver/+download/%{name}-%{version}.tar.gz Source1: apparmor.preset Patch01: 0001-fix-avahi-daemon-authselect-denial-in-fedora.patch @@ -138,6 +139,8 @@ changehat abilities exposed through libapparmor. %prep %autosetup -p1 -n %{name}-%{version} +sed -i 's/@VERSION@/%normver/g' libraries/libapparmor/swig/python/setup.py.in +sed -i 's/${VERSION}/%normver/g' utils/Makefile %build export PYTHON=%{__python3} @@ -149,7 +152,7 @@ pushd libraries/libapparmor %configure \ --with-python \ -%make_build +%make_build VERSION=%normver popd %make_build -C binutils diff --git a/anda/lib/libappimage/libappimage.spec b/anda/lib/libappimage/libappimage.spec index 63797c4507..4ebe50ea02 100644 --- a/anda/lib/libappimage/libappimage.spec +++ b/anda/lib/libappimage/libappimage.spec @@ -7,7 +7,7 @@ Name: libappimage Version: %{libver_format} -Release: 2%{?dist} +Release: 3%{?dist} Summary: Implements functionality for dealing with AppImage files License: MIT diff --git a/anda/lib/tdlib/tdlib-nightly.spec b/anda/lib/tdlib/tdlib-nightly.spec index 0e643993f4..ccb1e54fb6 100644 --- a/anda/lib/tdlib/tdlib-nightly.spec +++ b/anda/lib/tdlib/tdlib-nightly.spec @@ -1,5 +1,5 @@ -%global commit 586bc784138042d2710168cd0b29f5dd6d415f45 -%global ver 1.8.26 +%global commit 77b34797d89d23ccfab3f3e1eab532f0bc73ab38 +%global ver 1.8.28 %global commit_date 20240219 %global shortcommit %(c=%{commit}; echo ${c:0:7}) diff --git a/anda/lib/zsync2/update.rhai b/anda/lib/zsync2/update.rhai new file mode 100644 index 0000000000..6ab9f4746e --- /dev/null +++ b/anda/lib/zsync2/update.rhai @@ -0,0 +1,4 @@ +rpm.global("ver", gh("AppImageCommunity/zsync2")); +if rpm.changed() { + rpm.global("git_commit", gh_commit("AppImageCommunity/zsync2")); +} diff --git a/anda/lib/zsync2/zsync2.spec b/anda/lib/zsync2/zsync2.spec index ea8d0c5147..5d9b970f72 100644 --- a/anda/lib/zsync2/zsync2.spec +++ b/anda/lib/zsync2/zsync2.spec @@ -1,8 +1,9 @@ -%global git_commit 1608115705047d6826bcd7b35a6988deaf3dbfec +%global git_commit 87fb5a0f3c14d3cf35aa6547cc60d099c89ca532 %global commit_short %(c=%{git_commit}; echo ${c:0:7}) -%global libver 2.0.0-alpha-1-20220304.git%{commit_short} +%global ver 2.0.0-alpha-1-20230304 +%global libver %ver.git%{commit_short} # replace - with ~ %global libver_format %(v=%{libver}; sed 's/-/~/g' <<< $v) @@ -17,7 +18,6 @@ License: Artistic-2.0 URL: https://github.com/AppImageCommunity/zsync2 #Source0: %%{url}/archive/refs/%%{libver}.tar.gz Source0: %{url}/archive/%{git_commit}.tar.gz -Patch0: https://github.com/AppImageCommunity/zsync2/commit/e57e1fce68194fa920542fd334488de5123e4832.patch BuildRequires: make BuildRequires: cmake3 @@ -47,6 +47,7 @@ developing applications that use %{name}. %autosetup -n zsync2-%{git_commit} -p1 %build +export CFLAGS="$CFLAGS -Wno-incompatible-pointer-types" %cmake -DCPR_FORCE_USE_SYSTEM_CURL=ON \ -DUSE_SYSTEM_CURL=ON \ -DUSE_SYSTEM_CPR=ON diff --git a/anda/misc/click/click.spec b/anda/misc/click/click.spec index 577372e490..77ed103e23 100644 --- a/anda/misc/click/click.spec +++ b/anda/misc/click/click.spec @@ -11,7 +11,6 @@ URL: https://gitlab.com/ubports/development/core/click Source0: %{url}/-/archive/%commit/click-%commit.tar.gz BuildRequires: automake libtool -BuildRequires: pkgconfig BuildRequires: make BuildRequires: g++ BuildRequires: gcc @@ -63,6 +62,7 @@ Provides HTML and Manpage (documentation) for Click. NOCONFIGURE=1 \ ./autogen.sh +export CFLAGS="$CFLAGS -Wno-implicit-function-declaration" %configure %make_build diff --git a/anda/misc/kwin-system76-scheduler-integration/kwin-system76-scheduler-integration.spec b/anda/misc/kwin-system76-scheduler-integration/kwin-system76-scheduler-integration.spec index d88efb16ab..2bfe5479fa 100644 --- a/anda/misc/kwin-system76-scheduler-integration/kwin-system76-scheduler-integration.spec +++ b/anda/misc/kwin-system76-scheduler-integration/kwin-system76-scheduler-integration.spec @@ -3,12 +3,12 @@ Name: kwin-system76-scheduler-integration %global forgeurl https://github.com/maxiberta/%{name} -%global commit 093a269670275feaa240d02c712f1ec8b812fd80 -%global date 20240320 +%global commit e00f1b74998d6513552633c791ea23ffa3fe78a0 +%global date 20240425 %forgemeta Version: 0.1 -Release: 6%?dist +Release: 1%?dist Summary: Notify the System76 Scheduler which app has focus so it can be prioritized License: MIT URL: %forgeurl diff --git a/anda/misc/kwin-system76-scheduler-integration/update.rhai b/anda/misc/kwin-system76-scheduler-integration/update.rhai index 60d34edcec..1737f94453 100644 --- a/anda/misc/kwin-system76-scheduler-integration/update.rhai +++ b/anda/misc/kwin-system76-scheduler-integration/update.rhai @@ -1,5 +1,5 @@ rpm.global("commit", gh_commit("maxiberta/kwin-system76-scheduler-integration")); if rpm.changed() { rpm.global("date", date()); // remove if we don't need the `date` macro - rpm.release(); + rpm.release(); } diff --git a/anda/misc/openbangla-keyboard/anda.hcl b/anda/misc/openbangla-keyboard/anda.hcl new file mode 100644 index 0000000000..94ff71f8c3 --- /dev/null +++ b/anda/misc/openbangla-keyboard/anda.hcl @@ -0,0 +1,6 @@ +project pkg { + rpm { + spec = "openbangla-keyboard-nightly.spec" + } + labels { nightly = "1" } +} diff --git a/anda/misc/openbangla-keyboard/openbangla-keyboard-nightly.spec b/anda/misc/openbangla-keyboard/openbangla-keyboard-nightly.spec new file mode 100644 index 0000000000..de55e25547 --- /dev/null +++ b/anda/misc/openbangla-keyboard/openbangla-keyboard-nightly.spec @@ -0,0 +1,84 @@ +%global ver 2.0.0 +%global commit c7aeeda40f528d647af0a019984897543ebb6d5e +%global commit_date 20240505 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: openbangla-keyboard-nightly +Version: %ver^%commit_date.%shortcommit +Release: 1%?dist +Summary: An OpenSource, Unicode compliant Bengali Input Method +License: GPL-3.0-or-later +URL: https://openbangla.github.io/ +Source0: https://github.com/OpenBangla/OpenBangla-Keyboard/archive/%commit.tar.gz +Source1: https://github.com/OpenBangla/riti/archive/master.tar.gz +BuildRequires: cmake anda-srpm-macros rust-packaging git-core gcc-c++ +BuildRequires: qt5-qtbase-devel pkgconfig(ibus-1.0) fcitx5-devel pkgconfig(libzstd) +Requires: qt5-qtbase hicolor-icon-theme zstd +Requires: openbangla-im = %version-%release +Provides: openbangla-keyboard = %version-%release +Conflicts: openbangla-keyboard + +%description +OpenBangla Keyboard is an open source, Unicode compliant, Bangla input method for GNU/Linux systems. +It’s a full-fledged Bangla input method with typing automation tools, includes many famous typing +methods such as Avro Phonetic, Probhat, Munir Optima, National (Jatiya) etc. + + +%package -n ibus-openbangla +Summary: OpenBangla Keyboard for IBus +Requires: ibus +Requires: openbangla-keyboard = %version-%release +Provides: openbangla-im = %version-%release +Conflicts: openbangla-im + +%description -n ibus-openbangla +OpenBangla Keyboard for IBus. + + +%package -n fcitx5-openbangla +Summary: OpenBangla Keyboard for Fcitx5 +Requires: fcitx5 +Requires: openbangla-keyboard = %version-%release +Provides: openbangla-im = %version-%release +Conflicts: openbangla-im + +%description -n fcitx5-openbangla +OpenBangla Keyboard for Fcitx5. + + +%prep +%autosetup -n OpenBangla-Keyboard-%commit +rmdir src/engine/riti +tar xf %SOURCE1 -C src/engine/ +mv src/engine/riti-master src/engine/riti + +%build +if [[ -d build ]]; then rm -rf build; fi +%cmake -DENABLE_FCITX=YES -DENABLE_IBUS=YES +%cmake_build + +%install +%cmake_install + +%files +%doc README.adoc +%license LICENSE +%_bindir/openbangla-gui +%_datadir/applications/openbangla-keyboard.desktop +%_datadir/icons/hicolor/*/apps/openbangla-keyboard.png +%_datadir/metainfo/io.github.openbangla.keyboard.metainfo.xml +%_datadir/openbangla-keyboard/ +%_datadir/pixmaps/openbangla-keyboard.png + +%files -n ibus-openbangla +%_libexecdir/ibus-engine-openbangla +%_datadir/ibus/component/openbangla.xml + +%files -n fcitx5-openbangla +%_libdir/fcitx5/openbangla.so +%_datadir/fcitx5/addon/openbangla.conf +%_datadir/fcitx5/inputmethod/openbangla.conf + + +%changelog +%autochangelog diff --git a/anda/misc/openbangla-keyboard/update.rhai b/anda/misc/openbangla-keyboard/update.rhai new file mode 100644 index 0000000000..a4267383ce --- /dev/null +++ b/anda/misc/openbangla-keyboard/update.rhai @@ -0,0 +1,8 @@ +if filters.contains("nightly") { + rpm.global("commit", get("https://api.github.com/repos/OpenBangla/OpenBangla-Keyboard/commits/develop").json().sha); + if rpm.changed() { + rpm.global("ver", gh("OpenBangla/OpenBangla-Keyboard")); + rpm.global("commit_date", date()); + rpm.release(); + } +} diff --git a/anda/misc/sass/sass.spec b/anda/misc/sass/sass.spec index 723d3c7417..dbcab11dcc 100644 --- a/anda/misc/sass/sass.spec +++ b/anda/misc/sass/sass.spec @@ -4,7 +4,7 @@ %define _build_id_links none Name: sass -Version: 1.75.0 +Version: 1.77.0 Release: 1%?dist Summary: The reference implementation of Sass, written in Dart License: MIT diff --git a/anda/system/cros-keyboard-map/anda.hcl b/anda/system/cros-keyboard-map/anda.hcl new file mode 100644 index 0000000000..137fe0fbf1 --- /dev/null +++ b/anda/system/cros-keyboard-map/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "cros-keyboard-map.spec" + } + labels { + nightly = "1" + } +} \ No newline at end of file diff --git a/anda/system/cros-keyboard-map/cros-keyboard-map.spec b/anda/system/cros-keyboard-map/cros-keyboard-map.spec new file mode 100644 index 0000000000..ff4a2c9467 --- /dev/null +++ b/anda/system/cros-keyboard-map/cros-keyboard-map.spec @@ -0,0 +1,89 @@ +%global commit 1889baff16c08ddf2382d95ca18caa37001d5971 +%global commit_date 20240418 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global debug_package %{nil} +%define __os_install_post %{nil} + +Name: cros-keyboard-map +Version: %commit_date.%shortcommit +Release: 1%?dist + +License: BSD-3-Clause +Summary: Utility to generate keyd configurations for use on Chromebooks +URL: https://github.com/WeirdTreeThing/cros-keyboard-map +Source0: https://github.com/WeirdTreeThing/cros-keyboard-map/archive/%commit/cros-keyboard-map-%commit.tar.gz + +%{?systemd_requires} +BuildRequires: systemd-rpm-macros +Requires: keyd python3 + +%description +Set of tools designed to help develop and debug software and firmware on Intel platforms with AudioDSP onboard. + +Related to alsa-utils which is also set of utilities but targets AdvancedLinuxSoundArchitecture (ALSA) audience in more general fashion. + +%prep +%autosetup -n cros-keyboard-map-%commit + +%install +mkdir -p %buildroot/etc/cros-keyboard-map/configs +install -Dm755 cros-keyboard-map.py %buildroot/etc/cros-keyboard-map/cros-keyboard-map.py +cp configs/* %buildroot/etc/cros-keyboard-map/configs + +mkdir -p %buildroot/usr/bin +tee %buildroot/usr/bin/um-generate-cros-keymap < /dev/null) +then + cp /etc/cros-keyboard-map/configs/cros-pixel.conf /etc/cros-keyboard-map/current.config +elif (grep -E "^(Sarien|Arcada)$" /sys/class/dmi/id/product_name &> /dev/null) +then + cp /etc/cros-keyboard-map/configs/cros-sarien.conf /etc/cros-keyboard-map/current.config +else + python3 /etc/cros-keyboard-map/cros-keyboard-map.py --file /etc/cros-keyboard-map/current.config +fi + +mkdir -p /etc/keyd +if [[ -f /etc/keyd/default.conf ]]; then + rm /etc/keyd/default.conf +fi +ln -s /etc/cros-keyboard-map/current.config /etc/keyd/default.conf +EOF + +mkdir -p %buildroot/etc/systemd/system +tee %buildroot/etc/systemd/system/cros-keyboard-map.service < +- Initial package. diff --git a/anda/system/cros-keyboard-map/update.rhai b/anda/system/cros-keyboard-map/update.rhai new file mode 100644 index 0000000000..46a9eeca30 --- /dev/null +++ b/anda/system/cros-keyboard-map/update.rhai @@ -0,0 +1,7 @@ +if filters.contains("nightly") { + rpm.global("commit", gh_commit("WeirdTreeThing/cros-keyboard-map")); + if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); + } +} diff --git a/anda/system/limine/limine.spec b/anda/system/limine/limine.spec index 1bfc52cd39..2d930b70ed 100644 --- a/anda/system/limine/limine.spec +++ b/anda/system/limine/limine.spec @@ -1,5 +1,5 @@ Name: limine -Version: 7.4.1 +Version: 7.5.0 Release: 1%?dist Summary: Modern, advanced, portable, multiprotocol bootloader License: BSD-2-Clause diff --git a/anda/terra/mock-configs/terra-rawhide-aarch64.cfg b/anda/terra/mock-configs/terra-rawhide-aarch64.cfg new file mode 100644 index 0000000000..659d4c4c38 --- /dev/null +++ b/anda/terra/mock-configs/terra-rawhide-aarch64.cfg @@ -0,0 +1,5 @@ +config_opts['releasever'] = 'rawhide' +config_opts['target_arch'] = 'aarch64' +config_opts['legal_host_arches'] = ('aarch64',) + +include('templates/terra.tpl') diff --git a/anda/terra/mock-configs/terra-rawhide-x86_64.cfg b/anda/terra/mock-configs/terra-rawhide-x86_64.cfg new file mode 100644 index 0000000000..3402689dac --- /dev/null +++ b/anda/terra/mock-configs/terra-rawhide-x86_64.cfg @@ -0,0 +1,5 @@ +config_opts['releasever'] = 'rawhide' +config_opts['target_arch'] = 'x86_64' +config_opts['legal_host_arches'] = ('x86_64',) + +include('templates/terra.tpl') diff --git a/anda/terra/srpm-macros/anda-srpm-macros.spec b/anda/terra/srpm-macros/anda-srpm-macros.spec index a26d89a92f..a70153f249 100644 --- a/anda/terra/srpm-macros/anda-srpm-macros.spec +++ b/anda/terra/srpm-macros/anda-srpm-macros.spec @@ -1,5 +1,5 @@ Name: anda-srpm-macros -Version: 0.1.5 +Version: 0.1.6 Release: 1%{?dist} Summary: SRPM macros for extra Fedora packages @@ -9,6 +9,7 @@ Source0: macros.cargo_extra Source1: macros.caching Source2: macros.anda Source3: macros.go_extra +Source4: macros.nim_extra Recommends: rust-packaging Requires: git-core @@ -28,15 +29,20 @@ install -D -p -m 0644 -t %{buildroot}%{_rpmmacrodir} %{SOURCE0} install -D -p -m 0644 -t %{buildroot}%{_rpmmacrodir} %{SOURCE1} install -D -p -m 0644 -t %{buildroot}%{_rpmmacrodir} %{SOURCE2} install -D -p -m 0644 -t %{buildroot}%{_rpmmacrodir} %{SOURCE3} +install -D -p -m 0644 -t %{buildroot}%{_rpmmacrodir} %{SOURCE4} %files %{_rpmmacrodir}/macros.cargo_extra %{_rpmmacrodir}/macros.caching %{_rpmmacrodir}/macros.anda %{_rpmmacrodir}/macros.go_extra +%{_rpmmacrodir}/macros.nim_extra %changelog +* Wed Mar 13 2024 madonuko - 0.1.6-1 +- Add nim_c, nim_tflags and nim_lflags + * Thu Aug 3 2023 madonuko - 0.1.4-1 - Add go_build_online and go_prep_online diff --git a/anda/terra/srpm-macros/macros.nim_extra b/anda/terra/srpm-macros/macros.nim_extra new file mode 100644 index 0000000000..69a43becb7 --- /dev/null +++ b/anda/terra/srpm-macros/macros.nim_extra @@ -0,0 +1,5 @@ +%nim_tflags %(echo "%?build_cflags -fPIE" | sed "s/-O2/-Ofast/g" | sed "s/-Wall//g") + +%nim_lflags %?build_ldflags -pie + +%nim_c -d:release -t:"%nim_tflags" -l:"%nim_lflags" diff --git a/anda/themes/klassy/klassy.spec b/anda/themes/klassy/klassy.spec index 548a911c23..449962b61b 100644 --- a/anda/themes/klassy/klassy.spec +++ b/anda/themes/klassy/klassy.spec @@ -1,12 +1,12 @@ Name: klassy %global forgeurl https://github.com/paulmcauley/%{name} -%global tag 6.0.breeze6.0.2 -%global date 20240314 +%global tag 6.1.breeze6.0.3 +%global date 20240411 %forgemeta Version: %{tag} -Release: %autorelease +Release: 1%?dist Summary: Window Decoration, Application Style and Global Theme plugin for recent versions of the KDE Plasma desktop. License: GPL-2.0-or-later Group: System/GUI/KDE @@ -112,6 +112,7 @@ Klassy (formerly ClassiK/ClassikStyles) is a highly customizable binary Window D %{_datadir}/icons/hicolor/ %{_datadir}/icons/%{name}/ %{_datadir}/icons/%{name}-dark/ +%{_datadir}/plasma/desktoptheme/%{name}/ %{_kf6_datadir}/kstyle/themes/%{name}.themerc diff --git a/anda/themes/lightly-qt6/VER6.txt b/anda/themes/lightly-qt6/VER6.txt index 1e8b314962..7f8f011eb7 100644 --- a/anda/themes/lightly-qt6/VER6.txt +++ b/anda/themes/lightly-qt6/VER6.txt @@ -1 +1 @@ -6 +7 diff --git a/anda/themes/tau-helium/tau-helium.spec b/anda/themes/tau-helium/tau-helium.spec index ccfa24a1a7..9e741ff15f 100644 --- a/anda/themes/tau-helium/tau-helium.spec +++ b/anda/themes/tau-helium/tau-helium.spec @@ -1,4 +1,4 @@ -%global ver 1.8.10-6 +%global ver 1.8.10-7 Summary: tauOS GTK/GNOME Shell Themes Name: tau-helium diff --git a/anda/tools/electron/electron.spec b/anda/tools/electron/electron.spec index 91eab416a3..590b9def6d 100644 --- a/anda/tools/electron/electron.spec +++ b/anda/tools/electron/electron.spec @@ -12,7 +12,7 @@ %global __provides_exclude_from %{_libdir}/%{name}/.*\\.so Name: electron -Version: 29.3.0 +Version: 30.0.2 Release: 1%?dist Summary: Build cross platform desktop apps with web technologies License: MIT diff --git a/anda/tools/gcm-core/gcm-core.spec b/anda/tools/gcm-core/gcm-core.spec index 770b7801ad..838de50c32 100644 --- a/anda/tools/gcm-core/gcm-core.spec +++ b/anda/tools/gcm-core/gcm-core.spec @@ -18,7 +18,7 @@ Source0: %{forgesource} Provides: %{long_name} = %{version}-%{release} Provides: %{long_name}-core = %{version}-%{release} -BuildRequires: dotnet-sdk-7.0 +BuildRequires: dotnet-sdk-8.0 # Require DPKG, so that we can use the `dpkg-architecture` command. which makes the build script happy. # TODO: Better solution: Patch out the debian-specific packaging code. BuildRequires: dpkg-dev diff --git a/anda/tools/gsctool/anda.hcl b/anda/tools/gsctool/anda.hcl new file mode 100644 index 0000000000..af03f6660f --- /dev/null +++ b/anda/tools/gsctool/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "gsctool.spec" + } +} diff --git a/anda/tools/gsctool/gsctool.spec b/anda/tools/gsctool/gsctool.spec new file mode 100644 index 0000000000..8aeddd4282 --- /dev/null +++ b/anda/tools/gsctool/gsctool.spec @@ -0,0 +1,40 @@ +%define commit c060a44d085fefabd414a026dc3177533f20f0f3 +%define shortcommit %(c=%{commit}; echo ${c:0:12}) +Name: gsctool +Version: git+%{shortcommit} +Release: 1%{?dist} +Summary: Chromium OS EC utilities + +License: BSD-3-Clause +URL: https://chromium.googlesource.com/chromiumos/platform/ec +Source0: https://chromium.googlesource.com/chromiumos/platform/ec/+archive/%{commit}.tar.gz#/%{name}-git+%{commit}.tar.gz + +BuildRequires: pkgconfig +BuildRequires: pkgconfig(libusb-1.0) +BuildRequires: pkgconfig(openssl) +BuildRequires: gcc + +%description +Chromium OS EC utilities + +%prep +%autosetup -c + +%build +ls +pushd extra/usb_updater +%make_build + + +%install +pushd extra/usb_updater +install -D -m 755 gsctool %{buildroot}%{_bindir}/gsctool + + +%files +%{_bindir}/gsctool + + +%changelog +* Wed Mar 27 2024 Cappy Ishihara +- initial release diff --git a/anda/tools/yt-dlp/yt-dlp-nightly.spec b/anda/tools/yt-dlp/yt-dlp-nightly.spec index d74f8b3340..2092d1bc96 100644 --- a/anda/tools/yt-dlp/yt-dlp-nightly.spec +++ b/anda/tools/yt-dlp/yt-dlp-nightly.spec @@ -1,8 +1,8 @@ #bcond_without tests -%global commit e5d4f11104ce7ea1717a90eea82c0f7d230ea5d5 +%global commit ac817bc83efd939dca3e40c4b527d0ccfc77172b %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240325 -%global ver 2024.03.10 +%global commit_date 20240429 +%global ver 2024.04.09 Name: yt-dlp-nightly Version: %ver^%commit_date.%shortcommit