Page MenuHomeFreeBSD

do not commit - bmake: add a package for bmake and share/mk
ClosedPublic

Authored by ivy on May 4 2025, 5:27 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Aug 24, 6:52 AM
Unknown Object (File)
Tue, Aug 19, 6:59 PM
Unknown Object (File)
Sun, Aug 17, 8:49 PM
Unknown Object (File)
Mon, Aug 4, 3:06 AM
Unknown Object (File)
Sat, Aug 2, 8:29 PM
Unknown Object (File)
Fri, Aug 1, 4:38 AM
Unknown Object (File)
Tue, Jul 29, 9:36 AM
Unknown Object (File)
Tue, Jul 29, 6:13 AM

Details

Summary

bmake along with /usr/share/mk seems to meet the criteria for being in
its own package: it's self-contained and the majority of users (who are
using binary packages) don't need to install it, so it doesn't belong in
FreeBSD-utilities. instead, put it in its own package.

add a dependency on the new package from:

  • sendmail (uses make to build its configuration)
  • NIS (uses make to build the database).

but not from examples, because while some of the examples do require
make, they are intended as examples rather than something to be used
directly.

my intent with this diff is to get consensus in favour of this change
from the pkgbase side, then upstream this and have the new upstream
bmake and the local changes (share/mk/Makefile, generate-ucl.sh)
committed at the same time.

so, this diff is not intended to be committed as-is.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 63873
Build 60757: arc lint + arc unit

Event Timeline

ivy requested review of this revision.May 4 2025, 5:27 PM

rebase after the package ucl shuffle

@sjg: if this looks reasonable to you, i'd very much like to land it before 15.0.

Note I would disagree that make isn't needed in a minimal install, I use make and makefiles for all sorts of use-cases that have nothing to do with building src/

contrib/bmake/bsd.after-import.mk
122

Put the PACKAGE setting in usr.bin/bmake/Makefile.inc rather than mess with this.

share/mk/Makefile
13

Wouldn't make be a better package name?

usr.bin/bmake/Makefile
13

again put this in Makefile.inc

share/mk/Makefile
13

i'm open to discusson on this but given the variety of makes that exist (bmake, dmake, gmake, pmake, ...) i think it's useful to be clear that this is bmake. perhaps one day we might want to import another make...

In D50149#1177176, @sjg wrote:

Note I would disagree that make isn't needed in a minimal install, I use make and makefiles for all sorts of use-cases that have nothing to do with building src/

but, with pkgbase, you can simply install it!

i think i phrased this as "the majority of users who are using binary packages don't need to install it", which i do believe is true, but people like us who use make for other things still have the option of installing the package - and it will be installed by default anyway (for people who use bsdinstall) like other packages.

ivy marked 2 inline comments as done.Jul 25 2025, 10:06 PM
ivy added inline comments.
contrib/bmake/bsd.after-import.mk
122

thanks. i think this means we don't need to touch any of the bmake contrib files, so i can rewrite the commit message and land this myself, which makes this a lot easier. (as long as you're okay with it, of course)

ivy marked an inline comment as done.

address review feedback

works for me, just one nit above

share/mk/Makefile
13

Fair point

usr.bin/bmake/Makefile.inc
6 ↗(On Diff #159158)

space after the = would be nice

This revision is now accepted and ready to land.Jul 25 2025, 10:20 PM

thanks for review! i added the missing space locally. i'll wait to see if anyone from pkgbase objects to this, otherwise i intend to land it tomorrow.

This revision was automatically updated to reflect the committed changes.