regolith-linux / regolith-desktop

Meta package for the Regolith Desktop Environment
1.51k stars 31 forks source link

Regolith on Fedora #26

Open nicolae-stroncea opened 5 years ago

nicolae-stroncea commented 5 years ago

How could I use the Regolith desktop session on Fedora? It that possible at this point in time?

kgilmer commented 5 years ago

Hi and thanks for your interest in Regolith! I don't have packages for Fedora, so I'm not aware of a way of installing Regolith there. If someone is interested in writing and maintaining the RPM-based packages from the Debian ones, I don't think it would be a lot of work, however. I'll add help-wanted and maybe someone can make this happen. :)

davidferlay commented 5 years ago

Would definitly be interested in a fedora version too !

writing and maintaining the RPM-based packages from the Debian ones

Which packages are not available in fedora's repos ? I guess just a few in this case

Another solution would be to use snap/flatpack packages instead of rpms

kgilmer commented 5 years ago

Here is a list of packages for a given release of Regolith: https://launchpad.net/~kgilmer/+archive/ubuntu/regolith-stable?field.series_filter=bionic

These packages are just Regolith configuration and so wouldn't have upstream sources: regolith-desktop, regolith-assets, regolith-styles. So ideally, if everything else where available as vanilla packages for Fedora, creating these 3 additional packages would be all that's required.

I'm in the process of migrating configuration out of the UI packages into their own packages vi XResources. Once this migration is complete, supporting more distros will be much easier as the number of custom packages should reduce down to those 3, from 19 there currently are.

kgilmer commented 5 years ago

61 needs to be complete before starting on this.

leosunmo commented 5 years ago

As with https://github.com/regolith-linux/regolith-desktop/issues/32 we should be able to build some RPM packages fairly easily once we streamline package builds. Most modern build tools allows you to build for Debian based systems as well as Fedora.

johnmmcgee commented 4 years ago

Any progress? This looks like a nicely polished desktop.

davidferlay commented 4 years ago

