Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libcec for openSUSE:Factory checked 
in at 2026-08-04 21:36:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libcec (Old)
 and      /work/SRC/openSUSE:Factory/.libcec.new.16738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libcec"

Tue Aug  4 21:36:41 2026 rev:20 rq:1369366 version:8.1.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/libcec/libcec.changes    2026-08-01 
18:37:54.785558038 +0200
+++ /work/SRC/openSUSE:Factory/.libcec.new.16738/libcec.changes 2026-08-04 
21:39:08.042060877 +0200
@@ -1,0 +2,9 @@
+Tue Aug  4 05:37:28 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to version 8.1.4:
+  * Windows-only release: the Windows install tree now follows
+    GNUInstallDirs, and the static library no longer overwrites the
+    DLL import library. There are no library or protocol changes,
+    so nothing changes for the Linux build
+
+-------------------------------------------------------------------

Old:
----
  libcec-8.1.3.tar.gz

New:
----
  libcec-8.1.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libcec.spec ++++++
--- /var/tmp/diff_new_pack.ywfoSF/_old  2026-08-04 21:39:08.542078368 +0200
+++ /var/tmp/diff_new_pack.ywfoSF/_new  2026-08-04 21:39:08.542078368 +0200
@@ -21,7 +21,7 @@
 %define libname        %{name}%{sover}
 %bcond_with enable_rpi_build
 Name:           libcec
-Version:        8.1.3
+Version:        8.1.4
 Release:        0
 Summary:        Library to control devices with TV remote control via HDMI
 License:        GPL-2.0-or-later

++++++ libcec-8.1.3.tar.gz -> libcec-8.1.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcec-libcec-8.1.3/CLAUDE.md 
new/libcec-libcec-8.1.4/CLAUDE.md
--- old/libcec-libcec-8.1.3/CLAUDE.md   2026-07-31 17:39:37.000000000 +0200
+++ new/libcec-libcec-8.1.4/CLAUDE.md   2026-08-03 19:46:07.000000000 +0200
@@ -55,7 +55,7 @@
 python windows\create-installer.py -vs         # generate Visual Studio 
