| 17 Oct 2022 |
hexa | John Ericson: nix since 2.4 supports building for given x86_64 abi levels, but nixpkgs doesn't allow that | 13:40:05 |
hexa | ❯ nom-build -A hello --option system x86_64-v3-linux
error: Target specification with 3 components is ambiguous
⚠︎ Exited with 1 errors reported by nix at 15:38:23 after 0s
| 13:40:12 |
hexa | ❯ nix -vv --version
nix (Nix) 2.11.0
System type: x86_64-linux
Additional system types: i686-linux, x86_64-v1-linux, x86_64-v2-linux, x86_64-v3-linux
| 13:40:29 |
hexa | * ❯ nix -vv --version
nix (Nix) 2.11.0
System type: x86_64-linux
Additional system types: i686-linux, x86_64-v1-linux, x86_64-v2-linux, x86_64-v3-linux
[...]
| 13:40:35 |
hexa | The error comes from here:
8c99aab lib/systems/parse.nix John Ericson 2017-02-09 16:09 -0500 442│ else throw "Target specification with 3 components is ambiguous";
| 13:41:02 |
hexa | can you look into supporting that? | 13:41:29 |
hexa | the rationale would be to flag certain packages with an abi level requirement, so build time does not get wasted | 13:43:19 |
hexa | that applies mostly to the ML sector, where builds and tests are often quite costly | 13:43:36 |
hexa | * ❯ nom-build -A hello --option system x86_64-v3-linux
error: Target specification with 3 components is ambiguous
⚠︎ Exited with 1 errors reported by nix at 15:38:23 after 0s
via https://github.com/NixOS/nix/pull/4551
| 13:44:04 |
| 22 Oct 2022 |
sterni | hexa: FWIW x86_64-v1-linux etc. tuples are bogus, neither LLVM nor autotools accept those and it's quite understandable since they cause a huge nightmare when parsing | 19:55:29 |
sterni | When using autoconf it'll just be interpreted as a vendor and not do anything useful: | 19:56:23 |
hexa | well, not sure what the point of having them in nix is 😄 | 19:56:26 |
sterni | * When using autoconf it'll just be interpreted as a vendor and not do anything useful:
./result/config.sub x86_64-v2-linux
x86_64-v2-linux-gnu
| 19:56:30 |
hexa | saw the change and was wondering why we didn't support it in nixpkgs | 19:56:59 |
sterni | I guess it saves you from having to create tags for these manually, but seems like a bad idea having malformed tuples in Nix proper | 19:59:58 |
sterni | autoconf wants you to use feature macros: https://www.gnu.org/software/autoconf-archive/ax_check_x86_features.html | 20:00:11 |
sterni | LLVM seems to rely on -march= for determining this (even though they have a “sub arch type” concept used for armv6 vs. armv7 for example, it is not used for this) | 20:02:21 |
sterni | * LLVM seems to rely on -march= for setting microarchitecture levels (even though they have a “sub arch type” concept used for armv6 vs. armv7 for example, it is not used for this) | 20:02:31 |
trofi | gcc also uses -march= for it: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=324bec558e95584e8c1997575ae9d75978af59f1 | 20:23:13 |
sterni | https://github.com/NixOS/nix/pull/4551#issuecomment-1287905912 | 20:27:41 |
| 31 Oct 2022 |
| underpantsgnome changed their display name from underpantsgnome! to underpantsgnome. | 20:20:18 |
| 1 Nov 2022 |
| emilytrau joined the room. | 21:44:42 |
| 6 Nov 2022 |
Artturin | why is there no overrideScope' in makeScopeWithSplicing | 19:50:05 |
Artturin | is it simply not necessary? | 19:50:09 |
Artturin | John Ericson: | 19:50:12 |
Artturin | nix-repl> pkgsCross.aarch64-multiplatform.xorg.bdftopcf.buildInputs
[ «derivation /nix/store/8kia89y56gb7k9067bnvsj9hykv5khn6-xorgproto-aarch64-unknown-linux-gnu-2021.5.drv» ]
nix-repl> pkgsCross.aarch64-multiplatform.xorg.fontadobe100dpi.nativeBuildInputs
[ «derivation /nix/store/qpmjw2z72k8v9gr3g666sdprijdkd7ph-aarch64-unknown-linux-gnu-pkg-config-wrapper-0.29.2.drv» «derivation /nix/store/v693fcdcm0l079gab0ydj1nbbzwwsh69-bdftopcf-1.1.drv» «derivation /nix/store/zx83mdy38aakawdgggarviy1iq4c966c-font-util-1.3.1.drv» «derivation /nix/store/d8iivbm0nplwbs21lkkap6i7gwvphkd7-mkfontscale-1.2.1.drv» ]
nix-repl> pkgsCross.aarch64-multiplatform.xorg.bdftopcf
«derivation /nix/store/i96yh02dmswiqiadrlig548a2zplx7z5-bdftopcf-aarch64-unknown-linux-gnu-1.1.drv»
nix-repl> pkgsCross.aarch64-multiplatform.buildPackages.xorg.bdftopcf
«derivation /nix/store/v693fcdcm0l079gab0ydj1nbbzwwsh69-bdftopcf-1.1.drv»
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 2449ca6c245..de50dbe1c7b 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -1,7 +1,33 @@
# THIS IS A GENERATED FILE. DO NOT EDIT!
-{ lib, newScope, pixman }:
-
-lib.makeScope newScope (self: with self; {
+{ lib, pixman
+, splicePackages
+, newScope
+, pkgsBuildBuild
+, pkgsBuildHost
+, pkgsBuildTarget
+, pkgsHostHost
+, pkgsTargetTarget
+}:
+
+let
+ otherSplices = {
+ selfBuildBuild = pkgsBuildBuild.xorg;
+ selfBuildHost = pkgsBuildHost.xorg;
+ selfBuildTarget = pkgsBuildTarget.xorg;
+ selfHostHost = pkgsHostHost.xorg;
+ selfTargetTarget = pkgsTargetTarget.xorg or { };
+ };
+ keep = _self: { };
+ extra = _spliced0: { };
+
+in
+lib.makeScopeWithSplicing
+ splicePackages
+ newScope
+ otherSplices
+ keep
+ extra
+ (self: with self; let inherit (self) callPackage; in{
inherit pixman;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 9456fdfe648..c55f6f77fa5 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -24552,7 +24552,7 @@ with pkgs;
# so as not to have the newly bound xorg items already in scope, which would
# have created a cycle.
xorg = recurseIntoAttrs ((lib.callPackageWith __splicedPackages ../servers/x11/xorg {
- }).overrideScope' (lib.callPackageWith __splicedPackages ../servers/x11/xorg/overrides.nix {
+ }).overrideScope (lib.callPackageWith __splicedPackages ../servers/x11/xorg/overrides.nix {
inherit (darwin.apple_sdk.frameworks) ApplicationServices Carbon Cocoa;
inherit (darwin.apple_sdk.libs) Xplugin;
inherit (buildPackages.darwin) bootstrap_cmds;
| 19:50:48 |
Artturin | in overrides.nix
bdftopcf = super.bdftopcf.overrideAttrs (attrs: {
buildInputs = attrs.buildInputs ++ [ self.xorgproto ];
});
| 19:51:08 |
Artturin | and then in default.nix
fontadobe100dpi = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale }: stdenv.mkDerivation {
| 19:51:22 |
Artturin | appears to be working | 19:59:51 |
Artturin | because nix-eval-jobs --flake ".#legacyPackages.x86_64-linux.xorg" 2>/dev/null --impure | jq '.drvPath | select(. != null)' | xargs nix build --keep-going builds succesfully | 20:52:30 |