Hello GoboFolks, Sorry for this very long mail. The line breaks are at or ~before 80 characters mostly because I type this in my editor.
This is a ... semi-follow up on my earlier KDE-related mail/question from some time ago. I've actually looked at LFS/BLFS and am tracking quite a lot of KDE stuff now in my two major ruby gems "cookbooks" and "rbt". (Lucas also pointed towards UpdateKdeRecipe but I have not yet had a look at it. I'll have a look once I am able to keep up with KDE-releases; right now, I am not easily able to but I think this may change in the coming weeks or so.) As this mail is quite long, I will attempt to focus on only two things that may be somewhat interesting to other people perhaps: (1) The LFS/BLFS team actually did a pretty good job at tracking KDE-related stuff and dependencies. In particular, if you want to have a go at it too, here are two very useful websites IMO: http://www.linuxfromscratch.org/blfs/view/cvs/kde/krameworks5.html http://www.linuxfromscratch.org/blfs/view/cvs/kde/plasma-all.html There are further links there, within the BLFS subsite which can be used to track dependencies and stuff, providing instructions how to compile something. The biggest part is qt - if you manage to compile qt, then the rest is not too difficult. (On a side note, qt - 5.8.x did not compile for me but qt - 5.9.1 did... upon investigating my error, I found out that the error was fixed in 5.9.1 but not in the 5.8.x branch, makes you wonder a bit what the qt team considers "stable" when compilation does not work, despite fixes being already integrated into the "unstable" branch....) In my main ruby gem there at, https://rubygems.org/gems/cookbooks , I am currently tracking 3084 programs. This includes most of the KDE stack, excluding the kde plasma stack right now of which the kde devs are very proud of (as a matter of fact, though, I am currently adding the plasma-related stack to the cookbooks gem and also compiling them once added). Not sure if I will manage to finish adding the rest of plasma this week/weekend, and what else is missing in the kde stack. A LOT of stuff is missing in the cookbooks gem and the whole gem has to be polished a lot more before it is really usable for other people; but I use that gem since quite some time by now and it's quite useful in general. One idea is to eventually be able to autogenerate "all the things", at the least the common formats such as debian, rpm and so forth - a similar ruby gem exists here at https://github.com/jordansissel/fpm. GoboLinux recipes also have to be autogenerated of course. On a brighter note, a few hours ago, I managed to compile konsole: https://download.kde.org/stable/applications/17.08.1/src/konsole-17.08.1.tar.xz from source - and it is actually working. :) (There is some strange bug which I reported to the KDE team, where I can not pick another profile without KDE konsole crashing... but anyway, if I don't fiddle with the profile, konsole 17.08.1 works fine.) (2) More relevant to GoboLinux, I am actually able to autogenerate (non-conforming) GoboLinux recipes. So I could autogenerate 3084 GoboLinux recipes in theory. :) None of them are tested so I don't recommend anyone else to test - I'll have a look at their validity lateron, but I first want to write some scripts that check for problems etc... and help auto-correct stuff too. I had a dry-run a few days ago, without the whole kde KF5 stack as of yet; the upload archive can be seen here: http://shevegen.square7.ch/gobolinux-recipes-16.09.2017.tar.xz The nice thing is that the archive is automatically generated and automatically uploaded, too. So when I am able to generate valid GoboLinux recipes, I should be able to autogenerate all the recipes registered there. Unfortunately, the big caveat here is that ... a lot of things are currently not working in the autogeneration part, in particular when it comes to shell logic. It's not trivial to auto-generate valid shell code. But the dependency chain is also empty (I do not track the dependencies completely yet). What does, somewhat work, is autogenerating files such as "Recipe" or the file "Resources/Description". I think "Recipe" is the most important one probably, since it has the url: entry, which Compile probably uses to download remote programs. I know that in my own two gems, when you have the remote url, you can infer all the other information; and you can even automatically detect the configure type usually - the GoboLinux scripts try this already to some extent if I recall correctly. Not sure if Gobolinux supports scons, waf and meson though. In particular gnome moved towards meson. At a later time, I intend to expand the code that autogenerates stuff to not only generate valid GoboLinux Recipes, but to also automatically upload all the recipes into extracted, remote archives at that FTP site (or perhaps some other site, I'll have a closer look once the autogeneration part works). When that part works, then in theory, people could navigate to the respective URL and download a given recipe from there. But the *really* nice part would be that this could be done by other people too, so there could be countless "GoboLinux secondary recipe stores". :) (The cookbooks gem currently has a few other limitations though, so it is not really useful in any collaborative environment; I'll have a look at this again at a later point. In principle people should be able to update the official cookbooks gem too, but for now I'll handle things.) But again, this is all not working that well ... since I am also somewhat slow, I'll try to have things work better before ... the end of this year. There is also usually a new ruby release at around x-mas so I'll aim for a bit after x-mas too with improvements there, in particular being able to autogenerate VALID and COMPLETE GoboLinux recipes.. :D Some parts will be a bit difficult to autogenerate, such as the shell logic, due to two reasons - one, my shell foo is still bad, after all these years, even though the GoboLinux scripts are surprisingly clean compared to other shell scripts. (I remember looking at GNU sourcemage many years ago, and their shell code was a lot uglier than the GoboLinux shell scripts.) Two, and probably the bigger reason, is that I am not entirely sure what is all needed and when in the various GoboLinux recipes. I think that the recipes currently require quite a lot of expert domain knowledge. Joel Roth did a great job at the wiki but I think a lot is still missing. Like more details. But anyway. Some recipes do not need any modifications at all, but I looked at other ones such as e. g. dbus and qt and they need quite a few modifications here or there as can be seen: http://recipes.gobolinux.org/r/?list=DBus&ver=1.10.8-r3 http://recipes.gobolinux.org/r/?list=Qt&ver=5.9.0-r2&file=Recipe I do not yet know what the various entries mean (environment, install_variables, pre_link) and although I understand shell code to some extent, I don't have a great idea how to autogenerate all of that ... but I think that in theory, once I understand these parts fully, I should be able to autogenerate most of them. I tested this first on slackware though, since my specific GoboLinux knowledge is currently still too limited, but I will test it on GoboLinux once I have finished with the whole kde stack in the cookbooks; in the past, I did not even manage to compile qt/kde at all, which was really frustrating. I also managed to compile all of mate-desktop from source, though there also was some problem with the settings; but mate-terminal works and mate-desktop starts up fine too. Note that with autogenerated GoboLinux recipes, this is not aimed at all to bypass the manual review process in any way whatsoever. But it is supposed to help speed up some things. I can probably also add a linter to check for conforming recipes too. I am also using some other scripts to help track updates that happen to source code repositories in general, such as via the blfs changelog page at http://www.linuxfromscratch.org/blfs/view/cvs/introduction/changelog.html. While there is an initial time investment in adding new entries to the cookbooks project, and making sure that the code logic works - once the entry is registered, updating is very easy for me. One script called UpdateEntry accepts an URL and will update the local program + download. (In theory it can also be used to automatically compile, but I usually first update, before then invoking the compile process via the ruby scripts.) Another script also autogenerates individual .html pages that I could upload too. And I could probably combine this with existing GoboLinux recipes... a bit similar to how the BLFS homepage works too. But anyway, I think I am writing too much and having too little action ;) - the archive at gobolinux-recipes-16.09.2017.tar.xz shows that it works at the least in principle, as demo. The descriptions I use from the cookbooks gem, but I can also write a script that uses the descriptions found in the gobolinux recipes (the github page allows one to easily download the recipes... there are quite a LOT of recipes there, some of the recipes are many years old, with URLs that no longer exist hehe) I also have an auto-update script for the gnome stack although it is a bit buggy - the URL that I am checking for gnome stuff is http://ftp.gnome.org/pub/gnome/sources/?C=M;O=D Meson is currently annoying me here, so I am waiting until the LFS/BFLS team shows how to use meson properly. :D Here is a simple program version dump of projects that I am currently tracking, though I have to update it with kde stuff yet (it is updated whenever I push a new release to the cookbooks gem but I broke it a bit recently, so I have to update manually at a later time): http://shevegen.square7.ch/programs_version.html Anyway, I wanted to give a bit more feedback as to what I am doing. My idea is to use the "secondary gobostore", and from that one, once it all works on my gobolinux machine, push updates to the recipe store once it all works. I'll try to use a weekend that is not so busy to batch-test this via GoboLinux but I will also first test that the recipes work on GoboLinux individually, which will take some time. Cheers, Robert
_______________________________________________ gobolinux-users mailing list gobolinux-users@lists.gobolinux.org http://lists.gobolinux.org/mailman/listinfo/gobolinux-users