[packages/nix] - up to 2.3.4 - added sh patch (remove bashism from configure) - added paths patch (adjust systemd u

qboosh qboosh at pld-linux.org
Thu Apr 23 17:31:10 CEST 2020


commit 9533492a87cb10b21c10b0017a873b33e5faa4fc
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Thu Apr 23 17:31:14 2020 +0200

    - up to 2.3.4
    - added sh patch (remove bashism from configure)
    - added paths patch (adjust systemd units path)

 nix-paths.patch |   9 +++
 nix-sh.patch    |  15 +++++
 nix.spec        | 184 ++++++++++++++++++++++++++++++++++++--------------------
 3 files changed, 142 insertions(+), 66 deletions(-)
---
diff --git a/nix.spec b/nix.spec
index b40d25e..b910ee5 100644
--- a/nix.spec
+++ b/nix.spec
@@ -1,23 +1,48 @@
-# TODO: FHS (/nix, /var/nix are invalid)
+#
+# Conditional build:
+%bcond_with	perl	# Perl module (needs update: uses C++11, while main libs need C++17 now)
+
 Summary:	A purely functional package manager
 Summary(pl.UTF-8):	Czysto funkcyjny zarządca pakietów
 Name:		nix
-Version:	0.11
-Release:	0.3
+Version:	2.3.4
+Release:	0.1
 License:	LGPL v2.1+
 Group:		Applications/System
-Source0:	http://nix.cs.uu.nl/dist/nix/%{name}-%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5:	890c25ac0005ff466683869efc288b67
-URL:		http://nix.cs.uu.nl/
+Source0:	https://nixos.org/releases/nix/%{name}-%{version}/%{name}-%{version}.tar.xz
+# Source0-md5:	0d8486cb6622bb53116200d3a3d378ca
+Patch0:		%{name}-sh.patch
+Patch1:		%{name}-paths.patch
+URL:		https://nixos.org/nix/
+# aws-sdk-cpp/aws-cpp-sdk-s3 (aws/s3/S3Client.h)
+BuildRequires:	boost-devel >= 1.66
 BuildRequires:	bzip2-devel
-BuildRequires:	db-cxx-devel
+%{?with_perl:BuildRequires:	curl}
+BuildRequires:	curl-devel
+BuildRequires:	editline-devel >= 1.15.2
+BuildRequires:	gc-devel
+BuildRequires:	libbrotli-devel
+BuildRequires:	libseccomp-devel
+BuildRequires:	libsodium-devel
+BuildRequires:	libstdc++-devel >= 6:7
 BuildRequires:	openssl-devel
+BuildRequires:	sqlite3-devel >= 3.6.19
+%if %{with perl}
+BuildRequires:	perl-DBI
+BuildRequires:	perl-DBD-SQLite
 BuildRequires:	perl-base >= 1:5.8.0
-Requires:	curl
+%endif
+BuildRequires:	tar >= 1:1.22
+BuildRequires:	xz
+BuildRequires:	xz-devel
+Requires:	%{name}-libs = %{version}-%{release}
+Obsoletes:	nix-emacs-mode
 Provides:	/var/nix/manifests
 Provides:	/var/nix/profiles
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%define		nixdir		/var/lib/nix
+
 %description
 Nix is a purely functional package manager. It allows multiple
 versions of a package to be installed side-by-side, ensures that
@@ -32,89 +57,116 @@ zależności, umożliwia niepodzielną aktualizację systemu i wycofanie do
 poprzedniej wersji, pozwala na instalację oprogramowania przez
 użytkowników. Posiada też wiele innych funkcji.
 
+%package libs
+Summary:	Nix libraries
+Summary(pl.UTF-8):	Biblioteki Niksa
+Group:		Libraries
+
+%description libs
+Nix libraries.
+
+%description libs -l pl.UTF-8
+Biblioteki Niksa.
+
 %package devel
-Summary:	Header files for nix
-Summary(pl.UTF-8):	Pliki nagłówkowe niksa
+Summary:	Header files for Nix
+Summary(pl.UTF-8):	Pliki nagłówkowe Niksa
 Group:		Development/Libraries
-Requires:	%{name} = %{version}-%{release}
+Requires:	%{name}-libs = %{version}-%{release}
+Requires:	gc-devel
+Requires:	libstdc++-devel >= 6:7
 
 %description devel
-Header files for nix.
+Header files for Nix.
 
 %description devel -l pl.UTF-8
-Pliki nagłówkowe niksa.
-
-%package emacs-mode
-Summary:	Emacs mode for nix expressions
-Summary(pl.UTF-8):	Tryb Emacsa dla wyrażeń niksa
-Group:		Applications/Editors/Emacs
-Requires:	emacs
-
-%description emacs-mode
-Emacs mode for nix expressions.
-
-%description emacs-mode -l pl.UTF-8
-Tryb Emacsa dla wyrażeń niksa.
+Pliki nagłówkowe Niksa.
 
 %prep
 %setup -q
+%patch0 -p1
+%patch1 -p1
 
 %build
+%{__aclocal} -I m4
+%{__autoconf}
+%{__autoheader}
+%configure \
+	--localstatedir=%{nixdir}/var \
+	--with-store-dir=%{nixdir}/store
+
+%{__make} \
+	V=1
+
+%if %{with perl}
+ln -sf nix src/nix/nix-instantiate
+topdir=$(pwd)
+cd perl
 %configure \
-	curl=/usr/bin/curl \
-	--with-bzip2=/usr \
-	--with-bdb=/usr \
-	--with-store-dir=/%{name}/store
-%{__make}
+	NIX_CFLAGS="-I$topdir/src/libstore -I$topdir/src/libutil" \
+	NIX_LIBS="-L$topdir/src/libstore -lnixstore" \
+	NIX_INSTANTIATE_PROGRAM="$topdir/src/nix/nix-instantiate"
+
+%{__make} \
+	V=1
+%endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
 %{__make} install \
 	DESTDIR=$RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT/%{name}/store
-mkdir -p $RPM_BUILD_ROOT/%{name}/var
-mv $RPM_BUILD_ROOT%{_localstatedir}/%{name} $RPM_BUILD_ROOT/%{name}/var
-ln -s /%{name}/var/%{name} $RPM_BUILD_ROOT%{_localstatedir}/%{name}
-mkdir $RPM_BUILD_ROOT/%{name}/var/log
-ln -s %{_localstatedir}/log/%{name} $RPM_BUILD_ROOT/%{name}/var/log
+
+%if %{with perl}
+%{__make} -C perl install \
+	DESTDIR=$RPM_BUILD_ROOT
+%endif
+
+install -d $RPM_BUILD_ROOT%{nixdir}/{store,var/nix/{gcroots,profiles}/per-user}
+
+# dead upstart stuff
+%{__rm} -r $RPM_BUILD_ROOT/etc/init
+# packaged as %doc
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/manual
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc AUTHORS NEWS doc/manual/manual.html doc/manual/figures doc/manual/images
-%attr(755,root,root) %{_bindir}/*
-%dir %{_datadir}/%{name}
-%dir %{_datadir}/%{name}/corepkgs
-%dir %{_datadir}/%{name}/corepkgs/*
-%attr(755,root,root) %{_datadir}/%{name}/corepkgs/*/*.pl
-%attr(755,root,root) %{_datadir}/%{name}/corepkgs/*/*.sh
-%{_datadir}/%{name}/corepkgs/*/*.nix
-%{_datadir}/%{name}/log2html
-%{_datadir}/%{name}/manual
-%attr(755,root,root) %{_libdir}/bsdiff
-%attr(755,root,root) %{_libdir}/bspatch
-%attr(755,root,root) %{_libdir}/nix-setuid-helper
+%doc README.md doc/manual/{manual.html,figures,images}
+%attr(755,root,root) %{_bindir}/nix*
 %dir %{_libdir}/%{name}
-%attr(755,root,root) %{_libdir}/%{name}/*.pl
-%attr(755,root,root) %{_libdir}/%{name}/*.so*
-%{_libdir}/%{name}/*.pm
-%{_localstatedir}/log/%{name}
-%{_localstatedir}/%{name}
-%{_mandir}/man*/*
-/%{name}
-%dir %{_sysconfdir}/%{name}
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/nix.conf
-%{_sysconfdir}/%{name}/nix.conf.example
-%attr(755,root,root) %{_sysconfdir}/profile.d/nix.sh
-
-%files devel
+%attr(755,root,root) %{_libdir}/%{name}/build-remote
+%dir %{_datadir}/%{name}
+%{_datadir}/%{name}/corepkgs
+%{_datadir}/%{name}/sandbox
+%{systemdunitdir}/nix-daemon.service
+%{systemdunitdir}/nix-daemon.socket
+/etc/profile.d/nix.sh
+/etc/profile.d/nix-daemon.sh
+%dir %{nixdir}
+%attr(1775,root,root) %dir %{nixdir}/store
+%dir %{nixdir}/var
+%dir %{nixdir}/var/nix
+%dir %{nixdir}/var/nix/gcroots
+%dir %{nixdir}/var/nix/gcroots/per-user
+%dir %{nixdir}/var/nix/profiles
+%dir %{nixdir}/var/nix/profiles/per-user
+%{_mandir}/man1/nix-*.1*
+%{_mandir}/man5/nix.conf.5*
+%{_mandir}/man8/nix-daemon.8*
+
+%files libs
 %defattr(644,root,root,755)
-%{_includedir}/%{name}
-%{_libdir}/%{name}/*.la
+%attr(755,root,root) %{_libdir}/libnixexpr.so
+%attr(755,root,root) %{_libdir}/libnixmain.so
+%attr(755,root,root) %{_libdir}/libnixstore.so
+%attr(755,root,root) %{_libdir}/libnixutil.so
 
-%files emacs-mode
+%files devel
 %defattr(644,root,root,755)
-%{_datadir}/emacs/site-lisp/*.el
+%{_includedir}/nix
+%{_pkgconfigdir}/nix-expr.pc
+%{_pkgconfigdir}/nix-main.pc
+%{_pkgconfigdir}/nix-store.pc
diff --git a/nix-paths.patch b/nix-paths.patch
new file mode 100644
index 0000000..541440b
--- /dev/null
+++ b/nix-paths.patch
@@ -0,0 +1,9 @@
+--- nix-2.3.4/misc/systemd/local.mk.orig	1970-01-01 01:00:01.000000000 +0100
++++ nix-2.3.4/misc/systemd/local.mk	2020-04-21 18:43:49.318065743 +0200
+@@ -1,5 +1,5 @@
+ ifeq ($(OS), Linux)
+ 
+-  $(foreach n, nix-daemon.socket nix-daemon.service, $(eval $(call install-file-in, $(d)/$(n), $(prefix)/lib/systemd/system, 0644)))
++  $(foreach n, nix-daemon.socket nix-daemon.service, $(eval $(call install-file-in, $(d)/$(n), /lib/systemd/system, 0644)))
+ 
+ endif
diff --git a/nix-sh.patch b/nix-sh.patch
new file mode 100644
index 0000000..ca458ac
--- /dev/null
+++ b/nix-sh.patch
@@ -0,0 +1,15 @@
+--- nix-2.3.4/configure.ac.orig	1970-01-01 01:00:01.000000000 +0100
++++ nix-2.3.4/configure.ac	2020-04-21 12:04:21.564576870 +0200
+@@ -235,9 +235,9 @@
+ AC_LANG_POP(C++)
+ 
+ if test -n "$enable_s3"; then
+-  declare -a aws_version_tokens=($(printf '#include <aws/core/VersionConfig.h>\nAWS_SDK_VERSION_STRING' | $CPP $CPPFLAGS - | grep -v '^#.*' | sed 's/"//g' | tr '.' ' '))
+-  AC_DEFINE_UNQUOTED([AWS_VERSION_MAJOR], ${aws_version_tokens@<:@0@:>@}, [Major version of aws-sdk-cpp.])
+-  AC_DEFINE_UNQUOTED([AWS_VERSION_MINOR], ${aws_version_tokens@<:@1@:>@}, [Minor version of aws-sdk-cpp.])
++  aws_version="$(printf '#include <aws/core/VersionConfig.h>\nAWS_SDK_VERSION_STRING' | $CPP $CPPFLAGS - | grep -v '^#.*' | sed 's/"//g')"
++  AC_DEFINE_UNQUOTED([AWS_VERSION_MAJOR], $(echo "$aws_version" | cut -d. -f1), [Major version of aws-sdk-cpp.])
++  AC_DEFINE_UNQUOTED([AWS_VERSION_MINOR], $(echo "$aws_version" | cut -d. -f2), [Minor version of aws-sdk-cpp.])
+ fi
+ 
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/nix.git/commitdiff/9533492a87cb10b21c10b0017a873b33e5faa4fc



More information about the pld-cvs-commit mailing list