From 908a2adf5735c2615c2d2a8c38b451d7404dc10c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 5 Jan 2025 00:33:36 +0000 Subject: [PATCH 1/3] librecad: 2.2.0.2 -> 2.2.1 --- pkgs/applications/misc/librecad/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/librecad/default.nix b/pkgs/applications/misc/librecad/default.nix index 7d41c040db8e..b65d8a6f7d9a 100644 --- a/pkgs/applications/misc/librecad/default.nix +++ b/pkgs/applications/misc/librecad/default.nix @@ -15,13 +15,13 @@ mkDerivation rec { pname = "librecad"; - version = "2.2.0.2"; + version = "2.2.1"; src = fetchFromGitHub { owner = "LibreCAD"; repo = "LibreCAD"; rev = version; - sha256 = "sha256-Vj6nvOfmhzou2hhmujm47a7aKBzmgchDb/BbwCb3/hI="; + sha256 = "sha256-GBn4lduzaKWEWzeTNjC9TpioSouVj+jVl32PLjc8FBc="; }; buildInputs = [ From 0b07ca72c25ec9f89ad77bc02850df242dce7e45 Mon Sep 17 00:00:00 2001 From: Nikolay Korotkiy Date: Mon, 13 Jan 2025 00:54:14 +0400 Subject: [PATCH 2/3] librecad: adopt, modernize, migrate to by-name --- .../li/librecad/package.nix} | 38 ++++++++----------- pkgs/top-level/all-packages.nix | 2 - 2 files changed, 16 insertions(+), 24 deletions(-) rename pkgs/{applications/misc/librecad/default.nix => by-name/li/librecad/package.nix} (72%) diff --git a/pkgs/applications/misc/librecad/default.nix b/pkgs/by-name/li/librecad/package.nix similarity index 72% rename from pkgs/applications/misc/librecad/default.nix rename to pkgs/by-name/li/librecad/package.nix index b65d8a6f7d9a..0271f26f7a61 100644 --- a/pkgs/applications/misc/librecad/default.nix +++ b/pkgs/by-name/li/librecad/package.nix @@ -1,41 +1,38 @@ { lib, + stdenv, boost, fetchFromGitHub, installShellFiles, - mkDerivation, muparser, pkg-config, - qmake, - qtbase, - qtsvg, - qttools, - runtimeShell, + qt5, }: -mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "librecad"; version = "2.2.1"; src = fetchFromGitHub { owner = "LibreCAD"; repo = "LibreCAD"; - rev = version; - sha256 = "sha256-GBn4lduzaKWEWzeTNjC9TpioSouVj+jVl32PLjc8FBc="; + tag = "v${finalAttrs.version}"; + hash = "sha256-GBn4lduzaKWEWzeTNjC9TpioSouVj+jVl32PLjc8FBc="; }; buildInputs = [ boost muparser - qtbase - qtsvg + qt5.qtbase + qt5.qtsvg ]; nativeBuildInputs = [ installShellFiles pkg-config - qmake - qttools + qt5.qmake + qt5.qttools + qt5.wrapQtAppsHook ]; qmakeFlags = [ @@ -44,11 +41,8 @@ mkDerivation rec { ]; postPatch = '' - substituteInPlace scripts/postprocess-unix.sh \ - --replace /bin/sh ${runtimeShell} - substituteInPlace librecad/src/main/qc_applicationwindow.cpp \ - --replace __DATE__ 0 + --replace-warn __DATE__ 0 ''; installPhase = '' @@ -68,11 +62,11 @@ mkDerivation rec { runHook postInstall ''; - meta = with lib; { + meta = { description = "2D CAD package based on Qt"; homepage = "https://librecad.org"; - license = licenses.gpl2Only; - maintainers = [ ]; - platforms = platforms.linux; + license = lib.licenses.gpl2Only; + maintainers = with lib.maintainers; [ sikmir ]; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6673f2f0f2df..da09af2b79f7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14272,8 +14272,6 @@ with pkgs; libkiwix = callPackage ../applications/misc/kiwix/lib.nix { }; - librecad = libsForQt5.callPackage ../applications/misc/librecad { }; - libreoffice-bin = callPackage ../applications/office/libreoffice/darwin { }; libreoffice = hiPrio libreoffice-still; From 30df88e4e0eb82e2a8d03c50ba712cd02bf7615e Mon Sep 17 00:00:00 2001 From: Nikolay Korotkiy Date: Mon, 13 Jan 2025 03:29:54 +0400 Subject: [PATCH 3/3] librecad: enable on darwin --- pkgs/by-name/li/librecad/package.nix | 34 ++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/li/librecad/package.nix b/pkgs/by-name/li/librecad/package.nix index 0271f26f7a61..d8ca362ee8e6 100644 --- a/pkgs/by-name/li/librecad/package.nix +++ b/pkgs/by-name/li/librecad/package.nix @@ -43,21 +43,36 @@ stdenv.mkDerivation (finalAttrs: { postPatch = '' substituteInPlace librecad/src/main/qc_applicationwindow.cpp \ --replace-warn __DATE__ 0 + + substituteInPlace librecad/src/src.pro \ + --replace-warn '$$[QT_INSTALL_BINS]' '${lib.getDev qt5.qttools}/bin' + substituteInPlace librecad/src/muparser.pri \ + --replace-warn "macx|" "" ''; installPhase = '' runHook preInstall - install -Dm555 -t $out/bin unix/{librecad,ttf2lff} - install -Dm444 -t $out/share/applications desktop/librecad.desktop - install -Dm644 -t $out/share/pixmaps librecad/res/main/librecad.png - install -Dm444 desktop/librecad.sharedmimeinfo $out/share/mime/packages/librecad.xml - install -Dm444 desktop/graphics_icons_and_splash/Icon\ LibreCAD/Icon_Librecad.svg \ - $out/share/icons/hicolor/scalable/apps/librecad.svg + ${lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir -p $out/{Applications,bin} + mv LibreCAD.app $out/Applications + ln -s $out/Applications/LibreCAD.app/Contents/MacOS/LibreCAD $out/bin/librecad + # Prevent wrapping, otherwise plugins will not be loaded + chmod -x $out/Applications/LibreCAD.app/Contents/Resources/plugins/*.dylib + ''} - installManPage desktop/librecad.? + ${lib.optionalString (!stdenv.hostPlatform.isDarwin) '' + install -Dm555 -t $out/bin unix/{librecad,ttf2lff} + install -Dm444 -t $out/share/applications desktop/librecad.desktop + install -Dm644 -t $out/share/pixmaps librecad/res/main/librecad.png + install -Dm444 desktop/librecad.sharedmimeinfo $out/share/mime/packages/librecad.xml + install -Dm444 desktop/graphics_icons_and_splash/Icon\ LibreCAD/Icon_Librecad.svg \ + $out/share/icons/hicolor/scalable/apps/librecad.svg - cp -R unix/resources $out/share/librecad + installManPage desktop/librecad.? + + cp -R unix/resources $out/share/librecad + ''} runHook postInstall ''; @@ -67,6 +82,7 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://librecad.org"; license = lib.licenses.gpl2Only; maintainers = with lib.maintainers; [ sikmir ]; - platforms = lib.platforms.linux; + platforms = lib.platforms.unix; + mainProgram = "librecad"; }; })