pop-os / cosmic-epoch

Next generation Cosmic desktop environment
1.73k stars 55 forks source link

Steps to test on Fedora 39 Beta Gnome Edition #141

Closed wiiznokes closed 3 months ago

wiiznokes commented 9 months ago

Feel free to close this issue if this is not wanted. This will help me to remember the steps for next time and also maybe help some people.

Rustup

if you're using rustup

rustup default stable

Dependencies

sudo dnf install just rustc libglvnd-devel libseat-devel libxkbcommon-devel lld libinput-devel glib2-devel dbus-devel wayland-devel clang-devel cargo mesa-libgbm-devel pipewire-devel -y

Clone + Build

git clone --recurse-submodules https://github.com/pop-os/cosmic-epoch
cd cosmic-epoch
just sysext

Copy system extension

sudo mkdir -p /var/lib/extensions
sudo rm -rf /var/lib/extensions/cosmic-sysext/
sudo cp -r cosmic-sysext /var/lib/extensions

Copy cosmic-comp config file (enable tilling at the end of the file)

sudo mkdir /etc/cosmic-comp
sudo cp cosmic-comp/config.ron /etc/cosmic-comp
sudo -e /etc/cosmic-comp/config.ron

Install pop-os icons

cd ..
git clone https://github.com/pop-os/icon-theme pop-icon-theme --depth=1 --branch=master
sudo dnf install meson -y
cd pop-icon-theme
meson build
sudo ninja -C "build" install

Enable system extension

sudo systemctl enable --now systemd-sysext
sudo systemd-sysext refresh

Disable permission tool used by Fedora

sudo setenforce 0

Quick Disable/Enable

enable (start testing)

sudo systemctl enable --now systemd-sysext
sudo systemd-sysext refresh
sudo setenforce 0
sudo systemctl restart gdm

disable (stop testing)

sudo setenforce 1
sudo systemctl disable systemd-sysext
sudo systemctl stop systemd-sysext

Log

journalctl --user _EXE=/usr/bin/cosmic-session -r -S -10m > ~/log.txt && code ~/log.txt
Legion495 commented 7 months ago

Thank you very much. I actually hope this will be added as installation guide on the front page for Fedora. (Man do I hope for official support on Fedora as spin)

wiiznokes commented 7 months ago

I really hope too. Use cosmic as system extension is very limiting. But I don't think it will land in federa repo before an alpha release. I tried to package cosmic as rpm one day but I don't think it make much sens having build files upstream. But idk because there is debian, nix, so why not rpm afterall

FluffyPuppyKasey commented 6 months ago

On Fedora 39 KDE I had to install pam-devel and gtk3-devel, so for me the whole command to install stuff is

sudo dnf install just rustc libglvnd-devel libseat-devel libxkbcommon-devel lld libinput-devel glib2-devel dbus-devel wayland-devel clang-devel cargo mesa-libgbm-devel pipewire-devel pam-devel gtk3-devel meson -y

lucamosca1 commented 5 months ago

After having installed updated dependencies I still not able to build it. Error is

PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 pkg-config --libs --cflags flatpak flatpak >= 1.11.1

The system library flatpak required by crate libflatpak-sys was not found. The file flatpak.pc needs to be installed and the PKG_CONFIG_PATH environment variable must contain its parent directory. The PKG_CONFIG_PATH environment variable is not set.

HINT: if you have installed the library, try setting PKG_CONFIG_PATH to the directory containing flatpak.pc.

warning: build failed, waiting for other jobs to finish... error: Recipe build-debug failed on line 34 with exit code 101 error: Recipe build failed on line 23 with exit code 101

wiiznokes commented 5 months ago

@lucamosca1 maybe it's because you don't have flatpak installed on your system. Try sudo dnf install flatpak. Idk where this crate is used tho

lucamosca1 commented 5 months ago

flatpak is already installed on a clean fedora 39

ErikReider commented 5 months ago

flatpak is already installed on a clean fedora 39

