at this moment i`ve just done some minor editing in a spec file (only changed the version number) and i`m compiling the thing (mysql 5.0.26) as i`m typing this message.. while it`s compiling i was bored and started thinking a bit about a better linux compile or package system that can prevent those spec editing by third parties (me in this case)..
oke.. the yum system as it is now..
it`s slow.. does it`s work fine but must be able to be faster.. alot faster and than i mean with getting those headers and such..
my first idea for yum
my idea for that is to have all the packages for fedora in a mysql/postgresql/sqlite database with all the descriptions in there.. make crontabs and make mysql .tar.gz files with all those file information tables and compress it with the highest compression.. that way it`s probly one or 2 MB for ALL the packages that are currently avalible for fedora.. and to keep it smaller you can probly even leave out the description and only send: filename, fileversion, dependencies and get the description when needed from the mysql server.
once the tar file has been downloaded let the computer where it`s downloaded on do the rest meaning that it will extract the file, import it in mysql/postgresql/sqlite and use the information!! once it`s on the harddrive it should be working like lightning speed when you want to update :P
furthermore i think it`s best to have that let client computers update only once a week with the database tables and once a day with the security database (should be verry small as in 100kb or less.. just the latest security updates for the packages that you have on your hdd)
what does this idea mean for yum
well.. yum will need to be completely rewritten in order do do what i want but when it`s done yum will be far better than any update system currently existing to my knowledge.. the speed of yum will be slow with the first time but once it`s collected it will be extremely fast.. i know that yum currently downloads those headers and is fast once it has them but that header part is really time consuming...
this will probly require more changes than just yum... the entire update method of fedora and all fedora based systems will need to be changed alot if not changed completely.. better is that it will most likely give the user friendly stuff of the fedora update system a boost in the right direction.. and if this gets implanted in yum, apt and emerge it will be THE biggest success of linux in some years i think (though compix/xgl/aiglx is major aswell)
now for the developers idea (compiling packages like emerge)
you would be amazed what a mind can think of in just a minute.. the typing of it takes about 15 minutes :P o well.. here it goos.
when i was editing the mysql.spec file i really wondered WHY THE HELL i couldn`t find a mysql.spec file for fedora core 6 (development fase) or fedora core 5 for mysql 5.0.26 so i downloaded the latest mysql.src.rpm that i could find for fedora and grabbed the .spec file from there.. than it was just adjusting the version from 5.0.22 to 5.0.26 in the spec file and away it goos
so it is actually verry simple but noone has done it or shared it..
Now to get this sorted out better i think it would be good if a database was setup with ALL .spec files in it of all software packages available in fedora core 6 and any packages that got updated on the site but not in the fedora trees yet.. (like mysql) so that a community of people manages the database where all the specs are in and adds new specs if they need to be in. this way you can always make the latest stuff for fedora yourself by using the specs files and you can probly increase the fedora speed alot because it`s compiling it all for your pc. (this would greatly improve fedora in all ways)
also when a updates gets released and no .src.rpm or a .rpm gots released BUT a source file (.tar.gz or anything like it) gets released it`s pritty easy to make a spec file for it, store it in the database and let some users install/test it.. once it`s tested and considered working it can find it`s way to the precompiled rpm`s for users that don`t want to waste hours of compiling time.
i think those 2 idea`s would greatly improve fedora itself and yum and all update related systems in fedora.. also i think the current yum system is good but just to slow!! and no options to compile packages directly from yum. (please correct me if i`m wrong on that)
o well.. what more can i say.. in my eyes it`s only improving something i like alot : The open source world and most of all LINUX
how to make all this stuff come true
what i can do: making a database layout and a web interface for it..
what i can`t do is doing the c++ stuff simply because i don`t know how to do it..
what is needed for this is a team with a good motivation to get started on this and really make something good out of it also it`s needed (my opinion) that the biggest distribution are gathering arrount a table (distributions: gentoo, (open)suse, mandriva, fedora, debian, redhat, slackware (i must forgot some big ones.. )) and just talk about the new system.. the advantages and disadvantages over there current update systems (apt, yum and emerge) best of all in this stuff is that (if it happens) pritty much the entire linux world starts working with ONE type of package system.. that`s the ultimate yum and it all distributions are using .spec files... guess they are all using it at this moment for compiling but lets take gentoo for example.. it also has e-builds.. handy or not.. it`s gonna be gone if my idea because reality..
Another thing that`s needed for this is about 100 servers world wide all moving in sync with a few (max 10) master servers.. so all those 110 servers should be spreaded all over the world so that anyone can get his/her fastest speed while downloading the needed information.. the thing that will be most difficult to realize is probly this BECAUSE there is money involved in this stuff.. programming can be done for free or in your free time but this server stuff can`t.. unless the server stuff is gonna be teared apart as well and setup a giant p2p network that shares parts of all files on every single pc that is connected to the internet though this sounds like a virus and unwanted stuff to me but if the majority of the linux community wants it i would be happy to join it
o and a verry small detail about those spec things.. in my idea there is 1 spec file for one release/build thing and the database in combination with some coding software makes the right spec file for example fedora or mandriva or debian or whatever.. also it should be possible for anyone to join!! no closed **** like microsoft..
note.. i started typing on this about one hour ago.. the mysql stuff is installed by now BUT still not working how i want it.. :@ i need this new system :P
so.. what do you guys think of it? it would be nice to get ALOT reply`s here about this.. i just hope everyone likes this idea
some more stuff i didn`t even mention yet.. the administration stuff
i think there should be serveral hunderds of admins who manage there own part.. like a few for fedora.. a few for gentoo.. a few for debian.. all those guys should do is check to see what`s added isn`t pay stuff and test the added stuff out to see if it works on there computers.. all the those parts they manage DON`T contain .spec files only but they contain the adjustments for a program.. for example firefox.. so lets say you use debian and someone finds out that the fedora .spec file to compile and install firefox doesn`t work on debian and submits a dependency ticket where he lists what dependencies should be added/removed for debian users.. so the next time a debian user downloads the .spec file for firefox the server software (where all the spec files are) will see what needs to be changed in the .spec file inorder to get it working on debian.. (same with any other distribution that is in there) so that stuff is part of the admins job.
For the developers.. i think there shouldn`t be to much developers for a program like this.. about 5 or 10 must be more than enough
for a website interface.. that is a must have
users of any os can use that search to find if a package they want to have is available for them and if it is they can use the commando`s subscribed in there to install that software.. though the best would be if all distributions could use the same spec files... would surely remove the need to have much admins (for each distribution a handfull of admins) and would remove the need of having software that needs to build those spec files for the distribution where they need to run..
that`s it for edit 1
i will most likely come up with more stuff and that will go in edit 2 or 3 or 4.. depends on it..
Original posted here