On Sun, 16 Jul 2023 18:34:16 +0200 Sebastian Ramacher <sramac...@debian.org> wrote:
> Source: dynarmic
> Version: 6.4.8+ds-2
> Severity: serious
>
> https://ci.debian.net/data/autopkgtest/testing/amd64/y/yuzu/35884387/log.gz
>
> 60s yuzu-cmd: symbol lookup error: yuzu-cmd: undefined symbol: _ZN8Dynarmic3A327Context4RegsEv

Hi Sebastian, thanks for your report. I've uploaded a new version with a possible fix on Mentors, you can find it at <https://mentors.debian.net/package/dynarmic/>. I've also attached a debdiff for your convenience.

Feel free to upload it to unstable if you find this solution reasonable. Since this is only a soname change, without any actual library change, I believe that uploading to experimental first is unnecessary.

If it doesn't look right to you, I'll be happy to hear your feedback :)

Thanks again!

--
OpenPGP key: 66DE F152 8299 0C21 99EF  A801 A8A1 28A8 AB1C EE49

diff -Nru dynarmic-6.4.8+ds/debian/changelog dynarmic-6.4.8+ds/debian/changelog
--- dynarmic-6.4.8+ds/debian/changelog	2023-07-05 22:03:58.000000000 +0200
+++ dynarmic-6.4.8+ds/debian/changelog	2023-07-20 19:13:04.000000000 +0200
@@ -1,3 +1,9 @@
+dynarmic (6.4.8+ds-3) unstable; urgency=medium
+
+  * d/{control,patches}: set soversion to major.minor (Closes: #1041270)
+
+ -- Andrea Pappacoda <and...@pappacoda.it>  Thu, 20 Jul 2023 19:13:04 +0200
+
 dynarmic (6.4.8+ds-2) unstable; urgency=medium
 
   * Upload to unstable
diff -Nru dynarmic-6.4.8+ds/debian/control dynarmic-6.4.8+ds/debian/control
--- dynarmic-6.4.8+ds/debian/control	2023-07-05 22:03:58.000000000 +0200
+++ dynarmic-6.4.8+ds/debian/control	2023-07-20 19:11:30.000000000 +0200
@@ -25,7 +25,7 @@
  In the pursuit of speed, some behavior not commonly depended upon is elided.
  Therefore this emulator does not match spec.
 
-Package: libdynarmic6
+Package: libdynarmic6.4
 Architecture: any-amd64 any-arm64
 Pre-Depends: ${misc:Pre-Depends}
 Depends: ${misc:Depends},
@@ -39,7 +39,7 @@
 Section: libdevel
 Architecture: any-amd64 any-arm64
 Depends: libboost-dev,
-         libdynarmic6 (= ${binary:Version}),
+         libdynarmic6.4 (= ${binary:Version}),
          llvm-dev,
          ${misc:Depends}
 Description: ${source:Synopsis} - development
diff -Nru dynarmic-6.4.8+ds/debian/libdynarmic6.4.install dynarmic-6.4.8+ds/debian/libdynarmic6.4.install
--- dynarmic-6.4.8+ds/debian/libdynarmic6.4.install	1970-01-01 01:00:00.000000000 +0100
+++ dynarmic-6.4.8+ds/debian/libdynarmic6.4.install	2023-07-20 19:11:30.000000000 +0200
@@ -0,0 +1 @@
+usr/lib/*/libdynarmic.so.6.4*
diff -Nru dynarmic-6.4.8+ds/debian/libdynarmic6.install dynarmic-6.4.8+ds/debian/libdynarmic6.install
--- dynarmic-6.4.8+ds/debian/libdynarmic6.install	2023-07-05 22:03:58.000000000 +0200
+++ dynarmic-6.4.8+ds/debian/libdynarmic6.install	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-usr/lib/*/libdynarmic.so.6*
diff -Nru dynarmic-6.4.8+ds/debian/patches/series dynarmic-6.4.8+ds/debian/patches/series
--- dynarmic-6.4.8+ds/debian/patches/series	2023-07-05 22:03:58.000000000 +0200
+++ dynarmic-6.4.8+ds/debian/patches/series	2023-07-20 19:04:31.000000000 +0200
@@ -1 +1,2 @@
 revert-catch2-v3.patch
+soname.patch
diff -Nru dynarmic-6.4.8+ds/debian/patches/soname.patch dynarmic-6.4.8+ds/debian/patches/soname.patch
--- dynarmic-6.4.8+ds/debian/patches/soname.patch	1970-01-01 01:00:00.000000000 +0100
+++ dynarmic-6.4.8+ds/debian/patches/soname.patch	2023-07-20 19:06:45.000000000 +0200
@@ -0,0 +1,28 @@
+Description: build: set SOVERSION to major.minor
+ Dynarmic uses semantic versioning, restricting backwards-incompatible
+ changes to major releases. This backwards compatibility, though, refers
+ to API changes, and disregards ABI stability. Since having to maintain a
+ compatible ABI between major releases is somewhat of a pain, and it
+ arguably doesn't matter that much for dynarmic, setting the SOVERSION to
+ major.minor allows for breaking ABI changes to be made between feature
+ releases, and not only major ones.
+ .
+ To be clear, this patch doesn't try to enforce a new policy, but just
+ reflects how the project has handled ABI changes in the past. That is,
+ these kind of changes have been made already.
+Author: Andrea Pappacoda <and...@pappacoda.it>
+Origin: upstream, https://github.com/merryhime/dynarmic/pull/758
+Bug-Debian: https://bugs.debian.org/1041270
+Last-Update: 2023-07-20
+
+--- dynarmic-6.4.8+ds.orig/src/dynarmic/CMakeLists.txt
++++ dynarmic-6.4.8+ds/src/dynarmic/CMakeLists.txt
+@@ -455,7 +455,7 @@ target_include_directories(dynarmic PUBL
+ )
+ set_target_properties(dynarmic PROPERTIES
+     VERSION ${dynarmic_VERSION}
+-    SOVERSION ${dynarmic_VERSION_MAJOR}
++    SOVERSION ${dynarmic_VERSION_MAJOR}.${dynarmic_VERSION_MINOR}
+ )
+ target_compile_options(dynarmic PRIVATE ${DYNARMIC_CXX_FLAGS})
+ target_link_libraries(dynarmic

Reply via email to