Skip to content

pantheon: init at 5.0#48637

Merged
worldofpeace merged 6 commits intoNixOS:stagingfrom
worldofpeace:elementary-cleaned
Jan 24, 2019
Merged

pantheon: init at 5.0#48637
worldofpeace merged 6 commits intoNixOS:stagingfrom
worldofpeace:elementary-cleaned

Conversation

@worldofpeace
Copy link
Contributor

@worldofpeace worldofpeace commented Oct 17, 2018

Description of Change

Add the elementary/pantheon desktop to NixOS!

Notes

  • I didn't add the things to, idk, release-combined.nix because I'm not familiar with that.
  • I should probably move gsignond: init at 1.0.7 #43133 here because I did it separately for some reason

Things Done

  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
  • Tested via one or more NixOS tests
    • elementary
  • Tested on Physical Machines
  • Fits CONTRIBUTING.md.

How To Test

There's https://elementary.cachix.org which can be used as a binary cache.
The packages are built directly off of this branch.

configuration.nix
services.xserver.enable = true;
services.xserver.desktopManager.elementary.enable = true;
services.xserver.desktopManager.default = "pantheon";
services.xserver.displayManager.lightdm.enable = true;
services.xserver.displayManager.lightdm.greeters.elementary.enable = true;

We have to set services.xserver.desktopManager.default = "pantheon"; because sessions from extraSessionFilePackages aren't picked automatically as the default session.

Possible solutions were discussed around here #43992 (comment).

In a VM

Ignore these errors as I can't reproduce them while on a physical machine.
Bluetooth error is pretty expected also.

** (io.elementary.switchboard:1744): CRITICAL **: 21:39:27.969: Manager.vala:64: Error calling StartServiceByName for org.bluez: GDBus.Error:org.freedesktop.DBus.Error.TimedOut: Failed to activate service 'org.bluez': timed out (service_start_timeout=25000ms)

Could't connect to accessibility bus: Failed to connect to socket /tmp/dbus-nF2hddXdYT: Connection refused
On a Physical Machine

Make sure that the home directory doesn't have any .gtkrc* or .dmrc lying around.

If you have a last saved session or something it won't go into the elementary session.
Running this fixed that for me:

dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User1000 org.freedesktop.Accounts.User.SetXSession string:pantheon

Where User1000 is User and the uid of the user.


Current Issues

1. There's no system sounds using elementary-sound-theme

Needs a sounds module mentioned in #47173

  1. elementary-greeter doesn't have a panel with indicators from wingpanel

No idea on this one.

  1. glib setup hook doesn't move networkmanagerapplet schemas

See: #45043

This causes connection from wingpanel-indicator-network to be impossible.

I'm currently doing this horrible "workaround" .

4. elementary-greeter can appear really weird on displays less than 1920x1080 and maybe above

Clearly evident in a screenshot:

lightdm

Also note on certain displays that meet that criteria, the font looks awful.

  1. switchboard-plug-onlineaccounts isn't functional

Here's the output of authentication on NixOS and elementary.

Also it requests to enter a password for Default Keyring.
It probably shouldn't.

6. switchboard-plug-pantheon-shell can't enumerate system wallpapers directory

Upstream Issue: elementary/settings-desktop#151

  1. after locking desktop (or after first login) cursor theme is switched to adwaita

  2. switchboard-plug-print always requests some sort of authentication

  3. enabling both elementary and gnome3 isn't possible

Build fails with:

error: The unique option `networking.networkmanager.basePackages.modemmanager' is defined multiple times, in `nixos/modules/services/x11/desktop-managers/elementary.nix' and `nixos/modules/services/x11/desktop-managers/gnome3.nix'.

Notable Compromises

gnome3.mutter328

We have to keep mutter 3.28 around for elementary's gala and greeter until they get around to adapting to all the API breaking changes in libmutter-3.

patched gnome-settings-daemon

In order for light-locker to kick in, we have to control certain DPMS settings ourselves that are otherwise managed by G-S-D yet ignored by light-locker. This requires a helper package and a patched G-S-D.

