On 2025/02/11 22:00, Stuart Henderson wrote: > On 2025/02/11 21:25, Rafael Sadowski wrote: > > On Tue Feb 11, 2025 at 08:01:46PM +0100, Ingo Schwarze wrote: > > > Hello Rafael, > > > > > > Rafael Sadowski wrote on Tue, Feb 11, 2025 at 02:23:31PM +0100: > > > > > > > When I look at FreeBSD they have subpackages for -docs -man and -gui. > > > > I like it! > > > > > > I do not want to comment on cmake, but in general, manual pages ought to > > > be in the same package as the program they document, so a separate -man > > > package is almost always wrong. When "$ foo" works, then "$ man foo" > > > ought to work, too, without any further pkg_add(1). > > > > > > > I'm with you! > > > > It's only for the distributed ports build system. We can install > > cmake-man as run-dependency can't we? > > There would be no benefit in splitting out the manuals if the package > containing binaries had the manuals as a run dependency. (The main > problem is the chain of dependencies to build sphinx, including > python, numpy, lapack, and a bunch of others). > > It _could_ be handled with a split like this: > > pkgpath pkgname contents > devel/cmake/core cmake-core binaries, required cmake modules, etc > devel/cmake/man cmake-man manuals > devel/cmake/cmake cmake depends on cmake-core + cmake-man > > With this, a typical user installing cmake would "pkg_add cmake" > and get everything, whereas somebody just pulling it in as a ports > build dependency would get devel/cmake/core. > > Whether that's considered acceptable, I don't know. Personally I don't > think it's ideal, but it's not too awful, and avoiding sphinx as a build > dependency of the cmake binaries is very appealing (so far, we've been > able to break dependency loops, but the way Python packaging goes, I'm > not confident in that continuing forever..) > > The diff for that would look like the one below. (As an added bonus > it also makes it easier to grep for ports using cmake without the > module)
Any comments on this approach? Apart from reducing risk of build loops if things change around py-sphinx, it will mean that ports using cmake can start much earlier in a bulk build. > ...what I'd consider best overall for packagers would be if upstream > would include generated manpages in their distribution, but that means > there would be a difference between a "release" build and a build from > the source tree, which they might not like, and I suspect they don't > treat manpages as the most important part of their documentation... <snip complete diff>, here's just the diffstat instead, fetch it from https://marc.info/?l=openbsd-ports&m=173931122727645&q=mbox if you want it (it may have rotten by now - the diff for most ports is just s,devel/cmake,devel/cmake/core,) audio/ncspot/Makefile | 2 audio/spotify-player/Makefile | 2 cad/horizon-eda/Makefile | 2 comms/gammu/Makefile | 2 databases/recoll/Makefile | 2 devel/cmake/Makefile | 97 - devel/cmake/Makefile.inc | 46 devel/cmake/cmake.port.mk | 2 devel/cmake/cmake/Makefile | 17 devel/cmake/cmake/pkg/DESCR | 10 devel/cmake/cmake/pkg/PLIST | 1 devel/cmake/core/Makefile | 53 devel/cmake/core/pkg/DESCR-help | 1 devel/cmake/core/pkg/DESCR-main | 1 devel/cmake/core/pkg/PLIST-help | 2158 ++++++++++++++++++++++++++++++++++++++++ devel/cmake/core/pkg/PLIST-main | 1664 ++++++++++++++++++++++++++++++ devel/cmake/man/Makefile | 11 devel/cmake/man/pkg/DESCR | 1 devel/cmake/man/pkg/PLIST | 27 devel/keystone/python/Makefile | 2 devel/py-lief/Makefile | 2 devel/py-unicorn/Makefile | 2 games/0ad/base/Makefile | 2 geo/py-osmium/Makefile | 2 lang/deno/Makefile | 2 lang/mono/Makefile | 2 lang/rust/Makefile | 2 math/py-osqp/Makefile | 2 net/bro/Makefile | 2 net/unifi/snappy-java/Makefile | 2 textproc/hotdoc/Makefile | 2 wayland/wayfire/Makefile | 2 wayland/wf-config/Makefile | 4 33 files changed, 4016 insertions(+), 113 deletions(-)