From 8d7de1dbf3f7feede44102188a8a18e4d53e97a5 Mon Sep 17 00:00:00 2001 From: whispers Date: Thu, 23 Jul 2026 21:37:38 -0400 Subject: [PATCH] afterstep: drop afterstep is unmaintained upstream, with the last time it was touched being six years ago and appearing to have been on life support for at least a decade. it's had many drive-by and cleanup fixes as part of larger upgrades (binutils, gcc) over the years, which seems disproportionate for a package that is unmaintained in Nixpkgs. additionally, it depends on GTK 2, which is being removed from Nixpkgs. thus, we drop it entirely. --- nixos/modules/rename.nix | 5 + .../x11/window-managers/afterstep.nix | 30 ------ .../services/x11/window-managers/default.nix | 1 - .../af/afterstep/fix-build-with-c23.patch | 81 -------------- pkgs/by-name/af/afterstep/package.nix | 101 ------------------ pkgs/top-level/aliases.nix | 1 + 6 files changed, 6 insertions(+), 213 deletions(-) delete mode 100644 nixos/modules/services/x11/window-managers/afterstep.nix delete mode 100644 pkgs/by-name/af/afterstep/fix-build-with-c23.patch delete mode 100644 pkgs/by-name/af/afterstep/package.nix diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 54664ae769ba..f631e7f8f219 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -403,6 +403,11 @@ in as the underlying package isn't being maintained. Working alternatives are libinput and synaptics. '') + (mkRemovedOptionModule [ "services" "xserver" "windowManager" "afterstep" ] '' + The services.xserver.windowManager.afterstep module and the corresponding + package have been removed from Nixpkgs because they were unmaintained + upstream. + '') (mkRemovedOptionModule [ "services" "xserver" "windowManager" "ragnarwm" ] '' The services.xserver.windowManager.ragnarwm module has been removed because the corresponding package was removed from nixpkgs. diff --git a/nixos/modules/services/x11/window-managers/afterstep.nix b/nixos/modules/services/x11/window-managers/afterstep.nix deleted file mode 100644 index d88be7db3757..000000000000 --- a/nixos/modules/services/x11/window-managers/afterstep.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -with lib; - -let - cfg = config.services.xserver.windowManager.afterstep; -in -{ - ###### interface - options = { - services.xserver.windowManager.afterstep.enable = mkEnableOption "afterstep"; - }; - - ###### implementation - config = mkIf cfg.enable { - services.xserver.windowManager.session = singleton { - name = "afterstep"; - start = '' - ${pkgs.afterstep}/bin/afterstep & - waitPID=$! - ''; - }; - environment.systemPackages = [ pkgs.afterstep ]; - }; -} diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix index b4565cb17490..388089fcc024 100644 --- a/nixos/modules/services/x11/window-managers/default.nix +++ b/nixos/modules/services/x11/window-managers/default.nix @@ -8,7 +8,6 @@ in { imports = [ ./2bwm.nix - ./afterstep.nix ./berry.nix ./bspwm.nix ./cwm.nix diff --git a/pkgs/by-name/af/afterstep/fix-build-with-c23.patch b/pkgs/by-name/af/afterstep/fix-build-with-c23.patch deleted file mode 100644 index f68a636af50c..000000000000 --- a/pkgs/by-name/af/afterstep/fix-build-with-c23.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 081d9c3284075c65b70837079bd67621c3b64da7 Mon Sep 17 00:00:00 2001 -From: Moraxyc -Date: Sun, 28 Dec 2025 00:39:49 +0800 -Subject: [PATCH] fix build with c23 - ---- - libAfterBase/fs.c | 2 +- - src/ASDocGen/ASDocGen.c | 2 +- - src/Ident/Ident.c | 2 +- - src/afterstep/dirtree.c | 2 +- - src/afterstep/menus.h | 2 +- - 5 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/libAfterBase/fs.c b/libAfterBase/fs.c -index 731bfd3..954bfd6 100644 ---- a/libAfterBase/fs.c -+++ b/libAfterBase/fs.c -@@ -818,7 +818,7 @@ my_scandir (char *dirname, struct direntry *(*namelist[]), - } - /* Optionally sort the list */ - if (dcomp) -- qsort (*namelist, n, sizeof (struct direntry *), (int (*)())dcomp); -+ qsort (*namelist, n, sizeof (struct direntry *), (int (*)(const void *, const void *))dcomp); - - /* Return the count of the entries */ - return n; -diff --git a/src/ASDocGen/ASDocGen.c b/src/ASDocGen/ASDocGen.c -index 31d7a70..9a86219 100644 ---- a/src/ASDocGen/ASDocGen.c -+++ b/src/ASDocGen/ASDocGen.c -@@ -667,7 +667,7 @@ write_options_keywords(const char *source_dir, const char *syntax_dir, SyntaxDef - sorted_list = safecalloc( max_i, sizeof(TermDef*)); - for (i = 0; i < max_i; i++) - sorted_list[i] = &(syntax->terms[i]) ; -- qsort(sorted_list, max_i, sizeof(TermDef*), (int (*)())sort_terms_by_alpha ); -+ qsort(sorted_list, max_i, sizeof(TermDef*), (int (*)(const void *, const void *))sort_terms_by_alpha ); - for (i = 0; i < max_i; i++) - { - SyntaxDef *sub_syntax = sorted_list[i]->sub_syntax ; -diff --git a/src/Ident/Ident.c b/src/Ident/Ident.c -index 1497d06..d6ddad6 100644 ---- a/src/Ident/Ident.c -+++ b/src/Ident/Ident.c -@@ -89,7 +89,7 @@ void HandleEvents(); - void DispatchEvent (ASEvent * event); - void process_message (send_data_type type, send_data_type *body); - --Window make_ident_window(); -+Window make_ident_window(int width, int height); - void fill_window_data(); - void display_window_data(); - void add_property( const char *name, const char *value, unsigned long value_encoding, Bool span_cols ); -diff --git a/src/afterstep/dirtree.c b/src/afterstep/dirtree.c -index 46ce782..48f7e30 100644 ---- a/src/afterstep/dirtree.c -+++ b/src/afterstep/dirtree.c -@@ -675,7 +675,7 @@ void dirtree_sort (dirtree_t * tree) - list = (dirtree_t **) safemalloc (n * sizeof (dirtree_t *)); - for (n = 0, t = tree->child; t != NULL; t = t->next, n++) - list[n] = t; -- qsort (list, n, sizeof (dirtree_t *), (int (*)())dirtree_compar); -+ qsort (list, n, sizeof (dirtree_t *), (int (*)(const void *, const void *))dirtree_compar); - tree->child = list[0]; - for (i = 1; i < n; i++) - list[i - 1]->next = list[i]; -diff --git a/src/afterstep/menus.h b/src/afterstep/menus.h -index 98b2ad3..bb2a5b1 100644 ---- a/src/afterstep/menus.h -+++ b/src/afterstep/menus.h -@@ -95,7 +95,7 @@ MenuData* FindPopup( const char* name, int quiet ); - - void DeleteMenuItem( MenuDataItem* item ); - --MenuData *CreateMenuData(); -+MenuData *CreateMenuData(char *name); - MenuData *NewMenuData (char *name); - void DeleteMenuData (MenuData * menu); - --- -2.51.2 - diff --git a/pkgs/by-name/af/afterstep/package.nix b/pkgs/by-name/af/afterstep/package.nix deleted file mode 100644 index 4fc264ec020e..000000000000 --- a/pkgs/by-name/af/afterstep/package.nix +++ /dev/null @@ -1,101 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - fetchpatch, - dbus, - fltk_1_3, - 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="; - }) - - # fix build with c23 - # fs.c:821:66: error: passing argument 4 of 'qsort' from incompatible pointer type [-Wincompatible-pointer-types] - # Ident.c:326:1: error: conflicting types for 'make_ident_window'; have 'Window(int, int)' {aka 'long unsigned int(int, int)'} - # menuitem.c:85:11: error: conflicting types for 'CreateMenuData'; have 'MenuData *(char *)' - ./fix-build-with-c23.patch - ]; - - 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-fail 'test -w /etc' 'false' - done - ''; - - nativeBuildInputs = [ - pkg-config - ]; - - buildInputs = [ - dbus - fltk_1_3 - gtk2 - libice - libsm - libtiff - ]; - - outputs = [ - "out" - "man" - ]; - - strictDeps = true; - - preConfigure = '' - # A strange type of bug: dbus is not immediately found by pkg-config - 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 = "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 = [ ]; - mainProgram = "afterstep"; - platforms = lib.platforms.linux; - }; -}) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 9d55f467d73f..cea122235064 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -278,6 +278,7 @@ mapAliases { adobe-reader = throw "'adobe-reader' has been removed, as it was broken, outdated and insecure"; # Added 2025-05-31 aefs = throw "'aefs' has been removed, as it depends on unsupported fuse2 and unmaintained upstream"; # Added 2026-05-30 afpfs-ng = throw "'afpfs-ng' has been removed as it was broken and unmaintained for 10 years"; # Added 2025-05-17 + afterstep = throw "'afterstep' has been removed as it was unmaintained upstream and depends on the deprecated GTK2 engine."; # Added 2026-07-23 afuse = throw "'afuse' has been removed as it is unmaintained upstream, and depends on fuse2, which is deprecated"; # Added 2026-05-05 agrep = throw "'agrep' has been removed due to lack of upstream maintenance. Consider using 'tre' or 'ugrep' instead."; # Added 2025-12-28 akkoma-emoji = throw "'akkoma-emoji' has been renamed to/replaced by 'blobs_gg'"; # Converted to throw 2025-10-27