Skip to content

Commit

Permalink
daggerfall-unity: init at 1.1.1
Browse files Browse the repository at this point in the history
Includes the manual for Daggerfall Unity.

daggerfall-unity-unfree also includes the manual for Daggerfall itself.

Closes #109385.

Co-authored-by: Sandro <[email protected]>
  • Loading branch information
l0b0 and SuperSandro2000 committed Nov 7, 2024
1 parent 9c8b539 commit bc4680c
Show file tree
Hide file tree
Showing 2 changed files with 133 additions and 0 deletions.
128 changes: 128 additions & 0 deletions pkgs/by-name/da/daggerfall-unity/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
{
alsa-lib,
autoPatchelfHook,
copyDesktopItems,
fetchurl,
fetchzip,
lib,
libGL,
libXScrnSaver,
libXcursor,
libXi,
libXinerama,
libXrandr,
libXxf86vm,
libpulseaudio,
libudev0-shim,
makeDesktopItem,
nix-update-script,
stdenv,
vulkan-loader,
pname ? "daggerfall-unity",
includeUnfree ? false,
}:
let
docFiles =
[
(fetchurl {
url = "https://www.dfworkshop.net/static_files/daggerfallunity/Daggerfall%20Unity%20Manual.pdf";
hash = "sha256-FywlD0K5b4vUWzyzANlF9575XTDLivbsym7F+qe0Dm8=";
name = "Daggerfall Unity Manual.pdf";
meta.license = lib.licenses.mit;
})
]
++ lib.optionals includeUnfree [
(fetchurl {
url = "https://cdn.bethsoft.com/bethsoft.com/manuals/Daggerfall/daggerfall-en.pdf";
hash = "sha256-24KSP/E7+KvSRTMDq63NVlVWTFZnQj1yya8wc36yrC0=";
meta.license = lib.licenses.unfree;
})
];
in
stdenv.mkDerivation (finalAttrs: {
inherit pname;
version = "1.1.1";

src = fetchzip {
url = "https://github.com/Interkarma/daggerfall-unity/releases/download/v${finalAttrs.version}/dfu_linux_64bit-v${finalAttrs.version}.zip";
hash = "sha256-JuhhVLpREM9e9UtlDttvFUhHWpH7Sh79OEo1OM4ggKA=";
stripRoot = false;
};

nativeBuildInputs = [
autoPatchelfHook
copyDesktopItems
];

buildInputs = [
alsa-lib
libGL
libXScrnSaver
libXcursor
libXi
libXinerama
libXrandr
libXxf86vm
libpulseaudio
libudev0-shim
vulkan-loader
];

strictDeps = true;

installPhase =
''
runHook preInstall
mkdir --parents "$out/share/doc/"
cp --recursive * "$out"
''
+ (lib.strings.concatStringsSep "\n" (
map (docFile: ''
cp "${docFile}" "$out/share/doc/${docFile.name}"
'') docFiles
))
+ ''
runHook postInstall
'';

appendRunpaths = [ (lib.makeLibraryPath finalAttrs.buildInputs) ];

desktopItems = [
(makeDesktopItem {
name = "daggerfall-unity";
desktopName = "Daggerfall Unity";
comment = finalAttrs.meta.description;
icon = "UnityPlayer";
exec = "DaggerfallUnity.x86_64";
categories = [ "Game" ];
})
];

passthru.updateScript = nix-update-script {
# Broken https://github.com/Mic92/nix-update/issues/295
extraArgs = [ "--version-regex=^v(\\d+(\\.\\d+)*)$" ];
};

meta = {
homepage = "https://www.dfworkshop.net/";
description = "Open source recreation of Daggerfall in the Unity engine";
longDescription =
''
Daggerfall Unity is an open source recreation of Daggerfall in the Unity engine created by Daggerfall Workshop.
Experience the adventure and intrigue of Daggerfall with all of its original charm along with hundreds of fixes, quality of life enhancements, and extensive mod support.
Includes Daggerfall Unity manual.
''
+ lib.optional includeUnfree ''
This "unfree" variant also includes the manual for Daggerfall (the game, not the open source engine).
'';
changelog = "https://github.com/Interkarma/daggerfall-unity/releases/tag/v${finalAttrs.version}";
mainProgram = "DaggerfallUnity.x86_64";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ l0b0 ];
platforms = [ "x86_64-linux" ];
};
})
5 changes: 5 additions & 0 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -17186,6 +17186,11 @@ with pkgs;

cwltool = callPackage ../applications/science/misc/cwltool { };

daggerfall-unity-unfree = daggerfall-unity.override {
pname = "daggerfall-unity-unfree";
includeUnfree = true;
};

dbt = with python3Packages; toPythonApplication dbt-core;

dprint = callPackage ../development/tools/dprint {
Expand Down

0 comments on commit bc4680c

Please sign in to comment.