project files for development
 ```
 
-Useful flags: `-a {x64,x86,arm,arm64}` (default x64), `-m 
{Release,Debug,RelWithDebInfo}` (default Release), `-t <toolchain>` (e.g. 
`2019c`, `2022`, `2026c`), `-nc` (no clean / incremental), `-ne` (skip 
EventGhost plugin), `-ni` (no installer). Build artifacts land in 
`build\<target>\<arch>\`. The orchestrator's structure is in 
`windows/toolchain.py` (toolchain/arch enums) and `windows/mixins.py` / 
`windows/pathbuilder.py` (helpers).
+Useful flags: `-a {x64,x86,arm,arm64}` (default x64), `-m 
{Release,Debug,RelWithDebInfo}` (default Release), `-t <toolchain>` (e.g. 
`2019c`, `2022`, `2026c`), `-nc` (no clean / incremental), `-ne` (skip 
EventGhost plugin), `-ni` (no installer). Build artifacts land in 
`build\<target>\<arch>\`, laid out per GNUInstallDirs like every other 
platform: `bin\` (cec.dll, cec-client.exe, cecc-client.exe, cec.pdb), `lib\` 
(the import library `cec.lib`, plus `cec-static.lib` and `cmake\libcec\`), 
`include\libcec\`. The NSIS scripts take their payload from those 
subdirectories; what the *installer* then lays down under `Program Files` is 
unchanged and still flat. Two things to keep in mind: the DLL's import library 
and the static library are both `cec.lib` by default, so the static target is 
renamed `cec-static` on Windows to stop it overwriting the import library in 
the build **and** install trees; and the Windows layout used to be flat 
(everything in the prefix root), which is what downstrea
 m consumers such as Kodi's `FindCEC.cmake` had to patch around — keep it 
GNUInstallDirs-conformant so they don't have to. The orchestrator's structure 
is in `windows/toolchain.py` (toolchain/arch enums) and `windows/mixins.py` / 
`windows/pathbuilder.py` (helpers).
 
 **Code signing** is Azure Artifact Signing (formerly Trusted Signing), driven 
by `windows/codesigner.py` and enabled by the presence of `AZURE_SIGNING_JSON` 
— the `/dmdf` metadata blob holding Endpoint, CodeSigningAccountName and 
CertificateProfileName. The dlib comes from the 
`Microsoft.ArtifactSigning.Client` NuGet package, found by globbing 
`C:\jenkins-deps\Microsoft.ArtifactSigning.Client*` (override with 
`AZURE_SIGNING_DLIB`), and it is native x64 so all signing goes through the x64 
`signtool.exe`. Credentials are read from 
`AZURE_TENANT_ID`/`AZURE_CLIENT_ID`/`AZURE_CLIENT_SECRET` in the environment by 
the Azure SDK; nothing is stored in the repo. `create-installer.py` signs the 
payload before makensis packages it and the installer afterwards, and writes 
`support/private/sign-binary.cmd` (a gitignored path) that `project/libCEC.nsi` 
already looks for to sign the uninstaller. Without `AZURE_SIGNING_JSON` the 
build says so and produces unsigned output.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcec-libcec-8.1.3/CMakeLists.txt 
new/libcec-libcec-8.1.4/CMakeLists.txt
--- old/libcec-libcec-8.1.3/CMakeLists.txt      2026-07-31 17:39:37.000000000 
+0200
+++ new/libcec-libcec-8.1.4/CMakeLists.txt      2026-08-03 19:46:07.000000000 
+0200
@@ -3,7 +3,7 @@
 
 set(LIBCEC_VERSION_MAJOR 8)
 set(LIBCEC_VERSION_MINOR 1)
-set(LIBCEC_VERSION_PATCH 3)
+set(LIBCEC_VERSION_PATCH 4)
 
 if(NOT WIN32)
   # set here rather than in CheckPlatformSupport.cmake, which only gets 
included
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcec-libcec-8.1.3/debian/changelog.in 
new/libcec-libcec-8.1.4/debian/changelog.in
--- old/libcec-libcec-8.1.3/debian/changelog.in 2026-07-31 17:39:37.000000000 
+0200
+++ new/libcec-libcec-8.1.4/debian/changelog.in 2026-08-03 19:46:07.000000000 
+0200
@@ -1,3 +1,11 @@
+libcec (8.1.4.1~#DIST#) #DIST#; urgency=medium
+
+  [ Lars Op den Kamp ]
+  * fixed: use the GNUInstallDirs layout on Windows - cec.dll, the client 
executables and the pdb in bin/, the import library in lib/ - instead of 
dropping them in the install prefix root, so consumers no longer need to patch 
libCEC's cmake files to build against it
+  * fixed: name the Windows static library cec-static, so it no longer 
overwrites the DLL's import library of the same name in the build and install 
trees, which left consumers linking libCEC statically or failing on unresolved 
__imp_libcec_* symbols
+
+ -- Lars Op den Kamp <[email protected]>  Mon, 03 Aug 2026 19:45:18 +0200
+
 libcec (8.1.3.1~#DIST#) #DIST#; urgency=medium
 
   [ Lars Op den Kamp ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcec-libcec-8.1.3/docs/README.windows.md 
new/libcec-libcec-8.1.4/docs/README.windows.md
--- old/libcec-libcec-8.1.3/docs/README.windows.md      2026-07-31 
17:39:37.000000000 +0200
+++ new/libcec-libcec-8.1.4/docs/README.windows.md      2026-08-03 
19:46:07.000000000 +0200
@@ -30,7 +30,7 @@
 ```
 cd src\nodejs
 set LIBCEC_INCLUDE_DIR=..\..\include
