| 22 Oct 2025 |
emily | because what gets passed as finalAttrs could depend on the stdenv in theory | 00:55:29 |
emily | it only affects a single package so I decided it wasn't worth messing with (I'd rather move mkAppleDerivation over to use hooks etc. instead) | 00:56:07 |
emily | (but the stdenv is only determined by finalAttrs.noCC/finalAttrs.noBootstrap) | 00:56:20 |
emily | unifdef already requires stdenv anyway, so darwin.AvailabilityVersions is not really helped by avoiding it, it'd mostly matter for cross scenarios I suppose | 00:57:57 |
Randy Eckenrode | Overall, it seems fine. What did you have in mind about hooks and helper functions? The point of mkAppleDerivation is to minimize boilerplate in the source release derivations. The Xcode version check is already a hook. The Meson stuff can’t be a hook. It’s horrible, but I would like to work towards using Swift Build with a private SDK to build the source releases instead of using Meson. | 01:15:19 |
Randy Eckenrode | * Overall, it seems fine. What did you have in mind about hooks and helper functions? The point of mkAppleDerivation is to minimize boilerplate in the source release derivations. The Xcode version check is already a hook. The Meson stuff can’t be a hook. It’s horrible, but I would like to work towards using Swift Build with an internal SDK to build the source releases instead of using Meson. | 01:15:31 |
Randy Eckenrode | I considered adding dtrace, cherry-picking from the PR, but I didn’t want to sink a lot more time into the update. | 01:16:42 |
emily | the Meson stuff could be a hook other than the magic filename lookup stuff, which is a bit evil anyway IMO (and IIRC caused issues with the DTrace PR?), but I agree that Swift Build would be nice. src could be set with a helper function and meta could be inherited | 01:19:01 |
emily | but the reason to switch to lib.extendMkDerivation is that it makes .overrideAttrs etc. actually work properly | 01:19:54 |
emily | and avoids the results having a somewhat dodgy .override (albeit one that is clobbered by callPackage in practice) | 01:20:21 |
Randy Eckenrode | The magic filename stuff is largely the point of the Meson stuff. It’s to reduce the boilerplate of copying in the files and setting the version/etc. With Swift Build, we don’t need that stuff at all. You could just use swiftBuildHook (or whatever it gets called) and the internal SDK. | 01:20:31 |
Randy Eckenrode | Inheriting meta seems worse. You would end up with every derivation copying and pasting meta = { description = "blah"; inherit (standardMeta) etc etc etc; }. | 01:21:36 |
emily | it could be done with (magicMesonHook ./.) or similar though | 01:22:39 |
Randy Eckenrode | True. | 01:23:03 |
Randy Eckenrode | Would that make Darwin’s having the only two hooks that take arguments? | 01:23:20 |
emily | I've been working on proper support for scopes etc. for by-name | 01:23:25 |
emily | so the magic filename stuff probably can't last forever anyway :) | 01:23:35 |
emily | though ideally we just get Swift Build working and don't have to maintain our own build systems for it all any more | 01:23:55 |
debtquity | seems some applications that rely on gtk are breaking on unstable | 01:23:56 |
Randy Eckenrode | What do you mean by scopes for by-name? Like there would be a pkgs/python/by-name? | 01:23:59 |
emily | which would also cut down on the boilerplaet a lot | 01:24:08 |
emily | * which would also cut down on the boilerplate a lot | 01:24:11 |
Randy Eckenrode | I wish the by-name infrastructure were exposed as a function. | 01:24:27 |
emily | that's already possible-ish (tclPackages moved to by-name and there's a draft for Python), what isn't possible is scopes that are inside pkgs/by-name itself | 01:24:42 |
| * Randy Eckenrode goes to look at the implementation. | 01:26:52 |
Randy Eckenrode | It’s importing by-name-overlay.nix. | 01:27:24 |
emily | that will probably end up abstracted away in the process yeah | 01:27:39 |
emily | (although in practice it is just going to be the automatic path for scopes rather than something you have to think about) | 01:28:02 |
Randy Eckenrode | Which is different from lib.packagesFromDirectoryRecursive. | 01:28:06 |
Randy Eckenrode | I want to move Darwin to the by-name-overlay for 25.11. | 01:28:32 |