Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build-boot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ jobs:

- name: Configure ${{ matrix.defconfig }}_defconfig
run: |
make ${{ matrix.defconfig }}_defconfig
make ${{ matrix.defconfig }}_defconfig apply-mirror

- name: Build ${{ matrix.defconfig }}_defconfig
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ jobs:
export BUILD_DIR=$PWD/build
export BR2_EXTERNAL_INFIX_PATH=$PWD
export RELEASE=""
export INFIX_ID="infix"
export IX_ID="infix"

for target in $TARGETS; do
export BINARIES_DIR=$PWD/output_${target}/images
Expand Down
26 changes: 25 additions & 1 deletion .github/workflows/build-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
run: |
target=${{ matrix.target }}_defconfig
echo "Building $target ..."
make $target
make $target apply-mirror
make

- name: Generate SBOM from Build
Expand All @@ -70,6 +70,25 @@ jobs:
run: |
make test-spec

# rootfs.squashfs is still present here; it is stripped from the
# tarball below. mkimage pulls the rpi64 bootloader from the
# latest-boot release and uses the freshly built host genimage.
- name: Build Raspberry Pi image
if: matrix.target == 'aarch64'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
./utils/mkimage.sh -d -r output raspberrypi-rpi64
mkdir -p rpi-image
mv output/images/*-rpi64-sdcard.img rpi-image/
xz -T0 rpi-image/*-rpi64-sdcard.img

- uses: actions/upload-artifact@v7
if: matrix.target == 'aarch64'
with:
name: artifact-rpi64-image
path: rpi-image/*.img.xz

- name: Prepare Artifacts
run: |
cd output/
Expand Down Expand Up @@ -98,3 +117,8 @@ jobs:
with:
name: artifact-disk-image-${{ matrix.target }}
path: output/images/*.qcow2

- uses: actions/upload-artifact@v7
with:
name: artifact-pkg-${{ matrix.target }}
path: output/images/*.pkg
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ jobs:

- name: Configure ${{ env.TARGET }}
run: |
make ${{ env.TARGET }}_defconfig
make ${{ env.TARGET }}_defconfig apply-mirror

- name: Cleanup stale containers and ports
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ jobs:
makeLatest: ${{ steps.rel.outputs.latest }}
discussionCategory: ${{ steps.rel.outputs.cat }}
bodyFile: release.md
artifacts: "*.tar.gz,*.qcow2"
artifacts: "*.tar.gz,*.qcow2,*.pkg,*.img.xz"

- name: Summary
run: |
Expand Down
38 changes: 19 additions & 19 deletions Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ source "$BR2_EXTERNAL_INFIX_PATH/board/Config.in"

menu "Branding"

config INFIX_VENDOR
config IX_VENDOR
string "Vendor name"
default "KernelKit"
help
Expand All @@ -15,7 +15,7 @@ config INFIX_VENDOR

Used for VENDOR_NAME in /etc/os-release and GNS3 appliance files.

config INFIX_VENDOR_HOME
config IX_VENDOR_HOME
string "Vendor URL"
help
The homepage of the OS vendor. The value should be in RFC3986
Expand All @@ -24,14 +24,14 @@ config INFIX_VENDOR_HOME

Optional, used for VENDOR_HOME in /etc/os-release

config INFIX_NAME
config IX_NAME
string "Operating system name"
default "Infix"
help
Mandatory. Used for identifying the OS as NAME in /etc/os-release
and product_name in GNS3 appliance files.

config INFIX_ID
config IX_ID
string "Operating system identifier"
default "infix"
help
Expand All @@ -43,9 +43,9 @@ config INFIX_ID
Mandatory. Used for identifying the OS as ID in /etc/os-release and
in the generated image name: ID-ARCH-VERSION.img

config INFIX_IMAGE_ID
config IX_IMAGE_ID
string "Operating system image name"
default "${INFIX_ID}-${BR2_ARCH}"
default "${IX_ID}-${BR2_ARCH}"
help
A lower-case string (no spaces or other characters outside of 0–9,
a–z, ".", "_" and "-"), for naming critical image files, directories
Expand All @@ -54,18 +54,18 @@ config INFIX_IMAGE_ID
Mandatory. When INFIX_RELEASE is set, this string is appended to
the IMAGE_ID with a '-' separator.

config INFIX_COMPATIBLE
config IX_COMPATIBLE
string "Operating system compatible string"
default "${INFIX_IMAGE_ID}"
default "${IX_IMAGE_ID}"
help
A lower-case string (no spaces or other characters outside of 0–9,
a–z, ".", "_" and "-"), used for image identification at upgrade.
E.g., the RAUC [system] compatible string.

Mandatory. Defaults to $INFIX_IMAGE_ID, which in turn is composed
of $INFIX_ID-$BR2_ARCH.
Mandatory. Defaults to $IX_IMAGE_ID, which in turn is composed
of $IX_ID-$BR2_ARCH.

config INFIX_TAGLINE
config IX_TAGLINE
string "Operating system tagline"
default "Infix OS — Immutable.Friendly.Secure"
help
Expand All @@ -74,25 +74,25 @@ config INFIX_TAGLINE

This is also show at boot when the system init process starts.

config INFIX_DESC
config IX_DESC
string "Operating system description"
help
Optional. Used for long description texts about the OS. E.g.,
the GNS3 appliance file description field. Saved in the file
/etc/os-release as INFIX_DESC.
/etc/os-release as IX_DESC.

config INFIX_HOME
config IX_HOME
string "Operating system URL"
help
Used for identifying the OS, e.g. as HOME_URL in /etc/os-release

config INFIX_DOC
config IX_DOC
string "Operating system docs"
help
Optional. Main documentation URL, will be shown in /etc/os-release
as DOCUMENTATION_URL.

config INFIX_SUPPORT
config IX_SUPPORT
string "Operating system support"
help
Main support page for the operating system, if there is any. This
Expand All @@ -102,13 +102,13 @@ config INFIX_SUPPORT
Optional. Shown, e.g., as SUPPORT_URL in /etc/os-release or
maintainer_email in .gns3a.

config INFIX_OEM_PATH
config IX_OEM_PATH
string "Path to OEM br2-external"
help
A br2-external using Infix will likely want to version the branded
OS using their own GIT tags. Set this variable to point to the base
directory (absolute path) and the Infix post-build.sh will call `git
describe -C $INFIX_OEM_PATH`.
describe -C $IX_OEM_PATH`.

Note: the OS version (VERSION, VERSION_ID, BUILD_ID in
/etc/os-release) is always derived from `git describe`. The global
Expand All @@ -118,7 +118,7 @@ config INFIX_OEM_PATH
endmenu

# For /etc/os-release, uses CondtionArchitechture= from systemd.unit(5)
config INFIX_ARCH
config IX_ARCH
string
default "arm" if BR2_arm
default "arm64" if BR2_aarch64
Expand Down
2 changes: 1 addition & 1 deletion board/aarch64/acer-connect-vero-w6m/genimage.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ image var.ext4 {
}
}

image #INFIX_ID##VERSION#-vero-w-#TARGET#.img {
image #IX_ID##VERSION#-vero-w-#TARGET#.img {
hdimage {
partition-table-type = "gpt"
gpt-no-backup = true
Expand Down
2 changes: 1 addition & 1 deletion board/aarch64/bananapi-bpi-r3/genimage.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ image var.ext4 {
}
}

image #INFIX_ID##VERSION#-bpi-r3-#TARGET#.img {
image #IX_ID##VERSION#-bpi-r3-#TARGET#.img {
hdimage {
partition-table-type = "gpt"

Expand Down
2 changes: 1 addition & 1 deletion board/aarch64/bananapi-bpi-r4/genimage.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ image var.ext4 {
}
}

image #INFIX_ID##VERSION#-bpi-r4-#TARGET#.img {
image #IX_ID##VERSION#-bpi-r4-#TARGET#.img {
hdimage {
partition-table-type = "gpt"
gpt-no-backup = true
Expand Down
2 changes: 1 addition & 1 deletion board/aarch64/bananapi-bpi-r64/genimage.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ image var.ext4 {
}
}

image #INFIX_ID##VERSION#-bpi-r64-#TARGET#.img {
image #IX_ID##VERSION#-bpi-r64-#TARGET#.img {
hdimage {
partition-table-type = "hybrid"
# MT7622 TF-A partition driver detects GPT by checking MBR[0]
Expand Down
2 changes: 1 addition & 1 deletion board/aarch64/friendlyarm-nanopi-r2s/genimage.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ image var.ext4 {
}
}

image #INFIX_ID##VERSION#-nanopi-r2s-sdcard.img {
image #IX_ID##VERSION#-nanopi-r2s-sdcard.img {
hdimage {
partition-table-type = "gpt"
}
Expand Down
2 changes: 1 addition & 1 deletion board/aarch64/marvell-espressobin/genimage.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ image var.ext4 {
}
}

image #INFIX_ID##VERSION#-espressobin-#TARGET#.img {
image #IX_ID##VERSION#-espressobin-#TARGET#.img {
hdimage {
partition-table-type = "gpt"
}
Expand Down
2 changes: 1 addition & 1 deletion board/aarch64/raspberrypi-rpi64/genimage.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ image var.ext4 {
}
}

image #INFIX_ID##VERSION#-rpi64-sdcard.img {
image #IX_ID##VERSION#-rpi64-sdcard.img {
hdimage {
partition-table-type = "hybrid"
}
Expand Down
2 changes: 1 addition & 1 deletion board/arm/microchip-sama7g54-ek/genimage.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ image var.ext4 {
}
}

image #INFIX_ID##VERSION#-sama7g54-ek-#TARGET#.img {
image #IX_ID##VERSION#-sama7g54-ek-#TARGET#.img {
hdimage {
partition-table-type = "hybrid"
}
Expand Down
2 changes: 1 addition & 1 deletion board/arm/raspberrypi-rpi2/genimage.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ image var.ext4 {
}
}

image #INFIX_ID##VERSION#-rpi2-sdcard.img {
image #IX_ID##VERSION#-rpi2-sdcard.img {
hdimage {
partition-table-type = "hybrid"
}
Expand Down
16 changes: 8 additions & 8 deletions board/common/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -11,28 +11,28 @@ source "$BR2_EXTERNAL_INFIX_PATH/board/common/image/image-readme/Config.in"

endmenu

config QEMU_SCRIPTS
config IX_QEMU_SCRIPTS
bool "QEMU scripts"
default y
help
Install QEMU scripts and related files in the images
directory, which can be used to launch virtual Infix
instances.

menuconfig TRUSTED_KEYS
menuconfig IX_TRUSTED_KEYS
bool "Trusted keys for image"
help
Keys that will be accepted for this image

config TRUSTED_KEYS_DEVELOPMENT
config IX_TRUSTED_KEYS_DEVELOPMENT
bool "Development key"
depends on TRUSTED_KEYS
depends on IX_TRUSTED_KEYS

config TRUSTED_KEYS_DEVELOPMENT_PATH
config IX_TRUSTED_KEYS_DEVELOPMENT_PATH
string
depends on TRUSTED_KEYS_DEVELOPMENT
depends on IX_TRUSTED_KEYS_DEVELOPMENT
default "${BR2_EXTERNAL_INFIX_PATH}/board/common/signing-keys/development/infix.crt"

config TRUSTED_KEYS_EXTRA_PATH
config IX_TRUSTED_KEYS_EXTRA_PATH
string "Path to extra keys to include in image"
depends on TRUSTED_KEYS
depends on IX_TRUSTED_KEYS
6 changes: 3 additions & 3 deletions board/common/common.mk
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
include $(BR2_EXTERNAL_INFIX_PATH)/board/common/image/image.mk
include $(BR2_EXTERNAL_INFIX_PATH)/board/common/qemu/qemu.mk

ifeq ($(TRUSTED_KEYS),y)
ifeq ($(IX_TRUSTED_KEYS),y)
include $(BR2_EXTERNAL_INFIX_PATH)/board/common/uboot/uboot.mk

TRUSTED_KEYS=$(TRUSTED_KEYS_DEVELOPMENT_PATH) $(TRUSTED_KEYS_EXTRA_PATH)
IX_TRUSTED_KEYS=$(IX_TRUSTED_KEYS_DEVELOPMENT_PATH) $(IX_TRUSTED_KEYS_EXTRA_PATH)
define RAUC_POST_BUILD_INSTALL_CERT
@$(call IXMSG,"Installing signing cert for RAUC")
mkdir -p $(TARGET_DIR)/etc/rauc/keys
$(foreach crt,$(shell ls $(TRUSTED_KEYS)), \
$(foreach crt,$(shell ls $(IX_TRUSTED_KEYS)), \
cp $(crt) $(TARGET_DIR)/etc/rauc/keys/$(shell openssl x509 -hash -noout <$(crt)).0;)

endef
Expand Down
10 changes: 5 additions & 5 deletions board/common/image/image-ext4-rauc/Config.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
config IMAGE_EXT4_RAUC
config IX_IMAGE_EXT4_RAUC
bool "RAUC upgrade bundle (ext4)"
depends on BR2_TARGET_ROOTFS_EXT2
select BR2_PACKAGE_HOST_RAUC
Expand All @@ -7,17 +7,17 @@ config IMAGE_EXT4_RAUC
image. Intended for development boards whose bootloader does
not support squashfs.

config IMAGE_EXT4_RAUC_KEY
config IX_IMAGE_EXT4_RAUC_KEY
string "signing key"
depends on IMAGE_EXT4_RAUC
depends on IX_IMAGE_EXT4_RAUC
default "${BR2_EXTERNAL_INFIX_PATH}/board/common/signing-keys/development/infix.key"
help
Path to the private key, in PKCS#8 format, used to sign
the RAUC bundle; or a PKCS#11 URI.

config IMAGE_EXT4_RAUC_CERT
config IX_IMAGE_EXT4_RAUC_CERT
string "signing certificate"
depends on IMAGE_EXT4_RAUC
depends on IX_IMAGE_EXT4_RAUC
default "${BR2_EXTERNAL_INFIX_PATH}/board/common/signing-keys/development/infix.crt"
help
Path to the X509 certificate which will be associated with
Expand Down
4 changes: 2 additions & 2 deletions board/common/image/image-itb-aux/Config.in
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
config IMAGE_ITB_AUX
config IX_IMAGE_ITB_AUX
bool "aux partition"
depends on IMAGE_ITB_ROOTFS
depends on IX_IMAGE_ITB_ROOTFS
select BR2_PACKAGE_HOST_UBOOT_TOOLS
select BR2_PACKAGE_HOST_GENIMAGE
help
Expand Down
6 changes: 3 additions & 3 deletions board/common/image/image-itb-dl-release/Config.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
menuconfig IMAGE_ITB_DL_RELEASE
menuconfig IX_IMAGE_ITB_DL_RELEASE
bool "Download existing release"
depends on !BR2_TARGET_ROOTFS_SQUASHFS
help
Expand All @@ -7,9 +7,9 @@ menuconfig IMAGE_ITB_DL_RELEASE
Infix image, to create a full disk image that can be
provisioned to an SD-card or eMMC.

config IMAGE_ITB_DL_RELEASE_URL
config IX_IMAGE_ITB_DL_RELEASE_URL
string "URL"
depends on IMAGE_ITB_DL_RELEASE
depends on IX_IMAGE_ITB_DL_RELEASE
default "https://github.com/kernelkit/infix/releases/download/latest/infix-${BR2_ARCH}.tar.gz"
help
URL to release tarball.
Loading
Loading