From 4be5b640a5dd50cf1e11c14063e1e2b555d24d63 Mon Sep 17 00:00:00 2001 From: Daniel Hodges Date: Sat, 15 Aug 2026 21:35:50 -0400 Subject: [PATCH] feat(packaging): prepare crates.io SDK release Publish the reusable NARF workspace as a synchronized 0.1.0 component graph for custom kernels and out-of-tree extensions. Add registry fallbacks to local path dependencies, package metadata, deterministic dependency-ordered release tooling, CI preflight, and signed-tag release automation. Keep xtask and validation-only helpers private, handle the separately rooted narf-libc explicitly, and document the native package and custom-kernel workflows. Originating-Prompt: Publish the default NARF workspace crates on crates.io and prepare an initial release for custom kernel builders. Model: OpenAI Codex (GPT-5) Reviewed-By: Daniel Hodges Co-Authored-By: OpenAI Codex --- .github/workflows/ci.yml | 9 ++ .github/workflows/release.yml | 18 ++- Cargo.lock | 224 +++++++++++++------------- Cargo.toml | 2 +- README.md | 32 +++- abi/Cargo.toml | 14 +- accel/Cargo.toml | 22 +-- acpi/Cargo.toml | 8 +- aml/Cargo.toml | 18 +-- arch/Cargo.toml | 4 +- audio/Cargo.toml | 36 ++--- block/Cargo.toml | 23 +-- bluetooth/Cargo.toml | 16 +- boot/Cargo.toml | 8 +- bpf-idle/Cargo.toml | 16 +- bpf-leds/Cargo.toml | 14 +- bpf/Cargo.toml | 36 ++--- bpf/bench/Cargo.toml | 10 +- bpf/isa/Cargo.toml | 2 +- bpf/jit/Cargo.toml | 6 +- bpf/structops/Cargo.toml | 12 +- bpf/verifier/Cargo.toml | 4 +- build/cargo-narf/Cargo.toml | 4 +- build/cargo-narf/README.md | 20 +++ build/specification/spec.md | 21 ++- bus/Cargo.toml | 20 +-- capabilities/Cargo.toml | 6 +- compat/linux-perf-uapi/Cargo.toml | 1 + compat/relibc/Cargo.toml | 4 +- compat/win-rt/Cargo.toml | 2 +- compat/win/Cargo.toml | 12 +- console/Cargo.toml | 6 +- crypto/Cargo.toml | 10 +- drivers/Cargo.toml | 18 +-- drivers/backlight/Cargo.toml | 26 +-- drivers/crypto/Cargo.toml | 4 +- drivers/extcon/Cargo.toml | 10 +- drivers/fingerprint/Cargo.toml | 8 +- drivers/fs/9p/Cargo.toml | 20 +-- drivers/fs/btrfs/Cargo.toml | 20 +-- drivers/fs/exfat/Cargo.toml | 20 +-- drivers/fs/ext2/Cargo.toml | 26 +-- drivers/fs/ext4/Cargo.toml | 28 ++-- drivers/fs/fat/Cargo.toml | 24 +-- drivers/fs/iso9660/Cargo.toml | 20 +-- drivers/fs/minix/Cargo.toml | 20 +-- drivers/fs/squashfs/Cargo.toml | 20 +-- drivers/fs/udf/Cargo.toml | 20 +-- drivers/gpio/Cargo.toml | 18 +-- drivers/gpu/Cargo.toml | 44 ++--- drivers/graphics/Cargo.toml | 14 +- drivers/hwmon/Cargo.toml | 20 +-- drivers/i2c/Cargo.toml | 24 +-- drivers/i3c/Cargo.toml | 24 +-- drivers/input/Cargo.toml | 34 ++-- drivers/leds/Cargo.toml | 16 +- drivers/media/Cargo.toml | 10 +- drivers/net/Cargo.toml | 38 ++--- drivers/nfc/Cargo.toml | 8 +- drivers/nvidia/Cargo.toml | 22 +-- drivers/nvme/Cargo.toml | 28 ++-- drivers/platform/Cargo.toml | 40 ++--- drivers/psp/Cargo.toml | 4 +- drivers/runtime/Cargo.toml | 10 +- drivers/sdio/Cargo.toml | 22 +-- drivers/serial/Cargo.toml | 20 +-- drivers/sound/Cargo.toml | 26 +-- drivers/spi/Cargo.toml | 20 +-- drivers/storage/Cargo.toml | 32 ++-- drivers/thunderbolt/Cargo.toml | 16 +- drivers/tpm/Cargo.toml | 8 +- drivers/usb/Cargo.toml | 44 ++--- drivers/usbpd/Cargo.toml | 18 +-- drivers/video/Cargo.toml | 22 +-- drivers/virtio/Cargo.toml | 34 ++-- drivers/wireless/Cargo.toml | 40 ++--- drivers/wwan/Cargo.toml | 4 +- edid/Cargo.toml | 2 +- efi/Cargo.toml | 2 +- event_bus/Cargo.toml | 8 +- fb/Cargo.toml | 48 +++--- filesystem/Cargo.toml | 32 ++-- firmware/Cargo.toml | 20 +-- firmware/fdt/Cargo.toml | 4 +- firmware/fw_cfg/Cargo.toml | 8 +- firmware/smbios/Cargo.toml | 6 +- frame/Cargo.toml | 174 ++++++++++---------- graphics/Cargo.toml | 6 +- hid/Cargo.toml | 2 +- i3c/Cargo.toml | 18 ++- init/Cargo.toml | 8 +- initramfs/Cargo.toml | 12 +- input/Cargo.toml | 12 +- interrupts/Cargo.toml | 16 +- io/Cargo.toml | 10 +- ipc/Cargo.toml | 14 +- lib/Cargo.toml | 2 +- memory/Cargo.toml | 8 +- modules/Cargo.toml | 8 +- modules/MODULE_AUTHORING.md | 7 +- narf-libc/Cargo.lock | 4 +- narf-libc/Cargo.toml | 4 +- narf-libc/validate/Cargo.toml | 1 + net/Cargo.toml | 12 +- observability/Cargo.toml | 12 +- packaging/README.md | 43 +++-- packaging/prepare-tag.sh | 2 +- packaging/publish-crates.sh | 256 ++++++++++++++++++++++++++++++ packaging/test-publish-crates.sh | 34 ++++ pinctrl/Cargo.toml | 2 +- pmbus/Cargo.toml | 8 +- power/Cargo.toml | 30 ++-- pwm/Cargo.toml | 8 +- rcu/Cargo.toml | 10 +- safety-argument.toml | 10 +- scheduler/Cargo.toml | 16 +- scmi/Cargo.toml | 8 +- security/Cargo.toml | 4 +- shmem/Cargo.toml | 14 +- spdm/Cargo.toml | 10 +- time/Cargo.toml | 10 +- tpm/Cargo.toml | 18 ++- tracing/Cargo.toml | 10 +- usbpd/Cargo.toml | 6 +- userspace/Cargo.toml | 50 +++--- verification/Cargo.toml | 120 +++++++------- verification/busybox/Cargo.toml | 8 +- wireless/Cargo.toml | 26 +-- 128 files changed, 1590 insertions(+), 1157 deletions(-) create mode 100644 build/cargo-narf/README.md create mode 100755 packaging/publish-crates.sh create mode 100755 packaging/test-publish-crates.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fbc5e3f0c..5e3a5615e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -115,6 +115,15 @@ jobs: - name: Host unit-test gate run: cargo xtask host-test + - name: Crates.io publication plan + run: packaging/test-publish-crates.sh + + - name: Crates.io package preflight + run: | + version="$(cargo metadata --no-deps --format-version 1 | + jq -r '.packages[] | select(.name == "cargo-narf") | .version')" + packaging/publish-crates.sh --version "$version" --check + clippy-kernel: name: clippy-kernel / ${{ matrix.arch }} needs: changes diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bcf95b5a7..0cc1aee6a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -31,6 +31,7 @@ jobs: test "$(gh api "repos/$GITHUB_REPOSITORY/git/tags/$tag_sha" --jq .verification.verified)" = true version="${RELEASE_TAG#v}" [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+([.-][0-9A-Za-z][0-9A-Za-z.-]*)?$ ]] + packaging/publish-crates.sh --version "$version" --plan >/dev/null echo "version=$version" >> "$GITHUB_OUTPUT" packages: @@ -124,9 +125,24 @@ jobs: target/narf-aarch64-uefi.img target/narf-aarch64-uefi.img.sha256 - publish: + crates: needs: [validate, packages, iso-test] runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.tag || github.ref_name }} + fetch-depth: 0 + - run: rustup show active-toolchain || rustup toolchain install + - env: + CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }} + NARF_RELEASE_TAG_VERIFIED: "1" + VERSION: ${{ needs.validate.outputs.version }} + run: packaging/publish-crates.sh --version "$VERSION" --execute + + publish: + needs: [validate, packages, iso-test, crates] + runs-on: ubuntu-latest steps: - uses: actions/download-artifact@v4 with: diff --git a/Cargo.lock b/Cargo.lock index f7aeaa607..04acbeb63 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -558,7 +558,7 @@ dependencies = [ [[package]] name = "narf-abi" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-capabilities", "narf-ipc", @@ -587,7 +587,7 @@ dependencies = [ [[package]] name = "narf-acpi" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-kernel-test", @@ -597,7 +597,7 @@ dependencies = [ [[package]] name = "narf-aml" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-acpi", "narf-capabilities", @@ -612,7 +612,7 @@ dependencies = [ [[package]] name = "narf-arch" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", "narf-lib", @@ -620,7 +620,7 @@ dependencies = [ [[package]] name = "narf-audio" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-acpi", "narf-aml", @@ -644,7 +644,7 @@ dependencies = [ [[package]] name = "narf-block" -version = "0.0.0" +version = "0.1.0" dependencies = [ "async-trait", "narf-capabilities", @@ -662,7 +662,7 @@ dependencies = [ [[package]] name = "narf-bluetooth" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-audio", "narf-capabilities", @@ -676,7 +676,7 @@ dependencies = [ [[package]] name = "narf-boot" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-firmware-fdt", "narf-kernel-test", @@ -686,7 +686,7 @@ dependencies = [ [[package]] name = "narf-bpf" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-boot", @@ -710,7 +710,7 @@ dependencies = [ [[package]] name = "narf-bpf-bench" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-boot", "narf-console", @@ -721,11 +721,11 @@ dependencies = [ [[package]] name = "narf-bpf-btf" -version = "0.0.0" +version = "0.1.0" [[package]] name = "narf-bpf-idle" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-bpf", "narf-bpf-isa", @@ -739,14 +739,14 @@ dependencies = [ [[package]] name = "narf-bpf-isa" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", ] [[package]] name = "narf-bpf-jit" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-bpf-isa", "narf-bpf-verifier", @@ -755,7 +755,7 @@ dependencies = [ [[package]] name = "narf-bpf-leds" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-bpf", "narf-bpf-isa", @@ -768,7 +768,7 @@ dependencies = [ [[package]] name = "narf-bpf-structops" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-bpf", "narf-bpf-isa", @@ -780,7 +780,7 @@ dependencies = [ [[package]] name = "narf-bpf-verifier" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-bpf-isa", "narf-kernel-test", @@ -788,7 +788,7 @@ dependencies = [ [[package]] name = "narf-bus" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-boot", @@ -804,11 +804,11 @@ dependencies = [ [[package]] name = "narf-busybox" -version = "0.0.0" +version = "0.1.0" [[package]] name = "narf-capabilities" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-kernel-test", @@ -817,7 +817,7 @@ dependencies = [ [[package]] name = "narf-compat-relibc" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", "narf-libc", @@ -825,7 +825,7 @@ dependencies = [ [[package]] name = "narf-compat-win" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-capabilities", @@ -837,14 +837,14 @@ dependencies = [ [[package]] name = "narf-compat-win-rt" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-user-runtime", ] [[package]] name = "narf-console" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-lib", @@ -853,7 +853,7 @@ dependencies = [ [[package]] name = "narf-crypto" -version = "0.0.0" +version = "0.1.0" dependencies = [ "aes", "aes-gcm", @@ -875,7 +875,7 @@ dependencies = [ [[package]] name = "narf-driver-runtime" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-bus", "narf-capabilities", @@ -886,7 +886,7 @@ dependencies = [ [[package]] name = "narf-drivers" -version = "0.0.0" +version = "0.1.0" dependencies = [ "async-trait", "narf-arch", @@ -902,7 +902,7 @@ dependencies = [ [[package]] name = "narf-drivers-backlight" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-aml", "narf-capabilities", @@ -921,7 +921,7 @@ dependencies = [ [[package]] name = "narf-drivers-crypto" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", "narf-lib", @@ -929,7 +929,7 @@ dependencies = [ [[package]] name = "narf-drivers-extcon" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-capabilities", "narf-filesystem", @@ -940,7 +940,7 @@ dependencies = [ [[package]] name = "narf-drivers-fingerprint" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-console", "narf-init", @@ -950,7 +950,7 @@ dependencies = [ [[package]] name = "narf-drivers-fs-9p" -version = "0.0.0" +version = "0.1.0" dependencies = [ "async-trait", "narf-arch", @@ -967,7 +967,7 @@ dependencies = [ [[package]] name = "narf-drivers-fs-btrfs" -version = "0.0.0" +version = "0.1.0" dependencies = [ "blake2", "miniz_oxide", @@ -987,7 +987,7 @@ dependencies = [ [[package]] name = "narf-drivers-fs-exfat" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-block", @@ -1003,7 +1003,7 @@ dependencies = [ [[package]] name = "narf-drivers-fs-ext2" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-block", @@ -1022,7 +1022,7 @@ dependencies = [ [[package]] name = "narf-drivers-fs-ext4" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-block", @@ -1042,7 +1042,7 @@ dependencies = [ [[package]] name = "narf-drivers-fs-fat" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-block", @@ -1060,7 +1060,7 @@ dependencies = [ [[package]] name = "narf-drivers-fs-iso9660" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-block", @@ -1076,7 +1076,7 @@ dependencies = [ [[package]] name = "narf-drivers-fs-minix" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-block", @@ -1092,7 +1092,7 @@ dependencies = [ [[package]] name = "narf-drivers-fs-squashfs" -version = "0.0.0" +version = "0.1.0" dependencies = [ "miniz_oxide", "narf-block", @@ -1109,7 +1109,7 @@ dependencies = [ [[package]] name = "narf-drivers-fs-udf" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-block", @@ -1125,7 +1125,7 @@ dependencies = [ [[package]] name = "narf-drivers-gpio" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-acpi", "narf-aml", @@ -1140,7 +1140,7 @@ dependencies = [ [[package]] name = "narf-drivers-gpu" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-bus", @@ -1168,7 +1168,7 @@ dependencies = [ [[package]] name = "narf-drivers-hwmon" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-aml", "narf-arch", @@ -1184,7 +1184,7 @@ dependencies = [ [[package]] name = "narf-drivers-i2c" -version = "0.0.0" +version = "0.1.0" dependencies = [ "async-trait", "narf-acpi", @@ -1219,7 +1219,7 @@ dependencies = [ [[package]] name = "narf-drivers-leds" -version = "0.0.0" +version = "0.1.0" dependencies = [ "async-trait", "narf-drivers-gpio", @@ -1234,7 +1234,7 @@ dependencies = [ [[package]] name = "narf-drivers-media" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-bus", "narf-console", @@ -1245,7 +1245,7 @@ dependencies = [ [[package]] name = "narf-drivers-net" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-acpi", "narf-aml", @@ -1270,7 +1270,7 @@ dependencies = [ [[package]] name = "narf-drivers-nfc" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-console", "narf-init", @@ -1280,7 +1280,7 @@ dependencies = [ [[package]] name = "narf-drivers-nvidia" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-bus", "narf-capabilities", @@ -1297,7 +1297,7 @@ dependencies = [ [[package]] name = "narf-drivers-nvme" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-block", @@ -1317,7 +1317,7 @@ dependencies = [ [[package]] name = "narf-drivers-platform" -version = "0.0.0" +version = "0.1.0" dependencies = [ "async-trait", "narf-acpi", @@ -1344,7 +1344,7 @@ dependencies = [ [[package]] name = "narf-drivers-psp" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", "narf-lib", @@ -1352,7 +1352,7 @@ dependencies = [ [[package]] name = "narf-drivers-sdio" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-bus", "narf-capabilities", @@ -1369,7 +1369,7 @@ dependencies = [ [[package]] name = "narf-drivers-serial" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-acpi", "narf-aml", @@ -1385,7 +1385,7 @@ dependencies = [ [[package]] name = "narf-drivers-sound" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-bus", @@ -1404,7 +1404,7 @@ dependencies = [ [[package]] name = "narf-drivers-spi" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-acpi", "narf-aml", @@ -1420,7 +1420,7 @@ dependencies = [ [[package]] name = "narf-drivers-storage" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-acpi", "narf-aml", @@ -1442,7 +1442,7 @@ dependencies = [ [[package]] name = "narf-drivers-thunderbolt" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-bus", "narf-capabilities", @@ -1456,7 +1456,7 @@ dependencies = [ [[package]] name = "narf-drivers-tpm" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-block", "narf-filesystem", @@ -1466,7 +1466,7 @@ dependencies = [ [[package]] name = "narf-drivers-usb" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-acpi", "narf-aml", @@ -1494,7 +1494,7 @@ dependencies = [ [[package]] name = "narf-drivers-usbpd" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-capabilities", "narf-console", @@ -1509,7 +1509,7 @@ dependencies = [ [[package]] name = "narf-drivers-video" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-bus", "narf-capabilities", @@ -1526,7 +1526,7 @@ dependencies = [ [[package]] name = "narf-drivers-virtio" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-block", @@ -1549,7 +1549,7 @@ dependencies = [ [[package]] name = "narf-drivers-wireless" -version = "0.0.0" +version = "0.1.0" dependencies = [ "async-trait", "narf-bus", @@ -1576,7 +1576,7 @@ dependencies = [ [[package]] name = "narf-drivers-wwan" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", "narf-lib", @@ -1584,21 +1584,21 @@ dependencies = [ [[package]] name = "narf-edid" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", ] [[package]] name = "narf-efi" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", ] [[package]] name = "narf-event-bus" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-capabilities", "narf-kernel-test", @@ -1608,7 +1608,7 @@ dependencies = [ [[package]] name = "narf-fb" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-aml", "narf-arch", @@ -1638,7 +1638,7 @@ dependencies = [ [[package]] name = "narf-filesystem" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-block", @@ -1660,7 +1660,7 @@ dependencies = [ [[package]] name = "narf-firmware" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-capabilities", "narf-crypto", @@ -1676,7 +1676,7 @@ dependencies = [ [[package]] name = "narf-firmware-fdt" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", "narf-lib", @@ -1684,7 +1684,7 @@ dependencies = [ [[package]] name = "narf-firmware-fw-cfg" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-init", @@ -1694,7 +1694,7 @@ dependencies = [ [[package]] name = "narf-firmware-smbios" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", "narf-lib", @@ -1703,7 +1703,7 @@ dependencies = [ [[package]] name = "narf-frame" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-accel", "narf-acpi", @@ -1796,7 +1796,7 @@ dependencies = [ [[package]] name = "narf-graphics" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-drivers", "narf-kernel-test", @@ -1805,7 +1805,7 @@ dependencies = [ [[package]] name = "narf-graphics-driver" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-bus", "narf-capabilities", @@ -1818,7 +1818,7 @@ dependencies = [ [[package]] name = "narf-hid" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", ] @@ -1839,7 +1839,7 @@ dependencies = [ [[package]] name = "narf-init" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", "narf-lib", @@ -1849,7 +1849,7 @@ dependencies = [ [[package]] name = "narf-initramfs" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-boot", "narf-capabilities", @@ -1861,7 +1861,7 @@ dependencies = [ [[package]] name = "narf-input" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-drivers", "narf-init", @@ -1873,7 +1873,7 @@ dependencies = [ [[package]] name = "narf-input-driver" -version = "0.0.0" +version = "0.1.0" dependencies = [ "async-trait", "narf-acpi", @@ -1897,7 +1897,7 @@ dependencies = [ [[package]] name = "narf-interrupts" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-acpi", "narf-arch", @@ -1911,7 +1911,7 @@ dependencies = [ [[package]] name = "narf-io" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-acpi", "narf-capabilities", @@ -1922,7 +1922,7 @@ dependencies = [ [[package]] name = "narf-ipc" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-capabilities", @@ -1935,29 +1935,29 @@ dependencies = [ [[package]] name = "narf-kernel-test" -version = "0.0.0" +version = "0.1.0" [[package]] name = "narf-lib" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", ] [[package]] name = "narf-libc" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-user-runtime", ] [[package]] name = "narf-linux-perf-uapi" -version = "0.0.0" +version = "0.1.0" [[package]] name = "narf-memory" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-capabilities", @@ -1967,7 +1967,7 @@ dependencies = [ [[package]] name = "narf-modules" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-capabilities", "narf-filesystem", @@ -1977,7 +1977,7 @@ dependencies = [ [[package]] name = "narf-net" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-capabilities", "narf-io", @@ -1989,7 +1989,7 @@ dependencies = [ [[package]] name = "narf-observability" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-capabilities", @@ -2001,14 +2001,14 @@ dependencies = [ [[package]] name = "narf-pinctrl" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", ] [[package]] name = "narf-pmbus" -version = "0.0.0" +version = "0.1.0" dependencies = [ "async-trait", "narf-capabilities", @@ -2019,7 +2019,7 @@ dependencies = [ [[package]] name = "narf-power" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-abi", "narf-acpi", @@ -2040,7 +2040,7 @@ dependencies = [ [[package]] name = "narf-pwm" -version = "0.0.0" +version = "0.1.0" dependencies = [ "async-trait", "narf-capabilities", @@ -2051,7 +2051,7 @@ dependencies = [ [[package]] name = "narf-rcu" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-capabilities", @@ -2062,7 +2062,7 @@ dependencies = [ [[package]] name = "narf-scheduler" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-acpi", "narf-arch", @@ -2076,7 +2076,7 @@ dependencies = [ [[package]] name = "narf-scmi" -version = "0.0.0" +version = "0.1.0" dependencies = [ "async-trait", "narf-capabilities", @@ -2087,7 +2087,7 @@ dependencies = [ [[package]] name = "narf-security" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-kernel-test", "narf-lib", @@ -2095,7 +2095,7 @@ dependencies = [ [[package]] name = "narf-shmem" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-capabilities", "narf-init", @@ -2108,7 +2108,7 @@ dependencies = [ [[package]] name = "narf-spdm" -version = "0.0.0" +version = "0.1.0" dependencies = [ "async-trait", "narf-capabilities", @@ -2120,11 +2120,11 @@ dependencies = [ [[package]] name = "narf-test-module" -version = "0.0.0" +version = "0.1.0" [[package]] name = "narf-time" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-capabilities", @@ -2148,7 +2148,7 @@ dependencies = [ [[package]] name = "narf-tracing" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-arch", "narf-capabilities", @@ -2159,7 +2159,7 @@ dependencies = [ [[package]] name = "narf-usbpd" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-capabilities", "narf-kernel-test", @@ -2168,11 +2168,11 @@ dependencies = [ [[package]] name = "narf-user-runtime" -version = "0.0.0" +version = "0.1.0" [[package]] name = "narf-userspace" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-abi", "narf-arch", @@ -2203,7 +2203,7 @@ dependencies = [ [[package]] name = "narf-verification" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-abi", "narf-accel", @@ -2576,7 +2576,7 @@ checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "xtask" -version = "0.0.0" +version = "0.1.0" dependencies = [ "anyhow", "clap", diff --git a/Cargo.toml b/Cargo.toml index ed37ab888..0f407f7c7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -140,7 +140,7 @@ exclude = [ ] [workspace.package] -version = "0.0.0" +version = "0.1.0" edition = "2021" rust-version = "1.85" # align with 2025-09-14 nightly license = "GPL-2.0-or-later" diff --git a/README.md b/README.md index 158cc7eaa..25549dbab 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ require a Rust toolchain. Download the package for your distribution from a NARF release, then install it with the distribution's package manager: ```sh -VERSION=0.5.0 +VERSION=0.1.0 # Debian or Ubuntu sudo apt install "./narf-kernel_${VERSION}_amd64.deb" @@ -119,13 +119,13 @@ distribution kernel installed and configured as the default until you have validated NARF on the machine. To build and install a native package from a NARF checkout, install the optional -Cargo frontend and let it detect the host package manager: +Cargo frontend from crates.io and let it detect the host package manager: ```sh -cargo install --path build/cargo-narf +cargo install cargo-narf cargo narf detect -cargo narf install --version 0.5.0 --dry-run -cargo narf install --version 0.5.0 +cargo narf install --version 0.1.0 --dry-run +cargo narf install --version 0.1.0 ``` `cargo narf install` builds a native package and delegates installation to @@ -138,6 +138,28 @@ aarch64 installation, systemd-boot/kernel-install, and Secure Boot are not yet supported. See [packaging/README.md](packaging/README.md) for package creation, Gentoo setup, removal commands, artifact contents, and current limitations. +### Custom kernels and out-of-tree components + +NARF publishes its reusable kernel, subsystem, driver, compatibility, and test +crates to crates.io under one synchronized version. A custom workspace can use +only the components it needs while Cargo resolves the rest of the compatible +NARF graph from the same release: + +```toml +[dependencies] +narf-lib = "0.1.0" +narf-capabilities = "0.1.0" +narf-drivers = "0.1.0" +narf-filesystem = "0.1.0" +``` + +Use one NARF version throughout a custom kernel; mixing release lines is not a +supported ABI. The `narf-frame` package is the default kernel assembly, while +the interfaces for custom drivers, filesystems, and other policy components +are indexed in [docs/extending/README.md](docs/extending/README.md). The pinned +nightly toolchain and bare-metal target configuration remain necessary when +linking a bootable kernel. + --- ## Quick start diff --git a/abi/Cargo.toml b/abi/Cargo.toml index 1aebb97d1..ecd919366 100644 --- a/abi/Cargo.toml +++ b/abi/Cargo.toml @@ -12,13 +12,13 @@ name = "narf_abi" path = "src/lib.rs" [dependencies] -narf-capabilities = { path = "../capabilities" } -narf-ipc = { path = "../ipc" } -narf-lib = { path = "../lib" } -narf-scheduler = { path = "../scheduler" } -narf-rcu = { path = "../rcu" } -narf-tracing = { path = "../tracing" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-ipc = { path = "../ipc", version = "0.1.0" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-rcu = { path = "../rcu", version = "0.1.0" } +narf-tracing = { path = "../tracing", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/accel/Cargo.toml b/accel/Cargo.toml index 436525113..a2770b685 100644 --- a/accel/Cargo.toml +++ b/accel/Cargo.toml @@ -1,18 +1,22 @@ [package] name = "narf-accel" -version = "0.1.0" -edition = "2021" +description = "Accelerator device and queue abstractions for NARF." +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +repository.workspace = true [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-ipc = { path = "../ipc" } -narf-io = { path = "../io" } -narf-net = { path = "../net" } -narf-scheduler = { path = "../scheduler" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-ipc = { path = "../ipc", version = "0.1.0" } +narf-io = { path = "../io", version = "0.1.0" } +narf-net = { path = "../net", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } async-trait = "0.1" futures = { version = "0.3", default-features = false } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } bitflags = "2.4" [features] diff --git a/acpi/Cargo.toml b/acpi/Cargo.toml index 4907979ee..a486cf0f7 100644 --- a/acpi/Cargo.toml +++ b/acpi/Cargo.toml @@ -12,10 +12,10 @@ name = "narf_acpi" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-memory = { path = "../memory" } -narf-arch = { path = "../arch" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/aml/Cargo.toml b/aml/Cargo.toml index 1b8118dd0..0e1453d6f 100644 --- a/aml/Cargo.toml +++ b/aml/Cargo.toml @@ -12,15 +12,15 @@ name = "narf_aml" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-console = { path = "../console" } -narf-acpi = { path = "../acpi" } -narf-memory = { path = "../memory" } -narf-time = { path = "../time" } -narf-scheduler = { path = "../scheduler" } -narf-capabilities = { path = "../capabilities" } -narf-event-bus = { path = "../event_bus" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-console = { path = "../console", version = "0.1.0" } +narf-acpi = { path = "../acpi", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-event-bus = { path = "../event_bus", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/arch/Cargo.toml b/arch/Cargo.toml index 7bfe2a0e4..321f9b6ab 100644 --- a/arch/Cargo.toml +++ b/arch/Cargo.toml @@ -12,8 +12,8 @@ name = "narf_arch" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/audio/Cargo.toml b/audio/Cargo.toml index a80dd2210..56f26cf87 100644 --- a/audio/Cargo.toml +++ b/audio/Cargo.toml @@ -12,24 +12,24 @@ name = "narf_audio" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-firmware = { path = "../firmware" } -narf-init = { path = "../init" } -narf-memory = { path = "../memory" } -narf-userspace = { path = "../userspace" } -narf-drivers-virtio = { path = "../drivers/virtio" } -narf-shmem = { path = "../shmem" } -narf-arch = { path = "../arch" } -narf-bus = { path = "../bus" } -narf-io = { path = "../io" } -narf-drivers = { path = "../drivers" } -narf-interrupts = { path = "../interrupts" } -narf-acpi = { path = "../acpi" } -narf-aml = { path = "../aml" } -narf-scheduler = { path = "../scheduler" } -narf-time = { path = "../time" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-firmware = { path = "../firmware", version = "0.1.0" } +narf-init = { path = "../init", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-userspace = { path = "../userspace", version = "0.1.0" } +narf-drivers-virtio = { path = "../drivers/virtio", version = "0.1.0" } +narf-shmem = { path = "../shmem", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-bus = { path = "../bus", version = "0.1.0" } +narf-io = { path = "../io", version = "0.1.0" } +narf-drivers = { path = "../drivers", version = "0.1.0" } +narf-interrupts = { path = "../interrupts", version = "0.1.0" } +narf-acpi = { path = "../acpi", version = "0.1.0" } +narf-aml = { path = "../aml", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/block/Cargo.toml b/block/Cargo.toml index b9cd1e0b4..5321d533a 100644 --- a/block/Cargo.toml +++ b/block/Cargo.toml @@ -4,21 +4,22 @@ version.workspace = true edition.workspace = true rust-version.workspace = true license.workspace = true +repository.workspace = true description = "NARF block device abstraction" [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-io = { path = "../io" } -narf-memory = { path = "../memory" } -narf-ipc = { path = "../ipc" } -narf-time = { path = "../time" } -narf-tracing = { path = "../tracing" } -narf-crypto = { path = "../crypto" } -narf-tpm = { path = "../tpm" } -narf-scheduler = { path = "../scheduler" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-io = { path = "../io", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-ipc = { path = "../ipc", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-tracing = { path = "../tracing", version = "0.1.0" } +narf-crypto = { path = "../crypto", version = "0.1.0" } +narf-tpm = { path = "../tpm", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } async-trait = "0.1" -narf-kernel-test = { path = "../verification/kernel-test" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] # cgroup-v2 io controller seam: exposes a hook the cgroupfs `io` diff --git a/bluetooth/Cargo.toml b/bluetooth/Cargo.toml index d3764737a..bb77e5c91 100644 --- a/bluetooth/Cargo.toml +++ b/bluetooth/Cargo.toml @@ -12,14 +12,14 @@ name = "narf_bluetooth" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-filesystem = { path = "../filesystem" } -narf-scheduler = { path = "../scheduler" } -narf-time = { path = "../time" } -narf-init = { path = "../init" } -narf-audio = { path = "../audio" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-filesystem = { path = "../filesystem", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-init = { path = "../init", version = "0.1.0" } +narf-audio = { path = "../audio", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] linux-compat = ["narf-filesystem/linux-compat"] diff --git a/boot/Cargo.toml b/boot/Cargo.toml index c1f474784..df135ce45 100644 --- a/boot/Cargo.toml +++ b/boot/Cargo.toml @@ -12,10 +12,10 @@ name = "narf_boot" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-memory = { path = "../memory" } -narf-firmware-fdt = { path = "../firmware/fdt" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-firmware-fdt = { path = "../firmware/fdt", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/bpf-idle/Cargo.toml b/bpf-idle/Cargo.toml index 46bd9a317..2b45198ac 100644 --- a/bpf-idle/Cargo.toml +++ b/bpf-idle/Cargo.toml @@ -12,18 +12,18 @@ name = "narf_bpf_idle" path = "src/lib.rs" [dependencies] -narf-capabilities = { path = "../capabilities" } -narf-bpf-structops = { path = "../bpf/structops" } -narf-power = { path = "../power" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-bpf-structops = { path = "../bpf/structops", version = "0.1.0" } +narf-power = { path = "../power", version = "0.1.0" } # Test-only. The non-test surface names only `ProgSet` (from narf-bpf-structops) # and the power types, so the BPF runtime itself is pulled in only by the smokes # that assemble and load the programs they bind. -narf-lib = { path = "../lib", optional = true } -narf-bpf = { path = "../bpf", optional = true } -narf-bpf-isa = { path = "../bpf/isa", optional = true } -narf-bpf-verifier = { path = "../bpf/verifier", optional = true } -narf-kernel-test = { path = "../verification/kernel-test", optional = true } +narf-lib = { path = "../lib", version = "0.1.0", optional = true } +narf-bpf = { path = "../bpf", version = "0.1.0", optional = true } +narf-bpf-isa = { path = "../bpf/isa", version = "0.1.0", optional = true } +narf-bpf-verifier = { path = "../bpf/verifier", version = "0.1.0", optional = true } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0", optional = true } [features] # In-kernel smokes, registered through `narf-kernel-test` into `narf.tests`. diff --git a/bpf-leds/Cargo.toml b/bpf-leds/Cargo.toml index bca300b8b..9feecd22a 100644 --- a/bpf-leds/Cargo.toml +++ b/bpf-leds/Cargo.toml @@ -12,15 +12,15 @@ name = "narf_bpf_leds" path = "src/lib.rs" [dependencies] -narf-bpf = { path = "../bpf" } -narf-drivers-leds = { path = "../drivers/leds" } -narf-init = { path = "../init" } +narf-bpf = { path = "../bpf", version = "0.1.0" } +narf-drivers-leds = { path = "../drivers/leds", version = "0.1.0" } +narf-init = { path = "../init", version = "0.1.0" } # Test-only: the smokes assemble and load a program that calls the kfunc. -narf-lib = { path = "../lib", optional = true } -narf-bpf-isa = { path = "../bpf/isa", optional = true } -narf-bpf-verifier = { path = "../bpf/verifier", optional = true } -narf-kernel-test = { path = "../verification/kernel-test", optional = true } +narf-lib = { path = "../lib", version = "0.1.0", optional = true } +narf-bpf-isa = { path = "../bpf/isa", version = "0.1.0", optional = true } +narf-bpf-verifier = { path = "../bpf/verifier", version = "0.1.0", optional = true } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0", optional = true } [features] kernel-test = [ diff --git a/bpf/Cargo.toml b/bpf/Cargo.toml index 6052a3382..85c317809 100644 --- a/bpf/Cargo.toml +++ b/bpf/Cargo.toml @@ -44,24 +44,24 @@ bench = ["dep:narf-bpf-bench"] cgroup = ["narf-memory/cgroup"] [dependencies] -narf-bpf-isa = { path = "isa" } -narf-bpf-verifier = { path = "verifier" } -narf-bpf-jit = { path = "jit" } -narf-lib = { path = "../lib" } -narf-memory = { path = "../memory" } -narf-rcu = { path = "../rcu" } -narf-arch = { path = "../arch" } -narf-capabilities = { path = "../capabilities" } -narf-crypto = { path = "../crypto" } -narf-filesystem = { path = "../filesystem" } -narf-net = { path = "../net" } -narf-tracing = { path = "../tracing" } -narf-init = { path = "../init" } -narf-time = { path = "../time" } -narf-kernel-test = { path = "../verification/kernel-test", optional = true } -narf-boot = { path = "../boot", optional = true } -narf-console = { path = "../console", optional = true } -narf-bpf-bench = { path = "bench", optional = true } +narf-bpf-isa = { path = "isa", version = "0.1.0" } +narf-bpf-verifier = { path = "verifier", version = "0.1.0" } +narf-bpf-jit = { path = "jit", version = "0.1.0" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-rcu = { path = "../rcu", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-crypto = { path = "../crypto", version = "0.1.0" } +narf-filesystem = { path = "../filesystem", version = "0.1.0" } +narf-net = { path = "../net", version = "0.1.0" } +narf-tracing = { path = "../tracing", version = "0.1.0" } +narf-init = { path = "../init", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0", optional = true } +narf-boot = { path = "../boot", version = "0.1.0", optional = true } +narf-console = { path = "../console", version = "0.1.0", optional = true } +narf-bpf-bench = { path = "bench", version = "0.1.0", optional = true } [lints] workspace = true diff --git a/bpf/bench/Cargo.toml b/bpf/bench/Cargo.toml index 5f7e351c4..37d4dea99 100644 --- a/bpf/bench/Cargo.toml +++ b/bpf/bench/Cargo.toml @@ -16,11 +16,11 @@ path = "src/lib.rs" # dependency went the other way the two would cycle, and the harness would # stop being reusable by any other subsystem that wants §8-shaped samples. [dependencies] -narf-lib = { path = "../../lib" } -narf-time = { path = "../../time" } -narf-console = { path = "../../console" } -narf-init = { path = "../../init" } -narf-boot = { path = "../../boot" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-boot = { path = "../../boot", version = "0.1.0" } [lints] workspace = true diff --git a/bpf/isa/Cargo.toml b/bpf/isa/Cargo.toml index 42a13e376..59db64dcd 100644 --- a/bpf/isa/Cargo.toml +++ b/bpf/isa/Cargo.toml @@ -17,7 +17,7 @@ default = [] kernel-test = ["dep:narf-kernel-test"] [dependencies] -narf-kernel-test = { path = "../../verification/kernel-test", optional = true } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0", optional = true } [lints] workspace = true diff --git a/bpf/jit/Cargo.toml b/bpf/jit/Cargo.toml index 564b6f2a2..642a66cf7 100644 --- a/bpf/jit/Cargo.toml +++ b/bpf/jit/Cargo.toml @@ -15,9 +15,9 @@ default = [] kernel-test = ["dep:narf-kernel-test"] [dependencies] -narf-bpf-isa = { path = "../isa" } -narf-bpf-verifier = { path = "../verifier" } -narf-kernel-test = { path = "../../verification/kernel-test", optional = true } +narf-bpf-isa = { path = "../isa", version = "0.1.0" } +narf-bpf-verifier = { path = "../verifier", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0", optional = true } [lints] workspace = true diff --git a/bpf/structops/Cargo.toml b/bpf/structops/Cargo.toml index 8e9128aa1..c8eb50b44 100644 --- a/bpf/structops/Cargo.toml +++ b/bpf/structops/Cargo.toml @@ -12,12 +12,12 @@ name = "narf_bpf_structops" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-capabilities = { path = "../../capabilities" } -narf-bpf = { path = ".." } -narf-bpf-verifier = { path = "../verifier" } -narf-bpf-isa = { path = "../isa", optional = true } -narf-kernel-test = { path = "../../verification/kernel-test", optional = true } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-bpf = { path = "..", version = "0.1.0" } +narf-bpf-verifier = { path = "../verifier", version = "0.1.0" } +narf-bpf-isa = { path = "../isa", version = "0.1.0", optional = true } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0", optional = true } [features] # In-kernel smokes, registered through `narf-kernel-test` into `narf.tests`. diff --git a/bpf/verifier/Cargo.toml b/bpf/verifier/Cargo.toml index 504720091..a167bd942 100644 --- a/bpf/verifier/Cargo.toml +++ b/bpf/verifier/Cargo.toml @@ -15,8 +15,8 @@ default = [] kernel-test = ["dep:narf-kernel-test"] [dependencies] -narf-bpf-isa = { path = "../isa" } -narf-kernel-test = { path = "../../verification/kernel-test", optional = true } +narf-bpf-isa = { path = "../isa", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0", optional = true } [lints] workspace = true diff --git a/build/cargo-narf/Cargo.toml b/build/cargo-narf/Cargo.toml index 728bf408c..530dd0740 100644 --- a/build/cargo-narf/Cargo.toml +++ b/build/cargo-narf/Cargo.toml @@ -6,7 +6,9 @@ edition.workspace = true rust-version.workspace = true license.workspace = true repository.workspace = true -publish = false +readme = "README.md" +keywords = ["kernel", "installer", "packaging", "cargo-subcommand"] +categories = ["command-line-utilities", "development-tools::cargo-plugins"] [[bin]] name = "cargo-narf" diff --git a/build/cargo-narf/README.md b/build/cargo-narf/README.md new file mode 100644 index 000000000..ef5940d9d --- /dev/null +++ b/build/cargo-narf/README.md @@ -0,0 +1,20 @@ +# cargo-narf + +`cargo-narf` builds NARF kernel artifacts into native Linux distribution +packages and installs them through the host package manager. It is a thin +frontend over the release tooling in the NARF source tree; it does not write +directly to `/boot`. + +```sh +cargo install cargo-narf +git clone https://github.com/hodgesds/narf.git +cd narf +cargo narf detect +cargo narf install --version 0.1.0 --dry-run +``` + +Run commands inside a NARF checkout or pass `--repo /path/to/narf`. Supported +native outputs are Debian/Ubuntu `.deb`, Fedora/RPM `.rpm`, Arch +`.pkg.tar.zst`, and generation-only Gentoo ebuilds. See the repository's +[packaging guide](https://github.com/hodgesds/narf/blob/main/packaging/README.md) +for prerequisites, package contents, removal, and bootloader limitations. diff --git a/build/specification/spec.md b/build/specification/spec.md index 07970cc1c..441bc4416 100644 --- a/build/specification/spec.md +++ b/build/specification/spec.md @@ -47,10 +47,19 @@ per arch, xtask commands (`run`, `test`, `qemu`, `image`), Global LTO config. - `packaging/build-release.sh --version X.Y.Z` — wrap the canonical Multiboot2 kernel ELF in native distribution packages and emit a checksummed release manifest. -- `cargo install --path build/cargo-narf` installs the optional source-tree - frontend. `cargo narf package` drives reproducible native package generation; +- `cargo install cargo-narf` installs the optional source-tree frontend from + crates.io. `cargo narf package` drives reproducible native package generation; `cargo narf install` delegates the resulting artifact to apt/dpkg, dnf/rpm, - or pacman rather than writing `/boot` directly. + or pacman rather than writing `/boot` directly. Both commands operate on a + NARF checkout selected by the current directory or `--repo`. +- Public workspace packages use one synchronized semantic version and carry + versioned registry fallbacks beside their in-tree path dependencies. This + lets custom kernels and out-of-tree extensions consume the same component + graph from crates.io without changing in-tree development or LTO behavior. +- `packaging/publish-crates.sh --version X.Y.Z --check` validates the complete + crates.io archive set and dependency order without uploading. `--execute` is + restricted to the matching clean, signed release tag and publishes in + dependency order; interrupted runs skip versions already present. - Kernel ELFs on both architectures carry a deterministic SHA-1 GNU build-ID; linker symbols `__build_id_note_start` and `__build_id_note_end` delimit the retained note for `/sys/kernel/notes`. @@ -202,6 +211,12 @@ formats are versioned per their respective specs: - `.narfmod`: per `drivers/spec` §5. - `narf.toml` (workspace manifest): per `drivers/spec` §6. +The crates.io SDK follows the kernel release version in lockstep. Internal +dependencies retain local `path` entries for workspace builds and specify the +same registry version for external consumers. `xtask`, validation binaries, +and boot-image-only helpers remain repository-private; all reusable +`narf-*` components and `cargo-narf` are release artifacts. + `build/` itself doesn't have an exported ABI surface — it's a build-time tool. Reproducible builds are the "ABI" guarantee: two builds of the same commit + toolchain produce diff --git a/bus/Cargo.toml b/bus/Cargo.toml index 03af6489b..aac07a74e 100644 --- a/bus/Cargo.toml +++ b/bus/Cargo.toml @@ -12,16 +12,16 @@ name = "narf_bus" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-arch = { path = "../arch" } -narf-memory = { path = "../memory" } -narf-boot = { path = "../boot" } -narf-capabilities = { path = "../capabilities" } -narf-event-bus = { path = "../event_bus" } -narf-interrupts = { path = "../interrupts" } -narf-time = { path = "../time" } -narf-scheduler = { path = "../scheduler" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-boot = { path = "../boot", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-event-bus = { path = "../event_bus", version = "0.1.0" } +narf-interrupts = { path = "../interrupts", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/capabilities/Cargo.toml b/capabilities/Cargo.toml index aaaf0db2b..0c3fa58b3 100644 --- a/capabilities/Cargo.toml +++ b/capabilities/Cargo.toml @@ -12,9 +12,9 @@ name = "narf_capabilities" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-arch = { path = "../arch" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } # Workspace-internal: once Wave 3 RCU-backs the object table, narf-rcu # moves here. Wave 2 uses an IrqSafeSpinLock over a Vec, which is diff --git a/compat/linux-perf-uapi/Cargo.toml b/compat/linux-perf-uapi/Cargo.toml index f0875cd7a..ef4b7c14c 100644 --- a/compat/linux-perf-uapi/Cargo.toml +++ b/compat/linux-perf-uapi/Cargo.toml @@ -1,5 +1,6 @@ [package] name = "narf-linux-perf-uapi" +description = "Linux perf_event UAPI constants and structures used by NARF compatibility code." version.workspace = true edition.workspace = true rust-version.workspace = true diff --git a/compat/relibc/Cargo.toml b/compat/relibc/Cargo.toml index 083b50301..244406689 100644 --- a/compat/relibc/Cargo.toml +++ b/compat/relibc/Cargo.toml @@ -12,8 +12,8 @@ name = "narf_compat_relibc" path = "src/lib.rs" [dependencies] -narf-libc = { path = "../../narf-libc" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-libc = { path = "../../narf-libc", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/compat/win-rt/Cargo.toml b/compat/win-rt/Cargo.toml index 758479e3f..79dc4b578 100644 --- a/compat/win-rt/Cargo.toml +++ b/compat/win-rt/Cargo.toml @@ -12,7 +12,7 @@ name = "narf_compat_win_rt" path = "src/lib.rs" [dependencies] -narf-user-runtime = { path = "../../user-runtime" } +narf-user-runtime = { path = "../../user-runtime", version = "0.1.0" } [lints] workspace = true diff --git a/compat/win/Cargo.toml b/compat/win/Cargo.toml index 06890f984..cddaf43ca 100644 --- a/compat/win/Cargo.toml +++ b/compat/win/Cargo.toml @@ -12,12 +12,12 @@ name = "narf_compat_win" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-capabilities = { path = "../../capabilities" } -narf-userspace = { path = "../../userspace" } -narf-memory = { path = "../../memory" } -narf-console = { path = "../../console" } -narf-arch = { path = "../../arch" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-userspace = { path = "../../userspace", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } [lints] workspace = true diff --git a/console/Cargo.toml b/console/Cargo.toml index 1be151f46..47cde8b80 100644 --- a/console/Cargo.toml +++ b/console/Cargo.toml @@ -12,9 +12,9 @@ name = "narf_console" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-arch = { path = "../arch" } -narf-memory = { path = "../memory" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } [lints] workspace = true diff --git a/crypto/Cargo.toml b/crypto/Cargo.toml index cd54882c1..b66e669b3 100644 --- a/crypto/Cargo.toml +++ b/crypto/Cargo.toml @@ -12,11 +12,11 @@ name = "narf_crypto" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-ipc = { path = "../ipc" } -narf-time = { path = "../time" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-ipc = { path = "../ipc", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } # RustCrypto primitives. Default features disabled to keep no_std clean — # every feature pull is explicit. See spec/specification/spec.md §3 for diff --git a/drivers/Cargo.toml b/drivers/Cargo.toml index afdcfa477..927748128 100644 --- a/drivers/Cargo.toml +++ b/drivers/Cargo.toml @@ -12,15 +12,15 @@ name = "narf_drivers" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-tpm = { path = "../tpm" } -narf-memory = { path = "../memory" } -narf-arch = { path = "../arch" } -narf-interrupts = { path = "../interrupts" } -narf-io = { path = "../io" } -narf-scheduler = { path = "../scheduler" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-tpm = { path = "../tpm", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-interrupts = { path = "../interrupts", version = "0.1.0" } +narf-io = { path = "../io", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } async-trait = "0.1" [lints] diff --git a/drivers/backlight/Cargo.toml b/drivers/backlight/Cargo.toml index 575bfdd1a..2751be81d 100644 --- a/drivers/backlight/Cargo.toml +++ b/drivers/backlight/Cargo.toml @@ -12,19 +12,19 @@ name = "narf_drivers_backlight" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-capabilities = { path = "../../capabilities" } -narf-kernel-test = { path = "../../verification/kernel-test" } -narf-aml = { path = "../../aml" } -narf-input = { path = "../../input" } -narf-console = { path = "../../console" } -narf-init = { path = "../../init" } -narf-scheduler = { path = "../../scheduler" } -narf-time = { path = "../../time" } -narf-drivers-leds = { path = "../leds" } -narf-filesystem = { path = "../../filesystem" } -narf-driver-runtime = { path = "../runtime", default-features = false, features = ["kernel"] } -narf-memory = { path = "../../memory" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } +narf-aml = { path = "../../aml", version = "0.1.0" } +narf-input = { path = "../../input", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } +narf-drivers-leds = { path = "../leds", version = "0.1.0" } +narf-filesystem = { path = "../../filesystem", version = "0.1.0" } +narf-driver-runtime = { path = "../runtime", version = "0.1.0", default-features = false, features = ["kernel"] } +narf-memory = { path = "../../memory", version = "0.1.0" } [features] linux-compat = ["narf-filesystem/linux-compat"] diff --git a/drivers/crypto/Cargo.toml b/drivers/crypto/Cargo.toml index 2dc743b44..07b92cb8d 100644 --- a/drivers/crypto/Cargo.toml +++ b/drivers/crypto/Cargo.toml @@ -12,8 +12,8 @@ name = "narf_drivers_crypto" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/extcon/Cargo.toml b/drivers/extcon/Cargo.toml index b02908eff..1f639a11f 100644 --- a/drivers/extcon/Cargo.toml +++ b/drivers/extcon/Cargo.toml @@ -12,11 +12,11 @@ name = "narf_drivers_extcon" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-usbpd = { path = "../../usbpd" } -narf-capabilities = { path = "../../capabilities" } -narf-filesystem = { path = "../../filesystem" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-usbpd = { path = "../../usbpd", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-filesystem = { path = "../../filesystem", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [features] linux-compat = ["narf-filesystem/linux-compat"] diff --git a/drivers/fingerprint/Cargo.toml b/drivers/fingerprint/Cargo.toml index 92821053c..a377ef7d0 100644 --- a/drivers/fingerprint/Cargo.toml +++ b/drivers/fingerprint/Cargo.toml @@ -12,10 +12,10 @@ name = "narf_drivers_fingerprint" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-console = { path = "../../console" } -narf-init = { path = "../../init" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/drivers/fs/9p/Cargo.toml b/drivers/fs/9p/Cargo.toml index 36c08c6c3..9876a707f 100644 --- a/drivers/fs/9p/Cargo.toml +++ b/drivers/fs/9p/Cargo.toml @@ -12,16 +12,16 @@ name = "narf_drivers_fs_9p" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../../lib" } -narf-arch = { path = "../../../arch" } -narf-drivers = { path = "../../" } -narf-driver-runtime = { path = "../../runtime" } -narf-capabilities = { path = "../../../capabilities" } -narf-memory = { path = "../../../memory" } -narf-block = { path = "../../../block" } -narf-filesystem = { path = "../../../filesystem" } -narf-io = { path = "../../../io" } -narf-kernel-test = { path = "../../../verification/kernel-test" } +narf-lib = { path = "../../../lib", version = "0.1.0" } +narf-arch = { path = "../../../arch", version = "0.1.0" } +narf-drivers = { path = "../../", version = "0.1.0" } +narf-driver-runtime = { path = "../../runtime", version = "0.1.0" } +narf-capabilities = { path = "../../../capabilities", version = "0.1.0" } +narf-memory = { path = "../../../memory", version = "0.1.0" } +narf-block = { path = "../../../block", version = "0.1.0" } +narf-filesystem = { path = "../../../filesystem", version = "0.1.0" } +narf-io = { path = "../../../io", version = "0.1.0" } +narf-kernel-test = { path = "../../../verification/kernel-test", version = "0.1.0" } async-trait = "0.1" [lints] diff --git a/drivers/fs/btrfs/Cargo.toml b/drivers/fs/btrfs/Cargo.toml index 04755b055..ffdb5c650 100644 --- a/drivers/fs/btrfs/Cargo.toml +++ b/drivers/fs/btrfs/Cargo.toml @@ -16,16 +16,16 @@ blake2 = { version = "0.10", default-features = false } miniz_oxide = { version = "0.8", default-features = false, features = ["with-alloc"] } ruzstd = { version = "0.8", default-features = false } sha2 = { version = "0.10", default-features = false } -narf-block = { path = "../../../block" } -narf-capabilities = { path = "../../../capabilities" } -narf-driver-runtime = { path = "../../runtime" } -narf-filesystem = { path = "../../../filesystem" } -narf-init = { path = "../../../init" } -narf-io = { path = "../../../io" } -narf-kernel-test = { path = "../../../verification/kernel-test", optional = true } -narf-lib = { path = "../../../lib" } -narf-memory = { path = "../../../memory" } -narf-scheduler = { path = "../../../scheduler" } +narf-block = { path = "../../../block", version = "0.1.0" } +narf-capabilities = { path = "../../../capabilities", version = "0.1.0" } +narf-driver-runtime = { path = "../../runtime", version = "0.1.0" } +narf-filesystem = { path = "../../../filesystem", version = "0.1.0" } +narf-init = { path = "../../../init", version = "0.1.0" } +narf-io = { path = "../../../io", version = "0.1.0" } +narf-kernel-test = { path = "../../../verification/kernel-test", version = "0.1.0", optional = true } +narf-lib = { path = "../../../lib", version = "0.1.0" } +narf-memory = { path = "../../../memory", version = "0.1.0" } +narf-scheduler = { path = "../../../scheduler", version = "0.1.0" } [features] kernel-test = ["dep:narf-kernel-test"] diff --git a/drivers/fs/exfat/Cargo.toml b/drivers/fs/exfat/Cargo.toml index 4a166a596..837771409 100644 --- a/drivers/fs/exfat/Cargo.toml +++ b/drivers/fs/exfat/Cargo.toml @@ -12,16 +12,16 @@ name = "narf_drivers_fs_exfat" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../../lib" } -narf-arch = { path = "../../../arch" } -narf-drivers = { path = "../../" } -narf-driver-runtime = { path = "../../runtime" } -narf-capabilities = { path = "../../../capabilities" } -narf-memory = { path = "../../../memory" } -narf-block = { path = "../../../block" } -narf-filesystem = { path = "../../../filesystem" } -narf-io = { path = "../../../io" } -narf-kernel-test = { path = "../../../verification/kernel-test" } +narf-lib = { path = "../../../lib", version = "0.1.0" } +narf-arch = { path = "../../../arch", version = "0.1.0" } +narf-drivers = { path = "../../", version = "0.1.0" } +narf-driver-runtime = { path = "../../runtime", version = "0.1.0" } +narf-capabilities = { path = "../../../capabilities", version = "0.1.0" } +narf-memory = { path = "../../../memory", version = "0.1.0" } +narf-block = { path = "../../../block", version = "0.1.0" } +narf-filesystem = { path = "../../../filesystem", version = "0.1.0" } +narf-io = { path = "../../../io", version = "0.1.0" } +narf-kernel-test = { path = "../../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/fs/ext2/Cargo.toml b/drivers/fs/ext2/Cargo.toml index a45f47ee9..e347883eb 100644 --- a/drivers/fs/ext2/Cargo.toml +++ b/drivers/fs/ext2/Cargo.toml @@ -12,19 +12,19 @@ name = "narf_drivers_fs_ext2" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../../lib" } -narf-arch = { path = "../../../arch" } -narf-drivers = { path = "../../" } -narf-driver-runtime = { path = "../../runtime" } -narf-capabilities = { path = "../../../capabilities" } -narf-memory = { path = "../../../memory" } -narf-block = { path = "../../../block" } -narf-filesystem = { path = "../../../filesystem" } -narf-io = { path = "../../../io" } -narf-init = { path = "../../../init" } -narf-scheduler = { path = "../../../scheduler" } -narf-time = { path = "../../../time" } -narf-kernel-test = { path = "../../../verification/kernel-test" } +narf-lib = { path = "../../../lib", version = "0.1.0" } +narf-arch = { path = "../../../arch", version = "0.1.0" } +narf-drivers = { path = "../../", version = "0.1.0" } +narf-driver-runtime = { path = "../../runtime", version = "0.1.0" } +narf-capabilities = { path = "../../../capabilities", version = "0.1.0" } +narf-memory = { path = "../../../memory", version = "0.1.0" } +narf-block = { path = "../../../block", version = "0.1.0" } +narf-filesystem = { path = "../../../filesystem", version = "0.1.0" } +narf-io = { path = "../../../io", version = "0.1.0" } +narf-init = { path = "../../../init", version = "0.1.0" } +narf-scheduler = { path = "../../../scheduler", version = "0.1.0" } +narf-time = { path = "../../../time", version = "0.1.0" } +narf-kernel-test = { path = "../../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/fs/ext4/Cargo.toml b/drivers/fs/ext4/Cargo.toml index b9c288f56..e090cbe47 100644 --- a/drivers/fs/ext4/Cargo.toml +++ b/drivers/fs/ext4/Cargo.toml @@ -19,20 +19,20 @@ path = "src/lib.rs" # the ext4-specific contract (must have EXTENTS, must validate # extent-tree on every inode) on top. [dependencies] -narf-lib = { path = "../../../lib" } -narf-arch = { path = "../../../arch" } -narf-drivers = { path = "../../" } -narf-driver-runtime = { path = "../../runtime" } -narf-capabilities = { path = "../../../capabilities" } -narf-memory = { path = "../../../memory" } -narf-block = { path = "../../../block" } -narf-filesystem = { path = "../../../filesystem" } -narf-io = { path = "../../../io" } -narf-init = { path = "../../../init" } -narf-scheduler = { path = "../../../scheduler" } -narf-time = { path = "../../../time" } -narf-drivers-fs-ext2 = { path = "../ext2" } -narf-kernel-test = { path = "../../../verification/kernel-test" } +narf-lib = { path = "../../../lib", version = "0.1.0" } +narf-arch = { path = "../../../arch", version = "0.1.0" } +narf-drivers = { path = "../../", version = "0.1.0" } +narf-driver-runtime = { path = "../../runtime", version = "0.1.0" } +narf-capabilities = { path = "../../../capabilities", version = "0.1.0" } +narf-memory = { path = "../../../memory", version = "0.1.0" } +narf-block = { path = "../../../block", version = "0.1.0" } +narf-filesystem = { path = "../../../filesystem", version = "0.1.0" } +narf-io = { path = "../../../io", version = "0.1.0" } +narf-init = { path = "../../../init", version = "0.1.0" } +narf-scheduler = { path = "../../../scheduler", version = "0.1.0" } +narf-time = { path = "../../../time", version = "0.1.0" } +narf-drivers-fs-ext2 = { path = "../ext2", version = "0.1.0" } +narf-kernel-test = { path = "../../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/fs/fat/Cargo.toml b/drivers/fs/fat/Cargo.toml index 84e1d8cb8..09bbb6a0b 100644 --- a/drivers/fs/fat/Cargo.toml +++ b/drivers/fs/fat/Cargo.toml @@ -12,18 +12,18 @@ name = "narf_drivers_fs_fat" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../../lib" } -narf-arch = { path = "../../../arch" } -narf-drivers = { path = "../../" } -narf-driver-runtime = { path = "../../runtime" } -narf-capabilities = { path = "../../../capabilities" } -narf-memory = { path = "../../../memory" } -narf-block = { path = "../../../block" } -narf-filesystem = { path = "../../../filesystem" } -narf-io = { path = "../../../io" } -narf-init = { path = "../../../init" } -narf-scheduler = { path = "../../../scheduler" } -narf-kernel-test = { path = "../../../verification/kernel-test" } +narf-lib = { path = "../../../lib", version = "0.1.0" } +narf-arch = { path = "../../../arch", version = "0.1.0" } +narf-drivers = { path = "../../", version = "0.1.0" } +narf-driver-runtime = { path = "../../runtime", version = "0.1.0" } +narf-capabilities = { path = "../../../capabilities", version = "0.1.0" } +narf-memory = { path = "../../../memory", version = "0.1.0" } +narf-block = { path = "../../../block", version = "0.1.0" } +narf-filesystem = { path = "../../../filesystem", version = "0.1.0" } +narf-io = { path = "../../../io", version = "0.1.0" } +narf-init = { path = "../../../init", version = "0.1.0" } +narf-scheduler = { path = "../../../scheduler", version = "0.1.0" } +narf-kernel-test = { path = "../../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/fs/iso9660/Cargo.toml b/drivers/fs/iso9660/Cargo.toml index d20bf1610..617827603 100644 --- a/drivers/fs/iso9660/Cargo.toml +++ b/drivers/fs/iso9660/Cargo.toml @@ -12,16 +12,16 @@ name = "narf_drivers_fs_iso9660" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../../lib" } -narf-arch = { path = "../../../arch" } -narf-drivers = { path = "../../" } -narf-driver-runtime = { path = "../../runtime" } -narf-capabilities = { path = "../../../capabilities" } -narf-memory = { path = "../../../memory" } -narf-block = { path = "../../../block" } -narf-filesystem = { path = "../../../filesystem" } -narf-io = { path = "../../../io" } -narf-kernel-test = { path = "../../../verification/kernel-test" } +narf-lib = { path = "../../../lib", version = "0.1.0" } +narf-arch = { path = "../../../arch", version = "0.1.0" } +narf-drivers = { path = "../../", version = "0.1.0" } +narf-driver-runtime = { path = "../../runtime", version = "0.1.0" } +narf-capabilities = { path = "../../../capabilities", version = "0.1.0" } +narf-memory = { path = "../../../memory", version = "0.1.0" } +narf-block = { path = "../../../block", version = "0.1.0" } +narf-filesystem = { path = "../../../filesystem", version = "0.1.0" } +narf-io = { path = "../../../io", version = "0.1.0" } +narf-kernel-test = { path = "../../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/fs/minix/Cargo.toml b/drivers/fs/minix/Cargo.toml index c3969daa1..22452224c 100644 --- a/drivers/fs/minix/Cargo.toml +++ b/drivers/fs/minix/Cargo.toml @@ -12,16 +12,16 @@ name = "narf_drivers_fs_minix" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../../lib" } -narf-arch = { path = "../../../arch" } -narf-drivers = { path = "../../" } -narf-driver-runtime = { path = "../../runtime" } -narf-capabilities = { path = "../../../capabilities" } -narf-memory = { path = "../../../memory" } -narf-block = { path = "../../../block" } -narf-filesystem = { path = "../../../filesystem" } -narf-io = { path = "../../../io" } -narf-kernel-test = { path = "../../../verification/kernel-test" } +narf-lib = { path = "../../../lib", version = "0.1.0" } +narf-arch = { path = "../../../arch", version = "0.1.0" } +narf-drivers = { path = "../../", version = "0.1.0" } +narf-driver-runtime = { path = "../../runtime", version = "0.1.0" } +narf-capabilities = { path = "../../../capabilities", version = "0.1.0" } +narf-memory = { path = "../../../memory", version = "0.1.0" } +narf-block = { path = "../../../block", version = "0.1.0" } +narf-filesystem = { path = "../../../filesystem", version = "0.1.0" } +narf-io = { path = "../../../io", version = "0.1.0" } +narf-kernel-test = { path = "../../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/fs/squashfs/Cargo.toml b/drivers/fs/squashfs/Cargo.toml index d90eb8949..731a47fb8 100644 --- a/drivers/fs/squashfs/Cargo.toml +++ b/drivers/fs/squashfs/Cargo.toml @@ -13,16 +13,16 @@ path = "src/lib.rs" [dependencies] miniz_oxide = { version = "0.8", default-features = false, features = ["with-alloc"] } -narf-block = { path = "../../../block" } -narf-capabilities = { path = "../../../capabilities" } -narf-driver-runtime = { path = "../../runtime" } -narf-filesystem = { path = "../../../filesystem" } -narf-init = { path = "../../../init" } -narf-io = { path = "../../../io" } -narf-kernel-test = { path = "../../../verification/kernel-test" } -narf-lib = { path = "../../../lib" } -narf-memory = { path = "../../../memory" } -narf-scheduler = { path = "../../../scheduler" } +narf-block = { path = "../../../block", version = "0.1.0" } +narf-capabilities = { path = "../../../capabilities", version = "0.1.0" } +narf-driver-runtime = { path = "../../runtime", version = "0.1.0" } +narf-filesystem = { path = "../../../filesystem", version = "0.1.0" } +narf-init = { path = "../../../init", version = "0.1.0" } +narf-io = { path = "../../../io", version = "0.1.0" } +narf-kernel-test = { path = "../../../verification/kernel-test", version = "0.1.0" } +narf-lib = { path = "../../../lib", version = "0.1.0" } +narf-memory = { path = "../../../memory", version = "0.1.0" } +narf-scheduler = { path = "../../../scheduler", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/fs/udf/Cargo.toml b/drivers/fs/udf/Cargo.toml index a024e7a53..24ead95aa 100644 --- a/drivers/fs/udf/Cargo.toml +++ b/drivers/fs/udf/Cargo.toml @@ -12,16 +12,16 @@ name = "narf_drivers_fs_udf" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../../lib" } -narf-arch = { path = "../../../arch" } -narf-drivers = { path = "../../" } -narf-driver-runtime = { path = "../../runtime" } -narf-capabilities = { path = "../../../capabilities" } -narf-memory = { path = "../../../memory" } -narf-block = { path = "../../../block" } -narf-filesystem = { path = "../../../filesystem" } -narf-io = { path = "../../../io" } -narf-kernel-test = { path = "../../../verification/kernel-test" } +narf-lib = { path = "../../../lib", version = "0.1.0" } +narf-arch = { path = "../../../arch", version = "0.1.0" } +narf-drivers = { path = "../../", version = "0.1.0" } +narf-driver-runtime = { path = "../../runtime", version = "0.1.0" } +narf-capabilities = { path = "../../../capabilities", version = "0.1.0" } +narf-memory = { path = "../../../memory", version = "0.1.0" } +narf-block = { path = "../../../block", version = "0.1.0" } +narf-filesystem = { path = "../../../filesystem", version = "0.1.0" } +narf-io = { path = "../../../io", version = "0.1.0" } +narf-kernel-test = { path = "../../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/gpio/Cargo.toml b/drivers/gpio/Cargo.toml index cf6a29a85..f286cc621 100644 --- a/drivers/gpio/Cargo.toml +++ b/drivers/gpio/Cargo.toml @@ -12,15 +12,15 @@ name = "narf_drivers_gpio" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-memory = { path = "../../memory" } -narf-arch = { path = "../../arch" } -narf-aml = { path = "../../aml" } -narf-acpi = { path = "../../acpi" } -narf-init = { path = "../../init" } -narf-console = { path = "../../console" } -narf-interrupts = { path = "../../interrupts" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } +narf-aml = { path = "../../aml", version = "0.1.0" } +narf-acpi = { path = "../../acpi", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-interrupts = { path = "../../interrupts", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/drivers/gpu/Cargo.toml b/drivers/gpu/Cargo.toml index 8189ee752..7a03bbf96 100644 --- a/drivers/gpu/Cargo.toml +++ b/drivers/gpu/Cargo.toml @@ -12,28 +12,28 @@ name = "narf_drivers_gpu" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-arch = { path = "../../arch" } -narf-capabilities = { path = "../../capabilities" } -narf-kernel-test = { path = "../../verification/kernel-test" } -narf-graphics-driver = { path = "../graphics" } -narf-graphics = { path = "../../graphics" } -narf-edid = { path = "../../edid" } -narf-drivers-virtio = { path = "../virtio" } -narf-driver-runtime = { path = "../runtime", default-features = false, features = ["kernel"] } -narf-drivers = { path = ".." } -narf-drivers-usbpd = { path = "../usbpd" } -narf-usbpd = { path = "../../usbpd" } -narf-firmware = { path = "../../firmware" } -narf-bus = { path = "../../bus" } -narf-memory = { path = "../../memory" } -narf-init = { path = "../../init" } -narf-scheduler = { path = "../../scheduler" } -narf-time = { path = "../../time" } -narf-power = { path = "../../power" } -narf-console = { path = "../../console" } -narf-filesystem = { path = "../../filesystem" } -narf-drivers-backlight = { path = "../backlight" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } +narf-graphics-driver = { path = "../graphics", version = "0.1.0" } +narf-graphics = { path = "../../graphics", version = "0.1.0" } +narf-edid = { path = "../../edid", version = "0.1.0" } +narf-drivers-virtio = { path = "../virtio", version = "0.1.0" } +narf-driver-runtime = { path = "../runtime", version = "0.1.0", default-features = false, features = ["kernel"] } +narf-drivers = { path = "..", version = "0.1.0" } +narf-drivers-usbpd = { path = "../usbpd", version = "0.1.0" } +narf-usbpd = { path = "../../usbpd", version = "0.1.0" } +narf-firmware = { path = "../../firmware", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } +narf-power = { path = "../../power", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-filesystem = { path = "../../filesystem", version = "0.1.0" } +narf-drivers-backlight = { path = "../backlight", version = "0.1.0" } [features] linux-compat = ["narf-filesystem/linux-compat"] diff --git a/drivers/graphics/Cargo.toml b/drivers/graphics/Cargo.toml index 7f3d1992b..7fd886ecf 100644 --- a/drivers/graphics/Cargo.toml +++ b/drivers/graphics/Cargo.toml @@ -12,13 +12,13 @@ name = "narf_graphics_driver" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-graphics = { path = "../../graphics" } -narf-bus = { path = "../../bus" } -narf-capabilities = { path = "../../capabilities" } -narf-memory = { path = "../../memory" } -narf-drivers = { path = "../../drivers" } -narf-init = { path = "../../init" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-graphics = { path = "../../graphics", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-drivers = { path = "../../drivers", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/hwmon/Cargo.toml b/drivers/hwmon/Cargo.toml index 85e3b2790..841e950ab 100644 --- a/drivers/hwmon/Cargo.toml +++ b/drivers/hwmon/Cargo.toml @@ -12,16 +12,16 @@ name = "narf_drivers_hwmon" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-bus = { path = "../../bus" } -narf-arch = { path = "../../arch" } -narf-capabilities = { path = "../../capabilities" } -narf-console = { path = "../../console" } -narf-filesystem = { path = "../../filesystem" } -narf-init = { path = "../../init" } -narf-kernel-test = { path = "../../verification/kernel-test" } -narf-firmware-smbios = { path = "../../firmware/smbios" } -narf-aml = { path = "../../aml" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-filesystem = { path = "../../filesystem", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } +narf-firmware-smbios = { path = "../../firmware/smbios", version = "0.1.0" } +narf-aml = { path = "../../aml", version = "0.1.0" } [features] linux-compat = ["narf-filesystem/linux-compat"] diff --git a/drivers/i2c/Cargo.toml b/drivers/i2c/Cargo.toml index 1c292b3a9..2a8dc9004 100644 --- a/drivers/i2c/Cargo.toml +++ b/drivers/i2c/Cargo.toml @@ -12,18 +12,18 @@ name = "narf_drivers_i2c" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-memory = { path = "../../memory" } -narf-arch = { path = "../../arch" } -narf-aml = { path = "../../aml" } -narf-acpi = { path = "../../acpi" } -narf-init = { path = "../../init" } -narf-console = { path = "../../console" } -narf-interrupts = { path = "../../interrupts" } -narf-scheduler = { path = "../../scheduler" } -narf-kernel-test = { path = "../../verification/kernel-test" } -narf-bus = { path = "../../bus" } -narf-capabilities = { path = "../../capabilities" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } +narf-aml = { path = "../../aml", version = "0.1.0" } +narf-acpi = { path = "../../acpi", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-interrupts = { path = "../../interrupts", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } async-trait = "0.1" [features] diff --git a/drivers/i3c/Cargo.toml b/drivers/i3c/Cargo.toml index ccc124ebf..65de017b2 100644 --- a/drivers/i3c/Cargo.toml +++ b/drivers/i3c/Cargo.toml @@ -1,19 +1,23 @@ [package] name = "narf-drivers-i3c" -version = "0.1.0" -edition = "2021" +description = "I3C controller drivers for NARF." +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +repository.workspace = true [dependencies] -narf-lib = { path = "../../lib" } -narf-capabilities = { path = "../../capabilities" } -narf-io = { path = "../../io" } -narf-i3c = { path = "../../i3c" } -narf-bus = { path = "../../bus" } -narf-drivers = { path = "../" } -narf-scheduler = { path = "../../scheduler" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-io = { path = "../../io", version = "0.1.0" } +narf-i3c = { path = "../../i3c", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-drivers = { path = "../", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } async-trait = "0.1" futures = { version = "0.3", default-features = false } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/drivers/input/Cargo.toml b/drivers/input/Cargo.toml index 1ee6bf6b3..9df28feed 100644 --- a/drivers/input/Cargo.toml +++ b/drivers/input/Cargo.toml @@ -12,23 +12,23 @@ name = "narf_input_driver" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-input = { path = "../../input" } -narf-arch = { path = "../../arch" } -narf-time = { path = "../../time" } -narf-interrupts = { path = "../../interrupts" } -narf-acpi = { path = "../../acpi" } -narf-drivers = { path = "../../drivers" } -narf-init = { path = "../../init" } -narf-drivers-i2c = { path = "../i2c" } -narf-drivers-gpio = { path = "../gpio" } -narf-hid = { path = "../../hid" } -narf-scheduler = { path = "../../scheduler" } -narf-aml = { path = "../../aml" } -narf-fb = { path = "../../fb" } -narf-console = { path = "../../console" } -narf-drivers-virtio = { path = "../virtio" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-input = { path = "../../input", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } +narf-interrupts = { path = "../../interrupts", version = "0.1.0" } +narf-acpi = { path = "../../acpi", version = "0.1.0" } +narf-drivers = { path = "../../drivers", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-drivers-i2c = { path = "../i2c", version = "0.1.0" } +narf-drivers-gpio = { path = "../gpio", version = "0.1.0" } +narf-hid = { path = "../../hid", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-aml = { path = "../../aml", version = "0.1.0" } +narf-fb = { path = "../../fb", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-drivers-virtio = { path = "../virtio", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } async-trait = "0.1" [lints] diff --git a/drivers/leds/Cargo.toml b/drivers/leds/Cargo.toml index 209c05f2c..517bfd3ef 100644 --- a/drivers/leds/Cargo.toml +++ b/drivers/leds/Cargo.toml @@ -12,14 +12,14 @@ name = "narf_drivers_leds" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-drivers-gpio = { path = "../gpio" } -narf-pwm = { path = "../../pwm" } -narf-kernel-test = { path = "../../verification/kernel-test" } -narf-init = { path = "../../init" } -narf-scheduler = { path = "../../scheduler" } -narf-time = { path = "../../time" } -narf-filesystem = { path = "../../filesystem" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-drivers-gpio = { path = "../gpio", version = "0.1.0" } +narf-pwm = { path = "../../pwm", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } +narf-filesystem = { path = "../../filesystem", version = "0.1.0" } async-trait = "0.1" [features] diff --git a/drivers/media/Cargo.toml b/drivers/media/Cargo.toml index 8489ab45b..cf41b0503 100644 --- a/drivers/media/Cargo.toml +++ b/drivers/media/Cargo.toml @@ -12,11 +12,11 @@ name = "narf_drivers_media" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-bus = { path = "../../bus" } -narf-init = { path = "../../init" } -narf-console = { path = "../../console" } -narf-drivers-usb = { path = "../usb" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-drivers-usb = { path = "../usb", version = "0.1.0" } [features] kernel-test = [] diff --git a/drivers/net/Cargo.toml b/drivers/net/Cargo.toml index a2901c720..c1e7c0e0b 100644 --- a/drivers/net/Cargo.toml +++ b/drivers/net/Cargo.toml @@ -12,25 +12,25 @@ name = "narf_drivers_net" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-capabilities = { path = "../../capabilities" } -narf-io = { path = "../../io" } -narf-ipc = { path = "../../ipc" } -narf-net = { path = "../../net" } -narf-bus = { path = "../../bus" } -narf-console = { path = "../../console" } -narf-interrupts = { path = "../../interrupts" } -narf-memory = { path = "../../memory" } -narf-arch = { path = "../../arch" } -narf-acpi = { path = "../../acpi" } -narf-aml = { path = "../../aml" } -narf-drivers = { path = "../" } -narf-init = { path = "../../init" } -narf-kernel-test = { path = "../../verification/kernel-test" } -narf-driver-runtime = { path = "../runtime", default-features = false, features = ["kernel"] } -narf-firmware = { path = "../../firmware" } -narf-scheduler = { path = "../../scheduler" } -narf-time = { path = "../../time" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-io = { path = "../../io", version = "0.1.0" } +narf-ipc = { path = "../../ipc", version = "0.1.0" } +narf-net = { path = "../../net", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-interrupts = { path = "../../interrupts", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } +narf-acpi = { path = "../../acpi", version = "0.1.0" } +narf-aml = { path = "../../aml", version = "0.1.0" } +narf-drivers = { path = "../", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } +narf-driver-runtime = { path = "../runtime", version = "0.1.0", default-features = false, features = ["kernel"] } +narf-firmware = { path = "../../firmware", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/nfc/Cargo.toml b/drivers/nfc/Cargo.toml index 4dddc7e5f..e28d8cd66 100644 --- a/drivers/nfc/Cargo.toml +++ b/drivers/nfc/Cargo.toml @@ -12,10 +12,10 @@ name = "narf_drivers_nfc" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-console = { path = "../../console" } -narf-init = { path = "../../init" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/drivers/nvidia/Cargo.toml b/drivers/nvidia/Cargo.toml index 798cff1d4..d0fcb1301 100644 --- a/drivers/nvidia/Cargo.toml +++ b/drivers/nvidia/Cargo.toml @@ -12,17 +12,17 @@ name = "narf_drivers_nvidia" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-capabilities = { path = "../../capabilities" } -narf-kernel-test = { path = "../../verification/kernel-test" } -narf-driver-runtime = { path = "../runtime", default-features = false, features = ["kernel"] } -narf-drivers = { path = ".." } -narf-bus = { path = "../../bus" } -narf-init = { path = "../../init" } -narf-edid = { path = "../../edid" } -narf-graphics = { path = "../../graphics" } -narf-firmware = { path = "../../firmware" } -narf-crypto = { path = "../../crypto" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } +narf-driver-runtime = { path = "../runtime", version = "0.1.0", default-features = false, features = ["kernel"] } +narf-drivers = { path = "..", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-edid = { path = "../../edid", version = "0.1.0" } +narf-graphics = { path = "../../graphics", version = "0.1.0" } +narf-firmware = { path = "../../firmware", version = "0.1.0" } +narf-crypto = { path = "../../crypto", version = "0.1.0" } [features] kernel-test = [] diff --git a/drivers/nvme/Cargo.toml b/drivers/nvme/Cargo.toml index b00dbeceb..f462f1d07 100644 --- a/drivers/nvme/Cargo.toml +++ b/drivers/nvme/Cargo.toml @@ -12,20 +12,20 @@ name = "narf_drivers_nvme" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-capabilities = { path = "../../capabilities" } -narf-io = { path = "../../io" } -narf-memory = { path = "../../memory" } -narf-block = { path = "../../block" } -narf-bus = { path = "../../bus" } -narf-interrupts = { path = "../../interrupts" } -narf-scheduler = { path = "../../scheduler" } -narf-time = { path = "../../time" } -narf-drivers = { path = "../../drivers" } -narf-init = { path = "../../init" } -narf-kernel-test = { path = "../../verification/kernel-test" } -narf-arch = { path = "../../arch" } -narf-power = { path = "../../power" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-io = { path = "../../io", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-block = { path = "../../block", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-interrupts = { path = "../../interrupts", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } +narf-drivers = { path = "../../drivers", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } +narf-power = { path = "../../power", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/platform/Cargo.toml b/drivers/platform/Cargo.toml index 61b9d182f..d50aefb68 100644 --- a/drivers/platform/Cargo.toml +++ b/drivers/platform/Cargo.toml @@ -12,26 +12,26 @@ name = "narf_drivers_platform" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-bus = { path = "../../bus" } -narf-capabilities = { path = "../../capabilities" } -narf-io = { path = "../../io" } -narf-memory = { path = "../../memory" } -narf-drivers = { path = "../" } -narf-init = { path = "../../init" } -narf-tpm = { path = "../../tpm" } -narf-arch = { path = "../../arch" } -narf-acpi = { path = "../../acpi" } -narf-aml = { path = "../../aml" } -narf-power = { path = "../../power" } -narf-pwm = { path = "../../pwm" } -narf-interrupts = { path = "../../interrupts" } -narf-input = { path = "../../input" } -narf-console = { path = "../../console" } -narf-scheduler = { path = "../../scheduler" } -narf-time = { path = "../../time" } -narf-kernel-test = { path = "../../verification/kernel-test" } -narf-firmware-smbios = { path = "../../firmware/smbios" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-io = { path = "../../io", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-drivers = { path = "../", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-tpm = { path = "../../tpm", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } +narf-acpi = { path = "../../acpi", version = "0.1.0" } +narf-aml = { path = "../../aml", version = "0.1.0" } +narf-power = { path = "../../power", version = "0.1.0" } +narf-pwm = { path = "../../pwm", version = "0.1.0" } +narf-interrupts = { path = "../../interrupts", version = "0.1.0" } +narf-input = { path = "../../input", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } +narf-firmware-smbios = { path = "../../firmware/smbios", version = "0.1.0" } async-trait = "0.1" [features] diff --git a/drivers/psp/Cargo.toml b/drivers/psp/Cargo.toml index 69f48a885..822b4152f 100644 --- a/drivers/psp/Cargo.toml +++ b/drivers/psp/Cargo.toml @@ -12,8 +12,8 @@ name = "narf_drivers_psp" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/runtime/Cargo.toml b/drivers/runtime/Cargo.toml index 491b0b454..41151b5fa 100644 --- a/drivers/runtime/Cargo.toml +++ b/drivers/runtime/Cargo.toml @@ -28,11 +28,11 @@ kernel = [ userspace = [] [dependencies] -narf-bus = { path = "../../bus", optional = true } -narf-io = { path = "../../io", optional = true } -narf-lib = { path = "../../lib", optional = true } -narf-interrupts = { path = "../../interrupts", optional = true } -narf-capabilities = { path = "../../capabilities", optional = true } +narf-bus = { path = "../../bus", version = "0.1.0", optional = true } +narf-io = { path = "../../io", version = "0.1.0", optional = true } +narf-lib = { path = "../../lib", version = "0.1.0", optional = true } +narf-interrupts = { path = "../../interrupts", version = "0.1.0", optional = true } +narf-capabilities = { path = "../../capabilities", version = "0.1.0", optional = true } [lints] workspace = true diff --git a/drivers/sdio/Cargo.toml b/drivers/sdio/Cargo.toml index f0985047c..ff056d496 100644 --- a/drivers/sdio/Cargo.toml +++ b/drivers/sdio/Cargo.toml @@ -12,17 +12,17 @@ name = "narf_drivers_sdio" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-capabilities = { path = "../../capabilities" } -narf-io = { path = "../../io" } -narf-bus = { path = "../../bus" } -narf-interrupts = { path = "../../interrupts" } -narf-memory = { path = "../../memory" } -narf-drivers = { path = "../" } -narf-driver-runtime = { path = "../runtime", default-features = false, features = ["kernel"] } -narf-kernel-test = { path = "../../verification/kernel-test" } -narf-console = { path = "../../console" } -narf-time = { path = "../../time" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-io = { path = "../../io", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-interrupts = { path = "../../interrupts", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-drivers = { path = "../", version = "0.1.0" } +narf-driver-runtime = { path = "../runtime", version = "0.1.0", default-features = false, features = ["kernel"] } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } [features] kernel-test = [] diff --git a/drivers/serial/Cargo.toml b/drivers/serial/Cargo.toml index 11bb5d02e..7b9abf4af 100644 --- a/drivers/serial/Cargo.toml +++ b/drivers/serial/Cargo.toml @@ -12,16 +12,16 @@ name = "narf_drivers_serial" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-arch = { path = "../../arch" } -narf-bus = { path = "../../bus" } -narf-acpi = { path = "../../acpi" } -narf-aml = { path = "../../aml" } -narf-memory = { path = "../../memory" } -narf-init = { path = "../../init" } -narf-console = { path = "../../console" } -narf-interrupts = { path = "../../interrupts" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-acpi = { path = "../../acpi", version = "0.1.0" } +narf-aml = { path = "../../aml", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-interrupts = { path = "../../interrupts", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/sound/Cargo.toml b/drivers/sound/Cargo.toml index feff3eae2..ef59c3eaf 100644 --- a/drivers/sound/Cargo.toml +++ b/drivers/sound/Cargo.toml @@ -12,19 +12,19 @@ name = "narf_drivers_sound" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-capabilities = { path = "../../capabilities" } -narf-memory = { path = "../../memory" } -narf-io = { path = "../../io" } -narf-arch = { path = "../../arch" } -narf-bus = { path = "../../bus" } -narf-interrupts = { path = "../../interrupts" } -narf-init = { path = "../../init" } -narf-scheduler = { path = "../../scheduler" } -narf-time = { path = "../../time" } -narf-drivers = { path = "../../drivers" } -narf-filesystem = { path = "../../filesystem" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-io = { path = "../../io", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-interrupts = { path = "../../interrupts", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } +narf-drivers = { path = "../../drivers", version = "0.1.0" } +narf-filesystem = { path = "../../filesystem", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [features] linux-compat = ["narf-filesystem/linux-compat"] diff --git a/drivers/spi/Cargo.toml b/drivers/spi/Cargo.toml index 9dc213aa1..68f8e20e5 100644 --- a/drivers/spi/Cargo.toml +++ b/drivers/spi/Cargo.toml @@ -12,16 +12,16 @@ name = "narf_drivers_spi" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-memory = { path = "../../memory" } -narf-arch = { path = "../../arch" } -narf-aml = { path = "../../aml" } -narf-acpi = { path = "../../acpi" } -narf-init = { path = "../../init" } -narf-console = { path = "../../console" } -narf-interrupts = { path = "../../interrupts" } -narf-scheduler = { path = "../../scheduler" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } +narf-aml = { path = "../../aml", version = "0.1.0" } +narf-acpi = { path = "../../acpi", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-interrupts = { path = "../../interrupts", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/drivers/storage/Cargo.toml b/drivers/storage/Cargo.toml index caaa05ed0..c9aadda74 100644 --- a/drivers/storage/Cargo.toml +++ b/drivers/storage/Cargo.toml @@ -12,22 +12,22 @@ name = "narf_drivers_storage" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-bus = { path = "../../bus" } -narf-capabilities = { path = "../../capabilities" } -narf-console = { path = "../../console" } -narf-io = { path = "../../io" } -narf-memory = { path = "../../memory" } -narf-time = { path = "../../time" } -narf-block = { path = "../../block" } -narf-filesystem = { path = "../../filesystem" } -narf-drivers = { path = "../" } -narf-init = { path = "../../init" } -narf-interrupts = { path = "../../interrupts" } -narf-scheduler = { path = "../../scheduler" } -narf-acpi = { path = "../../acpi" } -narf-aml = { path = "../../aml" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-io = { path = "../../io", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } +narf-block = { path = "../../block", version = "0.1.0" } +narf-filesystem = { path = "../../filesystem", version = "0.1.0" } +narf-drivers = { path = "../", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-interrupts = { path = "../../interrupts", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-acpi = { path = "../../acpi", version = "0.1.0" } +narf-aml = { path = "../../aml", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [features] # Declared so `#[cfg(feature = "kernel-test")]` in src/ doesn't diff --git a/drivers/thunderbolt/Cargo.toml b/drivers/thunderbolt/Cargo.toml index e9c40a4aa..188c9efd0 100644 --- a/drivers/thunderbolt/Cargo.toml +++ b/drivers/thunderbolt/Cargo.toml @@ -12,14 +12,14 @@ name = "narf_drivers_thunderbolt" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-bus = { path = "../../bus" } -narf-capabilities = { path = "../../capabilities" } -narf-console = { path = "../../console" } -narf-drivers = { path = "../" } -narf-init = { path = "../../init" } -narf-memory = { path = "../../memory" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-drivers = { path = "../", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [features] # Declared so `#[cfg(feature = "kernel-test")]` in src/ doesn't trip diff --git a/drivers/tpm/Cargo.toml b/drivers/tpm/Cargo.toml index ab0a3ba93..3d03adcc8 100644 --- a/drivers/tpm/Cargo.toml +++ b/drivers/tpm/Cargo.toml @@ -12,10 +12,10 @@ name = "narf_drivers_tpm" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-kernel-test = { path = "../../verification/kernel-test" } -narf-filesystem = { path = "../../filesystem" } -narf-block = { path = "../../block" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } +narf-filesystem = { path = "../../filesystem", version = "0.1.0" } +narf-block = { path = "../../block", version = "0.1.0" } [features] linux-compat = ["narf-filesystem/linux-compat"] diff --git a/drivers/usb/Cargo.toml b/drivers/usb/Cargo.toml index 5f762b1a3..bd8c9ae8a 100644 --- a/drivers/usb/Cargo.toml +++ b/drivers/usb/Cargo.toml @@ -12,28 +12,28 @@ name = "narf_drivers_usb" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-arch = { path = "../../arch" } -narf-bus = { path = "../../bus" } -narf-capabilities = { path = "../../capabilities" } -narf-io = { path = "../../io" } -narf-memory = { path = "../../memory" } -narf-drivers = { path = "../" } -narf-init = { path = "../../init" } -narf-input = { path = "../../input" } -narf-hid = { path = "../../hid" } -narf-interrupts = { path = "../../interrupts" } -narf-acpi = { path = "../../acpi" } -narf-aml = { path = "../../aml" } -narf-console = { path = "../../console" } -narf-scheduler = { path = "../../scheduler" } -narf-time = { path = "../../time" } -narf-block = { path = "../../block" } -narf-net = { path = "../../net" } -narf-bluetooth = { path = "../../bluetooth" } -narf-power = { path = "../../power" } -narf-filesystem = { path = "../../filesystem" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-io = { path = "../../io", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-drivers = { path = "../", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-input = { path = "../../input", version = "0.1.0" } +narf-hid = { path = "../../hid", version = "0.1.0" } +narf-interrupts = { path = "../../interrupts", version = "0.1.0" } +narf-acpi = { path = "../../acpi", version = "0.1.0" } +narf-aml = { path = "../../aml", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } +narf-block = { path = "../../block", version = "0.1.0" } +narf-net = { path = "../../net", version = "0.1.0" } +narf-bluetooth = { path = "../../bluetooth", version = "0.1.0" } +narf-power = { path = "../../power", version = "0.1.0" } +narf-filesystem = { path = "../../filesystem", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/drivers/usbpd/Cargo.toml b/drivers/usbpd/Cargo.toml index 5e2c835df..bde4a0605 100644 --- a/drivers/usbpd/Cargo.toml +++ b/drivers/usbpd/Cargo.toml @@ -12,15 +12,15 @@ name = "narf_drivers_usbpd" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-usbpd = { path = "../../usbpd" } -narf-capabilities = { path = "../../capabilities" } -narf-scheduler = { path = "../../scheduler" } -narf-time = { path = "../../time" } -narf-init = { path = "../../init" } -narf-console = { path = "../../console" } -narf-drivers-i2c = { path = "../i2c" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-usbpd = { path = "../../usbpd", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-drivers-i2c = { path = "../i2c", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/drivers/video/Cargo.toml b/drivers/video/Cargo.toml index a6ae4cf1b..6f5360709 100644 --- a/drivers/video/Cargo.toml +++ b/drivers/video/Cargo.toml @@ -12,17 +12,17 @@ name = "narf_drivers_video" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-capabilities = { path = "../../capabilities" } -narf-kernel-test = { path = "../../verification/kernel-test" } -narf-driver-runtime = { path = "../runtime", default-features = false, features = ["kernel"] } -narf-drivers = { path = ".." } -narf-bus = { path = "../../bus" } -narf-init = { path = "../../init" } -narf-filesystem = { path = "../../filesystem" } -narf-drivers-i2c = { path = "../i2c" } -narf-console = { path = "../../console" } -narf-scheduler = { path = "../../scheduler" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } +narf-driver-runtime = { path = "../runtime", version = "0.1.0", default-features = false, features = ["kernel"] } +narf-drivers = { path = "..", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-filesystem = { path = "../../filesystem", version = "0.1.0" } +narf-drivers-i2c = { path = "../i2c", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } [features] # The sysfs `/sys/class/video4linux/video/` registration is gated diff --git a/drivers/virtio/Cargo.toml b/drivers/virtio/Cargo.toml index 7627e04fd..61774a70c 100644 --- a/drivers/virtio/Cargo.toml +++ b/drivers/virtio/Cargo.toml @@ -12,23 +12,23 @@ name = "narf_drivers_virtio" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-arch = { path = "../../arch" } -narf-bus = { path = "../../bus" } -narf-drivers = { path = "../" } -narf-capabilities = { path = "../../capabilities" } -narf-interrupts = { path = "../../interrupts" } -narf-scheduler = { path = "../../scheduler" } -narf-time = { path = "../../time" } -narf-memory = { path = "../../memory" } -narf-block = { path = "../../block" } -narf-io = { path = "../../io" } -narf-ipc = { path = "../../ipc" } -narf-input = { path = "../../input" } -narf-net = { path = "../../net" } -narf-graphics = { path = "../../graphics" } -narf-init = { path = "../../init" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-drivers = { path = "../", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-interrupts = { path = "../../interrupts", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-block = { path = "../../block", version = "0.1.0" } +narf-io = { path = "../../io", version = "0.1.0" } +narf-ipc = { path = "../../ipc", version = "0.1.0" } +narf-input = { path = "../../input", version = "0.1.0" } +narf-net = { path = "../../net", version = "0.1.0" } +narf-graphics = { path = "../../graphics", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/drivers/wireless/Cargo.toml b/drivers/wireless/Cargo.toml index ac92d2539..30aaa5fde 100644 --- a/drivers/wireless/Cargo.toml +++ b/drivers/wireless/Cargo.toml @@ -12,26 +12,26 @@ name = "narf_drivers_wireless" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-capabilities = { path = "../../capabilities" } -narf-io = { path = "../../io" } -narf-ipc = { path = "../../ipc" } -narf-time = { path = "../../time" } -narf-wireless = { path = "../../wireless" } -narf-net = { path = "../../net" } -narf-bus = { path = "../../bus" } -narf-interrupts = { path = "../../interrupts" } -narf-memory = { path = "../../memory" } -narf-drivers = { path = "../" } -narf-driver-runtime = { path = "../runtime", default-features = false, features = ["kernel"] } -narf-kernel-test = { path = "../../verification/kernel-test" } -narf-scheduler = { path = "../../scheduler" } -narf-console = { path = "../../console" } -narf-firmware = { path = "../../firmware" } -narf-crypto = { path = "../../crypto" } -narf-init = { path = "../../init" } -narf-drivers-sdio = { path = "../sdio" } -narf-drivers-usb = { path = "../usb" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-capabilities = { path = "../../capabilities", version = "0.1.0" } +narf-io = { path = "../../io", version = "0.1.0" } +narf-ipc = { path = "../../ipc", version = "0.1.0" } +narf-time = { path = "../../time", version = "0.1.0" } +narf-wireless = { path = "../../wireless", version = "0.1.0" } +narf-net = { path = "../../net", version = "0.1.0" } +narf-bus = { path = "../../bus", version = "0.1.0" } +narf-interrupts = { path = "../../interrupts", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-drivers = { path = "../", version = "0.1.0" } +narf-driver-runtime = { path = "../runtime", version = "0.1.0", default-features = false, features = ["kernel"] } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } +narf-scheduler = { path = "../../scheduler", version = "0.1.0" } +narf-console = { path = "../../console", version = "0.1.0" } +narf-firmware = { path = "../../firmware", version = "0.1.0" } +narf-crypto = { path = "../../crypto", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-drivers-sdio = { path = "../sdio", version = "0.1.0" } +narf-drivers-usb = { path = "../usb", version = "0.1.0" } async-trait = "0.1" [features] diff --git a/drivers/wwan/Cargo.toml b/drivers/wwan/Cargo.toml index b26054c90..228fc4ecb 100644 --- a/drivers/wwan/Cargo.toml +++ b/drivers/wwan/Cargo.toml @@ -12,8 +12,8 @@ name = "narf_drivers_wwan" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/edid/Cargo.toml b/edid/Cargo.toml index fa4aab106..b251d7276 100644 --- a/edid/Cargo.toml +++ b/edid/Cargo.toml @@ -12,7 +12,7 @@ name = "narf_edid" path = "src/lib.rs" [dependencies] -narf-kernel-test = { path = "../verification/kernel-test" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/efi/Cargo.toml b/efi/Cargo.toml index 716b13f48..e6dc4dd6b 100644 --- a/efi/Cargo.toml +++ b/efi/Cargo.toml @@ -12,7 +12,7 @@ name = "narf_efi" path = "src/lib.rs" [dependencies] -narf-kernel-test = { path = "../verification/kernel-test" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/event_bus/Cargo.toml b/event_bus/Cargo.toml index 3a4e8c052..700002549 100644 --- a/event_bus/Cargo.toml +++ b/event_bus/Cargo.toml @@ -12,10 +12,10 @@ name = "narf_event_bus" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-time = { path = "../time" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/fb/Cargo.toml b/fb/Cargo.toml index fb2bd0783..81a7e61cb 100644 --- a/fb/Cargo.toml +++ b/fb/Cargo.toml @@ -12,30 +12,30 @@ name = "narf_fb" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-graphics = { path = "../graphics" } -narf-graphics-driver = { path = "../drivers/graphics" } -narf-drivers-virtio = { path = "../drivers/virtio" } -narf-drivers-gpu = { path = "../drivers/gpu" } -narf-capabilities = { path = "../capabilities" } -narf-init = { path = "../init" } -narf-ipc = { path = "../ipc" } -narf-memory = { path = "../memory" } -narf-userspace = { path = "../userspace" } -narf-scheduler = { path = "../scheduler" } -narf-time = { path = "../time" } -narf-shmem = { path = "../shmem" } -narf-input = { path = "../input" } -narf-interrupts = { path = "../interrupts" } -narf-drivers-i2c = { path = "../drivers/i2c" } -narf-drivers-gpio = { path = "../drivers/gpio" } -narf-drivers-usb = { path = "../drivers/usb" } -narf-console = { path = "../console" } -narf-aml = { path = "../aml" } -narf-power = { path = "../power" } -narf-kernel-test = { path = "../verification/kernel-test" } -narf-filesystem = { path = "../filesystem" } -narf-arch = { path = "../arch" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-graphics = { path = "../graphics", version = "0.1.0" } +narf-graphics-driver = { path = "../drivers/graphics", version = "0.1.0" } +narf-drivers-virtio = { path = "../drivers/virtio", version = "0.1.0" } +narf-drivers-gpu = { path = "../drivers/gpu", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-init = { path = "../init", version = "0.1.0" } +narf-ipc = { path = "../ipc", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-userspace = { path = "../userspace", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-shmem = { path = "../shmem", version = "0.1.0" } +narf-input = { path = "../input", version = "0.1.0" } +narf-interrupts = { path = "../interrupts", version = "0.1.0" } +narf-drivers-i2c = { path = "../drivers/i2c", version = "0.1.0" } +narf-drivers-gpio = { path = "../drivers/gpio", version = "0.1.0" } +narf-drivers-usb = { path = "../drivers/usb", version = "0.1.0" } +narf-console = { path = "../console", version = "0.1.0" } +narf-aml = { path = "../aml", version = "0.1.0" } +narf-power = { path = "../power", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } +narf-filesystem = { path = "../filesystem", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } [features] # Marker the frame-level `kernel-test` feature switches on so this diff --git a/filesystem/Cargo.toml b/filesystem/Cargo.toml index bc8e5afd5..e7f7c3a95 100644 --- a/filesystem/Cargo.toml +++ b/filesystem/Cargo.toml @@ -12,22 +12,22 @@ name = "narf_filesystem" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-arch = { path = "../arch" } -narf-boot = { path = "../boot" } -narf-memory = { path = "../memory" } -narf-init = { path = "../init" } -narf-capabilities = { path = "../capabilities" } -narf-block = { path = "../block" } -narf-io = { path = "../io" } -narf-scheduler = { path = "../scheduler" } -narf-time = { path = "../time" } -narf-input = { path = "../input" } -narf-bus = { path = "../bus" } -narf-console = { path = "../console" } -narf-interrupts = { path = "../interrupts" } -narf-kernel-test = { path = "../verification/kernel-test" } -narf-efi = { path = "../efi" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-boot = { path = "../boot", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-init = { path = "../init", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-block = { path = "../block", version = "0.1.0" } +narf-io = { path = "../io", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-input = { path = "../input", version = "0.1.0" } +narf-bus = { path = "../bus", version = "0.1.0" } +narf-console = { path = "../console", version = "0.1.0" } +narf-interrupts = { path = "../interrupts", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } +narf-efi = { path = "../efi", version = "0.1.0" } [features] # Linux-shaped mount/bind-mount/overlayfs plumbing. Stub for Waves 63-67. diff --git a/firmware/Cargo.toml b/firmware/Cargo.toml index c00d7b09c..87b751fe2 100644 --- a/firmware/Cargo.toml +++ b/firmware/Cargo.toml @@ -19,16 +19,16 @@ default = [] firmware-allow-unsigned = [] [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-io = { path = "../io" } -narf-rcu = { path = "../rcu" } -narf-crypto = { path = "../crypto" } -narf-kernel-test = { path = "../verification/kernel-test" } -narf-init = { path = "../init" } -narf-filesystem = { path = "../filesystem" } -narf-initramfs = { path = "../initramfs" } -narf-scheduler = { path = "../scheduler" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-io = { path = "../io", version = "0.1.0" } +narf-rcu = { path = "../rcu", version = "0.1.0" } +narf-crypto = { path = "../crypto", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } +narf-init = { path = "../init", version = "0.1.0" } +narf-filesystem = { path = "../filesystem", version = "0.1.0" } +narf-initramfs = { path = "../initramfs", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } [lints] workspace = true diff --git a/firmware/fdt/Cargo.toml b/firmware/fdt/Cargo.toml index dc0011d1a..293f0b4bf 100644 --- a/firmware/fdt/Cargo.toml +++ b/firmware/fdt/Cargo.toml @@ -12,8 +12,8 @@ name = "narf_firmware_fdt" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/firmware/fw_cfg/Cargo.toml b/firmware/fw_cfg/Cargo.toml index 58cc514ab..863946e0d 100644 --- a/firmware/fw_cfg/Cargo.toml +++ b/firmware/fw_cfg/Cargo.toml @@ -12,10 +12,10 @@ name = "narf_firmware_fw_cfg" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-arch = { path = "../../arch" } -narf-init = { path = "../../init" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-arch = { path = "../../arch", version = "0.1.0" } +narf-init = { path = "../../init", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/firmware/smbios/Cargo.toml b/firmware/smbios/Cargo.toml index 96e1e8eee..92b08aa7e 100644 --- a/firmware/smbios/Cargo.toml +++ b/firmware/smbios/Cargo.toml @@ -12,9 +12,9 @@ name = "narf_firmware_smbios" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../../lib" } -narf-memory = { path = "../../memory" } -narf-kernel-test = { path = "../../verification/kernel-test" } +narf-lib = { path = "../../lib", version = "0.1.0" } +narf-memory = { path = "../../memory", version = "0.1.0" } +narf-kernel-test = { path = "../../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/frame/Cargo.toml b/frame/Cargo.toml index f4d35c897..a269cd558 100644 --- a/frame/Cargo.toml +++ b/frame/Cargo.toml @@ -12,93 +12,93 @@ name = "narf-frame" path = "src/main.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-security = { path = "../security" } -narf-acpi = { path = "../acpi" } -narf-aml = { path = "../aml" } -narf-arch = { path = "../arch" } -narf-memory = { path = "../memory" } -narf-boot = { path = "../boot" } -narf-console = { path = "../console" } -narf-crypto = { path = "../crypto" } -narf-time = { path = "../time" } -narf-scheduler = { path = "../scheduler" } -narf-interrupts = { path = "../interrupts" } -narf-bus = { path = "../bus" } -narf-event-bus = { path = "../event_bus" } -narf-io = { path = "../io" } -narf-block = { path = "../block" } -narf-drivers-nvme = { path = "../drivers/nvme" } -narf-drivers-virtio = { path = "../drivers/virtio" } -narf-drivers-net = { path = "../drivers/net" } -narf-net = { path = "../net" } -narf-drivers-wireless = { path = "../drivers/wireless" } -narf-drivers-i3c = { path = "../drivers/i3c" } -narf-drivers-i2c = { path = "../drivers/i2c" } -narf-drivers-gpio = { path = "../drivers/gpio" } -narf-drivers = { path = "../drivers" } -narf-drivers-storage = { path = "../drivers/storage" } -narf-drivers-usb = { path = "../drivers/usb" } -narf-drivers-video = { path = "../drivers/video" } -narf-drivers-media = { path = "../drivers/media" } -narf-drivers-thunderbolt = { path = "../drivers/thunderbolt" } -narf-drivers-fingerprint = { path = "../drivers/fingerprint" } -narf-drivers-platform = { path = "../drivers/platform" } -narf-drivers-fs-ext2 = { path = "../drivers/fs/ext2" } -narf-drivers-fs-ext4 = { path = "../drivers/fs/ext4" } -narf-drivers-fs-fat = { path = "../drivers/fs/fat" } -narf-drivers-fs-exfat = { path = "../drivers/fs/exfat" } -narf-drivers-fs-minix = { path = "../drivers/fs/minix" } -narf-drivers-fs-iso9660 = { path = "../drivers/fs/iso9660" } -narf-drivers-fs-udf = { path = "../drivers/fs/udf" } -narf-drivers-fs-9p = { path = "../drivers/fs/9p" } -narf-drivers-fs-squashfs = { path = "../drivers/fs/squashfs" } -narf-drivers-fs-btrfs = { path = "../drivers/fs/btrfs" } -narf-input = { path = "../input" } -narf-input-driver = { path = "../drivers/input" } -narf-graphics = { path = "../graphics" } -narf-graphics-driver = { path = "../drivers/graphics" } -narf-drivers-gpu = { path = "../drivers/gpu" } -narf-drivers-nvidia = { path = "../drivers/nvidia" } -narf-drivers-psp = { path = "../drivers/psp" } -narf-drivers-crypto = { path = "../drivers/crypto" } -narf-init = { path = "../init" } -narf-fb = { path = "../fb" } -narf-audio = { path = "../audio" } -narf-bluetooth = { path = "../bluetooth" } -narf-edid = { path = "../edid" } -narf-efi = { path = "../efi" } -narf-hid = { path = "../hid" } -narf-pinctrl = { path = "../pinctrl" } -narf-usbpd = { path = "../usbpd" } -narf-drivers-usbpd = { path = "../drivers/usbpd" } -narf-wireless = { path = "../wireless" } -narf-accel = { path = "../accel" } -narf-tpm = { path = "../tpm" } -narf-i3c = { path = "../i3c" } -narf-pwm = { path = "../pwm" } -narf-drivers-leds = { path = "../drivers/leds" } -narf-drivers-backlight = { path = "../drivers/backlight" } -narf-pmbus = { path = "../pmbus" } -narf-spdm = { path = "../spdm" } -narf-scmi = { path = "../scmi" } -narf-shmem = { path = "../shmem" } -narf-firmware = { path = "../firmware" } -narf-firmware-fw-cfg = { path = "../firmware/fw_cfg" } -narf-firmware-smbios = { path = "../firmware/smbios" } -narf-firmware-fdt = { path = "../firmware/fdt" } -narf-initramfs = { path = "../initramfs" } -narf-power = { path = "../power" } -narf-observability = { path = "../observability" } -narf-rcu = { path = "../rcu" } -narf-filesystem = { path = "../filesystem" } -narf-userspace = { path = "../userspace" } -narf-user-runtime = { path = "../user-runtime" } -narf-bpf = { path = "../bpf" } -narf-bpf-idle = { path = "../bpf-idle", optional = true } -narf-bpf-leds = { path = "../bpf-leds", optional = true } -narf-kernel-test = { path = "../verification/kernel-test" } -narf-verification = { path = "../verification", optional = true } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-security = { path = "../security", version = "0.1.0" } +narf-acpi = { path = "../acpi", version = "0.1.0" } +narf-aml = { path = "../aml", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-boot = { path = "../boot", version = "0.1.0" } +narf-console = { path = "../console", version = "0.1.0" } +narf-crypto = { path = "../crypto", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-interrupts = { path = "../interrupts", version = "0.1.0" } +narf-bus = { path = "../bus", version = "0.1.0" } +narf-event-bus = { path = "../event_bus", version = "0.1.0" } +narf-io = { path = "../io", version = "0.1.0" } +narf-block = { path = "../block", version = "0.1.0" } +narf-drivers-nvme = { path = "../drivers/nvme", version = "0.1.0" } +narf-drivers-virtio = { path = "../drivers/virtio", version = "0.1.0" } +narf-drivers-net = { path = "../drivers/net", version = "0.1.0" } +narf-net = { path = "../net", version = "0.1.0" } +narf-drivers-wireless = { path = "../drivers/wireless", version = "0.1.0" } +narf-drivers-i3c = { path = "../drivers/i3c", version = "0.1.0" } +narf-drivers-i2c = { path = "../drivers/i2c", version = "0.1.0" } +narf-drivers-gpio = { path = "../drivers/gpio", version = "0.1.0" } +narf-drivers = { path = "../drivers", version = "0.1.0" } +narf-drivers-storage = { path = "../drivers/storage", version = "0.1.0" } +narf-drivers-usb = { path = "../drivers/usb", version = "0.1.0" } +narf-drivers-video = { path = "../drivers/video", version = "0.1.0" } +narf-drivers-media = { path = "../drivers/media", version = "0.1.0" } +narf-drivers-thunderbolt = { path = "../drivers/thunderbolt", version = "0.1.0" } +narf-drivers-fingerprint = { path = "../drivers/fingerprint", version = "0.1.0" } +narf-drivers-platform = { path = "../drivers/platform", version = "0.1.0" } +narf-drivers-fs-ext2 = { path = "../drivers/fs/ext2", version = "0.1.0" } +narf-drivers-fs-ext4 = { path = "../drivers/fs/ext4", version = "0.1.0" } +narf-drivers-fs-fat = { path = "../drivers/fs/fat", version = "0.1.0" } +narf-drivers-fs-exfat = { path = "../drivers/fs/exfat", version = "0.1.0" } +narf-drivers-fs-minix = { path = "../drivers/fs/minix", version = "0.1.0" } +narf-drivers-fs-iso9660 = { path = "../drivers/fs/iso9660", version = "0.1.0" } +narf-drivers-fs-udf = { path = "../drivers/fs/udf", version = "0.1.0" } +narf-drivers-fs-9p = { path = "../drivers/fs/9p", version = "0.1.0" } +narf-drivers-fs-squashfs = { path = "../drivers/fs/squashfs", version = "0.1.0" } +narf-drivers-fs-btrfs = { path = "../drivers/fs/btrfs", version = "0.1.0" } +narf-input = { path = "../input", version = "0.1.0" } +narf-input-driver = { path = "../drivers/input", version = "0.1.0" } +narf-graphics = { path = "../graphics", version = "0.1.0" } +narf-graphics-driver = { path = "../drivers/graphics", version = "0.1.0" } +narf-drivers-gpu = { path = "../drivers/gpu", version = "0.1.0" } +narf-drivers-nvidia = { path = "../drivers/nvidia", version = "0.1.0" } +narf-drivers-psp = { path = "../drivers/psp", version = "0.1.0" } +narf-drivers-crypto = { path = "../drivers/crypto", version = "0.1.0" } +narf-init = { path = "../init", version = "0.1.0" } +narf-fb = { path = "../fb", version = "0.1.0" } +narf-audio = { path = "../audio", version = "0.1.0" } +narf-bluetooth = { path = "../bluetooth", version = "0.1.0" } +narf-edid = { path = "../edid", version = "0.1.0" } +narf-efi = { path = "../efi", version = "0.1.0" } +narf-hid = { path = "../hid", version = "0.1.0" } +narf-pinctrl = { path = "../pinctrl", version = "0.1.0" } +narf-usbpd = { path = "../usbpd", version = "0.1.0" } +narf-drivers-usbpd = { path = "../drivers/usbpd", version = "0.1.0" } +narf-wireless = { path = "../wireless", version = "0.1.0" } +narf-accel = { path = "../accel", version = "0.1.0" } +narf-tpm = { path = "../tpm", version = "0.1.0" } +narf-i3c = { path = "../i3c", version = "0.1.0" } +narf-pwm = { path = "../pwm", version = "0.1.0" } +narf-drivers-leds = { path = "../drivers/leds", version = "0.1.0" } +narf-drivers-backlight = { path = "../drivers/backlight", version = "0.1.0" } +narf-pmbus = { path = "../pmbus", version = "0.1.0" } +narf-spdm = { path = "../spdm", version = "0.1.0" } +narf-scmi = { path = "../scmi", version = "0.1.0" } +narf-shmem = { path = "../shmem", version = "0.1.0" } +narf-firmware = { path = "../firmware", version = "0.1.0" } +narf-firmware-fw-cfg = { path = "../firmware/fw_cfg", version = "0.1.0" } +narf-firmware-smbios = { path = "../firmware/smbios", version = "0.1.0" } +narf-firmware-fdt = { path = "../firmware/fdt", version = "0.1.0" } +narf-initramfs = { path = "../initramfs", version = "0.1.0" } +narf-power = { path = "../power", version = "0.1.0" } +narf-observability = { path = "../observability", version = "0.1.0" } +narf-rcu = { path = "../rcu", version = "0.1.0" } +narf-filesystem = { path = "../filesystem", version = "0.1.0" } +narf-userspace = { path = "../userspace", version = "0.1.0" } +narf-user-runtime = { path = "../user-runtime", version = "0.1.0" } +narf-bpf = { path = "../bpf", version = "0.1.0" } +narf-bpf-idle = { path = "../bpf-idle", version = "0.1.0", optional = true } +narf-bpf-leds = { path = "../bpf-leds", version = "0.1.0", optional = true } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } +narf-verification = { path = "../verification", version = "0.1.0", optional = true } [features] # Profiling: emit a `perf stat`-style line (per-CPU narf_lib::perf software diff --git a/graphics/Cargo.toml b/graphics/Cargo.toml index 745c60f36..1ed2b6b2e 100644 --- a/graphics/Cargo.toml +++ b/graphics/Cargo.toml @@ -12,9 +12,9 @@ name = "narf_graphics" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-kernel-test = { path = "../verification/kernel-test" } -narf-drivers = { path = "../drivers" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } +narf-drivers = { path = "../drivers", version = "0.1.0" } [lints] workspace = true diff --git a/hid/Cargo.toml b/hid/Cargo.toml index acf34469b..c8f885f02 100644 --- a/hid/Cargo.toml +++ b/hid/Cargo.toml @@ -12,7 +12,7 @@ name = "narf_hid" path = "src/lib.rs" [dependencies] -narf-kernel-test = { path = "../verification/kernel-test" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/i3c/Cargo.toml b/i3c/Cargo.toml index 1860de323..92f6d85ef 100644 --- a/i3c/Cargo.toml +++ b/i3c/Cargo.toml @@ -1,16 +1,20 @@ [package] name = "narf-i3c" -version = "0.1.0" -edition = "2021" +description = "Transport-neutral I3C bus types and controller interfaces for NARF." +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +repository.workspace = true [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-io = { path = "../io" } -narf-scheduler = { path = "../scheduler" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-io = { path = "../io", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } async-trait = "0.1" futures = { version = "0.3", default-features = false } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } bitflags = "2.4" [features] diff --git a/init/Cargo.toml b/init/Cargo.toml index 715c3eda8..af5477307 100644 --- a/init/Cargo.toml +++ b/init/Cargo.toml @@ -12,10 +12,10 @@ name = "narf_init" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-memory = { path = "../memory" } -narf-time = { path = "../time" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/initramfs/Cargo.toml b/initramfs/Cargo.toml index f80221182..e10960cd3 100644 --- a/initramfs/Cargo.toml +++ b/initramfs/Cargo.toml @@ -12,12 +12,12 @@ name = "narf_initramfs" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-filesystem = { path = "../filesystem" } -narf-init = { path = "../init" } -narf-capabilities = { path = "../capabilities" } -narf-boot = { path = "../boot" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-filesystem = { path = "../filesystem", version = "0.1.0" } +narf-init = { path = "../init", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-boot = { path = "../boot", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/input/Cargo.toml b/input/Cargo.toml index 838d5ed8a..210836ae3 100644 --- a/input/Cargo.toml +++ b/input/Cargo.toml @@ -12,12 +12,12 @@ name = "narf_input" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-init = { path = "../init" } -narf-drivers = { path = "../drivers" } -narf-kernel-test = { path = "../verification/kernel-test" } -narf-time = { path = "../time" } -narf-scheduler = { path = "../scheduler" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-init = { path = "../init", version = "0.1.0" } +narf-drivers = { path = "../drivers", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } [lints] workspace = true diff --git a/interrupts/Cargo.toml b/interrupts/Cargo.toml index 17a690907..28591e81c 100644 --- a/interrupts/Cargo.toml +++ b/interrupts/Cargo.toml @@ -12,14 +12,14 @@ name = "narf_interrupts" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-arch = { path = "../arch" } -narf-memory = { path = "../memory" } -narf-time = { path = "../time" } -narf-acpi = { path = "../acpi" } -narf-scheduler = { path = "../scheduler" } -narf-console = { path = "../console" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-acpi = { path = "../acpi", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-console = { path = "../console", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/io/Cargo.toml b/io/Cargo.toml index f9cca63ce..a66159dc1 100644 --- a/io/Cargo.toml +++ b/io/Cargo.toml @@ -12,11 +12,11 @@ name = "narf_io" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-memory = { path = "../memory" } -narf-capabilities = { path = "../capabilities" } -narf-acpi = { path = "../acpi" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-acpi = { path = "../acpi", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] # Declared so `#[cfg(feature = "kernel-test")]` in src/ doesn't diff --git a/ipc/Cargo.toml b/ipc/Cargo.toml index 0772af830..b2c55dcef 100644 --- a/ipc/Cargo.toml +++ b/ipc/Cargo.toml @@ -12,13 +12,13 @@ name = "narf_ipc" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-kernel-test = { path = "../verification/kernel-test" } -narf-scheduler = { path = "../scheduler" } -narf-memory = { path = "../memory" } -narf-io = { path = "../io" } -narf-arch = { path = "../arch" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-io = { path = "../io", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } [lints] workspace = true diff --git a/lib/Cargo.toml b/lib/Cargo.toml index ed5ee30ab..4d7b77956 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -12,7 +12,7 @@ name = "narf_lib" path = "src/lib.rs" [dependencies] -narf-kernel-test = { path = "../verification/kernel-test" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/memory/Cargo.toml b/memory/Cargo.toml index 7bbba7f7a..f00e114f4 100644 --- a/memory/Cargo.toml +++ b/memory/Cargo.toml @@ -12,10 +12,10 @@ name = "narf_memory" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-arch = { path = "../arch" } -narf-capabilities = { path = "../capabilities" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] default = ["linux-compat"] diff --git a/modules/Cargo.toml b/modules/Cargo.toml index 65dc38c88..c3bc4501b 100644 --- a/modules/Cargo.toml +++ b/modules/Cargo.toml @@ -12,10 +12,10 @@ name = "narf_modules" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-kernel-test = { path = "../verification/kernel-test" } -narf-filesystem = { path = "../filesystem" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } +narf-filesystem = { path = "../filesystem", version = "0.1.0" } [lints] workspace = true diff --git a/modules/MODULE_AUTHORING.md b/modules/MODULE_AUTHORING.md index 385b1a775..f33e43fd0 100644 --- a/modules/MODULE_AUTHORING.md +++ b/modules/MODULE_AUTHORING.md @@ -24,9 +24,10 @@ crate-type = ["staticlib"] # produces .a; we extract the .o [dependencies] # Modules link against the kernel's exported symbols via narf-modules. -# In-tree the path; out-of-tree use the version published on crates.io. -narf-modules = { path = "../narf-modules" } -narf-capabilities = { path = "../narf-capabilities" } +# In-tree manifests add a path; out-of-tree crates use the synchronized +# version published on crates.io. +narf-modules = "0.1.0" +narf-capabilities = "0.1.0" ``` Source layout: diff --git a/narf-libc/Cargo.lock b/narf-libc/Cargo.lock index 65517859d..2d38a6ebf 100644 --- a/narf-libc/Cargo.lock +++ b/narf-libc/Cargo.lock @@ -4,11 +4,11 @@ version = 4 [[package]] name = "narf-libc" -version = "0.0.0" +version = "0.1.0" dependencies = [ "narf-user-runtime", ] [[package]] name = "narf-user-runtime" -version = "0.0.0" +version = "0.1.0" diff --git a/narf-libc/Cargo.toml b/narf-libc/Cargo.toml index 42fa0524a..31e6ceae4 100644 --- a/narf-libc/Cargo.toml +++ b/narf-libc/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "narf-libc" description = "relibc-shaped libc shim for NARF user binaries (Path B)" -version = "0.0.0" +version = "0.1.0" edition = "2021" rust-version = "1.85" license = "GPL-2.0-or-later" @@ -12,7 +12,7 @@ name = "narf_libc" path = "src/lib.rs" [dependencies] -narf-user-runtime = { path = "../user-runtime" } +narf-user-runtime = { path = "../user-runtime", version = "0.1.0" } # Sibling-of-narf-testbin pattern: terminate the workspace walk so # the kernel workspace's fat-LTO release settings + code-model=kernel diff --git a/narf-libc/validate/Cargo.toml b/narf-libc/validate/Cargo.toml index afe8ac454..e710a939c 100644 --- a/narf-libc/validate/Cargo.toml +++ b/narf-libc/validate/Cargo.toml @@ -3,6 +3,7 @@ name = "narf-libc-validate" description = "Smoke binary for narf-libc — links against the relibc-shaped libc shim and prints a startup line." version = "0.0.0" edition = "2021" +publish = false rust-version = "1.85" license = "GPL-2.0-or-later" diff --git a/net/Cargo.toml b/net/Cargo.toml index ba8eb3754..d693e158b 100644 --- a/net/Cargo.toml +++ b/net/Cargo.toml @@ -12,12 +12,12 @@ name = "narf_net" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-ipc = { path = "../ipc" } -narf-io = { path = "../io" } -narf-scheduler = { path = "../scheduler" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-ipc = { path = "../ipc", version = "0.1.0" } +narf-io = { path = "../io", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/observability/Cargo.toml b/observability/Cargo.toml index 564726678..3ced06705 100644 --- a/observability/Cargo.toml +++ b/observability/Cargo.toml @@ -12,12 +12,12 @@ name = "narf_observability" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-arch = { path = "../arch" } -narf-capabilities = { path = "../capabilities" } -narf-tracing = { path = "../tracing" } -narf-time = { path = "../time" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-tracing = { path = "../tracing", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/packaging/README.md b/packaging/README.md index 2de92c65a..1d026e247 100644 --- a/packaging/README.md +++ b/packaging/README.md @@ -30,22 +30,23 @@ Developers working from a source checkout may install the optional Cargo subcommand: ```sh -cargo install --path build/cargo-narf +cargo install cargo-narf cargo narf detect -cargo narf package --version 0.5.0 --formats auto +cargo narf package --version 0.1.0 --formats auto ``` `auto` reads `/etc/os-release`. The wrapper locates the checkout and calls the same reproducible `build-release.sh` path used by release CI; it does not carry -a second package implementation. +a second package implementation. Run it inside a NARF checkout or pass +`--repo /path/to/narf` explicitly. For a local installation, the explicit `install` command builds one native artifact and delegates it to the host package manager: ```sh -cargo narf install --version 0.5.0 +cargo narf install --version 0.1.0 # Inspect the final privileged command without executing it: -cargo narf install --version 0.5.0 --dry-run +cargo narf install --version 0.1.0 --dry-run ``` Debian-family systems use apt/dpkg, RPM-family systems use dnf/rpm, and Arch @@ -55,10 +56,34 @@ files into `/boot` itself: package ownership, upgrade ordering and removal stay with the native distribution database. End users installing release `.deb`, `.rpm`, or `.pkg.tar.zst` artifacts do not need Cargo or a Rust toolchain. +## Crates.io SDK release + +Reusable workspace components and `cargo-narf` are published at one +synchronized version so custom kernels can consume a coherent dependency graph. +In-tree manifests retain `path` dependencies for development and also specify +the matching registry version used outside the repository. The separately +rooted `narf-libc` is injected into the release graph after +`narf-user-runtime`; repository-only `xtask` and validation/boot helpers remain +private. + +Inspect the deterministic dependency order or package-check the complete +release without uploading: + +```sh +packaging/publish-crates.sh --version 0.1.0 --plan +packaging/publish-crates.sh --version 0.1.0 --check +``` + +The release workflow runs the same preflight and invokes `--execute` only from +the matching clean, annotated, maintainer-signed tag. It requires the scoped +`CRATES_IO_TOKEN` repository secret. Uploads are dependency ordered and +resumable: an exact crate version already visible on crates.io is skipped. A +human maintainer must create and sign the release tag; AI agents may not do so. + Build every format available on the current host: ```sh -packaging/build-release.sh --version 0.5.0 --formats all +packaging/build-release.sh --version 0.1.0 --formats all ``` The script builds `target/x86_64-unknown-none/release/narf-frame` through @@ -77,14 +102,14 @@ To test packaging without compiling the kernel, provide that canonical kernel artifact and use `--skip-build`: ```sh -packaging/build-release.sh --version 0.5.0 --skip-build +packaging/build-release.sh --version 0.1.0 --skip-build ``` ## Tagging -`prepare-tag.sh 0.5.0` validates the version, clean tree, current branch, and +`prepare-tag.sh 0.1.0` validates the version, clean tree, current branch, and release commit. It prints the signed-tag command by default. A human maintainer -may pass `--create` to create the signed `v0.5.0` tag locally, then push it +may pass `--create` to create the signed `v0.1.0` tag locally, then push it after review. The tool never pushes and AI agents must never create or sign a release tag. diff --git a/packaging/prepare-tag.sh b/packaging/prepare-tag.sh index 8cb3c5be0..22c90935c 100755 --- a/packaging/prepare-tag.sh +++ b/packaging/prepare-tag.sh @@ -21,6 +21,7 @@ done [[ $version =~ ^[0-9]+\.[0-9]+\.[0-9]+([.-][0-9A-Za-z][0-9A-Za-z.-]*)?$ ]] || { echo "invalid semantic version: $version" >&2; exit 1; } +packaging/publish-crates.sh --version "$version" --plan >/dev/null git diff --quiet git diff --cached --quiet [[ -z $(git status --porcelain --untracked-files=normal) ]] || @@ -41,4 +42,3 @@ fi git tag -s "v${version}" "$commit" -m "$subject" echo "Created signed local tag v${version}; review it before pushing." - diff --git a/packaging/publish-crates.sh b/packaging/publish-crates.sh new file mode 100755 index 000000000..fc6d99d95 --- /dev/null +++ b/packaging/publish-crates.sh @@ -0,0 +1,256 @@ +#!/usr/bin/env bash +set -euo pipefail + +usage() { + cat >&2 <<'EOF' +usage: packaging/publish-crates.sh --version VERSION [--plan|--check|--execute] + + --plan print the dependency-ordered public crate list + --check package-check every public crate without uploading (default) + --execute publish from the matching signed release tag +EOF + exit 2 +} + +version= +mode=check +while [[ $# -gt 0 ]]; do + case "$1" in + --version) [[ $# -ge 2 ]] || usage; version=${2#v}; shift 2 ;; + --plan) mode=plan; shift ;; + --check) mode=check; shift ;; + --execute) mode=execute; shift ;; + *) usage ;; + esac +done + +[[ $version =~ ^[0-9]+\.[0-9]+\.[0-9]+([.-][0-9A-Za-z][0-9A-Za-z.-]*)?$ ]] || { + echo "invalid or missing semantic version: ${version:-}" >&2 + exit 1 +} + +for tool in cargo git jq awk; do + command -v "$tool" >/dev/null 2>&1 || { + echo "required release tool is unavailable: $tool" >&2 + exit 1 + } +done +if [[ $mode == execute ]] && ! command -v curl >/dev/null 2>&1; then + echo "required release tool is unavailable: curl" >&2 + exit 1 +fi + +root=$(git rev-parse --show-toplevel) +cd "$root" +metadata=$(mktemp) +rows=$(mktemp) +plan=$(mktemp) +trap 'rm -f "$metadata" "$rows" "$plan"' EXIT + +cargo metadata --no-deps --format-version 1 >"$metadata" + +bad_versions=$(jq -r --arg version "$version" ' + .workspace_members as $members + | .packages[] + | select(.id as $id | $members | index($id)) + | select(.publish != []) + | select(.version != $version) + | "\(.name)=\(.version)" +' "$metadata") +[[ -z $bad_versions ]] || { + echo "public workspace crates do not match release version $version:" >&2 + echo "$bad_versions" >&2 + exit 1 +} + +private_crates=$(jq -r ' + .workspace_members as $members + | [.packages[] + | select(.id as $id | $members | index($id)) + | select(.publish == []) + | .name] + | sort + | join(" ") +' "$metadata") +[[ $private_crates == xtask ]] || { + echo "unexpected private workspace crate set: $private_crates" >&2 + exit 1 +} + +libc_version=$(cargo metadata --manifest-path narf-libc/Cargo.toml \ + --no-deps --format-version 1 | jq -r '.packages[] | select(.name == "narf-libc") | .version') +[[ $libc_version == "$version" ]] || { + echo "narf-libc is $libc_version, expected $version" >&2 + exit 1 +} + +bad_requirements=$(jq -r --arg version "^$version" ' + .workspace_members as $members + | .packages[] + | select(.id as $id | $members | index($id)) + | select(.publish != []) + | .name as $package + | .dependencies[] + | select(.path != null and .req != $version) + | "\($package) -> \(.name) requires \(.req)" +' "$metadata") +[[ -z $bad_requirements ]] || { + echo "internal path dependencies must carry registry version ^$version:" >&2 + echo "$bad_requirements" >&2 + exit 1 +} + +jq -r ' + .workspace_members as $members + | .packages[] + | select(.id as $id | $members | index($id)) + | select(.publish != []) + | [.name, ([.dependencies[] | select(.path != null) | .name] | unique | join(","))] + | @tsv +' "$metadata" >"$rows" +# narf-libc deliberately owns a separate workspace so user-space builds do not +# inherit kernel codegen settings. It is still part of the public SDK graph. +printf 'narf-libc\tnarf-user-runtime\n' >>"$rows" + +awk -F '\t' ' + { + if ($1 in node) { + print "duplicate crate in publication graph: " $1 > "/dev/stderr" + exit 2 + } + node[$1] = 1 + dependencies[$1] = $2 + count++ + } + END { + for (package in node) { + dep_count = split(dependencies[package], deps, ",") + for (i = 1; i <= dep_count; i++) { + dependency = deps[i] + if (dependency != "" && dependency in node && dependency != package) { + edge[dependency, package] = 1 + indegree[package]++ + } + } + } + for (emitted = 0; emitted < count; emitted++) { + next_package = "" + for (package in node) { + if (!done[package] && indegree[package] == 0 && + (next_package == "" || package < next_package)) { + next_package = package + } + } + if (next_package == "") { + print "cycle in crates.io publication graph" > "/dev/stderr" + exit 3 + } + print next_package + done[next_package] = 1 + for (package in node) { + if (edge[next_package, package]) { + indegree[package]-- + } + } + } + } +' "$rows" >"$plan" + +expected=$(wc -l <"$rows") +actual=$(wc -l <"$plan") +[[ $actual -eq $expected ]] || { + echo "publication plan contains $actual crates, expected $expected" >&2 + exit 1 +} + +if [[ $mode == plan ]]; then + cat "$plan" + exit 0 +fi + +echo "package-checking $actual crates at version $version" +# Cargo understands path dependencies between members and packages this set in +# dependency order. narf-compat-relibc is checked separately because its +# narf-libc dependency intentionally lives in a nested workspace. +cargo publish --workspace --exclude narf-compat-relibc \ + --dry-run --allow-dirty --no-verify --quiet +# Local patches let Cargo normalize and archive the two cross-workspace crates +# before their registry dependencies exist. Published manifests still contain +# registry requirements; the patches affect this preflight only. +cargo package --manifest-path narf-libc/Cargo.toml --no-verify --allow-dirty --quiet \ + --config "patch.crates-io.narf-user-runtime.path=\"$root/user-runtime\"" +cargo package --package narf-compat-relibc --no-verify --allow-dirty --quiet \ + --config "patch.crates-io.narf-libc.path=\"$root/narf-libc\"" \ + --config "patch.crates-io.narf-user-runtime.path=\"$root/user-runtime\"" \ + --config "patch.crates-io.narf-kernel-test.path=\"$root/verification/kernel-test\"" + +oversized=$(find target/package -maxdepth 1 -type f \ + -name "*-$version.crate" -size +10000000c -print) +[[ -z $oversized ]] || { + echo "crate archives exceed crates.io's 10 MB limit:" >&2 + echo "$oversized" >&2 + exit 1 +} + +if [[ $mode == check ]]; then + echo "crate publication preflight passed" + exit 0 +fi + +[[ -z $(git status --porcelain) ]] || { + echo "refusing to publish from a dirty worktree" >&2 + exit 1 +} +tag="v$version" +tag_commit=$(git rev-list -n 1 "$tag" 2>/dev/null || true) +[[ -n $tag_commit && $tag_commit == "$(git rev-parse HEAD)" ]] || { + echo "release tag $tag does not point at HEAD" >&2 + exit 1 +} +[[ $(git cat-file -t "refs/tags/$tag" 2>/dev/null || true) == tag ]] || { + echo "release tag $tag is not an annotated tag" >&2 + exit 1 +} +if [[ ${NARF_RELEASE_TAG_VERIFIED:-0} != 1 ]]; then + git verify-tag "$tag" +fi +[[ -n ${CARGO_REGISTRY_TOKEN:-} ]] || { + echo "CARGO_REGISTRY_TOKEN is required for --execute" >&2 + exit 1 +} + +published=0 +while IFS= read -r crate; do + endpoint="https://crates.io/api/v1/crates/$crate/$version" + status=$(curl -sS -o /dev/null -w '%{http_code}' \ + -A 'narf-crate-publisher/0.1 (https://github.com/hodgesds/narf)' "$endpoint") + case "$status" in + 200) + echo "already published: $crate $version" + continue + ;; + 404) ;; + *) + echo "crates.io returned HTTP $status for $crate $version" >&2 + exit 1 + ;; + esac + + echo "publishing $crate $version" + if [[ $crate == narf-libc ]]; then + command=(cargo publish --manifest-path narf-libc/Cargo.toml --locked --no-verify) + else + command=(cargo publish --package "$crate" --locked --no-verify) + fi + if ! "${command[@]}"; then + # Cargo can time out after a successful upload while waiting for the + # sparse index. Treat the version appearing in the API as success so a + # signed-tag release can be resumed safely. + status=$(curl -sS -o /dev/null -w '%{http_code}' \ + -A 'narf-crate-publisher/0.1 (https://github.com/hodgesds/narf)' "$endpoint") + [[ $status == 200 ]] || exit 1 + fi + published=$((published + 1)) +done <"$plan" + +echo "crate release complete: $published uploaded, $((actual - published)) already present" diff --git a/packaging/test-publish-crates.sh b/packaging/test-publish-crates.sh new file mode 100755 index 000000000..89fd17f07 --- /dev/null +++ b/packaging/test-publish-crates.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +set -euo pipefail + +root=$(git rev-parse --show-toplevel) +cd "$root" +plan=$(mktemp) +trap 'rm -f "$plan"' EXIT +version=$(cargo metadata --no-deps --format-version 1 | + jq -r '.packages[] | select(.name == "cargo-narf") | .version') + +packaging/publish-crates.sh --version "$version" --plan >"$plan" + +[[ $(wc -l <"$plan") -eq 117 ]] +[[ $(sort -u "$plan" | wc -l) -eq 117 ]] +! grep -qx xtask "$plan" + +line_of() { + grep -nx "$1" "$plan" | cut -d: -f1 +} + +kernel_test=$(line_of narf-kernel-test) +lib=$(line_of narf-lib) +user_runtime=$(line_of narf-user-runtime) +libc=$(line_of narf-libc) +relibc=$(line_of narf-compat-relibc) +frame=$(line_of narf-frame) + +((kernel_test < lib)) +((user_runtime < libc)) +((libc < relibc)) +((relibc < frame)) +[[ $frame -eq 117 ]] + +echo "crate publication plan tests passed" diff --git a/pinctrl/Cargo.toml b/pinctrl/Cargo.toml index cfcf1b49d..cd575f4fa 100644 --- a/pinctrl/Cargo.toml +++ b/pinctrl/Cargo.toml @@ -12,7 +12,7 @@ name = "narf_pinctrl" path = "src/lib.rs" [dependencies] -narf-kernel-test = { path = "../verification/kernel-test" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/pmbus/Cargo.toml b/pmbus/Cargo.toml index 16720f62a..4c36899f6 100644 --- a/pmbus/Cargo.toml +++ b/pmbus/Cargo.toml @@ -12,10 +12,10 @@ name = "narf_pmbus" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-scheduler = { path = "../scheduler" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } async-trait = "0.1" [features] diff --git a/power/Cargo.toml b/power/Cargo.toml index 9fd3e0b5e..1e5c5db9e 100644 --- a/power/Cargo.toml +++ b/power/Cargo.toml @@ -12,21 +12,21 @@ name = "narf_power" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-arch = { path = "../arch" } -narf-memory = { path = "../memory" } -narf-abi = { path = "../abi" } -narf-time = { path = "../time" } -narf-init = { path = "../init" } -narf-console = { path = "../console" } -narf-scheduler = { path = "../scheduler" } -narf-capabilities = { path = "../capabilities" } -narf-acpi = { path = "../acpi" } -narf-aml = { path = "../aml" } -narf-interrupts = { path = "../interrupts" } -narf-event-bus = { path = "../event_bus" } -narf-filesystem = { path = "../filesystem" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-abi = { path = "../abi", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-init = { path = "../init", version = "0.1.0" } +narf-console = { path = "../console", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-acpi = { path = "../acpi", version = "0.1.0" } +narf-aml = { path = "../aml", version = "0.1.0" } +narf-interrupts = { path = "../interrupts", version = "0.1.0" } +narf-event-bus = { path = "../event_bus", version = "0.1.0" } +narf-filesystem = { path = "../filesystem", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] linux-compat = ["narf-filesystem/linux-compat"] diff --git a/pwm/Cargo.toml b/pwm/Cargo.toml index cd78187fb..cda1d0dbd 100644 --- a/pwm/Cargo.toml +++ b/pwm/Cargo.toml @@ -12,10 +12,10 @@ name = "narf_pwm" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-scheduler = { path = "../scheduler" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } async-trait = "0.1" [features] diff --git a/rcu/Cargo.toml b/rcu/Cargo.toml index a09cb74b3..99d625dad 100644 --- a/rcu/Cargo.toml +++ b/rcu/Cargo.toml @@ -12,11 +12,11 @@ name = "narf_rcu" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-arch = { path = "../arch" } -narf-time = { path = "../time" } -narf-capabilities = { path = "../capabilities" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/safety-argument.toml b/safety-argument.toml index 42c2cbbb4..cc5924be3 100644 --- a/safety-argument.toml +++ b/safety-argument.toml @@ -1,7 +1,7 @@ [safety_argument] schema_version = 1 agent = "OpenAI Codex GPT-5" -prompt_hash = "6ad0d16abee10036094cd56a5bf070c4f85bfb17f06f0a95cfe7ff29e1f5c2f7" +prompt_hash = "1f76862e96411de766f4887f1338cead76c0e2a383144beb49c67529b7962813" [[invariants_preserved]] ref = "security-model/specification/spec.md#L39" @@ -291,3 +291,11 @@ argument = "The retarget hook continues to write only the current CPU's existing [[invariants_preserved]] ref = "security-model/specification/spec.md#L75" argument = "Private base-page teardown skips the external shared-alias transaction only while holding the address-space region tables continuously from SHARED classification through removal. Shared unmap and range punching retain transaction -> huge-region -> regular-region ordering through leaf removal, cross-CPU TLB invalidation, and the backing owner's release hook. A racing map cannot change the classification without the held region lock. The x86_64 range helper changes only lock granularity: it holds the same per-root page-table mutation lock across the batch, performs the same validated walk and local INVLPG for every present leaf, and callers retain the existing cross-CPU flush-before-frame-release ordering. Private COW ownership is unchanged." + +[[invariants_preserved]] +ref = "security-model/specification/spec.md#L39" +argument = "The frame, memory, capabilities, and scheduler changes are manifest-only registry metadata. Cargo continues to select the same local path packages, features, targets, profiles, and Rust sources for every in-tree build; the matching 0.1.0 requirement merely supplies an immutable crates.io fallback for external custom workspaces. No trusted subsystem, authority, domain transition, mapping, task state, or TCB boundary changes." + +[[invariants_preserved]] +ref = "security-model/specification/spec.md#L42" +argument = "Every registry fallback is constrained to the synchronized NARF 0.1 release line and package preflight verifies the complete dependency graph before a maintainer-signed tag can publish it. Capability checks, domain tags, PKRS/TCF save-restore, frame ownership, page-table permissions, and scheduler dispatch code are byte-for-byte unchanged; the workspace lockfile resolves the same local sources used by the existing verification gates." diff --git a/scheduler/Cargo.toml b/scheduler/Cargo.toml index ae4b046e7..772c83f00 100644 --- a/scheduler/Cargo.toml +++ b/scheduler/Cargo.toml @@ -12,14 +12,14 @@ name = "narf_scheduler" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-acpi = { path = "../acpi" } -narf-arch = { path = "../arch" } -narf-rcu = { path = "../rcu" } -narf-capabilities = { path = "../capabilities" } -narf-memory = { path = "../memory" } -narf-time = { path = "../time" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-acpi = { path = "../acpi", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-rcu = { path = "../rcu", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/scmi/Cargo.toml b/scmi/Cargo.toml index 48985d03d..03583520b 100644 --- a/scmi/Cargo.toml +++ b/scmi/Cargo.toml @@ -12,10 +12,10 @@ name = "narf_scmi" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-scheduler = { path = "../scheduler" } -narf-capabilities = { path = "../capabilities" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } async-trait = "0.1" [features] diff --git a/security/Cargo.toml b/security/Cargo.toml index 856bde4a6..db7da167d 100644 --- a/security/Cargo.toml +++ b/security/Cargo.toml @@ -8,8 +8,8 @@ license.workspace = true repository.workspace = true [dependencies] -narf-lib = { path = "../lib" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/shmem/Cargo.toml b/shmem/Cargo.toml index d6e89c50c..5e203ed25 100644 --- a/shmem/Cargo.toml +++ b/shmem/Cargo.toml @@ -12,13 +12,13 @@ name = "narf_shmem" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-init = { path = "../init" } -narf-memory = { path = "../memory" } -narf-userspace = { path = "../userspace" } -narf-io = { path = "../io" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-init = { path = "../init", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-userspace = { path = "../userspace", version = "0.1.0" } +narf-io = { path = "../io", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/spdm/Cargo.toml b/spdm/Cargo.toml index 9d1aea7cd..3f5ec0197 100644 --- a/spdm/Cargo.toml +++ b/spdm/Cargo.toml @@ -12,11 +12,11 @@ name = "narf_spdm" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-scheduler = { path = "../scheduler" } -narf-tpm = { path = "../tpm" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-tpm = { path = "../tpm", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } async-trait = "0.1" [features] diff --git a/time/Cargo.toml b/time/Cargo.toml index a2d5b86aa..1c76fabe4 100644 --- a/time/Cargo.toml +++ b/time/Cargo.toml @@ -12,11 +12,11 @@ name = "narf_time" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-arch = { path = "../arch" } -narf-console = { path = "../console" } -narf-capabilities = { path = "../capabilities" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-console = { path = "../console", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/tpm/Cargo.toml b/tpm/Cargo.toml index 122c5fa55..795c7fab1 100644 --- a/tpm/Cargo.toml +++ b/tpm/Cargo.toml @@ -1,16 +1,20 @@ [package] name = "narf-tpm" -version = "0.1.0" -edition = "2021" +description = "TPM 2.0 command, measurement, and attestation interfaces for NARF." +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +repository.workspace = true [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-crypto = { path = "../crypto" } -narf-scheduler = { path = "../scheduler" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-crypto = { path = "../crypto", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } async-trait = "0.1" futures = { version = "0.3", default-features = false } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/tracing/Cargo.toml b/tracing/Cargo.toml index c6bb99fa6..09d8da7f9 100644 --- a/tracing/Cargo.toml +++ b/tracing/Cargo.toml @@ -12,11 +12,11 @@ name = "narf_tracing" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-arch = { path = "../arch" } -narf-capabilities = { path = "../capabilities" } -narf-time = { path = "../time" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [lints] workspace = true diff --git a/usbpd/Cargo.toml b/usbpd/Cargo.toml index 5548d7eba..808d0b6ed 100644 --- a/usbpd/Cargo.toml +++ b/usbpd/Cargo.toml @@ -12,9 +12,9 @@ name = "narf_usbpd" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-capabilities = { path = "../capabilities" } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } [features] kernel-test = [] diff --git a/userspace/Cargo.toml b/userspace/Cargo.toml index 7611aad2a..b3eec13ea 100644 --- a/userspace/Cargo.toml +++ b/userspace/Cargo.toml @@ -12,31 +12,31 @@ name = "narf_userspace" path = "src/lib.rs" [dependencies] -narf-lib = { path = "../lib" } -narf-arch = { path = "../arch" } -narf-abi = { path = "../abi" } -narf-capabilities = { path = "../capabilities" } -narf-console = { path = "../console" } -narf-filesystem = { path = "../filesystem" } -narf-block = { path = "../block" } -narf-drivers-fs-fat = { path = "../drivers/fs/fat" } -narf-net = { path = "../net" } -narf-firmware = { path = "../firmware" } -narf-memory = { path = "../memory" } -narf-scheduler = { path = "../scheduler" } -narf-time = { path = "../time" } -narf-tracing = { path = "../tracing" } -narf-bpf = { path = "../bpf" } -narf-bpf-btf = { path = "../bpf/btf" } -narf-bpf-isa = { path = "../bpf/isa" } -narf-bpf-verifier = { path = "../bpf/verifier" } -narf-initramfs = { path = "../initramfs" } -narf-input = { path = "../input" } -narf-interrupts = { path = "../interrupts" } -narf-linux-perf-uapi = { path = "../compat/linux-perf-uapi" } -narf-kernel-test = { path = "../verification/kernel-test" } -narf-modules = { path = "../modules" } -narf-power = { path = "../power" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-abi = { path = "../abi", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-console = { path = "../console", version = "0.1.0" } +narf-filesystem = { path = "../filesystem", version = "0.1.0" } +narf-block = { path = "../block", version = "0.1.0" } +narf-drivers-fs-fat = { path = "../drivers/fs/fat", version = "0.1.0" } +narf-net = { path = "../net", version = "0.1.0" } +narf-firmware = { path = "../firmware", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-tracing = { path = "../tracing", version = "0.1.0" } +narf-bpf = { path = "../bpf", version = "0.1.0" } +narf-bpf-btf = { path = "../bpf/btf", version = "0.1.0" } +narf-bpf-isa = { path = "../bpf/isa", version = "0.1.0" } +narf-bpf-verifier = { path = "../bpf/verifier", version = "0.1.0" } +narf-initramfs = { path = "../initramfs", version = "0.1.0" } +narf-input = { path = "../input", version = "0.1.0" } +narf-interrupts = { path = "../interrupts", version = "0.1.0" } +narf-linux-perf-uapi = { path = "../compat/linux-perf-uapi", version = "0.1.0" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } +narf-modules = { path = "../modules", version = "0.1.0" } +narf-power = { path = "../power", version = "0.1.0" } [features] # Default-on so the workspace's `cargo xtask kernel-test` driver diff --git a/verification/Cargo.toml b/verification/Cargo.toml index 00af77acd..d097c86e6 100644 --- a/verification/Cargo.toml +++ b/verification/Cargo.toml @@ -12,70 +12,70 @@ name = "narf_verification" path = "src/lib.rs" [dependencies] -narf-kernel-test = { path = "kernel-test" } -narf-lib = { path = "../lib" } -narf-acpi = { path = "../acpi" } -narf-aml = { path = "../aml" } -narf-arch = { path = "../arch" } -narf-memory = { path = "../memory" } -narf-scheduler = { path = "../scheduler" } -narf-capabilities = { path = "../capabilities" } -narf-tracing = { path = "../tracing" } -narf-bpf = { path = "../bpf" } -narf-bpf-structops = { path = "../bpf/structops" } -narf-bpf-idle = { path = "../bpf-idle" } -narf-bpf-leds = { path = "../bpf-leds" } -narf-bus = { path = "../bus" } -narf-boot = { path = "../boot" } -narf-rcu = { path = "../rcu" } -narf-ipc = { path = "../ipc" } -narf-abi = { path = "../abi" } -narf-io = { path = "../io" } -narf-drivers = { path = "../drivers" } -narf-drivers-virtio = { path = "../drivers/virtio" } -narf-input = { path = "../input" } -narf-input-driver = { path = "../drivers/input" } -narf-graphics = { path = "../graphics" } -narf-graphics-driver = { path = "../drivers/graphics" } -narf-init = { path = "../init" } -narf-fb = { path = "../fb" } -narf-audio = { path = "../audio" } -narf-wireless = { path = "../wireless" } -narf-accel = { path = "../accel" } -narf-tpm = { path = "../tpm" } -narf-i3c = { path = "../i3c" } -narf-shmem = { path = "../shmem" } -narf-firmware = { path = "../firmware" } -narf-firmware-fw-cfg = { path = "../firmware/fw_cfg" } -narf-firmware-smbios = { path = "../firmware/smbios" } -narf-block = { path = "../block" } -narf-console = { path = "../console" } -narf-interrupts = { path = "../interrupts" } -narf-time = { path = "../time" } -narf-crypto = { path = "../crypto" } -narf-net = { path = "../net" } -narf-filesystem = { path = "../filesystem" } -narf-power = { path = "../power" } -narf-observability = { path = "../observability" } -narf-userspace = { path = "../userspace" } +narf-kernel-test = { path = "kernel-test", version = "0.1.0" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-acpi = { path = "../acpi", version = "0.1.0" } +narf-aml = { path = "../aml", version = "0.1.0" } +narf-arch = { path = "../arch", version = "0.1.0" } +narf-memory = { path = "../memory", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-tracing = { path = "../tracing", version = "0.1.0" } +narf-bpf = { path = "../bpf", version = "0.1.0" } +narf-bpf-structops = { path = "../bpf/structops", version = "0.1.0" } +narf-bpf-idle = { path = "../bpf-idle", version = "0.1.0" } +narf-bpf-leds = { path = "../bpf-leds", version = "0.1.0" } +narf-bus = { path = "../bus", version = "0.1.0" } +narf-boot = { path = "../boot", version = "0.1.0" } +narf-rcu = { path = "../rcu", version = "0.1.0" } +narf-ipc = { path = "../ipc", version = "0.1.0" } +narf-abi = { path = "../abi", version = "0.1.0" } +narf-io = { path = "../io", version = "0.1.0" } +narf-drivers = { path = "../drivers", version = "0.1.0" } +narf-drivers-virtio = { path = "../drivers/virtio", version = "0.1.0" } +narf-input = { path = "../input", version = "0.1.0" } +narf-input-driver = { path = "../drivers/input", version = "0.1.0" } +narf-graphics = { path = "../graphics", version = "0.1.0" } +narf-graphics-driver = { path = "../drivers/graphics", version = "0.1.0" } +narf-init = { path = "../init", version = "0.1.0" } +narf-fb = { path = "../fb", version = "0.1.0" } +narf-audio = { path = "../audio", version = "0.1.0" } +narf-wireless = { path = "../wireless", version = "0.1.0" } +narf-accel = { path = "../accel", version = "0.1.0" } +narf-tpm = { path = "../tpm", version = "0.1.0" } +narf-i3c = { path = "../i3c", version = "0.1.0" } +narf-shmem = { path = "../shmem", version = "0.1.0" } +narf-firmware = { path = "../firmware", version = "0.1.0" } +narf-firmware-fw-cfg = { path = "../firmware/fw_cfg", version = "0.1.0" } +narf-firmware-smbios = { path = "../firmware/smbios", version = "0.1.0" } +narf-block = { path = "../block", version = "0.1.0" } +narf-console = { path = "../console", version = "0.1.0" } +narf-interrupts = { path = "../interrupts", version = "0.1.0" } +narf-time = { path = "../time", version = "0.1.0" } +narf-crypto = { path = "../crypto", version = "0.1.0" } +narf-net = { path = "../net", version = "0.1.0" } +narf-filesystem = { path = "../filesystem", version = "0.1.0" } +narf-power = { path = "../power", version = "0.1.0" } +narf-observability = { path = "../observability", version = "0.1.0" } +narf-userspace = { path = "../userspace", version = "0.1.0" } # Optional: pulled in only under `boot-init` so default builds # don't trigger the busybox download + make. Falls back to an # empty slice when musl-gcc isn't on the host (see busybox # crate's build.rs). -narf-busybox = { path = "busybox", optional = true } -narf-drivers-nvme = { path = "../drivers/nvme" } -narf-drivers-net = { path = "../drivers/net" } -narf-drivers-gpu = { path = "../drivers/gpu" } -narf-drivers-storage = { path = "../drivers/storage" } -narf-drivers-usb = { path = "../drivers/usb" } -narf-drivers-thunderbolt = { path = "../drivers/thunderbolt" } -narf-drivers-fingerprint = { path = "../drivers/fingerprint" } -narf-drivers-platform = { path = "../drivers/platform" } -narf-drivers-sound = { path = "../drivers/sound" } -narf-drivers-hwmon = { path = "../drivers/hwmon", features = ["kernel-test"] } -narf-drivers-extcon = { path = "../drivers/extcon", features = ["kernel-test"] } -narf-compat-win = { path = "../compat/win" } -narf-modules = { path = "../modules" } +narf-busybox = { path = "busybox", version = "0.1.0", optional = true } +narf-drivers-nvme = { path = "../drivers/nvme", version = "0.1.0" } +narf-drivers-net = { path = "../drivers/net", version = "0.1.0" } +narf-drivers-gpu = { path = "../drivers/gpu", version = "0.1.0" } +narf-drivers-storage = { path = "../drivers/storage", version = "0.1.0" } +narf-drivers-usb = { path = "../drivers/usb", version = "0.1.0" } +narf-drivers-thunderbolt = { path = "../drivers/thunderbolt", version = "0.1.0" } +narf-drivers-fingerprint = { path = "../drivers/fingerprint", version = "0.1.0" } +narf-drivers-platform = { path = "../drivers/platform", version = "0.1.0" } +narf-drivers-sound = { path = "../drivers/sound", version = "0.1.0" } +narf-drivers-hwmon = { path = "../drivers/hwmon", version = "0.1.0", features = ["kernel-test"] } +narf-drivers-extcon = { path = "../drivers/extcon", version = "0.1.0", features = ["kernel-test"] } +narf-compat-win = { path = "../compat/win", version = "0.1.0" } +narf-modules = { path = "../modules", version = "0.1.0" } [features] # Opt-in end-to-end user-mode smoke tests. Enabling this adds the diff --git a/verification/busybox/Cargo.toml b/verification/busybox/Cargo.toml index ef826d02d..95a4c3b3f 100644 --- a/verification/busybox/Cargo.toml +++ b/verification/busybox/Cargo.toml @@ -1,9 +1,11 @@ [package] name = "narf-busybox" -version = "0.0.0" -edition = "2024" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +repository.workspace = true description = "Downloads + builds a static busybox at NARF's PML4[1] user vaddr and exposes the bytes via include_bytes!. Used by the linux-compat demo." -publish = false build = "build.rs" [lib] diff --git a/wireless/Cargo.toml b/wireless/Cargo.toml index 1e9a0ad83..4fcf9adb0 100644 --- a/wireless/Cargo.toml +++ b/wireless/Cargo.toml @@ -1,20 +1,24 @@ [package] name = "narf-wireless" -version = "0.1.0" -edition = "2021" +description = "Wireless networking protocol and device abstractions for NARF." +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +repository.workspace = true [dependencies] -narf-lib = { path = "../lib" } -narf-net = { path = "../net" } -narf-crypto = { path = "../crypto" } -narf-capabilities = { path = "../capabilities" } -narf-ipc = { path = "../ipc" } -narf-io = { path = "../io" } -narf-scheduler = { path = "../scheduler" } -narf-drivers = { path = "../drivers" } +narf-lib = { path = "../lib", version = "0.1.0" } +narf-net = { path = "../net", version = "0.1.0" } +narf-crypto = { path = "../crypto", version = "0.1.0" } +narf-capabilities = { path = "../capabilities", version = "0.1.0" } +narf-ipc = { path = "../ipc", version = "0.1.0" } +narf-io = { path = "../io", version = "0.1.0" } +narf-scheduler = { path = "../scheduler", version = "0.1.0" } +narf-drivers = { path = "../drivers", version = "0.1.0" } async-trait = "0.1" futures = { version = "0.3", default-features = false } -narf-kernel-test = { path = "../verification/kernel-test" } +narf-kernel-test = { path = "../verification/kernel-test", version = "0.1.0" } bitflags = "2.4" [features]