pop-os / desktop

Desktop metapackage
Other
27 stars 9 forks source link

Reorganize into 4 metapackage levels #113

Closed 13r0ck closed 1 year ago

13r0ck commented 1 year ago

Allows for more ease when building pop-os containers and/or server images. Also has the added benefit of being able to drop some ubuntu dependencies.

Requires: https://github.com/pop-os/default-settings/pull/169

13r0ck commented 1 year ago

Yes I did shamelessly add neovim, but only as a suggested application, so it wont install on existing installs, just new clean installs Edit: not anymore

13r0ck commented 1 year ago
  1. ubuntu-advantage-tools is not autoremoved by this. Though it should be removed in OS upgrades (maybe refresh installs too?). We could conflict the package and remove it, but that might be too heavy handed?

  2. As well I split pipewire dependencies into a separate metapackage pop-pipewire. It is still a dependency, so it really doesn't do anything, but the thinking was to start the conversation of, moving that to recommends would let someone install pulseaudio on pop os if they really wanted to. We may not want to allow that? Or maybe there is another group of packages that we may want to make optional in the same way?

  3. Our pop-container-runtime is pretty big. It's the same size as the ubuntu container + our PPAs and the pop-keyring package. Any ideas how we could shink that down? If we have a fork of the apt package we could make adduser a recommended package. That would then let us remove quite a few packages from the container. Other ideas?

jacobgkau commented 1 year ago

Just curious about a couple of things:

13r0ck commented 1 year ago

As we now have a pop-de-gnome ...

That was my thinking. I'm open to name change suggestions

I was concerned about pop-de-gnome ...

I will remove the kde reference from this PR before this is released, as the timing isn't going to line up for that to make sense here.

Thinking about it though, "or" doesn't really work there. A user may want more than one de installed. So the "or" should probably be on the display manager, then a virtual package of at least one DE (gnome/cosmic/kde). "or" also has the unfortunate side effect with display managers where it causes the display to go black while one is removed and the other is installed... I will revisit that implementation.

13r0ck commented 1 year ago

Does it make sense for policykit-desktop-privleges to be in the DE packages?

13r0ck commented 1 year ago

This is ready for review again.

Pop-containers now work to my liking. I need to make some changes to the container build system before we release those publicly, but there are no packaging issues at least.