-set LIBCEC_LIB_DIR=..\..\build\Release\x64
+set LIBCEC_LIB_DIR=..\..\build\Release\x64\lib
 npm install
 ```
 `create-installer.py` does exactly this and stages the result (for x64 builds
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcec-libcec-8.1.3/project/nsis/libcec-pdb.nsh 
new/libcec-libcec-8.1.4/project/nsis/libcec-pdb.nsh
--- old/libcec-libcec-8.1.3/project/nsis/libcec-pdb.nsh 2026-07-31 
17:39:37.000000000 +0200
+++ new/libcec-libcec-8.1.4/project/nsis/libcec-pdb.nsh 2026-08-03 
19:46:07.000000000 +0200
@@ -3,7 +3,7 @@
        SectionIn 1
 
        SetOutPath "$INSTDIR"
-       File "${BINARY_SOURCE_DIR}\cec.pdb"
+       File "${BINARY_SOURCE_DIR}\bin\cec.pdb"
 
        SetOutPath "$INSTDIR\net8.0"
        File /nonfatal "${BINARY_SOURCE_DIR}\net8.0\cec-tray.pdb"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcec-libcec-8.1.3/project/nsis/nodejs.nsh 
new/libcec-libcec-8.1.4/project/nsis/nodejs.nsh
--- old/libcec-libcec-8.1.3/project/nsis/nodejs.nsh     2026-07-31 
17:39:37.000000000 +0200
+++ new/libcec-libcec-8.1.4/project/nsis/nodejs.nsh     2026-08-03 
19:46:07.000000000 +0200
@@ -7,7 +7,7 @@
        ; its own directory without the install dir being on PATH.
        SetOutPath "$INSTDIR\nodejs\build\Release"
        File "${BINARY_SOURCE_DIR}\nodejs\build\Release\cec_native.node"
-       File "${BINARY_SOURCE_DIR}\cec.dll"
+       File "${BINARY_SOURCE_DIR}\bin\cec.dll"
 
        SetOutPath "$INSTDIR\nodejs\lib"
        File "${BINARY_SOURCE_DIR}\nodejs\lib\*.js"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcec-libcec-8.1.3/project/nsis/sections.nsh 
new/libcec-libcec-8.1.4/project/nsis/sections.nsh
--- old/libcec-libcec-8.1.3/project/nsis/sections.nsh   2026-07-31 
17:39:37.000000000 +0200
+++ new/libcec-libcec-8.1.4/project/nsis/sections.nsh   2026-08-03 
19:46:07.000000000 +0200
@@ -51,7 +51,7 @@
        File "..\docs\README.windows.md"
        File "..\support\windows\tv_on.cmd"
        File "..\support\windows\tv_off.cmd"
-       File "${BINARY_SOURCE_DIR}\cec.dll"
+       File "${BINARY_SOURCE_DIR}\bin\cec.dll"
        File "/oname=p8-logo.ico" "favicon.ico"
 
        ; Copy the headers
@@ -106,7 +106,7 @@
        ; Copy binaries
        SetOutPath "$INSTDIR\python\cec"
        
-       File "${BINARY_SOURCE_DIR}\cec.dll"
+       File "${BINARY_SOURCE_DIR}\bin\cec.dll"
        File "${BINARY_SOURCE_DIR}\python\cec\_pycec.pyd"
        File "${BINARY_SOURCE_DIR}\python\cec\cec.py"
        !ifdef NSIS_X86
@@ -122,7 +122,7 @@
 
        ; Copy binaries (pure C# LibCecSharp; no Ijwhost.dll / runtimeconfig 
for the library)
        SetOutPath "$INSTDIR\net8.0"
-       File "${BINARY_SOURCE_DIR}\cec.dll"
+       File "${BINARY_SOURCE_DIR}\bin\cec.dll"
        File "${BINARY_SOURCE_DIR}\net8.0\LibCecSharp.deps.json"
        File "${BINARY_SOURCE_DIR}\net8.0\LibCecSharp.dll"
        File "${BINARY_SOURCE_DIR}\net8.0\LibCecSharp.xml"
@@ -145,8 +145,8 @@
 
        ; Copy binaries
        SetOutPath "$INSTDIR"
-       File "${BINARY_SOURCE_DIR}\cec-client.exe"
-       File "${BINARY_SOURCE_DIR}\cecc-client.exe"
+       File "${BINARY_SOURCE_DIR}\bin\cec-client.exe"
+       File "${BINARY_SOURCE_DIR}\bin\cecc-client.exe"
 
        ; Start menu item
        !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcec-libcec-8.1.3/src/cec-client/CMakeLists.txt 
new/libcec-libcec-8.1.4/src/cec-client/CMakeLists.txt
--- old/libcec-libcec-8.1.3/src/cec-client/CMakeLists.txt       2026-07-31 
17:39:37.000000000 +0200
+++ new/libcec-libcec-8.1.4/src/cec-client/CMakeLists.txt       2026-08-03 
19:46:07.000000000 +0200
@@ -76,10 +76,7 @@
 # write env.h
 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/env.h.in 
${CMAKE_CURRENT_SOURCE_DIR}/env.h)
 
-if (WIN32)
-  install(TARGETS     cec-client
-          DESTINATION .)
-else()
-  install(TARGETS     cec-client
-          DESTINATION ${CMAKE_INSTALL_BINDIR})
-endif()
+# bin/ on every platform: Windows used to drop executables in the prefix root,
+# which left the install tree half GNUInstallDirs and half flat
+install(TARGETS     cec-client
+        DESTINATION ${CMAKE_INSTALL_BINDIR})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcec-libcec-8.1.3/src/cecc-client/CMakeLists.txt 
new/libcec-libcec-8.1.4/src/cecc-client/CMakeLists.txt
--- old/libcec-libcec-8.1.3/src/cecc-client/CMakeLists.txt      2026-07-31 
17:39:37.000000000 +0200
+++ new/libcec-libcec-8.1.4/src/cecc-client/CMakeLists.txt      2026-08-03 
19:46:07.000000000 +0200
@@ -45,10 +45,6 @@
 # write env.h
 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/env.h.in 
${CMAKE_CURRENT_SOURCE_DIR}/env.h)
 
-if (WIN32)
-  install(TARGETS     cecc-client
-          DESTINATION .)
-else()
-  install(TARGETS     cecc-client
-          DESTINATION ${CMAKE_INSTALL_BINDIR})
-endif()
+# bin/ on every platform, as for cec-client
+install(TARGETS     cecc-client
+        DESTINATION ${CMAKE_INSTALL_BINDIR})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcec-libcec-8.1.3/src/libcec/CMakeLists.txt 
new/libcec-libcec-8.1.4/src/libcec/CMakeLists.txt
--- old/libcec-libcec-8.1.3/src/libcec/CMakeLists.txt   2026-07-31 
17:39:37.000000000 +0200
+++ new/libcec-libcec-8.1.4/src/libcec/CMakeLists.txt   2026-08-03 
19:46:07.000000000 +0200
@@ -213,11 +213,21 @@
 
 
 if(NOT DISABLE_STATIC)
+  # Windows names the DLL's import library cec.lib too, so a static library
+  # called cec overwrites it - in the build tree and again on install, with
+  # whichever target links last winning. Anything then linking the install tree
+  # gets unresolved __imp_libcec_* symbols, or silently links libCEC 
statically.
+  # Unix has no such clash: libcec.a next to libcec.so.
+  set(CEC_STATIC_NAME cec)
+  if(WIN32)
+    set(CEC_STATIC_NAME cec-static)
+  endif()
+
   add_library(cec-static STATIC $<TARGET_OBJECTS:libobj>)
   set_target_properties(cec-static PROPERTIES
       VERSION   
${LIBCEC_VERSION_MAJOR}.${LIBCEC_VERSION_MINOR}.${LIBCEC_VERSION_PATCH}
       SOVERSION ${LIBCEC_VERSION_MAJOR}
-      OUTPUT_NAME cec)
+      OUTPUT_NAME ${CEC_STATIC_NAME})
   target_link_libraries(cec-static ${cec_depends})
 endif()
 
@@ -248,10 +258,13 @@
   list(APPEND CEC_INSTALL_TARGETS cec-static)
 endif()
 
+# ARCHIVE is its own destination rather than LIB_DESTINATION: on Windows that 
is
+# bin/, which is where the .dll belongs but not the import library. Everywhere
+# else the two are the same value, so this only moves the Windows .lib.
 install(TARGETS ${CEC_INSTALL_TARGETS}
         EXPORT libcec
         RUNTIME DESTINATION ${LIB_DESTINATION}
-        ARCHIVE DESTINATION ${LIB_DESTINATION}
+        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
         LIBRARY DESTINATION ${LIB_DESTINATION})
 
 include(CMakePackageConfigHelpers)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libcec-libcec-8.1.3/src/libcec/cmake/CheckPlatformSupport.cmake 
new/libcec-libcec-8.1.4/src/libcec/cmake/CheckPlatformSupport.cmake
--- old/libcec-libcec-8.1.3/src/libcec/cmake/CheckPlatformSupport.cmake 
2026-07-31 17:39:37.000000000 +0200
+++ new/libcec-libcec-8.1.4/src/libcec/cmake/CheckPlatformSupport.cmake 
2026-08-03 19:46:07.000000000 +0200
@@ -40,7 +40,11 @@
 if(WIN32)
   # Windows
   add_definitions(-DTARGET_WINDOWS -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS 
-D_WINSOCKAPI_)
-  set(LIB_DESTINATION ".")
+  # cec.dll goes to bin/, matching the include/ and lib/cmake/libcec the rest 
of
+  # the install already uses. It used to land in the prefix root, which every
+  # consumer expecting the GNUInstallDirs layout had to patch around.
+  # GNUInstallDirs is included before this file, so this is "bin" by default.
+  set(LIB_DESTINATION "${CMAKE_INSTALL_BINDIR}")
 
   set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcec-libcec-8.1.3/src/nodejs/README.md 
new/libcec-libcec-8.1.4/src/nodejs/README.md
--- old/libcec-libcec-8.1.3/src/nodejs/README.md        2026-07-31 
17:39:37.000000000 +0200
+++ new/libcec-libcec-8.1.4/src/nodejs/README.md        2026-08-03 
19:46:07.000000000 +0200
@@ -38,7 +38,7 @@
 
 ```
 set LIBCEC_INCLUDE_DIR=..\..\include
