Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regolith on Fedora #26

Open
nicolae-stroncea opened this issue Jun 15, 2019 · 33 comments
Open

Regolith on Fedora #26

nicolae-stroncea opened this issue Jun 15, 2019 · 33 comments
Labels
distro-support enhancement New feature or request help wanted Extra attention is needed

Comments

@nicolae-stroncea
Copy link

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

@kgilmer kgilmer added the help wanted Extra attention is needed label Jun 15, 2019
@kgilmer
Copy link
Member

kgilmer commented Jun 15, 2019

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. :)

@kgilmer kgilmer added the enhancement New feature or request label Jun 22, 2019
@davidferlay
Copy link

davidferlay commented Jul 4, 2019

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
Copy link
Member

kgilmer commented Jul 4, 2019

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
Copy link
Member

kgilmer commented Jul 8, 2019

#61 needs to be complete before starting on this.

@leosunmo
Copy link
Member

leosunmo commented Oct 8, 2019

As with #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
Copy link

Any progress? This looks like a nicely polished desktop.

@davidferlay
Copy link

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
Copy link

johnmmcgee commented May 9, 2020

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
Copy link

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

@djdanielsson
Copy link

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
Copy link
Member

kgilmer commented Jan 16, 2021

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
Copy link
Member

kgilmer commented Jan 16, 2021

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
Copy link

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

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

@kgilmer
Copy link
Member

kgilmer commented Jan 17, 2021

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

@aadilayub
Copy link

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
Copy link

@aadilayub Bummer, thanks for checking, though!

@neevparikh
Copy link

Hey, any update on this front?

@kgilmer
Copy link
Member

kgilmer commented Apr 27, 2021

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
Copy link

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
Copy link

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

@mithusingh32
Copy link

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

@kgilmer
Copy link
Member

kgilmer commented Sep 10, 2021

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
Copy link

I'll give this a shot this week.

@jamesregis
Copy link

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

@kgilmer
Copy link
Member

kgilmer commented Sep 27, 2021

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 😄

@mithusingh32
Copy link

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
Copy link

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

@kgilmer
Copy link
Member

kgilmer commented Oct 5, 2021

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
Copy link

GavinRay97 commented Dec 15, 2021

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
Copy link

Any progress on this?

@kgilmer
Copy link
Member

kgilmer commented May 8, 2022

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
Copy link
Member

kgilmer commented May 8, 2022

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

@naclander
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
distro-support enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests