nixpkgs/pkgs/by-name/ec/ecwolf/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

82 lines
2.4 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ stdenv
, lib
, fetchFromBitbucket
, cmake
, pkg-config
, makeWrapper
, zlib
, bzip2
, libjpeg
, SDL2
, SDL2_net
, SDL2_mixer
, gtk3
, writers
, python3Packages
, nix-update
}:
stdenv.mkDerivation rec {
pname = "ecwolf";
version = "1.4.1";
src = fetchFromBitbucket {
owner = pname;
repo = pname;
rev = version;
sha256 = "V2pSP8i20zB50WtUMujzij+ISSupdQQ/oCYYrOaTU1g=";
};
nativeBuildInputs = [ cmake pkg-config ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ makeWrapper ];
buildInputs = [ zlib bzip2 libjpeg SDL2 SDL2_net SDL2_mixer gtk3 ];
NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-framework AppKit";
# ECWolf installs its binary to the games/ directory, but Nix only adds bin/
# directories to the PATH.
postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
mv "$out/games" "$out/bin"
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/{Applications,bin}
cp -R ecwolf.app $out/Applications
makeWrapper $out/{Applications/ecwolf.app/Contents/MacOS,bin}/ecwolf
'';
passthru.updateScript = let
updateScriptPkg = writers.writePython3 "ecwolf_update_script" {
libraries = with python3Packages; [ debian-inspector requests ];
} ''
from os import execl
from sys import argv
from debian_inspector.debcon import get_paragraphs_data
from requests import get
# The debian.drdteam.org repo is a primary source of information. Its
# run by Blzut3, the creator and primary developer of ECWolf. Its also
# listed on ECWolfs download page:
# <https://maniacsvault.net/ecwolf/download.php>.
url = 'https://debian.drdteam.org/dists/stable/multiverse/binary-amd64/Packages' # noqa: E501
response = get(url)
packages = get_paragraphs_data(response.text)
for package in packages:
if package['package'] == 'ecwolf':
latest_version = package['version']
break
nix_update_path = argv[1]
execl(nix_update_path, nix_update_path, '--version', latest_version)
'';
in [ updateScriptPkg (lib.getExe nix-update) ];
meta = with lib; {
description = "Enhanched SDL-based port of Wolfenstein 3D for various platforms";
mainProgram = "ecwolf";
homepage = "https://maniacsvault.net/ecwolf/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ jayman2000 sander ];
platforms = platforms.all;
};
}