Unverified Commit a55d4e61 authored by Nikolay Korotkiy's avatar Nikolay Korotkiy Committed by GitHub
Browse files

librecad: 2.2.0.2 -> 2.2.1 (#371016)

parents 582db430 30df88e4
Loading
Loading
Loading
Loading
+0 −78
Original line number Diff line number Diff line
{
  lib,
  boost,
  fetchFromGitHub,
  installShellFiles,
  mkDerivation,
  muparser,
  pkg-config,
  qmake,
  qtbase,
  qtsvg,
  qttools,
  runtimeShell,
}:

mkDerivation rec {
  pname = "librecad";
  version = "2.2.0.2";

  src = fetchFromGitHub {
    owner = "LibreCAD";
    repo = "LibreCAD";
    rev = version;
    sha256 = "sha256-Vj6nvOfmhzou2hhmujm47a7aKBzmgchDb/BbwCb3/hI=";
  };

  buildInputs = [
    boost
    muparser
    qtbase
    qtsvg
  ];

  nativeBuildInputs = [
    installShellFiles
    pkg-config
    qmake
    qttools
  ];

  qmakeFlags = [
    "MUPARSER_DIR=${muparser}"
    "BOOST_DIR=${boost.dev}"
  ];

  postPatch = ''
    substituteInPlace scripts/postprocess-unix.sh \
      --replace /bin/sh ${runtimeShell}

    substituteInPlace librecad/src/main/qc_applicationwindow.cpp \
      --replace __DATE__ 0
  '';

  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

    installManPage desktop/librecad.?

    cp -R unix/resources $out/share/librecad

    runHook postInstall
  '';

  meta = with lib; {
    description = "2D CAD package based on Qt";
    homepage = "https://librecad.org";
    license = licenses.gpl2Only;
    maintainers = [ ];
    platforms = platforms.linux;
  };
}
+88 −0
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  boost,
  fetchFromGitHub,
  installShellFiles,
  muparser,
  pkg-config,
  qt5,
}:

stdenv.mkDerivation (finalAttrs: {
  pname = "librecad";
  version = "2.2.1";

  src = fetchFromGitHub {
    owner = "LibreCAD";
    repo = "LibreCAD";
    tag = "v${finalAttrs.version}";
    hash = "sha256-GBn4lduzaKWEWzeTNjC9TpioSouVj+jVl32PLjc8FBc=";
  };

  buildInputs = [
    boost
    muparser
    qt5.qtbase
    qt5.qtsvg
  ];

  nativeBuildInputs = [
    installShellFiles
    pkg-config
    qt5.qmake
    qt5.qttools
    qt5.wrapQtAppsHook
  ];

  qmakeFlags = [
    "MUPARSER_DIR=${muparser}"
    "BOOST_DIR=${boost.dev}"
  ];

  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

    ${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
    ''}

    ${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

      installManPage desktop/librecad.?

      cp -R unix/resources $out/share/librecad
    ''}

    runHook postInstall
  '';

  meta = {
    description = "2D CAD package based on Qt";
    homepage = "https://librecad.org";
    license = lib.licenses.gpl2Only;
    maintainers = with lib.maintainers; [ sikmir ];
    platforms = lib.platforms.unix;
    mainProgram = "librecad";
  };
})
+0 −2
Original line number Diff line number Diff line
@@ -14195,8 +14195,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;