Don't really have much of choice here based off of this comment here elementary/greeter#92 (comment)


Unpackaged Software

They remain as such because they're non-functional, problematic, or untested on distros other than Ubuntu.

List of programs and upstream issues

Though switchboard-plug-useraccounts isn't really useful on NixOS for obvious reasons 😄

Thank you @jtojnar so much for all the guidance! 🎆 🎆 🎆

@matthewbauer matthewbauer requested a review from jtojnar October 17, 2018 18:47
@GrahamcOfBorg GrahamcOfBorg added 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 8.has: module (update) This PR changes an existing module in `nixos/` labels Oct 17, 2018
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure I understand. Could you be more specific?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I meant they could use meson to get an absolute path

@jtojnar
Copy link
Member

jtojnar commented Oct 18, 2018

More to come later.

@GrahamcOfBorg GrahamcOfBorg added 8.has: clean-up This PR removes packages or removes other cruft 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. labels Oct 19, 2018
@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

Installing subdir /build/source/Faba to /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3/share/icons/Faba
Running custom install script '/build/source/meson/post_install.py'
glibPreFixupPhase
hicolorPreFixupPhase
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3
checking for references to /build in /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3...
/nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

Installing subdir /build/source/Faba to /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3/share/icons/Faba
Running custom install script '/build/source/meson/post_install.py'
glibPreFixupPhase
hicolorPreFixupPhase
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3
checking for references to /build in /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3...
/nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3

@worldofpeace
Copy link
Contributor Author

Heh, wonder which commit made the eval succeed.

@worldofpeace
Copy link
Contributor Author

If i try to enable both gnome3 and elementary this happens

error: The unique option `networking.networkmanager.basePackages.modemmanager' is defined multiple times, in `nixos/modules/services/x11/desktop-managers/elementary.nix' and `nixos/modules/services/x11/desktop-managers/gnome3.nix'.

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

Installing subdir /build/source/Faba to /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3/share/icons/Faba
Running custom install script '/build/source/meson/post_install.py'
glibPreFixupPhase
hicolorPreFixupPhase
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3
checking for references to /build in /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3...
/nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

Installing subdir /build/source/Faba to /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3/share/icons/Faba
Running custom install script '/build/source/meson/post_install.py'
glibPreFixupPhase
hicolorPreFixupPhase
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3
checking for references to /build in /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3...
/nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3

@GrahamcOfBorg GrahamcOfBorg added the 2.status: merge conflict This PR has merge conflicts with the target branch label Oct 21, 2018
@worldofpeace worldofpeace mentioned this pull request Oct 26, 2018
9 tasks
@GrahamcOfBorg GrahamcOfBorg removed the 2.status: merge conflict This PR has merge conflicts with the target branch label Oct 26, 2018
@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

Installing subdir /build/source/Faba to /nix/store/2nh2rza1p1v749niwc5r381wshkpx2am-faba-icon-theme-4.3/share/icons/Faba
Running custom install script '/build/source/meson/post_install.py'
glibPreFixupPhase
hicolorPreFixupPhase
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/2nh2rza1p1v749niwc5r381wshkpx2am-faba-icon-theme-4.3
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/2nh2rza1p1v749niwc5r381wshkpx2am-faba-icon-theme-4.3
checking for references to /build in /nix/store/2nh2rza1p1v749niwc5r381wshkpx2am-faba-icon-theme-4.3...
/nix/store/2nh2rza1p1v749niwc5r381wshkpx2am-faba-icon-theme-4.3

@worldofpeace
Copy link
Contributor Author

@davidak This should build now and I think I've pushed all of it to cachix.

@davidak
Copy link
Member

davidak commented Jan 19, 2019

I build it myself to check for problems there.

It seems that many packages don't build on staging. Now i get "No space left on device", but i have 300 GB free. Isn't that enough to build Chromium? I give up for today.

@davidak
Copy link
Member

davidak commented Jan 19, 2019

Now i have disabled enough packages to build it.

I can confirm that issue 4 is fixed and it generally works!

