feat: phase 0 — cargo workspace, vendored libgpod, bindgen smoke test #1
No reviewers
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
wokoman/ironpod!1
Loading…
Reference in a new issue
No description provided.
Delete branch "refs/pull/1/head"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Sets up the Cargo workspace, the internal
libgpod-syscrate, and the bindgen + cc pipeline that compiles libgpod's vendored C sources and exposes them to Rust. SeeSPEC.md"Phase 0" for the full scope.What's in the diff
Cargo.toml,rust-toolchain.toml,.gitignore, MITLICENSE, build-prereqREADME.md).crates/libgpod-sys/withlinks = "gpod",publish = false, defaultvendoredfeature.gtkpod/libgpodat7982c55(gtkpod/main) undercrates/libgpod-sys/vendor/: 25.c+ 17.h+ LGPL-2.1+COPYING. Two stub files (db-artwork-debug.c,itdb_iphone.c) are skipped at build time — they're empty withoutDEBUG_ARTWORKDB/HAVE_LIBIMOBILEDEVICE.vendor/config.hwithHAVE_GDKPIXBUF,HAVE_LIBXML,HAVE_ZLIB, plus glib 2.22+ feature defines (HAVE_G_INT64_HASH,HAVE_G_INT64_EQUAL,HAVE_G_CHECKSUM_RESET). Replaces the autotools-generatedconfig.h.build.rsprobesglib-2.0,gobject-2.0,gmodule-2.0,gdk-pixbuf-2.0,sqlite3,libxml-2.0,zlib, andlibplist-2.0(with1.0fallback) viapkg-config, then forwards the include paths to bothccandbindgen. Bindgen allowlistsitdb_.*/Itdb_.*/GList/GError;GdkPixbufstays opaque.src/lib.rsin libgpod-sys withinclude!(bindings.rs)and anitdb_new/itdb_freesmoke test.src/main.rs+src/ipod/mod.rsstubs for the binary.Verification
cargo buildclean, no warnings (legacy C warnings suppressed at the build level).cargo test -p libgpod-sys→itdb_new_free_roundtrip ... ok.cargo run→ironpod (phase 0 skeleton).cargo fmt --all -- --checkandcargo clippy --all-targets -- -D warningsboth clean.Tested on macOS aarch64 with Homebrew-provided glib 2.88, gdk-pixbuf 2.44, libplist 2.7. Linux build prerequisites documented in
README.md.Out of scope
Phase 1 (safe wrapper in
src/ipod/), tag reading, copy engine, TUI — all perSPEC.md.