-set LIBCEC_LIB_DIR=..\..\build\Release\x64
+set LIBCEC_LIB_DIR=..\..\build\Release\x64\lib
 npm install
 ```
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcec-libcec-8.1.3/windows/create-installer.py 
new/libcec-libcec-8.1.4/windows/create-installer.py
--- old/libcec-libcec-8.1.3/windows/create-installer.py 2026-07-31 
17:39:37.000000000 +0200
+++ new/libcec-libcec-8.1.4/windows/create-installer.py 2026-08-03 
19:46:07.000000000 +0200
@@ -268,7 +268,10 @@
 
     @property
     def libfile_name(self) -> str:
-        return 'cec.lib' if self.staticlib else 'cec.dll'
+        # the install tree follows GNUInstallDirs: cec.dll in bin/, the import
+        # library in lib/. The static library is cec-static.lib, so it cannot
+        # overwrite the DLL's import library of the same name.
+        return 'lib/cec-static.lib' if self.staticlib else 'bin/cec.dll'
 
     @property
     def libfile(self) -> PathBuilder:
@@ -415,9 +418,10 @@
         node = shutil.which('node')
         gyp = self.src_dir.add('node_modules/node-gyp/bin/node-gyp.js')
         # the addon includes libCEC's (flat) headers and links cec.lib; point 
it
-        # at the repo headers and this build's output dir
+        # at the repo headers and at this build's lib/, where the import 
library
+        # is (the DLL is in bin/, and node-gyp only needs the .lib to link)
         inc = self.config.repo_dir.add('include')
-        lib = self.libcec.builder.target_dir
+        lib = self.libcec.builder.target_dir.add('lib')
         gyp_arch = self._GYP_ARCH[self.config.architecture]
         cmd = 'cmd /c "' + \
             f'set "LIBCEC_INCLUDE_DIR={inc}" && set "LIBCEC_LIB_DIR={lib}" && 
' + \

Reply via email to