|
|
Log in / Subscribe / Register

Courtès: What's in a package

Courtès: What's in a package

Posted Sep 23, 2021 13:05 UTC (Thu) by mathstuf (subscriber, #69389)
In reply to: Courtès: What's in a package by swilmet
Parent article: Courtès: What's in a package

The main project(s) I work on do vendor some dependencies, but I try to make sure that they at least behave well. This includes:

- options to use external copies;
- mangling symbols to avoid conflicts when co-existing with the "real" thing in a process;
- mangling library names to avoid runtime loader problems; and
- moving headers to a subdirectory to avoid conflicting with a "real" install.

Of course, there are some that we have patched for our own purposes (with upstreamed PRs, usually merged depending on upstream activity levels) and there's no public version that is viable yet.

I don't like doing it because it's a huge PITA, but when Windows and macOS are target platforms and you depend on lots of external libraries (no, Homebrew and MacPorts are not suitable in the general case for macOS), shipping copies is way *less* work than walking users through how to build with their pet copies (of which there's usually poor uniformity) and the `PATH` shenanigans that usually end up being required.


to post comments

Courtès: What's in a package

Posted Sep 24, 2021 4:10 UTC (Fri) by pabs (subscriber, #43278) [Link] (1 responses)

For Windows/macOS, wouldn't just shipping the copies in the binary packages be enough? I wouldn't have thought having copies in the source repo would be needed. I believe there are package managers for Windows/macOS too, you could just direct users to installing via those.

Courtès: What's in a package

Posted Sep 24, 2021 11:51 UTC (Fri) by swilmet (guest, #98424) [Link]

With my limited experience with the MS Store, yes for Windows you prepare your package the way you want, installing dependencies separately (the version that works best), either with dynamic linking or static linking. No need to copy the source code in the main git repo (in that case).


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds