From 85ec6a6a4486699954e26e576fb434625a9fa4e6 Mon Sep 17 00:00:00 2001 From: Timothy Allen Date: Fri, 1 Jul 2016 13:18:21 +1000 Subject: [PATCH 1/5] nix.spec.in: Use the default build group name. Nix expects build users to be in the "nixbld" group. You can change that in the config file, but `nix.spec` does not ship with a config file, so we should use the defaults. --- nix.spec.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix.spec.in b/nix.spec.in index dff8efbdc..3b6bfcdd1 100644 --- a/nix.spec.in +++ b/nix.spec.in @@ -1,5 +1,5 @@ %global nixbld_user "nix-builder-" -%global nixbld_group "nix-builders" +%global nixbld_group "nixbld" Summary: The Nix software deployment system Name: nix From f32c6ed8730628d0cf32f7e124681b1011192a73 Mon Sep 17 00:00:00 2001 From: Timothy Allen Date: Fri, 1 Jul 2016 13:20:41 +1000 Subject: [PATCH 2/5] nix.spec.in: Build from the .tar.xz file. The Nix download page only mentions the .xz source tarball, so that's what people are likely to have available. This means that somebody who downloads a Nix source tarball can turn it directly into an RPM with `rpmbuild -ta nix-*.tar.xz`. --- nix.spec.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix.spec.in b/nix.spec.in index 3b6bfcdd1..e139fcb00 100644 --- a/nix.spec.in +++ b/nix.spec.in @@ -10,7 +10,7 @@ License: LGPLv2+ Group: Applications/System %endif URL: http://nixos.org/ -Source0: %{name}-%{version}.tar.bz2 +Source0: %{name}-%{version}.tar.xz %if 0%{?el5} BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) %endif From 0610486d61f8359227ac4c2073de7becb27128a2 Mon Sep 17 00:00:00 2001 From: Timothy Allen Date: Fri, 1 Jul 2016 13:51:57 +1000 Subject: [PATCH 3/5] nix.spec.in: RHEL 7/CentOS 7 do not require a group for each package. --- nix.spec.in | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nix.spec.in b/nix.spec.in index e139fcb00..2d9d9d228 100644 --- a/nix.spec.in +++ b/nix.spec.in @@ -6,7 +6,7 @@ Name: nix Version: @PACKAGE_VERSION@ Release: 2%{?dist} License: LGPLv2+ -%if 0%{?rhel} +%if 0%{?rhel} && 0%{?rhel} < 7 Group: Applications/System %endif URL: http://nixos.org/ @@ -41,7 +41,7 @@ it can be used equally well under other Unix systems. %package devel Summary: Development files for %{name} -%if 0%{?rhel} +%if 0%{?rhel} && 0%{?rhel} < 7 Group: Development/Libraries %endif Requires: %{name}%{?_isa} = %{version}-%{release} @@ -53,7 +53,7 @@ developing applications that use %{name}. %package doc Summary: Documentation files for %{name} -%if 0%{?rhel} +%if 0%{?rhel} && 0%{?rhel} < 7 Group: Documentation %endif BuildArch: noarch @@ -65,7 +65,7 @@ The %{name}-doc package contains documentation files for %{name}. %package -n emacs-%{name} Summary: Nix mode for Emacs -%if 0%{?rhel} +%if 0%{?rhel} && 0%{?rhel} < 7 Group: Applications/Editors %endif BuildArch: noarch @@ -77,7 +77,7 @@ This package provides a major mode for editing Nix expressions. %package -n emacs-%{name}-el Summary: Elisp source files for emacs-%{name} -%if 0%{?rhel} +%if 0%{?rhel} && 0%{?rhel} < 7 Group: Applications/Editors %endif BuildArch: noarch From 3a535abbc782ac43a031f9f917e66d17e3789b3a Mon Sep 17 00:00:00 2001 From: Timothy Allen Date: Fri, 1 Jul 2016 13:56:09 +1000 Subject: [PATCH 4/5] nix.spec.in: Create /nix/store at install time. Since we now chmod /nix/store at install time, we don't need to do it in the post install script. We still chgrp in the post-install, because the nixbld group doesn't exist at install time. --- nix.spec.in | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nix.spec.in b/nix.spec.in index 2d9d9d228..e94bcff8d 100644 --- a/nix.spec.in +++ b/nix.spec.in @@ -118,6 +118,10 @@ make DESTDIR=$RPM_BUILD_ROOT install find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' +# make the store +mkdir -p $RPM_BUILD_ROOT/nix/store +chmod 1775 $RPM_BUILD_ROOT/nix/store + # make per-user directories for d in profiles gcroots; do @@ -155,7 +159,6 @@ done %post chgrp %{nixbld_group} /nix/store -chmod 1775 /nix/store %if ! 0%{?rhel} # Enable and start Nix worker systemctl enable nix-daemon.socket nix-daemon.service From 91bec5401693e3bb230904f73eb47b1d02c584de Mon Sep 17 00:00:00 2001 From: Timothy Allen Date: Fri, 1 Jul 2016 14:07:58 +1000 Subject: [PATCH 5/5] nix.spec.in: RHEL 7/CentOS 7 supports systemd. --- nix.spec.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nix.spec.in b/nix.spec.in index e94bcff8d..61da404a3 100644 --- a/nix.spec.in +++ b/nix.spec.in @@ -159,7 +159,7 @@ done %post chgrp %{nixbld_group} /nix/store -%if ! 0%{?rhel} +%if ! 0%{?rhel} || 0%{?rhel} >= 7 # Enable and start Nix worker systemctl enable nix-daemon.socket nix-daemon.service systemctl start nix-daemon.socket @@ -171,7 +171,7 @@ systemctl start nix-daemon.socket %{perl_vendorarch}/* %exclude %dir %{perl_vendorarch}/auto/ %{_prefix}/libexec/* -%if ! 0%{?rhel} +%if ! 0%{?rhel} || 0%{?rhel} >= 7 %{_prefix}/lib/systemd/system/nix-daemon.socket %{_prefix}/lib/systemd/system/nix-daemon.service %endif