Forking Arch Linux (for 2 things), needs contribution/opinions.
FEW WORDS REGARDING THIS THREAD:
First of all, since I do not know where to post this thread {for sharing my ideas and asking for people to give me opinion for forking a distro} or {join this for contribution if they like it}, I posted it at LinuxQuestions.org. (LQ is like my home for linux.:) I opt for it first for any linux related problems.) Please forgive me if I am wrong to share it on LQ website, and kindly redirect me to appropriate place for starting/forking a linux distro. MAIN: Preliminary: I am using ArchBang, hence am pleased by the power with simplicity of Arch Linux based distros. This includes especially its bleeding edge nature, pacman package manager, its simple packages' structure etc. But there are lacking two things, 1) First Arch linux doesn't support partial upgrades. 2) Most of the linux distro normally doesn't allow multiple versions of same package through their package management (as far as I know)(There is NIX OS, but require use of functional language, crypgraphic hashes etc., not simple in design as Arch Linux). What I Want To Do: I want to clone all Arch linux repository and modify the packages there to fit the above needs. i.e. to fork it. As far as I conceived, it can be done by modifying arch linux packages (more info I will give later as required so that thread should not become very long). Reason for Posting the Thread: 1) First I want to know if I want to fork someone's distro, how I should proceed. 2) What are opinions of the readers for this. |
It might be easier to simply write your own packaging system that does allow multiple versions of packages. It's not rocket science; all you really have to do is compile from source and be sure you don't clobber old or alternate versions. I don't see why a slightly modified version of Arch package tools wouldn't be able to do that. Heck, you might even just modify the PKGBUILD files, I'll bet.
I do not know what you mean by 'partial' upgrades, but again, that sounds more like a package management issue. Why not opt to perform your upgrades more manually? or write a tool that performs partial upgrades for you? Arch is very modular, so you should be able to do that. But if you're dead set on forking Arch, wget --mirror their source repository and go hard. As an aside, Slackware does basically everything you are describing as-is. |
Isn't this exactly what /usr/local/ is for?
I mean if you need several versions of the same package you can compile your own and install it in /usr/local/ and pacman won't touch it. If you wish you can even install different versions in your own home directory, this is not even that uncommon, as I have learned through using wine. And partial upgrades can be achieved in Arch, though not officially supported AFAIK, with blackpac. Edit: Or if blackpac is not what you are looking for, even after upgrades on Arch you can still downgrade packages using pacman. There's even a section on blacklisting packages. |
multiple versions can be installed
--- BUT --- and it is a "duesy " ( and in Duesenberg) the OS can not be allowed to see and use the NON OS versions i used to do this for the Gimp-DEVELOPMENT tree it often needed a newer version of glib,libc,gtk,autotools,...) than were in the CURRENT version of fedora i was using at the time so a "build folder" is needed for those DIFFERENT and DEADLY!!!!!!! prerequisites /usr/local can NOT !!! be used for that now Some things can be installed "side by side" i have 3 versions of "Celestia" 2 versions of Blender 4 versions of gcc 3 different versions of python ( one for the old 2.49 blender i need to use ) so for somethings having multiple versions is already handled by things like yum and zypper and pacman for other things I WOULD NOT want a package manager to even try to handle them |
Changes which I want to implement:
First what happens in linux, let we have a package named 'prog' containing /usr/bin/prog executable, let we have to install it on linux distro we do Code:
packagemanager install prog Code:
packagemanager install prog My idea is to implement changes such that Code:
packagemanager install prog1 /usr/bin/prog1 for program version 1 /usr/bin/prog as symlink to /usr/bin/prog1. Now if I need to install prog version 2, then I will simply do it like Code:
packagemanager install prog2 /usr/bin/prog1 for program version 1 /usr/bin/prog2 for program version 2 /usr/bin/prog symlink to /usr/bin/prog2 Hence I can still use older version by typing prog1 at command line. I want to remove only prog ver 1 then I can use Code:
pacakemanager remove prog1 Code:
packagemanager remove prog In a nutshell, I want to implement version handling at package manager level. Hence a user can be enabled to keep multiple versions of a package on his/her linux computer using a package manager. Dear notKlaatu, Quote:
Quote:
If there are three packages A, B, C version 1 for all, now only upgrading A to ver 2 may cause it to not work because it may depend on B ver2, hence B has to be upgraded, but now C may happen to depend on B ver1, hence upgrading B may supplement A but would break package C. This can be resolved by having both B ver 1 & ver 2 simultaneously. Quote:
Quote:
Actually I want to implement renaming of arch linux packages on the fly using something like a wrapper around pacman (Arch package manager) such that every package version bears its name+version in its installed database, hence can be treated like separate packages by pacman. Quote:
|
It just occurred to me that something similar was once done by the Chakra project with their bundles system. It wasn't for the same purpose, but I think it would be a good place to start if you really want to create an additional package manager for a distro. Here it is if you are interested.
Basically they made a package install in its own filesystem with dependencies included, and I'm sure this would work for several versions of the same package just as well. The bundles were discontinued a while ago, but AFAIK the code is freely available. |
I had used Arch for about a year on my laptop. I always used to do partial upgrades. I'd select a number of packages and review what's being changed. I read the wiki before hand to see if there was any known issues with a particular package. Can't recall needing to downgrade anything in the time I used it.
I wish you luck on your new distro. Not always easy to devote the time and dedication for such a project. |
All times are GMT -5. The time now is 02:53 AM. |