103 lines
2.9 KiB
Nix
103 lines
2.9 KiB
Nix
{ lib
|
|
, stdenv
|
|
, fetchFromGitHub
|
|
, fetchpatch
|
|
, dbus
|
|
, fltk13
|
|
, gtk2
|
|
, libICE
|
|
, libSM
|
|
, libtiff
|
|
, pkg-config
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "afterstep";
|
|
version = "2.2.12";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "afterstep";
|
|
repo = "afterstep";
|
|
rev = finalAttrs.version;
|
|
hash = "sha256-j1ADTRZ3Mxv9VNZWhWCFMnM/CJfkphdrgbw9Ca3bBw0=";
|
|
};
|
|
|
|
patches = [
|
|
(fetchpatch {
|
|
url = "https://salsa.debian.org/debian/afterstep/raw/master/debian/patches/44-Fix-build-with-gcc-5.patch";
|
|
hash = "sha256-RNLB6PuFVA1PsYt2VwLyLyvY2OO3oIl1xk+0/6nwN+4=";
|
|
})
|
|
|
|
# Fix pending upstream inclusion for binutils-2.36 support:
|
|
# https://github.com/afterstep/afterstep/pull/7
|
|
(fetchpatch {
|
|
name = "binutils-2.36.patch";
|
|
url = "https://github.com/afterstep/afterstep/commit/5e9e897cf8c455390dd6f5b27fec49707f6b9088.patch";
|
|
hash = "sha256-aGMTyojzXEHGjO9lMT6dwLl01Fd333BUuCIX0FU9ac4=";
|
|
})
|
|
];
|
|
|
|
postPatch = ''
|
|
# Causes fatal ldconfig cache generation attempt on non-NixOS Linux
|
|
for mkfile in autoconf/Makefile.common.lib.in libAfter{Base,Image}/Makefile.in; do
|
|
substituteInPlace $mkfile \
|
|
--replace 'test -w /etc' 'false'
|
|
done
|
|
'';
|
|
|
|
nativeBuildInputs = [
|
|
pkg-config
|
|
];
|
|
|
|
buildInputs = [
|
|
dbus
|
|
fltk13
|
|
gtk2
|
|
libICE
|
|
libSM
|
|
libtiff
|
|
];
|
|
|
|
outputs = [ "out" "man" ];
|
|
|
|
strictDeps = true;
|
|
|
|
# A strange type of bug: dbus is not immediately found by pkg-config
|
|
preConfigure = ''
|
|
# binutils 2.37 fix
|
|
# https://github.com/afterstep/afterstep/issues/2
|
|
fixupList=(
|
|
"autoconf/Makefile.defines.in"
|
|
"libAfterImage/aftershow/Makefile.in"
|
|
"libAfterImage/apps/Makefile.in"
|
|
"libAfterBase/Makefile.in"
|
|
"libAfterImage/Makefile.in"
|
|
)
|
|
for toFix in "''${fixupList[@]}"; do
|
|
substituteInPlace "$toFix" --replace "clq" "cq"
|
|
done
|
|
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config dbus-1 --cflags)"
|
|
'';
|
|
|
|
# Parallel build fails due to missing dependencies between private libraries:
|
|
# ld: cannot find ../libAfterConf/libAfterConf.a: No such file or directory
|
|
# Let's disable parallel builds until it's fixed upstream:
|
|
# https://github.com/afterstep/afterstep/issues/8
|
|
enableParallelBuilding = false;
|
|
|
|
meta = {
|
|
homepage = "http://www.afterstep.org/";
|
|
description = "A NEXTStep-inspired window manager";
|
|
longDescription = ''
|
|
AfterStep is a window manager for the Unix X Window System. Originally
|
|
based on the look and feel of the NeXTStep interface, it provides end
|
|
users with a consistent, clean, and elegant desktop. The goal of AfterStep
|
|
development is to provide for flexibility of desktop configuration,
|
|
improving aestetics, and efficient use of system resources.
|
|
'';
|
|
license = lib.licenses.gpl2Plus;
|
|
maintainers = with lib.maintainers; [ AndersonTorres ];
|
|
mainProgram = "afterstep";
|
|
platforms = lib.platforms.linux;
|
|
};
|
|
})
|