# rust-synta-derive.spec.in — Fedora RPM packaging for the synta-derive Rust crate # # Source package: rust-synta-derive # Source: crates.io release tarball (%%{crates_source}) # # Binary packages produced: # rust-synta-derive-devel Rust proc-macro crate sources in the system Cargo registry # rust-synta-derive-doc README documentation # # Vendor tarball preparation (requires network, run once per release): # curl -LO https://static.crates.io/crates/synta-derive/synta-derive-%%{version}.crate # tar xf synta-derive-%%{version}.crate # cd synta-derive-%%{version} # cargo generate-lockfile # cargo vendor vendor > vendor-config.toml # tar czf rust-synta-derive-%%{version}-vendor.tar.gz vendor/ vendor-config.toml Cargo.lock # # Build ordering: this package has no runtime dependency on any other synta # crate and can be built first. rust-synta depends on it (derive feature). # The dev-dependency on synta (for tests) requires rust-synta-devel to be # installed; on first submission, build without tests or install rust-synta # in the build root first. %global debug_package %{nil} %global crate synta-derive %global snapdate 202604110206 %global snapcommit 53450c8 Name: rust-%{crate} Version: 0.1.4 Release: 1.%{snapdate}.git%{snapcommit}%{?dist} Summary: Derive macros for the synta ASN.1 library License: MIT OR Apache-2.0 URL: https://crates.io/crates/%{crate} Source0: %{crates_source} Source1: %{name}-%{version}-vendor.tar.gz # License files are not included in the crates.io tarball; ship them separately. Source2: LICENSE-MIT Source3: LICENSE-APACHE BuildRequires: cargo-rpm-macros >= 25 %description synta-derive provides procedural derive macros (#[derive(Decode, Encode)]) for automatically implementing the synta ASN.1 codec traits on user-defined Rust types. It is used by the synta core library's derive feature and by other synta-family crates. # ────────────────────────────────────────────────────────────────────────────── # rust-synta-derive-devel — Rust crate sources # ────────────────────────────────────────────────────────────────────────────── %package -n rust-%{crate}-devel Summary: Rust crate sources for synta-derive (ASN.1 derive macros) BuildArch: noarch Provides: crate(synta-derive) = %{version} Provides: crate(synta-derive/default) = %{version} # synta-derive is a proc-macro crate: it carries no runtime dependencies. # Consumers of crate(synta/derive) who pull in synta-derive at compile time # do not need a Requires here; that relationship is expressed by # rust-synta-devel Requires: rust-synta-derive-devel. %description -n rust-%{crate}-devel Rust proc-macro crate sources for synta-derive, installed into the system Cargo registry so that other Rust packages can use it as a build-time dependency. Provides #[derive(Decode, Encode)] for automatically implementing the synta ASN.1 codec traits on user-defined structs and enums. # ────────────────────────────────────────────────────────────────────────────── # rust-synta-derive-doc — documentation # ────────────────────────────────────────────────────────────────────────────── %package -n rust-%{crate}-doc Summary: Documentation for the synta-derive Rust crate BuildArch: noarch %description -n rust-%{crate}-doc README and documentation for the synta-derive proc-macro Rust crate. # ══════════════════════════════════════════════════════════════════════════════ # PREP # ══════════════════════════════════════════════════════════════════════════════ %prep %autosetup -n %{crate}-%{version} tar xf %{SOURCE1} %cargo_prep -v vendor cp %{SOURCE2} LICENSE-MIT cp %{SOURCE3} LICENSE-APACHE # ══════════════════════════════════════════════════════════════════════════════ # GENERATE BUILD REQUIREMENTS # ══════════════════════════════════════════════════════════════════════════════ %generate_buildrequires %cargo_generate_buildrequires # ══════════════════════════════════════════════════════════════════════════════ # BUILD # ══════════════════════════════════════════════════════════════════════════════ %build %cargo_build # ══════════════════════════════════════════════════════════════════════════════ # INSTALL # ══════════════════════════════════════════════════════════════════════════════ %install %cargo_install # ══════════════════════════════════════════════════════════════════════════════ # CHECK # ══════════════════════════════════════════════════════════════════════════════ %check # The dev-dependency on synta (for derive integration tests) requires # rust-synta-devel to be installed. Run only --lib tests to avoid that # circular boot-strap requirement; full tests run once rust-synta-devel is # available in the build root. %cargo_test -- --lib # ══════════════════════════════════════════════════════════════════════════════ # FILES # ══════════════════════════════════════════════════════════════════════════════ # ── rust-synta-derive (meta, license carrier) ───────────────────────────────── %files %license LICENSE-MIT LICENSE-APACHE # ── rust-synta-derive-devel ─────────────────────────────────────────────────── %files -n rust-%{crate}-devel %license LICENSE-MIT LICENSE-APACHE %{cargo_registry}/%{crate}-%{version}/ # ── rust-synta-derive-doc ───────────────────────────────────────────────────── %files -n rust-%{crate}-doc %license LICENSE-MIT LICENSE-APACHE %doc README.md # ══════════════════════════════════════════════════════════════════════════════ # CHANGELOG # ══════════════════════════════════════════════════════════════════════════════ %changelog * Fri Apr 10 2026 Synta Contributors - 0.1.4-1 - Version bump to match workspace 0.1.4 release * Sun Apr 05 2026 Synta Contributors - 0.1.3-1 - Version bump to match workspace * Mon Mar 23 2026 Synta Contributors - 0.1.1-1 - Initial individual crate package (split from synta workspace spec)