aboutsummaryrefslogtreecommitdiff
path: root/srcds-pkgs
diff options
context:
space:
mode:
authoryuuko <yuuko@partyvan.io>2026-01-03 17:50:09 -0800
committeryuuko <yuuko@partyvan.io>2026-01-03 17:54:47 -0800
commite7e0ce7d474a1dca211e9f8d3d631d9cb29592fb (patch)
tree03aad02d050ef0f7644270de41c9cc09a79f2453 /srcds-pkgs
parent72b50588f98aa7692f87e238c39f48ca08f46ea6 (diff)
mysql 5.5: just give it an ancient cmake. why not. yeah.HEADmaster
Diffstat (limited to 'srcds-pkgs')
-rw-r--r--srcds-pkgs/bad/cmake-ancient/application-services.patch60
-rw-r--r--srcds-pkgs/bad/cmake-ancient/default.nix98
-rw-r--r--srcds-pkgs/bad/cmake-ancient/libuv-application-services.patch53
-rw-r--r--srcds-pkgs/bad/cmake-ancient/search-path-2.8.patch92
-rw-r--r--srcds-pkgs/bad/cmake-ancient/search-path.patch77
-rwxr-xr-xsrcds-pkgs/bad/cmake-ancient/setup-hook.sh160
-rw-r--r--srcds-pkgs/bad/mysql_5_5.nix5
7 files changed, 542 insertions, 3 deletions
diff --git a/srcds-pkgs/bad/cmake-ancient/application-services.patch b/srcds-pkgs/bad/cmake-ancient/application-services.patch
new file mode 100644
index 0000000..e0399d0
--- /dev/null
+++ b/srcds-pkgs/bad/cmake-ancient/application-services.patch
@@ -0,0 +1,60 @@
+diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
+index 8aff8f6..af1852d 100644
+--- a/Source/CMakeLists.txt
++++ b/Source/CMakeLists.txt
+@@ -791,12 +791,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR MATCHES "sparc"
+ endif()
+ endif()
+
+ # On Apple we need CoreFoundation and CoreServices
+ if(APPLE)
+ target_link_libraries(CMakeLib "-framework CoreFoundation")
+- target_link_libraries(CMakeLib "-framework CoreServices")
+ endif()
+
+ if(WIN32 AND NOT UNIX)
+ # We need the rpcrt4 library on Windows.
+ # We need the crypt32 library on Windows for crypto/cert APIs.
+diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
+index e353a37..b06f842 100644
+--- a/Source/cmGlobalXCodeGenerator.cxx
++++ b/Source/cmGlobalXCodeGenerator.cxx
+@@ -35,11 +35,6 @@
+
+ struct cmLinkImplementation;
+
+-#if !defined(CMAKE_BOOTSTRAP) && defined(__APPLE__)
+-# define HAVE_APPLICATION_SERVICES
+-# include <ApplicationServices/ApplicationServices.h>
+-#endif
+-
+ #if !defined(CMAKE_BOOTSTRAP)
+ # include "cmXMLParser.h"
+
+diff --git a/Utilities/cmlibarchive/CMakeLists.txt b/Utilities/cmlibarchive/CMakeLists.txt
+index d7af6e2..d4808fc 100644
+--- a/Utilities/cmlibarchive/CMakeLists.txt
++++ b/Utilities/cmlibarchive/CMakeLists.txt
+@@ -1662,11 +1662,6 @@ IF(MSVC)
+ ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE)
+ ENDIF(MSVC)
+
+-# We need CoreServices on Mac OS.
+-IF(APPLE)
+- LIST(APPEND ADDITIONAL_LIBS "-framework CoreServices")
+-ENDIF(APPLE)
+-
+ add_subdirectory(libarchive)
+
+ install(FILES COPYING DESTINATION ${CMAKE_DOC_DIR}/cmlibarchive)
+index e505bdd..f45557d 100644
+--- a/Utilities/cmlibuv/src/unix/darwin-proctitle.c
++++ b/Utilities/cmlibuv/src/unix/darwin-proctitle.c
+@@ -30,7 +30,6 @@
+
+ #if !TARGET_OS_IPHONE
+ # include <CoreFoundation/CoreFoundation.h>
+-# include <ApplicationServices/ApplicationServices.h>
+ #endif
+
+ #define S(s) pCFStringCreateWithCString(NULL, (s), kCFStringEncodingUTF8)
diff --git a/srcds-pkgs/bad/cmake-ancient/default.nix b/srcds-pkgs/bad/cmake-ancient/default.nix
new file mode 100644
index 0000000..a39ffe4
--- /dev/null
+++ b/srcds-pkgs/bad/cmake-ancient/default.nix
@@ -0,0 +1,98 @@
+{ stdenv, lib, fetchurl, pkg-config
+, bzip2, curl, expat, libarchive, xz, zlib, libuv, rhash
+, buildPackages
+# darwin attributes
+, ps
+, isBootstrap ? false
+, useSharedLibraries ? (!isBootstrap && !stdenv.isCygwin)
+}:
+
+stdenv.mkDerivation rec {
+ pname = "cmake"
+ + lib.optionalString isBootstrap "-boot";
+ version = "3.17.2";
+
+ src = fetchurl {
+ url = "${meta.homepage}files/v${lib.versions.majorMinor version}/cmake-${version}.tar.gz";
+ # compare with https://cmake.org/files/v${lib.versions.majorMinor version}/cmake-${version}-SHA-256.txt
+ sha256 = "199srp8yfai51pcbpmfyc4s8vzrmh2dm91bp582hj2l29x634xzw";
+ };
+ NIX_CFLAGS_COMPILE="-fpermissive";
+ patches = [
+ # Don't search in non-Nix locations such as /usr, but do search in our libc.
+ ./search-path.patch
+
+ # Don't depend on frameworks.
+ ./application-services.patch
+
+ # Derived from https://github.com/libuv/libuv/commit/1a5d4f08238dd532c3718e210078de1186a5920d
+ ./libuv-application-services.patch
+
+ ];
+
+ outputs = [ "out" ];
+ setOutputFlags = false;
+
+ setupHook = ./setup-hook.sh;
+
+ buildInputs =
+ [ setupHook pkg-config ]
+ ++ lib.optionals useSharedLibraries [ bzip2 curl expat libarchive xz zlib libuv rhash ];
+
+ depsBuildBuild = [ buildPackages.stdenv.cc ];
+
+ propagatedBuildInputs = lib.optional stdenv.isDarwin ps;
+
+ preConfigure = ''
+ fixCmakeFiles .
+ substituteInPlace Modules/Platform/UnixPaths.cmake \
+ --subst-var-by libc_bin ${lib.getBin stdenv.cc.libc} \
+ --subst-var-by libc_dev ${lib.getDev stdenv.cc.libc} \
+ --subst-var-by libc_lib ${lib.getLib stdenv.cc.libc}
+ substituteInPlace Modules/FindCxxTest.cmake \
+ --replace "$""{PYTHON_EXECUTABLE}" ${stdenv.shell}
+ ''
+ # CC_FOR_BUILD and CXX_FOR_BUILD are used to bootstrap cmake
+ + ''
+ configureFlags="--parallel=''${NIX_BUILD_CORES:-1} CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD $configureFlags"
+ '';
+
+ configureFlags = [
+ "--docdir=share/doc/${pname}${version}"
+ ] ++ (if useSharedLibraries then [ "--no-system-jsoncpp" "--system-libs" ] else [ "--no-system-libs" ]) # FIXME: cleanup
+ # Workaround https://gitlab.kitware.com/cmake/cmake/-/issues/20568
+ ++ lib.optionals stdenv.hostPlatform.is32bit [
+ "CFLAGS=-D_FILE_OFFSET_BITS=64"
+ "CXXFLAGS=-D_FILE_OFFSET_BITS=64"
+ ]
+ ++ [
+ "--"
+ # We should set the proper `CMAKE_SYSTEM_NAME`.
+ # http://www.cmake.org/Wiki/CMake_Cross_Compiling
+ #
+ # Unfortunately cmake seems to expect absolute paths for ar, ranlib, and
+ # strip. Otherwise they are taken to be relative to the source root of the
+ # package being built.
+ "-DCMAKE_CXX_COMPILER=${stdenv.cc.targetPrefix}c++"
+ "-DCMAKE_C_COMPILER=${stdenv.cc.targetPrefix}cc"
+ "-DCMAKE_AR=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar"
+ "-DCMAKE_RANLIB=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib"
+ "-DCMAKE_STRIP=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}strip"
+ ];
+
+ # make install attempts to use the just-built cmake
+ preInstall = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ''
+ sed -i 's|bin/cmake|${buildPackages.cmake}/bin/cmake|g' Makefile
+ '';
+
+ dontUseCmakeConfigure = true;
+ enableParallelBuilding = true;
+
+ # This isn't an autoconf configure script; triples are passed via
+ # CMAKE_SYSTEM_NAME, etc.
+ configurePlatforms = [ ];
+
+ doCheck = false; # fails
+
+ meta.homepage = "http://www.cmake.org/";
+}
diff --git a/srcds-pkgs/bad/cmake-ancient/libuv-application-services.patch b/srcds-pkgs/bad/cmake-ancient/libuv-application-services.patch
new file mode 100644
index 0000000..eb3df1e
--- /dev/null
+++ b/srcds-pkgs/bad/cmake-ancient/libuv-application-services.patch
@@ -0,0 +1,53 @@
+diff -ur cmake-3.12.1/Utilities/cmlibuv/CMakeLists.txt cmake-3.12.1-patched/Utilities/cmlibuv/CMakeLists.txt
+--- cmake-3.12.1/Utilities/cmlibuv/CMakeLists.txt 2018-08-09 21:14:08.000000000 +0900
++++ cmake-3.12.1-patched/Utilities/cmlibuv/CMakeLists.txt 2018-08-13 10:14:53.000000000 +0900
+@@ -173,6 +173,22 @@
+ src/unix/kqueue.c
+ src/unix/proctitle.c
+ )
++
++ include(CheckIncludeFile)
++
++ check_include_file("ApplicationServices/ApplicationServices.h" HAVE_ApplicationServices)
++ if (HAVE_ApplicationServices)
++ list(APPEND uv_defines
++ HAVE_APPLICATIONSERVICES_APPLICATIONSERVICES_H=1
++ )
++ endif()
++
++ check_include_file("CoreServices/CoreServices.h" HAVE_CoreServices)
++ if (HAVE_CoreServices)
++ list(APPEND uv_defines
++ HAVE_CORESERVICES_CORESERVICES_H=1
++ )
++ endif()
+ endif()
+
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+diff -ur cmake-3.12.1/Utilities/cmlibuv/src/unix/fsevents.c cmake-3.12.1-patched/Utilities/cmlibuv/src/unix/fsevents.c
+--- cmake-3.12.1/Utilities/cmlibuv/src/unix/fsevents.c 2018-08-09 21:14:08.000000000 +0900
++++ cmake-3.12.1-patched/Utilities/cmlibuv/src/unix/fsevents.c 2018-08-13 10:01:29.000000000 +0900
+@@ -21,7 +21,7 @@
+ #include "uv.h"
+ #include "internal.h"
+
+-#if TARGET_OS_IPHONE || MAC_OS_X_VERSION_MAX_ALLOWED < 1070
++#if !HAVE_CORESERVICES_CORESERVICES_H || MAC_OS_X_VERSION_MAX_ALLOWED < 1070
+
+ /* iOS (currently) doesn't provide the FSEvents-API (nor CoreServices) */
+
+@@ -38,7 +38,7 @@
+ void uv__fsevents_loop_delete(uv_loop_t* loop) {
+ }
+
+-#else /* TARGET_OS_IPHONE */
++#else /* !HAVE_CORESERVICES_CORESERVICES_H */
+
+ #include <dlfcn.h>
+ #include <assert.h>
+@@ -916,4 +916,4 @@
+ return 0;
+ }
+
+-#endif /* TARGET_OS_IPHONE */
++#endif /* !HAVE_CORESERVICES_CORESERVICES_H */
diff --git a/srcds-pkgs/bad/cmake-ancient/search-path-2.8.patch b/srcds-pkgs/bad/cmake-ancient/search-path-2.8.patch
new file mode 100644
index 0000000..9fc9496
--- /dev/null
+++ b/srcds-pkgs/bad/cmake-ancient/search-path-2.8.patch
@@ -0,0 +1,92 @@
+diff -ru3 cmake-2.8.12.2/Modules/Platform/Linux.cmake cmake-2.8.12.2-new/Modules/Platform/Linux.cmake
+--- cmake-2.8.12.2/Modules/Platform/Linux.cmake 2014-01-16 21:15:08.000000000 +0400
++++ cmake-2.8.12.2-new/Modules/Platform/Linux.cmake 2016-04-13 22:00:32.928575740 +0300
+@@ -36,22 +36,11 @@
+ # checking the platform every time. This option is advanced enough
+ # that only package maintainers should need to adjust it. They are
+ # capable of providing a setting on the command line.
+- if(EXISTS "/etc/debian_version")
+- set(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL
+- "Install .so files without execute permission.")
+- else()
+- set(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL
+- "Install .so files without execute permission.")
+- endif()
++ set(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL
++ "Install .so files without execute permission.")
+ endif()
+
+ # Match multiarch library directory names.
+ set(CMAKE_LIBRARY_ARCHITECTURE_REGEX "[a-z0-9_]+(-[a-z0-9_]+)?-linux-gnu[a-z0-9_]*")
+
+ include(Platform/UnixPaths)
+-
+-# Debian has lib64 paths only for compatibility so they should not be
+-# searched.
+-if(EXISTS "/etc/debian_version")
+- set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE)
+-endif()
+diff -ru3 cmake-2.8.12.2/Modules/Platform/UnixPaths.cmake cmake-2.8.12.2-new/Modules/Platform/UnixPaths.cmake
+--- cmake-2.8.12.2/Modules/Platform/UnixPaths.cmake 2014-01-16 21:15:08.000000000 +0400
++++ cmake-2.8.12.2-new/Modules/Platform/UnixPaths.cmake 2016-04-14 00:09:10.106362636 +0300
+@@ -32,9 +32,6 @@
+ # List common installation prefixes. These will be used for all
+ # search types.
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+- # Standard
+- /usr/local /usr /
+-
+ # CMake install location
+ "${_CMAKE_INSTALL_DIR}"
+
+@@ -44,44 +41,26 @@
+
+ # List common include file locations not under the common prefixes.
+ list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
+- # Windows API on Cygwin
+- /usr/include/w32api
+-
+- # X11
+- /usr/X11R6/include /usr/include/X11
+-
+- # Other
+- /usr/pkg/include
+- /opt/csw/include /opt/include
+- /usr/openwin/include
++ @libc_dev@/include
+ )
+
+ list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
+- # Windows API on Cygwin
+- /usr/lib/w32api
+-
+- # X11
+- /usr/X11R6/lib /usr/lib/X11
+-
+- # Other
+- /usr/pkg/lib
+- /opt/csw/lib /opt/lib
+- /usr/openwin/lib
++ @libc_lib@/lib
+ )
+
+ list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
+- /usr/pkg/bin
++ @libc_bin@/bin
+ )
+
+ list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
+- /lib /usr/lib /usr/lib32 /usr/lib64
++ @libc_lib@/lib
+ )
+
+ list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
+- /usr/include
++ @libc_dev@/include
+ )
+ list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
+- /usr/include
++ @libc_dev@/include
+ )
+
+ # Enable use of lib64 search path variants by default.
diff --git a/srcds-pkgs/bad/cmake-ancient/search-path.patch b/srcds-pkgs/bad/cmake-ancient/search-path.patch
new file mode 100644
index 0000000..2f5e4d6
--- /dev/null
+++ b/srcds-pkgs/bad/cmake-ancient/search-path.patch
@@ -0,0 +1,77 @@
+diff -ur cmake-3.9.1/Modules/Platform/UnixPaths.cmake cmake-3.9.1-mod/Modules/Platform/UnixPaths.cmake
+--- cmake-3.9.1/Modules/Platform/UnixPaths.cmake 2017-08-10 13:36:32.000000000 +0000
++++ cmake-3.9.1-mod/Modules/Platform/UnixPaths.cmake 2017-09-03 01:24:31.901473539 +0000
+@@ -22,9 +22,6 @@
+ # List common installation prefixes. These will be used for all
+ # search types.
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+- # Standard
+- /usr/local /usr /
+-
+ # CMake install location
+ "${_CMAKE_INSTALL_DIR}"
+ )
+@@ -43,31 +40,26 @@
+
+ # Non "standard" but common install prefixes
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+- /usr/X11R6
+- /usr/pkg
+- /opt
+ )
+
+ # List common include file locations not under the common prefixes.
+ list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
+- # X11
+- /usr/include/X11
++ @libc_dev@/include
+ )
+
+ list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
+- # X11
+- /usr/lib/X11
++ @libc_lib@/lib
+ )
+
+ list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
+- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64
++ @libc_lib@/lib
+ )
+
+ if(CMAKE_SYSROOT_COMPILE)
+ set(_cmake_sysroot_compile "${CMAKE_SYSROOT_COMPILE}")
+ else()
+ set(_cmake_sysroot_compile "${CMAKE_SYSROOT}")
+ endif()
+
+ # Default per-language values. These may be later replaced after
+ # parsing the implicit directory information from compiler output.
+ set(_CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES_INIT
+ ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}
+- "${_cmake_sysroot_compile}/usr/include"
++ @libc_dev@/include
+ )
+ set(_CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES_INIT
+ ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}
+- "${_cmake_sysroot_compile}/usr/include"
++ @libc_dev@/include
+ )
+ set(_CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES_INIT
+ ${CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES}
+- "${_cmake_sysroot_compile}/usr/include"
++ @libc_dev@/include
+ )
+
+ # Enable use of lib32 and lib64 search path variants by default.
+diff -ur cmake-3.9.1/Modules/Platform/WindowsPaths.cmake cmake-3.9.1-mod/Modules/Platform/WindowsPaths.cmake
+--- cmake-3.9.1/Modules/Platform/WindowsPaths.cmake 2017-08-10 13:36:32.000000000 +0000
++++ cmake-3.9.1-mod/Modules/Platform/WindowsPaths.cmake 2017-09-03 01:19:32.808355986 +0000
+@@ -66,7 +66,7 @@
+
+ if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
+ # MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set)
+- list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
++ # list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
+ endif()
+
+ list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
diff --git a/srcds-pkgs/bad/cmake-ancient/setup-hook.sh b/srcds-pkgs/bad/cmake-ancient/setup-hook.sh
new file mode 100755
index 0000000..87bbefa
--- /dev/null
+++ b/srcds-pkgs/bad/cmake-ancient/setup-hook.sh
@@ -0,0 +1,160 @@
+addCMakeParams() {
+ addToSearchPath CMAKE_PREFIX_PATH $1
+}
+
+fixCmakeFiles() {
+ # Replace occurences of /usr and /opt by /var/empty.
+ echo "fixing cmake files..."
+ find "$1" \( -type f -name "*.cmake" -o -name "*.cmake.in" -o -name CMakeLists.txt \) -print |
+ while read fn; do
+ sed -e 's^/usr\([ /]\|$\)^/var/empty\1^g' -e 's^/opt\([ /]\|$\)^/var/empty\1^g' < "$fn" > "$fn.tmp"
+ mv "$fn.tmp" "$fn"
+ done
+}
+
+cmakeConfigurePhase() {
+ runHook preConfigure
+
+ export CTEST_OUTPUT_ON_FAILURE=1
+ if [ -n "${enableParallelChecking-1}" ]; then
+ export CTEST_PARALLEL_LEVEL=$NIX_BUILD_CORES
+ fi
+
+ if [ -z "${dontFixCmake-}" ]; then
+ fixCmakeFiles .
+ fi
+
+ if [ -z "${dontUseCmakeBuildDir-}" ]; then
+ mkdir -p build
+ cd build
+ cmakeDir=${cmakeDir:-..}
+ fi
+
+ if [ -z "${dontAddPrefix-}" ]; then
+ cmakeFlags="-DCMAKE_INSTALL_PREFIX=$prefix $cmakeFlags"
+ fi
+
+ # We should set the proper `CMAKE_SYSTEM_NAME`.
+ # http://www.cmake.org/Wiki/CMake_Cross_Compiling
+ #
+ # Unfortunately cmake seems to expect absolute paths for ar, ranlib, and
+ # strip. Otherwise they are taken to be relative to the source root of the
+ # package being built.
+ cmakeFlags="-DCMAKE_CXX_COMPILER=$CXX $cmakeFlags"
+ cmakeFlags="-DCMAKE_C_COMPILER=$CC $cmakeFlags"
+ cmakeFlags="-DCMAKE_AR=$(command -v $AR) $cmakeFlags"
+ cmakeFlags="-DCMAKE_RANLIB=$(command -v $RANLIB) $cmakeFlags"
+ cmakeFlags="-DCMAKE_STRIP=$(command -v $STRIP) $cmakeFlags"
+
+ # on macOS we want to prefer Unix-style headers to Frameworks
+ # because we usually do not package the framework
+ cmakeFlags="-DCMAKE_FIND_FRAMEWORK=last $cmakeFlags"
+
+ # on macOS i686 was only relevant for 10.5 or earlier.
+ cmakeFlags="-DCMAKE_OSX_ARCHITECTURES=x86_64 $cmakeFlags"
+
+ # we never want to use the global macOS SDK
+ cmakeFlags="-DCMAKE_OSX_SYSROOT= $cmakeFlags"
+
+ # correctly detect our clang compiler
+ cmakeFlags="-DCMAKE_POLICY_DEFAULT_CMP0025=NEW $cmakeFlags"
+
+ # This installs shared libraries with a fully-specified install
+ # name. By default, cmake installs shared libraries with just the
+ # basename as the install name, which means that, on Darwin, they
+ # can only be found by an executable at runtime if the shared
+ # libraries are in a system path or in the same directory as the
+ # executable. This flag makes the shared library accessible from its
+ # nix/store directory.
+ cmakeFlags="-DCMAKE_INSTALL_NAME_DIR=${!outputLib}/lib $cmakeFlags"
+
+ # This ensures correct paths with multiple output derivations
+ # It requires the project to use variables from GNUInstallDirs module
+ # https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
+ cmakeFlags="-DCMAKE_INSTALL_BINDIR=${!outputBin}/bin $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_SBINDIR=${!outputBin}/sbin $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_INCLUDEDIR=${!outputInclude}/include $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_OLDINCLUDEDIR=${!outputInclude}/include $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_MANDIR=${!outputMan}/share/man $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_INFODIR=${!outputInfo}/share/info $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_DOCDIR=${!outputDoc}/share/doc/${shareDocName} $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_LIBDIR=${!outputLib}/lib $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_LIBEXECDIR=${!outputLib}/libexec $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_LOCALEDIR=${!outputLib}/share/locale $cmakeFlags"
+
+ # Don’t build tests when doCheck = false
+ if [ -z "${doCheck-}" ]; then
+ cmakeFlags="-DBUILD_TESTING=OFF $cmakeFlags"
+ fi
+
+ # Avoid cmake resetting the rpath of binaries, on make install
+ # And build always Release, to ensure optimisation flags
+ cmakeFlags="-DCMAKE_BUILD_TYPE=${cmakeBuildType:-Release} -DCMAKE_SKIP_BUILD_RPATH=ON $cmakeFlags"
+
+ # Disable user package registry to avoid potential side effects
+ # and unecessary attempts to access non-existent home folder
+ # https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#disabling-the-package-registry
+ cmakeFlags="-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON $cmakeFlags"
+ cmakeFlags="-DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF $cmakeFlags"
+ cmakeFlags="-DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY=OFF $cmakeFlags"
+
+ if [ "${buildPhase-}" = ninjaBuildPhase ]; then
+ cmakeFlags="-GNinja $cmakeFlags"
+ fi
+
+ echo "cmake flags: $cmakeFlags ${cmakeFlagsArray[@]}"
+
+ cmake ${cmakeDir:-.} $cmakeFlags "${cmakeFlagsArray[@]}"
+
+ if ! [[ -v enableParallelBuilding ]]; then
+ enableParallelBuilding=1
+ echo "cmake: enabled parallel building"
+ fi
+
+ runHook postConfigure
+}
+
+if [ -z "${dontUseCmakeConfigure-}" -a -z "${configurePhase-}" ]; then
+ setOutputFlags=
+ configurePhase=cmakeConfigurePhase
+fi
+
+addEnvHooks "$targetOffset" addCMakeParams
+
+makeCmakeFindLibs(){
+ isystem_seen=
+ iframework_seen=
+ for flag in ${NIX_CFLAGS_COMPILE-} ${NIX_LDFLAGS-}; do
+ if test -n "$isystem_seen" && test -d "$flag"; then
+ isystem_seen=
+ export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH-}${CMAKE_INCLUDE_PATH:+:}${flag}"
+ elif test -n "$iframework_seen" && test -d "$flag"; then
+ iframework_seen=
+ export CMAKE_FRAMEWORK_PATH="${CMAKE_FRAMEWORK_PATH-}${CMAKE_FRAMEWORK_PATH:+:}${flag}"
+ else
+ isystem_seen=
+ iframework_seen=
+ case $flag in
+ -I*)
+ export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH-}${CMAKE_INCLUDE_PATH:+:}${flag:2}"
+ ;;
+ -L*)
+ export CMAKE_LIBRARY_PATH="${CMAKE_LIBRARY_PATH-}${CMAKE_LIBRARY_PATH:+:}${flag:2}"
+ ;;
+ -F*)
+ export CMAKE_FRAMEWORK_PATH="${CMAKE_FRAMEWORK_PATH-}${CMAKE_FRAMEWORK_PATH:+:}${flag:2}"
+ ;;
+ -isystem)
+ isystem_seen=1
+ ;;
+ -iframework)
+ iframework_seen=1
+ ;;
+ esac
+ fi
+ done
+}
+
+# not using setupHook, because it could be a setupHook adding additional
+# include flags to NIX_CFLAGS_COMPILE
+postHooks+=(makeCmakeFindLibs)
diff --git a/srcds-pkgs/bad/mysql_5_5.nix b/srcds-pkgs/bad/mysql_5_5.nix
index 3026bca..2ff84b7 100644
--- a/srcds-pkgs/bad/mysql_5_5.nix
+++ b/srcds-pkgs/bad/mysql_5_5.nix
@@ -1,5 +1,5 @@
# TODO: find out if sourcemod is lying about needing to build against 5.5
-{ lib, stdenv, fetchurl, ncurses, cmake }:
+{ lib, stdenv, fetchurl, ncurses, callPackage }:
stdenv.mkDerivation rec {
pname = "mysql";
version = "5.5.62";
@@ -9,7 +9,6 @@ stdenv.mkDerivation rec {
hash = "sha256-seeFO8HwSqv2dx4K2UfzWsjSN/SzXQcG0QlclSb/mdc=";
};
- nativeBuildInputs = [ cmake ];
+ nativeBuildInputs = [ (callPackage ./cmake-ancient {}) ];
buildInputs = [ ncurses ];
- cmakeFlags = [ "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" ];
}