aboutsummaryrefslogtreecommitdiff
dnl -*- Autoconf -*- fragment for the C++ daemon.

AC_MSG_CHECKING([whether to build daemon])
AC_MSG_RESULT([$guix_build_daemon])

dnl C++ environment.  This macro must be used unconditionnaly.
AC_PROG_CXX
AM_PROG_AR
AC_LANG([C++])

if test "x$guix_build_daemon" = "xyes"; then

  GUIX_ASSERT_CXX11

  AC_PROG_RANLIB
  AC_CONFIG_HEADERS([nix/config.h])

  dnl Use 64-bit file system calls so that we can support files > 2 GiB.
  AC_SYS_LARGEFILE

  dnl Look for zlib, a required dependency.
  AC_CHECK_LIB([z], [gzdopen], [true],
    [AC_MSG_ERROR([Guix requires zlib.  See http://www.zlib.net/.])])
  AC_CHECK_HEADERS([zlib.h], [true],
    [AC_MSG_ERROR([Guix requires zlib.  See http://www.zlib.net/.])])

  dnl Look for libbz2, an optional dependency.
  AC_CHECK_LIB([bz2], [BZ2_bzWriteOpen], [HAVE_LIBBZ2=yes], [HAVE_LIBBZ2=no])
  if test "x$HAVE_LIBBZ2" = xyes; then
    AC_CHECK_HEADERS([bzlib.h])
    HAVE_LIBBZ2="$ac_cv_header_bzlib_h"
  fi

  dnl Look for SQLite, a required dependency.
  PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.6.19])

  AC_DEFINE_UNQUOTED([SYSTEM], ["$guix_system"],
    [Guix host system type--i.e., platform and OS kernel tuple.])

  case "$LIBGCRYPT_PREFIX" in
    no)
      LIBGCRYPT_CPPFLAGS=""
      ;;
    *)
      LIBGCRYPT_CPPFLAGS="-I$LIBGCRYPT_PREFIX/include"
      ;;
  esac

  case "$LIBGCRYPT_LIBDIR" in
    no | "")
      ;;
    *)
      LIBGCRYPT_LDFLAGS="-L$LIBGCRYPT_LIBDIR"
      ;;
  esac

  LIBGCRYPT_LIBS="-lgcrypt"
  AC_SUBST([LIBGCRYPT_CPPFLAGS])
  AC_SUBST([LIBGCRYPT_LDFLAGS])
  AC_SUBST([LIBGCRYPT_LIBS])

  save_CPPFLAGS="$CPPFLAGS"
  save_LDFLAGS="$LDFLAGS"
  save_LIBS="$LIBS"
  CPPFLAGS="$CPPFLAGS $LIBGCRYPT_CPPFLAGS"
  LDFLAGS="$LDFLAGS $LIBGCRYPT_LDFLAGS"
  LIBS="$LIBS $LIBGCRYPT_LIBS"

  have_gcrypt=yes
  AC_CHECK_LIB([gcrypt], [gcry_md_open], [:], [have_gcrypt=no])
  AC_CHECK_HEADER([gcrypt.h], [:], [have_gcrypt=no])
  if test "x$have_gcrypt" != "xyes"; then
    AC_MSG_ERROR([GNU libgcrypt not found; please install it.])
  fi
  CPPFLAGS="$save_CPPFLAGS"
  LDFLAGS="$save_LDFLAGS"
  LIBS="$save_LIBS"

  dnl Chroot support.
  AC_CHECK_FUNCS([chroot unshare])
  AC_CHECK_HEADERS([sched.h sys/param.h sys/mount.h sys/syscall.h])

  if test "x$ac_cv_func_chroot" != "xyes"; then
    AC_MSG_ERROR(['chroot' function missing, bailing out])
  fi

  dnl lutimes and lchown: used when canonicalizing store items.
  dnl posix_fallocate: used when extracting archives.
  dnl vfork: to speed up spawning of helper programs.
  dnl   `--> now disabled because of unpredictable behavior:
  dnl        see <http://lists.gnu.org/archive/html/guix-devel/2014-05/msg00036.html>
  dnl        and Nix commit f794465c (Nov. 2012).
  dnl sched_setaffinity: to improve RPC locality.
  dnl statvfs: to detect disk-full conditions.
  dnl strsignal: for error reporting.
  dnl statx: fine-grain 'stat' call, new in glibc 2.28.
  AC_CHECK_FUNCS([lutimes lchown posix_fallocate sched_setaffinity \
     statvfs nanosleep strsignal statx])

  dnl Check for <locale>.
  AC_LANG_PUSH(C++)
  AC_CHECK_HEADERS([locale])
  AC_LANG_POP(C++)


  dnl Check whether we have the `personality' syscall, which allows us
  dnl to do i686-linux builds on x86_64-linux machines.
  AC_CHECK_HEADERS([sys/personality.h])

  dnl Determine the appropriate default list of substitute URLs (GnuTLS
  dnl is required so we can default to 'https'.)
  GUIX_SUBSTITUTE_URLS="https://bordeaux.guix.gnu.org https://ci.guix.gnu.org"

  AC_MSG_CHECKING([for default substitute URLs])
  AC_MSG_RESULT([$GUIX_SUBSTITUTE_URLS])
  AC_SUBST([GUIX_SUBSTITUTE_URLS])

  AC_DEFINE_UNQUOTED([GUIX_SUBSTITUTE_URLS], ["$GUIX_SUBSTITUTE_URLS"],
    [Default list of substitute URLs used by 'guix-daemon'.])

  dnl Check for Guile-SSH, which is required by 'guix offload'.
  GUIX_CHECK_GUILE_SSH

  case "x$guix_cv_have_recent_guile_ssh" in
    xyes)
      guix_build_daemon_offload="yes"
      AC_DEFINE([HAVE_DAEMON_OFFLOAD_HOOK], [1],
	[Define if the daemon's 'offload' build hook is being built (requires Guile-SSH).])
      ;;
    *)
      guix_build_daemon_offload="no"
      ;;
  esac

  dnl Temporary directory used to store the daemon's data.
  GUIX_TEST_ROOT_DIRECTORY
  GUIX_TEST_ROOT="$ac_cv_guix_test_root"
  AC_SUBST([GUIX_TEST_ROOT])

  GUIX_CHECK_LOCALSTATEDIR
fi

AM_CONDITIONAL([HAVE_LIBBZ2], [test "x$HAVE_LIBBZ2" = "xyes"])
AM_CONDITIONAL([BUILD_DAEMON], [test "x$guix_build_daemon" = "xyes"])
AM_CONDITIONAL([BUILD_DAEMON_OFFLOAD],			\
  [test "x$guix_build_daemon" = "xyes"			\
   && test "x$guix_build_daemon_offload" = "xyes"])
u/packages/tbb.scm, gnu/packages/telephony.scm, gnu/packages/text-editors.scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tls.scm, gnu/packages/tor.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/web.scm, gnu/packages/wm.scm, gnu/packages/xdisorg.scm, gnu/packages/xfce.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, gnu/services/certbot.scm, gnu/services/desktop.scm, gnu/services/version-control.scm, gnu/services/web.scm, guix/import/hackage.scm, guix/licenses.scm: Likewise. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> nikita 2020-04-11gnu: libgcrypt: Fix cross-compilation....This works around /gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash ../libtool --tag=CC --mode=link i586-pc-gnu-gcc -I/gnu/store/8x9dhckldm6iy1digklfanmvdaizq11f-libgpg-error-1.37/include -g -O2 -fvisibility=hidden -fno-delete-null-pointer-checks -Wall -o mpicalc mpicalc-mpicalc.o libgcrypt.la -L/gnu/store/8x9dhckldm6iy1digklfanmvdaizq11f-libgpg-error-1.37/lib -lgpg-error i586-pc-gnu-ld: ./.libs/libgcrypt.so: undefined reference to `_gcry_mpih_lshift' i586-pc-gnu-ld: ./.libs/libgcrypt.so: undefined reference to `_gcry_mpih_add_n' i586-pc-gnu-ld: ./.libs/libgcrypt.so: undefined reference to `_gcry_mpih_addmul_1' i586-pc-gnu-ld: ./.libs/libgcrypt.so: undefined reference to `_gcry_mpih_submul_1' i586-pc-gnu-ld: ./.libs/libgcrypt.so: undefined reference to `_gcry_mpih_mul_1' i586-pc-gnu-ld: ./.libs/libgcrypt.so: undefined reference to `_gcry_mpih_sub_n' i586-pc-gnu-ld: ./.libs/libgcrypt.so: undefined reference to `_gcry_mpih_rshift' * gnu/packages/gnupg.scm (libgcrypt)[arguments]: Disable assembly when cross-compiling. Jan (janneke) Nieuwenhuizen 2020-03-30Merge branch 'master' into core-updates... Conflicts: gnu/packages/admin.scm gnu/packages/commencement.scm gnu/packages/guile.scm gnu/packages/linux.scm gnu/packages/package-management.scm gnu/packages/pulseaudio.scm gnu/packages/web.scm Marius Bakke 2020-03-29gnu: GnuPG: Really use ~/.guix-profile/bin/pinentry by default....Fixes <https://bugs.gnu.org/24076>. * gnu/packages/patches/gnupg-default-pinentry.patch: New file. Use $HOME to find the user's Guix profile and installed pinentry. * gnu/local.mk (dist_patch_DATA): Add the patch. * gnu/packages/gnupg.scm (gnupg)[source]: Use it. Leo Famulari 2020-03-28Revert "gnu: gnupg: Use ~/.guix-profile/bin/pinentry by default."...This commit didn't work: https://issues.guix.gnu.org/issue/24076#13 This reverts commit c7af9d0b5ebaa1fdb08ff5d8a56004998bcd8103. Leo Famulari 2020-03-27Merge branch 'master' into core-updates... Conflicts: gnu/packages/icu4c.scm gnu/packages/man.scm gnu/packages/python-xyz.scm guix/scripts/environment.scm guix/scripts/pack.scm guix/scripts/package.scm guix/scripts/pull.scm guix/store.scm Marius Bakke 2020-03-26gnu: gnupg: Use ~/.guix-profile/bin/pinentry by default....Fixes <https://bugs.gnu.org/24076>. Reported by Danny Milosavljevic <dannym@scratchpost.org>. * gnu/packages/patches/gnupg-default-pinentry.patch: New file. * gnu/packages/gnupg.scm (gnupg)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add it. Ludovic Courtès 2020-03-21Merge branch 'master' into core-updatesMarius Bakke 2020-03-21gnu: gpgme: Fix build....Reported by joshuaBPMan on #guix. * gnu/packages/gnupg.scm (gpgme)[arguments]: Add ‘disable-failing-test’ phase. Tobias Geerinckx-Rice 2020-03-21gnu: gnupg: Update to 2.2.20 [security fix]....* gnu/packages/gnupg.scm (gnupg): Update to 2.2.20. Tobias Geerinckx-Rice 2020-03-19gnu: gpa: Add phase wrap-program....Fixes <https://bugs.gnu.org/36109> * gnu/packages/gnupg.scm (gpa)[arguments]: Add phase wrap-program. Signed-off-by: Marius Bakke <mbakke@fastmail.com> Brice Waegeneire 2020-03-17gnu: guile-gcrypt: Use the correct Guile version....This is a follow-up to commit b6bee63bed4f013064c0d902e7c8b83ed7514ade. * gnu/packages/gnupg.scm (guile-gcrypt)[native-inputs]: Remove GUILE-2.2. Add GUILE-3.0. (guile2.2-gcrypt)[native-inputs]: Adjust accordingly. Marius Bakke 2020-03-16gnu: Default to Guile 3.0....This patch changes three things: 1. package derivations are built using Guile 3.0; 2. 'gexp->derivation' defaults to Guile 3.0; 3. "guile3.0-" packages are deprecated aliases for the regular package, which now depends on Guile 3.0; "guile2.2-" packages are introduced; "guile-next" is renamed to "guile". * gnu/packages/guile.scm (guile-2.0/fixed): Remove. (guile-3.0/fixed): New variable. (package-for-guile-3.0): Remove. (package-for-guile-2.2): New variable. (define-deprecated-guile3.0-package): New macro. (guile-3.0)[name]: Change to "guile". (guile-json-3)[native-inputs, inputs]: New fields. (guile2.2-json): New variable. (guile3.0-json): Deprecate. (guile-gdbm-ffi)[native-inputs]: Switch to GUILE-3.0. (guile2.2-gdbm-ffi): New variable. (guile3.0-gdbm-ffi): Deprecate. (guile-sqlite3): Switch to GUILE-3.0. (guile2.2-sqlite3): New variable. (guile3.0-sqlite3): Deprecate. (guile-bytestructures): Switch to GUILE-3.0. (guile2.2-bytestructures): New variable. (guile3.0-bytestructures): Deprecate. (guile-git): Switch to GUILE-3.0. (guile2.2-git): New variable. (guile3.0-git): Deprecate. (guile-2.2/bug-fix): * gnu/packages/ci.scm (cuirass): Switch to GUILE-3.0. * gnu/packages/emacs-xyz.scm (emacs-guix): Switch to GUILE-3.0. * gnu/packages/gtk.scm (guile-cairo)[arguments]: New field. Switch to GUILE-3.0. (guile2.2-cairo): New variable. (guile3.0-cairo): Deprecate. (guile-rsvg): Switch to GUILE-3.0. (guile2.2-cairo): New variable. (guile3.0-cairo): Deprecate. (guile-present): Switch to GUILE-3.0. (guile2.2-present): New variable. (guile3.0-present): Deprecate. (guile-gnome)[propagated-inputs]: Use GUILE2.2-CAIRO and GUILE2.2-LIB. * gnu/packages/guile-xyz.scm (guile-fibers)[arguments]: Add #:configure-flags. Switch to GUILE-3.0. (guile2.2-fibers): New variable. (guile3.0-fibers): Deprecate. (guile-syntax-highlight): Switch to GUILE-3.0. (guile2.2-syntax-highlight): New variable. (guile3.0-syntax-highlight): Deprecate. (guile-colorized): Switch to GUILE-3.0. (guile2.2-colorized): New variable. (guile3.0-colorized): Deprecate. (guile-pfds): Switch to GUILE-3.0. (guile2.2-pfds): New variable. (guile3.0-pfds): Deprecate. (guile-simple-zmq): Switch to GUILE-3.0. (guile2.2-simple-zmq): New variable. (guile3.0-simple-zmq): Deprecate. (guile-newt): Switch to GUILE-3.0. (guile2.2-newt): New variable. (guile3.0-newt): Deprecate. (guile-parted): Switch to GUILE-3.0. (guile2.2-parted): New variable. (guile3.0-parted): Deprecate. (guile-config): Switch to GUILE-3.0. (guile2.2-config): New variable. (guile3.0-config): Deprecate. (guile-hall): Switch to GUILE-3.0. (guile2.2-hall): New variable. (guile3.0-hall): Deprecate. (guile-ics): Switch to GUILE-3.0. (guile2.2-ics): New variable. (guile3.0-ics): Deprecate. (guile-wisp)[arguments]: Add 'support-guile-3.0' phase. Switch to GUILE-3.0. (guile2.2-wisp): New variable. (guile3.0-wisp): Deprecate. (guile-lib): Switch to GUILE-3.0. (guile2.2-lib): New variable. (guile3.0-lib): Deprecate. (guile-minikanren): Switch to GUILE-3.0. (guile2.2-minikanren): New variable. (guile3.0-minikanren): Deprecate. (guile-irregex): Switch to GUILE-3.0. (guile2.2-irregex): New variable. (guile3.0-irregex): Deprecate. (haunt): Switch to GUILE-3.0, and remove GUILE-READER. (guile2.2-haunt): New variable. (guile3.0-haunt): Deprecate. (guile-commonmark): Switch to GUILE-3.0. (guile2.2-commonmark): New variable. (guile3.0-commonmark): Deprecate. (mcron): Switch to GUILE-3.0. (guile2.0-mcron): New variable. (guile3.0-mcron): Deprecate. (guile-picture-language): Switch to GUILE-3.0. (guile2.2-picture-language): New variable. (guile3.0-picture-language): Deprecate. (guile-gi): Switch to GUILE-3.0. (guile2.2-gi): New variable. (guile3.0-gi): Deprecate. (guile-hashing): Switch to GUILE-3.0. (guile2.2-hashing): New variable. (guile3.0-hashing): Deprecate. * gnu/packages/package-management.scm (guix): Switch to GUILE-3.0. (guile2.2-guix): New variable. (guile3.0-guix): Deprecate. (gwl): Replace "guile3.0-" with "guile-". (guix-jupyter)[source]: Adjust for Guile 3.0. Switch to GUILE-3.0. * gnu/packages/ssh.scm (guile-ssh): Switch to GUILE-3.0. (guile2.2-ssh): New variable. (guile3.0-ssh): Deprecate. * gnu/packages/admin.scm (shepherd): Switch to GUILE-3.0. (guile2.2-shepherd): New variable. (guile3.0-shepherd): Deprecate. * gnu/packages/mail.scm (mailutils): Switch to GUILE-3.0. (guile2.2-mailutils): New variable. (guile3.0-mailutils): Deprecate. * gnu/packages/plotutils.scm (guile-charting): Switch to GUILE-3.0. (guile2.2-charting): New variable. (guile3.0-charting): Deprecate. * gnu/packages/version-control.scm (libgit2): Switch to GUILE-3.0. * gnu/packages/vpn.scm (vpnc-scripts): Switch to GUILE-3.0. * gnu/packages/web.scm (guix-data-service): Switch to GUILE-3.0. (hpcguix-web): Switch to GUILE-3.0. * guix/self.scm (specification->package): Refer to the "guile-" variants instead of "guile3.0-". * guix/gexp.scm (default-guile): Change to GUILE-3.0. * build-aux/build-self.scm (build): #:guile-version defaults to "3.0". * gnu/packages/commencement.scm (guile-final): Base on GUILE-3.0/FIXED. Ludovic Courtès 2020-03-04Merge branch 'master' into core-updatesMarius Bakke 2020-02-23gnu: jetring: Update to 0.29....* gnu/packages/gnupg.scm (jetring): Update to 0.29. [source]: Download using git-fetch. Efraim Flashner 2020-02-20gnu: guile-gcrypt: Use git-file-name...* gnu/packages/gnupg.scm (guile-gcrypt): Use git-file-name. Jakub Kądziołka 2020-02-20gnu: guile2.0-gcrypt: Don't use guile-2.2....* gnu/packages/gnupg.scm (guile2.0-gcrypt)[native-inputs]: Replace guile with guile-2.0. Efraim Flashner 2020-02-20gnu: guile3.0-gcrypt: Fix compilation....* gnu/packages/gnupg.scm (guile3.0-gcrypt)[native-inputs]: Replace guile with guile-next. Efraim Flashner 2020-02-15gnu: libgpg-error: Update to 1.37....* gnu/packages/patches/libgpg-error-gawk-compat.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/gnupg.scm (libgpg-error): Update to 1.37. [source](modules, patches): Remove. Marius Bakke 2019-12-31Merge remote-tracking branch 'master' into core-updates.Mathieu Othacehe 2019-12-15gnu: guile-gcrypt: Update to 0.2.1....* gnu/packages/gnupg.scm (guile-gcrypt): Update to 0.2.1. Ludovic Courtès 2019-12-12Merge remote-tracking branch 'origin/master' into core-updatesEfraim Flashner 2019-12-10gnu: gnupg: Update to 2.2.19....* gnu/packages/gnupg.scm (gnupg): Update to 2.2.19. Efraim Flashner 2019-12-05Merge branch 'master' into core-updatesMarius Bakke 2019-12-01gnu: paperkey: Use HTTPS source and home page....* gnu/packages/gnupg.scm (paperkey)[source, home-page]: Use HTTPS. Tobias Geerinckx-Rice 2019-12-01gnu: paperkey: Update to 1.6....* gnu/packages/gnupg.scm (paperkey): Update to 1.6. Tobias Geerinckx-Rice 2019-11-28gnu: Use the test-only Xorg variant for tests....* gnu/packages/education.scm (gcompris-qt)[native-inputs]: Change XORG-SERVER to XORG-SERVER-FOR-TESTS. * gnu/packages/engineering.scm (pcb, qucs, openscad)[native-inputs]: Likewise. * gnu/packages/gnome.scm (libbonoboui, d-feet, gspell, libdazzle, libhandy)[native-inputs]: Likewise. * gnu/packages/gnupg.scm (parcimonie)[native-inputs]: Likewise. * gnu/packages/graphics.scm (opensubdiv, rapicorn)[native-inputs]: Likewise. * gnu/packages/gtk.scm (gtksourceview-2, gtksourceview)[native-inputs]: Likewise. * gnu/packages/image-processing.scm (opencv)[native-inputs]: Likewise. * gnu/packages/kde-frameworks.scm (kconfig, kcoreaddons, kwidgetsaddons, kwindowsystem, kdeclarative)[native-inputs]: Likewise. * gnu/packages/kde-plasma.scm (kscreenlocker)[native-inputs]: Likewise. * gnu/packages/messaging.scm (gajim)[native-inputs]: Likewise. * gnu/packages/python-xyz.scm (python-seaborn)[native-inputs]: Likewise. Marius Bakke 2019-11-26gnu: libgcrypt: Update to 1.8.5....* gnu/packages/gnupg.scm (libgcrypt): Update to 1.8.5. [replacement]: Remove field. (libgcrypt-1.8.5): Remove variable. Efraim Flashner 2019-11-26gnupg: Update to 2.2.18....* gnu/packages/gnupg.scm (gnupg): Update to 2.2.18. Efraim Flashner