Commit Graph

372 Commits

Author SHA1 Message Date
gerblesh
958b616eb8 style: prepend the entry in the JSON rather than append 2023-07-23 23:31:15 -07:00
gerblesh
28735a25ae Merge branch 'template' into image-signing 2023-07-23 19:45:43 -07:00
Jorge O. Castro
b6eb19c105 Merge pull request #122 from ublue-os/revert-117-image-signing
Revert "refactor: clean up image signing to line up more with upstream"
2023-07-23 16:25:57 -04:00
Jorge O. Castro
0447b185c9 Revert "refactor: clean up image signing to line up more with upstream" 2023-07-23 16:25:37 -04:00
gerblesh
cf41e52129 refactor: fix jq, rename cosign.yaml and cosign.pub 2023-07-23 12:10:12 -07:00
Jorge O. Castro
ebdc55ccec Merge pull request #117 from gerblesh/image-signing
refactor: clean up image signing to line up more with upstream
2023-07-23 12:55:55 -04:00
gerblesh
e85e8f6304 style: format whitespace 2023-07-22 23:40:33 -07:00
gerblesh
211a7b05a8 feat: add signature rather than replace to allow rebasing back to uBlue main 2023-07-22 23:38:42 -07:00
gerblesh
23d8b2dddb refactor: clean up image signing to line up more with upstream 2023-07-22 22:07:25 -07:00
Jorge O. Castro
50c6629181 Merge pull request #116 from gerblesh/image-signing
feat: add support for image signing
2023-07-21 15:52:38 -04:00
gerblesh
7502accfd3 docs: remove unneeded verification section 2023-07-21 12:31:05 -07:00
gerblesh
723847b803 docs: include more detailed steps in installation section 2023-07-21 10:04:34 -07:00
gerblesh
8c57efe7a9 docs: update Installation in README 2023-07-21 09:54:14 -07:00
gerblesh
978bd6193c fix: fix build arguments 2023-07-21 09:11:59 -07:00
gerblesh
d2c98237f4 feat: add support for image signing 2023-07-20 22:35:59 -07:00
Jorge O. Castro
de8c36ed5b Merge pull request #114 from jeffwindsor/jeffwindsor-readme-links-patch
Fix broken "Make Your Own" link
2023-07-20 08:52:50 -04:00
Jeff Windsor
338941f0e5 Missed a link at the bottom 2023-07-19 22:16:49 -07:00
Jeff Windsor
67f7849284 Fix broken "Make Your Own" link
looks like the page moved under the tinker section

