diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/af')
-rw-r--r-- | nixpkgs/pkgs/by-name/af/afterstep/package.nix | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/af/afterstep/package.nix b/nixpkgs/pkgs/by-name/af/afterstep/package.nix new file mode 100644 index 000000000000..c91771fefe2d --- /dev/null +++ b/nixpkgs/pkgs/by-name/af/afterstep/package.nix @@ -0,0 +1,103 @@ +{ 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; + }; +}) |