From 9428f4b68146adb835bd58e3acf0e6b1b4a7748a Mon Sep 17 00:00:00 2001 From: Tony Olagbaiye Date: Wed, 13 May 2020 19:43:03 +0100 Subject: [PATCH] nix: move config to separate file --- flake.nix | 2 +- nix/module/default.nix | 6 +- nix/package/config.nix | 425 +++++++++++++++++++++++++++++++++++++++ nix/package/default.nix | 426 +--------------------------------------- 4 files changed, 435 insertions(+), 424 deletions(-) create mode 100644 nix/package/config.nix diff --git a/flake.nix b/flake.nix index dfe0346fa..69cd36bd5 100644 --- a/flake.nix +++ b/flake.nix @@ -10,7 +10,7 @@ inherit (prev) lib linkFarm; srcFilter = n: t: (lib.hasSuffix ".cc" n || lib.hasSuffix ".h" n || lib.hasSuffix ".S" n || lib.hasSuffix ".md" n || t == "directory"); - repo = lib.cleanSourceWith { filter = srcFilter; src = lib.cleanSource "./."; }; + repo = lib.cleanSourceWith { filter = srcFilter; src = lib.cleanSource ./.; }; buildFileWith = root: name: type: rec { inherit name; file = "${root}/${name}"; diff --git a/nix/module/default.nix b/nix/module/default.nix index 433c1442e..49078bbbe 100644 --- a/nix/module/default.nix +++ b/nix/module/default.nix @@ -1,4 +1,4 @@ -self: { config, system, pkgs, lib, ... }: +self: { config, pkgs, lib, ... }: let cfg = config.services.matrix-construct; @@ -35,7 +35,7 @@ in { package = mkOption { type = types.package; - default = self.packages.${system}.matrix-construct; + default = self.packages.${pkgs.system}.matrix-construct; defaultText = "pkgs.matrix-construct"; description = '' Guix package to use. @@ -55,7 +55,7 @@ in { config = lib.mkIf cfg.enable { environment.systemPackages = [ cfg.package ] ++ lib.optional cfg.useScreen pkgs.screen; - systemd.services.construct = { + systemd.services.matrix-construct = { description = "Matrix Construct"; wantedBy = [ "multi-user.target" ]; diff --git a/nix/package/config.nix b/nix/package/config.nix new file mode 100644 index 000000000..d1ee0dadb --- /dev/null +++ b/nix/package/config.nix @@ -0,0 +1,425 @@ +{ writeText, stdenv, file +, IRCD_ALLOCATOR_USE_DEFAULT +, IRCD_ALLOCATOR_USE_JEMALLOC +}: + +writeText "config.h" '' + #define BRANDING_NAME "construct" + /* #undef CUSTOM_BRANDING */ + + #define HAVE_ALGORITHM 1 + #define HAVE_ARRAY 1 + #define HAVE_ASSERT_H 1 + #define HAVE_ATOMIC 1 + #define HAVE_BACKTRACE 1 + #define HAVE_BITSET 1 + #define HAVE_BOOST /**/ + #define HAVE_BOOST_ASIO /**/ + #define HAVE_BOOST_CHRONO /**/ + /* #undef HAVE_BOOST_CONTEXT */ + #define HAVE_BOOST_COROUTINE /**/ + #define HAVE_BOOST_FILESYSTEM /**/ + #define HAVE_BOOST_SYSTEM /**/ + #define HAVE_CERRNO 1 + #define HAVE_CFENV 1 + #define HAVE_CHRONO 1 + #define HAVE_CMATH 1 + #define HAVE_CODECVT 1 + #define HAVE_CONDITION_VARIABLE 1 + #define HAVE_CPUID_H 1 + #define HAVE_CRYPTO 1 + #define HAVE_CSTDDEF 1 + #define HAVE_CSTDINT 1 + #define HAVE_CSTDIO 1 + #define HAVE_CSTDLIB 1 + #define HAVE_CSTRING 1 + #define HAVE_CTIME 1 + #define HAVE_CXX17 1 + #define HAVE_CXXABI_H 1 + #define HAVE_DEQUE 1 + #define HAVE_DLFCN_H 1 + #define HAVE_DLINFO 1 + #define HAVE_ELF_H 1 + #define HAVE_ENDPROTOENT 1 + #define HAVE_EXCEPTION 1 + #define HAVE_EXECINFO_H 1 + #define HAVE_EXPERIMENTAL_MEMORY_RESOURCE 1 + #define HAVE_EXPERIMENTAL_OPTIONAL 1 + #define HAVE_EXPERIMENTAL_STRING_VIEW 1 + #define HAVE_FCNTL_H 1 + #define HAVE_FILESYSTEM 1 + #define HAVE_FORWARD_LIST 1 + #define HAVE_FSTREAM 1 + #define HAVE_FUNCTIONAL 1 + #define HAVE_GETPROTOBYNAME 1 + #define HAVE_GETPROTOBYNAME_R 1 + #define HAVE_GETTIMEOFDAY 1 + #define HAVE_GNU_LIBC_VERSION_H 1 + #define HAVE_GNU_LIB_NAMES_H 1 + #define HAVE_IFADDRS_H 1 + /* #undef HAVE_INT128_T */ + #define HAVE_INTPTR_T 1 + #define HAVE_INTTYPES_H 1 + #define HAVE_IOMANIP 1 + #define HAVE_IOSFWD 1 + #define HAVE_IOSTREAM 1 + /* #undef HAVE_IPHLPAPI_H */ + #define HAVE_IPV6 1 + #define HAVE_JEMALLOC_H 1 + #define HAVE_LIBNSS_DB 1 + #define HAVE_LIBROCKSDB 1 + #define HAVE_LIMITS 1 + #define HAVE_LINK_H 1 + #define HAVE_LINUX_AIO_ABI_H 1 + #define HAVE_LINUX_HW_BREAKPOINT_H 1 + #define HAVE_LINUX_ICMP_H 1 + #define HAVE_LINUX_IO_URING_H 1 + #define HAVE_LINUX_MAGIC_H 1 + #define HAVE_LINUX_PERF_EVENT_H 1 + #define HAVE_LIST 1 + #define HAVE_LOCALE 1 + #define HAVE_LONG_DOUBLE 1 + /* #undef HAVE_LZ4_H */ + #define HAVE_MAGICKPP_H 1 + #define HAVE_MAGICK_API_H 1 + #define HAVE_MAGICK_WAND_API_H 1 + #define HAVE_MAGIC_H 1 + #define HAVE_MALLOC_H 1 + #define HAVE_MAP 1 + #define HAVE_MEMORY 1 + #define HAVE_MEMORY_H 1 + #define HAVE_MEMORY_RESOURCE 1 + #define HAVE_MUTEX 1 + #define HAVE_NANOSLEEP 1 + #define HAVE_NETDB_H 1 + #define HAVE_NEW 1 + #define HAVE_NUMERIC 1 + #define HAVE_OPENSSL_ASN1_H 1 + #define HAVE_OPENSSL_DH_H 1 + #define HAVE_OPENSSL_EC_H 1 + #define HAVE_OPENSSL_ERR_H 1 + #define HAVE_OPENSSL_EVP_H 1 + #define HAVE_OPENSSL_HMAC_H 1 + #define HAVE_OPENSSL_RIPEMD_H 1 + #define HAVE_OPENSSL_RSA_H 1 + #define HAVE_OPENSSL_SHA_H 1 + #define HAVE_OPENSSL_SSL_H 1 + #define HAVE_OPENSSL_TLS1_H 1 + #define HAVE_OPENSSL_X509_H 1 + #define HAVE_OPTIONAL 1 + /* #undef HAVE_PBC */ + #define HAVE_POSIX_FADVISE 1 + #define HAVE_PREADV2 1 + #define HAVE_PWRITEV2 1 + #define HAVE_QUEUE 1 + #define HAVE_RANDOM 1 + #define HAVE_REGEX 1 + #define HAVE_SET 1 + #define HAVE_SETPROTOENT 1 + #define HAVE_SHARED_MUTEX 1 + #define HAVE_SIGNAL_H 1 + /* #undef HAVE_SNAPPY_H */ + #define HAVE_SNPRINTF 1 + #define HAVE_SODIUM 1 + /* #undef HAVE_SODIUM_H */ + #define HAVE_SSTREAM 1 + #define HAVE_STACK 1 + #define HAVE_STDARG_H 1 + /* #undef HAVE_STDBOOL_H */ + #define HAVE_STDINT_H 1 + #define HAVE_STDLIB_H 1 + #define HAVE_STRCPY 1 + #define HAVE_STRING 1 + #define HAVE_STRINGS_H 1 + #define HAVE_STRING_H 1 + #define HAVE_STRING_VIEW 1 + /* #undef HAVE_STRLCAT */ + /* #undef HAVE_STRLCPY */ + #define HAVE_STRNCPY 1 + #define HAVE_STRNLEN 1 + #define HAVE_SYSTEM_ERROR 1 + #define HAVE_SYS_AUXV_H 1 + #define HAVE_SYS_EVENTFD_H 1 + #define HAVE_SYS_INOTIFY_H 1 + #define HAVE_SYS_IOCTL_H 1 + #define HAVE_SYS_MMAN_H 1 + #define HAVE_SYS_RESOURCE_H 1 + #define HAVE_SYS_STATFS_H 1 + #define HAVE_SYS_STATVFS_H 1 + #define HAVE_SYS_STAT_H 1 + #define HAVE_SYS_SYSCALL_H 1 + #define HAVE_SYS_SYSINFO_H 1 + #define HAVE_SYS_SYSMACROS_H 1 + #define HAVE_SYS_TIME_H 1 + #define HAVE_SYS_TYPES_H 1 + #define HAVE_SYS_UTSNAME_H 1 + #define HAVE_THREAD 1 + #define HAVE_TYPEINDEX 1 + #define HAVE_TYPE_TRAITS 1 + /* #undef HAVE_UINT128_T */ + #define HAVE_UINTPTR_T 1 + #define HAVE_UNISTD_H 1 + #define HAVE_UNORDERED_MAP 1 + #define HAVE_UTILITY 1 + /* #undef HAVE_VALGRIND_CALLGRIND_H */ + /* #undef HAVE_VALGRIND_MEMCHECK_H */ + /* #undef HAVE_VALGRIND_VALGRIND_H */ + #define HAVE_VARIANT 1 + #define HAVE_VECTOR 1 + #define HAVE_VSNPRINTF 1 + /* #undef HAVE_WIN32 */ + /* #undef HAVE_WINDOWS_H */ + /* #undef HAVE_WINSOCK2_H */ + /* #undef HAVE_WS2TCPIP_H */ + #define HAVE_X86INTRIN_H 1 + #define HAVE_ZLIB_H 1 + /* #undef HAVE__BOOL */ + #define HAVE___INT128 1 + #define HAVE___INT128_T 1 + #define HAVE___UINT128_T 1 + + /* Use the default allocator */ + ${if IRCD_ALLOCATOR_USE_DEFAULT then "#define IRCD_ALLOCATOR_USE_DEFAULT 1" else ""} + + /* Use jemalloc as the allocator */ + ${if IRCD_ALLOCATOR_USE_JEMALLOC then "#define IRCD_ALLOCATOR_USE_JEMALLOC 1" else ""} + + /* Linux AIO is supported and will be used */ + #define IRCD_USE_AIO 1 + + /* Linux io_uring is supported and may be used */ + #define IRCD_USE_IOU 1 + + /* Define to the sub-directory where libtool stores uninstalled libraries. */ + #define LT_OBJDIR ".libs/" + + /* Name of package */ + #define PACKAGE "construct" + + /* Define to the address where bug reports for this package should be sent. */ + #define PACKAGE_BUGREPORT "" + + /* Define to the full name of this package. */ + #define PACKAGE_NAME "construct" + + /* Define to the full name and version of this package. */ + #define PACKAGE_STRING "construct 1.0-dev" + + /* Define to the one symbol short name of this package. */ + #define PACKAGE_TARNAME "construct" + + /* Define to the home page for this package. */ + #define PACKAGE_URL "" + + /* Define to the version of this package. */ + #define PACKAGE_VERSION "1.0-dev" + + /* #undef RB_ASSERT */ + /* #undef RB_ASSERT_INTRINSIC */ + #define RB_BIN_DIR "@out@/bin" + /* #undef RB_COMPACT */ + #define RB_CONF_DIR "@out@/etc" + #define RB_CXX "${stdenv.cc}/bin/g++ -std=gnu++17" + #define RB_CXX_EPOCH 9.3.0 + #define RB_CXX_VERSION "9.3.0" + #define RB_DATAROOT_DIR "@out@/share" + #define RB_DATA_DIR "@out@/share/construct" + #define RB_DATESTR "Thu 1 Jan 01:00:00 BST 1970" + #define RB_DATE_CONFIGURED "Thu 1 Jan 01:00:00 BST 1970" + #define RB_DB_DIR "@out@/var/db/construct" + /* #undef RB_DEBUG */ + #define RB_DEBUG_LEVEL 0 + /* #undef RB_ENABLE_JS */ + #define RB_GENERIC 1 + /* #undef RB_INCLUDED_BOOST */ + #define RB_INCLUDE_DIR "@out@/include" + #define RB_INC_ALGORITHM algorithm> + #define RB_INC_ARRAY array> + #define RB_INC_ASSERT_H assert.h> + #define RB_INC_ATOMIC atomic> + #define RB_INC_BITSET bitset> + #define RB_INC_CERRNO cerrno> + #define RB_INC_CFENV cfenv> + #define RB_INC_CHRONO chrono> + #define RB_INC_CMATH cmath> + #define RB_INC_CODECVT codecvt> + #define RB_INC_CONDITION_VARIABLE condition_variable> + #define RB_INC_CPUID_H cpuid.h> + #define RB_INC_CSTDDEF cstddef> + #define RB_INC_CSTDINT cstdint> + #define RB_INC_CSTDIO cstdio> + #define RB_INC_CSTDLIB cstdlib> + #define RB_INC_CSTRING cstring> + #define RB_INC_CTIME ctime> + #define RB_INC_CXXABI_H cxxabi.h> + #define RB_INC_DEQUE deque> + #define RB_INC_DLFCN_H dlfcn.h> + #define RB_INC_ELF_H elf.h> + #define RB_INC_EXCEPTION exception> + #define RB_INC_EXECINFO_H execinfo.h> + #define RB_INC_EXPERIMENTAL_MEMORY_RESOURCE experimental/memory_resource> + #define RB_INC_EXPERIMENTAL_OPTIONAL experimental/optional> + #define RB_INC_EXPERIMENTAL_STRING_VIEW experimental/string_view> + #define RB_INC_FCNTL_H fcntl.h> + #define RB_INC_FILESYSTEM filesystem> + #define RB_INC_FORWARD_LIST forward_list> + #define RB_INC_FSTREAM fstream> + #define RB_INC_FUNCTIONAL functional> + #define RB_INC_GNU_LIBC_VERSION_H gnu/libc-version.h> + #define RB_INC_GNU_LIB_NAMES_H gnu/lib-names.h> + #define RB_INC_IFADDRS_H ifaddrs.h> + #define RB_INC_IOMANIP iomanip> + #define RB_INC_IOSFWD iosfwd> + #define RB_INC_IOSTREAM iostream> + #define RB_INC_IPHLPAPI_H stddef.h> + #define RB_INC_JEMALLOC_H jemalloc/jemalloc.h> + /* #undef RB_INC_JSAPI_H */ + /* #undef RB_INC_JSFRIENDAPI_H */ + /* #undef RB_INC_JS_CONVERSIONS_H */ + #define RB_INC_LIMITS limits> + #define RB_INC_LINK_H link.h> + #define RB_INC_LINUX_AIO_ABI_H linux/aio_abi.h> + #define RB_INC_LINUX_HW_BREAKPOINT_H linux/hw_breakpoint.h> + #define RB_INC_LINUX_ICMP_H linux/icmp.h> + #define RB_INC_LINUX_IO_URING_H linux/io_uring.h> + #define RB_INC_LINUX_MAGIC_H linux/magic.h> + #define RB_INC_LINUX_PERF_EVENT_H linux/perf_event.h> + #define RB_INC_LIST list> + #define RB_INC_LOCALE locale> + #define RB_INC_LZ4_H stddef.h> + #define RB_INC_MAGICKPP_H Magick++.h> + #define RB_INC_MAGICK_API_H magick/api.h> + #define RB_INC_MAGICK_WAND_API_H wand/wand_api.h> + #define RB_INC_MAGIC_H magic.h> + #define RB_INC_MALLOC_H malloc.h> + #define RB_INC_MAP map> + #define RB_INC_MEMORY memory> + #define RB_INC_MEMORY_RESOURCE memory_resource> + #define RB_INC_MUTEX mutex> + #define RB_INC_NETDB_H netdb.h> + #define RB_INC_NEW new> + #define RB_INC_NUMERIC numeric> + #define RB_INC_OPENSSL_ASN1_H openssl/asn1.h> + #define RB_INC_OPENSSL_DH_H openssl/dh.h> + #define RB_INC_OPENSSL_EC_H openssl/ec.h> + #define RB_INC_OPENSSL_ERR_H openssl/err.h> + #define RB_INC_OPENSSL_EVP_H openssl/evp.h> + #define RB_INC_OPENSSL_HMAC_H openssl/hmac.h> + #define RB_INC_OPENSSL_RIPEMD_H openssl/ripemd.h> + #define RB_INC_OPENSSL_RSA_H openssl/rsa.h> + #define RB_INC_OPENSSL_SHA_H openssl/sha.h> + #define RB_INC_OPENSSL_SSL_H openssl/ssl.h> + #define RB_INC_OPENSSL_TLS1_H openssl/tls1.h> + #define RB_INC_OPENSSL_X509_H openssl/x509.h> + #define RB_INC_OPTIONAL optional> + #define RB_INC_QUEUE queue> + #define RB_INC_RANDOM random> + #define RB_INC_REGEX regex> + #define RB_INC_SET set> + #define RB_INC_SHARED_MUTEX shared_mutex> + #define RB_INC_SIGNAL_H signal.h> + #define RB_INC_SNAPPY_H stddef.h> + /* #undef RB_INC_SODIUM_H */ + #define RB_INC_SSTREAM sstream> + #define RB_INC_STACK stack> + #define RB_INC_STDARG_H stdarg.h> + #define RB_INC_STRING string> + #define RB_INC_STRING_VIEW string_view> + #define RB_INC_SYSTEM_ERROR system_error> + #define RB_INC_SYS_AUXV_H sys/auxv.h> + #define RB_INC_SYS_EVENTFD_H sys/eventfd.h> + #define RB_INC_SYS_INOTIFY_H sys/inotify.h> + #define RB_INC_SYS_IOCTL_H sys/ioctl.h> + #define RB_INC_SYS_MMAN_H sys/mman.h> + #define RB_INC_SYS_RESOURCE_H sys/resource.h> + #define RB_INC_SYS_STATFS_H sys/statfs.h> + #define RB_INC_SYS_STATVFS_H sys/statvfs.h> + #define RB_INC_SYS_STAT_H sys/stat.h> + #define RB_INC_SYS_SYSCALL_H sys/syscall.h> + #define RB_INC_SYS_SYSINFO_H sys/sysinfo.h> + #define RB_INC_SYS_SYSMACROS_H sys/sysmacros.h> + #define RB_INC_SYS_TIME_H sys/time.h> + #define RB_INC_SYS_TYPES_H sys/types.h> + #define RB_INC_SYS_UTSNAME_H sys/utsname.h> + #define RB_INC_THREAD thread> + #define RB_INC_TYPEINDEX typeindex> + #define RB_INC_TYPE_TRAITS type_traits> + #define RB_INC_UNISTD_H unistd.h> + #define RB_INC_UNORDERED_MAP unordered_map> + #define RB_INC_UTILITY utility> + #define RB_INC_VALGRIND_CALLGRIND_H stddef.h> + #define RB_INC_VALGRIND_MEMCHECK_H stddef.h> + #define RB_INC_VALGRIND_VALGRIND_H stddef.h> + #define RB_INC_VARIANT variant> + #define RB_INC_VECTOR vector> + #define RB_INC_WINDOWS_H stddef.h> + #define RB_INC_WINSOCK2_H stddef.h> + #define RB_INC_WS2TCPIP_H stddef.h> + #define RB_INC_X86INTRIN_H x86intrin.h> + #define RB_INC_ZLIB_H zlib.h> + #define RB_LIB_DIR "@out@/lib" + #define RB_LOCALSTATE_DIR "@out@/var" + #define RB_LOG_DIR "@out@/var/log/construct" + #define RB_LOG_LEVEL 4 + #define RB_MAGIC_FILE "${file.out}/share/misc/magic.mgc" + #define RB_MODULE_DIR "@out@/lib/modules" + #define RB_MXID_MAXLEN 255 + #define RB_OPTIMIZE_LEVEL 3 + #define RB_OS "${stdenv.system}" + #define RB_PREFIX "@out@" + #define RB_RUN_DIR "/construct" + #define RB_TIME_CONFIGURED 0 + /* #undef RB_UNTUNED */ + #define RB_WEBAPP_DIR "@out@/share/webapp" + + #define SIZEOF_CHAR 1 + #define SIZEOF_DOUBLE 8 + #define SIZEOF_FLOAT 4 + #define SIZEOF_INT 4 + #define SIZEOF_INT128_T 0 + #define SIZEOF_LONG 8 + #define SIZEOF_LONG_DOUBLE 16 + #define SIZEOF_LONG_LONG 8 + #define SIZEOF_SHORT 2 + #define SIZEOF_UINT128_T 0 + #define SIZEOF___INT128 16 + #define SIZEOF___INT128_T 16 + #define SIZEOF___UINT128_T 16 + #define STDC_HEADERS 1 + + /* Enable extensions on AIX 3, Interix. */ + #ifndef _ALL_SOURCE + # define _ALL_SOURCE 1 + #endif + /* Enable GNU extensions on systems that have them. */ + #ifndef _GNU_SOURCE + # define _GNU_SOURCE 1 + #endif + /* Enable threading extensions on Solaris. */ + #ifndef _POSIX_PTHREAD_SEMANTICS + # define _POSIX_PTHREAD_SEMANTICS 1 + #endif + /* Enable extensions on HP NonStop. */ + #ifndef _TANDEM_SOURCE + # define _TANDEM_SOURCE 1 + #endif + /* Enable general extensions on Solaris. */ + #ifndef __EXTENSIONS__ + # define __EXTENSIONS__ 1 + #endif + + /* Version number of package */ + #define VERSION "1.0-dev" + + /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ + #if defined AC_APPLE_UNIVERSAL_BUILD + # if defined __BIG_ENDIAN__ + # define WORDS_BIGENDIAN 1 + # endif + #else + # ifndef WORDS_BIGENDIAN + /* # undef WORDS_BIGENDIAN */ + # endif + #endif +'' diff --git a/nix/package/default.nix b/nix/package/default.nix index b314d69aa..168bd107c 100644 --- a/nix/package/default.nix +++ b/nix/package/default.nix @@ -42,426 +42,12 @@ in stdenv.mkDerivation rec { name = "${pname}-includes"; src = "${source}/include/"; - configHeader = with pkgs; writeText "config.h" '' - #define BRANDING_NAME "construct" - /* #undef CUSTOM_BRANDING */ - - #define HAVE_ALGORITHM 1 - #define HAVE_ARRAY 1 - #define HAVE_ASSERT_H 1 - #define HAVE_ATOMIC 1 - #define HAVE_BACKTRACE 1 - #define HAVE_BITSET 1 - #define HAVE_BOOST /**/ - #define HAVE_BOOST_ASIO /**/ - #define HAVE_BOOST_CHRONO /**/ - /* #undef HAVE_BOOST_CONTEXT */ - #define HAVE_BOOST_COROUTINE /**/ - #define HAVE_BOOST_FILESYSTEM /**/ - #define HAVE_BOOST_SYSTEM /**/ - #define HAVE_CERRNO 1 - #define HAVE_CFENV 1 - #define HAVE_CHRONO 1 - #define HAVE_CMATH 1 - #define HAVE_CODECVT 1 - #define HAVE_CONDITION_VARIABLE 1 - #define HAVE_CPUID_H 1 - #define HAVE_CRYPTO 1 - #define HAVE_CSTDDEF 1 - #define HAVE_CSTDINT 1 - #define HAVE_CSTDIO 1 - #define HAVE_CSTDLIB 1 - #define HAVE_CSTRING 1 - #define HAVE_CTIME 1 - #define HAVE_CXX17 1 - #define HAVE_CXXABI_H 1 - #define HAVE_DEQUE 1 - #define HAVE_DLFCN_H 1 - #define HAVE_DLINFO 1 - #define HAVE_ELF_H 1 - #define HAVE_ENDPROTOENT 1 - #define HAVE_EXCEPTION 1 - #define HAVE_EXECINFO_H 1 - #define HAVE_EXPERIMENTAL_MEMORY_RESOURCE 1 - #define HAVE_EXPERIMENTAL_OPTIONAL 1 - #define HAVE_EXPERIMENTAL_STRING_VIEW 1 - #define HAVE_FCNTL_H 1 - #define HAVE_FILESYSTEM 1 - #define HAVE_FORWARD_LIST 1 - #define HAVE_FSTREAM 1 - #define HAVE_FUNCTIONAL 1 - #define HAVE_GETPROTOBYNAME 1 - #define HAVE_GETPROTOBYNAME_R 1 - #define HAVE_GETTIMEOFDAY 1 - #define HAVE_GNU_LIBC_VERSION_H 1 - #define HAVE_GNU_LIB_NAMES_H 1 - #define HAVE_IFADDRS_H 1 - /* #undef HAVE_INT128_T */ - #define HAVE_INTPTR_T 1 - #define HAVE_INTTYPES_H 1 - #define HAVE_IOMANIP 1 - #define HAVE_IOSFWD 1 - #define HAVE_IOSTREAM 1 - /* #undef HAVE_IPHLPAPI_H */ - #define HAVE_IPV6 1 - #define HAVE_JEMALLOC_H 1 - #define HAVE_LIBNSS_DB 1 - #define HAVE_LIBROCKSDB 1 - #define HAVE_LIMITS 1 - #define HAVE_LINK_H 1 - #define HAVE_LINUX_AIO_ABI_H 1 - #define HAVE_LINUX_HW_BREAKPOINT_H 1 - #define HAVE_LINUX_ICMP_H 1 - #define HAVE_LINUX_IO_URING_H 1 - #define HAVE_LINUX_MAGIC_H 1 - #define HAVE_LINUX_PERF_EVENT_H 1 - #define HAVE_LIST 1 - #define HAVE_LOCALE 1 - #define HAVE_LONG_DOUBLE 1 - /* #undef HAVE_LZ4_H */ - #define HAVE_MAGICKPP_H 1 - #define HAVE_MAGICK_API_H 1 - #define HAVE_MAGICK_WAND_API_H 1 - #define HAVE_MAGIC_H 1 - #define HAVE_MALLOC_H 1 - #define HAVE_MAP 1 - #define HAVE_MEMORY 1 - #define HAVE_MEMORY_H 1 - #define HAVE_MEMORY_RESOURCE 1 - #define HAVE_MUTEX 1 - #define HAVE_NANOSLEEP 1 - #define HAVE_NETDB_H 1 - #define HAVE_NEW 1 - #define HAVE_NUMERIC 1 - #define HAVE_OPENSSL_ASN1_H 1 - #define HAVE_OPENSSL_DH_H 1 - #define HAVE_OPENSSL_EC_H 1 - #define HAVE_OPENSSL_ERR_H 1 - #define HAVE_OPENSSL_EVP_H 1 - #define HAVE_OPENSSL_HMAC_H 1 - #define HAVE_OPENSSL_RIPEMD_H 1 - #define HAVE_OPENSSL_RSA_H 1 - #define HAVE_OPENSSL_SHA_H 1 - #define HAVE_OPENSSL_SSL_H 1 - #define HAVE_OPENSSL_TLS1_H 1 - #define HAVE_OPENSSL_X509_H 1 - #define HAVE_OPTIONAL 1 - /* #undef HAVE_PBC */ - #define HAVE_POSIX_FADVISE 1 - #define HAVE_PREADV2 1 - #define HAVE_PWRITEV2 1 - #define HAVE_QUEUE 1 - #define HAVE_RANDOM 1 - #define HAVE_REGEX 1 - #define HAVE_SET 1 - #define HAVE_SETPROTOENT 1 - #define HAVE_SHARED_MUTEX 1 - #define HAVE_SIGNAL_H 1 - /* #undef HAVE_SNAPPY_H */ - #define HAVE_SNPRINTF 1 - #define HAVE_SODIUM 1 - /* #undef HAVE_SODIUM_H */ - #define HAVE_SSTREAM 1 - #define HAVE_STACK 1 - #define HAVE_STDARG_H 1 - /* #undef HAVE_STDBOOL_H */ - #define HAVE_STDINT_H 1 - #define HAVE_STDLIB_H 1 - #define HAVE_STRCPY 1 - #define HAVE_STRING 1 - #define HAVE_STRINGS_H 1 - #define HAVE_STRING_H 1 - #define HAVE_STRING_VIEW 1 - /* #undef HAVE_STRLCAT */ - /* #undef HAVE_STRLCPY */ - #define HAVE_STRNCPY 1 - #define HAVE_STRNLEN 1 - #define HAVE_SYSTEM_ERROR 1 - #define HAVE_SYS_AUXV_H 1 - #define HAVE_SYS_EVENTFD_H 1 - #define HAVE_SYS_INOTIFY_H 1 - #define HAVE_SYS_IOCTL_H 1 - #define HAVE_SYS_MMAN_H 1 - #define HAVE_SYS_RESOURCE_H 1 - #define HAVE_SYS_STATFS_H 1 - #define HAVE_SYS_STATVFS_H 1 - #define HAVE_SYS_STAT_H 1 - #define HAVE_SYS_SYSCALL_H 1 - #define HAVE_SYS_SYSINFO_H 1 - #define HAVE_SYS_SYSMACROS_H 1 - #define HAVE_SYS_TIME_H 1 - #define HAVE_SYS_TYPES_H 1 - #define HAVE_SYS_UTSNAME_H 1 - #define HAVE_THREAD 1 - #define HAVE_TYPEINDEX 1 - #define HAVE_TYPE_TRAITS 1 - /* #undef HAVE_UINT128_T */ - #define HAVE_UINTPTR_T 1 - #define HAVE_UNISTD_H 1 - #define HAVE_UNORDERED_MAP 1 - #define HAVE_UTILITY 1 - /* #undef HAVE_VALGRIND_CALLGRIND_H */ - /* #undef HAVE_VALGRIND_MEMCHECK_H */ - /* #undef HAVE_VALGRIND_VALGRIND_H */ - #define HAVE_VARIANT 1 - #define HAVE_VECTOR 1 - #define HAVE_VSNPRINTF 1 - /* #undef HAVE_WIN32 */ - /* #undef HAVE_WINDOWS_H */ - /* #undef HAVE_WINSOCK2_H */ - /* #undef HAVE_WS2TCPIP_H */ - #define HAVE_X86INTRIN_H 1 - #define HAVE_ZLIB_H 1 - /* #undef HAVE__BOOL */ - #define HAVE___INT128 1 - #define HAVE___INT128_T 1 - #define HAVE___UINT128_T 1 - - /* Use the default allocator */ - ${if useJemalloc then "" else "#define IRCD_ALLOCATOR_USE_DEFAULT 1"} - - /* Use jemalloc as the allocator */ - ${if useJemalloc then "#define IRCD_ALLOCATOR_USE_JEMALLOC 1" else ""} - - /* Linux AIO is supported and will be used */ - #define IRCD_USE_AIO 1 - - /* Linux io_uring is supported and may be used */ - #define IRCD_USE_IOU 1 - - /* Define to the sub-directory where libtool stores uninstalled libraries. */ - #define LT_OBJDIR ".libs/" - - /* Name of package */ - #define PACKAGE "construct" - - /* Define to the address where bug reports for this package should be sent. */ - #define PACKAGE_BUGREPORT "" - - /* Define to the full name of this package. */ - #define PACKAGE_NAME "construct" - - /* Define to the full name and version of this package. */ - #define PACKAGE_STRING "construct 1.0-dev" - - /* Define to the one symbol short name of this package. */ - #define PACKAGE_TARNAME "construct" - - /* Define to the home page for this package. */ - #define PACKAGE_URL "" - - /* Define to the version of this package. */ - #define PACKAGE_VERSION "1.0-dev" - - /* #undef RB_ASSERT */ - /* #undef RB_ASSERT_INTRINSIC */ - #define RB_BIN_DIR "@out@/bin" - /* #undef RB_COMPACT */ - #define RB_CONF_DIR "@out@/etc" - #define RB_CXX "${stdenv.cc}/bin/g++ -std=gnu++17" - #define RB_CXX_EPOCH 9.3.0 - #define RB_CXX_VERSION "9.3.0" - #define RB_DATAROOT_DIR "@out@/share" - #define RB_DATA_DIR "@out@/share/construct" - #define RB_DATESTR "Thu 1 Jan 01:00:00 BST 1970" - #define RB_DATE_CONFIGURED "Thu 1 Jan 01:00:00 BST 1970" - #define RB_DB_DIR "@out@/var/db/construct" - /* #undef RB_DEBUG */ - #define RB_DEBUG_LEVEL 0 - /* #undef RB_ENABLE_JS */ - #define RB_GENERIC 1 - /* #undef RB_INCLUDED_BOOST */ - #define RB_INCLUDE_DIR "@out@/include" - #define RB_INC_ALGORITHM algorithm> - #define RB_INC_ARRAY array> - #define RB_INC_ASSERT_H assert.h> - #define RB_INC_ATOMIC atomic> - #define RB_INC_BITSET bitset> - #define RB_INC_CERRNO cerrno> - #define RB_INC_CFENV cfenv> - #define RB_INC_CHRONO chrono> - #define RB_INC_CMATH cmath> - #define RB_INC_CODECVT codecvt> - #define RB_INC_CONDITION_VARIABLE condition_variable> - #define RB_INC_CPUID_H cpuid.h> - #define RB_INC_CSTDDEF cstddef> - #define RB_INC_CSTDINT cstdint> - #define RB_INC_CSTDIO cstdio> - #define RB_INC_CSTDLIB cstdlib> - #define RB_INC_CSTRING cstring> - #define RB_INC_CTIME ctime> - #define RB_INC_CXXABI_H cxxabi.h> - #define RB_INC_DEQUE deque> - #define RB_INC_DLFCN_H dlfcn.h> - #define RB_INC_ELF_H elf.h> - #define RB_INC_EXCEPTION exception> - #define RB_INC_EXECINFO_H execinfo.h> - #define RB_INC_EXPERIMENTAL_MEMORY_RESOURCE experimental/memory_resource> - #define RB_INC_EXPERIMENTAL_OPTIONAL experimental/optional> - #define RB_INC_EXPERIMENTAL_STRING_VIEW experimental/string_view> - #define RB_INC_FCNTL_H fcntl.h> - #define RB_INC_FILESYSTEM filesystem> - #define RB_INC_FORWARD_LIST forward_list> - #define RB_INC_FSTREAM fstream> - #define RB_INC_FUNCTIONAL functional> - #define RB_INC_GNU_LIBC_VERSION_H gnu/libc-version.h> - #define RB_INC_GNU_LIB_NAMES_H gnu/lib-names.h> - #define RB_INC_IFADDRS_H ifaddrs.h> - #define RB_INC_IOMANIP iomanip> - #define RB_INC_IOSFWD iosfwd> - #define RB_INC_IOSTREAM iostream> - #define RB_INC_IPHLPAPI_H stddef.h> - #define RB_INC_JEMALLOC_H jemalloc/jemalloc.h> - /* #undef RB_INC_JSAPI_H */ - /* #undef RB_INC_JSFRIENDAPI_H */ - /* #undef RB_INC_JS_CONVERSIONS_H */ - #define RB_INC_LIMITS limits> - #define RB_INC_LINK_H link.h> - #define RB_INC_LINUX_AIO_ABI_H linux/aio_abi.h> - #define RB_INC_LINUX_HW_BREAKPOINT_H linux/hw_breakpoint.h> - #define RB_INC_LINUX_ICMP_H linux/icmp.h> - #define RB_INC_LINUX_IO_URING_H linux/io_uring.h> - #define RB_INC_LINUX_MAGIC_H linux/magic.h> - #define RB_INC_LINUX_PERF_EVENT_H linux/perf_event.h> - #define RB_INC_LIST list> - #define RB_INC_LOCALE locale> - #define RB_INC_LZ4_H stddef.h> - #define RB_INC_MAGICKPP_H Magick++.h> - #define RB_INC_MAGICK_API_H magick/api.h> - #define RB_INC_MAGICK_WAND_API_H wand/wand_api.h> - #define RB_INC_MAGIC_H magic.h> - #define RB_INC_MALLOC_H malloc.h> - #define RB_INC_MAP map> - #define RB_INC_MEMORY memory> - #define RB_INC_MEMORY_RESOURCE memory_resource> - #define RB_INC_MUTEX mutex> - #define RB_INC_NETDB_H netdb.h> - #define RB_INC_NEW new> - #define RB_INC_NUMERIC numeric> - #define RB_INC_OPENSSL_ASN1_H openssl/asn1.h> - #define RB_INC_OPENSSL_DH_H openssl/dh.h> - #define RB_INC_OPENSSL_EC_H openssl/ec.h> - #define RB_INC_OPENSSL_ERR_H openssl/err.h> - #define RB_INC_OPENSSL_EVP_H openssl/evp.h> - #define RB_INC_OPENSSL_HMAC_H openssl/hmac.h> - #define RB_INC_OPENSSL_RIPEMD_H openssl/ripemd.h> - #define RB_INC_OPENSSL_RSA_H openssl/rsa.h> - #define RB_INC_OPENSSL_SHA_H openssl/sha.h> - #define RB_INC_OPENSSL_SSL_H openssl/ssl.h> - #define RB_INC_OPENSSL_TLS1_H openssl/tls1.h> - #define RB_INC_OPENSSL_X509_H openssl/x509.h> - #define RB_INC_OPTIONAL optional> - #define RB_INC_QUEUE queue> - #define RB_INC_RANDOM random> - #define RB_INC_REGEX regex> - #define RB_INC_SET set> - #define RB_INC_SHARED_MUTEX shared_mutex> - #define RB_INC_SIGNAL_H signal.h> - #define RB_INC_SNAPPY_H stddef.h> - /* #undef RB_INC_SODIUM_H */ - #define RB_INC_SSTREAM sstream> - #define RB_INC_STACK stack> - #define RB_INC_STDARG_H stdarg.h> - #define RB_INC_STRING string> - #define RB_INC_STRING_VIEW string_view> - #define RB_INC_SYSTEM_ERROR system_error> - #define RB_INC_SYS_AUXV_H sys/auxv.h> - #define RB_INC_SYS_EVENTFD_H sys/eventfd.h> - #define RB_INC_SYS_INOTIFY_H sys/inotify.h> - #define RB_INC_SYS_IOCTL_H sys/ioctl.h> - #define RB_INC_SYS_MMAN_H sys/mman.h> - #define RB_INC_SYS_RESOURCE_H sys/resource.h> - #define RB_INC_SYS_STATFS_H sys/statfs.h> - #define RB_INC_SYS_STATVFS_H sys/statvfs.h> - #define RB_INC_SYS_STAT_H sys/stat.h> - #define RB_INC_SYS_SYSCALL_H sys/syscall.h> - #define RB_INC_SYS_SYSINFO_H sys/sysinfo.h> - #define RB_INC_SYS_SYSMACROS_H sys/sysmacros.h> - #define RB_INC_SYS_TIME_H sys/time.h> - #define RB_INC_SYS_TYPES_H sys/types.h> - #define RB_INC_SYS_UTSNAME_H sys/utsname.h> - #define RB_INC_THREAD thread> - #define RB_INC_TYPEINDEX typeindex> - #define RB_INC_TYPE_TRAITS type_traits> - #define RB_INC_UNISTD_H unistd.h> - #define RB_INC_UNORDERED_MAP unordered_map> - #define RB_INC_UTILITY utility> - #define RB_INC_VALGRIND_CALLGRIND_H stddef.h> - #define RB_INC_VALGRIND_MEMCHECK_H stddef.h> - #define RB_INC_VALGRIND_VALGRIND_H stddef.h> - #define RB_INC_VARIANT variant> - #define RB_INC_VECTOR vector> - #define RB_INC_WINDOWS_H stddef.h> - #define RB_INC_WINSOCK2_H stddef.h> - #define RB_INC_WS2TCPIP_H stddef.h> - #define RB_INC_X86INTRIN_H x86intrin.h> - #define RB_INC_ZLIB_H zlib.h> - #define RB_LIB_DIR "@out@/lib" - #define RB_LOCALSTATE_DIR "@out@/var" - #define RB_LOG_DIR "@out@/var/log/construct" - #define RB_LOG_LEVEL 4 - #define RB_MAGIC_FILE "${file.out}/share/misc/magic.mgc" - #define RB_MODULE_DIR "@out@/lib/modules" - #define RB_MXID_MAXLEN 255 - #define RB_OPTIMIZE_LEVEL 3 - #define RB_OS "${stdenv.system}" - #define RB_PREFIX "@out@" - #define RB_RUN_DIR "/construct" - #define RB_TIME_CONFIGURED 0 - /* #undef RB_UNTUNED */ - #define RB_WEBAPP_DIR "@out@/share/webapp" - - #define SIZEOF_CHAR 1 - #define SIZEOF_DOUBLE 8 - #define SIZEOF_FLOAT 4 - #define SIZEOF_INT 4 - #define SIZEOF_INT128_T 0 - #define SIZEOF_LONG 8 - #define SIZEOF_LONG_DOUBLE 16 - #define SIZEOF_LONG_LONG 8 - #define SIZEOF_SHORT 2 - #define SIZEOF_UINT128_T 0 - #define SIZEOF___INT128 16 - #define SIZEOF___INT128_T 16 - #define SIZEOF___UINT128_T 16 - #define STDC_HEADERS 1 - - /* Enable extensions on AIX 3, Interix. */ - #ifndef _ALL_SOURCE - # define _ALL_SOURCE 1 - #endif - /* Enable GNU extensions on systems that have them. */ - #ifndef _GNU_SOURCE - # define _GNU_SOURCE 1 - #endif - /* Enable threading extensions on Solaris. */ - #ifndef _POSIX_PTHREAD_SEMANTICS - # define _POSIX_PTHREAD_SEMANTICS 1 - #endif - /* Enable extensions on HP NonStop. */ - #ifndef _TANDEM_SOURCE - # define _TANDEM_SOURCE 1 - #endif - /* Enable general extensions on Solaris. */ - #ifndef __EXTENSIONS__ - # define __EXTENSIONS__ 1 - #endif - - /* Version number of package */ - #define VERSION "1.0-dev" - - /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most - significant byte first (like Motorola and SPARC, unlike Intel). */ - #if defined AC_APPLE_UNIVERSAL_BUILD - # if defined __BIG_ENDIAN__ - # define WORDS_BIGENDIAN 1 - # endif - #else - # ifndef WORDS_BIGENDIAN - /* # undef WORDS_BIGENDIAN */ - # endif - #endif - ''; + configHeader = import ./config.nix { + inherit (pkgs) writeText file; + inherit stdenv; + IRCD_ALLOCATOR_USE_DEFAULT = !useJemalloc; + IRCD_ALLOCATOR_USE_JEMALLOC = useJemalloc; + }; buildInputs = with pkgs; [ boost openssl ];