2026-11-04T14:21:10+0000 Johannes Thyssen Tishman <[email protected]>:
> Please find below an update for devel/libdwarf to version 2.3.3.
> 
> This update is needed for a cpptrace[0] port I'm working on. However, it
> breaks the only consumer it has: devel/ctftools (last upstream commit 10
> years ago). I tried getting it to compile without success.
> 
> @jasper, as maintainer of libdwarf and developer of ctftools, how would
> you like to proceed? Are you still using ctftools?
> 
> Notes about this update:
> 1. Due to a change in the version format, the update fails to install
>    with a conflict. How do I handle this?
> 2. Use meson build system
> 3. Bump SHARED_LIBS due to dynamic export removals

Thanks bentley@ and sthen@. Below the updated diff. Yesterday I realized
that I forgot to check if devel/ctftools had any consumers. Luckily it
doesn't :)

Index: devel/libdwarf/Makefile
===================================================================
RCS file: /cvs/ports/devel/libdwarf/Makefile,v
diff -u -p -r1.9 Makefile
--- devel/libdwarf/Makefile     21 Sep 2023 09:49:57 -0000      1.9
+++ devel/libdwarf/Makefile     5 Nov 2026 09:42:31 -0000
@@ -2,12 +2,11 @@
 
 COMMENT=               library to access the DWARF debugging file format
 
-V=                     20161124
-REVISION=              0
+V=                     2.3.3
 DISTNAME=              libdwarf-${V}
-WRKDIST=               ${WRKDIR}/dwarf-${V}
+EPOCH=                 0
 
-SHARED_LIBS=           dwarf 1.1
+SHARED_LIBS=           dwarf 2.0
 
 CATEGORIES=            devel
 
@@ -18,25 +17,16 @@ MAINTAINER=         Jasper Lievisse Adriaanse <
 # GPLv2 - LGPLv2.1
 PERMIT_PACKAGE=        Yes
 
-WANTLIB += c elf>=2 z
+WANTLIB +=             c z zstd
 
 SITES=                 https://www.prevanders.net/
+EXTRACT_SUFX=          .tar.xz
 
-NO_TEST=               Yes
-
-CONFIGURE_STYLE=       gnu
-CONFIGURE_ARGS=                --enable-shared
+MODULES=               devel/meson \
+                       lang/python
 
-pre-configure:
-       ${SUBST_CMD} ${WRKSRC}/libdwarf/Makefile.in
+LIB_DEPENDS=           archivers/zstd
 
-do-install:
-       ${INSTALL_DATA_DIR} ${PREFIX}/include/libdwarf
-       ${INSTALL_DATA} ${WRKBUILD}/libdwarf/{,lib}dwarf.h \
-               ${PREFIX}/include/libdwarf/
-       ${INSTALL_DATA} 
${WRKBUILD}/libdwarf/libdwarf.{a,so.${LIBdwarf_VERSION}} \
-               ${PREFIX}/lib/
-       ${INSTALL_PROGRAM} ${WRKBUILD}/dwarfdump/dwarfdump \
-               ${PREFIX}/bin/
+NO_TEST=               Yes
 
 .include <bsd.port.mk>
Index: devel/libdwarf/distinfo
===================================================================
RCS file: /cvs/ports/devel/libdwarf/distinfo,v
diff -u -p -r1.3 distinfo
--- devel/libdwarf/distinfo     28 Feb 2017 21:40:03 -0000      1.3
+++ devel/libdwarf/distinfo     5 Nov 2026 09:42:31 -0000
@@ -1,2 +1,2 @@
-SHA256 (libdwarf-20161124.tar.gz) = 
vT1tx9oFCYdvuVuGgfFl/r2JiEXcZnFKpY5puP7KmI8=
-SIZE (libdwarf-20161124.tar.gz) = 1732155
+SHA256 (libdwarf-2.3.3.tar.xz) = veE9HEm+byRnMmpuCzkZJHRxRV0W7vw8a+JsfUuso2o=
+SIZE (libdwarf-2.3.3.tar.xz) = 3685784
Index: devel/libdwarf/patches/patch-libdwarf_Makefile_in
===================================================================
RCS file: devel/libdwarf/patches/patch-libdwarf_Makefile_in
diff -N devel/libdwarf/patches/patch-libdwarf_Makefile_in
--- devel/libdwarf/patches/patch-libdwarf_Makefile_in   11 Mar 2022 18:50:30 
-0000      1.4
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
---- libdwarf/Makefile.in.orig  Thu Nov 24 21:15:02 2016
-+++ libdwarf/Makefile.in       Mon Feb  6 14:08:02 2017
-@@ -55,7 +55,7 @@ dwfpic =        @dwfpic@
- dwfwall =       @dwfwall@
- dwfsanitize =   @dwfsanitize@
- dwfzlib =       @dwfzlib@
--SONAME =        libdwarf.so.1
-+SONAME =        libdwarf.so.${LIBdwarf_VERSION}
- CFLAGS =      $(PREINCS) @CPPFLAGS@ @CFLAGS@ $(INCLUDES) $(dwfpic) $(dwfwall) 
$(dwfsanitize)  $(POSTINCS)
- LDFLAGS =     $(PRELIBS) @LDFLAGS@ $(dwfsanitize) $(POSTLIBS) 
- HOSTCFLAGS =  $(CFLAGS)
Index: devel/libdwarf/patches/patch-libdwarf_configure
===================================================================
RCS file: devel/libdwarf/patches/patch-libdwarf_configure
diff -N devel/libdwarf/patches/patch-libdwarf_configure
--- devel/libdwarf/patches/patch-libdwarf_configure     11 Mar 2022 18:50:30 
-0000      1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,23 +0,0 @@
-Adjust configure tests to ensure HAVE_ELF64_RELA and HAVE_ELF64_SYM get
-defined.
-
---- libdwarf/configure.orig    Sat Oct  1 00:30:27 2016
-+++ libdwarf/configure Mon Feb  6 14:04:20 2017
-@@ -4246,7 +4246,7 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
--#include <elf.h>
-+#include <libelf.h>
- int
- main ()
- {
-@@ -4263,7 +4263,7 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
--#include <elf.h>
-+#include <libelf.h>
- int
- main ()
- {
Index: devel/libdwarf/patches/patch-libdwarf_dwarf_elf_access_c
===================================================================
RCS file: devel/libdwarf/patches/patch-libdwarf_dwarf_elf_access_c
diff -N devel/libdwarf/patches/patch-libdwarf_dwarf_elf_access_c
--- devel/libdwarf/patches/patch-libdwarf_dwarf_elf_access_c    11 Mar 2022 
18:50:30 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-Include reloc.h to resolve the R_ macros which are used in
-is_(32|64)bit_abs_reloc() to determine the relocation size.
-
---- libdwarf/dwarf_elf_access.c.orig   Wed Jun  8 17:28:34 2016
-+++ libdwarf/dwarf_elf_access.c        Fri Sep  9 14:11:44 2016
-@@ -41,6 +41,8 @@
- #include "dwarf_reloc_x86_64.h"
- #endif /* _WIN32 */
- 
-+#include <machine/reloc.h>
-+
- #ifdef HAVE_ELF_H
- #include <elf.h>
- #endif
Index: devel/libdwarf/patches/patch-libdwarf_pc_in
===================================================================
RCS file: devel/libdwarf/patches/patch-libdwarf_pc_in
diff -N devel/libdwarf/patches/patch-libdwarf_pc_in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ devel/libdwarf/patches/patch-libdwarf_pc_in 5 Nov 2026 09:42:31 -0000
@@ -0,0 +1,12 @@
+Index: libdwarf.pc.in
+--- libdwarf.pc.in.orig
++++ libdwarf.pc.in
+@@ -2,7 +2,7 @@ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ libdir=@libdir@
+ includedir=@includedir@
+-pkgincludedir=@includedir@/libdwarf-@VMAJ@
++pkgincludedir=@includedir@/libdwarf
+ 
+ Name: libdwarf
+ Description: DWARF debug symbols library
Index: devel/libdwarf/patches/patch-src_lib_libdwarf_meson_build
===================================================================
RCS file: devel/libdwarf/patches/patch-src_lib_libdwarf_meson_build
diff -N devel/libdwarf/patches/patch-src_lib_libdwarf_meson_build
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ devel/libdwarf/patches/patch-src_lib_libdwarf_meson_build   5 Nov 2026 
09:42:31 -0000
@@ -0,0 +1,10 @@
+Index: src/lib/libdwarf/meson.build
+--- src/lib/libdwarf/meson.build.orig
++++ src/lib/libdwarf/meson.build
+@@ -154,5 +154,5 @@ libdwarf = declare_dependency(
+ meson.override_dependency('libdwarf', libdwarf)
+ 
+ install_headers(libdwarf_header_src,
+-  install_dir : dir_pkginclude + '-' + v_maj
++  install_dir : dir_pkginclude
+ )
Index: devel/libdwarf/pkg/PLIST
===================================================================
RCS file: /cvs/ports/devel/libdwarf/pkg/PLIST,v
diff -u -p -r1.2 PLIST
--- devel/libdwarf/pkg/PLIST    11 Mar 2022 18:50:30 -0000      1.2
+++ devel/libdwarf/pkg/PLIST    5 Nov 2026 09:42:31 -0000
@@ -2,5 +2,8 @@
 include/libdwarf/
 include/libdwarf/dwarf.h
 include/libdwarf/libdwarf.h
-lib/libdwarf.a
 @lib lib/libdwarf.so.${LIBdwarf_VERSION}
+lib/pkgconfig/libdwarf.pc
+@man man/man1/dwarfdump.1
+share/dwarfdump/
+share/dwarfdump/dwarfdump.conf

Reply via email to