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

Is it possible/difficult to convert Ubuntu/Debian into GoboLinux? #8

Open
BoQsc opened this issue Mar 6, 2020 · 14 comments
Open

Is it possible/difficult to convert Ubuntu/Debian into GoboLinux? #8

BoQsc opened this issue Mar 6, 2020 · 14 comments
Labels

Comments

@BoQsc
Copy link

BoQsc commented Mar 6, 2020

I would like to see more awareness on GoboLinux, and I do believe that having a quick way to convert Ubuntu/Debian into GoboLinux Files and Folders system would attract more attention towards the project and maybe few more essential high quality contributors to drive the project forward and improve the quality of documentation.

Would it be difficult to convert Ubuntu/Debian to GoboLinux "on the fly"?

I'm mostly concerned about: reorganization of Ubuntu/Linux Files and Folders naming and hierarchy.

Would it be enough to just simply do symlinks and use GoboHide on Ubuntu/Debian?

Would it be even a good idea to convert Ubuntu/Debian into what GoboLinux is?

@lucasvr @AitorATuin @hishamhm @mwh @bolangi

@lucasvr
Copy link
Member

lucasvr commented Mar 6, 2020

We have something that could serve as a starting point for that: https://github.com/gobolinux/ThirdPartyInstallers

One way to do it would be to:

  1. Query the package manager for a list of installed packages
  2. For each package/version, create its corresponding entry under /GoboLinuxRoot/Programs
  3. Retrieve the list of files installed by that package, and copy each reported file/directory to /GoboLinuxRoot/Programs/package/version (flattening /usr as needed)
  4. Check what's not been copied (i.e., files possibly not associated with any package) and copy them over to /GoboLinuxRoot

Afterwards, it would be a matter of creating links on /GoboLinuxRoot/System/Index and then attempting to chroot to check if the filesystem layout change worked.

As a last step, there might be a need to modify the boot scripts so that the system boots and launches services as expected. That's where I think the most burdensome tasks will be.

@Arndorferd
Copy link

I agree this project would make more sense in general if there was a way to adapt it into bigger projects, this OS on its own doesn't seem like its going to take off with this one thing going for it.

I'm confused if anyone even got this to work with gnome because there's a few developer comments saying that it was attempted but never worked with gnome?

What exactly has been the difficulty with that?

Would the ThirdPartyInstallers app help with that? If so that seems like a better supported UI Platform.

One issue with this project and linux organization in general seems to be that there's a lot of projects out there that force you to use different builders and installers like meson or ninja or snap, ect, and dont have a .configure where you use like ninja install after building. Not sure if theres a way to use those still and follow this file hierarchy.

The lack of installation standards and a way to unify them in an organized way seems like the biggest problem in linux.

@hishamhm
Copy link
Member

I agree this project would make more sense in general if there was a way to adapt it into bigger projects, this OS on its own doesn't seem like its going to take off with this one thing going for it.

We've had this for a while, it was called "Rootless GoboLinux" and it is now discontinued. Some people, myself included, have made good use of it (e.g. to set up a familiar Linux environment on a Mac) but over the years we learned that making a "quasi-distro that sits on top of another distro" is actually more work than making a distro, because the floor keeps moving below you. We dropped it out of lack of maintainer availability, quite simply.

The project "makes sense" as long as we can solve our problems using it, and have fun doing so. Nowadays, it is not a goal to "take off" and take over the world, and this is perfectly fine.

What exactly has been the difficulty with that?

