diff options
Diffstat (limited to 'pkgs/desktops')
54 files changed, 479 insertions, 488 deletions
diff --git a/pkgs/desktops/deepin/apps/deepin-compressor/0001-fix-build-on-new-dtk.diff b/pkgs/desktops/deepin/apps/deepin-compressor/0001-fix-build-on-new-dtk.diff new file mode 100644 index 000000000000..237d5798ecc8 --- /dev/null +++ b/pkgs/desktops/deepin/apps/deepin-compressor/0001-fix-build-on-new-dtk.diff @@ -0,0 +1,20 @@ +diff --git a/src/source/common/ddesktopservicesthread.h b/src/source/common/ddesktopservicesthread.h +index 49313744..456a5e96 100644 +--- a/src/source/common/ddesktopservicesthread.h ++++ b/src/source/common/ddesktopservicesthread.h +@@ -8,10 +8,14 @@ + + #include <QThread> + ++#include <dtkwidget_global.h> ++#include <dtkgui_global.h> + #include <DDesktopServices> + #include <QDebug> + #include <QFileInfo> ++ + DWIDGET_USE_NAMESPACE ++DGUI_USE_NAMESPACE + + // 文管打开文件目录线程 + class DDesktopServicesThread : public QThread + diff --git a/pkgs/desktops/deepin/apps/deepin-compressor/default.nix b/pkgs/desktops/deepin/apps/deepin-compressor/default.nix index 393c51e4ac64..9be79853b5fe 100644 --- a/pkgs/desktops/deepin/apps/deepin-compressor/default.nix +++ b/pkgs/desktops/deepin/apps/deepin-compressor/default.nix @@ -20,20 +20,24 @@ stdenv.mkDerivation rec { pname = "deepin-compressor"; - version = "5.12.23"; + version = "5.12.24"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-8qfpNM2rci4subdodxfJZLP3OvAxXl7QRl4MHGr15nA="; + hash = "sha256-XNhG28VZifQrl3TZfx/OHnsAOo0eKrhGKDk+OjOYD8k="; }; + patches = [ + ./0001-fix-build-on-new-dtk.diff + ]; + postPatch = '' substituteInPlace src/source/common/pluginmanager.cpp \ - --replace "/usr/lib/" "$out/lib/" + --replace-fail "/usr/lib/" "$out/lib/" substituteInPlace src/desktop/deepin-compressor.desktop \ - --replace "/usr" "$out" + --replace-fail "/usr" "$out" ''; nativeBuildInputs = [ @@ -61,6 +65,11 @@ stdenv.mkDerivation rec { "-DUSE_TEST=OFF" ]; + # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH + qtWrapperArgs = [ + "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}" + ]; + strictDeps = true; meta = with lib; { diff --git a/pkgs/desktops/deepin/apps/deepin-screen-recorder/default.nix b/pkgs/desktops/deepin/apps/deepin-screen-recorder/default.nix index a0f83e7eb438..c035a217171e 100644 --- a/pkgs/desktops/deepin/apps/deepin-screen-recorder/default.nix +++ b/pkgs/desktops/deepin/apps/deepin-screen-recorder/default.nix @@ -78,6 +78,9 @@ stdenv.mkDerivation rec { gst-plugins-good ]); + # Fix build failure on dtk 5.6.20 + env.NIX_CFLAGS_COMPILE = "-std=c++14"; + # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH qtWrapperArgs = [ "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}" diff --git a/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix b/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix index 581eb1fa3580..52492275e98c 100644 --- a/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix +++ b/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix @@ -27,13 +27,13 @@ stdenv.mkDerivation rec { pname = "deepin-system-monitor"; - version = "6.0.9"; + version = "6.0.13"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-ompsCTPmmF7S0UHNNU0YDQiTdvcFglpEoS4o+XMZ7jg="; + hash = "sha256-QwZPvEOYypSmbe3deqLRsI3VL/CgVc+Ql3JlsMZ9MqY="; }; postPatch = '' diff --git a/pkgs/desktops/deepin/artwork/dde-account-faces/default.nix b/pkgs/desktops/deepin/artwork/dde-account-faces/default.nix index 63db25d8dbc8..b635b721a012 100644 --- a/pkgs/desktops/deepin/artwork/dde-account-faces/default.nix +++ b/pkgs/desktops/deepin/artwork/dde-account-faces/default.nix @@ -5,13 +5,13 @@ stdenvNoCC.mkDerivation rec { pname = "dde-account-faces"; - version = "1.0.15"; + version = "1.0.16"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-/eTGy+9fcYmGrh09RdCIZ2Cn12gTaGtg4Tluv25n5r0="; + hash = "sha256-PtbEsFQl6M5Ouadxy9CTVh1Bmmect83NODO4Ks+ckKU="; }; makeFlags = [ "PREFIX=${placeholder "out"}/var" ]; diff --git a/pkgs/desktops/deepin/artwork/deepin-icon-theme/default.nix b/pkgs/desktops/deepin/artwork/deepin-icon-theme/default.nix index 95e715e4d375..5260df0ece63 100644 --- a/pkgs/desktops/deepin/artwork/deepin-icon-theme/default.nix +++ b/pkgs/desktops/deepin/artwork/deepin-icon-theme/default.nix @@ -8,13 +8,13 @@ stdenvNoCC.mkDerivation rec { pname = "deepin-icon-theme"; - version = "2023.11.28"; + version = "2024.01.31"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-kCWJAmJa0VmhnuegE+acj82Ojl4Z5D8g7/q2PzppJwg="; + hash = "sha256-08maujG5Tibsv9N+5olOeD8MrXTRiZh0OQm0bg8t+Cc="; }; makeFlags = [ "PREFIX=${placeholder "out"}" ]; diff --git a/pkgs/desktops/deepin/core/dde-app-services/default.nix b/pkgs/desktops/deepin/core/dde-app-services/default.nix index 4c27ced09d56..64713d08b11f 100644 --- a/pkgs/desktops/deepin/core/dde-app-services/default.nix +++ b/pkgs/desktops/deepin/core/dde-app-services/default.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation rec { pname = "dde-app-services"; - version = "1.0.23"; + version = "1.0.25"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-INxbRDpG3MqPW6IMTqEagDCGo7vwxkR6D1+lcWdjO3w="; + hash = "sha256-/lHiSUOTD8nC0WDLAHAFzm1YC0WjSS5W5JNC0cjeVEo="; }; postPatch = '' diff --git a/pkgs/desktops/deepin/core/dde-appearance/default.nix b/pkgs/desktops/deepin/core/dde-appearance/default.nix index fef56b3978f7..01fd610099c7 100644 --- a/pkgs/desktops/deepin/core/dde-appearance/default.nix +++ b/pkgs/desktops/deepin/core/dde-appearance/default.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation rec { pname = "dde-appearance"; - version = "1.1.6"; + version = "1.1.25"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-7oRbydLXw8yRzi9L1GH/q0cjMY/DLyWbj4RUSyNpVNM="; + hash = "sha256-H9TvWF6Q0lX4GF4mQ71E3SUqWbhH7dzHIlScovbN7lM="; }; patches = [ @@ -43,7 +43,7 @@ stdenv.mkDerivation rec { substituteInPlace src/service/modules/api/themethumb.cpp \ --replace "/usr/lib/deepin-api" "/run/current-system/sw/lib/deepin-api" - substituteInPlace src/service/dbus/deepinwmfaker.cpp \ + substituteInPlace fakewm/dbus/deepinwmfaker.cpp \ --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon" substituteInPlace src/service/modules/api/locale.cpp \ diff --git a/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff b/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff index 14fb527c7ef4..3ed997dc0cc5 100644 --- a/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff +++ b/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff @@ -11,10 +11,10 @@ index b612e6e..371f966 100644 "serial": 0, "flags": [], "name": "Background_Uris", -diff --git a/src/service/dbus/deepinwmfaker.cpp b/src/service/dbus/deepinwmfaker.cpp +diff --git a/fakewm/dbus/deepinwmfaker.cpp b/fakewm/dbus/deepinwmfaker.cpp index 5d455fa..40ec608 100644 ---- a/src/service/dbus/deepinwmfaker.cpp -+++ b/src/service/dbus/deepinwmfaker.cpp +--- a/fakewm/dbus/deepinwmfaker.cpp ++++ b/fakewm/dbus/deepinwmfaker.cpp @@ -54,13 +54,13 @@ Q_GLOBAL_STATIC_WITH_ARGS(QGSettings, _gsettings_dde_zone, ("com.deepin.dde.zone #define KWinDBusCompositorInterface "org.kde.kwin.Compositing" diff --git a/pkgs/desktops/deepin/core/dde-application-manager/default.nix b/pkgs/desktops/deepin/core/dde-application-manager/default.nix index 0949bc6e4993..865352f92475 100644 --- a/pkgs/desktops/deepin/core/dde-application-manager/default.nix +++ b/pkgs/desktops/deepin/core/dde-application-manager/default.nix @@ -1,42 +1,36 @@ { stdenv , lib , fetchFromGitHub +, fetchpatch , cmake , pkg-config , wrapQtAppsHook , qtbase -, dtkwidget -, dde-polkit-agent -, gsettings-qt -, libcap -, jemalloc -, xorg -, iconv }: stdenv.mkDerivation rec { pname = "dde-application-manager"; - version = "1.0.19"; + version = "1.1.8"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-1P265xqlL/wML66nKdfTgkRx6MCpLwrt5rXu+CyeShU="; + hash = "sha256-ImyXSyQWMFLvmtx9mBxrr4/IFOgOH1BW650mbiwFh5U="; }; - # remove this patch after next release - postPatch = '' - substituteInPlace src/modules/mimeapp/mime_app.cpp src/modules/launcher/common.h src/service/main.cpp \ - misc/dconf/com.deepin.dde.appearance.json \ - --replace "/usr/share" "/run/current-system/sw/share" - - substituteInPlace src/lib/dlocale.cpp --replace "/usr/share/locale/locale.alias" "${iconv}/share/locale/locale.alias" - - for file in $(grep -rl "/usr/bin"); do - substituteInPlace $file --replace "/usr/bin/" "/run/current-system/sw/bin/" - done - ''; + patches = [ + (fetchpatch { + name = "set-more-scale-envs-to-application.patch"; + url = "https://github.com/linuxdeepin/dde-application-manager/commit/a1f8ad276d88c81249dd3468779862186a180238.patch"; + hash = "sha256-/iKg6NZZomNEKYsZCZP1IfNr7ZAXiA9RVBnyf+M/f4w="; + }) + (fetchpatch { + name = "support-execSearchPath-to-prevent-systemd-from-finding-binaries.patch"; + url = "https://github.com/linuxdeepin/dde-application-manager/commit/2eaca7c6b8b841d571e9d3510f9f14c321cd976e.patch"; + hash = "sha256-GWUIv4NIBLQpnY4GcjLShMjiXAfPi3zKdol3whchC/Y="; + }) + ]; nativeBuildInputs = [ cmake @@ -46,12 +40,6 @@ stdenv.mkDerivation rec { buildInputs = [ qtbase - dtkwidget - gsettings-qt - libcap - jemalloc - xorg.libXdmcp - xorg.libXres ]; meta = with lib; { diff --git a/pkgs/desktops/deepin/core/dde-calendar/default.nix b/pkgs/desktops/deepin/core/dde-calendar/default.nix index a9a3af0adee1..930b75a65644 100644 --- a/pkgs/desktops/deepin/core/dde-calendar/default.nix +++ b/pkgs/desktops/deepin/core/dde-calendar/default.nix @@ -18,13 +18,13 @@ stdenv.mkDerivation rec { pname = "dde-calendar"; - version = "5.11.1"; + version = "5.12.1"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-EQcB+a0dK2c6NdvGFbyp65a8nN2PmOpZLWx61UDOTJg="; + hash = "sha256-p+KtObh2JT7aPcDCi0jmaNmLqB1aU3IvAiYrGmhErcI="; }; patches = [ diff --git a/pkgs/desktops/deepin/core/dde-control-center/default.nix b/pkgs/desktops/deepin/core/dde-control-center/default.nix index f397e9ca2837..cca8a03e771f 100644 --- a/pkgs/desktops/deepin/core/dde-control-center/default.nix +++ b/pkgs/desktops/deepin/core/dde-control-center/default.nix @@ -17,19 +17,20 @@ , polkit-qt , libxcrypt , librsvg +, gtest , runtimeShell , dbus }: stdenv.mkDerivation rec { pname = "dde-control-center"; - version = "6.0.28"; + version = "6.0.44"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-kgQ4ySiYtaklOqER56QtKD9lk1CnRSEAU4QPHycl9eI="; + hash = "sha256-NN2CSIYByxeTZraK48lAsQSJYAOTDHzKT1FOa+VWMo0="; }; postPatch = '' @@ -57,6 +58,7 @@ stdenv.mkDerivation rec { polkit-qt libxcrypt librsvg + gtest ]; cmakeFlags = [ diff --git a/pkgs/desktops/deepin/core/dde-dock/default.nix b/pkgs/desktops/deepin/core/dde-dock/default.nix index 5ea7da4ed201..39aa5492a44d 100644 --- a/pkgs/desktops/deepin/core/dde-dock/default.nix +++ b/pkgs/desktops/deepin/core/dde-dock/default.nix @@ -21,13 +21,13 @@ stdenv.mkDerivation rec { pname = "dde-dock"; - version = "6.0.22"; + version = "6.0.35"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-fhc2faiPH35ZKw6SCoGTz+6mgxabNpCFQeY2p68Ba5w="; + hash = "sha256-ATC/Ze6GyjT92eCgAt9g2FIQbXLVHUMuXuAslNnbkCE="; }; postPatch = '' diff --git a/pkgs/desktops/deepin/core/dde-file-manager/default.nix b/pkgs/desktops/deepin/core/dde-file-manager/default.nix index a197980c8d74..552fa748d51f 100644 --- a/pkgs/desktops/deepin/core/dde-file-manager/default.nix +++ b/pkgs/desktops/deepin/core/dde-file-manager/default.nix @@ -1,7 +1,6 @@ { stdenv , lib , fetchFromGitHub -, fetchpatch , runtimeShell , dtkwidget , qt5integration @@ -44,13 +43,13 @@ stdenv.mkDerivation rec { pname = "dde-file-manager"; - version = "6.0.31"; + version = "6.0.40"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-mc2HcoLrwMXKU8w34KUEh62ZfEIfbJLVzz4JGnUE5EM="; + hash = "sha256-fvxP6wle4hezt9nEDpTgK+xB4J5XIC0mP5jWCmkjJPA="; }; nativeBuildInputs = [ @@ -63,13 +62,7 @@ stdenv.mkDerivation rec { dontWrapGApps = true; patches = [ - ./use_v23_dbus_interface.diff - - (fetchpatch { - name = "use-pkgconfig-to-check-mount.patch"; - url = "https://github.com/linuxdeepin/dde-file-manager/commit/b6c210057d991591df45b80607a614e7a57a9dc0.patch"; - hash = "sha256-k0ZYlOVN3hHs1qvvRaJ3i6okOhDE+DoUKGs9AhSFBGU="; - }) + ./patch_check_v23_interface.diff ]; postPatch = '' @@ -132,6 +125,8 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DVERSION=${version}" + "-DNIX_DEEPIN_VERSION=23" + "-DSYSTEMD_USER_UNIT_DIR=${placeholder "out"}/lib/systemd/user" ]; enableParallelBuilding = true; diff --git a/pkgs/desktops/deepin/core/dde-file-manager/use_v23_dbus_interface.diff b/pkgs/desktops/deepin/core/dde-file-manager/patch_check_v23_interface.diff index 5a42ecd4a1f5..c41306f59031 100644 --- a/pkgs/desktops/deepin/core/dde-file-manager/use_v23_dbus_interface.diff +++ b/pkgs/desktops/deepin/core/dde-file-manager/patch_check_v23_interface.diff @@ -1,13 +1,13 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index e93d3ad..94e3eca 100644 +index 8a8cfb079..34092aa57 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -30,7 +30,7 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) +@@ -31,7 +31,7 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) endif() #Indentify the version -if (${DEEPIN_OS_VERSION} MATCHES "23") -+if (TRUE) ++if (${NIX_DEEPIN_VERSION} MATCHES "23") add_definitions(-DCOMPILE_ON_V23) set(COMPLIE_ON_V23 TRUE) message("COMPILE ON v23") diff --git a/pkgs/desktops/deepin/core/dde-launchpad/default.nix b/pkgs/desktops/deepin/core/dde-launchpad/default.nix index a6104d61c922..d57609bea945 100644 --- a/pkgs/desktops/deepin/core/dde-launchpad/default.nix +++ b/pkgs/desktops/deepin/core/dde-launchpad/default.nix @@ -15,15 +15,20 @@ stdenv.mkDerivation rec { pname = "dde-launchpad"; - version = "0.3.0"; + version = "0.4.4"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-8m0DjQYih3hB/n2VHuJgUYBe8tpGwBU0NdkLxr1OsFc="; + hash = "sha256-az8BC3n44NGpATNu3Exjn3H7Rumx/YqDXztEGqCpAbY="; }; + postPatch = '' + substituteInPlace desktopintegration.cpp \ + --replace "AppStreamQt/pool.h" "AppStreamQt5/pool.h" + ''; + nativeBuildInputs = [ cmake qttools diff --git a/pkgs/desktops/deepin/core/dde-network-core/default.nix b/pkgs/desktops/deepin/core/dde-network-core/default.nix index 24d46698765e..f9d97f735a62 100644 --- a/pkgs/desktops/deepin/core/dde-network-core/default.nix +++ b/pkgs/desktops/deepin/core/dde-network-core/default.nix @@ -18,13 +18,13 @@ stdenv.mkDerivation rec { pname = "dde-network-core"; - version = "2.0.15"; + version = "2.0.21"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-AMuWEz3Eyw0tG0srLWpqS7MO7Z4ZzIay4z59cZQZU0o="; + hash = "sha256-xuPEh0o62seyxlW+MKGgv/DdheYibSI1K0RJAjxraCw="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/deepin/core/dde-session-shell/default.nix b/pkgs/desktops/deepin/core/dde-session-shell/default.nix index 48479c6893ea..b30840f74ff3 100644 --- a/pkgs/desktops/deepin/core/dde-session-shell/default.nix +++ b/pkgs/desktops/deepin/core/dde-session-shell/default.nix @@ -25,13 +25,13 @@ stdenv.mkDerivation rec { pname = "dde-session-shell"; - version = "6.0.10"; + version = "6.0.17"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-h4X3RZe7+CxVeFmk/7+7K4d/2D1+jhECKQaxl4TsuvM="; + hash = "sha256-X/aBMxrYeCT3I9ynV8cPzS23H44fHLkpkztewnfTNxA="; }; postPatch = '' diff --git a/pkgs/desktops/deepin/core/dde-session-ui/default.nix b/pkgs/desktops/deepin/core/dde-session-ui/default.nix index a732589d7ea1..190ad0bbc704 100644 --- a/pkgs/desktops/deepin/core/dde-session-ui/default.nix +++ b/pkgs/desktops/deepin/core/dde-session-ui/default.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation rec { pname = "dde-session-ui"; - version = "6.0.10"; + version = "6.0.16"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-JwktVbwWdfqURhZuEFdB5oaKMsBZu5DekpZ2WGpcL4Q="; + hash = "sha256-hxunGK7DxRuAbmi6PtylHCBajV3b1qbFVA+AiuOCcN0="; }; postPatch = '' diff --git a/pkgs/desktops/deepin/core/dde-session/default.nix b/pkgs/desktops/deepin/core/dde-session/default.nix index 72ae99f8c843..0e919c144d46 100644 --- a/pkgs/desktops/deepin/core/dde-session/default.nix +++ b/pkgs/desktops/deepin/core/dde-session/default.nix @@ -15,16 +15,19 @@ stdenv.mkDerivation rec { pname = "dde-session"; - version = "1.1.9"; + version = "1.2.5"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-CyHvvNALXe4fOMjD48By/iaU6/xNUhH9yG19Ob3bHy0="; + hash = "sha256-YYGRjVbVFyzmRhYu6sDtxzghocgM7Myr3K77AqWQk3E="; }; postPatch = '' + substituteInPlace misc/CMakeLists.txt \ + --replace "/etc" "$out/etc" + # Avoid using absolute path to distinguish applications substituteInPlace src/dde-session/impl/sessionmanager.cpp \ --replace 'file.readAll().startsWith("/usr/bin/dde-lock")' 'file.readAll().contains("dde-lock")' \ diff --git a/pkgs/desktops/deepin/core/dde-widgets/default.nix b/pkgs/desktops/deepin/core/dde-widgets/default.nix index 975cb978e7a7..f071d4f63fc0 100644 --- a/pkgs/desktops/deepin/core/dde-widgets/default.nix +++ b/pkgs/desktops/deepin/core/dde-widgets/default.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation rec { pname = "dde-widgets"; - version = "6.0.14"; + version = "6.0.19"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-bmhT7UhMXtC5wlRtwlVnGjoq8rUQcDSk4rGQ0Xrz9ZI="; + hash = "sha256-oB0lyfmxBSwqjXO+etYdc+DghZVSBU+LXYqK1WS5DaU="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/deepin/core/deepin-kwin/default.nix b/pkgs/desktops/deepin/core/deepin-kwin/default.nix index 03e40357317c..f31a0a57fb7b 100644 --- a/pkgs/desktops/deepin/core/deepin-kwin/default.nix +++ b/pkgs/desktops/deepin/core/deepin-kwin/default.nix @@ -36,13 +36,13 @@ stdenv.mkDerivation rec { pname = "deepin-kwin"; - version = "5.25.11"; + version = "5.25.15"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-J92T1hsRmmtkjF9OPsrikRtd7bQSEG88UOYu+BHUSx0="; + hash = "sha256-aI5wHEFfvZeoz4ykw9dVx/9e96T1Yahs4YZNutv+CYM="; }; patches = [ diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix index 0361a13142cb..2edf1359bee9 100644 --- a/pkgs/desktops/deepin/default.nix +++ b/pkgs/desktops/deepin/default.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, config, libsForQt5 }: +{ lib, pkgs, config, libsForQt5, qt6Packages }: let packages = self: let @@ -28,7 +28,7 @@ let deepin-kwin = callPackage ./core/deepin-kwin { }; dde-appearance = callPackage ./core/dde-appearance { }; dde-app-services = callPackage ./core/dde-app-services { }; - dde-application-manager = callPackage ./core/dde-application-manager { }; + dde-application-manager = qt6Packages.callPackage ./core/dde-application-manager { }; dde-control-center = callPackage ./core/dde-control-center { }; dde-calendar = callPackage ./core/dde-calendar { }; dde-clipboard = callPackage ./core/dde-clipboard { }; diff --git a/pkgs/desktops/deepin/go-package/dde-api/default.nix b/pkgs/desktops/deepin/go-package/dde-api/default.nix index 11aa986124b2..9b1f6f080818 100644 --- a/pkgs/desktops/deepin/go-package/dde-api/default.nix +++ b/pkgs/desktops/deepin/go-package/dde-api/default.nix @@ -1,7 +1,6 @@ { stdenv , lib , fetchFromGitHub -, fetchpatch , buildGoModule , pkg-config , deepin-gettext-tools @@ -21,40 +20,32 @@ buildGoModule rec { pname = "dde-api"; - version = "6.0.7"; + version = "6.0.9"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-kdf1CoZUyda6bOTW0WJTgaXYhocrjRU9ptj7i+k8aaQ="; + hash = "sha256-ht5IaXi4nz0/U1zqp4JTiDkQ3NB69q24MgWfu45SpoY="; }; - patches = [ - (fetchpatch { - name = "modify_PKGBUILD_to_support_OBS.patch"; - url = "https://github.com/linuxdeepin/dde-api/commit/1399522d032c6c649db79a33348cdb1a233bc23a.patch"; - hash = "sha256-kSHnYaOxIvv7lAJnvxpSwyRDPyDxpAq9x+gJcBdU3T8="; - }) - ]; - - vendorHash = "sha256-4Yscw3QjWG1rlju6sMRHGn3dSe65b1nx10B3KeyAzBM="; + vendorHash = "sha256-zrtUsCF2+301DKwgWectw+UbOehOp8h8u/IMf09XQ8Q="; postPatch = '' substituteInPlace misc/systemd/system/deepin-shutdown-sound.service \ - --replace "/usr/bin/true" "${coreutils}/bin/true" + --replace-fail "/usr/bin/true" "${coreutils}/bin/true" substituteInPlace sound-theme-player/main.go \ - --replace "/usr/sbin/alsactl" "alsactl" + --replace-fail "/usr/sbin/alsactl" "alsactl" substituteInPlace misc/{scripts/deepin-boot-sound.sh,systemd/system/deepin-login-sound.service} \ - --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" + --replace-fail "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" substituteInPlace lunar-calendar/huangli.go adjust-grub-theme/main.go \ - --replace "/usr/share/dde-api" "$out/share/dde-api" + --replace-fail "/usr/share/dde-api" "$out/share/dde-api" substituteInPlace themes/{theme.go,settings.go} \ - --replace "/usr/share" "/run/current-system/sw/share" + --replace-fail "/usr/share" "/run/current-system/sw/share" for file in $(grep "/usr/lib/deepin-api" * -nR |awk -F: '{print $1}') do diff --git a/pkgs/desktops/deepin/go-package/dde-daemon/default.nix b/pkgs/desktops/deepin/go-package/dde-daemon/default.nix index 0f322505be2f..b79f1fe472d1 100644 --- a/pkgs/desktops/deepin/go-package/dde-daemon/default.nix +++ b/pkgs/desktops/deepin/go-package/dde-daemon/default.nix @@ -38,16 +38,16 @@ buildGoModule rec { pname = "dde-daemon"; - version = "6.0.22"; + version = "6.0.34"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-D7s6wWZeZHYl/aP/0qLYNn+lZEwGJAjFNbO0whKymck="; + hash = "sha256-NIFgv6EUSnCqSdPttx6wrr7K1nRV/JIZJy9uS7uu0Sc="; }; - vendorHash = "sha256-U+G5CELpor34RgFzHpxfvJ/jBfWfE4ShjY2b2Z61BhE="; + vendorHash = "sha256-F39QGxY0aD+hHWguHosSrSzcB/ahYbnFW9vVtS5oUnU="; patches = [ ./0001-dont-set-PATH.diff @@ -70,10 +70,11 @@ buildGoModule rec { --replace "/usr/share/X11/xkb" "${xkeyboard_config}/share/X11/xkb" substituteInPlace bin/dde-system-daemon/wallpaper.go accounts1/user.go \ - --replace "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers" + --replace "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers" substituteInPlace timedate1/zoneinfo/zone.go \ - --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo" + --replace "/usr/share/dde" "$out/share/dde" \ + --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo" substituteInPlace accounts1/image_blur.go grub2/modify_manger.go \ --replace "/usr/lib/deepin-api" "/run/current-system/sw/lib/deepin-api" diff --git a/pkgs/desktops/deepin/go-package/go-dbus-factory/default.nix b/pkgs/desktops/deepin/go-package/go-dbus-factory/default.nix index 4c12dce491d7..eed8208367b0 100644 --- a/pkgs/desktops/deepin/go-package/go-dbus-factory/default.nix +++ b/pkgs/desktops/deepin/go-package/go-dbus-factory/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { pname = "go-dbus-factory"; - version = "1.10.23"; + version = "2.0.8"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - sha256 = "sha256-6u9Bpoa80j/K1MipncfM378/qmSSMZAlx88jE4hHYBk="; + sha256 = "sha256-yzmr61wrBfZi+CuXFhtvOk7EaFtE8y3QyVwwgEDqwKY="; }; makeFlags = [ "PREFIX=${placeholder "out"}" ]; diff --git a/pkgs/desktops/deepin/go-package/startdde/0001-avoid-use-hardcode-path.patch b/pkgs/desktops/deepin/go-package/startdde/0001-avoid-use-hardcode-path.patch deleted file mode 100644 index 69e4c8aba56d..000000000000 --- a/pkgs/desktops/deepin/go-package/startdde/0001-avoid-use-hardcode-path.patch +++ /dev/null @@ -1,61 +0,0 @@ -diff --git a/misc/auto_launch/chinese.json b/misc/auto_launch/chinese.json -index 14b8bff..2b2c412 100644 ---- a/misc/auto_launch/chinese.json -+++ b/misc/auto_launch/chinese.json -@@ -3,7 +3,7 @@ - "Priority": 9, - "Group": [ - { -- "Command": "/usr/bin/dde-file-manager", -+ "Command": "dde-file-manager", - "Wait": false, - "Args": [ - "-d" -@@ -25,7 +25,7 @@ - "Priority": 7, - "Group": [ - { -- "Command": "/usr/bin/dde-shutdown", -+ "Command": "dde-shutdown", - "Wait": false, - "Args": [ - "-d" -diff --git a/session.go b/session.go -index da76626..bf9a2c4 100644 ---- a/session.go -+++ b/session.go -@@ -14,6 +14,7 @@ import ( - "sync" - "syscall" - "time" -+ "strings" - - "github.com/adrg/xdg" - "github.com/godbus/dbus/v5" -@@ -85,7 +86,7 @@ type SessionManager struct { - } - - const ( -- cmdShutdown = "/usr/bin/dde-shutdown" -+ cmdShutdown = "dde-shutdown" - lockFrontDest = "org.deepin.dde.LockFront1" - lockFrontIfc = lockFrontDest - lockFrontObjPath = "/org/deepin/dde/LockFront1" -@@ -458,7 +459,7 @@ func (m *SessionManager) SetLocked(sender dbus.Sender, value bool) *dbus.Error { - return dbusutil.ToError(err) - } - -- if exe == "/usr/bin/dde-lock" { -+ if strings.Contains(exe, "dde-lock") { - m.setLocked(value) - return nil - } -@@ -478,7 +479,7 @@ func (m *SessionManager) SetLocked(sender dbus.Sender, value bool) *dbus.Error { - return dbusutil.ToError(fmt.Errorf("desktop file %q is invalid", desktopFile)) - } - exe = info.GetExecutable() -- if exe != "/usr/bin/dde-lock" { -+ if strings.Contains(exe, "dde-lock") { - return dbusutil.ToError(fmt.Errorf("exe %q of desktop file %q is invalid", exe, desktopFile)) - } - diff --git a/pkgs/desktops/deepin/go-package/startdde/default.nix b/pkgs/desktops/deepin/go-package/startdde/default.nix index 8ad13e1156d7..2408410b2f08 100644 --- a/pkgs/desktops/deepin/go-package/startdde/default.nix +++ b/pkgs/desktops/deepin/go-package/startdde/default.nix @@ -19,29 +19,25 @@ buildGoModule rec { pname = "startdde"; - version = "6.0.10"; + version = "6.0.13"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-B2B8QlA1Ps/ybVzionngtwDwTLd7H02RKJwcXymGlJM="; + hash = "sha256-sftPQq4cSyCTuvVtvjT8YJDLQOpSbmnXEVzFwFFaU4U="; }; - patches = [ - ./0001-avoid-use-hardcode-path.patch - ]; - - vendorHash = "sha256-5BEOazAygYL1N+CaGAbUwdpHZ1EiHr6yNW27/bXNdZg="; + vendorHash = "sha256-Y81p3yPQayXbvyUI7N6PvFDO3hSU3SL0AuUKxvZkZNE="; postPatch = '' - substituteInPlace display/manager.go session.go \ + substituteInPlace display/manager.go \ --replace "/bin/bash" "${runtimeShell}" substituteInPlace misc/systemd_task/dde-display-task-refresh-brightness.service \ --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" - substituteInPlace display/manager.go utils.go session.go \ + substituteInPlace display/manager.go \ --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon" substituteInPlace misc/lightdm.conf --replace "/usr" "$out" diff --git a/pkgs/desktops/deepin/library/dtkcommon/default.nix b/pkgs/desktops/deepin/library/dtkcommon/default.nix index b3aa4481c9b8..1a55d6855ec9 100644 --- a/pkgs/desktops/deepin/library/dtkcommon/default.nix +++ b/pkgs/desktops/deepin/library/dtkcommon/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "dtkcommon"; - version = "5.6.17"; + version = "5.6.21"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-mquBuF+Gzq5txxCczeS+gI8LshdKnK5WnpOCytNki+w="; + hash = "sha256-wRTzgvtmbGJJaIwi1f5m98K2o6g7yZdnKYR1nsDDwk8="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/deepin/library/dtkcore/default.nix b/pkgs/desktops/deepin/library/dtkcore/default.nix index f13715535e09..ba921fd6eef7 100644 --- a/pkgs/desktops/deepin/library/dtkcore/default.nix +++ b/pkgs/desktops/deepin/library/dtkcore/default.nix @@ -18,13 +18,13 @@ stdenv.mkDerivation rec { pname = "dtkcore"; - version = "5.6.17"; + version = "5.6.22"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-/MGSvT8tPn+KqqlM6FY2iFsArmAkYMW5Q3Sl4g4zvH0="; + hash = "sha256-W8uLNWC8bYzrKrX/hq9p1h66dWrxp4Vt+/27zDJeAS4="; }; patches = [ diff --git a/pkgs/desktops/deepin/library/dtkdeclarative/default.nix b/pkgs/desktops/deepin/library/dtkdeclarative/default.nix index 511a3950842e..b2df4d42790f 100644 --- a/pkgs/desktops/deepin/library/dtkdeclarative/default.nix +++ b/pkgs/desktops/deepin/library/dtkdeclarative/default.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation rec { pname = "dtkdeclarative"; - version = "5.6.17"; + version = "5.6.24"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-P0F6GidGp+CkNplKnLiaYVtcxs6N66gGIx6UcplEt08="; + hash = "sha256-bGy8e+JAyHiAwWvO5Xz1TubHUDP4i4nWUR4h5/appM0="; }; patches = [ diff --git a/pkgs/desktops/deepin/library/dtkgui/default.nix b/pkgs/desktops/deepin/library/dtkgui/default.nix index 0094f5a305f8..9066a3298574 100644 --- a/pkgs/desktops/deepin/library/dtkgui/default.nix +++ b/pkgs/desktops/deepin/library/dtkgui/default.nix @@ -1,7 +1,6 @@ { stdenv , lib , fetchFromGitHub -, fetchpatch , pkg-config , cmake , qttools @@ -16,24 +15,18 @@ stdenv.mkDerivation rec { pname = "dtkgui"; - version = "5.6.17"; + version = "5.6.22"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-ssCVMFCE1vhucYMxXkEZV5YlFxT1JdYGqrzILhWX1XI="; + hash = "sha256-h3DFG6FaJXP9o9u8R31MtX3Z1+P3DrNDT8Xbd8tlI4Y="; }; patches = [ ./fix-pkgconfig-path.patch ./fix-pri-path.patch - - (fetchpatch { - name = "fix_svg_with_filter_attribute_rendering_exception.patch"; - url = "https://github.com/linuxdeepin/dtkgui/commit/f2c9327eb4989ab8ea96af7560c67d1cada794de.patch"; - hash = "sha256-lfg09tgS4vPuYachRbHdaMYKWdZZ0lP0Hxakkr9JKGs="; - }) ]; nativeBuildInputs = [ diff --git a/pkgs/desktops/deepin/library/dtkwidget/default.nix b/pkgs/desktops/deepin/library/dtkwidget/default.nix index b646baa48c3c..59c1ae7be856 100644 --- a/pkgs/desktops/deepin/library/dtkwidget/default.nix +++ b/pkgs/desktops/deepin/library/dtkwidget/default.nix @@ -20,13 +20,13 @@ stdenv.mkDerivation rec { pname = "dtkwidget"; - version = "5.6.17"; + version = "5.6.22"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-oFmM0e7ht3lCL50pwS/v/BLFmT2jymQaUZ4SmLdxvMo="; + hash = "sha256-szy1gPm+PsiUXGvo5QuXKYMVPCcaqVX47iu48WXOjWU="; }; patches = [ diff --git a/pkgs/desktops/deepin/library/image-editor/default.nix b/pkgs/desktops/deepin/library/image-editor/default.nix index e969c2137ef1..4a9c35b1aece 100644 --- a/pkgs/desktops/deepin/library/image-editor/default.nix +++ b/pkgs/desktops/deepin/library/image-editor/default.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation rec { pname = "image-editor"; - version = "1.0.35"; + version = "1.0.41"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-Xr4tueipQbRHyKLStTWeUcVbX7Baiz0YooaaVk65Y+U="; + hash = "sha256-9V9B0YSUTWv/4IbTRtKJSVrZx6j8jqJxIIR9TwUZ0U0="; }; postPatch = '' diff --git a/pkgs/desktops/deepin/library/qt5integration/default.nix b/pkgs/desktops/deepin/library/qt5integration/default.nix index f5962e7760e4..e8e3b4d8e146 100644 --- a/pkgs/desktops/deepin/library/qt5integration/default.nix +++ b/pkgs/desktops/deepin/library/qt5integration/default.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation rec { pname = "qt5integration"; - version = "5.6.17"; + version = "5.6.20"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-8ag/cFkjp5u/0/71xKR6z6dXp2NGRIYNNbzzEmgsDmc="; + hash = "sha256-cmvscSIu3LOTKuMs/+JUdJAvQ7OB4o1k+LqfRxNefZU="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix b/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix index 87d570ac011e..11a342e217fc 100644 --- a/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix +++ b/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix @@ -1,7 +1,6 @@ { stdenv , lib , fetchFromGitHub -, fetchpatch , cmake , extra-cmake-modules , pkg-config @@ -18,13 +17,13 @@ stdenv.mkDerivation rec { pname = "qt5platform-plugins"; - version = "5.6.16"; + version = "5.6.22"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-1/biT8wR44+sdOMhBW/8KMUSBDK/UxuEqsyjTZyjBT4="; + hash = "sha256-0XQ4s6xpFHoG6SC8RE8WVnbHH7qNeOYkhrYUkDEH8Dc="; }; nativeBuildInputs = [ @@ -45,14 +44,6 @@ stdenv.mkDerivation rec { qtwayland ]; - patches = [ - (fetchpatch { - name = "use-ECM-to-help-dwayland-find-wayland.patch"; - url = "https://github.com/linuxdeepin/qt5platform-plugins/commit/d7f6230716a0ff5ce34fc7d292ec0af5bbac30e4.patch"; - hash = "sha256-RY2+QBR3OjUGBX4Y9oVvIRY90IH9rTOCg8dCddkB2WE="; - }) - ]; - cmakeFlags = [ "-DINSTALL_PATH=${placeholder "out"}/${qtbase.qtPluginPrefix}/platforms" "-DQT_XCB_PRIVATE_HEADERS=${qtbase.src}/src/plugins/platforms/xcb" diff --git a/pkgs/desktops/deepin/library/util-dfm/default.nix b/pkgs/desktops/deepin/library/util-dfm/default.nix index 0d9bda407861..e7576f7169f8 100644 --- a/pkgs/desktops/deepin/library/util-dfm/default.nix +++ b/pkgs/desktops/deepin/library/util-dfm/default.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation rec { pname = "util-dfm"; - version = "1.2.16"; + version = "1.2.21"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-o5ubfCpgAHJXqihGyapq7Dj9eQlw2q6VoER/e37tM6w="; + hash = "sha256-EqNca3heIUUV5joMskpriCY+7NwjUc/vmQwomDkru80="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix b/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix index 50fa2c6e72e7..ae1120032450 100644 --- a/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix +++ b/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix @@ -5,13 +5,13 @@ }: stdenvNoCC.mkDerivation rec { pname = "deepin-desktop-base"; - version = "2023.09.05"; + version = "2024.01.03"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - hash = "sha256-Gqp56TbkuTOI3aT7UmRuYBjUwRiOoIUHiRf0DaY0yew="; + hash = "sha256-45qR1LCnA8ZSrWykqNvvm7Dxbi5pQnAuFy6nZJrzyi0="; }; makeFlags = [ "DESTDIR=${placeholder "out"}" ]; diff --git a/pkgs/desktops/gnustep/back/default.nix b/pkgs/desktops/gnustep/back/default.nix index 867c82881c1a..370143e1269f 100644 --- a/pkgs/desktops/gnustep/back/default.nix +++ b/pkgs/desktops/gnustep/back/default.nix @@ -1,7 +1,11 @@ -{ gsmakeDerivation +{ lib +, stdenv +, make +, wrapGNUstepAppsHook , cairo , fetchzip -, base, gui +, base +, gui , fontconfig , freetype , pkg-config @@ -9,18 +13,23 @@ , libXmu }: -gsmakeDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "gnustep-back"; version = "0.30.0"; src = fetchzip { - url = "ftp://ftp.gnustep.org/pub/gnustep/core/${pname}-${version}.tar.gz"; + url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-${finalAttrs.version}.tar.gz"; sha256 = "sha256-HD4PLdkE573nPWqFwffUmcHw8VYIl5rLiPKWrbnwpCI="; }; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ make pkg-config wrapGNUstepAppsHook ]; buildInputs = [ cairo base gui fontconfig freetype libXft libXmu ]; + meta = { description = "A generic backend for GNUstep"; + homepage = "https://gnustep.github.io/"; + license = lib.licenses.lgpl2Plus; + maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ]; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/desktops/gnustep/base/default.nix b/pkgs/desktops/gnustep/base/default.nix index 3803a88ce191..acda20c817d6 100644 --- a/pkgs/desktops/gnustep/base/default.nix +++ b/pkgs/desktops/gnustep/base/default.nix @@ -1,26 +1,40 @@ -{ aspell, audiofile -, gsmakeDerivation +{ lib +, stdenv +, aspell +, audiofile +, make +, wrapGNUstepAppsHook , cups , fetchzip , fetchpatch -, gmp, gnutls -, libffi, binutils-unwrapped -, libjpeg, libtiff, libpng, giflib -, libxml2, libxslt, libiconv -, libobjc, libgcrypt +, gmp +, gnutls +, libffi +, binutils-unwrapped +, libjpeg +, libtiff +, libpng +, giflib +, libxml2 +, libxslt +, libiconv +, libobjc +, libgcrypt , icu -, pkg-config, portaudio +, pkg-config +, portaudio , libiberty }: -gsmakeDerivation rec { + +stdenv.mkDerivation (finalAttrs: { pname = "gnustep-base"; version = "1.29.0"; src = fetchzip { - url = "ftp://ftp.gnustep.org/pub/gnustep/core/${pname}-${version}.tar.gz"; + url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-${finalAttrs.version}.tar.gz"; hash = "sha256-4fjdsLBsYEDxLOFrq17dKii2sLKvOaFCu0cw3qQtM5U="; }; outputs = [ "out" "dev" "lib" ]; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ pkg-config make wrapGNUstepAppsHook ]; propagatedBuildInputs = [ aspell audiofile cups @@ -55,7 +69,11 @@ gsmakeDerivation rec { ]; meta = { + changelog = "https://github.com/gnustep/libs-base/releases/tag/base-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}"; description = "An implementation of AppKit and Foundation libraries of OPENSTEP and Cocoa"; - changelog = "https://github.com/gnustep/libs-base/releases/tag/base-${builtins.replaceStrings [ "." ] [ "_" ] version}"; + homepage = "https://gnustep.github.io/"; + license = lib.licenses.lgpl2Plus; + maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ]; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/desktops/gnustep/default.nix b/pkgs/desktops/gnustep/default.nix index d337512dceca..53040ace672d 100644 --- a/pkgs/desktops/gnustep/default.nix +++ b/pkgs/desktops/gnustep/default.nix @@ -5,18 +5,21 @@ let callPackage = newScope self; - self = rec { + self = { stdenv = llvmPackages.stdenv; - gsmakeDerivation = callPackage ./make/gsmakeDerivation.nix {}; - gorm = callPackage ./gorm {}; - projectcenter = callPackage ./projectcenter {}; - system_preferences = callPackage ./systempreferences {}; - libobjc = callPackage ./libobjc2 {}; + wrapGNUstepAppsHook = callPackage ./wrapGNUstepAppsHook.nix {}; + make = callPackage ./make {}; + + libobjc = callPackage ./libobjc2 {}; + base = callPackage ./base {}; back = callPackage ./back {}; - base = callPackage ./base { }; gui = callPackage ./gui {}; + + gorm = callPackage ./gorm {}; + projectcenter = callPackage ./projectcenter {}; + system_preferences = callPackage ./systempreferences {}; gworkspace = callPackage ./gworkspace {}; }; diff --git a/pkgs/desktops/gnustep/gorm/default.nix b/pkgs/desktops/gnustep/gorm/default.nix index 0897ceefdba6..f48600263447 100644 --- a/pkgs/desktops/gnustep/gorm/default.nix +++ b/pkgs/desktops/gnustep/gorm/default.nix @@ -1,15 +1,31 @@ -{ fetchzip, base, back, gsmakeDerivation, gui }: -gsmakeDerivation rec { +{ lib +, stdenv +, fetchzip +, base +, back +, make +, wrapGNUstepAppsHook +, gui +}: + +stdenv.mkDerivation (finalAttrs: { pname = "gorm"; version = "1.3.1"; src = fetchzip { - url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/gorm-${version}.tar.gz"; + url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/gorm-${finalAttrs.version}.tar.gz"; sha256 = "sha256-W+NgbvLjt1PpDiauhzWFaU1/CUhmDACQz+GoyRUyWB8="; }; + + nativeBuildInputs = [ make wrapGNUstepAppsHook ]; buildInputs = [ base back gui ]; meta = { description = "Graphical Object Relationship Modeller is an easy-to-use interface designer for GNUstep"; + homepage = "https://gnustep.github.io/"; + license = lib.licenses.lgpl2Plus; + mainProgram = "Gorm"; + maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ]; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/desktops/gnustep/gui/default.nix b/pkgs/desktops/gnustep/gui/default.nix index 962d6eef7fde..448f4c60136a 100644 --- a/pkgs/desktops/gnustep/gui/default.nix +++ b/pkgs/desktops/gnustep/gui/default.nix @@ -1,19 +1,32 @@ -{ gsmakeDerivation, fetchzip, base }: +{ lib +, stdenv +, make +, wrapGNUstepAppsHook +, fetchzip +, base +}: -gsmakeDerivation rec { +stdenv.mkDerivation (finalAttrs: { version = "0.30.0"; pname = "gnustep-gui"; src = fetchzip { - url = "ftp://ftp.gnustep.org/pub/gnustep/core/${pname}-${version}.tar.gz"; + url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-${finalAttrs.version}.tar.gz"; sha256 = "sha256-24hL4TeIY6izlhQUcxKI0nXITysAPfRrncRqsDm2zNk="; }; + + nativeBuildInputs = [ make wrapGNUstepAppsHook ]; buildInputs = [ base ]; + patches = [ ./fixup-all.patch ]; meta = { + changelog = "https://github.com/gnustep/libs-gui/releases/tag/gui-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}"; description = "A GUI class library of GNUstep"; - changelog = "https://github.com/gnustep/libs-gui/releases/tag/gui-${builtins.replaceStrings [ "." ] [ "_" ] version}"; + homepage = "https://gnustep.github.io/"; + license = lib.licenses.lgpl2Plus; + maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ]; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/desktops/gnustep/gworkspace/default.nix b/pkgs/desktops/gnustep/gworkspace/default.nix index cdc6612d1c06..d2343dfb0113 100644 --- a/pkgs/desktops/gnustep/gworkspace/default.nix +++ b/pkgs/desktops/gnustep/gworkspace/default.nix @@ -1,22 +1,36 @@ -{ back, base, gui, gsmakeDerivation +{ lib +, stdenv +, back +, base +, gui +, make +, wrapGNUstepAppsHook , fetchurl , system_preferences }: -let + +stdenv.mkDerivation (finalAttrs: { + pname = "gworkspace"; version = "1.0.0"; -in -gsmakeDerivation { - name = "gworkspace-${version}"; + src = fetchurl { - url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/gworkspace-${version}.tar.gz"; + url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/gworkspace-${finalAttrs.version}.tar.gz"; sha256 = "sha256-M7dV7RVatw8gdYHQlRi5wNBd6MGT9GqW04R/DoKNu6I="; }; + # additional dependencies: # - PDFKit framework from http://gap.nongnu.org/ # - TODO: to --enable-gwmetadata, need libDBKit as well as sqlite! + nativeBuildInputs = [ make wrapGNUstepAppsHook ]; buildInputs = [ back base gui system_preferences ]; configureFlags = [ "--with-inotify" ]; + meta = { description = "A workspace manager for GNUstep"; + homepage = "https://gnustep.github.io/"; + license = lib.licenses.lgpl2Plus; + mainProgram = "GWorkspace"; + maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ]; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/desktops/gnustep/libobjc2/default.nix b/pkgs/desktops/gnustep/libobjc2/default.nix index b44e60ce233d..2e487fddf431 100644 --- a/pkgs/desktops/gnustep/libobjc2/default.nix +++ b/pkgs/desktops/gnustep/libobjc2/default.nix @@ -1,13 +1,17 @@ -{ stdenv, lib, fetchFromGitHub, cmake }: +{ lib +, stdenv +, fetchFromGitHub +, cmake +}: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "libobjc2"; version = "2.1"; src = fetchFromGitHub { owner = "gnustep"; repo = "libobjc2"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; hash = "sha256-iDOVEDnTAfg9r3/kdHp7hzX2oIjO1ovaqgrlIV7V68M="; fetchSubmodules = true; }; @@ -19,9 +23,9 @@ stdenv.mkDerivation rec { meta = with lib; { broken = stdenv.isDarwin; description = "Objective-C runtime for use with GNUstep"; - homepage = "http://gnustep.org/"; + homepage = "https://gnustep.github.io/"; license = licenses.mit; - maintainers = with maintainers; [ ashalkhakov matthewbauer ]; + maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ]; platforms = platforms.unix; }; -} +}) diff --git a/pkgs/desktops/gnustep/make/builder.sh b/pkgs/desktops/gnustep/make/builder.sh deleted file mode 100644 index 79ead3f7b729..000000000000 --- a/pkgs/desktops/gnustep/make/builder.sh +++ /dev/null @@ -1,127 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source $stdenv/setup - -providedPreConfigure="$preConfigure"; - -preConfigure() { - eval "$providedPreConfigure" - - . $GNUSTEP_MAKEFILES/GNUstep.sh -} - -wrapGSMake() { - local program="$1" - local config="$2" - local wrapped="$(dirname $program)/.$(basename $program)-wrapped" - - mv "$program" "$wrapped" - - cat > "$program"<<EOF -#! $SHELL -e - -export GNUSTEP_CONFIG_FILE="$config" - -exec "$wrapped" "\$@" -EOF - chmod +x "$program" -} - -postInstall() { - local conf="$out/share/.GNUstep.conf" - - mkdir -p "$out/share" - touch $conf - - # add the current package to the paths - local tmp="$out/lib/GNUstep/Applications" - if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_APPS" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp" - fi - tmp="$out/lib/GNUstep/Applications" - if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp" - fi - tmp="$out/lib/GNUstep/WebApplications" - if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_WEB_APPS" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp" - fi - tmp="$out/bin" - if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp" - fi - tmp="$out/sbin" - if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp" - fi - tmp="$out/lib/GNUstep" - if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARY" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp" - fi - tmp="$out/include" - if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_HEADERS" in *"${tmp}"*) false;; *) true;; esac; then - if [ -z "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then - export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp" - else - export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp" - fi - fi - tmp="$out/lib" - if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARIES" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp" - fi - tmp="$out/share/GNUstep/Documentation" - if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp" - fi - tmp="$out/share/man" - if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_MAN" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp" - fi - tmp="$out/share/info" - if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_INFO" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp" - fi - - # write the config file - echo GNUSTEP_MAKEFILES=$GNUSTEP_MAKEFILES >> $conf - if [ -n "$NIX_GNUSTEP_SYSTEM_APPS" ]; then - echo NIX_GNUSTEP_SYSTEM_APPS="$NIX_GNUSTEP_SYSTEM_APPS" - fi - if [ -n "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" ]; then - echo NIX_GNUSTEP_SYSTEM_ADMIN_APPS="$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" >> $conf - fi - if [ -n "$NIX_GNUSTEP_SYSTEM_WEB_APPS" ]; then - echo NIX_GNUSTEP_SYSTEM_WEB_APPS="$NIX_GNUSTEP_SYSTEM_WEB_APPS" >> $conf - fi - if [ -n "$NIX_GNUSTEP_SYSTEM_TOOLS" ]; then - echo NIX_GNUSTEP_SYSTEM_TOOLS="$NIX_GNUSTEP_SYSTEM_TOOLS" >> $conf - fi - if [ -n "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" ]; then - echo NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS="$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" >> $conf - fi - if [ -n "$NIX_GNUSTEP_SYSTEM_LIBRARY" ]; then - echo NIX_GNUSTEP_SYSTEM_LIBRARY="$NIX_GNUSTEP_SYSTEM_LIBRARY" >> $conf - fi - if [ -n "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then - echo NIX_GNUSTEP_SYSTEM_HEADERS="$NIX_GNUSTEP_SYSTEM_HEADERS" >> $conf - fi - if [ -n "$NIX_GNUSTEP_SYSTEM_LIBRARIES" ]; then - echo NIX_GNUSTEP_SYSTEM_LIBRARIES="$NIX_GNUSTEP_SYSTEM_LIBRARIES" >> $conf - fi - if [ -n "$NIX_GNUSTEP_SYSTEM_DOC" ]; then - echo NIX_GNUSTEP_SYSTEM_DOC="$NIX_GNUSTEP_SYSTEM_DOC" >> $conf - fi - if [ -n "$NIX_GNUSTEP_SYSTEM_DOC_MAN" ]; then - echo NIX_GNUSTEP_SYSTEM_DOC_MAN="$NIX_GNUSTEP_SYSTEM_DOC_MAN" >> $conf - fi - if [ -n "$NIX_GNUSTEP_SYSTEM_DOC_INFO" ]; then - echo NIX_GNUSTEP_SYSTEM_DOC_INFO="$NIX_GNUSTEP_SYSTEM_DOC_INFO" >> $conf - fi - - for i in $out/bin/*; do - echo "wrapping $(basename $i)" - wrapGSMake "$i" "$out/share/.GNUstep.conf" - done -} - -genericBuild diff --git a/pkgs/desktops/gnustep/make/default.nix b/pkgs/desktops/gnustep/make/default.nix index f9b4ae553c85..290e3004497f 100644 --- a/pkgs/desktops/gnustep/make/default.nix +++ b/pkgs/desktops/gnustep/make/default.nix @@ -1,11 +1,16 @@ -{ lib, stdenv, fetchurl, clang, which, libobjc }: +{ lib +, stdenv +, fetchurl +, which +, libobjc +}: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "gnustep-make"; version = "2.9.1"; src = fetchurl { - url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-${version}.tar.gz"; + url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-${finalAttrs.version}.tar.gz"; sha256 = "sha256-w9bnDPFWsn59HtJQHFffP5bidIjOLzUbk+R5xYwB6uc="; }; @@ -22,17 +27,19 @@ stdenv.mkDerivation rec { "GNUSTEP_INSTALLATION_DOMAIN=SYSTEM" ]; - nativeBuildInputs = [ clang which ]; buildInputs = [ libobjc ]; + propagatedBuildInputs = [ which ]; + patches = [ ./fixup-paths.patch ]; setupHook = ./setup-hook.sh; + meta = { + changelog = "https://github.com/gnustep/tools-make/releases/tag/make-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}"; description = "A build manager for GNUstep"; - homepage = "http://gnustep.org/"; - changelog = "https://github.com/gnustep/tools-make/releases/tag/make-${builtins.replaceStrings [ "." ] [ "_" ] version}"; + homepage = "https://gnustep.github.io/"; license = lib.licenses.lgpl2Plus; - maintainers = with lib.maintainers; [ ashalkhakov matthewbauer ]; + maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ]; platforms = lib.platforms.unix; }; -} +}) diff --git a/pkgs/desktops/gnustep/make/gsmakeDerivation.nix b/pkgs/desktops/gnustep/make/gsmakeDerivation.nix deleted file mode 100644 index 04cfcc1ca343..000000000000 --- a/pkgs/desktops/gnustep/make/gsmakeDerivation.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ lib, stdenv, make, makeWrapper, which }: -{ nativeBuildInputs ? [], ...} @ args: -stdenv.mkDerivation (args // { - nativeBuildInputs = [ makeWrapper make which ] ++ nativeBuildInputs; - - builder = ./builder.sh; - setupHook = ./setup-hook.sh; - - GNUSTEP_MAKEFILES = "${make}/share/GNUstep/Makefiles"; - - meta = { - homepage = "http://gnustep.org/"; - - license = lib.licenses.lgpl2Plus; - - maintainers = with lib.maintainers; [ ashalkhakov matthewbauer ]; - platforms = lib.platforms.linux; - } // (lib.optionalAttrs (builtins.hasAttr "meta" args) args.meta); -}) diff --git a/pkgs/desktops/gnustep/make/setup-hook.sh b/pkgs/desktops/gnustep/make/setup-hook.sh index 83adfefc10cd..0bfbd35f45f5 100644 --- a/pkgs/desktops/gnustep/make/setup-hook.sh +++ b/pkgs/desktops/gnustep/make/setup-hook.sh @@ -20,62 +20,52 @@ addGnustepInstallFlags() { preInstallPhases+=" addGnustepInstallFlags" -addEnvVars() { +addGNUstepEnvVars() { local filename + gsAddToSearchPath() { + if [[ -d "$2" && "${!1-}" != *"$2"* ]]; then + addToSearchPath "$1" "$2" + fi + } + + gsAddToIncludeSearchPath() { + local -n ref="$1" + + # NOTE: contrary to the one in wrapGNUstepAppsHook, use -e here instead of -d since it's also used for the makefiles + if [[ -e "$2" && "${ref-}" != *"$2"* ]]; then + if [[ "${ref-}" != "" ]]; then + ref+=" " + fi + + ref+="$2" + fi + } + for filename in $1/share/GNUstep/Makefiles/Additional/*.make ; do - if case "${NIX_GNUSTEP_MAKEFILES_ADDITIONAL-}" in *"{$filename}"*) false;; *) true;; esac; then - export NIX_GNUSTEP_MAKEFILES_ADDITIONAL+=" $filename" - fi + gsAddToIncludeSearchPath NIX_GNUSTEP_MAKEFILES_ADDITIONAL "$filename" done - local tmp="$1/lib/GNUstep/Applications" - if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp" - fi - tmp="$1/lib/GNUstep/Applications" - if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_ADMIN_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp" - fi - tmp="$1/lib/GNUstep/WebApplications" - if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_WEB_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp" - fi - tmp="$1/bin" - if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_TOOLS-}" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp" - fi - tmp="$1/sbin" - if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS-}" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp" - fi - tmp="$1/lib/GNUstep" - if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_LIBRARY-}" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp" - fi - tmp="$1/include" - if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_HEADERS-}" in *"${tmp}"*) false;; *) true;; esac; then - if [ -z "${NIX_GNUSTEP_SYSTEM_HEADERS-}" ]; then - export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp" - else - export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp" - fi - fi - tmp="$1/lib" - if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_LIBRARIES-}" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp" - fi - tmp="$1/share/GNUstep/Documentation" - if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC-}" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp" - fi - tmp="$1/share/man" - if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC_MAN-}" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp" - fi - tmp="$1/share/info" - if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC_INFO-}" in *"${tmp}"*) false;; *) true;; esac; then - addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp" - fi + export NIX_GNUSTEP_MAKEFILES_ADDITIONAL + + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$1/lib/GNUstep/Applications" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$1/lib/GNUstep/Applications" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$1/lib/GNUstep/WebApplications" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$1/bin" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$1/sbin" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$1/lib/GNUstep" + gsAddToIncludeSearchPath NIX_GNUSTEP_SYSTEM_HEADERS "$1/include" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$1/lib" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$1/share/GNUstep/Documentation" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$1/share/man" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$1/share/info" +} +addEnvHooks "$targetOffset" addGNUstepEnvVars + +gsmakeSetup() { + export GNUSTEP_MAKEFILES="$(gnustep-config --variable=GNUSTEP_MAKEFILES)" + + . $GNUSTEP_MAKEFILES/GNUstep.sh } -addEnvHooks "$targetOffset" addEnvVars + +preConfigureHooks+=(gsmakeSetup) diff --git a/pkgs/desktops/gnustep/make/wrapper.sh b/pkgs/desktops/gnustep/make/wrapper.sh deleted file mode 100644 index 1bc2e130d88d..000000000000 --- a/pkgs/desktops/gnustep/make/wrapper.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -. $GNUSTEP_MAKEFILES/GNUstep.sh -$1 diff --git a/pkgs/desktops/gnustep/projectcenter/default.nix b/pkgs/desktops/gnustep/projectcenter/default.nix index b535365b25d9..89f2e769a066 100644 --- a/pkgs/desktops/gnustep/projectcenter/default.nix +++ b/pkgs/desktops/gnustep/projectcenter/default.nix @@ -1,21 +1,29 @@ -{ lib, fetchFromGitHub -, base, back, gsmakeDerivation, gui, gorm -, gnumake, gdb +{ lib +, stdenv +, fetchFromGitHub +, make +, wrapGNUstepAppsHook +, base +, back +, gui +, gorm +, gnumake +, gdb }: -let - version = "0.7.0"; -in -gsmakeDerivation { + +stdenv.mkDerivation (finalAttrs: { pname = "projectcenter"; - inherit version; + version = "0.7.0"; src = fetchFromGitHub { owner = "gnustep"; repo = "apps-projectcenter"; - rev = "projectcenter-${lib.replaceStrings [ "." ] [ "_" ] version}"; + rev = "projectcenter-${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}"; hash = "sha256-uXT2UUvMZNc6Fqi2BUXQimbZk8b3IqXzB+A2btBOmms="; }; + nativeBuildInputs = [ make wrapGNUstepAppsHook ]; + # NOTE: need a patch for ProjectCenter to help it locate some necessary tools: # 1. Framework/PCProjectLauncher.m, locate gdb (say among NIX_GNUSTEP_SYSTEM_TOOLS) # 2. Framework/PCProjectBuilder.m, locate gmake (similar) @@ -23,5 +31,10 @@ gsmakeDerivation { meta = { description = "GNUstep's integrated development environment"; + homepage = "https://gnustep.github.io/"; + license = lib.licenses.lgpl2Plus; + mainProgram = "ProjectCenter"; + maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ]; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/desktops/gnustep/systempreferences/default.nix b/pkgs/desktops/gnustep/systempreferences/default.nix index 096520f08f36..c08ad0fc8dbc 100644 --- a/pkgs/desktops/gnustep/systempreferences/default.nix +++ b/pkgs/desktops/gnustep/systempreferences/default.nix @@ -1,17 +1,31 @@ -{ back, base, gui, gsmakeDerivation, fetchurl }: -let +{ lib +, stdenv +, fetchurl +, make +, wrapGNUstepAppsHook +, back +, base +, gui +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "system-preferences"; version = "1.2.0"; -in -gsmakeDerivation { - name = "system_preferences-${version}"; + src = fetchurl { - url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/SystemPreferences-${version}.tar.gz"; + url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/SystemPreferences-${finalAttrs.version}.tar.gz"; sha256 = "1fg7c3ihfgvl6n21rd17fs9ivx3l8ps874m80vz86n1callgs339"; }; -# GNUSTEP_MAKEFILES = "${gnustep_make}/share/GNUstep/Makefiles"; + + nativeBuildInputs = [ make wrapGNUstepAppsHook ]; buildInputs = [ back base gui ]; -# propagatedBuildInputs = [ gnustep_back gnustep_base gnustep_gui ]; + meta = { description = "The settings manager for the GNUstep environment and its applications"; + homepage = "https://gnustep.github.io/"; + license = lib.licenses.lgpl2Plus; + mainProgram = "SystemPreferences"; + maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ]; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/desktops/gnustep/wrapGNUstepAppsHook.nix b/pkgs/desktops/gnustep/wrapGNUstepAppsHook.nix new file mode 100644 index 000000000000..8a2339ddeb52 --- /dev/null +++ b/pkgs/desktops/gnustep/wrapGNUstepAppsHook.nix @@ -0,0 +1,8 @@ +{makeBinaryWrapper, makeSetupHook}: + +makeSetupHook + { + name = "wrapGNUstepAppsHook"; + propagatedBuildInputs = [makeBinaryWrapper]; + } + ./wrapGNUstepAppsHook.sh diff --git a/pkgs/desktops/gnustep/wrapGNUstepAppsHook.sh b/pkgs/desktops/gnustep/wrapGNUstepAppsHook.sh new file mode 100644 index 000000000000..8218ff1e7746 --- /dev/null +++ b/pkgs/desktops/gnustep/wrapGNUstepAppsHook.sh @@ -0,0 +1,96 @@ +if [[ -z "${__nix_wrapGNUstepAppsHook-}" ]]; then + __nix_wrapGNUstepAppsHook=1 # Don't run this hook more than once. + + # Inherit arguments given in mkDerivation + gnustepWrapperArgs=(${gnustepWrapperArgs-}) + + gnustepConfigVars+=( + GNUSTEP_MAKEFILES + NIX_GNUSTEP_SYSTEM_APPS + NIX_GNUSTEP_SYSTEM_ADMIN_APPS + NIX_GNUSTEP_SYSTEM_WEB_APPS + NIX_GNUSTEP_SYSTEM_TOOLS + NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS + NIX_GNUSTEP_SYSTEM_LIBRARY + NIX_GNUSTEP_SYSTEM_HEADERS + NIX_GNUSTEP_SYSTEM_LIBRARIES + NIX_GNUSTEP_SYSTEM_DOC + NIX_GNUSTEP_SYSTEM_DOC_MAN + NIX_GNUSTEP_SYSTEM_DOC_INFO + ) + + wrapGNUstepApp() { + wrapProgram "$1" \ + --set GNUSTEP_CONFIG_FILE "$out/GNUstep.conf" \ + "${gnustepWrapperArgs[@]}" + } + + ensureGNUstepConfig() ( + if [[ -f "$out/GNUstep.conf" ]]; then + return + fi + + echo "writing GNUstep config file" + + gsAddToSearchPath() { + if [[ -d "$2" && "${!1-}" != *"$2"* ]]; then + addToSearchPath "$1" "$2" + fi + } + + gsAddToIncludeSearchPath() { + local -n ref="$1" + + if [[ -d "$2" && "${ref-}" != *"$2"* ]]; then + if [[ "${ref-}" != "" ]]; then + ref+=" " + fi + + ref+="$2" + fi + } + + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$out/lib/GNUstep/Applications" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$out/lib/GNUstep/Applications" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$out/lib/GNUstep/WebApplications" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$out/bin" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$out/sbin" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$out/lib/GNUstep" + gsAddToIncludeSearchPath NIX_GNUSTEP_SYSTEM_HEADERS "$out/include" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$out/lib" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$out/share/GNUstep/Documentation" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$out/share/man" + gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$out/share/info" + + for var in "${gnustepConfigVars[@]}"; do + if [[ -n "${!var-}" ]]; then + printf '%s="%s"\n' "$var" "${!var}" + fi + done > "$out/GNUstep.conf" + ) + + # Note: $gnustepWrapperArgs still gets defined even if ${dontWrapGNUstepApps-} is set. + wrapGNUstepAppsHook() { + # skip this hook when requested + [[ -z "${dontWrapGNUstepApps-}" ]] || return 0 + + # guard against running multiple times (e.g. due to propagation) + [[ -z "$wrapGNUstepAppsHookHasRun" ]] || return 0 + wrapGNUstepAppsHookHasRun=1 + + local targetDirs=("$prefix/bin") + echo "wrapping GNUstep applications in ${targetDirs[@]}" + + for targetDir in "${targetDirs[@]}"; do + [[ -d "$targetDir" ]] || continue + + while IFS= read -r -d '' file; do + ensureGNUstepConfig + echo "wrapping $file" + wrapGNUstepApp "$file" + done < <(find "$targetDir" ! -type d -executable -print0) + done + } + + fixupOutputHooks+=(wrapGNUstepAppsHook) +fi |