Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package hyprwayland-scanner for
openSUSE:Factory checked in at 2026-07-17 18:49:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hyprwayland-scanner (Old)
and /work/SRC/openSUSE:Factory/.hyprwayland-scanner.new.24530 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hyprwayland-scanner"
Fri Jul 17 18:49:03 2026 rev:8 rq:1366314 version:0.4.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/hyprwayland-scanner/hyprwayland-scanner.changes
2025-07-17 17:19:59.810826543 +0200
+++
/work/SRC/openSUSE:Factory/.hyprwayland-scanner.new.24530/hyprwayland-scanner.changes
2026-07-17 18:50:12.066717578 +0200
@@ -1,0 +2,9 @@
+Thu Jul 16 13:54:20 UTC 2026 - Nassim Lhadj <[email protected]>
+
+- Update to versin 0.4.6
+ * Generate protocol specific dummy_type names
+ * Add OpenBSD support (no librt)
+ * Core: use rvalue refs and move std::functions
+ * Core: fix types table size for untyped new_id args
+
+-------------------------------------------------------------------
Old:
----
hyprwayland-scanner-0.4.5.obscpio
New:
----
hyprwayland-scanner-0.4.6.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hyprwayland-scanner.spec ++++++
--- /var/tmp/diff_new_pack.ENXqpH/_old 2026-07-17 18:50:12.958747762 +0200
+++ /var/tmp/diff_new_pack.ENXqpH/_new 2026-07-17 18:50:12.958747762 +0200
@@ -1,7 +1,7 @@
#
# spec file for package hyprwayland-scanner
#
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
# Copyright (c) 2024 Florian "sp1rit" <[email protected]>
#
# All modifications and additions to the file contributed by third parties
@@ -18,7 +18,7 @@
Name: hyprwayland-scanner
-Version: 0.4.5
+Version: 0.4.6
Release: 0
Summary: Hyprland implementation of wayland-scanner
License: BSD-3-Clause
++++++ _service ++++++
--- /var/tmp/diff_new_pack.ENXqpH/_old 2026-07-17 18:50:13.002749250 +0200
+++ /var/tmp/diff_new_pack.ENXqpH/_new 2026-07-17 18:50:13.018749792 +0200
@@ -5,7 +5,7 @@
<param name="scm">git</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(.*)</param>
- <param name="revision">v0.4.5</param>
+ <param name="revision">@PARENT_TAG@</param>
<param name="submodule">enable</param>
</service>
<service name="tar" mode="buildtime" />
++++++ hyprwayland-scanner-0.4.5.obscpio -> hyprwayland-scanner-0.4.6.obscpio
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/hyprwayland-scanner-0.4.5/.github/workflows/nix.yml
new/hyprwayland-scanner-0.4.6/.github/workflows/nix.yml
--- old/hyprwayland-scanner-0.4.5/.github/workflows/nix.yml 2025-07-07
16:18:29.000000000 +0200
+++ new/hyprwayland-scanner-0.4.6/.github/workflows/nix.yml 2026-04-26
01:28:03.000000000 +0200
@@ -1,48 +1,11 @@
name: Build
on: [push, pull_request, workflow_dispatch]
+
jobs:
nix:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
-
- - name: Install Nix
- uses: nixbuild/nix-quick-install-action@v31
- with:
- nix_conf: |
- keep-env-derivations = true
- keep-outputs = true
-
- - name: Restore and save Nix store
- uses: nix-community/cache-nix-action@v6
- with:
- # restore and save a cache using this key
- primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix',
'**/flake.lock') }}
- # if there's no cache hit, restore a cache by this prefix
- restore-prefixes-first-match: nix-${{ runner.os }}-
- # collect garbage until the Nix store size (in bytes) is at most this
number
- # before trying to save a new cache
- # 1G = 1073741824
- gc-max-store-size-linux: 1G
- # do purge caches
- purge: true
- # purge all versions of the cache
- purge-prefixes: nix-${{ runner.os }}-
- # created more than this number of seconds ago
- purge-created: 0
- # or, last accessed more than this number of seconds ago
- # relative to the start of the `Post Restore and save Nix store` phase
- purge-last-accessed: 0
- # except any version with the key that is the same as the `primary-key`
- purge-primary-key: never
-
- # not needed (yet)
- # - uses: cachix/cachix-action@v12
- # with:
- # name: hyprland
- # authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
-
- - name: Build
- run: nix build -L
-
+ if: (github.event_name != 'pull_request' ||
github.event.pull_request.head.repo.fork)
+ uses: hyprwm/actions/.github/workflows/nix.yml@main
+ secrets: inherit
+ with:
+ command: nix build --print-build-logs --keep-going
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/hyprwayland-scanner-0.4.5/CMakeLists.txt
new/hyprwayland-scanner-0.4.6/CMakeLists.txt
--- old/hyprwayland-scanner-0.4.5/CMakeLists.txt 2025-07-07
16:18:29.000000000 +0200
+++ new/hyprwayland-scanner-0.4.6/CMakeLists.txt 2026-04-26
01:28:03.000000000 +0200
@@ -41,7 +41,13 @@
file(GLOB_RECURSE SRCFILES CONFIGURE_DEPENDS "src/*.cpp")
add_executable(hyprwayland-scanner ${SRCFILES})
-target_link_libraries(hyprwayland-scanner PRIVATE rt Threads::Threads
+find_library(librt rt)
+if("${librt}" MATCHES "librt-NOTFOUND")
+ unset(LIBRT)
+else()
+ set(LIBRT rt)
+endif()
+target_link_libraries(hyprwayland-scanner PRIVATE ${LIBRT} Threads::Threads
PkgConfig::deps)
configure_package_config_file(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/hyprwayland-scanner-0.4.5/VERSION
new/hyprwayland-scanner-0.4.6/VERSION
--- old/hyprwayland-scanner-0.4.5/VERSION 2025-07-07 16:18:29.000000000
+0200
+++ new/hyprwayland-scanner-0.4.6/VERSION 2026-04-26 01:28:03.000000000
+0200
@@ -1 +1 @@
-0.4.5
+0.4.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/hyprwayland-scanner-0.4.5/flake.nix
new/hyprwayland-scanner-0.4.6/flake.nix
--- old/hyprwayland-scanner-0.4.5/flake.nix 2025-07-07 16:18:29.000000000
+0200
+++ new/hyprwayland-scanner-0.4.6/flake.nix 2026-04-26 01:28:03.000000000
+0200
@@ -6,48 +6,40 @@
systems.url = "github:nix-systems/default-linux";
};
- outputs = {
- self,
- nixpkgs,
- systems,
- }: let
- inherit (nixpkgs) lib;
- eachSystem = lib.genAttrs (import systems);
- pkgsFor = eachSystem (system:
- import nixpkgs {
- localSystem.system = system;
- overlays = with self.overlays; [hyprwayland-scanner];
- });
- pkgsCrossFor = eachSystem (system: crossSystem:
- import nixpkgs {
- localSystem = system;
- crossSystem = crossSystem;
- overlays = with self.overlays; [hyprwayland-scanner];
+ outputs =
+ {
+ self,
+ nixpkgs,
+ systems,
+ }:
+ let
+ inherit (nixpkgs) lib;
+ eachSystem = lib.genAttrs (import systems);
+ pkgsFor = eachSystem (
+ system:
+ import nixpkgs {
+ localSystem.system = system;
+ overlays = with self.overlays; [ hyprwayland-scanner ];
+ }
+ );
+ pkgsCrossFor = eachSystem (
+ system: crossSystem:
+ import nixpkgs {
+ localSystem = system;
+ crossSystem = crossSystem;
+ overlays = with self.overlays; [ hyprwayland-scanner ];
+ }
+ );
+ in
+ {
+ overlays = import ./nix/overlays.nix { inherit lib self; };
+
+ packages = eachSystem (system: {
+ default = self.packages.${system}.hyprwayland-scanner;
+ inherit (pkgsFor.${system}) hyprwayland-scanner;
+ hyprwayland-scanner-cross = (pkgsCrossFor.${system}
"aarch64-linux").hyprwayland-scanner;
});
- mkDate = longDate: (lib.concatStringsSep "-" [
- (builtins.substring 0 4 longDate)
- (builtins.substring 4 2 longDate)
- (builtins.substring 6 2 longDate)
- ]);
- version = lib.removeSuffix "\n" (builtins.readFile ./VERSION);
- in {
- overlays = {
- default = self.overlays.hyprwayland-scanner;
- hyprwayland-scanner = final: prev: {
- hyprwayland-scanner = final.callPackage ./nix/default.nix {
- stdenv = final.gcc15Stdenv;
- version = version + "+date=" + (mkDate (self.lastModifiedDate or
"19700101")) + "_" + (self.shortRev or "dirty");
- };
- };
+ formatter = eachSystem (system: pkgsFor.${system}.nixfmt-tree);
};
-
- packages = eachSystem (system: {
- default = self.packages.${system}.hyprwayland-scanner;
- inherit (pkgsFor.${system}) hyprwayland-scanner;
- hyprwayland-scanner-cross = (pkgsCrossFor.${system}
"aarch64-linux").hyprwayland-scanner;
- });
-
- formatter = eachSystem (system: pkgsFor.${system}.alejandra);
- };
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/hyprwayland-scanner-0.4.5/nix/overlays.nix
new/hyprwayland-scanner-0.4.6/nix/overlays.nix
--- old/hyprwayland-scanner-0.4.5/nix/overlays.nix 1970-01-01
01:00:00.000000000 +0100
+++ new/hyprwayland-scanner-0.4.6/nix/overlays.nix 2026-04-26
01:28:03.000000000 +0200
@@ -0,0 +1,32 @@
+{
+ lib,
+ self,
+ ...
+}:
+let
+
+ mkDate =
+ longDate:
+ (lib.concatStringsSep "-" [
+ (builtins.substring 0 4 longDate)
+ (builtins.substring 4 2 longDate)
+ (builtins.substring 6 2 longDate)
+ ]);
+
+ version = lib.removeSuffix "\n" (builtins.readFile ../VERSION);
+in
+{
+ default = self.overlays.hyprwayland-scanner;
+
+ hyprwayland-scanner = final: prev: {
+ hyprwayland-scanner = final.callPackage ./default.nix {
+ stdenv = final.gcc15Stdenv;
+ version =
+ version
+ + "+date="
+ + (mkDate (self.lastModifiedDate or "19700101"))
+ + "_"
+ + (self.shortRev or "dirty");
+ };
+ };
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/hyprwayland-scanner-0.4.5/src/main.cpp
new/hyprwayland-scanner-0.4.6/src/main.cpp
--- old/hyprwayland-scanner-0.4.5/src/main.cpp 2025-07-07 16:18:29.000000000
+0200
+++ new/hyprwayland-scanner-0.4.6/src/main.cpp 2026-04-26 01:28:03.000000000
+0200
@@ -2,10 +2,8 @@
#include <iostream>
#include <string>
#include <fstream>
-#include <format>
#include <vector>
#include <algorithm>
-#include <tuple>
#include <filesystem>
bool waylandEnums = false;
@@ -333,8 +331,8 @@
if (!clientCode) {
HEADER += std::format(R"#(
// set a listener for when this resource is _being_ destroyed
- void setOnDestroy(F<void({}*)> handler) {{
- onDestroy = handler;
+ void setOnDestroy(F<void({}*)> &&handler) {{
+ onDestroy = std::move(handler);
}}
// set the data for this resource
@@ -417,7 +415,7 @@
args.pop_back();
args.pop_back();
- HEADER += std::format(" void {}(F<void({}*{})> handler);\n",
camelize("set_" + rq.name), IFACE_CLASS_NAME_CAMEL, args);
+ HEADER += std::format(" void {}(F<void({}*{})> &&handler);\n",
camelize("set_" + rq.name), IFACE_CLASS_NAME_CAMEL, args);
}
// start events
@@ -516,6 +514,8 @@
}
void parseSource() {
+ std::string DUMMY_TYPE_TABLE_NAME = PROTO_DATA.name + "_dummyTypes";
+
SOURCE += std::format(R"#(#define private public
#define HYPRWAYLAND_SCANNER_NO_INTERFACES
#include "{}.hpp"
@@ -527,9 +527,10 @@
// reference interfaces
// dummy
- SOURCE += R"#(
-static const wl_interface* dummyTypes[] = { nullptr };
-)#";
+ SOURCE += std::format(R"#(
+static const wl_interface* {}[] = {{ nullptr }};
+)#",
+ DUMMY_TYPE_TABLE_NAME);
SOURCE += R"#(
// Reference all other interfaces.
@@ -779,6 +780,12 @@
SOURCE += std::format("static const wl_interface* {}[] = {{\n",
TYPE_TABLE_NAME);
for (auto& arg : rq.args) {
+ if (arg.wlType == "new_id" && arg.interface.empty()) {
+ // untyped new_id expands to (string, uint, new_id)
+ SOURCE += " nullptr,\n nullptr,\n nullptr,\n";
+ continue;
+ }
+
if (arg.interface.empty()) {
SOURCE += " nullptr,\n";
continue;
@@ -797,6 +804,12 @@
SOURCE += std::format("static const wl_interface* {}[] = {{\n",
TYPE_TABLE_NAME);
for (auto& arg : ev.args) {
+ if (arg.wlType == "new_id" && arg.interface.empty()) {
+ // untyped new_id expands to (string, uint, new_id)
+ SOURCE += " nullptr,\n nullptr,\n nullptr,\n";
+ continue;
+ }
+
if (arg.interface.empty()) {
SOURCE += " nullptr,\n";
continue;
@@ -823,7 +836,7 @@
const auto TYPE_TABLE_NAME = camelize(std::string{"_"} +
"C_" + IFACE_NAME + "_" + rq.name + "_types");
SOURCE += std::format(" {{ .name = \"{}\", .signature =
\"{}\", .types = {}}},\n", rq.name, argsToShort(rq.args, rq.since),
- rq.args.empty() ? "dummyTypes + 0" :
TYPE_TABLE_NAME + " + 0");
+ rq.args.empty() ? std::format("{} +
0", DUMMY_TYPE_TABLE_NAME) : TYPE_TABLE_NAME + " + 0");
}
SOURCE += "};\n";
@@ -839,7 +852,7 @@
const auto TYPE_TABLE_NAME = camelize(std::string{"_"} +
"C_" + IFACE_NAME + "_" + ev.name + "_types");
SOURCE += std::format(" {{ .name = \"{}\", .signature =
\"{}\", .types = {}}},\n", ev.name, argsToShort(ev.args, ev.since),
- ev.args.empty() ? "dummyTypes + 0" :
TYPE_TABLE_NAME + " + 0");
+ ev.args.empty() ? std::format("{} +
0", DUMMY_TYPE_TABLE_NAME) : TYPE_TABLE_NAME + " + 0");
}
SOURCE += "};\n";
@@ -944,8 +957,8 @@
args.pop_back();
SOURCE += std::format(R"#(
-void {}::{}(F<void({}*{})> handler) {{
- requests.{} = handler;
+void {}::{}(F<void({}*{})> &&handler) {{
+ requests.{} = std::move(handler);
}}
)#",
IFACE_CLASS_NAME_CAMEL, camelize("set_" +
rq.name), IFACE_CLASS_NAME_CAMEL, args, camelize(rq.name));
++++++ hyprwayland-scanner.obsinfo ++++++
--- /var/tmp/diff_new_pack.ENXqpH/_old 2026-07-17 18:50:13.410763056 +0200
+++ /var/tmp/diff_new_pack.ENXqpH/_new 2026-07-17 18:50:13.422763462 +0200
@@ -1,5 +1,5 @@
name: hyprwayland-scanner
-version: 0.4.5
-mtime: 1751897909
-commit: fcca0c61f988a9d092cbb33e906775014c61579d
+version: 0.4.6
+mtime: 1777159683
+commit: b8632713a6beaf28b56f2a7b0ab2fb7088dbb404