gnustep: move GNUstep packages to by-name

It used newScope before which doesn't work well if at all with overlays.
This commit is contained in:
Marco Rebhan
2025-01-25 21:25:34 +01:00
parent bafca6cbe1
commit 4d96ec0454
28 changed files with 228 additions and 211 deletions
+54
View File
@@ -0,0 +1,54 @@
{
lib,
clangStdenv,
fetchzip,
cairo,
fontconfig,
freetype,
gnustep-base,
gnustep-gui,
gnustep-make,
libXft,
libXmu,
pkg-config,
wrapGNUstepAppsHook,
}:
clangStdenv.mkDerivation (finalAttrs: {
pname = "gnustep-back";
version = "0.31.0";
src = fetchzip {
url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-${finalAttrs.version}.tar.gz";
sha256 = "sha256-CjcoXlKiPVPJMOdrBKjxiNauTZvLcId5Lb8DzbgBbBg=";
};
nativeBuildInputs = [
gnustep-make
pkg-config
wrapGNUstepAppsHook
];
buildInputs = [
cairo
fontconfig
freetype
gnustep-base
gnustep-gui
libXft
libXmu
];
meta = {
description = "Generic backend for GNUstep";
mainProgram = "gpbs";
homepage = "https://gnustep.github.io/";
license = lib.licenses.lgpl2Plus;
maintainers = with lib.maintainers; [
ashalkhakov
dblsaiko
matthewbauer
];
platforms = lib.platforms.linux;
};
})
@@ -1,70 +1,75 @@
{
lib,
stdenv,
clangStdenv,
fetchpatch,
fetchzip,
aspell,
audiofile,
make,
wrapGNUstepAppsHook,
cups,
fetchzip,
fetchpatch,
gmp,
gnutls,
libffi,
binutils-unwrapped,
libjpeg,
libtiff,
libpng,
cups,
giflib,
gmp,
gnustep-libobjc,
gnustep-make,
gnutls,
icu,
libffi,
libgcrypt,
libiberty,
libiconv,
libjpeg,
libpng,
libtiff,
libxml2,
libxslt,
libiconv,
libobjc,
libgcrypt,
icu,
pkg-config,
portaudio,
libiberty,
wrapGNUstepAppsHook,
}:
stdenv.mkDerivation (finalAttrs: {
clangStdenv.mkDerivation (finalAttrs: {
pname = "gnustep-base";
version = "1.29.0";
src = fetchzip {
url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-${finalAttrs.version}.tar.gz";
hash = "sha256-4fjdsLBsYEDxLOFrq17dKii2sLKvOaFCu0cw3qQtM5U=";
};
outputs = [
"out"
"dev"
"lib"
];
nativeBuildInputs = [
gnustep-make
pkg-config
make
wrapGNUstepAppsHook
];
propagatedBuildInputs = [
aspell
audiofile
cups
gmp
gnutls
libffi
binutils-unwrapped
libjpeg
libtiff
libpng
cups
giflib
gmp
gnustep-libobjc
gnutls
icu
libffi
libgcrypt
libiberty
libiconv
libjpeg
libpng
libtiff
libxml2
libxslt
libiconv
libobjc
libgcrypt
icu
portaudio
libiberty
];
patches = [
./fixup-paths.patch
# https://github.com/gnustep/libs-base/issues/212 / https://www.sogo.nu/bugs/view.php?id=5416#c15585
@@ -95,8 +100,8 @@ stdenv.mkDerivation (finalAttrs: {
license = lib.licenses.lgpl2Plus;
maintainers = with lib.maintainers; [
ashalkhakov
matthewbauer
dblsaiko
matthewbauer
];
platforms = lib.platforms.linux;
};
@@ -1,13 +1,13 @@
{
lib,
stdenv,
make,
wrapGNUstepAppsHook,
clangStdenv,
fetchzip,
base,
gnustep-base,
gnustep-make,
wrapGNUstepAppsHook,
}:
stdenv.mkDerivation (finalAttrs: {
clangStdenv.mkDerivation (finalAttrs: {
version = "0.31.1";
pname = "gnustep-gui";
@@ -17,14 +17,16 @@ stdenv.mkDerivation (finalAttrs: {
};
nativeBuildInputs = [
make
gnustep-make
wrapGNUstepAppsHook
];
buildInputs = [ base ];
buildInputs = [ gnustep-base ];
patches = [
./fixup-all.patch
];
meta = {
changelog = "https://github.com/gnustep/libs-gui/releases/tag/gui-${
builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version
@@ -34,8 +36,8 @@ stdenv.mkDerivation (finalAttrs: {
license = lib.licenses.lgpl2Plus;
maintainers = with lib.maintainers; [
ashalkhakov
matthewbauer
dblsaiko
matthewbauer
];
platforms = lib.platforms.linux;
};
@@ -1,13 +1,13 @@
{
lib,
stdenv,
clangStdenv,
fetchFromGitHub,
cmake,
robin-map,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libobjc2";
clangStdenv.mkDerivation (finalAttrs: {
pname = "gnustep-libobjc";
version = "2.2.1";
src = fetchFromGitHub {
@@ -24,14 +24,14 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ];
meta = with lib; {
broken = stdenv.hostPlatform.isDarwin;
broken = clangStdenv.hostPlatform.isDarwin;
description = "Objective-C runtime for use with GNUstep";
homepage = "https://gnustep.github.io/";
license = licenses.mit;
maintainers = with lib.maintainers; [
ashalkhakov
matthewbauer
dblsaiko
matthewbauer
];
platforms = platforms.unix;
};
@@ -1,12 +1,12 @@
{
lib,
stdenv,
clangStdenv,
fetchurl,
gnustep-libobjc,
which,
libobjc,
}:
stdenv.mkDerivation (finalAttrs: {
clangStdenv.mkDerivation (finalAttrs: {
pname = "gnustep-make";
version = "2.9.2";
@@ -18,14 +18,17 @@ stdenv.mkDerivation (finalAttrs: {
configureFlags = [
"--with-layout=fhs-system"
"--disable-install-p"
"--with-config-file=${placeholder "out"}/etc/GNUstep/GNUstep.conf"
];
preConfigure = ''
configureFlags="$configureFlags --with-config-file=$out/etc/GNUstep/GNUstep.conf"
'';
makeFlags = [
"GNUSTEP_INSTALLATION_DOMAIN=SYSTEM"
];
buildInputs = [ libobjc ];
buildInputs = [ gnustep-libobjc ];
propagatedBuildInputs = [ which ];
@@ -41,8 +44,8 @@ stdenv.mkDerivation (finalAttrs: {
license = lib.licenses.lgpl2Plus;
maintainers = with lib.maintainers; [
ashalkhakov
matthewbauer
dblsaiko
matthewbauer
];
platforms = lib.platforms.unix;
};
@@ -1,15 +1,15 @@
{
lib,
stdenv,
clangStdenv,
fetchurl,
make,
gnustep-back,
gnustep-base,
gnustep-gui,
gnustep-make,
wrapGNUstepAppsHook,
back,
base,
gui,
}:
stdenv.mkDerivation (finalAttrs: {
clangStdenv.mkDerivation (finalAttrs: {
pname = "system-preferences";
version = "1.2.0";
@@ -19,13 +19,14 @@ stdenv.mkDerivation (finalAttrs: {
};
nativeBuildInputs = [
make
gnustep-make
wrapGNUstepAppsHook
];
buildInputs = [
back
base
gui
gnustep-back
gnustep-base
gnustep-gui
];
meta = {
@@ -35,8 +36,8 @@ stdenv.mkDerivation (finalAttrs: {
mainProgram = "SystemPreferences";
maintainers = with lib.maintainers; [
ashalkhakov
matthewbauer
dblsaiko
matthewbauer
];
platforms = lib.platforms.linux;
};
@@ -1,15 +1,15 @@
{
lib,
stdenv,
clangStdenv,
fetchzip,
base,
back,
make,
gnustep-back,
gnustep-base,
gnustep-gui,
gnustep-make,
wrapGNUstepAppsHook,
gui,
}:
stdenv.mkDerivation (finalAttrs: {
clangStdenv.mkDerivation (finalAttrs: {
pname = "gorm";
version = "1.4.0";
@@ -19,13 +19,14 @@ stdenv.mkDerivation (finalAttrs: {
};
nativeBuildInputs = [
make
gnustep-make
wrapGNUstepAppsHook
];
buildInputs = [
base
back
gui
gnustep-back
gnustep-base
gnustep-gui
];
meta = {
@@ -35,8 +36,8 @@ stdenv.mkDerivation (finalAttrs: {
mainProgram = "Gorm";
maintainers = with lib.maintainers; [
ashalkhakov
matthewbauer
dblsaiko
matthewbauer
];
platforms = lib.platforms.linux;
};
@@ -1,16 +1,16 @@
{
lib,
stdenv,
back,
base,
gui,
make,
wrapGNUstepAppsHook,
clangStdenv,
fetchurl,
system_preferences,
gnustep-back,
gnustep-base,
gnustep-gui,
gnustep-make,
gnustep-systempreferences,
wrapGNUstepAppsHook,
}:
stdenv.mkDerivation (finalAttrs: {
clangStdenv.mkDerivation (finalAttrs: {
pname = "gworkspace";
version = "1.0.0";
@@ -23,15 +23,17 @@ stdenv.mkDerivation (finalAttrs: {
# - PDFKit framework from http://gap.nongnu.org/
# - TODO: to --enable-gwmetadata, need libDBKit as well as sqlite!
nativeBuildInputs = [
make
gnustep-make
wrapGNUstepAppsHook
];
buildInputs = [
back
base
gui
system_preferences
gnustep-back
gnustep-base
gnustep-gui
gnustep-systempreferences
];
configureFlags = [ "--with-inotify" ];
meta = {
@@ -41,8 +43,8 @@ stdenv.mkDerivation (finalAttrs: {
mainProgram = "GWorkspace";
maintainers = with lib.maintainers; [
ashalkhakov
matthewbauer
dblsaiko
matthewbauer
];
platforms = lib.platforms.linux;
};
+8 -6
View File
@@ -1,7 +1,10 @@
{ lib
, clangStdenv
, fetchFromGitHub
, gnustep
, gnustep-make
, gnustep-base
, gnustep-gui
, wrapGNUstepAppsHook
, libxkbcommon
, makeWrapper
, wayland
@@ -41,8 +44,8 @@ stdenv.mkDerivation {
darwin.DarwinTools
darwin.bootstrap_cmds
] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
gnustep.make
gnustep.wrapGNUstepAppsHook
gnustep-make
wrapGNUstepAppsHook
];
buildInputs = [
@@ -51,9 +54,8 @@ stdenv.mkDerivation {
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.Cocoa
] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
gnustep.back
gnustep.base
gnustep.gui
gnustep-base
gnustep-gui
];
preConfigure = ''
+8 -6
View File
@@ -1,7 +1,10 @@
{ lib
, clangStdenv
, fetchurl
, gnustep
, gnustep-make
, gnustep-base
, gnustep-gui
, wrapGNUstepAppsHook
}:
clangStdenv.mkDerivation rec {
@@ -16,14 +19,13 @@ clangStdenv.mkDerivation rec {
sourceRoot = "PikoPixel.Sources.${version}/PikoPixel";
nativeBuildInputs = [
gnustep.make
gnustep.wrapGNUstepAppsHook
gnustep-make
wrapGNUstepAppsHook
];
buildInputs = [
gnustep.base
gnustep.gui
gnustep.back
gnustep-base
gnustep-gui
];
# Fix the Exec and Icon paths in the .desktop file, and save the file in the
@@ -1,18 +1,18 @@
{
lib,
stdenv,
clangStdenv,
fetchFromGitHub,
make,
wrapGNUstepAppsHook,
base,
back,
gui,
gorm,
gnumake,
gdb,
gnumake,
gnustep-back,
gnustep-base,
gnustep-gui,
gnustep-make,
gorm,
wrapGNUstepAppsHook,
}:
stdenv.mkDerivation (finalAttrs: {
clangStdenv.mkDerivation (finalAttrs: {
pname = "projectcenter";
version = "0.7.0";
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
};
nativeBuildInputs = [
make
gnustep-make
wrapGNUstepAppsHook
];
@@ -32,11 +32,11 @@ stdenv.mkDerivation (finalAttrs: {
# 1. Framework/PCProjectLauncher.m, locate gdb (say among NIX_GNUSTEP_SYSTEM_TOOLS)
# 2. Framework/PCProjectBuilder.m, locate gmake (similar)
propagatedBuildInputs = [
base
back
gui
gnumake
gdb
gnumake
gnustep-back
gnustep-base
gnustep-gui
gorm
];
@@ -47,8 +47,8 @@ stdenv.mkDerivation (finalAttrs: {
mainProgram = "ProjectCenter";
maintainers = with lib.maintainers; [
ashalkhakov
matthewbauer
dblsaiko
matthewbauer
];
platforms = lib.platforms.linux;
};
+11 -9
View File
@@ -1,9 +1,12 @@
{ gnustep, lib, fetchFromGitHub, makeWrapper, python3, lndir, libxcrypt
{ lib, clangStdenv, fetchFromGitHub, fetchpatch, makeWrapper, python3, lndir, libxcrypt
, openssl, openldap, sope, libmemcached, curl, libsodium, libytnef, libzip, pkg-config, nixosTests
, oath-toolkit
, gnustep-make
, gnustep-base
, enableActiveSync ? false
, libwbxml }:
gnustep.stdenv.mkDerivation rec {
clangStdenv.mkDerivation rec {
pname = "sogo";
version = "5.11.2";
@@ -15,8 +18,8 @@ gnustep.stdenv.mkDerivation rec {
hash = "sha256-c+547x7ugYoLMgGVLcMmmb9rzquRJOv8n+Js2CuE7I0=";
};
nativeBuildInputs = [ gnustep.make makeWrapper python3 pkg-config ];
buildInputs = [ gnustep.base sope openssl libmemcached curl libsodium libytnef libzip openldap oath-toolkit libxcrypt ]
nativeBuildInputs = [ gnustep-make makeWrapper python3 pkg-config ];
buildInputs = [ gnustep-base sope openssl libmemcached curl libsodium libytnef libzip openldap oath-toolkit libxcrypt ]
++ lib.optional enableActiveSync libwbxml;
patches = lib.optional enableActiveSync ./enable-activesync.patch;
@@ -33,7 +36,7 @@ gnustep.stdenv.mkDerivation rec {
# Move all GNUStep makefiles to a common directory
mkdir -p makefiles
cp -r {${gnustep.make},${sope}}/share/GNUstep/Makefiles/* makefiles
cp -r {${gnustep-make},${sope}}/share/GNUstep/Makefiles/* makefiles
# Modify the search path for GNUStep makefiles
find . -type f -name GNUmakefile -exec sed -i "s:\\$.GNUSTEP_MAKEFILES.:$PWD/makefiles:g" {} +
@@ -50,11 +53,11 @@ gnustep.stdenv.mkDerivation rec {
preFixup = ''
# Create gnustep.conf
mkdir -p $out/share/GNUstep
cp ${gnustep.make}/etc/GNUstep/GNUstep.conf $out/share/GNUstep/
sed -i "s:${gnustep.make}:$out:g" $out/share/GNUstep/GNUstep.conf
cp ${gnustep-make}/etc/GNUstep/GNUstep.conf $out/share/GNUstep/
sed -i "s:${gnustep-make}:$out:g" $out/share/GNUstep/GNUstep.conf
# Link in GNUstep base
${lndir}/bin/lndir ${lib.getLib gnustep.base}/lib/GNUstep/ $out/lib/GNUstep/
${lndir}/bin/lndir ${lib.getLib gnustep-base}/lib/GNUstep/ $out/lib/GNUstep/
# Link in sope
${lndir}/bin/lndir ${sope}/ $out/
@@ -80,4 +83,3 @@ gnustep.stdenv.mkDerivation rec {
maintainers = with maintainers; [ jceb ];
};
}
+9 -6
View File
@@ -1,7 +1,10 @@
{ gnustep, lib, fetchFromGitHub, fetchpatch, libxml2, openssl
, openldap, mariadb, libmysqlclient, postgresql }:
{ lib, clangStdenv, fetchFromGitHub, fetchpatch, libxml2, openssl
, openldap, mariadb, libmysqlclient, postgresql
, gnustep-make
, gnustep-base
}:
gnustep.stdenv.mkDerivation rec {
clangStdenv.mkDerivation rec {
pname = "sope";
version = "5.11.2";
@@ -12,8 +15,8 @@ gnustep.stdenv.mkDerivation rec {
hash = "sha256-6vec2ZgpK5jcKr3c2SLn6fLAun56MDjupWtR6dMdjag=";
};
nativeBuildInputs = [ gnustep.make ];
buildInputs = [ gnustep.base libxml2 openssl ]
nativeBuildInputs = [ gnustep-make ];
buildInputs = [ gnustep-base libxml2 openssl ]
++ lib.optional (openldap != null) openldap
++ lib.optionals (mariadb != null) [ libmysqlclient mariadb ]
++ lib.optional (postgresql != null) postgresql;
@@ -24,7 +27,7 @@ gnustep.stdenv.mkDerivation rec {
# installed to in the install phase. We move them over after the installation.
preConfigure = ''
mkdir -p /build/Makefiles
ln -s ${gnustep.make}/share/GNUstep/Makefiles/* /build/Makefiles
ln -s ${gnustep-make}/share/GNUstep/Makefiles/* /build/Makefiles
cat <<EOF > /build/GNUstep.conf
GNUSTEP_MAKEFILES=/build/Makefiles
EOF
@@ -0,0 +1,9 @@
{
makeBinaryWrapper,
makeSetupHook,
}:
makeSetupHook {
name = "wrapGNUstepAppsHook";
propagatedBuildInputs = [ makeBinaryWrapper ];
} ./wrapGNUstepAppsHook.sh
-36
View File
@@ -1,36 +0,0 @@
{ lib
, stdenv
, make
, wrapGNUstepAppsHook
, cairo
, fetchzip
, base
, gui
, fontconfig
, freetype
, pkg-config
, libXft
, libXmu
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gnustep-back";
version = "0.31.0";
src = fetchzip {
url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-${finalAttrs.version}.tar.gz";
sha256 = "sha256-CjcoXlKiPVPJMOdrBKjxiNauTZvLcId5Lb8DzbgBbBg=";
};
nativeBuildInputs = [ make pkg-config wrapGNUstepAppsHook ];
buildInputs = [ cairo base gui fontconfig freetype libXft libXmu ];
meta = {
description = "Generic backend for GNUstep";
mainProgram = "gpbs";
homepage = "https://gnustep.github.io/";
license = lib.licenses.lgpl2Plus;
maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
platforms = lib.platforms.linux;
};
})
-26
View File
@@ -1,26 +0,0 @@
{ newScope
, llvmPackages
}:
let
callPackage = newScope self;
self = {
stdenv = llvmPackages.stdenv;
wrapGNUstepAppsHook = callPackage ./wrapGNUstepAppsHook.nix {};
make = callPackage ./make {};
libobjc = callPackage ./libobjc2 {};
base = callPackage ./base {};
back = callPackage ./back {};
gui = callPackage ./gui {};
gorm = callPackage ./gorm {};
projectcenter = callPackage ./projectcenter {};
system_preferences = callPackage ./systempreferences {};
gworkspace = callPackage ./gworkspace {};
};
in self
@@ -1,8 +0,0 @@
{makeBinaryWrapper, makeSetupHook}:
makeSetupHook
{
name = "wrapGNUstepAppsHook";
propagatedBuildInputs = [makeBinaryWrapper];
}
./wrapGNUstepAppsHook.sh
@@ -3,7 +3,7 @@
, lib
, autoPatchelfHook
, wrapQtAppsHook
, gnustep
, gnustep-libobjc
, libbsd
, libffi_3_3
, ncurses6
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
];
buildInputs = [
gnustep.libobjc
gnustep-libobjc
libbsd
libffi_3_3
ncurses6
+4 -3
View File
@@ -2,7 +2,8 @@
, stdenv
, fetchFromGitHub
, installShellFiles
, gnustep
, gnustep-base
, gnustep-make
, bzip2
, zlib
, icu
@@ -54,11 +55,11 @@ stdenv.mkDerivation rec {
'');
buildInputs = [ bzip2 icu openssl wavpack zlib ] ++
lib.optionals stdenv.hostPlatform.isLinux [ gnustep.base ] ++
lib.optionals stdenv.hostPlatform.isLinux [ gnustep-base ] ++
lib.optionals stdenv.hostPlatform.isDarwin [ Foundation AppKit ];
nativeBuildInputs = [ installShellFiles ] ++
lib.optionals stdenv.hostPlatform.isLinux [ gnustep.make ] ++
lib.optionals stdenv.hostPlatform.isLinux [ gnustep-make ] ++
lib.optionals stdenv.hostPlatform.isDarwin [ xcbuildHook ];
xcbuildFlags = lib.optionals stdenv.hostPlatform.isDarwin [
@@ -4,7 +4,9 @@
fetchFromGitHub,
fetchpatch2,
autoreconfHook,
gnustep,
gnustep-make,
gnustep-base,
gnustep-libobjc,
re2c,
openldap,
openssl,
@@ -40,9 +42,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
autoreconfHook
gnustep.base
gnustep.libobjc
gnustep.make
gnustep-libobjc
gnustep-make
gnustep-base
re2c
];
+1
View File
@@ -522,6 +522,7 @@ mapAliases {
gnuradio3_8 = throw "gnuradio3_8 has been removed because it was too old and incompatible with a not EOL swig"; # Added 2024-11-18
gnuradio3_8Minimal = throw "gnuradio3_8Minimal has been removed because it was too old and incompatible with a not EOL swig"; # Added 2024-11-18
gnuradio3_8Packages = throw "gnuradio3_8Minimal has been removed because it was too old and incompatible with a not EOL swig"; # Added 2024-11-18
gnustep = throw "The gnustep scope has been replaced with top-level packages: gnustep-back, -base, -gui, -libobjc, -make, -systempreferences; gorm, gworkspace, projectcenter."; # Added 2025-01-25
gn1924 = throw "gn1924 has been removed because it was broken and no longer used by envoy."; # Added 2024-11-03
gobby5 = throw "'gobby5' has been renamed to/replaced by 'gobby'"; # Converted to throw 2024-10-17
gradle_6 = throw "Gradle 6 has been removed, as it is end-of-life (https://endoflife.date/gradle) and has many vulnerabilities that are not resolved until Gradle 7."; # Added 2024-10-30
-3
View File
@@ -16792,9 +16792,6 @@ with pkgs;
gnome-session-ctl = callPackage ../by-name/gn/gnome-session/ctl.nix { };
# Using 43 to match Mutter used in Pantheon
gnustep = recurseIntoAttrs (callPackage ../desktops/gnustep { });
lomiri = recurseIntoAttrs (callPackage ../desktops/lomiri { });
lumina = recurseIntoAttrs (callPackage ../desktops/lumina { });