xterm: Add update script
This commit is contained in:
parent
fcbef5bac5
commit
6dda0115ae
@ -1,29 +1,41 @@
|
||||
{ stdenv, fetchurl, fetchpatch, xorg, ncurses, freetype, fontconfig, pkgconfig, makeWrapper
|
||||
, enableDecLocator ? true
|
||||
}:
|
||||
{ stdenv, fetchurl, fetchpatch, xorg, ncurses, freetype, fontconfig, pkgconfig
|
||||
, makeWrapper, nixosTests, writeScript, common-updater-scripts, git, nixfmt, nix
|
||||
, gnused, coreutils, enableDecLocator ? true }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "xterm-353";
|
||||
pname = "xterm";
|
||||
version = "353";
|
||||
|
||||
src = fetchurl {
|
||||
urls = [
|
||||
"ftp://ftp.invisible-island.net/xterm/${name}.tgz"
|
||||
"https://invisible-mirror.net/archives/xterm/${name}.tgz"
|
||||
];
|
||||
"ftp://ftp.invisible-island.net/xterm/${pname}-${version}.tgz"
|
||||
"https://invisible-mirror.net/archives/xterm/${pname}-${version}.tgz"
|
||||
];
|
||||
sha256 = "0s5pkfn4r8iy09s1q1y78zhnr9f3sm6wgbqir7azaqggkppd68g5";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
[ xorg.libXaw xorg.xorgproto xorg.libXt xorg.libXext xorg.libX11 xorg.libSM xorg.libICE
|
||||
ncurses freetype fontconfig pkgconfig xorg.libXft xorg.luit makeWrapper
|
||||
];
|
||||
buildInputs = [
|
||||
xorg.libXaw
|
||||
xorg.xorgproto
|
||||
xorg.libXt
|
||||
xorg.libXext
|
||||
xorg.libX11
|
||||
xorg.libSM
|
||||
xorg.libICE
|
||||
ncurses
|
||||
freetype
|
||||
fontconfig
|
||||
pkgconfig
|
||||
xorg.libXft
|
||||
xorg.luit
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
patches = [
|
||||
./sixel-256.support.patch
|
||||
] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl
|
||||
(fetchpatch {
|
||||
patches = [ ./sixel-256.support.patch ]
|
||||
++ stdenv.lib.optional stdenv.hostPlatform.isMusl (fetchpatch {
|
||||
name = "posix-ptys.patch";
|
||||
url = "https://git.alpinelinux.org/aports/plain/community/xterm/posix-ptys.patch?id=3aa532e77875fa1db18c7fcb938b16647031bcc1";
|
||||
url =
|
||||
"https://git.alpinelinux.org/aports/plain/community/xterm/posix-ptys.patch?id=3aa532e77875fa1db18c7fcb938b16647031bcc1";
|
||||
sha256 = "0czgnsxkkmkrk1idw69qxbprh0jb4sw3c24zpnqq2v76jkl7zvlr";
|
||||
});
|
||||
|
||||
@ -62,10 +74,44 @@ stdenv.mkDerivation rec {
|
||||
install -D -t $out/share/icons/hicolor/48x48/apps icons/xterm-color_48x48.xpm
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = let
|
||||
# Tags that end in letters are unstable
|
||||
suffixes = stdenv.lib.concatStringsSep " "
|
||||
(map (c: "-c versionsort.suffix='${c}'")
|
||||
(stdenv.lib.stringToCharacters "abcdefghijklmnopqrstuvwxyz"));
|
||||
in writeScript "update.sh" ''
|
||||
#!${stdenv.shell}
|
||||
set -o errexit
|
||||
PATH=${
|
||||
stdenv.lib.makeBinPath [
|
||||
common-updater-scripts
|
||||
git
|
||||
nixfmt
|
||||
nix
|
||||
coreutils
|
||||
gnused
|
||||
]
|
||||
}
|
||||
|
||||
oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"')"
|
||||
latestTag="$(git ${suffixes} ls-remote --exit-code --refs --sort='version:refname' --tags git@github.com:ThomasDickey/xterm-snapshots.git 'xterm-*' | tail --lines=1 | cut --delimiter='/' --fields=3 | sed 's|^xterm-||g')"
|
||||
|
||||
if [ ! "$oldVersion" = "$latestTag" ]; then
|
||||
update-source-version ${pname} "$latestTag" --version-key=version --print-changes
|
||||
nixpkgs="$(git rev-parse --show-toplevel)"
|
||||
default_nix="$nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix"
|
||||
nixfmt "$default_nix"
|
||||
else
|
||||
echo "${pname} is already up-to-date"
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://invisible-island.net/xterm";
|
||||
license = with stdenv.lib.licenses; [ mit ];
|
||||
maintainers = with stdenv.lib.maintainers; [vrthra];
|
||||
maintainers = with stdenv.lib.maintainers; [ nequissimus vrthra ];
|
||||
platforms = with stdenv.lib.platforms; linux ++ darwin;
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user