Notes:

  1. to remove ubuntu-(minimal|statndard) and ubuntu-advantage-tools will require a manual apt remove after this is installed, because they are "manually" installed by debootstrap, there is no way to apt autoremove them. The solution is to add them to the removal list in the iso build.
  2. I haven't tested pop-server at all, would requires some work to our iso build system, Not sure that effort is worth it at the moment.
  3. I tested the containers have been tested to work in both toolbox and distrobox
  4. Use the branch metapackage-reorg-kde to test the DE packaging. This should allow either installing both DEs or just one (i.e being able to install kde then remove gnome and it's dependencies.) Though this will ship without other optional DEs to begin with.
13r0ck commented 1 year ago

Also, I will "Squash and merge" this once approved. No need for this to be 40+ isolated commits

n3m0-22 commented 1 year ago

First I would like to point out that currently an install without metapackage-reorg running sudo apt purge pop-desktop --allow-remove-essential will result in a broken install. After adding metapackage-reorg running the same command results in a working install with some things like pop-icon-theme and wallpapers missing, but still working. From here running sudo apt full-upgrade or sudo apt install pop-desktop and rebooting puts the install back to full working order. This is a bit improvement.

With only metapackage-reorg added trying to remove pop-desktop, pop-shell, pop-icon-theme etc will result in an error. Once the metapackage-reorg-kde branch is added removing any of these results in KDE auto-replacing GNOME.

If KDE is installed this way it results in oddities. The KDE session will work, but with caveats. This also happens if you try to remove GNOME after installing KDE.

When sddm is reached there is first an onscreen keyboard.

oskbd

Closing the keyboard takes you to this login.

sddm1

If you instead install KDE with sudo apt install pop-community-de-kde there is no issue with the onscreen keyboard and the login screen looks as expected. This is also fixed by running sudo apt install pop-desktop and rebooting.

sddm2

I can confirm ubuntu-(minimal|statndard) and ubuntu-advantage-tools can now be removed.

I was also able to setup a system with GNOME, KDE, and COSMIC-DE all working together.

Once KDE is installed both GNOME and COSMIC default to the light theme and breeze icons and cursors. This can be set back to default Pop icons and the dark theme with gnome-tweaks, but it will revert back to light and breeze by logging into a KDE session.

13r0ck commented 1 year ago

When sddm is reached there is first an onscreen keyboard.

That is a KDE bug, @Daisylee2010 found a fix for that, that we will use once the community ci is built.

Once KDE is installed both GNOME and COSMIC default to the light theme and breeze icons and cursors.

Ah, I copied over an old version of the kde metapackage, on the System76 Discord, the KDE peeps decided that we will just use the pop theme on both, by default.


When switching to sddm how did that go?

I am also concerned about switching from gnome to kde, does sudo apt remove pop-de-gnome then send you to kde? I might have to look into some sort of TUI that prompts when removing pop-de-gnome, so the user knows that they are going to switch to KDE :thinking:

n3m0-22 commented 1 year ago

When switching to sddm how did that go?

The switch from gdm to sddm worked as expected other than what you and I have listed above.

I am also concerned about switching from gnome to kde, does sudo apt remove pop-de-gnome then send you to kde? I might have to look into some sort of TUI that prompts when removing pop-de-gnome, so the user knows that they are going to switch to KDE thinking

I retested this to confirm. Running sudo apt remove pop-de-gnome removes pop-de-gnome and replaces it with KDE. This will result in the sddm login with the onscreen keyboard. It is easy enough to fix by reinstalling pop-de-gnome. Unless you look closely over the packages that are being removed and the new ones being installed I would say that is it unclear this is about to replace GNOME with KDE.

If this is the intended behavior to prevent a user from breaking their install I do think it would be a good idea to add a prompt explicitly letting the user know what is about to happen.

I don't think this is as much an issue when running sudo apt install pop-community-de-kde as this does not remove pop-de-gnome but only adds KDE. That being said, it might not be a bad idea to have some sort of prompt in this situation as well.

13r0ck commented 1 year ago

107 is now cherry-picked into this. Please also QA the requested checks from @jackpot51 there.

13r0ck commented 1 year ago

I will look into a prompt for (un)installing pop-*de-*

n3m0-22 commented 1 year ago

Regarding https://github.com/pop-os/desktop/pull/107

Working:

Not working:

With pop-desktop removed running sudo apt full-upgrade will still reinstall pop-desktop.

However I am no longer seeing pop-community-de-kde auto-installing when removing packages like pop-desktop, pop-de-gnome pop-icon-theme. This prevents the sddm with the onsceen keyboard from happening negating the issue. Intentionally installing pop-community-de-kde still works as before.

Replacing gdm with sddm prevents screen locking from working in a GNOME session.

There is a notification: Screen Lock Disabled screen locking requires the gnome display manager

Running sudo dpkg-reconfigure sddm and changing back to gdm will restore lock functionality in GNOME. Screen locking will also still work from KDE. Locking from either KDE or GNOME will lock to their respective display managers.

13r0ck commented 1 year ago

Not working:

How are you testing this? This is only for systems where the system was installed without pop-desktop and pop-desktop was added after the fact. Force removing the package will still then add the package back, that is intended functionality. Might be best to test this by using an ubuntu system then add the pop os repos, then add the pop-desktop package?

However I am no longer seeing pop-community-de-kde auto-installing when removing packages like pop-desktop

Wow that is a happy accident. I will have to try myself and see what is going on there

Replacing gdm with sddm prevents screen locking from working in a GNOME session.

Ah good find. Pop-de-gnome should conflict with sddm 51b059c

n3m0-22 commented 1 year ago

Not working:

How are you testing this? This is only for systems where the system was installed without pop-desktop and pop-desktop was added after the fact. Force removing the package will still then add the package back, that is intended functionality. Might be best to test this by using an ubuntu system then add the pop os repos, then add the pop-desktop package?

Thanks for the clarification. I misunderstood that point. I'll retest it now.

n3m0-22 commented 1 year ago

With metapackage-reorg-kde branch removing any of the following packages results in pop-de-gnome being removed and pop-community-de-kde being auto-installed. This also results in the sddm onscreen keyboard issue previously mentioned.

13r0ck commented 1 year ago

The sddm issue has been handled previously.

Ah man, that package removal issue sucks. I didn't even think that it would break in that way. Makes sense though. Good find. I will have to look for if there are any fancy ways to prevent that. Any issues with the metapacakge-reorg branch itself? I may have been to ambitious to try and sneak in DE switching with this PR

n3m0-22 commented 1 year ago

I'm not seeing any issues with the metapackage-reorg branch anymore. I also had it on a few machines over the weekend doing day to day tasks to see if anything unexpected happened and it has been fine. I would like to review the tests from https://github.com/pop-os/desktop/pull/107 again though since I misunderstood what it was doing the first time I went over them. I'll update as soon as I have finished that.

13r0ck commented 1 year ago

ya no worries

n3m0-22 commented 1 year ago

I have set up a system with ubuntu 22.04 and added the pop repos. I have tested with metapackage-reorg as well as protected from #107 but I am still seeing pop-desktop trying to install with sudo apt-get full-upgrade.

13r0ck commented 1 year ago

Just to be super clear, can I get a 1,2,3,etc list of steps that you did?

n3m0-22 commented 1 year ago

The first thing I tried after installing in Ubuntu:

  1. sudo apt update && sudo apt upgrade
  2. sudo gedit /etc/apt/preferences.d/system76-apt-preferences and save with
Package: *
Pin: release o=LP-PPA-system76-dev-stable
Pin-Priority: 1001

Package: *
Pin: release o=LP-PPA-system76-dev-pre-stable
Pin-Priority: 1001
  1. sudo apt-add-repository -y ppa:system76-dev/stable
  2. sudo apt update
  3. ./pop/scripts/apt add metapackage-reorg
  4. sudo apt install pop-default-setting
  5. sudo apt update
  6. sudo apt full-upgrade

I have tried several variations on this including adding the repos listed here https://apt.pop-os.org/. No matter how I come at this I always end up in the same place with pop-default-settings installed and pop-desktop not installed.

At this point when I run sudo apt full-upgrade pop-desktop is always in the list of packages to be installed. If I try to install them a dpkg error involving gnome-initial-setup prevents it from running. Adding a hold to gnome-initial-setup allows a set of packages not including pop-desktop to install with out issue. As soon as the hold is removed pop-desktop will attempt to install again.

I'm open to any suggestion you might have, or notes if I'm just missing something.

13r0ck commented 1 year ago

Thanks for the extra detail. I will look into it

13r0ck commented 1 year ago

Just rebased this on #118, still need to look into https://github.com/pop-os/desktop/pull/113#issuecomment-1530201160, which I hope to do this week, then this will be ready for QA review again

Edit: That is solved, and this is ready for review

13r0ck commented 1 year ago

pop-community-de-kde shouldn't be possible to install on this PR. Are you testing https://github.com/pop-os/desktop/tree/metapackage-reorg-kde ? I think I wasn't as clear as I should have been. I broke DE switching support off of this PR, so we can get the other improvements out faster. And I will loop back to that

n3m0-22 commented 1 year ago

Yes sorry I though they were meant to be tested together. Then this is good to go for Pop. I just need to confirm with Ubuntu that #107 that was cherry-picked is now working correctly. I'll update shortly.

13r0ck commented 1 year ago

all good. Sorry about that

13r0ck commented 1 year ago

I also don't think that using ubuntu for testing #107 is quite the way to go. For my testing I created a ISO using the new staging branch PR, where it installed pop-server and pop-default-settings (with STAGING_BRANCHES=metapackage-reorg). Launched that ISO, then installed pop-desktop

13r0ck commented 1 year ago

please also check that an iso created with https://github.com/pop-os/iso/pull/321 works as intended before this is approved. And please take your time and be thorough testing this. I really don't want to cause packaging conflicts because of this :smile:

thomas-zimmerman commented 1 year ago

With this reorganization, can we bring hplip and libfuse2 back a base dependencies that are installed by default.

jacobgkau commented 1 year ago

It might be best to get the transition dealt with before we go adding new dependencies, but I think libfuse2 as a depends and hplip as at least a recommends would be reasonable to consider.

jacobgkau commented 1 year ago

The upstream ubuntu-standard depends on hdparm. On a System76 machine, hdparm is still installed after adding this branch and running sudo apt autoremove --purge because system76-driver depends on pm-utils, and pm-utils recommends hdparm. However, in a virtual machine without system76-driver installed, hdparm is not depended on or recommended by anything, so it's autoremoved.

This may be a problem because system76-power (which is installed via pop-session -> gnome-shell-extension-system76-power) calls hdparm in one of its disk functions. However, looking at https://github.com/pop-os/system76-power/pull/261, it seems like system76-power may not actually use that function anymore.

@mmstick Do you think we should make system76-power depend on hdparm, should we add it to one of the metapackages here, or is it okay for that not to be present on some systems?

mmstick commented 1 year ago

It's fine if hdparm is removed since the code was never called. I've created a PR to remove it.

jacobgkau commented 1 year ago

One of the other packages that is currently autoremovable after installation is friendly-recovery. This package doesn't seem to be relevant on EFI installations because we don't include that type of recovery option in the systemd-boot menu (instead using our Recovery partition setup.) However, the package is relevant on legacy BIOS installations because recovery mode is available via the GRUB menu. I'm adding it back to pop-container-interactive to correspond to ubuntu-standard.