tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Streamlining pkgsrc patch management for recurring Darwin issues




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


--
George Georgalis, (415) 894-2710, http://www.galis.org/



Home | Main Index | Thread Index | Old Index