Index | Thread | Search

From:
Nam Nguyen <namn@messagemode2.com>
Subject:
update emulators/libchdr-1.0pl20250608
To:
ports@openbsd.org
Date:
Thu, 04 Sep 2025 18:10:27 -0700

Download raw body.

Thread
Here is a diff for emulators/libchdr to update to a newer commit on
20250608. It is needed for a emulators/flycast I am sending after.

This diff:
- adds a minor bump
- links with archivers/zstd instead of the newly bundled zstd

huffman.h has a function that now returns enum huffman_error instead of
void. But, this function seems to be mostly internal and is not used by
consumers emulators/libretro-pcsx-rearmed and emulators/flycast. This
does not necessitate a major bump. Whereas before the code in libchdr
ignored the return value, it now uses the return value.

--8<---------------cut here---------------start------------->8---
$ diff -u /usr/obj/pobj/libchdr-1.0pl{20230220,20250608}/fake-amd64/usr/local/include/libchdr/huffman.h
--- /usr/obj/pobj/libchdr-1.0pl20230220/fake-amd64/usr/local/include/libchdr/huffman.h  Mon Feb 20 06:24:40 2023
+++ /usr/obj/pobj/libchdr-1.0pl20250608/fake-amd64/usr/local/include/libchdr/huffman.h  Wed Dec 11 03:28:49 2024
@@ -85,6 +85,6 @@
 enum huffman_error huffman_assign_canonical_codes(struct huffman_decoder* decoder);
 enum huffman_error huffman_compute_tree_from_histo(struct huffman_decoder* decoder);
 
-void huffman_build_lookup_table(struct huffman_decoder* decoder);
+enum huffman_error huffman_build_lookup_table(struct huffman_decoder* decoder);
--8<---------------cut here---------------end--------------->8---

There are some new symbols so I propose a minor bump.

--8<---------------cut here---------------start------------->8---
  /usr/obj/pobj/libchdr-1.0pl20230220/fake-amd64/usr/local/lib/libchdr.so.1.0 --> /usr/obj/pobj/libchdr-1.0pl20250608/fake-amd64/usr/local/lib/libchdr.so.1.1
Dynamic export changes:
added:
        chd_read_header_core_file
        chd_read_header_file

External reference changes:
added:
        ZSTD_trace_decompress_begin
        ZSTD_trace_decompress_end
        calloc
        puts
--8<---------------cut here---------------end--------------->8---

I tested all consumers opening chd files in
emulators/libretro-pcsx-rearmed and emulators/flycast. I tested running
some zstd compressed chd files and it works, now that libchdr added zstd
support. chdman was used to compress some audio data using zstd when
creating the chd files.

I noticed that in retroarch for libretro-pcsx-rearmed, I had to use
desktop program mode, which was known before. Also, the input menu for
configuring controls was empty. My playstation 4 controller worked, but
there were messages of using a "fallback method" for the controller.

Feedback and tests are welcome. OK?

Index: Makefile
===================================================================
RCS file: /cvs/ports/emulators/libchdr/Makefile,v
diff -u -p -r1.5 Makefile
--- Makefile	17 Oct 2024 10:50:02 -0000	1.5
+++ Makefile	4 Sep 2025 09:56:16 -0000
@@ -2,27 +2,30 @@ BROKEN-aarch64 = looks for sys/auxv.h
 
 COMMENT =	library for reading MAME's CHDv1-v5 formats
 
-V =		1.0pl20230220
+V =		1.0pl20250608
 DISTNAME =	libchdr-$V
 
 GH_ACCOUNT =	rtissera
 GH_PROJECT =	libchdr
-GH_COMMIT =	fec8ab94212cc65d9d9a62cb3da924f5830c04b0
+GH_COMMIT =	cb077337d53392454e7100a0fd07139ca678e527
 
-SHARED_LIBS +=	chdr	1.0 # 0.1
+SHARED_LIBS +=	chdr	1.1 # 0.2
 
 CATEGORIES =	emulators devel games
 
 HOMEPAGE =	https://github.com/rtissera/libchdr
 
-CONFIGURE_ARGS +=	-DWITH_SYSTEM_ZLIB=ON
+LIB_DEPENDS =	archivers/zstd
+
+CONFIGURE_ARGS +=	-DWITH_SYSTEM_ZLIB=ON \
+			-DWITH_SYSTEM_ZSTD=ON
 
 # BSD 3-Clause
 # Public Domain (lzma)
 # zlib (zlib)
 PERMIT_PACKAGE =	Yes
 
-WANTLIB +=	z
+WANTLIB +=	z zstd
 
 MODULES =		devel/cmake
 
Index: distinfo
===================================================================
RCS file: /cvs/ports/emulators/libchdr/distinfo,v
diff -u -p -r1.2 distinfo
--- distinfo	26 Apr 2023 18:46:14 -0000	1.2
+++ distinfo	4 Sep 2025 09:56:16 -0000
@@ -1,2 +1,2 @@
-SHA256 (libchdr-1.0pl20230220-fec8ab94.tar.gz) = i4fxorIt44yfsWdRN8jxl0MQW4NzrYynDs8DpjngT88=
-SIZE (libchdr-1.0pl20230220-fec8ab94.tar.gz) = 1748513
+SHA256 (libchdr-1.0pl20250608-cb077337.tar.gz) = fGEvS4eSlb+C0NxIHAwFX8HM7v5Wtd6hsJSw3eCVI5I=
+SIZE (libchdr-1.0pl20250608-cb077337.tar.gz) = 4222519
Index: patches/patch-CMakeLists_txt
===================================================================
RCS file: /cvs/ports/emulators/libchdr/patches/patch-CMakeLists_txt,v
diff -u -p -r1.1.1.1 patch-CMakeLists_txt
--- patches/patch-CMakeLists_txt	25 Apr 2023 19:21:00 -0000	1.1.1.1
+++ patches/patch-CMakeLists_txt	4 Sep 2025 09:56:16 -0000
@@ -1,12 +1,18 @@
+link with archivers/zstd
+
 Index: CMakeLists.txt
 --- CMakeLists.txt.orig
 +++ CMakeLists.txt
-@@ -79,7 +79,7 @@ if (BUILD_SHARED_LIBS)
-   elseif(APPLE)
-     target_link_libraries(chdr PRIVATE -Wl,-dead_strip -Wl,-exported_symbol,_chd_*)
-   else()
--    target_link_libraries(chdr PRIVATE -Wl,--version-script ${CMAKE_CURRENT_SOURCE_DIR}/src/link.T -Wl,--no-undefined)
-+    target_link_libraries(chdr PRIVATE -Wl,--version-script ${CMAKE_CURRENT_SOURCE_DIR}/src/link.T)
-   endif()
+@@ -51,8 +51,10 @@ endif()
  
-   set_target_properties(chdr PROPERTIES C_VISIBILITY_PRESET hidden)
+ # zstd
+ if (WITH_SYSTEM_ZSTD)
+-  find_package(zstd REQUIRED)
+-  list(APPEND PLATFORM_LIBS zstd::libzstd_shared)
++  find_package(PkgConfig)
++  pkg_check_modules(ZSTD REQUIRED libzstd)
++  list(APPEND CHDR_INCLUDES ${ZSTD_INCLUDE_DIRS})
++  list(APPEND PLATFORM_LIBS ${ZSTD_LINK_LIBRARIES})
+ else()
+   option(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" OFF)
+   option(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" OFF)