I also validated and updated the other references to the `ublue.it` domain to `universal-blue.org`
2023-07-19 22:04:54 -07:00
dependabot[bot]
76f3b1ca4c build(deps): bump mikefarah/yq from 4.34.1 to 4.34.2
Bumps [mikefarah/yq](https://github.com/mikefarah/yq) from 4.34.1 to 4.34.2.
- [Release notes](https://github.com/mikefarah/yq/releases)
- [Changelog](https://github.com/mikefarah/yq/blob/master/release_notes.txt)
- [Commits](https://github.com/mikefarah/yq/compare/v4.34.1...v4.34.2)

---
updated-dependencies:
- dependency-name: mikefarah/yq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 12:26:03 +03:00
ER
45d81133db docs: instructions for manually adding repo files 2023-07-08 17:01:41 +03:00
EinoHR
3fff8bc61c fix: PRs that change only .md or .txt files can't be merged 2023-07-08 16:53:49 +03:00
Jorge O. Castro
e69e6bfcc1 Merge pull request #108 from ublue-os/dependabot/github_actions/sigstore/cosign-installer-3.1.1
build(deps): bump sigstore/cosign-installer from 3.1.0 to 3.1.1
2023-07-03 15:10:10 -04:00
dependabot[bot]
0b7bd4f872 build(deps): bump sigstore/cosign-installer from 3.1.0 to 3.1.1
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-03 01:47:27 +00:00
ER
fe13ef1236 fix: images built aren't versioned properly #86 2023-06-30 18:44:42 +03:00
dependabot[bot]
d5a35ca31b build(deps): bump sigstore/cosign-installer from 3.0.5 to 3.1.0
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.0.5 to 3.1.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v3.0.5...v3.1.0)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-30 12:09:00 +03:00
Tulili
da1b3f9ca2 feat: integrate bling repo (#105)
includes everything from the bling repository to this repository (COPY)
and removes features now ingested from bling

---------

Co-authored-by: ER
2023-06-30 09:02:23 +00:00
dependabot[bot]
3037449a0f build(deps): bump sigstore/cosign-installer from 3.0.4 to 3.0.5
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v3.0.4...v3.0.5)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-01 16:27:45 +00:00
dependabot[bot]
da63a1f1fb build(deps): bump mikefarah/yq from 4.33.3 to 4.34.1
Bumps [mikefarah/yq](https://github.com/mikefarah/yq) from 4.33.3 to 4.34.1.
- [Release notes](https://github.com/mikefarah/yq/releases)
- [Changelog](https://github.com/mikefarah/yq/blob/master/release_notes.txt)
- [Commits](https://github.com/mikefarah/yq/compare/v4.33.3...v4.34.1)

---
updated-dependencies:
- dependency-name: mikefarah/yq
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-01 16:23:55 +00:00
Tulili
a01549d081 feat: nix uninstaller for ublue-os systems (#93) 2023-06-01 15:58:43 +00:00
JosSamLoh
2582585ecd refactor: Shorten FEDORA_VERSION line (#90) 2023-06-01 15:50:23 +00:00
ER
1bf1785f2a docs: better inline docs in containerfile
* explaining ARG default values
2023-05-31 16:41:49 +00:00
plata
dd89cb7299 chore: use ./recipe.yml as default in Containerfile 2023-05-31 16:05:08 +00:00
Arcitec
3920ba9ab5 fix: remove RPMs after installing RPMs, to guarantee cleanup
This is necessary because the `rpm-ostree install` command lacks any way to exclude "recommended dependency" packages. It installs everything and the kitchen sink.

Therefore, installing something will often pull in a bunch of unwanted dependencies. The best we can do with the current situation is to run the removal after the install, so that users can remove those unwanted components manually and can be sure that they're actually removed.
2023-05-24 17:20:31 +00:00
Arcitec
ac40e75534 docs: explain the new "build.sh" location and mention "autorun.sh" 2023-05-20 08:07:46 +00:00
Arcitec
e8b5be6e83 fix!: optimize container layers and reduce image size
Every individual RUN, COPY and ADD action creates an extra container layer, so there was plenty of room for improvement in our Containerfile.

This optimization gets rid of 4 useless layers from our final container image, and shrinks the final OCI download size as follows:

- Removing the "mkdir /tmp/scripts" layer. It's not necessary to manually create the target directory for the container copy action.

- Removing the manual "chmod +x" for the scripts, and putting that step inside "build.sh" instead.

- Removing the manual copying of "build.sh", by instead placing it at "scripts/build.sh" so that it's automatically copied together with all the other scripts in one layer instead.

- Removing the separate "chmod +x build.sh && run build script" step by merging it with the "cleanup temp files and then finalize the container" step, so that we don't create a pointless extra filesystem layer just for the build.sh script execution.

These changes also reduce the size of the final image, because we're cleaning up the image in the exact same step that we run the "build.sh". If we didn't combine these steps, we'd still be keeping a useless extra layer with all the /tmp/ and /var/ junk files that were left over after the build.

Most seriously, the "/var/cache" folder contained copies of ALL RPM FILES that build.sh installed via "rpm-ostree install". This meant that we were generating a very big layer with a lot of junk data that shipped in the final image.

Our build now only generates 7 layers (instead of 11), and users will have a much smaller OCI download since we aren't shipping the cached RPM "build leftovers" or temp files via useless extra layers anymore.
2023-05-20 08:07:46 +00:00
dependabot[bot]
878ea2f6bf build(deps): bump sigstore/cosign-installer from 3.0.3 to 3.0.4
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.0.3 to 3.0.4.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v3.0.3...v3.0.4)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-16 17:17:48 +00:00
Arcitec
90713afd83 docs: explain the required branch layout for forked repositories 2023-05-16 16:54:47 +00:00
Arcitec
da17603567 feat!: only deploy the branch named "live", to simplify development
- Documents all triggers, since this repository is a starting point for people to learn from.

- Only deploys the branch named "live", which gives people more deliberate control of what gets deployed. Why not name it "main"? Because that complicates things a lot when forking this template to your own repos, since the template's default branch is also (currently) named "main", which would among other things complicate the act of syncing the fork via GitHub's web UI. The name "main" also confuses the user since it doesn't give them any hint that it's the only live-published branch.

- Only automatically builds the branches "live", "template" or "main" when pushing new commits. But builds any branch name when it's a pull request, to allow automated PR "build checks" to succeed.
2023-05-16 16:54:47 +00:00
Arcitec
ecb6fdebb1 fix!: remove legacy PWA setup command from custom.just
This is not necessary anymore. It's the job of Flatpak authors. All of them have these permissions by default nowadays, including Microsoft Edge.
2023-05-14 18:18:18 +03:00
Arcitec
aa157c2514 feat: sanity check Flathub's existence on all systems and all users
This is super important. Without these checks, the system can end up in a broken state where certain users or even the system itself lacks the "flathub" remote, which then breaks yafti's ability to install software, and also breaks consistency between multi-user accounts.

Before these fixes, we only installed "flathub" for the current user on multi-user systems, and then never again, since our installation of Flathub was dependent on the removal of Fedora's own repositories, and never happened again after that.

We now sanity-check both the system and the user-account on every yafti run.

If someone doesn't want "flathub" at the user-level, they're welcome to make their own image which removes that check. But as a "starting point" template, we should strive to provide a robust example that the largest amount of people will be happy with, which means ensuring that Flathub exists for all users on the system!

Most people run a single-user system, and will never even see these screens, since they'll see the initial screen which removes Fedora's repos and takes care of adding Flathub at the same time. These "system repair" screens will only be seen by people on multi-user systems or on various messed up systems.

PS: The strange "run" condition is required since yafti demands that the return code of a command should be "0" to show a conditional screen, but "grep" by itself returns "1" when nothing matches. Negation operators such as `!` don't work in the run-conditions either, so this workaround does the job perfectly instead. It robustly checks for the exact number "0", meaning that the Flathub remote wasn't found.
2023-05-14 18:18:18 +03:00
Arcitec
475a3c91cd fix: thoroughly remove fedora Flatpaks, and install unfiltered Flathub
We're now deleting the "fedora" Flatpak repos if they're detected on either the system or user level. All software is crippled in their repos, and less maintained than Flathub, so there's no good reason to have them.

More importantly, we're now also installing the Flathub repo system-wide instead of merely the user-level. This has two important effects:

1. People who opted out of "Third Party Repos" during OS installation will now receive the Flathub repo, to ensure that their system still works properly in that scenario.

2. It gets rid of the "Filter" line in `/var/lib/flatpak/repo/config`, so that Fedora can never reinstate the filtering in the future.

As for why we install Flathub at both the user and system levels: We need both, since the user then gets a nice dropdown menu inside GNOME Software, which lets them switch between system-wide or per-user installation locations.

The "remote" name detection has also been improved, by only printing the raw "name" column, to avoid any risk of false positives.
2023-05-14 18:18:18 +03:00
Arcitec
4afc5b1b44 fix: remove duplicate flatpaks from recipe.yml
Having duplicates in the yafti.yml where a package exists in multiple groups *currently* causes subtle bugs in yafti, such as a package becoming deselected even though the entire group is "selected". That causes great confusion when users try to install "Core GNOME Apps" without realizing that they won't receive the Extension Manager (for example), since it existed in a different group too and therefore became automatically unchecked in yafti.

A future yafti update will make all duplicate flatpak names illegal (a yml validation error), so this change also prepares us for that, by removing all duplicates.

As for why I added Krita: Since there was only one unique app in the recipe.yml, I needed another random, popular app to fit the example of "this is a selection of example apps", there's nothing more to it than that. ;)
2023-05-14 18:18:18 +03:00
Arcitec
9cee4f9a13 docs: clean up leftover comment about editing "recipe.yml"
It's in an immutable location nowadays, so this comment made no sense anymore.
2023-05-14 18:18:18 +03:00
Arcitec
30f9f4fc6c docs: clearer explanation of the "/usr/etc" behavior
Including a link to upstream ostree document which explains the config system perfectly.
2023-05-14 18:18:18 +03:00
Arcitec
7c3ae599e5 fix: add the missing GNOME Core apps to "yafti" template
- Added missing apps. The list is now synced with upstream's list of Core apps (https://apps.gnome.org/). Minus the few that Fedora doesn't ship by default (such as Console, Music, Web, etc).

- Names that are already installed at the native system-level (such as Nautilus) are not included in the list.

- Fixed the names of a few apps.

- Two of the newly added apps have names that have a high risk of confusing new users, so they were added as "Photos (Organizer)" and "Videos (Player)" to avoid confusion from newcomers, otherwise they might think that those checkboxes add some bundled photos or video files.
2023-05-14 18:18:18 +03:00
Arcitec
c7deb7d6fe fix: friendlier experience in the "yafti" first boot template
- The first screen's "Pick some applications to get started" has been replaced with a friendly welcoming message.

- The second screen's difficult-to-understand "WARNING: This will modify your Flatpaks if you are rebasing!" has been replaced with an explanation of what it actually does.

- The application setup screen is now titled "Application Installer", since the previous title sounded too much like a silly rhyme. It's a minor change.

- All Flatpaks now default to system-wide install thanks to the great work of bsherman at https://github.com/ublue-os/yafti/pull/82. This saves tons of disk space for multi-user systems.

- The "system application" category have been split up into GNOME apps and every other system app, so that people on other desktop environments don't get all the GNOME apps.

- Apps that had too vague descriptions have been renamed to their full names, such as "Backup -> Deja Dup Backups".

- All app lists have been sorted alphabetically.

- Non-inclusive language in descriptions has been changed.

- Added SteamTinkerLaunch as a suggestion for the Steam category, which is the best tool for managing Steam game configurations and Proton installations, albeit very advanced since it can do practically anything the gamer needs. :)
2023-05-14 18:18:18 +03:00
Arcitec
4318180a7c fix: further improve portability of login-profile.sh
The `-d ""` check is false on bash and zsh, but there might be some rare shell out there which treats it as "." or similar, so let's guard against that risk by also verifying that `$HOME` is a non-empty string before we check if it's a directory.
2023-05-14 18:18:18 +03:00
Arcitec
cec73978cf fix!: move justfile to standardized, non-conflicting new location
- The old location was conflicting with upstream images (main, nvidia, etc), and was causing the file to be overwritten.

- It was therefore decided that each image should prefix their own justfile names, to avoid clobbering, to easily allow image makers to bundle multiple "modular" justfiles, and to allow end-users to easily include the particular modules they want.

- The name `custom.just` represents a "template name" for this "custom uBlue image", while being neutral enough to use long-term (unlike the alternative name `startingpoint.just`, which doesn't flow nicely).

- All redundant commands that already existed upstream in `ublue-os/main` have been removed, to follow the new "modular inclusion" nature of uBlue's "justfile" organization, which also means that we'll never have to manually update it to match upstream anymore. No more duplicated effort! ;)

- Updated README instructions to mention the new way of including justfiles, until the upstream "just" project has finished their "include" functionality.

- The ".just" suffix is the official upstream suffix for modular justfile inclusions.
2023-05-14 18:18:18 +03:00
Arcitec
2f85593176 feat: include flowchart graphic which explains new launcher hierarchy 2023-05-14 18:18:18 +03:00
Arcitec
147932d54f chore: clean up Containerfile and document "/etc" behavior
- We don't have any files remaining in "./etc/" in this repo.

- We could add a ".gitkeep" file to it, to keep the "empty" directory, but then that file would get automatically merged as a hidden file into the final image, which is silly.

- So let's just document the proper location to place things instead, which is "usr/etc/".

- The Containerfile has also been cleaned up to be a bit easier to follow along what it's doing, such as putting the "copy scripts" step closer to the actual running of the scripts.
2023-05-14 18:18:18 +03:00