Last time I tried (15 years ago, haha), the GNOME build system made lots of assumptions about the underlying system components, had circular dependencies, etc. My feeling was that GNOME's general attitude towards people building from source seemed to be "let the distro handle it" and that at long as it built on mainstream distros, they considered their build system good enough. KDE's build was a lot better organized, and frankly, I liked KDE better so fighting the GNOME build system just so we could tick a box in the distro was a waste of time (that was when we were trying to make it "take off" and I would spend countless hours building stuff just because people said it wasn't possible).

As for GNOME, other folks made efforts through the years to build GNOME with varying degrees of success (i.e. got to a "works on my machine" stage with quirks here and there).

Nowadays, we ship Gobo with a minimalistic AwesomeWM environment — it doesn't even include a file manager, since we're all terminal users.

One issue with this project and linux organization in general seems to be that there's a lot of projects out there that force you to use different builders and installers like meson or ninja or snap, ect, and dont have a .configure where you use like ninja install after building. Not sure if theres a way to use those still and follow this file hierarchy.

Our Compile tool supports those different builders; it knows how to deal with them and can virtualize the filesystem enough so that the build processes find everything they need in the right places — it's rather neat!

The lack of installation standards and a way to unify them in an organized way seems like the biggest problem in linux.

I'll respectfully disagree, because if you look at Windows, it doesn't even have a built-in package manager — it is less standardized in terms of installations than Linux, and it was never a problem for its success. If what one wants is simply a unified and organized way to deal with package installations, picking a mainstream distro like Ubuntu or Fedora, sticking with it and using its provided package manager to install all programs achieves that rather well — and frankly, this was already true 20 years ago with Debian and RedHat. Gobo was created out of the desire to tinker, to build stuff from source, to experiment and go beyond what the package manager provided with bleeding-edge stuff — and in a sense, that's precisely counter to the desire of unification and conservative stability. Gobo is an alternative, a view into a parallel universe of what Linux can be, but it is not trying to become a new standard.

@Arndorferd
Copy link

Arndorferd commented May 13, 2021

We've had this for a while, it was called "Rootless GoboLinux" and it is now discontinued

Is there a way to get the legacy installation?

I'll respectfully disagree, because if you look at Windows, it doesn't even have a built-in package manager

Well Ill admit that I don't attempt to build stuff from source very often in windows, perhaps I should rephrase and say that because distros vary so much and there's less official content. Moderate and some advanced users in linux would be expected to use package managers more often I feel rather than rely on .exe and .msi files and their built in software uninstaller so that's why it seems to have more importance to have something to help unify things in linux.

It would be nice to use the gui app managers in linux for most things and supplement with the default package manager of your distro for everything else, I just haven't found that to be very encompassing with the amount of small time open source I feel I use in linux.

Gobo is an alternative, a view into a parallel universe of what Linux can be, but it is not trying to become a new standard.

In my opinion, and Ive had this idea before I even came across this project, when I was working with windows, I would come across portable programs and feel like, why aren't all windows programs made "portable"? I feel all OS would benefit from being more modular. It just makes sense, its like soldering in a graphics chip vs having a slot but with software. The files should be in one place.

I also honestly hate the unix style of folder organization, it feels like something that maybe made sense at one point but feels very outdated. That is the one thing I will say I feel MS Dos and Windows have that feels a little bit more natural with to me, I loathe the registry in windows though. But in unix/linux for example one standard file is etc standing for et cetera, and its mostly used for config files now. Standards need to change at the point they become cumbersome and the unix file hierarchy is an old standard, from the 70s and it makes little sense. To me its like us Americans using imperial measurements for most things, if there's something better like metric there should be an effort to adopt (although I feel Fahrenheit is actually better for air temp).

but I digress, I can see that you've put a good deal of effort in changing things even earlier in the linux game and it seems that the project may be winding down in terms of what you all feel like putting into it but I do personally wish it did "take off". Im still debating myself trying to dig into how this works and how the rootless version works but I'm also debating if its worth the time.

@Nuc1eoN
Copy link
Member

Nuc1eoN commented May 13, 2021

@Arndorferd If you care so much about GoboLinux, I suggest you invest your precious time and energy into installing GoboLinux and making the set up work for YOU. I do not mean this in a offending way, but trust me you are completely wasting your time writing attention seeking posts and it won't make GoboLinux take off in a million years... users actually using a distro make the difference. The post-analysis of a soccer game has never changed the facts, it is just a bunch of nonsense. Its the players who run the game.

@Arndorferd
Copy link

Well if a team of like 5 people or whatever didnt feel rootless gobolinux was worth keeping it updated like, Im not exactly sure what I by myself can do so, the questions that remain, for me, is, is it a waste of time for me to attempt to get this going as a sole player who doesnt have experience in programming distro's and as an amateur programmer to learn extensively since its just too much for one person and has little chance of getting noticed and getting supported more, or is it worth the time. Im gauging the sentiment of the project as a whole. I mean post-analysis may not have much change in facts in soccer but coaching, during the process and trying to gauge the sentiment of the players to make a good game plan moving forward does.

@Arndorferd
Copy link

Anyway as I asked does the legacy releases of rootless gobo still exist somewhere?

@Nuc1eoN
Copy link
Member

Nuc1eoN commented May 15, 2021

Im not exactly sure what I by myself can do so, the questions that remain, for me, is, is it a waste of time for me to attempt to get this going as a sole player

I mean that depends on your priorities, if you want an operating system the way you want it, you need to invest some energy.
If you are not ready to invest that, other distros like Ubuntu have it all.

Personally I do this stuff for the fun of it, so I struggle to decode statements like "is it worth my time..." I mean it depends what stuff you consider being worth your time, do you want fun, money, success? And what are you willing to actually do?

If you see yourself in a position to pose the question "is it worth my time?" then I think you already know the answer.

Everything that GoboLinux advertises, it is actually capable of doing. If you are missing some feature it is absolutely possible to implement this yourself as a sole player. In fact I think most GoboLinux tools originate from 1-2 creators and thats it.
But if you are saying you are not willing to learn this stuff, or you want others to implement it for you (unpaid), then I guess it wont work out.

Anyway as I asked does the legacy releases of rootless gobo still exist somewhere?

Not sure, @lucasvr or @hishamhm would need to answer this.

@Arndorferd
Copy link

Arndorferd commented May 15, 2021

Your looking at it from the perspective of, I like to to tinker with things and this is fun to do. Im coming from the perspective of, this isn't something I want to do, but I feel it should exist so if Im going to do it myself, others better get use out of it. Id do it for the good of the community but I wouldn't do it just as a hobby for myself because Im more passionate about other things. Like Ill spend my time on it but not as a hobby, as a good cause for the linux community perhaps.

It just sounds to me you all have tried to make it take off and it didnt and you're all not interested in trying that again because its not worth it. In that case, Im not sure how my support would be that much more useful one extra person would be to that goal. I mean you all said this is just here to be an example of what linux could be. Well if thats all that a small group of people can do then Im not sure its worth my time, because I neither have money nor do I have the interest in starting a business or something that has a voice to get this thing going. Im saying its a good idea and its a shame that it didnt get more voice in the linux community but, Id feel like Id have to really dedicate more than Im willing if I were to do something about that, because theres other things that I want to do good in that seem more important to me.

If you see yourself in a position to pose the question "is it worth my time?" then I think you already know the answer.

No not exactly, because I know sometimes big things start small and Im not sure if this could be that or not I mean I think people need to be willing to make a life decision though to really put a ton of effort in something if its what they feel they should be doing with their time. I dont think any of us are like, making Gobolinux a bigger thing is the most important thing in our lives and so on, but the project does need someone with that attitude if its going to take off and I would help if it had someone like that but Im not willing to be that person basically. Im willing to help someone else who is that person but Im not willing to be that person, because Ive kinda dropped the idea of wanting to be a programmer full time as a career so, its not really in my realm of where this would be good publicity or whatever for me to get into deep.

@Arndorferd
Copy link

Ill have a look at the rootless version and if it looks like I can retrofit it pretty easily to fit on top of arch or ubuntu by just updating a few things then I might take the resulting os and post that as a fork of that os because I mean it might make more sense to fork that os but its kinda like an I might do this if I feel its worth it kinda thing.

@Arndorferd
Copy link

Arndorferd commented May 15, 2021

To me trying to make a new OS rather than a fork of what is more popular as said earlier, is trying to make a new standard, when there already is many out there. I mean most of the popular OS right now are forks because they go off of what is already popular. Pop OS is a fork of Debian which is a fork of Ubuntu. If your intentions are to make it popular, and not to try to write new standards, it makes more sense to fork an old distribution using this concept. If your just doing it as a hobby thats cool but I dont think that the project as a standalone system is very useful for most people because it doesnt go along very well with what is standard now.

@Arndorferd
Copy link

If you all were like lets make a new project called GoboDebian and make it a fork of Debian, Id be like thats a good Idea sure Ill help out with that but as it is now, idk it seems to me like you are kinda "wasting time" in a way if you think that a from scratch linux version is going to take off.

@Arndorferd
Copy link

If you guys dont feel that, that is the case, or you feel that it is true but you feel like its not in your scope of what you want to do then well I either 1.should work with other people who want to do it that way or 2.I should not work on it at all because I feel similarly in terms of not wanting to invest too much time into it. Either way its better if I know where people are coming from.

@lucasvr
Copy link
Member

lucasvr commented May 16, 2021

Anyway as I asked does the legacy releases of rootless gobo still exist somewhere?

Hi there. Back in the day, when Rootless was born, GoboLinux used an approach to compilation of programs in which their installation prefix was set to /Programs/Name/Version both at compile time and at install time. With Rootless we basically changed the target to $HOME/Programs/Name/Version, and all was fine.

The problem with that approach is that many programs will attempt to find files from other programs under the prefix set at compile time. For instance, a program named Foo may expect to find files from a program named Bar under /Programs/Foo/Version/share when they were built following that approach -- and that's an issue, because files from Bar won't be there! We had some hacks such as renaming share to Shared and then letting share point to the global directory of symlinks for all programs' Shared directory. Then we noticed that the same approach would have to apply for lib, bin, and other directories, so we abandoned that approach and adopted something different.

The new version (which we use to this day) lets programs to be compiled with prefix=/usr. Then, at install time, we create a union mount over /usr that captures file creations/writes. When the installation is over we remove some known outliers from that sandbox and move the remaining files to /Programs/Foo/Version. The advantage here is that file lookups will no longer happen under /Programs/Foo/Version, but rather under /usr -- so files from other programs will be found as expected.

The disadvantage is that programs like Rootless are no longer guaranteed to work, because we now rely on a feature (union mounts) that you won't find on other operating systems. And so we stopped maintaining Rootless: if we know beforehand that it won't work on, say, macOS and Windows, then it's not worth the effort to keep pushing it.

Here is the commit that deleted Rootless from the codebase. There's also this nice script that automated the installation of Rootless on other operating systems. Still, it's gonna be a lot of work.

I'd say that it's probably more productive to put efforts on having a GoboLinux Docker image than fighting Rootless. The only thing with Docker, then, is to come up with an alternative implementation of GoboHide so you can hide the standard directory hierarchy without having to patch the host kernel.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants