Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add script to create NOOBS/PINN releases #15

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

HiassofT
Copy link
Member

This script replaces our old NOOBS release system (which required creating noobs tar balls at build time) and creates the necessary tarballs and metadata from the update tars instead.

In order to cope well with our mirrors each release is stored in a separate directory and extracting and going live can be performed as two separate steps:

"./release-pinn.sh VERSION" will create the noobs files in pinn/VERSION/DEVICE... and also store an OS list in pinn/VERSION/os_list.json - that file can then be used eg for local testing as well.

When run with the "-r" option, eg "./release-pinn.sh -r VERSION" an actual release is performed, i.e. the os_list.json file from the version directory is copied to the "live" pinn/os_list.json and can be picked up by PINN/NOOBs.

The script autmatically skips re-creating already existing versions (unless run with the "-f" option) so the "release" step will be very quick (xz compression of the release tarballs takes ages...).

In order to create legacy PINN release (eg 9.2.6 for RPi) the scripts supports a "-d" option to specify the devices - by default all of RPi2, RPi4 and RPi5 will be created.

There are also a few additional options mainly intended for local testing/development: -C disables compression and -D / -U set the local webroot base directory / URL.

This script replaces our old NOOBS release system (which required
creating noobs tar balls at build time) and creates the necessary
tarballs and metadata from the update tars instead.

In order to cope well with our mirrors each release is stored in
a separate directory and extracting and going live can be performed
as two separate steps:

"./release-pinn.sh VERSION" will create the noobs files in
pinn/VERSION/DEVICE... and also store an OS list in
pinn/VERSION/os_list.json - that file can then be used eg for
local testing as well.

When run with the "-r" option, eg "./release-pinn.sh -r VERSION"
an actual release is performed, i.e. the os_list.json file from
the version directory is copied to the "live" pinn/os_list.json
and can be picked up by PINN/NOOBs.

The script autmatically skips re-creating already existing versions
(unless run with the "-f" option) so the "release" step will be
very quick (xz compression of the release tarballs takes ages...).

In order to create legacy PINN release (eg 9.2.6 for RPi) the
scripts supports a "-d" option to specify the devices - by default
all of RPi2, RPi4 and RPi5 will be created.

There are also a few additional options mainly intended for local
testing/development: -C disables compression and -D / -U set
the local webroot base directory / URL.

Signed-off-by: Matthias Reichl <[email protected]>
@HiassofT
Copy link
Member Author

As discussed I've now dropped the empty Storage tarball and switched to empty_fs in partitions.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant