Two more macOS-specific questions popped up right after I sent the email:
- What could go wrong if I upgrade to macOS 15.4 but mk.conf still says “OSX_VERSION= 15.3”?
- If I have to uninstall Xcode.app to save some disk space, how do I tell pkgsrc to use the command line developer tools as the toolchain?
I also have one more platform-independent question: is it normal for “./configure” to take a few minutes *for each package*? I feel like autoconf is spending an unnecessary amount of time checking the
build environment repeatedly, but the compiler version most likely won’t change between building two packages, so I wonder if it’s possible to have some caching.
Sorry for throwing so many questions at you, and thanks for reading!
Bests,
Qingyao
From:
sunqingyao19970825%icloud.com@localhost <sunqingyao19970825%icloud.com@localhost>
Date: Friday, February 7, 2025 at 10:48
To: Taylor R Campbell <riastradh%NetBSD.org@localhost>, Adam <adam%NetBSD.org@localhost>
Cc: pkgsrc-users%NetBSD.org@localhost <pkgsrc-users%NetBSD.org@localhost>, Qingyao Sun <qs234%cornell.edu@localhost>
Subject: Re: Installing neovim on macOS
Dear Adam and Taylor,
I can confirm that neovim-0.10.4 builds successfully on my machine. Thanks for the help! The additional information provided by both of you are also very helpful, and thanks Taylor for opening problem report
#59052. I’m keep an eye on it!
May I ask where I can read more about the “particularities” of pkgsrc on macOS? For example, does a macOS system upgrade always cause all packages to be re-built? What about an Xcode upgrade? How do environment
variables like OSX_VERSION, OSX_SDK_PATH, OSX_PATH_TO_M4, and OSX_PATH_TO_YACC affect the build process? Can I set “OSX_VERSION!= sw_vers –productVersion” to always target the current system version?
For bootstrapping we already have some nice document at “bootstrap/README.macOS”, but I feel like macOS users can also benefit from a platform-specific document explaining how it differs from NetBSD in terms
of building packages… or maybe it’s already documented somewhere?
Bests,
Qingyao
From:
Taylor R Campbell <riastradh%NetBSD.org@localhost>
Date: Friday, February 7, 2025 at 07:31
To: sunqingyao19970825%icloud.com@localhost <sunqingyao19970825%icloud.com@localhost>
Cc: Adam <adam%NetBSD.org@localhost>, pkgsrc-users%NetBSD.org@localhost <pkgsrc-users%NetBSD.org@localhost>, Qingyao Sun <qs234%cornell.edu@localhost>
Subject: Re: Installing neovim on macOS
It looks like Adam has likely resolved the problem by fixing the
lua-lpeg buildlink3.mk so it exposes lpeg.dylib on macOS (the file is
called lpeg.so on all other platforms -- and lpeg.so even exists on
macOS, but neovim _looks for_ only lpeg.dylib on macOS), but here are
some answers to other questions you had:
> Date: Fri, 7 Feb 2025 04:11:03 +0000
> From: "sunqingyao19970825%icloud.com@localhost" <sunqingyao19970825%icloud.com@localhost>
>
> Sorry for the late response. I have recently been upgraded to macOS
> 15.3 and pkgsrc decided to re-compile everything from scratch, which
> took 30 to 40 hours. For some reason, it only compiles with a single
> thread, even though I bootstrapped pkgsrc with "--make-jobs 4". Any
> advice on enabling multiple build jobs is appreciated!
That option only affects the bootstrap. For parallel builds in pkgsrc
after the bootstrap, you need to put MAKE_JOBS=4 in your
$PREFIX/etc/mk.conf file. (Or you can put it in the mk.conf-fragment
you pass to the bootstrap.)
This is confusing, and we should either make it work the way you
expected or make it more obvious why it doesn't, so I've filed a PR to
track this:
PR pkg/59052: bootstrap: --make-jobs should be passed into mk.conf
MAKE_JOBS
https://gnats.NetBSD.org/59052
> Finally, ident seems to be a NetBSD command which is not available on macOS
>
> $ ident devel/cmake/build.mk editors/neovim/Makefile devel/lua-lpeg/buildlink3.mk
> fish: Unknown command: ident
Sorry -- you can get the same result in this case with:
grep '[$]NetBSD:.*[$]' devel/cmake/build.mk editors/neovim/Makefile devel/lua-lpeg/buildlink3.mk
ident(1) is an RCS/CVS utility (which you can get from devel/rcs) to
select and print the RCS tags like `$NetBSD: ...$' in a file.
|