Merge pull request #104018 from NeQuissimus/xterm_update
xterm: 353 -> 362, add test, add update script
This commit is contained in:
commit
08e6c4d001
@ -389,6 +389,7 @@ in
|
|||||||
xmonad = handleTest ./xmonad.nix {};
|
xmonad = handleTest ./xmonad.nix {};
|
||||||
xrdp = handleTest ./xrdp.nix {};
|
xrdp = handleTest ./xrdp.nix {};
|
||||||
xss-lock = handleTest ./xss-lock.nix {};
|
xss-lock = handleTest ./xss-lock.nix {};
|
||||||
|
xterm = handleTest ./xterm.nix {};
|
||||||
yabar = handleTest ./yabar.nix {};
|
yabar = handleTest ./yabar.nix {};
|
||||||
yggdrasil = handleTest ./yggdrasil.nix {};
|
yggdrasil = handleTest ./yggdrasil.nix {};
|
||||||
zfs = handleTest ./zfs.nix {};
|
zfs = handleTest ./zfs.nix {};
|
||||||
|
23
nixos/tests/xterm.nix
Normal file
23
nixos/tests/xterm.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import ./make-test-python.nix ({ pkgs, ...} : {
|
||||||
|
name = "xterm";
|
||||||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
|
maintainers = [ nequissimus ];
|
||||||
|
};
|
||||||
|
|
||||||
|
machine = { pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [ ./common/x11.nix ];
|
||||||
|
services.xserver.desktopManager.xterm.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript =
|
||||||
|
''
|
||||||
|
machine.wait_for_x()
|
||||||
|
machine.succeed("DISPLAY=:0 xterm -title testterm -class testterm -fullscreen &")
|
||||||
|
machine.sleep(2)
|
||||||
|
machine.send_chars("echo $XTERM_VERSION >> /tmp/xterm_version\n")
|
||||||
|
machine.wait_for_file("/tmp/xterm_version")
|
||||||
|
assert "${pkgs.xterm.version}" in machine.succeed("cat /tmp/xterm_version")
|
||||||
|
machine.screenshot("window")
|
||||||
|
'';
|
||||||
|
})
|
@ -1,29 +1,41 @@
|
|||||||
{ stdenv, fetchurl, fetchpatch, xorg, ncurses, freetype, fontconfig, pkgconfig, makeWrapper
|
{ stdenv, fetchurl, fetchpatch, xorg, ncurses, freetype, fontconfig, pkgconfig
|
||||||
, enableDecLocator ? true
|
, makeWrapper, nixosTests, writeScript, common-updater-scripts, git, nixfmt, nix
|
||||||
}:
|
, gnused, coreutils, enableDecLocator ? true }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "xterm-353";
|
pname = "xterm";
|
||||||
|
version = "362";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
urls = [
|
urls = [
|
||||||
"ftp://ftp.invisible-island.net/xterm/${name}.tgz"
|
"ftp://ftp.invisible-island.net/xterm/${pname}-${version}.tgz"
|
||||||
"https://invisible-mirror.net/archives/xterm/${name}.tgz"
|
"https://invisible-mirror.net/archives/xterm/${pname}-${version}.tgz"
|
||||||
];
|
];
|
||||||
sha256 = "0s5pkfn4r8iy09s1q1y78zhnr9f3sm6wgbqir7azaqggkppd68g5";
|
sha256 = "HU/+Im+o8CGFm7wwB3iP9jpGoxJC2b2ae9fr4k6BrKI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
buildInputs = [
|
||||||
[ xorg.libXaw xorg.xorgproto xorg.libXt xorg.libXext xorg.libX11 xorg.libSM xorg.libICE
|
xorg.libXaw
|
||||||
ncurses freetype fontconfig pkgconfig xorg.libXft xorg.luit makeWrapper
|
xorg.xorgproto
|
||||||
];
|
xorg.libXt
|
||||||
|
xorg.libXext
|
||||||
|
xorg.libX11
|
||||||
|
xorg.libSM
|
||||||
|
xorg.libICE
|
||||||
|
ncurses
|
||||||
|
freetype
|
||||||
|
fontconfig
|
||||||
|
pkgconfig
|
||||||
|
xorg.libXft
|
||||||
|
xorg.luit
|
||||||
|
makeWrapper
|
||||||
|
];
|
||||||
|
|
||||||
patches = [
|
patches = [ ./sixel-256.support.patch ]
|
||||||
./sixel-256.support.patch
|
++ stdenv.lib.optional stdenv.hostPlatform.isMusl (fetchpatch {
|
||||||
] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl
|
|
||||||
(fetchpatch {
|
|
||||||
name = "posix-ptys.patch";
|
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";
|
sha256 = "0czgnsxkkmkrk1idw69qxbprh0jb4sw3c24zpnqq2v76jkl7zvlr";
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -62,10 +74,44 @@ stdenv.mkDerivation rec {
|
|||||||
install -D -t $out/share/icons/hicolor/48x48/apps icons/xterm-color_48x48.xpm
|
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 = {
|
meta = {
|
||||||
homepage = "https://invisible-island.net/xterm";
|
homepage = "https://invisible-island.net/xterm";
|
||||||
license = with stdenv.lib.licenses; [ mit ];
|
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;
|
platforms = with stdenv.lib.platforms; linux ++ darwin;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user