kompas3d/default.nix
Gregory Bednov 0bc94b2f25 x libs
2026-02-17 08:17:33 +03:00

273 lines
7.3 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
stdenv,
lib,
fetchurl,
dpkg,
autoPatchelfHook,
wrapQtAppsHook,
qt3d,
libSM,
libxxf86vm,
libXv,
libXres,
libXpm,
libXmu,
libXkbfile,
libXinerama,
libXdamage,
libXfixes,
libXcursor,
libXcomposite,
libxaw,
libxt,
libxtst,
libICE,
libfontenc,
libxcb,
libX11,
libXext,
libXrender,
libXrandr,
libXScrnSaver,
libXi,
xcbutil,
xcbutilwm,
xcbutilrenderutil,
xcbutilkeysyms,
xcbutilimage,
libxdmcp,
libxau,
xcb-util-cursor,
libdrm,
libgcc,
util-linux,
llvmPackages,
cups,
libGLU,
tinyxml,
gtk2,
}:
let
version = "24.1.0.161";
pkgsList = [
{
name = "ascon-kompas3d-v24-full";
hash = "sha256-KhBf0K450J3donQB7OmbHuPUmNREcCWJdFlhi6dkXyo=";
}
{
name = "ascon-kompas3d-v24";
hash = "sha256-aFJ5OT1ZtT6a9IGURMtIWoHYSCZG4c8SlXNLmyLg6Zc=";
}
{
name = "ascon-kompas-graphic-v24";
hash = "sha256-5ebowbW/HxnZfnC6uUizBsQKD+NCu9+WgwcGz8Oop4I=";
}
{
name = "ascon-kompas-plugins-v24";
hash = "sha256-A90aR0AIJDSdu6kXq70g/kIm1w7QUnl/wOOgwwnUdrY=";
}
{
name = "ascon-kompas-nesting-v24";
hash = "sha256-/LXNk9k2MmDvgnf4eGqrXCGnswdmeDyBvrlAcVMgZY8=";
}
{
name = "ascon-kompas-servicetools-v24";
hash = "sha256-QiEqVyllq5ahZsE+liUWoCqOqrqL4Tpgc6MXPCeS0fo=";
}
{
name = "ascon-kompas-featurekompas-v24";
hash = "sha256-zuWsok3h5deOEqJ8Na4ruaKh8rjVPfAN4yj7RlNSiQA=";
}
{
name = "ascon-kompas-sdk-v24";
hash = "sha256-z0bohENrSBk4LDPK+cC3YkYARxvwdpEJMZdVuf1oAPA=";
}
{
name = "ascon-kompas-libsamples-v24";
hash = "sha256-wZfda5t8aaH2IlHByZrKa7lDfeqWK483FxQnaoXhARk=";
}
{
name = "ascon-kompas-coupling-v24";
hash = "sha256-lptq6iZA0Ij09VkvwsIcAqAuJJfSfpn8/Vqn8AaJhtU=";
}
{
name = "ascon-kompas-help-v24";
hash = "sha256-nmFqmsPx6g0+4ptFnOJ6AtVoSVtZWEGmU88qhQl9XR8=";
}
{
name = "ascon-kompas-checker-v24";
hash = "sha256-z+huhrrEvgA50G0UJ7Cd7q0pMAJtYoTk2BHyEZepzXU=";
}
{
name = "ascon-kompas-dimchain-v24";
hash = "sha256-EtY1KLWWFWTogY0QnS/E4x+76FaUohWBk860CJrSuo0=";
}
];
fetchDebs =
package:
fetchurl {
url = "https://repo.ascon.ru/stable/deb/pool/main/a/${package.name}/${package.name}_${version}_amd64.deb";
hash = package.hash;
};
srcs = (map fetchDebs pkgsList) ++ [
(fetchurl {
url = "https://repo.ascon.ru/stable/deb/pool/main/a/ascon-kompas-common/ascon-kompas-common_1.0.0.3_amd64.deb";
hash = "sha256-fYGTd2WNrQBSXDvn5g/yHM8WTXkALNsnGPd9dxUNgM4=";
})
(fetchurl {
url = "https://repo.ascon.ru/stable/deb/pool/main/a/ascon-kompas-fonts/ascon-kompas-fonts_1.0.0.7_amd64.deb";
hash = "sha256-iQKgDSzyd3fRBcZzl4IbkCn9Z0z+xsCRRhW+lbo9cyo=";
})
# ascon-kompas3d-viewer-help-v24/
# ascon-kompas3d-viewer-v24/
# ascon-kompas3d-viewer-v24-full/
(fetchurl {
url = "https://repo.ascon.ru/stable/deb/pool/main/a/ascon/ascon-polynom-library-23.3-23.3.0.25101312-amd64.deb";
hash = "sha256-IIfFSfZ2+HTf0diA7+6BcvGzIgDbwDmUq1ruAqLaB20=";
})
# ascon-cas-23.3-23.3.0.25092913-amd64.deb
# ascon-commons-23.3-23.3.0.25092914-amd64.deb
# ascon-csc-agent-5.1-5.1.0.43.deb
# ascon-csc-console-5.1-5.1.0.43.deb
# ascon-csc-monitor-5.1-5.1.0.43.deb
# ascon-loodsman-23.3-23.3.1.25101616-amd64.deb
# ascon-loodsman-appserver-23.3-23.3.1.25101616-amd64.deb
# ascon-loodsman-file-archive-service-23.3-23.3.1.25101616-amd64.deb
# ascon-loodsman-load-balancer-23.3-23.3.1.25101616-amd64.deb
# ascon-loodsman-notify-23.3-23.3.1.25101616-amd64.deb
# ascon-polynom-appserver-23.3-23.3.0.25081118-amd64.deb
# ascon-polynom-database-23.3-23.3.0.25080512-amd64.deb
#? ascon-polynom-library-23.3-23.3.0.25101312-amd64.deb
# ascon-polynom-migration-23.3-23.3.0.25081118-amd64.deb
# ascon-polynom-webserver-23.3-23.3.0.25081118-amd64.deb
# main/c/c3dwebservice/
];
in
stdenv.mkDerivation {
pname = "kompas3d-v24-full";
inherit version srcs;
nativeBuildInputs = [
dpkg
autoPatchelfHook
wrapQtAppsHook
];
autoPatchelfIgnoreMissingDeps = [
"*.tx"
"*.txv"
"liboless.so"
];
propagatedBuildInputs = [
gtk2
libgcc.lib
qt3d
util-linux.lib
cups
libGLU
tinyxml
libdrm
xcb-util-cursor
libSM
libxxf86vm
libXv
libXres
libxpm
libxmu
libxkbfile
libxinerama
libxdamage
libxfixes
libXcursor
libXcomposite
libxaw
libxt
libXtst
libICE
libfontenc
libXcb
libX11
libXext
libXrender
libXrandr
libXScrnSaver
libXi
xcbutil
xcbutilwm
xcbutilrenderutil
xcbutilkeysyms
xcbutilimage
libXdmcp
libXau
llvmPackages.libcxx
llvmPackages.libunwind
llvmPackages.openmp
# icu #? is needed for dotnet based Bin/Ascon.HelpCall, but idk how to pass it
];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,opt,share}/
cp -R {etc,opt} $out/
cp -R usr/{bin,share} $out/
basepath=$out/opt/ascon/kompas3d-v24
ln -s $basepath/Bin/kKompas $out/bin/kompas-v24
ln -s $basepath/License/kactivation $out/bin/kompas-kactivation-v24
ln -s $out/opt/ascon/PolynomLibrary $basepath/Libs/PolynomLibrary
mv $out/share/applications/flystartmenu/kompas3d-24/* $out/share/applications/
rm -rf $out/share/applications/flystartmenu
substituteInPlace $out/share/applications/* \
--replace-quiet "/opt/ascon/kompas3d-v24" "$basepath"
substituteInPlace $out/share/applications/*help* \
--replace-fail "$basepath" "env DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 $basepath"
examplesfile=$basepath/Bin/UIConfig/Examples.xml
iconv -f UTF-16LE -t UTF-8 $examplesfile -o $examplesfile
substituteInPlace $examplesfile \
--replace-fail "..\Samples" "$out\opt\ascon\kompas3d-v24\Samples"
iconv -f UTF-8 -t UTF-16LE $examplesfile -o $examplesfile
runHook postInstall
'';
dontBuild = true;
meta = with lib; {
description = "КОМПАС-3D для машиностроения и приборостроения";
longDescription = ''
КОМПАС-3D для машиностроения и приборостроения
Данный пакет предназначен для установки КОМПАС-3D для машиностроения и приборостроения в составе:
* КОМПАС-График
* КОМПАС-3D
* Локальная справка для КОМПАС-3D
* Шрифты чертежные
* Средства разработки приложений
* Каталог: Муфты
* Размерные цепи
* Сервисные инструменты
* Проверка документов
* Распознавание 3D-моделей
* Раскрой
* Примеры библиотек фрагментов и моделей
* Стандартные Изделия для КОМПАС
'';
homepage = "https://ascon.ru/products/kompas-3d/";
platforms = with platforms; lists.intersectLists x86_64 linux;
license = licenses.unfree;
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
maintainers = with maintainers; [ barsikus007 ];
mainProgram = "kompas-v24";
};
}