Package Details: libfive-studio-git rip.dmc.r2166.g248c15c-1

Git Clone URL: https://aur.archlinux.org/libfive-git.git (read-only, click to copy)
Package Base: libfive-git
Description: A minimalist GUI for solid modeling with the libfive kernel
Upstream URL: https://libfive.com
Licenses: GPL2
Conflicts: libfive-studio
Provides: libfive-studio
Submitter: deuill
Maintainer: emiliano.bovetti
Last Packager: emiliano.bovetti
Votes: 2
Popularity: 0.45
First Submitted: 2018-02-24 18:00 (UTC)
Last Updated: 2023-02-23 19:37 (UTC)

Latest Comments

khionu commented on 2024-10-07 20:15 (UTC)

This package currently builds and attempts to install both libfive-git and libfive-git-debug, which conflict with each other?

nikorpoulsen commented on 2022-08-11 23:26 (UTC) (edited on 2022-08-11 23:27 (UTC) by nikorpoulsen)

Don't think guile2 is supported any longer.

This is how i forced guile3:

PKGBUILD :

pkgbase=libfive-git
pkgname=('libfive-git' 'libfive-studio-git')
pkgver=rip.rdmc.2154.gd83cc227
pkgrel=1
arch=("i686" "x86_64")
license=("GPL2")
url="https://libfive.com"
makedepends=("git" "cmake" "pkg-config" "boost" "eigen")
source=("git+https://github.com/libfive/libfive.git" "libfive-studio.desktop" "guile3.patch")
sha256sums=(
    "SKIP"
    "cc241ab16395381a8f259e3567e3840b471e6f309b2af8ef4b567f312b5ab3de"
    "c5caeafd6b3d83c3ece43798a79e60c064baf808c45b7d4e8e9fbfc913d02f0f"
)

_pkgname=libfive

pkgver() {
    cd "$srcdir/$_pkgname"
    git describe --long --tags | sed 's/^v//;s/-/.r/;s/-/./g'
}

prepare() {
    cd "$srcdir/$_pkgname"
    patch -p1 < "$srcdir/guile3.patch"
}

build() {
    mkdir -p "$srcdir/$_pkgname/build"
    cd "$srcdir/$_pkgname/build"
    cmake ..
    make
}

package_libfive-git() {
    pkgdesc="A software library and set of tools for solid modeling"
    depends=("boost-libs" "guile3" "libpng")
    provides=("libfive")
    conflicts=("libfive")

    cd "$srcdir/$_pkgname/build"
    DESTDIR="$pkgdir" cmake -DCMAKE_INSTALL_PREFIX=/usr -P libfive/cmake_install.cmake
}

package_libfive-studio-git() {
    pkgdesc="A minimalist GUI for solid modeling with the libfive kernel"
    depends=("libfive-git" "qt5-base")
    provides=("libfive-studio")
    conflicts=("libfive-studio")

    cd "$srcdir/$_pkgname/build"
    DESTDIR="$pkgdir" cmake -DCMAKE_INSTALL_PREFIX=/usr -P studio/cmake_install.cmake

    # Rename Studio binary for uniqueness.
    mv "$pkgdir/usr/bin/Studio" "$pkgdir/usr/bin/libfive-studio"

    # Install additional support files.
    install -Dm644 "$srcdir/libfive-studio.desktop" "$pkgdir/usr/share/applications/libfive-studio.desktop"
    install -Dm644 "$srcdir/$_pkgname/studio/deploy/icon/icon.svg" "$pkgdir/usr/share/pixmaps/libfive-studio.svg"
}

guile3.patch

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 85e5fc8d..a6ae79d8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -87,10 +87,7 @@ if(NOT MSVC)
     find_package(Boost REQUIRED)
     find_package(PkgConfig REQUIRED)

-    pkg_check_modules(GUILE guile-2.2>=2.2.1)
-    if (NOT(GUILE_FOUND))
-        pkg_check_modules(GUILE guile-3.0>=3.0.0)
-    endif()
+    pkg_check_modules(GUILE guile-3.0>=3.0.0)

     pkg_check_modules(EIGEN REQUIRED eigen3>=3.2.92)
 else()
diff --git a/libfive/bind/guile/CMakeLists.txt b/libfive/bind/guile/CMakeLists.txt
index 1a469f76..310644e2 100644
--- a/libfive/bind/guile/CMakeLists.txt
+++ b/libfive/bind/guile/CMakeLists.txt
@@ -28,10 +28,10 @@ foreach(SRC ${SRCS})
     #
     # Then, copy the file from Guile's compilation cache to the build directory
     execute_process(
-        COMMAND guile -c "(use-modules (system base compile))(format #t \"~A\" (compiled-file-name \"${FULL_SRC}\"))"
+        COMMAND guile3 -c "(use-modules (system base compile))(format #t \"~A\" (compiled-file-name \"${FULL_SRC}\"))"
         OUTPUT_VARIABLE CCACHE_FILE)
     add_custom_command(OUTPUT ${OUT}
-        COMMAND ${CMAKE_COMMAND} -E env LIBFIVE_FRAMEWORK_DIR=$<TARGET_FILE_DIR:libfive>/ LIBFIVE_STDLIB_DIR=$<TARGET_FILE_DIR:libfive-stdlib>/ guild compile -L${CMAKE_CURRENT_SOURCE_DIR} ${FULL_SRC}
+        COMMAND ${CMAKE_COMMAND} -E env LIBFIVE_FRAMEWORK_DIR=$<TARGET_FILE_DIR:libfive>/ LIBFIVE_STDLIB_DIR=$<TARGET_FILE_DIR:libfive-stdlib>/ guild3 compile -L${CMAKE_CURRENT_SOURCE_DIR} ${FULL_SRC}
         COMMAND ${CMAKE_COMMAND} -E copy ${CCACHE_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${OUT}
         WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
         DEPENDS ${FULL_SRC} libfive libfive-stdlib)
@@ -45,7 +45,7 @@ if(UNIX)
     # Find the installation directory for compiled files
     if (NOT DEFINED GUILE_CCACHE_DIR)
         execute_process(
-            COMMAND guile -c "(format #t \"~A\" (%site-ccache-dir))"
+            COMMAND guile3 -c "(format #t \"~A\" (%site-ccache-dir))"
             OUTPUT_VARIABLE GUILE_CCACHE_DIR)
     endif()

VanLaser commented on 2019-04-11 16:45 (UTC) (edited on 2019-04-11 16:54 (UTC) by VanLaser)

It would be nice to also add the "bind" folder to the install, otherwise libfive-guile (libfive scheme bindings) can't be really used, if I correctly understand how things work (following these instructions: https://j.agrue.info/libfive.html)

mayjs commented on 2018-11-30 19:03 (UTC)

libfive does now include a commandline interface to convert .io files to .stl files. (See https://github.com/libfive/libfive/issues/194) It does currently not run correctly on Arch Linux, but I'll file a pull request for it shortly. (https://github.com/libfive/libfive/issues/235)

The additional bin file should be installed in /usr/bin as libfive-export-meshes in my opinion.