As a pkgsrc user on Darwin, I've encountered several recurring build issues across multiple packages. These issues often resurface in new tags after upstream revisions, even when previously addressed. I'm seeking guidance on efficient patch management and collaboration with package maintainers.
Common issues:
1. GNU syntax on BSD tools (e.g., '--' argument to ar)
2. Darwin dylib PLIST failures
3. <angled> includes vs "quotes"
4. Library not found errors
That is to say, the following have been fixed in at least one of the prior tags, but today they are broken again in Darwin pkg-2024Q3, due to the recurring pattern.
- graphics/graphviz # X Darwin dep: graphics/netpbm ld: library 'netpbm' not found, @mach-0 s/lib/dylib/?
- mail/neomutt # X Darwin dep: graphics/netpbm ld: library 'netpbm' not found, @mach-0 s/lib/dylib/?
- net/nmap # X Darwin dep: lang/gcc12 configure: error: gmp.h can't be found, or is unusable.
- misc/tailspin # X Darwin dep: lang/rust includes xz but cannot be found, nor the installed archivers/xz
- graphics/gnuplot # X Darwin dep: devel/gobject-introspection <header> vs "header"
- multimedia/ffmpeg6 # X Darwin dep: devel/gobject-introspection error: 'gitypes.h' file not found with <angled> include; use "quotes" instead
- multimedia/ffplay6 # X Darwin dep: devel/gobject-introspection error: 'gitypes.h' file not found with <angled> include; use "quotes" instead
- net/paris-traceroute # X Darwin, Server.cc:126:9: error: assigning to 'int' from incompatible type (how could this work anywhere?)
I've never successfully built tailspin or paris-traceroute on Darwin, but for all the others I have completed and installed the package, as the following binaries in old bootstrap prefixes show.
/opt/pkg-2022Q4/bin/dot
/opt/pkg-2022Q4/bin/ffmpeg5
/opt/pkg-2022Q4/bin/ffplay5
/opt/pkg-2022Q4/bin/nmap
/opt/pkg-2023Q3-sdk-14.2/bin/dot
/opt/pkg-2023Q3-sdk-14.2/bin/gnuplot
/opt/pkg-2023Q3-sdk-14.2/bin/neomutt
/opt/pkg-2023Q3-sdk-14.2/bin/nmap
/opt/pkg-2023Q4-sdk-14.2/bin/dot
/opt/pkg-2023Q4-sdk-14.2/bin/ffmpeg6
/opt/pkg-2023Q4-sdk-14.2/bin/ffplay6
/opt/pkg-2023Q4-sdk-14.2/bin/neomutt
/opt/pkg-2023Q4-sdk-14.2/bin/nmap
/opt/pkg-657a9f42-sdk-14.2/bin/ffmpeg6 (HEAD at 2023-12-13 22:22:48)
/opt/pkg-657a9f42-sdk-14.2/bin/ffplay6 (HEAD at 2023-12-13 22:22:48)
I just don't remember which patches were in tags vs manually fixed up locally, and I don't have them in anymore.
My request:
1. Documentation on best practices for resolving these recurring Darwin-specific issues
2. Guidance on whether to patch upstream src or pkgsrc 'package' data
3. Efficient methods for collaborating with package maintainers on patch uplift, best practice doc for patching the common problems
4. Identify best approach to resolve these more persistently
Typically I will reference
http://kflu.github.io/2021/07/19/2021-07-19-pkgsrc-survival-guide/ for tips, but I'm seeking a more streamlined approach to avoid reinventing the wheel each time. Especially since my patches are usually reimplemented (better) anyway. It's too easy to just use the old binaries, how can we better minimize redundant effort across release tags?
Thanks,
-George
--