Miouyouyou / armbian-desktop

A specific branch for dealing with default desktop environments
GNU General Public License v2.0
4 stars 1 forks source link

Move CLI under desktop #15

Open igorpecovnik opened 3 years ago

igorpecovnik commented 3 years ago

Perhaps it would be wise to have the same logic that we don't have different styles for CLI and desktop?

What do you think?

igorpecovnik commented 3 years ago

... or probably just move under config/cli and have the same org and its perhaps a bit more logical?

Miouyouyou commented 3 years ago

Hmm... ? So, you want package groups for command line tools ? like config/cli/focal/appgroups ? But named config/cli/focal/environments/default ?

With something like :

And have the build system aggregate these packages list and install them like the rest ? I haven't played too much with CLI configurations, so I don't know what people would expect from a CLI only configuration. I guess that environments does the trick in this case ?

igorpecovnik commented 3 years ago

I guess that environments does the trick in this case ?

Yes, I think this way. This is more or less a thinking - not sure if we want this but we also have to make sure that:

Miouyouyou commented 3 years ago

I'm okay with most of the points.

So I'll just try to implement the "cli" packages system by mimicking the way it's done for Desktop environments, removing as much cruft as possible and give it a try with Tinkerboard (armv7) and NanoPCT4 (arm64) builds, see how it goes.

igorpecovnik commented 3 years ago

containing a comma-separated list of components ?

Perhaps have the same structure without coma in the config and comma programmably? Deboostrap needs commas there for some reason, otherwise I don't know why we have that. Anyway, this is not changing and its more on the cosmetic side of the problem.

We have to support package overrired / adding and removing as it is now. There are people that are using this feature.

I'm searching for "lib.config" files but I can't seem to find any.

Located in userpatches/lib.config and its optional - its there to overrire any variable that is used in the process. I use it to define proxy or image type:

COMPRESS_OUTPUTIMAGE="sha,gpg,xz" APT_PROXY_ADDR="10.0.10.10:3142"

Something that is common to all build config files. Also here one could overrire aggregated packages for some reason or overrired U-BOOT version without the need to dig into the code.

The packages removal is not implemented for the moment. I can easily add support for a packages.remove list... However, is this functionality actually used ?

Not by us, but its used by some people to get rid of certain default components when making a custom image. Like minimal image, but remove Python for example.

Miouyouyou commented 3 years ago

So I started to implement some features in another branch https://github.com/Miouyouyou/armbian-desktop/tree/cli_packages . Do you have a lib.config example file I could use, to test if this is working correctly ?

I was wondering if I should add a 'packages.remove' file or just support the old lib.config way, but since this feature is mostly used by third-parties, retro-compatibility is required, so I'd like to keep the lib.config way.

igorpecovnik commented 3 years ago

APT_PROXY_ADDR="10.0.10.10:3142" FORCE_USE_RAMDISK="yes" COMPRESS_OUTPUTIMAGE="7z"

I was wondering if I should add a 'packages.remove' file or just support the old lib.config way, but since this feature is mostly used by third-parties, retro-compatibility is required, so I'd like to keep the lib.config way.

Can we have both and retro beeing a last override? Will tha complicate things?

For example. We always want to remove "ubuntu-wallpaper" which is soft dependency ... while user will want to remove even more. Better or too complicated?

Miouyouyou commented 3 years ago

Oh, yeah, lib.config contains actual variables that are sourced in configuration.sh in order to override what's provided on the command line, alright. Took time some time to tilt.

I think I should be able to mix both, that should be pretty easy to add.