Commit graph

335 commits

Author SHA1 Message Date
fiftydinar
3d5533b450 Merge remote-tracking branch 'upstream/main' into gschema-override-newline 2024-02-25 14:13:46 +01:00
fiftydinar
b965a31853 feat(systemd): Add support for including systemd units
This also gets rid of `files` module dependency & exposes this function better to the users.

Related issue:
https://github.com/ublue-os/bling/issues/143
2024-02-25 14:01:16 +01:00
xynydev
e423ce3b68 chore: remove files module documentation 2024-02-25 12:30:42 +02:00
fiftydinar
fec6a76116
chore(default-flatpaks): Obtain flatpak list of apps without runtimes (#142)
Since runtimes are not supported in our module, we don't need them in a flatpak list inside binaries.
2024-02-25 07:41:26 +00:00
fiftydinar
2157b7eb5e
fix(fonts): Module failing with legacy templates (#141)
Issue described here:
https://github.com/blue-build/github-action/issues/16#issuecomment-1961862342
2024-02-24 18:03:10 +00:00
xynydev
0d64b292e6 refactor: move bling copr download, switch to ublue staging copr 2024-02-21 17:59:22 +02:00
xynydev
d0110160ba chore: change the rest of readme urls in module.ymls 2024-02-21 17:38:01 +02:00
xynydev
c6aea9234c chore: replace URLs with ublue-os/bling 2024-02-21 16:39:34 +02:00
fiftydinar
adab64e38e chore(gschema-overrides): Add missing quotes for file variable 2024-02-21 15:09:36 +01:00
fiftydinar
769cd4bf3d fix(gschema-overrides): Ditch workaround for trimming newlines
It is no longer needed, since get_yaml_array uses `readarray -t` command now instead of regular `readarray`.

It may also fix rare parsing issue some user had (array element looks fine, but it's still not parsed properly). Note that this is a speculated issue, not something we're 100% sure of.

Merge this after BlueBuild transition period, since legacy build.sh doesn't have get_yaml_array fix.
Alternatively, I can define custom get_yaml_array function here, with note for supporting legacy templates.
2024-02-21 15:04:12 +01:00
fiftydinar
1d50642f88
fix(akmods): Make check for Surface image more reliable (#134)
Instead of depending on the base image name, it just detects if Linux Surface kernel is installed before installing Surface akmods.
2024-02-19 19:40:44 +00:00
fiftydinar
bfda18d3a2
fix(signing): Use -euo pipefail instead of -oue (#129)
* fix(signing): Use `-eou` pipefail instead of `-oue`

* Update signing.sh
2024-02-12 13:33:30 +00:00
fiftydinar
cc25f6970b
docs(akmods): Add notice when builds are failing due to upstream issue (#128)
* docs(akmods): Add notice when builds are failing due to upstream issue

* chore: add missing "a"

---------

Co-authored-by: xyny <60004820+xynydev@users.noreply.github.com>
2024-02-12 13:30:28 +00:00
fiftydinar
1e1197dd0b
refactor(default-flatpaks): Switch to standardized BlueBuild location, implement useful docs into files & make flatpak detection + comparison more robust (#122)
* chore(default-flatpaks): Switch to standardized BlueBuild location

Use

`/usr/etc/bluebuild/default-flatpaks`

location instead of

`/usr/etc/flatpaks`

If possible, we should ideally use this location for system modifications:

`/usr/share/bluebuild/default-flatpaks`

While having user modifications in:

`/usr/etc/bluebuild/default-flatpaks`

But it needs to be figured out how the logic will work for separating system & user modifications this way.

I used this logic in unofficial `initramfs-setup` module & it works well, by merging both system & user files into 1 output.

However, this method can create duplicates if user specified it in it's modification, so I mentioned that user should look if the system entry has modifications they need. Perhaps, array diff can be done, which would circumvent this.

So merge this for start.

Only other module which has potential for migrating to standardized BlueBuild config is yafti (more details in other PR I'll do in some time).

* refactor(default-flatpaks): Make default-flatpaks more robust

Document in detail to user how he can change the config in files itself.

Also document what files do in `/usr/share/bluebuild/default-flatpaks` as well.

Refactor flatpak lists detection to be more reliable by excluding words starting with # symbols, whitelines & duplicate entries. Use `comm` for comparing flatpak list to existing flatpaks output instead of using `grep`, as it's easier to use & it's more reliable.

Separate user's & maintainer's modifications better by utilizing read-only `/usr/share/bluebuild/default-flatpaks` directory for maintainers, while for users we would use `(/usr)/etc/bluebuild/default-flatpaks` directory. Reverting to defaults is more reliable as it would avoid users from touching maintainer's modification directly.

I wouldn't modify repo-info.yml doc content, as we restrict it from user's modification & we wouldn't want to potentially ruin yaml parsing just for that.

Only thing that remains is to test this in a VM. And look to potentially make code cleaner.

* draft(default-flatpaks): Avoid install/remove duplicate loop scenario

I have to figure out this part

* draft(default-flatpaks): Avoid install/remove duplicate loop scenario pt.2

* draft(default-flatpaks): Avoid install/remove duplicate loop scenario pt.3

* fix(default-flatpaks): Avoid install/remove duplicate loop scenario

* chore(default-flatpaks): minor grammar adjustment

* draft(default-flatpaks): Account for scenario...

when user sets the same package in install list that is in maintainer's remove list & vice-versa

* fix(default-flatpaks): Account for scenario when user sets the same package in install list that is in maintainer's remove list & vice-versa

* fix(default-flatpaks): Typo in code for combined install list

* chore(default-flatpaks): Remove unnecessary echo

* chore(default-flatpaks): Make directory for user config

* chore(default-flatpaks): Explain user's vs maintainer's flatpak list situation better

* fix(default-flatpaks): Typo in user's configuration for system flatpaks install

* chore(default-flatpaks): There is no need to mkdir parent folder if child folder is created

* chore(default-flatpaks): Make config organization cleaner

Don't use echos for writing configs, use files instead for easier & more intuitive editing.

* fix(default-flatpaks): Copy notification file properly

Made a mistake in variable name

* docs: README fixes

- don't use ambiguous term "live-user"
- capitalize Flatpak
- grammar and phrasing changes

* docs: grammar and phrasing changes in configuration file docs

- replace "maintainer's config" with "image's default config"
- rewrite flatpak list format explanation

* docs: slightly reword local modification section again

* chore(default-flatpaks): Add a missing newline to system flatpak list

---------

Co-authored-by: xynydev
2024-02-11 09:33:05 +00:00
Tulili
85d3b6b8fd
fix(bling, laptop): QOL Fixes
fixes #123 #78!!
2024-02-09 00:03:07 -03:00
gerblesh
cd0f836a00
fix: copy public key to the right location (#126) 2024-02-08 14:32:47 -08:00
fiftydinar
67619ce418
fix(gschema-overrides): Get rid of files module dependency (#120)
* chore(gschema-overrides): Get rid of `files` module dependency

Gschema.override files are now placed in /config/gschema-override folder.

* chore(gschema-overrides): Don't use 1st slash for new override location in docs

* chore: Use `zz1-` prefix instead of `z1-`

It ensures that no gschema override will bypass user one with override starting with letter z.
2024-02-05 10:46:13 +00:00
xynydev
03ac42e16f fix: switch urls to fetch main branch in module.ymls 2024-02-04 18:18:35 +02:00
xyny
5e455a1477
refactor: start using module.yml for module metadata (#116)
* feat: add initial module.yml for rpm-ostree

* chore: add shortdesc to module.yml

* feat: add missing module.ymls

* feat: add website rebuild action for module reference updates

* chore: remove old readme in modules dir

* refactor: switch to a hybrid module.yml + README arrangement

* chore: switch docs to use starlight aside syntax
2024-02-04 16:05:22 +00:00
fiftydinar
3914df391f
fix(files): Ensure that parent dot files & folders are copied (#115)
* fix(files): Fix build error on copying dotfiles

Enable dotglob when copying folders/files, disable when it's finished.

* chore(files): Ensure that dotglob is executed outside of loop

* fix(files): Ensure that .gitkeep file is not present in the build image

* fix(files): Ensure that cp command ignores if something is present in directory or not
2024-02-03 18:40:24 +00:00
fiftydinar
3453736f24
fix(signing): Use /usr instead of usr for copying image-info.json (#114) 2024-02-03 13:20:12 +00:00
gerblesh
2ff118dbdc
feat: add signing module to replace signing.sh (#111)
* feat: signing module

* docs: add docs for `signing` module

* fix(signing.sh): add space to if

Co-authored-by: Gerald Pinder <gmpinder@gmail.com>

* fix(signing): grammar in README and formatting in signing.sh

* fix: only modify image-info.json

* fix: typo in image vendor name

---------

Co-authored-by: Gerald Pinder <gmpinder@gmail.com>
2024-02-03 10:30:01 +00:00
fiftydinar
b528a0acc9
feat: Add gschema-overrides module (#110)
* feat: Add `gschema-overrides` module

* chore: Clarify "including prefix" section better

* chore: Some formatting fix

* chore: Don't mention higher prefix, as it can confuse users

* fix: Add partial troubleshooting of most preferred gschema-overide

It does not support aborting on fail currently, as I have to think on how to implement it when multiple gschema-override files are included in the module.

* Revert "fix: Add partial troubleshooting of most preferred gschema-overide"

This reverts commit 1dde51938e45648c7f53b696e61249339a2eb277.

* fix: Use `z1-` prefix for to avoid future conflict with Universal Blue images

* chore: Fix some README remarks from xynydev

* chore: Note that GTK DEs other than Gnome are also supported

* chore: Be more specific about GTK-based DEs

* chore: Clarify using module section a tiny bit better

* chore: Add editing gschema.overrides section & make README formatting cleaner

* chore: Reword some sentences better

* fix: don't use multiple toplevel headings, replace <br> tags with spammed spaces

---------

Co-authored-by: xyny <60004820+xynydev@users.noreply.github.com>
2024-02-02 17:57:00 +00:00
fiftydinar
9b66c64563
feat(default-flatpaks): install & uninstall notifs (#109)
* feat(default-flatpaks): Support for notifications that inform the user before flatpak install/uninstall procedure begins

This can be implemented to be more readable maybe, but this should work.

* chore(default-flatpaks): There is no need to call notifications true statement twice

* chore(default-flatpaks): Make starting notifications consistent with finished ones

* chore(default-flatpaks): Use "listed" term rather than "some"

* chore(default-flatpaks): Use "some" notification only for uninstalling flatpaks
2024-01-30 17:06:25 +00:00
Lordus Kordus
122d436f21
fix(ublue-update): Install 'python3-pip' if it's not already installed (#108) 2024-01-28 18:15:00 +00:00
Như Bảo Trương
cb66d4562a
fix: Install topgrade to /usr (#106)
Install topgrade to /usr since /usr/local doesn't exists when building ublue image
2024-01-28 06:59:56 +00:00
gerblesh
d71fa6cb13 fix: install topgrade in ublue-update.sh
`ublue-update` recently moved to `topgrade` for executing updates (https://github.com/ublue-os/ublue-update/pull/102). Because of this move, `ublue-update` needs `topgrade` to be installed in order to install the rpm: https://github.com/ublue-os/ublue-update/blob/main/ublue-update.spec
2024-01-27 10:55:20 -08:00
xynydev
47e70e07da fix: ignore error when yafti.yml present 2024-01-27 19:07:31 +02:00
xynydev
2fd0898d85 chore: remove BLING_DIRECTORY envvar
superseded by use of MODULE_DIRECTORY
2024-01-27 17:58:20 +02:00
xynydev
c48217b54d chore: remove ublue-os-wallpapers 2024-01-27 17:44:11 +02:00
xynydev
111466c16c feat: include files in yafti module 2024-01-24 18:42:34 +02:00
xynydev
0b611a5238 chore: remove devpod module
- tries to install nonexistant rpm
2024-01-24 18:26:15 +02:00
xynydev
32e34767f4 docs: update bling module readme 2024-01-24 18:09:51 +02:00
xynydev
f7efe1d461 chore: remove deprecated/unfunctional bling 2024-01-24 18:07:33 +02:00
xynydev
d8b73c0a5c refactor: move bling files to bling module 2024-01-24 18:05:22 +02:00
xynydev
53e8fb3e2b refactor: move default-flatpaks files to module directory 2024-01-24 17:55:51 +02:00
fiftydinar
8b8fcd3144
fix(akmods): Xone installs conflicted "akmod-xone" package (#102)
* fix(akmods): Xone installs conflicted "akmod-xone" package

This sets higher priority for `akmods repo` compared to `multimedia repo`, which should fix potential issues in the future for other akmods too.

Thanks to the debugging done here:
https://github.com/ublue-os/akmods/pull/116

* fix(akmods): There is no need to revert to default, as it doesn't cause issues

On the other side, enabled multimedia repo afterwards causes issues.

* chore(akmods): Format function spacing same as other 2 functions

* chore(akmods): Make ENABLE_MULTIMEDIA_REPO more readable
2024-01-24 10:45:05 +00:00
fiftydinar
fe9cd68c6a
fix(default-flatpaks): Install/uninstall system flatpaks regardless i… (#100)
* fix(default-flatpaks): Install/uninstall system flatpaks regardless if current user has permissions or not

Fixes: https://github.com/ublue-os/bling/pull/93

To make notify-send working for --system systemd units, I have to thank @gerblesh for his code & idea in ublue-updater.

I tested this in Silverblue & it works.
However, I would like this to be tested in other DEs like Kinoite too, to see if it's working correctly.

Feel free to improve code if you find some space for that.

@lorduskordus

* Use json parser instead as a more reliable solution on fetching values

* There is no need for echo when parsing json

* Fetch DISPLAY environment variable from printenv

* Make functions for notify-sends, to make script clearer

* Whiteline fixes
2024-01-20 16:38:51 +00:00
Nick Saika
17bacbe3da
fix: Fix flag ordering in set calls in scripts (#99)
The README for scripts has an incorrect use of the `set`. Where it says
to use:

	set -oue pipefail

it should be:

	set -euo pipefail

since `pipefail` is an option consumed by `set -o`.

More information: https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html
2024-01-16 06:12:08 +00:00
fiftydinar
ed83ff5ec2 fix(akmods): Failure when installing akmods from multimedia repo 2024-01-14 23:54:02 +01:00
fiftydinar
e8272a4dd1
feat: Add akmods module (#89)
* feat: Add kmods installer module

Credits: @C0dePlayer

This is not ideal as it does not support custom kernels & it involves editing Containerfile.

I believe there is no other way but to make users edit Containerfile for those files to be even pulled of.

I would like this to be through the recipe only, so I will put this as a draft until some better ideas come.

* Rename kmods installer to akmods

* Update README

Address: 

https://github.com/ublue-os/startingpoint/pull/212#issuecomment-1870156327

https://github.com/ublue-os/bling/pull/89#discussion_r1436890002

* Fix README typo

* Remove non-needed space for yml in README

* Add support for Surface & Asus images

* Clarify tagged base image warning better

* Clarify tagged base image warning better pt.2

* There is no need to fetch main-nvidia build for now

* Use simpler =~ for conditioning instead of grep & sed

This finally fixes akmods module

* Install kernel-devel-matched for all builds

* Assure that Surface installs their version of kernel-devel-matched

* Mention that framework images can be used as a base

* Delete duplicate warning message

* Remove non-needed explanation on why only Universal Blue builds are supported

* Clarify 1st warning better

* Clarify `main` akmods compatibility better

This would avoid editing README if some other compatible image gets announced or discontinued.

* docs(akmods): grammar fixes

* docs: add link to akmod tag matrix

---------

Co-authored-by: xyny <60004820+xynydev@users.noreply.github.com>
2024-01-14 16:45:20 +00:00
xyny
dc60cfaa42
fix(gnome-vrr): use correct version variable (#94) 2023-12-31 10:44:09 +00:00
fiftydinar
33226b9b73
feat(systemd): Add support for unmasking & masking units (#88)
* feat(systemd): Add support for masking services

* Use unit term in README

* Fix README grammar

* Note about unmasking

* Fix typo in README

* Add unmask & more info about systemctl commands

Address:

https://github.com/ublue-os/bling/pull/88#discussion_r1436877565

https://github.com/ublue-os/bling/pull/88#discussion_r1436917124

* docs: clarify purpose of unmasking

* docs: Fix systemd module README typo

---------

Co-authored-by: xyny <60004820+xynydev@users.noreply.github.com>
2023-12-31 10:31:49 +00:00
fiftydinar
f08f1b26d1
Update README.md 2023-12-29 02:18:35 +01:00
fiftydinar
d32dc2ed2d fix(default-flatpaks): Clarify branched flatpaks support better 2023-12-28 21:24:55 +01:00
fiftydinar
ec020cd2ca
fix(default-flatpaks): Missing notification for system flatpaks (#87)
* fix:(default-flatpaks): Missing notification for system flatpaks

This approach, while more fragmented, it's cleaner, as there is a clearer separation of root & non-root operations done by flatpak-setup service. This should probably increase security too (but I'm not the expert to talk seriously about that). It also gets rid of some non-harming error for /var data, can't remember it fully.

While it may be confusing for users that they have to type:

`systemctl status --user system-flatpak-setup`

instead of previous:

`systemctl status system-flatpak-setup`

It is something worth sacrificing for the important user-experience fix.
2023-12-27 09:12:49 +00:00
xyny
8d59b2a3ec
fix(default-flatpaks): (again) do the yq notify step right
for real this time
2023-12-22 11:30:06 +00:00
xyny
f67cfce6d5
fix(default-flatpaks): get notify config from right var? 2023-12-22 05:04:57 +00:00
fiftydinar
bd92e7e5c5
feat(default-flatpaks): Add info about which flatpaks are installed (#85)
* feat(default-flatpaks): Add info about which flatpaks are installed & uninstalled in notification. Also implement notification enable/disable config support.

* feat(default-flatpaks): Add support for configuring notifications in recipe file

* fix(default-flatpaks): Formatting fixes

* fix(default-flatpaks): Fix "enabling" typo instead of "configuring" notifications

* chore(default-flatpaks): Remove unused yq command

* fix(default-flatpaks): There is no need for 2 double quotes
2023-12-21 20:34:33 +00:00
Micah Abbott
623834bb3b
chore: force create firstboot symlink in yafti module (#82)
I switched my custom ublue image from using
"ublue-os/silverblue-nvidia" to "ublue-os/bazzite-gnome-nvidia" and
received the following error when the build action kicked off:

`ln: failed to create symbolic link '/usr/etc/profile.d/ublue-firstboot.sh': File exists`

The yafti module should be the only thing creating this symlink, so it
should be safe to use the `-f` flag to force creating it.

Signed-off-by: Micah Abbott <miabbott@redhat.com>
2023-12-21 05:59:33 +00:00