Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

darwin.locale: restore locale data #347817

Merged
merged 3 commits into from
Oct 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ mkAppleDerivation {

outputs = [
"out"
"locale"
"ps"
"man"
];
Expand Down Expand Up @@ -86,15 +85,9 @@ mkAppleDerivation {
(lib.mesonOption "sdk_version" (lib.getVersion apple-sdk))
];

postBuild = ''
# Build the locales TODO
'';

postInstall = ''
moveToOutput share/locale "$locale"
moveToOutput bin/ps "$ps"
ln -s "$ps/bin/ps" "$out/bin/ps"
mkdir -p "$locale/share/locale"
'';

meta = {
Expand Down
63 changes: 63 additions & 0 deletions pkgs/os-specific/darwin/apple-source-releases/locale/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
lib,
adv_cmds,
bmake,
fetchFromGitHub,
stdenvNoCC,
}:

stdenvNoCC.mkDerivation {
pname = "locale";
version = "118";

# This data is old, but it’s closer to what macOS has than FreeBSD. Trying to use the FreeBSD data
# results in test failures due to different behavior (e.g., with zh_CN and spaces in gnulib’s `trim` test).
# TODO(@reckenrode) Update locale data using https://cldr.unicode.org to match current macOS locale data.
src = fetchFromGitHub {
owner = "apple-oss-distributions";
repo = "adv_cmds";
rev = "adv_cmds-118";
hash = "sha256-KzaAlqXqfJW2s31qmA0D7qteaZY57Va2o86aZrwyR74=";
};

sourceRoot = "source/usr-share-locale.tproj";

postPatch = ''
# bmake expects `Makefile` not `BSDmakefile`.
find . -name Makefile -exec rm {} \; -exec ln -s BSDmakefile {} \;

# Update `Makefile`s to: get commands from `PATH`, and install to the correct location.
# Note: not every `Makefile` has `rsync` or the project name in it.
for subproject in colldef mklocale monetdef msgdef numericdef timedef; do
substituteInPlace "$subproject/BSDmakefile" \
--replace-warn "../../$subproject.tproj/" "" \
--replace-fail /usr/share/locale /share/locale \
--replace-fail '-o ''${BINOWN} -g ''${BINGRP}' "" \
--replace-warn "rsync -a" "cp -r"
done

# Update `bsdmake` references to `bmake`
substituteInPlace Makefile \
--replace-fail bsdmake bmake
'';

enableParallelBuilding = true;

nativeBuildInputs = [
adv_cmds
bmake
];

enableParallelInstalling = true;

installFlags = [ "DESTDIR=${placeholder "out"}" ];

meta = {
description = "Locale data for Darwin";
license = [
lib.licenses.apsl10
lib.licenses.apsl20
];
maintainers = lib.teams.darwin.members;
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ tag="macos-${sdkVersion//.}"

declare -A ignoredPackages=(
[libsbuf]=1
[locale]=1
[mkAppleDerivation]=1
[update-source-releases.sh]=1
[versions.json]=1
Expand Down
10 changes: 8 additions & 2 deletions pkgs/stdenv/darwin/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,7 @@ let
autoconf
automake
bison
bmake
brotli
cmake
cpio
Expand Down Expand Up @@ -289,9 +290,14 @@ let
;
};

darwinPackages = prevStage: { inherit (prevStage.darwin) locale sigtool; };
darwinPackages = prevStage: { inherit (prevStage.darwin) sigtool; };
darwinPackagesNoCC = prevStage: {
inherit (prevStage.darwin) binutils binutils-unwrapped libSystem;
inherit (prevStage.darwin)
binutils
binutils-unwrapped
libSystem
locale
;
};

# These packages are not allowed to be used in the Darwin bootstrap
Expand Down
2 changes: 1 addition & 1 deletion pkgs/top-level/darwin-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ impure-cmds // apple-source-packages // apple-source-headers // stubs // {
extraBuildInputs = [];
};

inherit (self.adv_cmds) locale ps;
inherit (self.adv_cmds) ps;

binutils-unwrapped = callPackage ../os-specific/darwin/binutils {
inherit (pkgs) cctools;
Expand Down