about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorCray Elliott <MP2E@archlinux.us>2017-09-15 11:23:26 -0700
committerCray Elliott <MP2E@archlinux.us>2017-09-15 11:26:11 -0700
commit990ea8789db2203f31025ab3f9a333aae55c750b (patch)
treea9af57539b779f5237fdbdc19f4e91dab671b840 /pkgs
parentae624c89c1cede40ec0f043f2acab6f47884ea92 (diff)
downloadnixlib-990ea8789db2203f31025ab3f9a333aae55c750b.tar
nixlib-990ea8789db2203f31025ab3f9a333aae55c750b.tar.gz
nixlib-990ea8789db2203f31025ab3f9a333aae55c750b.tar.bz2
nixlib-990ea8789db2203f31025ab3f9a333aae55c750b.tar.lz
nixlib-990ea8789db2203f31025ab3f9a333aae55c750b.tar.xz
nixlib-990ea8789db2203f31025ab3f9a333aae55c750b.tar.zst
nixlib-990ea8789db2203f31025ab3f9a333aae55c750b.zip
zandronum: 2.1.2 -> 3.0
remove sqlite-amalgamation and put it internal to the zandronum folder,
as it is only used by zandronum. Patches needed to avoid build impurities
and to get the correct protocol version to connect to public servers.

remove zandronum_bin as it is no longer needed
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/games/zandronum/add_gitinfo.patch15
-rw-r--r--pkgs/games/zandronum/bin.nix83
-rw-r--r--pkgs/games/zandronum/default.nix27
-rw-r--r--pkgs/games/zandronum/dont_update_gitinfo.patch19
-rw-r--r--pkgs/games/zandronum/sqlite.nix (renamed from pkgs/development/libraries/sqlite-amalgamation/default.nix)13
-rw-r--r--pkgs/games/zandronum/zan_configure_impurity.patch65
-rw-r--r--pkgs/top-level/all-packages.nix10
7 files changed, 123 insertions, 109 deletions
diff --git a/pkgs/games/zandronum/add_gitinfo.patch b/pkgs/games/zandronum/add_gitinfo.patch
new file mode 100644
index 000000000000..4d8d7c837961
--- /dev/null
+++ b/pkgs/games/zandronum/add_gitinfo.patch
@@ -0,0 +1,15 @@
+diff -Naur blah/src/gitinfo.h blah2/src/gitinfo.h
+--- blah/src/gitinfo.h	1969-12-31 16:00:00.000000000 -0800
++++ blah2/src/gitinfo.h	2017-09-15 01:44:43.953562714 -0700
+@@ -0,0 +1,11 @@
++// dd3c3b57023f64cda84f09ed13e4c03a4ad2b920
++//
++// This file was automatically generated by the
++// updaterevision tool. Do not edit by hand.
++
++#define GIT_DESCRIPTION "ZA_3.0-0-dd3c3b57023f"
++#define GIT_HASH "dd3c3b57023f64cda84f09ed13e4c03a4ad2b920"
++#define GIT_TIME "2017-09-01 06:40:50 -0500"
++#define HG_REVISION_NUMBER 1504266050
++#define HG_REVISION_HASH_STRING "dd3c3b57023f"
++#define HG_TIME "170901-1140"
diff --git a/pkgs/games/zandronum/bin.nix b/pkgs/games/zandronum/bin.nix
deleted file mode 100644
index 4fa7ec1b0451..000000000000
--- a/pkgs/games/zandronum/bin.nix
+++ /dev/null
@@ -1,83 +0,0 @@
-{ stdenv
-, atk
-, bzip2
-, cairo
-, fetchurl
-, fluidsynth
-, fontconfig
-, freetype
-, gdk_pixbuf
-, glib
-, gtk2
-, libjpeg_turbo
-, mesa_glu
-, mesa_noglu
-, openssl
-, pango
-, SDL
-, zlib
-, makeWrapper
-}:
-
-stdenv.mkDerivation rec {
-  name = "zandronum-2.1.2";
-
-  src = fetchurl {
-    url = "http://zandronum.com/downloads/zandronum2.1.2-linux-x86_64.tar.bz2";
-    sha256 = "1f5aw2m8c0bl3lrvi2k3rrzq3q9x1ikxnxxjgh3k9qvanfn7ykbk";
-  };
-
-  libPath = stdenv.lib.makeLibraryPath [
-    atk
-    bzip2
-    cairo
-    fluidsynth
-    fontconfig
-    freetype
-    gdk_pixbuf
-    glib
-    gtk2
-    libjpeg_turbo
-    mesa_glu
-    mesa_noglu
-    openssl
-    pango
-    SDL
-    stdenv.cc.cc
-    zlib
-  ];
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  phases = [ "unpackPhase" "installPhase" ];
-
-  sourceRoot = ".";
-
-  installPhase = ''
-    mkdir -p $out/bin
-    mkdir -p $out/share/zandronum
-    cp *.so *.pk3 zandronum zandronum-server $out/share/zandronum
-
-    patchelf \
-      --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
-      --set-rpath $libPath:$out/share/zandronum \
-      $out/share/zandronum/zandronum
-    patchelf \
-      --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
-      --set-rpath $libPath \
-      $out/share/zandronum/zandronum-server
-
-    # If we don't set absolute argv0, zandronum.wad file is not found.
-    makeWrapper $out/share/zandronum/zandronum $out/bin/zandronum
-    makeWrapper $out/share/zandronum/zandronum-server $out/bin/zandronum-server
-  '';
-
-  meta = {
-    homepage = http://zandronum.com/;
-    description = "Multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software. Binary version for online play";
-    maintainers = [ stdenv.lib.maintainers.lassulus ];
-    # Binary version has different version string than source code version.
-    license = stdenv.lib.licenses.unfreeRedistributable;
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/pkgs/games/zandronum/default.nix b/pkgs/games/zandronum/default.nix
index 7b4185594189..fd7113e3a539 100644
--- a/pkgs/games/zandronum/default.nix
+++ b/pkgs/games/zandronum/default.nix
@@ -1,31 +1,40 @@
 { stdenv, lib, fetchhg, cmake, pkgconfig, makeWrapper, callPackage
-, soundfont-fluid, SDL, mesa, bzip2, zlib, libjpeg, fluidsynth, openssl, sqlite-amalgamation, gtk2
+, soundfont-fluid, SDL, mesa, glew, bzip2, zlib, libjpeg, fluidsynth, openssl, gtk2, python3
 , serverOnly ? false
 }:
 
 let
   suffix = lib.optionalString serverOnly "-server";
   fmod = callPackage ./fmod.nix { };
+  sqlite = callPackage ./sqlite.nix { };
 
 # FIXME: drop binary package when upstream fixes their protocol versioning
 in stdenv.mkDerivation {
-  name = "zandronum${suffix}-2.1.2";
+  name = "zandronum${suffix}-3.0";
 
   src = fetchhg {
     url = "https://bitbucket.org/Torr_Samaho/zandronum-stable";
-    rev = "a3663b0061d5";
-    sha256 = "0qwsnbwhcldwrirfk6hpiklmcj3a7dzh6pn36nizci6pcza07p56";
+    rev = "dd3c3b57023f";
+    sha256 = "1f8pd8d2zjwdp6v9anp9yrkdbfhd2mp7svmnna0jiqgxjw6wkyls";
   };
 
+  # zandronum tries to download sqlite now when running cmake, don't let it
+
+  # it also needs the current mercurial revision info embedded in gitinfo.h
+  # otherwise, the client will fail to connect to servers because the
+  # protocol version doesn't match.
+
+  patches = [ ./zan_configure_impurity.patch ./add_gitinfo.patch ./dont_update_gitinfo.patch ];
+
   # I have no idea why would SDL and libjpeg be needed for the server part!
   # But they are.
-  buildInputs = [ openssl bzip2 zlib SDL libjpeg ]
-             ++ lib.optionals (!serverOnly) [ mesa fmod fluidsynth gtk2 ];
+  buildInputs = [ openssl bzip2 zlib SDL libjpeg sqlite ]
+             ++ lib.optionals (!serverOnly) [ mesa glew fmod fluidsynth gtk2 ];
 
-  nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
+  nativeBuildInputs = [ cmake pkgconfig makeWrapper python3 ];
 
   preConfigure = ''
-    ln -s ${sqlite-amalgamation}/* sqlite/
+    ln -s ${sqlite}/* sqlite/
     sed -ie 's| restrict| _restrict|g' dumb/include/dumb.h \
                                        dumb/src/it/*.c
   '' + lib.optionalString serverOnly ''
@@ -53,7 +62,7 @@ in stdenv.mkDerivation {
        $out/lib/zandronum
 
     # For some reason, while symlinks work for binary version, they don't for source one.
-    makeWrapper $out/lib/zandronum/zandronum${suffix} $out/bin/zandronum${suffix}
+    makeWrapper $out/lib/zandronum/zandronum${suffix} $out/bin/zandronum${suffix} --prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH:${fluidsynth}/lib"
   '';
 
   postFixup = lib.optionalString (!serverOnly) ''
diff --git a/pkgs/games/zandronum/dont_update_gitinfo.patch b/pkgs/games/zandronum/dont_update_gitinfo.patch
new file mode 100644
index 000000000000..d6dd3a58f457
--- /dev/null
+++ b/pkgs/games/zandronum/dont_update_gitinfo.patch
@@ -0,0 +1,19 @@
+diff -r dd3c3b57023f src/CMakeLists.txt
+--- a/src/CMakeLists.txt	Fri Sep 01 06:40:50 2017 -0500
++++ b/src/CMakeLists.txt	Fri Sep 15 01:46:34 2017 -0700
+@@ -636,15 +636,6 @@
+	add_definitions( -DBACKPATCH )
+ endif( BACKPATCH )
+
+-# Update gitinfo.h
+-
+-get_target_property( UPDATEREVISION_EXE updaterevision LOCATION )
+-
+-add_custom_target( revision_check ALL
+-	COMMAND ${UPDATEREVISION_EXE} src/gitinfo.h
+-	WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+-	DEPENDS updaterevision )
+-
+ # Libraries ZDoom needs
+
+ message( STATUS "Fluid synth libs: ${FLUIDSYNTH_LIBRARIES}" )
diff --git a/pkgs/development/libraries/sqlite-amalgamation/default.nix b/pkgs/games/zandronum/sqlite.nix
index 2ee3b6f2ecbb..35fcb4a0eec7 100644
--- a/pkgs/development/libraries/sqlite-amalgamation/default.nix
+++ b/pkgs/games/zandronum/sqlite.nix
@@ -1,27 +1,20 @@
 { lib, stdenv, fetchurl, unzip }:
 
 stdenv.mkDerivation {
-  name = "sqlite-amalgamation-201505302257";
+  name = "sqlite-zandronum-3.0";
 
   src = fetchurl {
-    url = "https://www.sqlite.org/snapshot/sqlite-amalgamation-201505302257.zip";
-    sha256 = "0488wjrpnxd61g7pcka6fckx0q8yl1k26i6q5hrmkm92qcpml76h";
+    url = "https://www.sqlite.org/2017/sqlite-autoconf-3180000.tar.gz";
+    sha256 = "0p5cx7nbjxk7glcm277ypi5w4gv144qazw79ql47svlpccj62mrp";
   };
 
   phases = [ "unpackPhase" "buildPhase" ];
 
-  buildInputs = [ unzip ];
-
-  unpackPhase = ''
-    unzip $src
-  '';
-
   buildPhase = ''
     mkdir -p $out
     cp sqlite3.c $out/
     cp sqlite3.h $out/
     cp sqlite3ext.h $out/
-    cp shell.c $out/
   '';
 
   meta = {
diff --git a/pkgs/games/zandronum/zan_configure_impurity.patch b/pkgs/games/zandronum/zan_configure_impurity.patch
new file mode 100644
index 000000000000..0cf7150502e4
--- /dev/null
+++ b/pkgs/games/zandronum/zan_configure_impurity.patch
@@ -0,0 +1,65 @@
+diff -r 6d5130e4ae52 sqlite/CMakeLists.txt
+--- a/sqlite/CMakeLists.txt	Sun Sep 10 18:53:00 2017 +0200
++++ b/sqlite/CMakeLists.txt	Fri Sep 15 00:12:11 2017 -0700
+@@ -1,62 +1,5 @@
+ cmake_minimum_required( VERSION 2.4 )
+
+-# [BB/EP] Download SQLite archive and extract the sources if necessary.
+-set( ZAN_SQLITE_VERSION 3180000 ) # SQL version 3.18.0
+-set( ZAN_SQLITE_YEAR 2017 )
+-set( ZAN_SQLITE_SHA1 "74559194e1dd9b9d577cac001c0e9d370856671b" )
+-set( ZAN_SQLITE_DOWNLOAD_NAME "sqlite-autoconf-${ZAN_SQLITE_VERSION}" )
+-set( ZAN_SQLITE_TEMP_ARCHIVE "${CMAKE_CURRENT_SOURCE_DIR}/${ZAN_SQLITE_DOWNLOAD_NAME}.tar.gz" )
+-set( ZAN_SQLITE_HASHED_ARCHIVE "${CMAKE_CURRENT_SOURCE_DIR}/sqlite-${ZAN_SQLITE_SHA1}.tar.gz" )
+-
+-if( IS_DIRECTORY ${ZAN_SQLITE_HASHED_ARCHIVE} OR IS_SYMLINK ${ZAN_SQLITE_HASHED_ARCHIVE} )
+-	message( FATAL_ERROR "SQLite: ${ZAN_SQLITE_HASHED_ARCHIVE} must be a valid file.\n"
+-				"SQLite: Please remove it and try again." )
+-elseif( NOT EXISTS ${ZAN_SQLITE_HASHED_ARCHIVE} )
+-
+-	if( IS_DIRECTORY ${ZAN_SQLITE_TEMP_ARCHIVE} OR IS_SYMLINK ${ZAN_SQLITE_TEMP_ARCHIVE} )
+-		message( FATAL_ERROR "SQLite: ${ZAN_SQLITE_TEMP_ARCHIVE} must be a valid file.\n"
+-					"SQLite: Please remove it and try again." )
+-	endif()
+-	message( STATUS "SQLite: downloading the archive..." )
+-
+-	file( DOWNLOAD https://www.sqlite.org/${ZAN_SQLITE_YEAR}/${ZAN_SQLITE_DOWNLOAD_NAME}.tar.gz ${ZAN_SQLITE_TEMP_ARCHIVE}
+-			SHOW_PROGRESS
+-			STATUS ZAN_SQLITE_DOWNLOAD_STATUS )
+-
+-	# Report any problem if present and abort immediately.
+-	list( GET ZAN_SQLITE_DOWNLOAD_STATUS 0 ZAN_SQLITE_DOWNLOAD_ERROR_CODE )
+-	if( ZAN_SQLITE_DOWNLOAD_ERROR_CODE )
+-		list( GET ZAN_SQLITE_DOWNLOAD_STATUS 1 ZAN_SQLITE_DOWNLOAD_ERROR_MESSAGE )
+-		message( FATAL_ERROR "SQLite: download failed. Reason: ${ZAN_SQLITE_DOWNLOAD_ERROR_MESSAGE}" )
+-	endif()
+-
+-	# Check the hash. Abort immediately if it's not valid (something is wrong with the download)
+-	file( SHA1 ${ZAN_SQLITE_TEMP_ARCHIVE} ZAN_SQLITE_CURRENT_SHA1 )
+-	if( NOT ZAN_SQLITE_CURRENT_SHA1 STREQUAL ZAN_SQLITE_SHA1 )
+-		message( FATAL_ERROR "SQLite: download failed. The downloaded file has a different hash:\n"
+-					"SQLite:    valid:      ${ZAN_SQLITE_SHA1}\n"
+-					"SQLite:    downloaded: ${ZAN_SQLITE_CURRENT_SHA1}" )
+-	endif()
+-
+-	message( STATUS "SQLite: saving the source files into the 'sqlite' directory." )
+-
+-	# Rename the archive.
+-	execute_process( COMMAND ${CMAKE_COMMAND} -E rename ${ZAN_SQLITE_TEMP_ARCHIVE} ${ZAN_SQLITE_HASHED_ARCHIVE} )
+-
+-	# Extract the archive.
+-	execute_process( COMMAND ${CMAKE_COMMAND} -E tar xzf ${ZAN_SQLITE_HASHED_ARCHIVE} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
+-
+-	# Copy the required files.
+-	execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${ZAN_SQLITE_DOWNLOAD_NAME}/sqlite3.c ${CMAKE_CURRENT_SOURCE_DIR} )
+-	execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${ZAN_SQLITE_DOWNLOAD_NAME}/sqlite3.h ${CMAKE_CURRENT_SOURCE_DIR} )
+-	execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${ZAN_SQLITE_DOWNLOAD_NAME}/sqlite3ext.h ${CMAKE_CURRENT_SOURCE_DIR} )
+-
+-	# Remove the extracted folder.
+-	execute_process( COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_CURRENT_SOURCE_DIR}/${ZAN_SQLITE_DOWNLOAD_NAME} )
+-
+-	message( STATUS "SQLite: done." )
+-endif()
+-
+ add_library( sqlite3 sqlite3.c )
+ target_link_libraries( sqlite3 ${CMAKE_DL_LIBS} )
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a38d87218719..e02b240612f0 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3795,6 +3795,8 @@ with pkgs;
 
   pdf2svg = callPackage ../tools/graphics/pdf2svg { };
 
+  fmodex = callPackage ../games/zandronum/fmod.nix { };
+
   pdfmod = callPackage ../applications/misc/pdfmod { };
 
   jbig2enc = callPackage ../tools/graphics/jbig2enc { };
@@ -10484,8 +10486,6 @@ with pkgs;
 
   sqlite3_analyzer = lowPrio (callPackage ../development/libraries/sqlite/sqlite3_analyzer.nix { });
 
-  sqlite-amalgamation = callPackage ../development/libraries/sqlite-amalgamation { };
-
   sqlite-interactive = appendToName "interactive" (sqlite.override { interactive = true; }).bin;
 
   sqlcipher = lowPrio (callPackage ../development/libraries/sqlcipher {
@@ -17830,16 +17830,12 @@ with pkgs;
 
   xsokoban = callPackage ../games/xsokoban { };
 
-  zandronum = callPackage ../games/zandronum {
-    cmake = cmake_2_8;
-  };
+  zandronum = callPackage ../games/zandronum { };
 
   zandronum-server = zandronum.override {
     serverOnly = true;
   };
 
-  zandronum-bin = hiPrio (callPackage ../games/zandronum/bin.nix { });
-
   zangband = callPackage ../games/zangband { };
 
   zdbsp = callPackage ../games/zdoom/zdbsp.nix { };