nixpkgs/pkgs/games/scid-vs-pc/default.nix
Profpatsch 4a7f99d55d treewide: with stdenv.lib; in meta -> with lib;
Part of: https://github.com/NixOS/nixpkgs/issues/108938

meta = with stdenv.lib;

is a widely used pattern. We want to slowly remove
the `stdenv.lib` indirection and encourage people
to use `lib` directly. Thus let’s start with the meta
field.

This used a rewriting script to mostly automatically
replace all occurances of this pattern, and add the
`lib` argument to the package header if it doesn’t
exist yet.

The script in its current form is available at
https://cs.tvl.fyi/depot@2f807d7f141068d2d60676a89213eaa5353ca6e0/-/blob/users/Profpatsch/nixpkgs-rewriter/default.nix
2021-01-11 10:38:22 +01:00

83 lines
2.1 KiB
Nix

{ lib, stdenv, fetchurl, tcl, tk, libX11, zlib, makeWrapper, makeDesktopItem }:
stdenv.mkDerivation rec {
pname = "scid-vs-pc";
version = "4.21";
src = fetchurl {
url = "mirror://sourceforge/scidvspc/scid_vs_pc-${version}.tgz";
sha256 = "1lsm5s2hlhqbmwm6f38jlg2kc4j6lwp86lg6z3w6nc3jibzgvsay";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ tcl tk libX11 zlib ];
prePatch = ''
sed -i -e '/^ *set headerPath *{/a ${tcl}/include ${tk}/include' \
-e '/^ *set libraryPath *{/a ${tcl}/lib ${tk}/lib' \
-e '/^ *set x11Path *{/a ${libX11}/lib/' \
configure
sed -i -e '/^ *set scidShareDir/s|\[file.*|"'"$out/share"'"|' \
tcl/config.tcl
'';
# configureFlags = [
# "BINDIR=$(out)/bin"
# "SHAREDIR=$(out)/share"
# "FONTDIR=$(out)/fonts"
# ];
preConfigure = ''configureFlags="
BINDIR=$out/bin
SHAREDIR=$out/share
FONTDIR=$out/fonts"
'';
patches = [
./0001-put-fonts-in-out.patch
];
hardeningDisable = [ "format" ];
dontPatchShebangs = true;
postFixup = ''
sed -i -e '1c#!'"$out"'/bin/tcscid' "$out/bin/scidpgn"
sed -i -e '1c#!${tk}/bin/wish' "$out/bin/sc_remote"
sed -i -e '1c#!'"$out"'/bin/tkscid' "$out/bin/scid"
for cmd in $out/bin/* ; do
wrapProgram "$cmd" \
--set TCLLIBPATH "${tcl}/${tcl.libdir}" \
--set TK_LIBRARY "${tk}/lib/${tk.libPrefix}"
done
'';
postInstall = ''
mkdir -p $out/share/applications
cp $desktopItem/share/applications/* $out/share/applications/
install -D icons/scid.png "$out"/share/icons/hicolor/128x128/apps/scid.png
'';
desktopItem = makeDesktopItem {
name = "scid-vs-pc";
desktopName = "Scid vs. PC";
genericName = "Chess Database";
comment = meta.description;
icon = "scid";
exec = "scid";
categories = "Game;BoardGame;";
};
meta = with lib; {
description = "Chess database with play and training functionality";
homepage = "http://scidvspc.sourceforge.net/";
license = stdenv.lib.licenses.gpl2;
maintainers = [ maintainers.paraseba ];
platforms = stdenv.lib.platforms.linux;
};
}