Fyi @johnmmcgee you should check out Manjaro i3 community edition (https://manjaro.org/download/community/i3/)

It has a similar approach/spirit than Regolith and runs on Arch linux (Manjaro)

johnmmcgee commented 4 years ago

Fyi @johnmmcgee you should check out Manjaro i3 community edition (https://manjaro.org/download/community/i3/)

It has a similar approach/spirit than Regolith and runs on Arch linux (Manjaro)

Iam not interested in arch or manjaro, but that looks pretty cool. Hopefully this makes its way into COPR soon.

edit: looks like someone made a start: https://copr.fedorainfracloud.org/coprs/borispf/regolith/packages/

gigatexal commented 4 years ago

might it be an issue of money -- i would be willing to donate to make the regolith spin of i3 more distro agnostic

djdanielsson commented 3 years ago

How is this coming along? I was looking to find if someone has already gotten it working with Fedora but didn't find much.

kgilmer commented 3 years ago

Hi David, yes it's pretty quiet but we're working on generalizing the package structure of Regolith to make it easier to port. This work will go into Regolith 2.0. The package layout and inner workings of Regolith will change quite a bit from what we have now. Once that's done I expect we could try out a Fedora port by generating RPMs from the Debian packages and see how it goes. A blocker now is the relatively large number of dependencies required for the simplest possible configuration.

kgilmer commented 3 years ago

If anyone is interested in learning more about changes we plan for 2.0, design docs will go in the wiki of the regolith-system repo. For example: https://github.com/regolith-linux/regolith-system/wiki/i3-Config-Partials

edgester commented 3 years ago

FYI, there is an i3 Fedora spin in the works Perhaps both groups should collaborate.

https://fedoraproject.org/wiki/Changes/Fedora_i3_Spin

kgilmer commented 3 years ago

Thanks @edgester , great idea! I sent a message introducing myself.

aadilayub commented 3 years ago

It looks like the design goals of the Fedora i3 spin are pretty different from Regolith, and they're choosing to ship it with a very stock configuration (which makes sense since they ship all DEs pretty much stock).

I don't think it'll be feasible for the Regolith project to merge with the Fedora i3 spin given these differences.

edgester commented 3 years ago

@aadilayub Bummer, thanks for checking, though!

neevparikh commented 3 years ago

Hey, any update on this front?

kgilmer commented 3 years ago

Hi @neevparikh , we're finishing up the Regolith 1.6 release now. Once that's done we'll be on to 2.0 proper which allows the breaking changes necessary to support other distros such as Fedora. I don't expect anything short term and ideally we could find someone w/ some RPM packaging experience to help out.

neevparikh commented 3 years ago

I'm willing to learn RPM packaging hahaha. I'm stuck on fedora for hardware support, but I really would like to run Regolith (gnome + i3 has been a dream for a while)

neevparikh commented 3 years ago

Additionally, I'm willing to dive into the 2.0 release as well

mithusingh32 commented 3 years ago

I can help with rpm packing as well. I have some experiences writing spec files.

kgilmer commented 3 years ago

That's great to hear! Well, things are not completely settled and the docs are still a work in progress, however I have the build automation setup now. This repo houses a generic package model for Regolith 2.0. There are some github workflows that currently build Debian repositories for Debian and Ubuntu OSs using the native debian build tools. Assuming that a Regolith on Fedora could be implemented in such a way that there is 1 RPM package for each DEB, then all that's needed is a github action similar to this one that can:

  1. build source and binary packages from code hosted in git repositories
  2. generate a static package repository that can be hosted via a custom URL over HTTPS (https://regolith-linux.github.io/package-repo/<fedora something something>)

The build system works like this:

  1. the general purpose package model (described above) is merged with any distro or release specific changes contained here as JSON documents. For example, if Fedora requires specific patches, additional packages, or to not ship a given package, these changes can all be expressed as JSON snippets that apply to the general package model. It may work out that no changes are required.
  2. A manifest is generated for all packages by determinig the git hash on the branch for each package. The manifest is kept in git (example) and by checking for git changes we can know if a build is required or no changes have been made. This logic lives here.
  3. If a build is required, the distro specific steps are executed. Once executed the git repository will have new local files which are committed and then hosted by github pages. So, no special infrastructure is needed for package repositories other than what we get for free from github.

If I were to start out on a Fedora build, I'd:

  1. fork the package-repo repo
  2. copy https://github.com/kgilmer/ingest-debian-reprepro-action to another repo and create a simple "hello world" action/step that does something like just print out the name of the package or something
  3. copy and adapt an existing workflow to call the new action created in step 2.
  4. run a build, verify that the new sample action works and everything else works as expected
  5. implement the distro-specific work in the new action
  6. once it's ready, create a PR to add the workflow to package-repo

I'm happy to fill in details, answer questions, or fix any mistakes here. How can I help?

mithusingh32 commented 3 years ago

I'll give this a shot this week.

jamesregis commented 3 years ago

I can help too if needed. I have some knowledge on building RPM packages.

kgilmer commented 3 years ago

I'm happy to help if someone gets stuck. If more guidance is needed I could spend some more time on documentation. Just LMK what is needed and I'll do my best to support this project :smile:

mithusingh32 commented 3 years ago

Haven't had a chance to do this. I'm hoping I will this weekend I will.

Would a end goal be to have a regolith-linux fedora edition?

mithusingh32 commented 3 years ago

@kgilmer will the setup.sh need to be updated as well?

kgilmer commented 3 years ago

Hi @mithusingh32 , sorry for the delay.

Would a end goal be to have a regolith-linux fedora edition?

Yes! I'm guessing it would be possible to host the RedHat equivelent of a Debian repository either as part of package-repo or somewhere else if needed for some platform specific reason.

will the setup.sh need to be updated as well?

I'm not entirely sure which setup.sh you are referring to. In the case of this one this is an extension mechanism available to you if you need to run something custom, yes. Please LMK if you meant something else.

GavinRay97 commented 2 years ago

Super interested in this as well!

Has anyone tried just using alien to convert the .deb to an .rpm and then installing it? I don't assume it would work, but it's maybe worth a shot?

Alien is a program that converts between the rpm, dpkg, stampede slp, and Slackware tgz file formats. If you want to use a package from another distribution than the one you have installed on your system, you can use alien to convert it to your preferred package format and install it.

fpm can also do this as well (.deb to .rpm), and is a good tool if you want to package the same tool in multiple distribution formats (.deb, .rpm, pacman, etc)

Again, not certain this would work OOTB though. Maybe a long-term strategy could be an fpm pipeline from original sources in Github Actions?

distefam commented 2 years ago

Any progress on this?

kgilmer commented 2 years ago

Hi @distefam , there is no active work going into Fedora support at this time that I'm aware of. What has changed since the last post is that Regolith has a distro-agnostic build system that can support generating packages in non-Debian formats. Here is the script that in essence implements an interface to generate and publish packages: https://github.com/regolith-linux/voulage/blob/main/.github/scripts/ext-debian.sh

Here is a generic script that could be the starting point for a rpm package builder/publisher: https://github.com/regolith-linux/voulage/blob/main/.github/scripts/ext-template.sh

kgilmer commented 2 years ago

I would be happy to work with someone with rpm packaging experience that the knowledge about Fedora to do sufficient testing..

naclander commented 2 years ago

It does look like there might be some serious work depending on how different system files are placed in fedora vs ubuntu. I'm happy to help/test but maybe starting with a single small regolith package might be the easiest way to get the ball rolling.

This is the script that the Arch Linux package uses to download all debs, extract the source, patch, and finally create an Arch Linux package: https://github.com/gardotd426/regolith-de/blob/master/PKGBUILD

It is pretty involved.