You need flatpak-devel

lucamosca1 commented 5 months ago

I confirm I needed also flatpak-devel, the list of pre-requisite should be updated. After that I'm still not abe to test in a virtual machine, but this should be an other issue

bhh32 commented 5 months ago

I also confirm I needed flatpak-devel. However, after I successfully built and logged in to COSMIC, my super key didn't bring any search up and I could get to anything but the settings applet.

mmstick commented 5 months ago

@bhh32 Do you have /etc/cosmic-comp/config.ron?

steveyackey commented 4 months ago

These tips were all super helpful! I got to the same spot as @bhh32. I'm on Fedora 39, installed the extra packages listed, and made sure config.ron was present. Seem to not be getting any additional output when running cosmic-launcher from the terminal either. Any ideas of additional logs I may be missing for hints?

Drakulix commented 4 months ago

These tips were all super helpful! I got to the same spot as @bhh32. I'm on Fedora 39, installed the extra packages listed, and made sure config.ron was present. Seem to not be getting any additional output when running cosmic-launcher from the terminal either. Any ideas of additional logs I may be missing for hints?

For cosmic-launcher to work correctly as a frontend, you need the backend-service pop-launcher installed as well: https://github.com/pop-os/launcher/. That is not part of this repository.

steveyackey commented 4 months ago

Thanks so much, that took care of it!

ryzendew commented 4 months ago

wish these where added to the readme.

ryzendew commented 4 months ago

rust-pam-sys-devel is needed also flatpak-devel is also needed

skewballfox commented 1 week ago
sudo systemctl enable --now systemd-sysext
sudo systemd-sysext refresh

Disable permission tool used by Fedora

sudo setenforce 0

Quick Disable/Enable

enable (start testing)

sudo systemctl enable --now systemd-sysext
sudo systemd-sysext refresh
sudo setenforce 0
sudo systemctl restart gdm

disable (stop testing)

sudo setenforce 1
sudo systemctl disable systemd-sysext
sudo systemctl stop systemd-sysext

Log

journalctl --user _EXE=/usr/bin/cosmic-session -r -S -10m > ~/log.txt && code ~/log.txt

@wiiznokes could you edit this to put setenforce 0 before enabling systemd-sysext. On the current version of fedora (40), this seems to break both use of sudo and user login, and at least on my system seems to also break the boot process. so the only way I've found so far is to boot from a usb and change selinux to permissive in /etc/selinux/config. I suspect it might be related to this closed systemd issue

things can still work(without resorting to recovery), if

  1. selinux is disable before enabling systemd-sysext and re-enabled only after disabling it
  2. the user doesn't reboot prior to finishing the test
mmstick commented 1 week ago

@skewballfox If you're on Fedora, there's no need to use systemd system extensions. You can get COSMIC officially from here: https://copr.fedorainfracloud.org/coprs/ryanabx/cosmic-epoch/. Packages are in the process of being reviewed and accepted into the official repositories.

skewballfox commented 1 week ago

@skewballfox If you're on Fedora, there's no need to use systemd system extensions. You can get COSMIC officially from here: https://copr.fedorainfracloud.org/coprs/ryanabx/cosmic-epoch/. Packages are in the process of being reviewed and accepted into the official repositories.

In my case I'm testing changes related to a PR I'm working on for cosmic-session, so can't really use the COPR.

wiiznokes commented 1 week ago

You shouldn't rely on this issue, use the copr instead

skewballfox commented 1 week ago

You shouldn't rely on this issue, use the copr instead

like I said I'm testing changes related to a PR. I think it's worth updating the initial post with the order requirements because, at least some of the people who look this issue up are trying to eat their own dogfood.

mmstick commented 1 week ago

None of us are using this for developing on COSMIC. You can clone a specific repo and build/install it locally. No need to go through this for that.

wiiznokes commented 1 week ago

Oops, didn't see the previous responses, but yeah, idt using systemd extensions is a good way to testing things