Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions utils/graft/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
include $(TOPDIR)/rules.mk

PKG_NAME:=graft
PKG_VERSION:=0.2.2
PKG_RELEASE:=1

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/eonik-ai/graft/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=aa736b49bd825eaabcd0d713b3c0e502f794766c1c65cf061d18963daa69bf3b

PKG_MAINTAINER:=Abinash Senapati <abinashsena@gmail.com>
PKG_LICENSE:=Apache-2.0
PKG_LICENSE_FILES:=LICENSE

PKG_BUILD_DEPENDS:=rust/host
PKG_BUILD_PARALLEL:=1

include $(INCLUDE_DIR)/package.mk
include ../../lang/rust/rust-package.mk

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build fails on all 10 target arches because the tarball root is a cargo workspace, and Build/Compile/Cargo runs cargo install --path $(PKG_BUILD_DIR)/$(MAKE_PATH) with the default MAKE_PATH ?= .:

cargo install -v --profile release --root .../ipkg-install --path ".../graft-0.2.2/." --locked
error: found a virtual manifest at `/builder/build_dir/target-riscv64_generic_musl/graft-0.2.2/Cargo.toml` instead of a package manifest
make[2]: *** [Makefile:44: .../graft-0.2.2/.built] Error 101

Set MAKE_PATH to the subdirectory holding the graft binary crate's Cargo.toml (e.g. MAKE_PATH:=crates/graft) so cargo gets a package manifest rather than the workspace root.


Generated by Claude Code


define Package/graft
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Change the hook. Keep the body

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TITLE is the one-line label shown in menuconfig and in the package index, so it has to say what the package is; a tagline leaves users with no idea what graft does. Every neighbouring rust package uses a descriptive phrase (e.g. TITLE:=A modern, maintained replacement for ls in utils/eza/Makefile).

Suggested change
TITLE:=Change the hook. Keep the body
TITLE:=Local-first video composition workspace

Generated by Claude Code

URL:=https://github.com/eonik-ai/graft
DEPENDS:=$(RUST_ARCH_DEPENDS) +ffmpeg
endef

define Package/graft/description
Local-first composition workspace. Incremental compiler for video.
Git owns recipe history; graft owns scions, layers, and compile.
Runtime ffmpeg is not linked; graft shells out.
endef

define Package/graft/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/bin/graft $(1)/usr/bin
endef

$(eval $(call RustBinPackage,graft))
$(eval $(call BuildPackage,graft))
Loading