Compare commits

..

No commits in common. "rawhide" and "epel8" have entirely different histories.

23 changed files with 2 additions and 1258 deletions

View file

@ -1 +0,0 @@
1

1
.gitignore vendored
View file

@ -1 +0,0 @@
/nix-2.31.2.tar.gz

View file

@ -1,218 +0,0 @@
From dd1a554aba720c5f23a529ddc32f1c7127b62af9 Mon Sep 17 00:00:00 2001
From: Jens Petersen <petersen@redhat.com>
Date: Mon, 15 Sep 2025 14:38:08 +0800
Subject: [PATCH] meson: add soversion with nix version to give SONAME to libs
(#13960, #13979)
remove 'pre' version suffix for non-releases (chokes Darwin ld)
---
src/libcmd/meson.build | 1 +
src/libexpr-c/meson.build | 1 +
src/libexpr-test-support/meson.build | 1 +
src/libexpr/meson.build | 1 +
src/libfetchers-c/meson.build | 1 +
src/libfetchers/meson.build | 1 +
src/libflake-c/meson.build | 1 +
src/libflake/meson.build | 1 +
src/libmain-c/meson.build | 1 +
src/libmain/meson.build | 1 +
src/libstore-c/meson.build | 1 +
src/libstore-test-support/meson.build | 1 +
src/libstore/meson.build | 1 +
src/libutil-c/meson.build | 1 +
src/libutil-test-support/meson.build | 1 +
src/libutil/meson.build | 1 +
16 files changed, 16 insertions(+)
diff --git a/src/libcmd/meson.build b/src/libcmd/meson.build
index 24e0752462c..b259182c266 100644
--- a/src/libcmd/meson.build
+++ b/src/libcmd/meson.build
@@ -95,6 +95,7 @@ this_library = library(
'nixcmd',
sources,
config_priv_h,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libexpr-c/meson.build b/src/libexpr-c/meson.build
index 7c014d61d37..95c2c8ac92c 100644
--- a/src/libexpr-c/meson.build
+++ b/src/libexpr-c/meson.build
@@ -50,6 +50,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixexprc',
sources,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libexpr-test-support/meson.build b/src/libexpr-test-support/meson.build
index d762eb85e32..1d874320a51 100644
--- a/src/libexpr-test-support/meson.build
+++ b/src/libexpr-test-support/meson.build
@@ -44,6 +44,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nix-expr-test-support',
sources,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
# TODO: Remove `-lrapidcheck` when https://github.com/emil-e/rapidcheck/pull/326
diff --git a/src/libexpr/meson.build b/src/libexpr/meson.build
index 40d3f390b4b..dc43a97420d 100644
--- a/src/libexpr/meson.build
+++ b/src/libexpr/meson.build
@@ -181,6 +181,7 @@ this_library = library(
parser_tab,
lexer_tab,
generated_headers,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libfetchers-c/meson.build b/src/libfetchers-c/meson.build
index 8542744b4da..a381c792af9 100644
--- a/src/libfetchers-c/meson.build
+++ b/src/libfetchers-c/meson.build
@@ -53,6 +53,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixfetchersc',
sources,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libfetchers/meson.build b/src/libfetchers/meson.build
index 922a2c49199..e5f5bd19210 100644
--- a/src/libfetchers/meson.build
+++ b/src/libfetchers/meson.build
@@ -61,6 +61,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixfetchers',
sources,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libflake-c/meson.build b/src/libflake-c/meson.build
index 933e06d9037..83729178693 100644
--- a/src/libflake-c/meson.build
+++ b/src/libflake-c/meson.build
@@ -53,6 +53,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixflakec',
sources,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libflake/meson.build b/src/libflake/meson.build
index 191d8f0680c..a962258e723 100644
--- a/src/libflake/meson.build
+++ b/src/libflake/meson.build
@@ -58,6 +58,7 @@ this_library = library(
'nixflake',
sources,
generated_headers,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libmain-c/meson.build b/src/libmain-c/meson.build
index 9e26ad8adf3..61ec4d54b53 100644
--- a/src/libmain-c/meson.build
+++ b/src/libmain-c/meson.build
@@ -45,6 +45,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixmainc',
sources,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libmain/meson.build b/src/libmain/meson.build
index 4a90d2d83b6..d465dd6a40f 100644
--- a/src/libmain/meson.build
+++ b/src/libmain/meson.build
@@ -77,6 +77,7 @@ this_library = library(
'nixmain',
sources,
config_priv_h,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libstore-c/meson.build b/src/libstore-c/meson.build
index f8eaef80395..b73822b0cb7 100644
--- a/src/libstore-c/meson.build
+++ b/src/libstore-c/meson.build
@@ -46,6 +46,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixstorec',
sources,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libstore-test-support/meson.build b/src/libstore-test-support/meson.build
index b2977941f86..90fef8489ad 100644
--- a/src/libstore-test-support/meson.build
+++ b/src/libstore-test-support/meson.build
@@ -44,6 +44,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nix-store-test-support',
sources,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
# TODO: Remove `-lrapidcheck` when https://github.com/emil-e/rapidcheck/pull/326
diff --git a/src/libstore/meson.build b/src/libstore/meson.build
index 7aeacbab79b..95dcf08bd0d 100644
--- a/src/libstore/meson.build
+++ b/src/libstore/meson.build
@@ -363,6 +363,7 @@ this_library = library(
generated_headers,
sources,
config_priv_h,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libutil-c/meson.build b/src/libutil-c/meson.build
index 8131c517cd8..b214266a13a 100644
--- a/src/libutil-c/meson.build
+++ b/src/libutil-c/meson.build
@@ -53,6 +53,7 @@ this_library = library(
'nixutilc',
sources,
config_priv_h,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libutil-test-support/meson.build b/src/libutil-test-support/meson.build
index 910f1d88164..da2b443ec54 100644
--- a/src/libutil-test-support/meson.build
+++ b/src/libutil-test-support/meson.build
@@ -41,6 +41,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nix-util-test-support',
sources,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
# TODO: Remove `-lrapidcheck` when https://github.com/emil-e/rapidcheck/pull/326
diff --git a/src/libutil/meson.build b/src/libutil/meson.build
index cdffc892ae7..ff8b042c7ec 100644
--- a/src/libutil/meson.build
+++ b/src/libutil/meson.build
@@ -197,6 +197,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixutil',
sources,
+ soversion : meson.project_version().replace('pre', ''),
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,

View file

@ -1,246 +0,0 @@
From 86bb7c958a4ed46411da74a4498581a0cdc454a0 Mon Sep 17 00:00:00 2001
From: Jens Petersen <petersen@redhat.com>
Date: Tue, 16 Sep 2025 12:54:30 +0800
Subject: [PATCH] meson: refactor nix_soversion into
nix-meson-build-support/common
This is a follow-on to #13995 which added soversion to the libraries
---
nix-meson-build-support/common/meson.build | 3 +++
src/libcmd/meson.build | 2 +-
src/libexpr-c/meson.build | 2 +-
src/libexpr-test-support/meson.build | 2 +-
src/libexpr/meson.build | 2 +-
src/libfetchers-c/meson.build | 2 +-
src/libfetchers/meson.build | 2 +-
src/libflake-c/meson.build | 2 +-
src/libflake/meson.build | 2 +-
src/libmain-c/meson.build | 2 +-
src/libmain/meson.build | 2 +-
src/libstore-c/meson.build | 2 +-
src/libstore-test-support/meson.build | 2 +-
src/libstore/meson.build | 2 +-
src/libutil-c/meson.build | 2 +-
src/libutil-test-support/meson.build | 2 +-
src/libutil/meson.build | 2 +-
17 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/nix-meson-build-support/common/meson.build b/nix-meson-build-support/common/meson.build
index fd686f1407f..5a29ff61d94 100644
--- a/nix-meson-build-support/common/meson.build
+++ b/nix-meson-build-support/common/meson.build
@@ -40,3 +40,6 @@ if cxx.get_id() == 'clang' and ('address' in get_option('b_sanitize') or 'undefi
))
add_project_link_arguments('-shared-libasan', language : 'cpp')
endif
+
+# Darwin ld doesn't like "X.Y.Zpre"
+nix_soversion = meson.project_version().strip('pre')
diff --git a/src/libcmd/meson.build b/src/libcmd/meson.build
index b259182c266..f553afa0ba1 100644
--- a/src/libcmd/meson.build
+++ b/src/libcmd/meson.build
@@ -95,7 +95,7 @@ this_library = library(
'nixcmd',
sources,
config_priv_h,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libexpr-c/meson.build b/src/libexpr-c/meson.build
index 95c2c8ac92c..c47704ce411 100644
--- a/src/libexpr-c/meson.build
+++ b/src/libexpr-c/meson.build
@@ -50,7 +50,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixexprc',
sources,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libexpr-test-support/meson.build b/src/libexpr-test-support/meson.build
index 1d874320a51..df28661b7e7 100644
--- a/src/libexpr-test-support/meson.build
+++ b/src/libexpr-test-support/meson.build
@@ -44,7 +44,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nix-expr-test-support',
sources,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
# TODO: Remove `-lrapidcheck` when https://github.com/emil-e/rapidcheck/pull/326
diff --git a/src/libexpr/meson.build b/src/libexpr/meson.build
index dc43a97420d..55a36c1bd58 100644
--- a/src/libexpr/meson.build
+++ b/src/libexpr/meson.build
@@ -181,7 +181,7 @@ this_library = library(
parser_tab,
lexer_tab,
generated_headers,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libfetchers-c/meson.build b/src/libfetchers-c/meson.build
index a381c792af9..db415d9173e 100644
--- a/src/libfetchers-c/meson.build
+++ b/src/libfetchers-c/meson.build
@@ -53,7 +53,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixfetchersc',
sources,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libfetchers/meson.build b/src/libfetchers/meson.build
index e5f5bd19210..792a0fdbf41 100644
--- a/src/libfetchers/meson.build
+++ b/src/libfetchers/meson.build
@@ -61,7 +61,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixfetchers',
sources,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libflake-c/meson.build b/src/libflake-c/meson.build
index 83729178693..fddb39bdf96 100644
--- a/src/libflake-c/meson.build
+++ b/src/libflake-c/meson.build
@@ -53,7 +53,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixflakec',
sources,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libflake/meson.build b/src/libflake/meson.build
index a962258e723..58916ecd9ab 100644
--- a/src/libflake/meson.build
+++ b/src/libflake/meson.build
@@ -58,7 +58,7 @@ this_library = library(
'nixflake',
sources,
generated_headers,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libmain-c/meson.build b/src/libmain-c/meson.build
index 61ec4d54b53..36332fdb70a 100644
--- a/src/libmain-c/meson.build
+++ b/src/libmain-c/meson.build
@@ -45,7 +45,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixmainc',
sources,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libmain/meson.build b/src/libmain/meson.build
index d465dd6a40f..2ac59924e59 100644
--- a/src/libmain/meson.build
+++ b/src/libmain/meson.build
@@ -77,7 +77,7 @@ this_library = library(
'nixmain',
sources,
config_priv_h,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libstore-c/meson.build b/src/libstore-c/meson.build
index b73822b0cb7..c6b6174c775 100644
--- a/src/libstore-c/meson.build
+++ b/src/libstore-c/meson.build
@@ -46,7 +46,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixstorec',
sources,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libstore-test-support/meson.build b/src/libstore-test-support/meson.build
index 90fef8489ad..5873680eae2 100644
--- a/src/libstore-test-support/meson.build
+++ b/src/libstore-test-support/meson.build
@@ -44,7 +44,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nix-store-test-support',
sources,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
# TODO: Remove `-lrapidcheck` when https://github.com/emil-e/rapidcheck/pull/326
diff --git a/src/libstore/meson.build b/src/libstore/meson.build
index 95dcf08bd0d..556616181ae 100644
--- a/src/libstore/meson.build
+++ b/src/libstore/meson.build
@@ -363,7 +363,7 @@ this_library = library(
generated_headers,
sources,
config_priv_h,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libutil-c/meson.build b/src/libutil-c/meson.build
index b214266a13a..1806dbb6f9a 100644
--- a/src/libutil-c/meson.build
+++ b/src/libutil-c/meson.build
@@ -53,7 +53,7 @@ this_library = library(
'nixutilc',
sources,
config_priv_h,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,
diff --git a/src/libutil-test-support/meson.build b/src/libutil-test-support/meson.build
index da2b443ec54..64231107eb6 100644
--- a/src/libutil-test-support/meson.build
+++ b/src/libutil-test-support/meson.build
@@ -41,7 +41,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nix-util-test-support',
sources,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
# TODO: Remove `-lrapidcheck` when https://github.com/emil-e/rapidcheck/pull/326
diff --git a/src/libutil/meson.build b/src/libutil/meson.build
index ff8b042c7ec..f4b8dbb613b 100644
--- a/src/libutil/meson.build
+++ b/src/libutil/meson.build
@@ -197,7 +197,7 @@ subdir('nix-meson-build-support/windows-version')
this_library = library(
'nixutil',
sources,
- soversion : meson.project_version().replace('pre', ''),
+ soversion : nix_soversion,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
link_args : linker_export_flags,

View file

@ -1,23 +0,0 @@
From ca23c819e0492272a695f3f87467a05c152ac77d Mon Sep 17 00:00:00 2001
From: Jens Petersen <petersen@redhat.com>
Date: Tue, 16 Sep 2025 18:31:40 +0800
Subject: [PATCH] nix-meson-build-support/common nix_soversion: fixup removal
of 'pre'
.strip() removes individual chars whereas .replace() affects whole substring
Thanks @keszybz
---
nix-meson-build-support/common/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/nix-meson-build-support/common/meson.build b/nix-meson-build-support/common/meson.build
index 5a29ff61d94..a46715193c6 100644
--- a/nix-meson-build-support/common/meson.build
+++ b/nix-meson-build-support/common/meson.build
@@ -42,4 +42,4 @@ if cxx.get_id() == 'clang' and ('address' in get_option('b_sanitize') or 'undefi
endif
# Darwin ld doesn't like "X.Y.Zpre"
-nix_soversion = meson.project_version().strip('pre')
+nix_soversion = meson.project_version().replace('pre', '')

View file

@ -1,24 +0,0 @@
From 7dbfe9f5761662efdd7de8c00d940749af276240 Mon Sep 17 00:00:00 2001
From: Sergei Zimmerman <sergei@zimmerman.foo>
Date: Thu, 18 Sep 2025 23:34:27 +0300
Subject: [PATCH] meson: Fix SONAME for unstable versions
Replacing the string is not enough [^] for e.g. nixpkgs precise versions:
`2.31pre20250712_b1245123`
[^]: https://github.com/NixOS/nixpkgs/pull/444089
---
nix-meson-build-support/common/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/nix-meson-build-support/common/meson.build b/nix-meson-build-support/common/meson.build
index a46715193c6..f08fb3d8439 100644
--- a/nix-meson-build-support/common/meson.build
+++ b/nix-meson-build-support/common/meson.build
@@ -42,4 +42,4 @@ if cxx.get_id() == 'clang' and ('address' in get_option('b_sanitize') or 'undefi
endif
# Darwin ld doesn't like "X.Y.Zpre"
-nix_soversion = meson.project_version().replace('pre', '')
+nix_soversion = meson.project_version().split('pre')[0]

View file

@ -1,61 +0,0 @@
From ef6dbe76dc25e67b47dc9a8caa6dd29ff5996a20 Mon Sep 17 00:00:00 2001
From: Jens Petersen <petersen@redhat.com>
Date: Wed, 19 Nov 2025 15:50:43 +0800
Subject: [PATCH] docs: fixup some rellinks to use ./ prefix for consistency
"./" prefix is already used almost everywhere
---
doc/manual/source/command-ref/nix-build.md | 6 +++---
doc/manual/source/command-ref/nix-instantiate.md | 2 +-
src/nix/profile-diff-closures.md | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/doc/manual/source/command-ref/nix-build.md b/doc/manual/source/command-ref/nix-build.md
index 3bb59cbed12..860a1fc9745 100644
--- a/doc/manual/source/command-ref/nix-build.md
+++ b/doc/manual/source/command-ref/nix-build.md
@@ -36,7 +36,7 @@ to a temporary location. The tarball must include a single top-level
directory containing at least a file named `default.nix`.
`nix-build` is essentially a wrapper around
-[`nix-instantiate`](nix-instantiate.md) (to translate a high-level Nix
+[`nix-instantiate`](./nix-instantiate.md) (to translate a high-level Nix
expression to a low-level [store derivation]) and [`nix-store
--realise`](@docroot@/command-ref/nix-store/realise.md) (to build the store
derivation).
@@ -52,8 +52,8 @@ derivation).
# Options
All options not listed here are passed to
-[`nix-store --realise`](nix-store/realise.md),
-except for `--arg` and `--attr` / `-A` which are passed to [`nix-instantiate`](nix-instantiate.md).
+[`nix-store --realise`](./nix-store/realise.md),
+except for `--arg` and `--attr` / `-A` which are passed to [`nix-instantiate`](./nix-instantiate.md).
- <span id="opt-no-out-link">[`--no-out-link`](#opt-no-out-link)<span>
diff --git a/doc/manual/source/command-ref/nix-instantiate.md b/doc/manual/source/command-ref/nix-instantiate.md
index 38454515d57..bac9f365933 100644
--- a/doc/manual/source/command-ref/nix-instantiate.md
+++ b/doc/manual/source/command-ref/nix-instantiate.md
@@ -32,7 +32,7 @@ standard input.
- `--add-root` *path*
- See the [corresponding option](nix-store.md) in `nix-store`.
+ See the [corresponding option](./nix-store.md) in `nix-store`.
- `--parse`
diff --git a/src/nix/profile-diff-closures.md b/src/nix/profile-diff-closures.md
index 295d1252bcd..1cfed160f31 100644
--- a/src/nix/profile-diff-closures.md
+++ b/src/nix/profile-diff-closures.md
@@ -23,6 +23,6 @@ R""(
This command shows the difference between the closures of subsequent
versions of a profile. See [`nix store
-diff-closures`](nix3-store-diff-closures.md) for details.
+diff-closures`](./nix3-store-diff-closures.md) for details.
)""

View file

@ -1,56 +1,3 @@
# How to setup nix on Fedora.
# nix
Nix has two different modes of operation:
## Daemon mode for multi-user setup
This is recommended by upstream and more seamless.
The `nix-daemon` requires functioning systemd.
Just install the `nix` package, which pulls in `nix-daemon`,
by running:
```
$ sudo dnf install nix nix-daemon
$ sudo systemctl enable --now nix-daemon
```
## Single-user mode without nix-daemon
This mode also works in rootless containers and without systemd.
Run:
```
$ sudo dnf install nix --exclude nix-daemon
$ sudo usermod -aG nixbld $USER
```
and restart your login session:
make sure the `nixbld` group appears in `id` output.
This avoids the need to run nix-daemon.
## Rootless nix store under /home
Alternatively one can run rootless nix (which uses chroots) with just:
```
$ dnf install nix-core nix-legacy
```
The user nix store is: `~/.local/share/nix/root/nix/store`.
This also allows sharing one's nix store with toolboxes, etc.
However then nix profiles can only be used inside nix shells.
## Nixpkgs
You may want to setup a default nix channel.
```
$ nix-channel add https://nixos.org/channels/nixos-25.11 nixpkgs
```
for legacy commands, if you don't want to use rolling nixos-unstable.
# Testing
A simple way to check nix is working is to run e.g. `nix-shell -p hello`.
After a while of downloading, this should put you in
a nix shell subprocess where you should be able to run `hello`.
Run `nix --help` to learn more about the nix CLI
or read <https://nix.dev/>.
The nix package

View file

@ -1,68 +0,0 @@
* Mon Oct 27 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-8
- drop redundant sysusers and tmpfiles.d scriptlets (#2388768)
- add obsoletes for petersen/nix copr subpackages
* Sat Oct 25 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-7
- recommends nix-daemon if systemd
* Sat Oct 25 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-6
- rename users subpackage to system
- improve /nix/var dirs ownership and perms
- rename sysusers file to nix.conf
- move nix-daemon tmpfiles.d to nix-daemon
* Sat Oct 25 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-5
- split nix-users from nix-daemon and drop nix-singleuser
- drop all conflicts
* Fri Oct 24 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-4
- drop filesystem subpackage and ghost singleuser dirs
- nix-daemon and nix-singleuser conflict with each other
* Thu Oct 23 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-3
- use tmpfiles.d for nix-filesystem
- improve the readme
- list bin files explicitly
- nix-singleuser now owns its dirs
- add nix-daemon conflicts for ostree and containers
- add nix-singleuser recommends for containers
* Sat Oct 18 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-2
- FHS Exception for /nix was approved (https://pagure.io/fesco/issue/3473)
- add multiuser setup to daemon subpackage
- add singleuser and nix-filesystem subpackages
* Mon Sep 22 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-1
- update to 2.31.2
* Wed Sep 17 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-6
- list .so files explicitly without globbing (#2388768)
- disable /usr/lib/tmpfiles.d/nix-daemon.conf for now (#2388768)
* Mon Sep 15 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-5
- set the soversion to the nix version (#13995, #14001, #14005)
* Sun Sep 14 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-4
- add simple check with LD_LIBRARY_PATH
* Fri Sep 12 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-3
- revert to shared libs, add libs subpackage and restore devel
- apply upstream submitted PR to enable soname versioning (#13966)
* Thu Sep 11 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-2
- noarch nix-daemon subpackage cannot use _isa requires
* Wed Sep 10 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-1
- https://github.com/NixOS/nix/blob/2.31.1/doc/manual/source/release-notes/rl-2.31.md
- rename nix-core to base package
- use readline (#2388768)
- improve MESON_OPTS setup (zbyszek, #2388768)
- use static libs and drop devel package
- disable perl binding
* Sat Aug 16 2025 Jens Petersen <petersen@redhat.com> - 2.30.2-2
- fix nix-devel requires
- add systemd scriptlets for nix-daemon
* Fri Aug 15 2025 Jens Petersen <petersen@redhat.com> - 2.30.2-1
- initial packaging of nix programs without /nix

View file

@ -1,20 +0,0 @@
{ pkgs ? import <nixpkgs> {} }:
# Use the writeTextFile function to create a simple script
pkgs.writeTextFile {
# Define the package's output name in the Nix store
name = "hello-script";
# The path and name of the resulting file in the final package
destination = "/bin/hello";
# The content of the file
text = ''
#!/bin/sh
echo "Hello from a reproducible Nix package!"
'';
# Make the script executable
executable = true;
}
# Run with: nix-build

View file

@ -1,13 +0,0 @@
{
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
in
{
devShells.default = pkgs.mkShell {
packages = with pkgs; [ hello ];
};
});
}
# Run with: nix develop

View file

@ -1,16 +0,0 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = with pkgs; [
bash
# Other tools
#git
];
# Commands to run immediately when entering the shell (optional)
shellHook = ''
echo "Welcome to the bash shell!"
echo "Bash version: $(bash --version)"
'';
}
# Run with: nix-shell

View file

@ -1,46 +0,0 @@
--- nix-2.31.2/doc/manual/meson.build~ 2025-09-18 04:25:38.000000000 +0800
+++ nix-2.31.2/doc/manual/meson.build 2025-11-13 00:26:04.673032194 +0800
@@ -7,7 +7,7 @@
nix = find_program('nix', native : true)
-mdbook = find_program('mdbook', native : true)
+# mdbook = find_program('mdbook', native : true)
bash = find_program('bash', native : true)
rsync = find_program('rsync', required : true, native : true)
@@ -89,13 +89,12 @@
- @0@ @INPUT1@ summary @2@ < @CURRENT_SOURCE_DIR@/source/SUMMARY.md.in > @2@/source/SUMMARY.md
- sed -e 's|@version@|@3@|g' < @INPUT2@ > @2@/book.toml
@4@ -r --include='*.md' @CURRENT_SOURCE_DIR@/ @2@/
- (cd @2@; RUST_LOG=warn @1@ build -d @2@ 3>&2 2>&1 1>&3) | { grep -Fv "because fragment resolution isn't implemented" || :; } 3>&2 2>&1 1>&3
- rm -rf @2@/manual
- mv @2@/html @2@/manual
- find @2@/manual -iname meson.build -delete
+ # (cd @2@; RUST_LOG=warn @1@ build -d @2@ 3>&2 2>&1 1>&3) | { grep -Fv "because fragment resolution isn't implemented" || :; } 3>&2 2>&1 1>&3
+ #rm -rf @2@/manual
+ #mv @2@/html @2@/manual
+ #find @2@/manual -iname meson.build -delete
+ ln -s source @2@/markdown
'''.format(
python.full_path(),
- mdbook.full_path(),
+ 'no-mdbk',
meson.current_build_dir(),
meson.project_version(),
rsync.full_path(),
@@ -130,10 +130,10 @@
manual_html = manual[0]
manual_md = manual[1]
-install_subdir(
- manual_html.full_path(),
- install_dir : get_option('datadir') / 'doc/nix',
-)
+# install_subdir(
+# manual_html.full_path(),
+# install_dir : get_option('datadir') / 'doc/nix',
+# )
nix_nested_manpages = [
[

View file

@ -1,4 +0,0 @@
q /nix 0755 root root - -
d /nix/var 0755 root root - -
d /nix/var/log 0755 root root - -
d /nix/var/log/nix 0755 root root - -

View file

@ -1,7 +0,0 @@
# this file is provided by the 'nix' package
auto-optimise-store = true
bash-prompt-prefix = (nix:$name)\040
experimental-features = nix-command flakes
extra-nix-path = nixpkgs=flake:nixpkgs
max-jobs = auto

403
nix.spec
View file

@ -1,403 +0,0 @@
%global nixbld_group nixbld
# needs mdbook: https://bugzilla.redhat.com/show_bug.cgi?id=2332609
%bcond docs 1
# test failures complain NIX_STORE undefined
# and missing rapidcheck
%bcond tests 0
Name: nix
# 2.32 needs boost >= 1.87 (https://bugzilla.redhat.com/show_bug.cgi?id=2406036)
# (https://github.com/NixOS/nix/pull/14340)
Version: 2.31.2
Release: %autorelease
Summary: A purely functional package manager
License: LGPL-2.1-or-later
URL: https://github.com/NixOS/nix
Source0: https://github.com/NixOS/nix/archive/%{version}/nix-%{version}.tar.gz
Source1: nix.conf
Source2: registry.json
Source3: README.md
Source4: nix.sysusers
Source5: nix-filesystem.conf
# soversion patches:
# https://github.com/NixOS/nix/pull/13995
Patch0: https://patch-diff.githubusercontent.com/raw/NixOS/nix/pull/13995.patch
# https://github.com/NixOS/nix/pull/14001
Patch1: https://patch-diff.githubusercontent.com/raw/NixOS/nix/pull/14001.patch
# https://github.com/NixOS/nix/pull/14005
Patch2: https://patch-diff.githubusercontent.com/raw/NixOS/nix/pull/14005.patch
# https://github.com/NixOS/nix/pull/14018
Patch3: https://patch-diff.githubusercontent.com/raw/NixOS/nix/pull/14018.patch
# disable mdbook
# https://github.com/NixOS/nix/issues/14548
Patch4: nix-disable-mdbook.patch
# https://github.com/NixOS/nix/pull/14593
Patch5: https://patch-diff.githubusercontent.com/raw/NixOS/nix/pull/14593.patch
# https://nixos.org/manual/nix/unstable/installation/prerequisites-source
# missing aws-cpp-sdk-s3 aws-c-auth aws-c-s3
#BuildRequires: aws-c-common
BuildRequires: bison
BuildRequires: blake3-devel
BuildRequires: bzip2-devel
BuildRequires: boost-devel
BuildRequires: boost-url
BuildRequires: brotli-devel
%ifarch x86_64 aarch64 ppc64le
BuildRequires: busybox
%endif
# needed for toml11
BuildRequires: cmake
%if %{with docs}
BuildRequires: doxygen
BuildRequires: rsync
%endif
BuildRequires: flex
BuildRequires: gc-devel
BuildRequires: gcc-c++
%if %{with tests}
BuildRequires: gmock-devel
%endif
BuildRequires: libgit2-devel
BuildRequires: jq
BuildRequires: json-devel
BuildRequires: libarchive-devel
%if %{defined fedora}
%ifarch x86_64
BuildRequires: libcpuid-devel
%endif
%endif
BuildRequires: libcurl-devel
BuildRequires: libseccomp-devel
BuildRequires: libsodium-devel
BuildRequires: lowdown
BuildRequires: lowdown-devel
BuildRequires: meson
BuildRequires: openssl-devel
%if %{with tests}
#BuildRequires: rapidcheck-devel
%endif
BuildRequires: readline-devel
BuildRequires: sqlite-devel
BuildRequires: systemd-rpm-macros
BuildRequires: toml11-devel
BuildRequires: xz-devel
Requires: nix-core = %{version}-%{release}
Requires: nix-system = %{version}-%{release}
Recommends: (nix-daemon = %{version}-%{release} if systemd)
Recommends: nix-legacy = %{version}-%{release}
%description
Nix is a purely functional package manager.
It allows multiple versions of a package to be installed side-by-side,
ensures that dependency specifications are complete,
supports atomic upgrades and rollbacks,
allows non-root users to install software, and has many other features.
It is the basis of the NixOS Linux distribution,
but it can be used equally well under other Unix systems.
See the README.fedora.md file for setup instructions.
%package core
Summary: Core nix tool
Requires: nix-libs%{?_isa} = %{version}-%{release}
%ifarch x86_64 aarch64 ppc64le
Recommends: busybox
%endif
%description core
This package provides the core nix tool for modern flake-based commands.
Most users should probably install nix-legacy as well,
or the main nix package for a complete default setup.
See the README.fedora.md file for setup instructions.
%package daemon
Summary: The nix daemon for multiuser mode
BuildArch: noarch
Requires: nix-core = %{version}-%{release}
Requires: nix-system = %{version}-%{release}
Requires: systemd
%description daemon
This package provides nix-daemon and associated files.
%package devel
Summary: Development files for nix
Requires: nix-libs%{?_isa} = %{version}-%{release}
%description devel
This package contains library and header files for
developing applications that use nix.
Note the API is considered unstable and upstream does not recommend its usage.
%if %{with docs}
%package doc
Summary: Documentation files for nix
BuildArch: noarch
%description doc
This package contains documentation files for nix.
%endif
%package filesystem
Summary: Filesystem for nix
BuildArch: noarch
# added at f43
Obsoletes: nix-singleuser < %{version}-%{release}
%description filesystem
The package provides the /nix root directory for the nix package manager.
%package legacy
Summary: nix classical commands
BuildArch: noarch
Requires: nix-core = %{version}-%{release}
%description legacy
This package provides the symlinks for the older nix-* commands.
%package libs
Summary: Runtime libraries for nix
%description libs
The package provides the the runtime libraries for nix.
%if %{with tests}
%package test
Summary: Nix test programs
Requires: nix%{?_isa} = %{version}-%{release}
%description test
This package provides the nix-test programs.
%endif
%package system
Summary: Nix directories and sysusers setup
BuildArch: noarch
Requires: nix-filesystem = %{version}-%{release}
%description system
This package sets up the nix directories and sysusers.
%prep
%autosetup -p1
install -p -m 0644 %{SOURCE3} README.fedora.md
# https://github.com/NixOS/nix/issues/14666
# remove unicode RLO (0x202E) characters
sed -i 's/\xe2\x80\xae//g' doc/manual/source/release-notes/rl-2.26.md
%build
MESON_OPTS=(
--sysconfdir=%{_sysconfdir}
--localstatedir=/nix/var
--libexecdir=%{_libexecdir}
-Dbindings=false
-Ddoc-gen=%[%{with docs}?"true":"false"]
-Dlibcmd:readline-flavor=readline
-Dlibstore:sandbox-shell=%{_bindir}/busybox
-Dnix:profile-dir=%{_sysconfdir}/profile.d
-Dunit-tests=%[%{with tests}?"true":"false"]
%ifarch x86_64
# missing from epel10: https://bugzilla.redhat.com/show_bug.cgi?id=2368495
%if %{undefined fedora}
-Dlibutil:cpuid=disabled
%endif
%else
-Dlibutil:cpuid=disabled
%endif
)
%meson "${MESON_OPTS[@]}"
%meson_build
%install
%meson_install
# nix config
mkdir -p %{buildroot}/etc/nix
cp %{SOURCE1} %{SOURCE2} %{buildroot}/etc/nix/
# Nix has multiuser and singleuser installation modes
# https://nix.dev/manual/nix/stable/installation/nix-security.html
mkdir -p %{buildroot}/nix/store
mkdir -p %{buildroot}/nix/var/log/nix/drvs
mkdir -p %{buildroot}/nix/var/nix
install -p -D -m 0644 %{SOURCE4} %{buildroot}%{_sysusersdir}/nix.conf
install -p -D -m 0644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/nix-filesystem.conf
# filter out relative doc links
# https://bugzilla.redhat.com/show_bug.cgi?id=2415126
# https://github.com/kristapsdz/lowdown/issues/170
# (sed expression generated by Gemini Pro: removes pairs of .UR and .UE lines)
sed -i -e '/^\.UR [@#.]/,/^\.UE/{ /^\.UR [@#.]/d; /^\.UE/d}' %{buildroot}%{_mandir}/man*/*
%check
LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}%{_bindir}/nix --help
%if %{with tests}
#export TEST_ROOT=/var/home/petersen/tmp/nix-test
%meson_test
%endif
%post daemon
%systemd_post nix-daemon.service
%preun daemon
%systemd_preun nix-daemon.service
%postun daemon
%systemd_postun_with_restart nix-daemon.service
%files
%files core
%doc README.md README.fedora.md
%{_bindir}/nix
%{_libexecdir}/nix
%config(noreplace) %{_sysconfdir}/nix/nix.conf
%config(noreplace) %{_sysconfdir}/nix/registry.json
%config(noreplace) %{_sysconfdir}/profile.d/nix.sh
%config(noreplace) %{_sysconfdir}/profile.d/nix.fish
%{bash_completions_dir}/nix
%{fish_completions_dir}/nix.fish
%{zsh_completions_dir}/_nix
%{zsh_completions_dir}/run-help-nix
%if %{with docs}
%{_mandir}/man1/nix.1*
%{_mandir}/man1/nix3-*.1*
%{_mandir}/man5/nix.conf.5*
%{_mandir}/man5/nix-profiles.5*
%endif
%files daemon
%{_bindir}/nix-daemon
%{_sysconfdir}/profile.d/nix-daemon.*sh
%{_unitdir}/nix-daemon.*
%{_tmpfilesdir}/nix-daemon.conf
%ghost %dir /nix/var/nix/builds
%ghost %dir /nix/var/nix/daemon-socket
%ghost /nix/var/nix/daemon-socket/socket
%if %{with docs}
%{_mandir}/man8/nix-daemon.8*
%endif
%files devel
%{_includedir}/nix
%{_includedir}/nix_api_*.h
%{_includedir}/nix_api_*.hh
%{_libdir}/libnixcmd.so
%{_libdir}/libnixexpr.so
%{_libdir}/libnixexprc.so
%{_libdir}/libnixfetchers.so
%{_libdir}/libnixfetchersc.so
%{_libdir}/libnixflake.so
%{_libdir}/libnixflakec.so
%{_libdir}/libnixmain.so
%{_libdir}/libnixmainc.so
%{_libdir}/libnixstore.so
%{_libdir}/libnixstorec.so
%{_libdir}/libnixutil.so
%{_libdir}/libnixutilc.so
%{_libdir}/pkgconfig/*.pc
%if %{with docs}
%files doc
%{_defaultdocdir}/nix
%endif
%files filesystem
# FHS Exception: https://pagure.io/fesco/issue/3473
%{_tmpfilesdir}/nix-filesystem.conf
%ghost %dir /nix
%ghost %dir /nix/var
%ghost %dir /nix/var/log
%ghost %dir /nix/var/log/nix
%files legacy
%{_bindir}/nix-build
%{_bindir}/nix-channel
%{_bindir}/nix-collect-garbage
%{_bindir}/nix-copy-closure
%{_bindir}/nix-env
%{_bindir}/nix-hash
%{_bindir}/nix-instantiate
%{_bindir}/nix-prefetch-url
%{_bindir}/nix-shell
%{_bindir}/nix-store
%if %{with docs}
%{_mandir}/man1/nix-*.1*
%endif
%files libs
%license COPYING
%{_libdir}/libnixcmd.so.%{version}
%{_libdir}/libnixexpr.so.%{version}
%{_libdir}/libnixexprc.so.%{version}
%{_libdir}/libnixfetchers.so.%{version}
%{_libdir}/libnixfetchersc.so.%{version}
%{_libdir}/libnixflake.so.%{version}
%{_libdir}/libnixflakec.so.%{version}
%{_libdir}/libnixmain.so.%{version}
%{_libdir}/libnixmainc.so.%{version}
%{_libdir}/libnixstore.so.%{version}
%{_libdir}/libnixstorec.so.%{version}
%{_libdir}/libnixutil.so.%{version}
%{_libdir}/libnixutilc.so.%{version}
%files system
%{_sysusersdir}/nix.conf
%dir %attr(1775,root,%{nixbld_group}) /nix/store
%dir %attr(775,root,%{nixbld_group}) /nix/var/log/nix/drvs
%dir %attr(775,root,%{nixbld_group}) /nix/var/nix
%ghost %dir /nix/var/nix/db
%ghost /nix/var/nix/gc.lock
%ghost %dir /nix/var/nix/gcroots
%ghost %dir /nix/var/nix/gcroots/per-user
%ghost %dir /nix/var/nix/gc-socket
%ghost /nix/var/nix/gc-socket/socket
%ghost %dir /nix/var/nix/profiles
%ghost %dir /nix/var/nix/profiles/per-user
%ghost %dir /nix/var/nix/temproots
%if %{with tests}
%files test
%{_bindir}/nix*-test
%endif
%changelog
%autochangelog

View file

@ -1,22 +0,0 @@
#Type Name ID GECOS Home directory Shell
g nixbld -
u nixbld-1 - "Nix build user 1" /var/empty /sbin/nologin
u nixbld-2 - "Nix build user 2" /var/empty /sbin/nologin
u nixbld-3 - "Nix build user 3" /var/empty /sbin/nologin
u nixbld-4 - "Nix build user 4" /var/empty /sbin/nologin
u nixbld-5 - "Nix build user 5" /var/empty /sbin/nologin
u nixbld-6 - "Nix build user 6" /var/empty /sbin/nologin
u nixbld-7 - "Nix build user 7" /var/empty /sbin/nologin
u nixbld-8 - "Nix build user 8" /var/empty /sbin/nologin
u nixbld-9 - "Nix build user 9" /var/empty /sbin/nologin
u nixbld-10 - "Nix build user 10" /var/empty /sbin/nologin
m nixbld-1 nixbld
m nixbld-2 nixbld
m nixbld-3 nixbld
m nixbld-4 nixbld
m nixbld-5 nixbld
m nixbld-6 nixbld
m nixbld-7 nixbld
m nixbld-8 nixbld
m nixbld-9 nixbld
m nixbld-10 nixbld

View file

@ -1,5 +0,0 @@
summary: Basic smoke test
discover:
how: fmf
execute:
how: tmt

View file

@ -1,4 +0,0 @@
{
"version":2,
"flakes": []
}

View file

@ -1 +0,0 @@
SHA512 (nix-2.31.2.tar.gz) = ba2aa53cfb2527c7702340ac862a427a07d4a7bac8149cfc24d34ce2e0f980a8e70103e1ddf1c231cb5cd0bf4ddfe56a6fa618cd561501a03b8b064cea84bfcf

View file

@ -1 +0,0 @@
../../examples

View file

@ -1,6 +0,0 @@
summary: parse unicode data
require:
- bash
- nix
test: bash test.sh
framework: shell

View file

@ -1,13 +0,0 @@
#!/bin/bash
set -x -e
nix-shell -p hello --command hello
( cd examples/default
nix-build
)
( cd examples/shell
nix-shell --command "bash --version"
)