From f34de121401bb43c6cfab892b2b254e42652ba90 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 16 Feb 2004 15:23:19 +0000 Subject: [PATCH] * Allow the location of the store to be specified (--with-store-dir). * Do not create stuff in localstatedir when doing `make install' (since we may not have write access). In general, installation of constant code/data should be separate from the initialisation of mutable state. --- configure.ac | 5 +++++ nix.spec.in | 1 + src/libmain/Makefile.am | 2 +- src/nix-store/Makefile.am | 2 +- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index c6cb782d8..b8d51916a 100644 --- a/configure.ac +++ b/configure.ac @@ -63,6 +63,11 @@ AC_ARG_WITH(xml-flags, AC_HELP_STRING([--with-xml-flags=FLAGS], xmlflags=$withval, xmlflags=) AC_SUBST(xmlflags) +AC_ARG_WITH(store-dir, AC_HELP_STRING([--with-store-dir=PATH], + [path of the Nix store]), + storedir=$withval, storedir='${prefix}/store') +AC_SUBST(storedir) + AC_CHECK_LIB(pthread, pthread_mutex_init) AM_CONFIG_HEADER([config.h]) diff --git a/nix.spec.in b/nix.spec.in index 6fdd93e9f..e2537960e 100644 --- a/nix.spec.in +++ b/nix.spec.in @@ -24,6 +24,7 @@ make %install rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install +(cd src/nix-store && make DESTDIR=$RPM_BUILD_ROOT init-state-local) strip $RPM_BUILD_ROOT/%{_prefix}/bin/* || true %clean diff --git a/src/libmain/Makefile.am b/src/libmain/Makefile.am index 6d70b0406..72126f113 100644 --- a/src/libmain/Makefile.am +++ b/src/libmain/Makefile.am @@ -3,7 +3,7 @@ noinst_LIBRARIES = libmain.a libmain_a_SOURCES = shared.cc shared.hh AM_CXXFLAGS = \ - -DNIX_STORE_DIR=\"$(prefix)/store\" \ + -DNIX_STORE_DIR=\"$(storedir)\" \ -DNIX_DATA_DIR=\"$(datadir)\" \ -DNIX_STATE_DIR=\"$(localstatedir)/nix\" \ -DNIX_LOG_DIR=\"$(localstatedir)/log/nix\" \ diff --git a/src/nix-store/Makefile.am b/src/nix-store/Makefile.am index 3a152e3e4..76d3a6c6b 100644 --- a/src/nix-store/Makefile.am +++ b/src/nix-store/Makefile.am @@ -12,7 +12,7 @@ main.o: help.txt.hh AM_CXXFLAGS = \ -I.. -I../../externals/inst/include -I../libutil -I../libstore -I../libmain -install-data-local: +init-state-local: $(INSTALL) -d $(DESTDIR)$(localstatedir)/nix $(INSTALL) -d $(DESTDIR)$(localstatedir)/nix/db $(INSTALL) -d $(DESTDIR)$(localstatedir)/log/nix