diff options
author | Zhaofeng Li <hello@zhaofeng.li> | 2023-12-10 04:28:05 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-10 15:28:05 +0400 |
commit | 92ec31fbeea2dc0acee932a1c84771a2df03b3c2 (patch) | |
tree | 88fb6c620c739a6dfaba617deed1494a639daecb /pkgs/applications | |
parent | 29d6c96900b9b576c2fb89491452f283aa979819 (diff) | |
download | nixlib-92ec31fbeea2dc0acee932a1c84771a2df03b3c2.tar nixlib-92ec31fbeea2dc0acee932a1c84771a2df03b3c2.tar.gz nixlib-92ec31fbeea2dc0acee932a1c84771a2df03b3c2.tar.bz2 nixlib-92ec31fbeea2dc0acee932a1c84771a2df03b3c2.tar.lz nixlib-92ec31fbeea2dc0acee932a1c84771a2df03b3c2.tar.xz nixlib-92ec31fbeea2dc0acee932a1c84771a2df03b3c2.tar.zst nixlib-92ec31fbeea2dc0acee932a1c84771a2df03b3c2.zip |
bambu-studio: init at 01.06.02.04 (#206495)
* wxGTK31: Support enabling WebRequest component * wxGTK31: Support enabling private fonts * bambu-studio: init at 01.06.02.04 Co-authored-by: Phileas Lebada <gitpl@woerm.at> * bambu-studio: 01.06.02.04 -> 01.07.00.65 * bambu-studio: 01.07.00.65 -> 01.07.06.92 The OpenSSL pin is no longer needed. * bambu-studio: 01.07.06.92 -> 01.08.00.62 * Switch to newer tbb version tbb was broken up into two versions for backwards compability https://github.com/NixOS/nixpkgs/pull/217585/files and put into prusa-slicer https://github.com/NixOS/nixpkgs/pull/238921/files Which fixes for 1.8 beta build ``` bambu-studio> CMake Error at src/libslic3r/CMakeLists.txt:490 (target_link_libraries): bambu-studio> Target "libslic3r" links to: bambu-studio> TBB::tbbmalloc bambu-studio> but the target was not found. Possible reasons include: bambu-studio> * There is a typo in the target name. bambu-studio> * A find_package call is missing for an IMPORTED target. bambu-studio> * An ALIAS target is missing. bambu-studio> bambu-studio> -- Generating done (0.2s) bambu-studio> CMake Warning: bambu-studio> Manually-specified variables were not used by the project: bambu-studio> CMAKE_EXPORT_NO_PACKAGE_REGISTRY bambu-studio> DEP_WX_GTK3 bambu-studio> bambu-studio> CMake Generate step failed. Build files cannot be regenerated correctly. error: builder for '/nix/store/rzgx01p1ni2xbx5ddg0133pjjlzs8618-bambu-studio-01.08.00.57.drv' failed with exit code 1; ``` * bambu-studio: switch to custom openvdb tbb version * Downgrade boost to 179 (181 is current default) --------- Co-authored-by: Phileas Lebada <gitpl@woerm.at>
Diffstat (limited to 'pkgs/applications')
-rw-r--r-- | pkgs/applications/misc/bambu-studio/0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch | 34 | ||||
-rw-r--r-- | pkgs/applications/misc/bambu-studio/default.nix | 172 |
2 files changed, 206 insertions, 0 deletions
diff --git a/pkgs/applications/misc/bambu-studio/0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch b/pkgs/applications/misc/bambu-studio/0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch new file mode 100644 index 000000000000..15f1bf8f0b59 --- /dev/null +++ b/pkgs/applications/misc/bambu-studio/0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch @@ -0,0 +1,34 @@ +From 7eed499898226222a949a792e0400ec10db4a1c9 Mon Sep 17 00:00:00 2001 +From: Zhaofeng Li <hello@zhaofeng.li> +Date: Tue, 22 Nov 2022 13:00:39 -0700 +Subject: [PATCH] [not for upstream] CMakeLists: Link against webkit2gtk in + libslic3r_gui + +WebView.cpp uses symbols from webkitgtk directly. Upstream setup +links wxGTK statically so webkitgtk is already pulled in. + +> /nix/store/039g378vc3pc3dvi9dzdlrd0i4q93qwf-binutils-2.39/bin/ld: slic3r/liblibslic3r_gui.a(WebView.cpp.o): undefined reference to symbol 'webkit_web_view_run_javascript_finish' +> /nix/store/039g378vc3pc3dvi9dzdlrd0i4q93qwf-binutils-2.39/bin/ld: /nix/store/8yvy428jy2nwq4dhmrcs7gj5r27a2pv6-webkitgtk-2.38.2+abi=4.0/lib/libwebkit2gtk-4.0.so.37: error adding symbols: DSO missing from command line +--- + src/CMakeLists.txt | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 9c5cb96..e92a0e3 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -175,6 +175,11 @@ if (WIN32) + target_link_libraries(BambuStudio_app_gui PRIVATE boost_headeronly) + endif () + ++# We link against webkit2gtk symbols in src/slic3r/GUI/Widgets/WebView.cpp ++if (CMAKE_SYSTEM_NAME STREQUAL "Linux") ++ target_link_libraries(libslic3r_gui "-lwebkit2gtk-4.0") ++endif () ++ + # Link the resources dir to where Slic3r GUI expects it + set(output_dlls_Release "") + set(output_dlls_Debug "") +-- +2.38.1 + diff --git a/pkgs/applications/misc/bambu-studio/default.nix b/pkgs/applications/misc/bambu-studio/default.nix new file mode 100644 index 000000000000..fc6acd3d177d --- /dev/null +++ b/pkgs/applications/misc/bambu-studio/default.nix @@ -0,0 +1,172 @@ +{ stdenv +, lib +, openexr +, jemalloc +, c-blosc +, binutils +, fetchFromGitHub +, cmake +, pkg-config +, wrapGAppsHook +, boost179 +, cereal +, cgal_5 +, curl +, dbus +, eigen +, expat +, gcc-unwrapped +, glew +, glfw +, glib +, glib-networking +, gmp +, gstreamer +, gst-plugins-base +, gst-plugins-bad +, gtest +, gtk3 +, hicolor-icon-theme +, ilmbase +, libpng +, mesa +, mpfr +, nlopt +, opencascade-occt +, openvdb +, pcre +, qhull +, systemd +, tbb_2021_8 +, webkitgtk +, wxGTK31 +, xorg +, fetchpatch +, withSystemd ? stdenv.isLinux +}: +let + wxGTK31' = wxGTK31.overrideAttrs (old: { + configureFlags = old.configureFlags ++ [ + # Disable noisy debug dialogs + "--enable-debug=no" + ]; + }); + openvdb_tbb_2021_8 = openvdb.overrideAttrs (old: rec { + buildInputs = [ openexr boost179 tbb_2021_8 jemalloc c-blosc ilmbase ]; + }); +in +stdenv.mkDerivation rec { + pname = "bambu-studio"; + version = "01.08.00.62"; + + src = fetchFromGitHub { + owner = "bambulab"; + repo = "BambuStudio"; + rev = "v${version}"; + hash = "sha256-Rb8YNf+ZQ8+9jAP/ZLze0PfY/liE7Rr2bJX33AENsbg="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + binutils + boost179 + cereal + cgal_5 + curl + dbus + eigen + expat + gcc-unwrapped + glew + glfw + glib + glib-networking + gmp + gstreamer + gst-plugins-base + gst-plugins-bad + gtk3 + hicolor-icon-theme + ilmbase + libpng + mesa.osmesa + mpfr + nlopt + opencascade-occt + openvdb_tbb_2021_8 + pcre + tbb_2021_8 + webkitgtk + wxGTK31' + xorg.libX11 + ] ++ lib.optionals withSystemd [ + systemd + ] ++ checkInputs; + + patches = [ + # Fix for webkitgtk linking + ./0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch + ]; + + doCheck = true; + checkInputs = [ gtest ]; + + separateDebugInfo = true; + + # The build system uses custom logic - defined in + # cmake/modules/FindNLopt.cmake in the package source - for finding the nlopt + # library, which doesn't pick up the package in the nix store. We + # additionally need to set the path via the NLOPT environment variable. + NLOPT = nlopt; + + # Disable compiler warnings that clutter the build log. + # It seems to be a known issue for Eigen: + # http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221 + NIX_CFLAGS_COMPILE = "-Wno-ignored-attributes"; + + # prusa-slicer uses dlopen on `libudev.so` at runtime + NIX_LDFLAGS = lib.optionalString withSystemd "-ludev"; + + # TODO: macOS + prePatch = '' + # Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx + # now seems to be integrated into the main lib. + sed -i 's|nlopt_cxx|nlopt|g' cmake/modules/FindNLopt.cmake + ''; + + cmakeFlags = [ + "-DSLIC3R_STATIC=0" + "-DSLIC3R_FHS=1" + "-DSLIC3R_GTK=3" + + # BambuStudio-specific + "-DBBL_RELEASE_TO_PUBLIC=1" + "-DBBL_INTERNAL_TESTING=0" + "-DDEP_WX_GTK3=ON" + "-DSLIC3R_BUILD_TESTS=0" + "-DCMAKE_CXX_FLAGS=-DBOOST_LOG_DYN_LINK" + ]; + + preFixup = '' + gappsWrapperArgs+=( + --prefix LD_LIBRARY_PATH : "$out/lib" + + # Fixes intermittent crash + # The upstream setup links in glew statically + --prefix LD_PRELOAD : "${glew.out}/lib/libGLEW.so" + ) + ''; + + meta = with lib; { + description = "PC Software for BambuLab's 3D printers"; + homepage = "https://github.com/bambulab/BambuStudio"; + license = licenses.agpl3; + maintainers = with maintainers; [ zhaofengli ]; + mainProgram = "bambu-studio"; + }; +} |