xnee: refactor

This commit is contained in:
Weijia Wang 2023-10-16 22:51:38 +02:00
parent 0e86745f24
commit 4ed8ca8f57

View file

@ -1,13 +1,25 @@
{ fetchurl, fetchpatch, lib, stdenv, libX11, xorgproto, libXext, libXtst
, gtk2, libXi, pkg-config, texinfo }:
{ lib
, stdenv
, fetchurl
, fetchpatch
, autoreconfHook
, pkg-config
, gtk2
, libX11
, libXext
, libXi
, libXtst
, texinfo
, xorgproto
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
version = "3.19";
pname = "xnee";
src = fetchurl {
url = "mirror://gnu/xnee/${pname}-${version}.tar.gz";
sha256 = "04n2lac0vgpv8zsn7nmb50hf3qb56pmj90dmwnivg09gyrf1x92j";
url = "mirror://gnu/xnee/xnee-${finalAttrs.version}.tar.gz";
hash = "sha256-UqQeXPYvgbej5bWBJOs1ZeHhICir2mP1R/u+DZiiwhI=";
};
patches = [
@ -16,57 +28,67 @@ stdenv.mkDerivation rec {
(fetchpatch {
name = "fno-common.patch";
url = "https://savannah.gnu.org/bugs/download.php?file_id=49534";
sha256 = "04j2cjy2yaiigg31a6k01vw0fq19yj3zpriikkjcz9q4ab4m5gh2";
hash = "sha256-Ar5SyVIEp8/knDHm+4f0KWAH+A5gGhXGezEqL7xkQhI=";
})
];
postPatch =
'' for i in `find cnee/test -name \*.sh`
do
sed -i "$i" -e's|/bin/bash|${stdenv.shell}|g ; s|/usr/bin/env bash|${stdenv.shell}|g'
done
postPatch = ''
for i in `find cnee/test -name \*.sh`; do
sed -i "$i" -e's|/bin/bash|${stdenv.shell}|g ; s|/usr/bin/env bash|${stdenv.shell}|g'
done
''
# Fix for glibc-2.34. For some reason, `LIBSEMA="CCC"` is added
# if `sem_init` is part of libc which causes errors like
# `gcc: error: CCC: No such file or directory` during the build.
+ ''
substituteInPlace configure* \
--replace 'LIBSEMA="CCC"' 'LIBSEMA=""'
'';
# Fix for glibc-2.34. For some reason, `LIBSEMA="CCC"` is added
# if `sem_init` is part of libc which causes errors like
# `gcc: error: CCC: No such file or directory` during the build.
substituteInPlace configure \
--replace 'LIBSEMA="CCC"' 'LIBSEMA=""'
'';
strictDeps = true;
nativeBuildInputs = [ pkg-config ];
buildInputs =
[ libX11 xorgproto libXext libXtst gtk2
libXi
texinfo
];
nativeBuildInputs = [
autoreconfHook
pkg-config
];
configureFlags =
buildInputs = [
gtk2
libX11
libXext
libXi
libXtst
texinfo
xorgproto
];
configureFlags = [
"--disable-gnome-applet"
# Do a static build because `libxnee' doesn't get installed anyway.
[ "--disable-gnome-applet" "--enable-static" ];
"--enable-static"
];
# `cnee' is linked without `-lXi' and as a consequence has a RUNPATH that
# lacks libXi.
makeFlags = [ "LDFLAGS=-lXi" ];
makeFlags = [
# `cnee' is linked without `-lXi' and as a consequence has a RUNPATH that
# lacks libXi.
"LDFLAGS=-lXi"
];
# XXX: Actually tests require an X server.
doCheck = true;
meta = {
description = "X11 event recording and replay tool";
longDescription =
'' Xnee is a suite of programs that can record, replay and distribute
user actions under the X11 environment. Think of it as a robot that
can imitate the job you just did. Xnee can be used to automate
tests, demonstrate programs, distribute actions, record & replay
"macros", retype a file.
'';
license = lib.licenses.gpl3Plus;
longDescription = ''
Xnee is a suite of programs that can record, replay and distribute
user actions under the X11 environment. Think of it as a robot that
can imitate the job you just did. Xnee can be used to automate
tests, demonstrate programs, distribute actions, record & replay
"macros", retype a file.
'';
homepage = "https://www.gnu.org/software/xnee/";
maintainers = with lib.maintainers; [ ];
platforms = lib.platforms.gnu ++ lib.platforms.linux; # arbitrary choice
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ wegank ];
platforms = lib.platforms.unix;
};
}
})