I noticed that the display brightness setting has no effect. But that's a non critical issue i will report in a new issue when this is merged.

@worldofpeace
Copy link
Contributor Author

Now i have disabled enough packages to build it.
I can confirm that issue 4 is fixed and it generally works!

Great, we shouldn't be too far of then from getting this in.
If you can, ping me in #nixos if something jarring occurs.

I noticed that the display brightness setting has no effect.

I'm thinking the major pain point we have here is power management.
You may also run into #14168 as we're also affected by it.

@davidak
Copy link
Member

davidak commented Jan 19, 2019

Log out, Suspend and Shutdown have no function.

Can you reproduce that?

@worldofpeace
Copy link
Contributor Author

Log out, Suspend and Shutdown have no function.

Can you reproduce that?

Can't in QEMU. It's possible that there's a stateful variable playing a hand in this.

Do you actually ever see the dialog?

Also try getting the output when you try to select it.
This can be done by killing the io.elementary.cerbere process and wingpanel
then running wingpanel like

G_MESSAGES_DEBUG=all wingpanel

We have to kill cerbere because it will restart wingpanel if killed.

@davidak
Copy link
Member

davidak commented Jan 19, 2019

Do you actually ever see the dialog?

yes. i have seen the shutdown dialog, but when i clicked on shutdown or restart, nothing happened.

i shut the system down from the command line and started it again and now i can't reproduce the problem.

so not a critical problem preventing the merge. i will open an issue if i have this problem ever again.

@worldofpeace
Copy link
Contributor Author

Should I add the test to https://github.com/NixOS/nixpkgs/blob/master/nixos/release-combined.nix in a similar fashion to gnome3 (excluding aarch)?

@jtojnar
Copy link
Member

jtojnar commented Jan 20, 2019

Probably a good idea.

@worldofpeace
Copy link
Contributor Author

Ok, I think all that's left is

After this is merged I will migrate all the issues out of here, add a Pantheon label and project.

@worldofpeace
Copy link
Contributor Author

@jtojnar Any idea what

gsd-xsettings Failed to get current display configuration state: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.gnome.Mutter.DisplayConfig" does not exist

Means?

@worldofpeace
Copy link
Contributor Author

So I made this a bit better getting rid of some more session path, as I found I had some of it in a stash already.

Though the commit got squashed so here are the changes.

@worldofpeace
Copy link
Contributor Author

Hope that was fine 😄

Thank you so much to @jtojnar and @davidak 🎇

@dtzWill
Copy link
Member

dtzWill commented Jan 28, 2019

Yay! I apologize if I'm using a slightly dated version, but in case it's useful...

I ran into an assert failure due to bad pname usage (this may have been reverted on master but I like it so kept it), fix was relatively straightforward. Please apply if this looks good, or bug me and I'll make a PR or something :).

dtzWill@663293e

@worldofpeace
Copy link
Contributor Author

Yay! I apologize if I'm using a slightly dated version, but in case it's useful...

I ran into an assert failure due to bad pname usage (this may have been reverted on master but I like it so kept it), fix was relatively straightforward. Please apply if this looks good, or bug me and I'll make a PR or something :).

dtzWill@663293e

Yeah I actually wanted to switch to repoName and jtojnar also suggested appName or projectName.
I think repoName or projectName would make the most sense for what's it's used for.

It would be really nice if you'd pr that for all pantheon 😄 ❇️

@vcunat
Copy link
Member

vcunat commented Feb 1, 2019

See f55f45f (gst-ffmpeg removal).

@worldofpeace worldofpeace mentioned this pull request Aug 5, 2019
10 tasks
@bobby285271 bobby285271 mentioned this pull request Aug 11, 2021
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: GNOME GNOME desktop environment and its underlying platform 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 6.topic: pantheon The Pantheon desktop environment 8.has: changelog This PR adds or changes release notes 8.has: clean-up This PR removes packages or removes other cruft 8.has: documentation This PR adds or changes documentation 8.has: module (update) This PR changes an existing module in `nixos/` 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 101-500 This PR causes between 101 and 500 packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants